pull out a couple helpers for param logic
This commit is contained in:
parent
a48ea1c4d2
commit
a996b93dd3
1 changed files with 19 additions and 12 deletions
|
|
@ -247,6 +247,17 @@
|
||||||
(into [sql-str] @*params*)
|
(into [sql-str] @*params*)
|
||||||
[sql-str]))))
|
[sql-str]))))
|
||||||
|
|
||||||
|
(defn add-param [pname pval]
|
||||||
|
(swap! *param-names* conj pname)
|
||||||
|
(swap! *params* conj pval)
|
||||||
|
(*parameterizer*))
|
||||||
|
|
||||||
|
;; Anonymous param name -- :_1, :_2, etc.
|
||||||
|
(defn add-anon-param [pval]
|
||||||
|
(add-param
|
||||||
|
(keyword (str "_" (swap! *param-counter* inc)))
|
||||||
|
pval))
|
||||||
|
|
||||||
(defprotocol ToSql
|
(defprotocol ToSql
|
||||||
(-to-sql [x]))
|
(-to-sql [x]))
|
||||||
|
|
||||||
|
|
@ -305,18 +316,14 @@
|
||||||
(-to-sql [x] "NULL")
|
(-to-sql [x] "NULL")
|
||||||
Object
|
Object
|
||||||
(-to-sql [x]
|
(-to-sql [x]
|
||||||
(let [[x pname] (if (instance? SqlParam x)
|
(if (instance? SqlParam x)
|
||||||
(let [pname (param-name x)]
|
(let [pname (param-name x)]
|
||||||
(if (map? @*input-params*)
|
(if (map? @*input-params*)
|
||||||
[(get @*input-params* pname) pname]
|
(add-param pname (get @*input-params* pname))
|
||||||
(let [x (first @*input-params*)]
|
(let [x (first @*input-params*)]
|
||||||
(swap! *input-params* rest)
|
(swap! *input-params* rest)
|
||||||
[x pname])))
|
(add-param pname x))))
|
||||||
;; Anonymous param name -- :_1, :_2, etc.
|
(add-anon-param x))))
|
||||||
[x (keyword (str "_" (swap! *param-counter* inc)))])]
|
|
||||||
(swap! *param-names* conj pname)
|
|
||||||
(swap! *params* conj x)
|
|
||||||
(*parameterizer*))))
|
|
||||||
|
|
||||||
(defn sqlable? [x]
|
(defn sqlable? [x]
|
||||||
(satisfies? ToSql x))
|
(satisfies? ToSql x))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue