Skip to content

Commit 955055d

Browse files
authored
Merge pull request #25 from arichiardi/drop-if-exists
[Fix #24] Add :if-exists clause to :drop-table
2 parents e1ede3d + 3247577 commit 955055d

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

deps.edn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{:deps {honeysql {:mvn/version "0.9.4" :exclusions [org.clojure/clojurescript]}}}

project.clj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
:url "https://github.com/nilenso/honeysql-postgres"
44
:license {:name "Eclipse Public License"
55
:url "http://www.eclipse.org/legal/epl-v10.html"}
6-
:dependencies [[org.clojure/clojure "1.8.0"]
7-
[honeysql "0.9.2"]]
6+
;; read dependencies from deps.edn
7+
:plugins [[lein-tools-deps "0.4.1"]]
8+
:middleware [lein-tools-deps.plugin/resolve-dependencies-with-deps-edn]
9+
:lein-tools-deps/config {:config-files [:install :user :project]}
10+
811
:tach {:test-runner-ns 'honeysql-postgres.postgres-test
912
:source-paths ["src" "test"]}
1013
:profiles {:dev {:plugins [[lein-tach "0.4.0"]]}})

src/honeysql_postgres/format.cljc

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,16 @@
138138
(map #(sqlf/space-join (map sqlf/to-sql %)))
139139
sqlf/comma-join)))
140140

141-
(defmethod format-clause :drop-table [[_ tables] _]
142-
(str "DROP TABLE " (->> tables
143-
(map sqlf/to-sql)
144-
sqlf/comma-join)))
141+
(defmethod format-clause :drop-table [[_ params] _]
142+
(let [[if-exists & others] params
143+
tables (if-not (= :if-exists if-exists)
144+
params
145+
others)]
146+
(str "DROP TABLE "
147+
(when (= :if-exists if-exists) "IF EXISTS ")
148+
(->> tables
149+
(map sqlf/to-sql)
150+
sqlf/comma-join))))
145151

146152
(defn- format-over-clause [exp]
147153
(str

test/honeysql_postgres/postgres_test.cljc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,9 @@
190190
(is (= ["CREATE TABLE IF NOT EXISTS tablename"]
191191
(-> (create-table :tablename :if-not-exists)
192192
sql/format)))))
193+
194+
(deftest drop-table-if-exists
195+
(testing "drop a table if it exists"
196+
(is (= ["DROP TABLE IF EXISTS t1, t2, t3"]
197+
(-> (drop-table :if-exists :t1 :t2 :t3)
198+
sql/format)))))

0 commit comments

Comments
 (0)