From ab991b2dd86648884b374e3b2bf4849a8037e206 Mon Sep 17 00:00:00 2001 From: Dave Della Costa Date: Sat, 8 Mar 2014 17:21:56 +0900 Subject: [PATCH] Whoops, realized I had misunderstood intended format for insert-into's values helper. Reverts patch, updates README to suit. --- src/honeysql/format.clj | 14 ++++++-------- test/honeysql/core_test.clj | 5 ++++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/honeysql/format.clj b/src/honeysql/format.clj index d43303b..004a640 100644 --- a/src/honeysql/format.clj +++ b/src/honeysql/format.clj @@ -366,15 +366,13 @@ (str "(" (comma-join (map to-sql fields)) ")")) (defmethod format-clause :values [[_ values] _] - (if (map? values) + (if (sequential? (first values)) + (str "VALUES " (comma-join (for [x values] + (str "(" (comma-join (map to-sql x)) ")")))) (str - "(" (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 ")))) + "(" (comma-join (map to-sql (keys (first values)))) ") VALUES " + (comma-join (for [x values] + (str "(" (comma-join (map to-sql (vals x))) ")")))))) (defmethod format-clause :query-values [[_ query-values] _] (to-sql query-values)) diff --git a/test/honeysql/core_test.clj b/test/honeysql/core_test.clj index d79e1e4..f2da41e 100644 --- a/test/honeysql/core_test.clj +++ b/test/honeysql/core_test.clj @@ -60,5 +60,8 @@ (is (= ["VALUES (?, ?), (?, ?)" "foo1" "bar1" "foo2" "bar2"] (sql/format (values [["foo1" "bar1"] ["foo2" "bar2"]])))) + (is (= ["(foo, bar) VALUES (1, ?)" "bar"] + (sql/format (values [{:foo 1 :bar "bar"}])))) + (is (= ["(foo, bar) VALUES (?, ?)" "foo" "bar"] - (sql/format (values {:foo "foo" :bar "bar"}))))) + (sql/format (values [{:foo "foo" :bar "bar"}])))))