    (let [strm (session/execute-buffered
                session
                (select-statement
-                table key record-or-key-value
-                (dissoc opts :columns :where :only-if :order-by :limit))
+                table
+                key
+                record-or-key-value
+                (select-keys opts [:columns :where :only-if :order-by :limit]))
                (-> opts
-                   (dissoc :buffer-size)))]
+                   (dissoc :columns :where :only-if :order-by :limit :buffer-size)))]
      (if buffer-size
        (s/buffer buffer-size strm)
        strm))))

    opts]
   (session/execute
    session
    (select-statement table key record-or-key-value
                      (dissoc opts :columns :where :only-if :order-by :limit))
    opts)))

(defn select-buffered
  "select a stream of records

   (d/chain
    (session/execute
     session
     (update-statement
      table
      key
      record
      (select-keys opts [:only-if :if-exists :using :set-columns]))
     (dissoc opts :only-if :if-exists :using :set-columns))
    first)))

