Fixes formatting for values, adds tests.
This commit is contained in:
parent
88bc556578
commit
f489eda4d0
2 changed files with 15 additions and 6 deletions
|
|
@ -366,13 +366,15 @@
|
|||
(str "(" (comma-join (map to-sql fields)) ")"))
|
||||
|
||||
(defmethod format-clause :values [[_ values] _]
|
||||
(if (sequential? (first values))
|
||||
(str "VALUES " (comma-join (for [x values]
|
||||
(str "(" (comma-join (map to-sql x)) ")"))))
|
||||
(if (map? values)
|
||||
(str
|
||||
"(" (comma-join (map to-sql (keys (first values)))) ") VALUES "
|
||||
(comma-join (for [x values]
|
||||
(str "(" (comma-join (map to-sql (vals x))) ")"))))))
|
||||
"(" (comma-join (map to-sql (keys values))) ") "
|
||||
"VALUES "
|
||||
(str "(" (comma-join (map to-sql (vals values))) ")"))
|
||||
(->> values
|
||||
(reduce #(conj %1 (str "(" (comma-join (map to-sql %2)) ")")) [])
|
||||
comma-join
|
||||
(str "VALUES "))))
|
||||
|
||||
(defmethod format-clause :query-values [[_ query-values] _]
|
||||
(to-sql query-values))
|
||||
|
|
|
|||
|
|
@ -55,3 +55,10 @@
|
|||
"bort" "gabba" 2])))
|
||||
(testing "SQL data prints and reads correctly"
|
||||
(is (= m1 (read-string (pr-str m1)))))))
|
||||
|
||||
(deftest can-format-values-properly
|
||||
(is (= ["VALUES (?, ?), (?, ?)" "foo1" "bar1" "foo2" "bar2"]
|
||||
(sql/format (values [["foo1" "bar1"] ["foo2" "bar2"]]))))
|
||||
|
||||
(is (= ["(foo, bar) VALUES (?, ?)" "foo" "bar"]
|
||||
(sql/format (values {:foo "foo" :bar "bar"})))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue