 (defn simple-select-reducible
   "Select objects from the database.
 
-   Same as `simple-select`, but returns something reducible instead of a result set. Like
-   `simple-select`, will call `post-select` on the results, but will do so lazily.
-
-     (transduce (filter can-read?) conj [] (simple-select-reducible 'User {:where [:= :id 1]}))"
+  Same as `simple-select`, but returns something reducible instead of a result set. Like `simple-select`, will call
+  `post-select` on the results, but will do so lazily.
+
+    (transduce (filter can-read?) conj [] (simple-select-reducible 'User {:where [:= :id 1]}))"
   {:style/indent 1}
   [model honeysql-form]
   (let [model (resolve-model model)]

  (apply select-field :id model options))

(defn select-field->field
  "Select fields K and V from objects in the database, and return them as a map from K to V.

     (select-field->field :id :name 'Database) -> {1 \"Sample Dataset\", 2 \"test-data\"}"
  {:style/indent 3}


(defn simple-insert!
  "Do a simple JDBC `insert` of a single object.
  This is similar to `insert!` but returns the ID of the newly created object rather than the object itself,
  and does not call `pre-insert` or `post-insert`.

     (db/simple-insert! 'Label :name \"Toucan Friendly\") -> 1

  Like `insert!`, `simple-insert!` can be called with either a single `row-map` or kv-style arguments."
  {:style/indent 1}
  ([model row-map]
   {:pre [(map? row-map) (every? keyword? (keys row-map))]}
