From 40d25c8726c37f767f34287cc994e69898d4b180 Mon Sep 17 00:00:00 2001 From: Justin Kramer Date: Thu, 12 Jul 2012 23:14:48 -0400 Subject: [PATCH] don't paren-wrap top-level query --- src/honeysql/format.clj | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/honeysql/format.clj b/src/honeysql/format.clj index c5b2124..2b32588 100644 --- a/src/honeysql/format.clj +++ b/src/honeysql/format.clj @@ -53,6 +53,8 @@ (def ^:dynamic *fn-context?* false) +(def ^:dynamic *subquery?* false) + (def infix-fns #{"+" "-" "*" "/" "%" "mod" "|" "&" "^" "is" "=" ">" ">=" "<" "<=" "<>" "!=" @@ -116,10 +118,14 @@ SqlRaw (-to-sql [x] (.s x)) clojure.lang.IPersistentMap - (-to-sql [x] (let [clause-ops (filter #(contains? x %) clause-order)] - (paren-wrap - (space-join (map (comp #(format-clause % x) #(find x %)) - clause-ops))))) + (-to-sql [x] (let [clause-ops (filter #(contains? x %) clause-order) + sql-str (binding [*subquery?* true] + (space-join + (map (comp #(format-clause % x) #(find x %)) + clause-ops)))] + (if *subquery?* + (paren-wrap sql-str) + sql-str))) nil (-to-sql [x] "NULL"))