 
 (extend-protocol ICondition
   java.lang.String
-  (condition [s] (DSL/condition s))
+  (condition* [s] (DSL/condition s))
 
   org.jooq.impl.CombinedCondition
-  (condition [c] c)
+  (condition* [c] c)
 
   org.jooq.impl.SQLCondition
-  (condition [c] c)
+  (condition* [c] c)
 
   clojure.lang.PersistentVector
-  (condition [v]
+  (condition* [v]
     (let [sql    (first v)
           params (rest v)]
       (->> (into-array Object params)

  org.jooq.Field
  (field* [f] f)

  ;; org.jooq.impl.SelectQueryAsExistsCondition
  ;; (field* [f] f)

  org.jooq.impl.Val
  (field* [v] v))

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

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

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

(extend-protocol IName
  java.lang.String

  (field* [_] "Field constructor"))

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

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

(defprotocol IOnStep
  (on [_ conditions]))

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

(defprotocol IVal
  (val [_] "Val constructor"))
