Added separate :delete that can take a :from clause

Supports MS SQL style join DELETE alias1 from table1 alias1 table2 alias2
This commit is contained in:
Niels van Klaveren 2014-08-18 17:08:20 +02:00
parent 88bc556578
commit 49538bfa10
2 changed files with 11 additions and 1 deletions

View file

@ -156,7 +156,7 @@
(def clause-order (def clause-order
"Determines the order that clauses will be placed within generated SQL" "Determines the order that clauses will be placed within generated SQL"
[:select :insert-into :update :delete-from :columns :set :from :join [:select :insert-into :update :delete :delete-from :columns :set :from :join
:left-join :right-join :where :group-by :having :order-by :limit :offset :left-join :right-join :where :group-by :having :order-by :limit :offset
:values :query-values]) :values :query-values])
@ -386,3 +386,6 @@
(defmethod format-clause :delete-from [[_ table] _] (defmethod format-clause :delete-from [[_ table] _]
(str "DELETE FROM " (to-sql table))) (str "DELETE FROM " (to-sql table)))
(defmethod format-clause :delete [[_ table] _]
(str "DELETE " (to-sql table)))

View file

@ -209,3 +209,10 @@
(defn delete-from (defn delete-from
([table] (delete-from nil table)) ([table] (delete-from nil table))
([m table] (build-clause :delete-from m table))) ([m table] (build-clause :delete-from m table)))
(defmethod build-clause :delete [_ m table]
(assoc m :delete table))
(defn delete
([table] (delete nil table))
([m table] (build-clause :delete m table)))