Fix using maps with different key orders in :values
This commit is contained in:
parent
7b61250b2d
commit
bdfee0883e
2 changed files with 12 additions and 5 deletions
|
|
@ -541,10 +541,11 @@
|
||||||
(if (sequential? (first values))
|
(if (sequential? (first values))
|
||||||
(str "VALUES " (comma-join (for [x values]
|
(str "VALUES " (comma-join (for [x values]
|
||||||
(str "(" (comma-join (map to-sql x)) ")"))))
|
(str "(" (comma-join (map to-sql x)) ")"))))
|
||||||
(str
|
(let [cols (keys (first values))]
|
||||||
"(" (comma-join (map to-sql (keys (first values)))) ") VALUES "
|
(str
|
||||||
(comma-join (for [x values]
|
"(" (comma-join (map to-sql cols)) ") VALUES "
|
||||||
(str "(" (comma-join (map to-sql (vals x))) ")"))))))
|
(comma-join (for [x values]
|
||||||
|
(str "(" (comma-join (map #(to-sql (get x %)) cols)) ")")))))))
|
||||||
|
|
||||||
(defmethod format-clause :query-values [[_ query-values] _]
|
(defmethod format-clause :query-values [[_ query-values] _]
|
||||||
(to-sql query-values))
|
(to-sql query-values))
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,13 @@
|
||||||
(insert-into :foo)
|
(insert-into :foo)
|
||||||
(columns :bar)
|
(columns :bar)
|
||||||
(values [[(honeysql.format/value {:baz "my-val"})]])
|
(values [[(honeysql.format/value {:baz "my-val"})]])
|
||||||
sql/format))))
|
sql/format)))
|
||||||
|
(is (= ["INSERT INTO foo (a, b, c) VALUES (?, ?, ?), (?, ?, ?)"
|
||||||
|
"a" "b" "c" "a" "b" "c"]
|
||||||
|
(-> (insert-into :foo)
|
||||||
|
(values [(array-map :a "a" :b "b" :c "c")
|
||||||
|
(hash-map :a "a" :b "b" :c "c")])
|
||||||
|
sql/format))))
|
||||||
|
|
||||||
(deftest test-operators
|
(deftest test-operators
|
||||||
(testing "="
|
(testing "="
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue