Refactor to sql-format for now

This commit is contained in:
Sean Corfield 2020-09-20 21:33:04 -07:00
parent 2c98d35f63
commit b6d6d2c4f4
2 changed files with 20 additions and 16 deletions

View file

@ -227,15 +227,19 @@
:else :else
["?" x])) ["?" x]))
(defn- sql-format
"Format the data into SQL + params according to the options."
[data opts]
(let [dialect (get dialects (get opts :dialect :ansi))]
(binding [*dialect* dialect
*quoted* (if (contains? opts :quoted) (:quoted opts) true)]
(format-dsl data))))
(defn format (defn format
"Turn the data DSL into a vector containing a SQL string followed by "Turn the data DSL into a vector containing a SQL string followed by
any parameter values that were encountered in the DSL structure." any parameter values that were encountered in the DSL structure."
([data] (format data {})) ([data] (sql-format data {}))
([data opts] ([data opts] (sql-format data opts)))
(let [dialect (get dialects (get opts :dialect :ansi))]
(binding [*dialect* dialect
*quoted* (if (contains? opts :quoted) (:quoted opts) true)]
(format-dsl data)))))
(defn set-dialect! (defn set-dialect!
"Set the default dialect for formatting. "Set the default dialect for formatting.
@ -254,13 +258,13 @@
(format-expr 1) (format-expr 1)
(format-where :where [:= :id 1]) (format-where :where [:= :id 1])
(format-dsl {:select [:*] :from [:table] :where [:= :id 1]}) (format-dsl {:select [:*] :from [:table] :where [:= :id 1]})
(format {:select [:t.*] :from [[:table :t]] :where [:= :id 1]}) (sql-format {:select [:t.*] :from [[:table :t]] :where [:= :id 1]} {})
(format {:select [:*] :from [:table] :group-by [:foo :bar]}) (sql-format {:select [:*] :from [:table] :group-by [:foo :bar]} {})
(format {:select [:*] :from [:table] :group-by [[:date :bar]]}) (sql-format {:select [:*] :from [:table] :group-by [[:date :bar]]} {})
(format {:select [:*] :from [:table] :order-by [[:foo :desc] :bar]}) (sql-format {:select [:*] :from [:table] :order-by [[:foo :desc] :bar]} {})
(format {:select [:*] :from [:table] :order-by [[[:date :expiry] :desc] :bar]}) (sql-format {:select [:*] :from [:table] :order-by [[[:date :expiry] :desc] :bar]} {})
(format {:select [:*] :from [:table] :where [:< [:date_add :expiry [:interval 30 :days]] [:now]]}) (sql-format {:select [:*] :from [:table] :where [:< [:date_add :expiry [:interval 30 :days]] [:now]]} {})
(format-expr [:interval 30 :days]) (format-expr [:interval 30 :days])
(format {:select [:*] :from [:table] :where [:= :id 1]} {:dialect :mysql}) (sql-format {:select [:*] :from [:table] :where [:= :id 1]} {:dialect :mysql})
(format {:select [:*] :from [:table] :where [:in :id [1 2 3 4]]}) (sql-format {:select [:*] :from [:table] :where [:in :id [1 2 3 4]]} {})
,) ,)

View file

@ -7,5 +7,5 @@
(deftest mysql-tests (deftest mysql-tests
(is (= ["SELECT * FROM `table` WHERE `id` = ?" 1] (is (= ["SELECT * FROM `table` WHERE `id` = ?" 1]
(sut/format {:select [:*] :from [:table] :where [:= :id 1]} (#'sut/sql-format {:select [:*] :from [:table] :where [:= :id 1]}
{:dialect :mysql})))) {:dialect :mysql}))))