Fix #242 by turning modifiers into a multimethod
This commit is contained in:
parent
05cc39a41c
commit
509df19702
1 changed files with 8 additions and 3 deletions
|
|
@ -502,12 +502,17 @@
|
||||||
(defmethod format-clause :exists [[_ table-expr] _]
|
(defmethod format-clause :exists [[_ table-expr] _]
|
||||||
(str "EXISTS " (to-sql table-expr)))
|
(str "EXISTS " (to-sql table-expr)))
|
||||||
|
|
||||||
|
(defmulti format-modifiers (fn [[op & _]] op))
|
||||||
|
|
||||||
|
(defmethod format-modifiers :distinct [_] "DISTINCT")
|
||||||
|
|
||||||
|
(defmethod format-modifiers :default [coll]
|
||||||
|
(space-join (map (comp upper-case name) coll)))
|
||||||
|
|
||||||
(defmethod format-clause :select [[_ fields] sql-map]
|
(defmethod format-clause :select [[_ fields] sql-map]
|
||||||
(str "SELECT "
|
(str "SELECT "
|
||||||
(when (:modifiers sql-map)
|
(when (:modifiers sql-map)
|
||||||
(str (space-join (map (comp upper-case name)
|
(str (format-modifiers (:modifiers sql-map)) " "))
|
||||||
(:modifiers sql-map)))
|
|
||||||
" "))
|
|
||||||
(comma-join (map to-sql fields))))
|
(comma-join (map to-sql fields))))
|
||||||
|
|
||||||
(defmethod format-clause :from [[_ tables] _]
|
(defmethod format-clause :from [[_ tables] _]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue