Ensure DSL elements can be symbols (as well as keywords)

This commit is contained in:
Sean Corfield 2020-09-30 13:00:09 -07:00
parent a789d4a4ff
commit ddef4068ba

View file

@ -431,12 +431,12 @@
(defn- format-dsl [x & [{:keys [aliased? nested? pretty?]}]] (defn- format-dsl [x & [{:keys [aliased? nested? pretty?]}]]
(let [[sqls params leftover] (let [[sqls params leftover]
(reduce (fn [[sql params leftover] k] (reduce (fn [[sql params leftover] k]
(if-let [xs (k x)] (if-let [xs (or (k x) (let [s (symbol (name k))] (get x s)))]
(let [formatter (k @clause-format) (let [formatter (k @clause-format)
[sql' & params'] (formatter k xs)] [sql' & params'] (formatter k xs)]
[(conj sql sql') [(conj sql sql')
(if params' (into params params') params) (if params' (into params params') params)
(dissoc leftover k)]) (dissoc leftover k (symbol (name k)))])
[sql params leftover])) [sql params leftover]))
[[] [] x] [[] [] x]
*clause-order*)] *clause-order*)]