From d167bfbc12ed634ea69e339eaf5b56ed25a2e194 Mon Sep 17 00:00:00 2001 From: Justin Kramer Date: Fri, 13 Jul 2012 11:46:37 -0400 Subject: [PATCH] modifiers api --- src/honeysql/core.clj | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/honeysql/core.clj b/src/honeysql/core.clj index edd82d8..162c51e 100644 --- a/src/honeysql/core.clj +++ b/src/honeysql/core.clj @@ -104,6 +104,15 @@ ([sql-map o] (assoc sql-map :offset o))) +(defn modifiers [& ms] + (let [[m ms] (if (map? (first ms)) + [(first ms) (rest ms)] + [{} ms])] + (assoc m :modifiers ms))) + +(defn merge-modifiers [sql-map & ms] + (update-in sql-map [:modifiers] concat ms)) + (def ^:private handlers {:select select :from from @@ -113,7 +122,8 @@ :having having :order-by order-by :limit limit - :offset offset}) + :offset offset + :modifiers modifiers}) (def ^:private merge-handlers {:select merge-select @@ -124,7 +134,8 @@ :having merge-having :order-by merge-order-by :limit limit - :offset offset}) + :offset offset + :modifiers merge-modifiers}) (defn- build-sql [handlers clauses] (let [[base clauses] (if (map? (first clauses))