   ([table-name keyspace]
      (.toString (QueryBuilder/truncate (name keyspace) (name table-name)))))
 
+(defmacro batch
+  [statements]
+  `(binding [*batch* true]
+     (let [builder# (QueryBuilder/batch (into-array ~statements))]
+       (.toString builder#)
+       )
+    )
+  )
 ;; Batch batch(RegularStatement... statements)
 ;; Batch unloggedBatch(RegularStatement... statements)
 ;; Truncate truncate(String table)

         (reduce (fn [builder [statement-name statement-args]]
                   ((get renderers statement-name) builder statement-args))
                 (QueryBuilder/update (name table-name)))
         (.toString))))

;;
;; Delete Query

  (:require [clojurewerkz.cassaforte.aliases :as alias]
            clojurewerkz.cassaforte.query.query-builder
            clojurewerkz.cassaforte.query.types))

(def ^:dynamic *batch* false)

(defn maybe-stringify
  [statement]
  (if *batch*
    statement
    (.toString statement)))

(alias/alias-ns 'clojurewerkz.cassaforte.query.query-builder)
(alias/alias-ns 'clojurewerkz.cassaforte.query.types)
