From 86db20b94bacd002cd1b7109e990fececfecaf09 Mon Sep 17 00:00:00 2001 From: Sean Corfield Date: Thu, 18 Apr 2019 00:36:22 -0700 Subject: [PATCH] Improve default behavior of reducible! when forced to create a row Defaults to `map-row-builder`; add examples of `assoc`, `datafiable-row`. --- src/next/jdbc/result_set.clj | 2 +- test/next/jdbc_test.clj | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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]