Fix composite by turning it into special syntax
This commit is contained in:
parent
ccd5447a09
commit
796f11c3f4
2 changed files with 10 additions and 5 deletions
|
|
@ -18,7 +18,7 @@
|
|||
"The (default) order for known clauses. Can have items added and removed."
|
||||
[:nest :with :with-recursive :intersect :union :union-all :except :except-all
|
||||
:select :select-distinct :insert-into :update :delete :delete-from :truncate
|
||||
:columns :composite :set :from
|
||||
:columns :set :from
|
||||
:join :left-join :right-join :inner-join :outer-join :full-join
|
||||
:cross-join
|
||||
:where :group-by :having :order-by :limit :offset :for :values
|
||||
|
|
@ -382,7 +382,6 @@
|
|||
:delete-from #'format-selector
|
||||
:truncate #'format-selector
|
||||
:columns #'format-columns
|
||||
:composite #'format-columns
|
||||
:set #'format-set-exprs
|
||||
:from #'format-selects
|
||||
:join #'format-join
|
||||
|
|
@ -424,7 +423,6 @@
|
|||
;:delete-from 80
|
||||
;:truncate 85
|
||||
;:columns 90
|
||||
;:composite 95
|
||||
;; no longer needed/supported :set0 100 ; low-priority set clause
|
||||
;:from 110
|
||||
;:join 120
|
||||
|
|
@ -528,6 +526,10 @@
|
|||
(-> [(str "CAST(" sql " AS " sql' ")")]
|
||||
(into params)
|
||||
(into params'))))
|
||||
:composite
|
||||
(fn [_ [& args]]
|
||||
(let [[sqls params] (format-expr-list args)]
|
||||
(into [(str "(" (str/join ", " sqls) ")")] params)))
|
||||
:default
|
||||
(fn [_ []]
|
||||
["DEFAULT"])
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@
|
|||
(defn delete-from [& args] (generic :delete-from args))
|
||||
(defn truncate [& args] (generic :truncate args))
|
||||
(defn columns [& args] (generic :columns args))
|
||||
(defn composite [& args] (generic :composite args))
|
||||
(defn set [& args] (generic-1 :set args))
|
||||
(defn from [& args] (generic :from args))
|
||||
(defn join [& args] (generic :join args))
|
||||
|
|
@ -78,6 +77,10 @@
|
|||
(defn do-update-set [& args] (generic :do-update-set args))
|
||||
(defn returning [& args] (generic :returning args))
|
||||
|
||||
;; helpers that produce non-clause expressions -- must be listed below:
|
||||
(defn composite [& args] (into [:composite] args))
|
||||
|
||||
#?(:clj
|
||||
(assert (= (clojure.core/set @@#'h/base-clause-order)
|
||||
(assert (= (clojure.core/set (conj @@#'h/base-clause-order
|
||||
:composite))
|
||||
(clojure.core/set (map keyword (keys (ns-publics *ns*)))))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue