Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[org.clojure/java.jdbc "0.5.0"]
[org.clojure/java.jdbc "0.6.2-alpha3"]
[org.clojure/core.async "0.2.385"]]
;:pedantic? :abort
:scm {:name "git"
Expand Down
5 changes: 3 additions & 2 deletions src/jeesql/core.clj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
(:require [jeesql.util :refer [resource-file-url slurp-from-classpath]]
[jeesql.generate :refer [generate-var]]
[jeesql.queryfile-parser :refer [parse-tagged-queries]]
[jeesql.autoreload :refer [autoreload]]))
[jeesql.autoreload :refer [autoreload]]
[clojure.string :as str]))

(defn defqueries
"Defines several query functions, as defined in the given SQL file.
Expand Down Expand Up @@ -31,7 +32,7 @@
(throw (Exception. "Missing an :as or a :refer")))
(let [current-ns (ns-name *ns*)
;; Keep this .sql file's defqueries in a predictable place:
target-ns (symbol (str "yesquire/" sql-file))]
target-ns (-> (str "jeesql/" sql-file) (str/replace #"/" ".") symbol)]
`(do
(ns-unalias *ns* '~as)
(create-ns '~target-ns)
Expand Down
18 changes: 9 additions & 9 deletions src/jeesql/generate.clj
Original file line number Diff line number Diff line change
Expand Up @@ -76,27 +76,27 @@
(first (jdbc/execute! db sql-and-params)))

(defn insert-handler
[db [statement & params]]
(jdbc/db-do-prepared-return-keys db statement params))
[db statement-and-params]
(jdbc/db-do-prepared-return-keys db statement-and-params))

(defn insert-handler-return-keys
[return-keys db [statement & params]]
(with-open [ps (jdbc/prepare-statement (jdbc/get-connection db) statement
:return-keys return-keys)]
(jdbc/db-do-prepared-return-keys db ps params)))
{:return-keys return-keys})]
(jdbc/db-do-prepared-return-keys db (cons ps params))))

(defn query-handler
[row-fn db sql-and-params]
(jdbc/query db sql-and-params
:identifiers lower-case
:row-fn row-fn
:result-set-fn doall))
{:identifiers lower-case
:row-fn row-fn
:result-set-fn doall}))

(defn query-handler-single-value
[db sql-and-params]
(jdbc/query db sql-and-params
:row-fn (comp val first seq)
:result-set-fn first))
{:row-fn (comp val first seq)
:result-set-fn first}))

(defn query-handler-stream
[fetch-size row-fn db result-channel sql-and-params]
Expand Down
2 changes: 1 addition & 1 deletion src/jeesql/statement_parser.clj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
(def ^{:doc "Regular expression to split statement into three parts: before the first parameter,
the parameter name and the rest of the statement. A parameter always starts with a single colon and
may contain alphanumerics as well as '-', '_' and '?' characters."}
parameter #"(?s)(.*?[^:\\]):(\p{Alpha}[\p{Alnum}\_\-\?]*)(.*)")
parameter #"(?s)(.*?[^:\\]):(\p{Alpha}[\p{Alnum}\_\-\?\./]*)(.*)")

(defn- replace-escaped-colon [string]
(str/replace string #"\\:" ":"))
Expand Down
4 changes: 4 additions & 0 deletions test/jeesql/core_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@

(expect var? #'combined/edge)

(expect first (combined/edge jeesql.core-test/derby-db))

(require-sql ["jeesql/sample_files/combined_file.sql" :refer [the-time]])

(expect var? #'the-time)

(expect first (the-time jeesql.core-test/derby-db))