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)) ")"))
|
(str "(" (comma-join (map to-sql fields)) ")"))
|
||||||
|
|
||||||
(defmethod format-clause :values [[_ values] _]
|
(defmethod format-clause :values [[_ values] _]
|
||||||
(if (sequential? (first values))
|
(if (map? values)
|
||||||
(str "VALUES " (comma-join (for [x values]
|
|
||||||
(str "(" (comma-join (map to-sql x)) ")"))))
|
|
||||||
(str
|
(str
|
||||||
"(" (comma-join (map to-sql (keys (first values)))) ") VALUES "
|
"(" (comma-join (map to-sql (keys values))) ") "
|
||||||
(comma-join (for [x values]
|
"VALUES "
|
||||||
(str "(" (comma-join (map to-sql (vals x))) ")"))))))
|
(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] _]
|
(defmethod format-clause :query-values [[_ query-values] _]
|
||||||
(to-sql query-values))
|
(to-sql query-values))
|
||||||
|
|
|
||||||
|
|
@ -55,3 +55,10 @@
|
||||||
"bort" "gabba" 2])))
|
"bort" "gabba" 2])))
|
||||||
(testing "SQL data prints and reads correctly"
|
(testing "SQL data prints and reads correctly"
|
||||||
(is (= m1 (read-string (pr-str m1)))))))
|
(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