 (defn or
   "Logican operator `or`."
   [& conditions]
-  (let [conditions (map condition conditions)]
+  (let [conditions (map condition* conditions)]
     (reduce (fn [acc v] (.or acc v))
             (first conditions)
             (rest conditions))))

(defn field
  [data & {:keys [alias] :as opts}]
  (let [f (field* data)]
    (if alias
      (.as f (clojure.core/name alias))
      f)))

  org.jooq.Field
  (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
