summaryrefslogtreecommitdiff
path: root/src/clojure_sql/core.clj
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@clearboxsystems.com.au>2013-05-14 12:31:50 +1000
committerCarlo Zancanaro <carlo@clearboxsystems.com.au>2013-05-14 12:31:50 +1000
commit1c5a0359f7b048ad01a25607661229e13b5a6be7 (patch)
treeab275c4e5deba1920a8cbbbaef559a04f608e864 /src/clojure_sql/core.clj
parent431b961d6bbb0008bdb4fce81ad2cf9d6ab0a287 (diff)
Apparently I got the jdbc query syntax wrong. Corrected.
The parameters should be passed in the `rest` of the vector, not as a separate seq. My bad.
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