summaryrefslogtreecommitdiff
path: root/src/clojure_sql/core.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure_sql/core.clj')
-rw-r--r--src/clojure_sql/core.clj29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/clojure_sql/core.clj b/src/clojure_sql/core.clj
index 03f992b..81c9c13 100644
--- a/src/clojure_sql/core.clj
+++ b/src/clojure_sql/core.clj
@@ -7,6 +7,23 @@
[clojure-sql.util :as u]
[clojure.walk]))
+
+(defmacro pull [ns & vlist]
+ `(do ~@(for [i vlist
+ :let [sym (symbol (name ns) (name i))]]
+ `(def ~(with-meta i
+ (u/map-vals (fn [x] `(quote ~x)) (meta (resolve sym))))
+ ~sym))
+ nil))
+
+(pull clojure-sql.dsl
+ table join
+ project rename
+ select
+ group having
+ sort take drop)
+
+
(def ^:private ^:dynamic *database-type* nil)
(defn set-database-type! [new-type]
(alter-var-root #'*database-type* (constantly new-type))
@@ -24,18 +41,6 @@
(pr (c/compile-select *database-type* query))))
-(def table #'d/table)
-(def project #'d/project)
-(def rename #'d/rename)
-(def join #'d/join)
-(def select #'d/select)
-(def group #'d/group)
-(def having #'d/having)
-(def sort #'d/sort)
-(def take #'d/take)
-(def drop #'d/drop)
-
-
(defn run-query [query]
(assert *query-executor* "Cannot execute a query without a query executor")
(*query-executor* :select (c/compile-select *database-type* query)))