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:
Sean Corfield 2019-04-18 00:36:22 -07:00
parent b82f349717
commit 86db20b94b
2 changed files with 13 additions and 1 deletions

View file

@ -166,7 +166,7 @@
Supports Seqable which realizes a full row of the data."
[^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
clojure.lang.ILookup

View file

@ -141,6 +141,18 @@
(delete! con :fruit {:id 1})
(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])
(defn fruit-builder [^java.sql.ResultSet rs opts]