add returning clause
This commit is contained in:
parent
f410aed5a1
commit
cb259fdc90
2 changed files with 13 additions and 2 deletions
|
|
@ -189,6 +189,7 @@
|
||||||
:limit 200
|
:limit 200
|
||||||
:offset 210
|
:offset 210
|
||||||
:values 220
|
:values 220
|
||||||
|
:returning 225
|
||||||
:query-values 230})
|
:query-values 230})
|
||||||
|
|
||||||
(def clause-store (atom default-clause-priorities))
|
(def clause-store (atom default-clause-priorities))
|
||||||
|
|
@ -366,14 +367,20 @@
|
||||||
(defmethod format-clause :default [& _]
|
(defmethod format-clause :default [& _]
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(defmethod format-clause :select [[_ fields] sql-map]
|
(defn- select-fields [keyword fields sql-map]
|
||||||
(str "SELECT "
|
(str keyword " "
|
||||||
(when (:modifiers sql-map)
|
(when (:modifiers sql-map)
|
||||||
(str (space-join (map (comp string/upper-case name)
|
(str (space-join (map (comp string/upper-case name)
|
||||||
(:modifiers sql-map)))
|
(:modifiers sql-map)))
|
||||||
" "))
|
" "))
|
||||||
(comma-join (map to-sql fields))))
|
(comma-join (map to-sql fields))))
|
||||||
|
|
||||||
|
(defmethod format-clause :select [[_ fields] sql-map]
|
||||||
|
(select-fields "SELECT" fields sql-map))
|
||||||
|
|
||||||
|
(defmethod format-clause :returning [[_ fields] sql-map]
|
||||||
|
(select-fields "RETURNING" fields sql-map))
|
||||||
|
|
||||||
(defmethod format-clause :from [[_ tables] _]
|
(defmethod format-clause :from [[_ tables] _]
|
||||||
(str "FROM " (comma-join (map to-sql tables))))
|
(str "FROM " (comma-join (map to-sql tables))))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,3 +33,7 @@
|
||||||
"INSERT INTO foo SELECT bar FROM baz"))
|
"INSERT INTO foo SELECT bar FROM baz"))
|
||||||
(is (= (format-clause (first {:insert-into [[:foo [:a :b :c]] {:select [:d :e :f] :from [:baz]}]}) nil)
|
(is (= (format-clause (first {:insert-into [[:foo [:a :b :c]] {:select [:d :e :f] :from [:baz]}]}) nil)
|
||||||
"INSERT INTO foo (a, b, c) SELECT d, e, f FROM baz")))
|
"INSERT INTO foo (a, b, c) SELECT d, e, f FROM baz")))
|
||||||
|
|
||||||
|
(deftest returning
|
||||||
|
(is (= (format-clause (first {:returning [:*]}) nil)
|
||||||
|
"RETURNING *")))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue