This commit is contained in:
Michael Blume 2015-01-23 00:21:41 +00:00
commit 9ea98b6f5d

View file

@ -260,11 +260,19 @@
nil nil
(-to-sql [x] "NULL")) (-to-sql [x] "NULL"))
(def class-cache (atom nil))
(defn sqlable? [x] (defn sqlable? [x]
(satisfies? ToSql x)) (let [c (class x)
cache @class-cache]
(if (contains? cache c)
(cache c)
(let [result (satisfies? ToSql x)]
(swap! class-cache assoc c result)
result))))
(defn to-sql [x] (defn to-sql [x]
(if (satisfies? ToSql x) (if (sqlable? x)
(-to-sql x) (-to-sql x)
(let [[x pname] (if (instance? SqlParam x) (let [[x pname] (if (instance? SqlParam x)
(let [pname (param-name x)] (let [pname (param-name x)]