modifiers api
This commit is contained in:
parent
265fa6c81f
commit
d167bfbc12
1 changed files with 13 additions and 2 deletions
|
|
@ -104,6 +104,15 @@
|
||||||
([sql-map o]
|
([sql-map o]
|
||||||
(assoc sql-map :offset 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
|
(def ^:private handlers
|
||||||
{:select select
|
{:select select
|
||||||
:from from
|
:from from
|
||||||
|
|
@ -113,7 +122,8 @@
|
||||||
:having having
|
:having having
|
||||||
:order-by order-by
|
:order-by order-by
|
||||||
:limit limit
|
:limit limit
|
||||||
:offset offset})
|
:offset offset
|
||||||
|
:modifiers modifiers})
|
||||||
|
|
||||||
(def ^:private merge-handlers
|
(def ^:private merge-handlers
|
||||||
{:select merge-select
|
{:select merge-select
|
||||||
|
|
@ -124,7 +134,8 @@
|
||||||
:having merge-having
|
:having merge-having
|
||||||
:order-by merge-order-by
|
:order-by merge-order-by
|
||||||
:limit limit
|
:limit limit
|
||||||
:offset offset})
|
:offset offset
|
||||||
|
:modifiers merge-modifiers})
|
||||||
|
|
||||||
(defn- build-sql [handlers clauses]
|
(defn- build-sql [handlers clauses]
|
||||||
(let [[base clauses] (if (map? (first clauses))
|
(let [[base clauses] (if (map? (first clauses))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue