    (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))))

   (d/chain
    (session/execute
     session
     (insert-statement table record opts)
     (dissoc opts :if-not-exists :using))
    first)))


   (d/chain
    (session/execute
     session
     (delete-statement
      table
      key
      record-or-key-value
      (select-keys opts [:only-if :if-exists :using :where]))
     (dissoc opts :only-if :if-exists :using :where))
    first)))
