don't paren-wrap top-level query

This commit is contained in:
Justin Kramer 2012-07-12 23:14:48 -04:00
parent 92aa49deeb
commit 40d25c8726

View file

@ -53,6 +53,8 @@
(def ^:dynamic *fn-context?* false) (def ^:dynamic *fn-context?* false)
(def ^:dynamic *subquery?* false)
(def infix-fns (def infix-fns
#{"+" "-" "*" "/" "%" "mod" "|" "&" "^" #{"+" "-" "*" "/" "%" "mod" "|" "&" "^"
"is" "=" ">" ">=" "<" "<=" "<>" "!=" "is" "=" ">" ">=" "<" "<=" "<>" "!="
@ -116,10 +118,14 @@
SqlRaw SqlRaw
(-to-sql [x] (.s x)) (-to-sql [x] (.s x))
clojure.lang.IPersistentMap clojure.lang.IPersistentMap
(-to-sql [x] (let [clause-ops (filter #(contains? x %) clause-order)] (-to-sql [x] (let [clause-ops (filter #(contains? x %) clause-order)
(paren-wrap sql-str (binding [*subquery?* true]
(space-join (map (comp #(format-clause % x) #(find x %)) (space-join
clause-ops))))) (map (comp #(format-clause % x) #(find x %))
clause-ops)))]
(if *subquery?*
(paren-wrap sql-str)
sql-str)))
nil nil
(-to-sql [x] "NULL")) (-to-sql [x] "NULL"))