     opts]
    (session/execute
     session
-    (select-statement table key record-or-key-value
-                      (dissoc opts :columns :where :only-if :order-by :limit))
-    opts)))
+    (select-statement table
+                      key
+                      record-or-key-value
+                      (select-keys opts [:columns :where :only-if :order-by :limit]))
+    (dissoc opts :columns :where :only-if :order-by :limit))))
 
 (defn select-buffered
   "select a stream of records

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

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

