 
 (defn delete-table "Deletes a table, go figure."
   [client-opts table]
-  (as-map (.deleteTable (db-client client-opts) (DeleteTableRequest. (name table)))))
+  (as-map (.deleteTable (db-client client-opts) (DeleteTableRequest. (name table))) nil))
 
 ;;;; API - items
 

             lsindexes (.setLocalSecondaryIndexes
                        (local-2nd-indexes hash-keydef lsindexes))
             gsindexes (.setGlobalSecondaryIndexes
                        (global-2nd-indexes gsindexes)))))]
    (if-not block? result @(table-status-watch client-opts table-name :creating))))

(comment (time (create-table mc "delete-me7" [:id :s] {:block? true})))

      (some->> (.getNS x) (mapv ddb-num-str->num) (into #{}))
      (some->> (.getBS x) (mapv nt-thaw)          (into #{}))))

(defn rotary-deserializer "Returns the Clojure value of given
AttributeValue object as persisted by rotary."
  [^AttributeValue x]
  (or (.getS x)
      (some->> (.getN  x) Long.)
      (some->> (.getB  x) .array)
      (some->> (.getSS x) (into #{}))
      (some->> (.getNS x) (mapv (fn [^String s] (Long. s))) (into #{}))
      (some->> (.getBS x) (mapv (fn [^java.nio.ByteBuffer b] (.array b))) (into #{}))
      ))

(defn- set-of [f s]
  (and (set? s) (every? f s)))

(defn rotary-serializer
  "Convert a value into an AttributeValue object."
  ^AttributeValue [x]
  (cond
   (string? x) (doto (AttributeValue.) (.setS x))
   (number? x) (doto (AttributeValue.) (.setN (str x)))
   (set-of string? x) (doto (AttributeValue.) (.setSS x))
   (set-of number? x) (doto (AttributeValue.) (.setNS (map str x)))
   (set? x) (throw (Exception. "Set must be all numbers or all strings"))
   :else (doto (AttributeValue.) (.setB (java.nio.ByteBuffer/wrap x)))
;      :else (throw (Exception. (str "Unknown value type: " (type
;      x))))
   ))

(defn default-serializer "Returns an AttributeValue object for given Clojure value."
  ^AttributeValue [x]
  (cond
   (stringy? x)
