Added DELETE clause that takes a FROM clause
Makes T-SQL join deletes possible
This commit is contained in:
parent
3b74d14e32
commit
0803225582
2 changed files with 12 additions and 1 deletions
|
|
@ -174,6 +174,7 @@
|
||||||
:select 50
|
:select 50
|
||||||
:insert-into 60
|
:insert-into 60
|
||||||
:update 70
|
:update 70
|
||||||
|
:delete 75
|
||||||
:delete-from 80
|
:delete-from 80
|
||||||
:columns 90
|
:columns 90
|
||||||
:set 100
|
:set 100
|
||||||
|
|
@ -455,7 +456,10 @@
|
||||||
|
|
||||||
(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)))
|
||||||
|
|
||||||
(defn cte->sql
|
(defn cte->sql
|
||||||
[[cte-name query]]
|
[[cte-name query]]
|
||||||
(str (to-sql cte-name) " AS " (to-sql query)))
|
(str (to-sql cte-name) " AS " (to-sql query)))
|
||||||
|
|
|
||||||
|
|
@ -219,6 +219,13 @@
|
||||||
(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)))
|
||||||
|
|
||||||
(defmethod build-clause :with [_ m ctes]
|
(defmethod build-clause :with [_ m ctes]
|
||||||
(assoc m :with ctes))
|
(assoc m :with ctes))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue