             CreateKeyspace DropKeyspace
             SchemaBuilder$Caching SchemaBuilder$KeyCaching])
   (:require [clojurewerkz.cassaforte.aliases :as alias]
-            clojurewerkz.cassaforte.query.query-builder
-            clojurewerkz.cassaforte.query.types))
+            [clojure.core.match              :refer [match]]
+            [clojurewerkz.cassaforte.query.query-builder]
+            [clojurewerkz.cassaforte.query.types]))
 
 (set! *warn-on-reflection* false)
 

      gte (fn [^String column ^Object value]
            (QueryBuilder/gte column value))]

  (def ^:private query-type-map
    {:in in
     :=  eq
     =   eq

    clojure.lang.IPersistentVector
    (to-clauses [construct]
      (reduce
       (fn [acc v]
         (conj acc
               (match v
                      [column value]     (eq (name column) value)
                      [op column value]  ((get query-type-mappings op) (name column) value)
                      :else (throw (IllegalArgumentException. (str v " is not a valid Clause"))))))
       []
       construct))
    clojure.lang.IPersistentMap
