Skip to content

Commit 41cae6a

Browse files
authored
Merge pull request #1 from mpenttila/jeesql
Update jdbc and allow namespaced keywords
2 parents 0695fe1 + 86f6860 commit 41cae6a

5 files changed

Lines changed: 18 additions & 13 deletions

File tree

project.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
:license {:name "Eclipse Public License"
55
:url "http://www.eclipse.org/legal/epl-v10.html"}
66
:dependencies [[org.clojure/clojure "1.8.0"]
7-
[org.clojure/java.jdbc "0.5.0"]
7+
[org.clojure/java.jdbc "0.6.2-alpha3"]
88
[org.clojure/core.async "0.2.385"]]
99
;:pedantic? :abort
1010
:scm {:name "git"

src/jeesql/core.clj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
(:require [jeesql.util :refer [resource-file-url slurp-from-classpath]]
33
[jeesql.generate :refer [generate-var]]
44
[jeesql.queryfile-parser :refer [parse-tagged-queries]]
5-
[jeesql.autoreload :refer [autoreload]]))
5+
[jeesql.autoreload :refer [autoreload]]
6+
[clojure.string :as str]))
67

78
(defn defqueries
89
"Defines several query functions, as defined in the given SQL file.
@@ -31,7 +32,7 @@
3132
(throw (Exception. "Missing an :as or a :refer")))
3233
(let [current-ns (ns-name *ns*)
3334
;; Keep this .sql file's defqueries in a predictable place:
34-
target-ns (symbol (str "yesquire/" sql-file))]
35+
target-ns (-> (str "jeesql/" sql-file) (str/replace #"/" ".") symbol)]
3536
`(do
3637
(ns-unalias *ns* '~as)
3738
(create-ns '~target-ns)

src/jeesql/generate.clj

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,27 +76,27 @@
7676
(first (jdbc/execute! db sql-and-params)))
7777

7878
(defn insert-handler
79-
[db [statement & params]]
80-
(jdbc/db-do-prepared-return-keys db statement params))
79+
[db statement-and-params]
80+
(jdbc/db-do-prepared-return-keys db statement-and-params))
8181

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

8888
(defn query-handler
8989
[row-fn db sql-and-params]
9090
(jdbc/query db sql-and-params
91-
:identifiers lower-case
92-
:row-fn row-fn
93-
:result-set-fn doall))
91+
{:identifiers lower-case
92+
:row-fn row-fn
93+
:result-set-fn doall}))
9494

9595
(defn query-handler-single-value
9696
[db sql-and-params]
9797
(jdbc/query db sql-and-params
98-
:row-fn (comp val first seq)
99-
:result-set-fn first))
98+
{:row-fn (comp val first seq)
99+
:result-set-fn first}))
100100

101101
(defn query-handler-stream
102102
[fetch-size row-fn db result-channel sql-and-params]

src/jeesql/statement_parser.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
(def ^{:doc "Regular expression to split statement into three parts: before the first parameter,
99
the parameter name and the rest of the statement. A parameter always starts with a single colon and
1010
may contain alphanumerics as well as '-', '_' and '?' characters."}
11-
parameter #"(?s)(.*?[^:\\]):(\p{Alpha}[\p{Alnum}\_\-\?]*)(.*)")
11+
parameter #"(?s)(.*?[^:\\]):(\p{Alpha}[\p{Alnum}\_\-\?\./]*)(.*)")
1212

1313
(defn- replace-escaped-colon [string]
1414
(str/replace string #"\\:" ":"))

test/jeesql/core_test.clj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@
8383

8484
(expect var? #'combined/edge)
8585

86+
(expect first (combined/edge jeesql.core-test/derby-db))
87+
8688
(require-sql ["jeesql/sample_files/combined_file.sql" :refer [the-time]])
8789

8890
(expect var? #'the-time)
91+
92+
(expect first (the-time jeesql.core-test/derby-db))

0 commit comments

Comments
 (0)