diff --git a/src/next/jdbc/result_set.clj b/src/next/jdbc/result_set.clj index a8d60f5..4e4a71c 100644 --- a/src/next/jdbc/result_set.clj +++ b/src/next/jdbc/result_set.clj @@ -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 diff --git a/test/next/jdbc_test.clj b/test/next/jdbc_test.clj index f3edf58..f4daedc 100644 --- a/test/next/jdbc_test.clj +++ b/test/next/jdbc_test.clj @@ -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]