From bcefd5b5f6914e3439e9efc3486196fa6dc58e32 Mon Sep 17 00:00:00 2001 From: Scott Nelson Date: Wed, 23 Apr 2014 13:35:25 -0400 Subject: [PATCH] Added reorder function --- src/korma/core.clj | 9 +++++++++ test/korma/test/core.clj | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/src/korma/core.clj b/src/korma/core.clj index 8543db5..a5ed26d 100644 --- a/src/korma/core.clj +++ b/src/korma/core.clj @@ -277,6 +277,15 @@ [query field & [dir]] (update-in query [:order] conj [field (or dir :ASC)])) +(defn reorder + "Clear all order clauses then add an ORDER BY clause to a select, union, + union-all or intersect query. + field should be a keyword of the field name, dir is ASC by default. + + (reorder query :created :asc)" + [query field & [dir]] + (order (assoc query :order []) field dir)) + (defn values "Add records to an insert clause. values can either be a vector of maps or a single map. diff --git a/test/korma/test/core.clj b/test/korma/test/core.clj index e7dce98..2a6636c 100644 --- a/test/korma/test/core.clj +++ b/test/korma/test/core.clj @@ -188,6 +188,13 @@ "SELECT \"users\".* FROM \"users\"" (select users (where {}))))) +(deftest order-reorder + (sql-only + (is (= "SELECT \"users\".* FROM \"users\" ORDER BY \"users\".\"created\" DESC" + (select users + (order :updated) + (reorder :created :DESC)))))) + (deftest with-many (with-out-str (dry-run