 (ns cljooq.dsl
   "Sql building dsl"
-  (:import org.jooq.impl.DSL))
+  (:refer-clojure :exclude [val group-by and or not name])
+  (:require [cljooq.core :as core]
+            [cljooq.proto :as proto])
+  (:import org.jooq.impl.DSL
+           org.jooq.impl.DefaultConfiguration))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; SQL Renderer Code
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Protocols for constructors


(extend-protocol IField
  java.lang.String
  (field [s] (DSL/field s))

  clojure.lang.Keyword
  (field [kw] (field (name kw))))

(extend-protocol ITable
  java.lang.String
  (table [s] (DSL/table s))

  clojure.lang.Keyword
  (table [kw] (table (name kw)))

  org.jooq.Table
  (table [t] t))

(extend-protocol ICondition
  java.lang.String

(defprotocol ITable
  (table [_] "Table constructor"))

(defprotocol IName
  (name [_] "Name constructor"))

(defprotocol ICondition
  (condition [_] "Condition constructor"))

