From 626ab0234ad2e578992d128ced35c2003902e90f Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Wed, 15 May 2013 18:51:21 +1000 Subject: Split out core into compiler/dsl/query. The query namespace really only exists because I didn't want to put it in dsl, but I couldn't put it in core without a circular dependency. Users should only have to :require core to do things, though. It just aliases other stuff to make that work. --- src/clojure_sql/query.clj | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/clojure_sql/query.clj (limited to 'src/clojure_sql/query.clj') diff --git a/src/clojure_sql/query.clj b/src/clojure_sql/query.clj new file mode 100644 index 0000000..239aab4 --- /dev/null +++ b/src/clojure_sql/query.clj @@ -0,0 +1,20 @@ +(ns clojure-sql.query + (:require [clojure-sql.compiler :as c])) + + +(def ^:private ^:dynamic *database-type* nil) +(defn set-database-type! [new-type] + (alter-var-root #'*database-type* (constantly new-type)) + nil) + +(def ^:private ^:dynamic *query-deref-behaviour* #(c/compile-query *database-type* %)) +(defn set-query-deref-behaviour! [f] + (alter-var-root #'*query-deref-behaviour* (constantly f)) + nil) + +(defrecord ^:private Query [] + clojure.lang.IDeref + (deref [this] (*query-deref-behaviour* this))) +(defmethod print-method Query [query writer] + (binding [*out* writer] + (pr (c/compile-query nil query)))) -- cgit v1.2.3