summaryrefslogtreecommitdiff
path: root/src/clojure_sql/core.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure_sql/core.clj')
-rw-r--r--src/clojure_sql/core.clj16
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