Improve default behavior of reducible! when forced to create a row
Defaults to `map-row-builder`; add examples of `assoc`, `datafiable-row`.
This commit is contained in:
parent
b82f349717
commit
86db20b94b
2 changed files with 13 additions and 1 deletions
|
|
@ -166,7 +166,7 @@
|
||||||
|
|
||||||
Supports Seqable which realizes a full row of the data."
|
Supports Seqable which realizes a full row of the data."
|
||||||
[^ResultSet rs opts]
|
[^ResultSet rs opts]
|
||||||
(let [gen (when-let [gen-fn (:gen-fn opts)] (delay (gen-fn rs opts)))]
|
(let [gen (delay ((get :gen-fn opts map-row-builder) rs opts))]
|
||||||
(reify
|
(reify
|
||||||
|
|
||||||
clojure.lang.ILookup
|
clojure.lang.ILookup
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,18 @@
|
||||||
(delete! con :fruit {:id 1})
|
(delete! con :fruit {:id 1})
|
||||||
(update! con :fruit {:appearance "Brown"} {:name "Banana"})
|
(update! con :fruit {:appearance "Brown"} {:name "Banana"})
|
||||||
|
|
||||||
|
(reduce (fn [rs m] (reduced (assoc m :test 42)))
|
||||||
|
nil
|
||||||
|
(reducible! con ["select * from fruit where appearance = ?" "red"]))
|
||||||
|
|
||||||
|
(reduce (fn [rs m] (reduced (rs/datafiable-row (assoc m :test 42) con {})))
|
||||||
|
nil
|
||||||
|
(reducible! con ["select * from fruit where appearance = ?" "red"]))
|
||||||
|
|
||||||
|
(reduce (fn [rs m] (reduced (rs/datafiable-row m con {})))
|
||||||
|
nil
|
||||||
|
(reducible! con ["select * from fruit where appearance = ?" "red"]))
|
||||||
|
|
||||||
(defrecord Fruit [id name appearance cost grade])
|
(defrecord Fruit [id name appearance cost grade])
|
||||||
|
|
||||||
(defn fruit-builder [^java.sql.ResultSet rs opts]
|
(defn fruit-builder [^java.sql.ResultSet rs opts]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue