diff options
Diffstat (limited to 'src/clojure_sql/core.clj')
-rw-r--r-- | src/clojure_sql/core.clj | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/clojure_sql/core.clj b/src/clojure_sql/core.clj index 319d281..e1dfb90 100644 --- a/src/clojure_sql/core.clj +++ b/src/clojure_sql/core.clj @@ -28,16 +28,18 @@ (def is-unary? (comp boolean '#{not})) (def is-predicate? (comp boolean '#{= < > <= >= is in})) -(defn c-return [val] [val nil]) +(defn c-return [val] [val]) (defn c-lift [f & orig-args] (fn [& c-args] - [(apply f (concat orig-args - (map first c-args))) - (apply concat (map second c-args))])) + (apply vector + (apply f (concat orig-args + (map first c-args))) + (apply concat (map rest c-args))))) (def c-str (c-lift str)) (def c-join (fn [sep args] - [(string/join sep (map first args)) - (apply concat (map second args))])) + (apply vector + (string/join sep (map first args)) + (apply concat (map rest args))))) (def c-add-parentheses (c-lift add-parentheses)) (defmulti compile-expression (fn [db _] db)) @@ -46,7 +48,7 @@ nil? (c-return "NULL") vector? (c-return (str (table-name db (first ex)) \. (field-name db (second ex)))) keyword? (c-return (field-name db ex)) - string? ["?" [ex]] ;;(sql-string db ex) + string? ["?" ex] ;;(sql-string db ex) symbol? (c-return (string/upper-case (name ex))) sequential? (-> (if (= (count ex) 2) (->> ex |