I like the first option:

 [:foo {:bar :desc} {:quux :asc}]


Simple, succinct, & flexible.
Alan

On Wed, May 4, 2016 at 3:36 PM, Sean Corfield <[email protected]> wrote:

> What?
>         Clojure contrib wrapper for JDBC
>         https://github.com/clojure/java.jdbc#change-log
>
> The 0.6.0 Alpha builds have been out for a couple of weeks and we have
> Alpha 2 in production at World Singles. I’ve received no reports of
> problems with the new API so I’m declaring Release Candidate 1.
>
> This is functionally identical to Alpha 2, with the additional of two
> convenience functions, adapted from very common usage at World Singles,
> which make sense to add to core now that the API has changed to make
> options a single map:
>
> clojure.java.jdbc/get-by-id
> ([db table pk-value]
>  [db table pk-value pk-name-or-opts]
>  [db table pk-value pk-name opts])
>   Given a database connection, a table name, a primary key value, an
>   optional primary key column name, and an optional options map, return
>   a single matching row, or nil.
>   The primary key column name defaults to :id.
>
> clojure.java.jdbc/find-by-keys
> ([db table columns]
>  [db table columns opts])
>   Given a database connection, a table name, a map of column name/value
>   pairs, and an optional options map, return any matching rows.
>
> These cover two very common use cases that you would otherwise have to
> write trivial boilerplate SQL for.
>
> I am _considering_ adding ORDER BY functionality to find-by-keys for
> release but I’m not sure of the best syntax. What we have at World Singles
> is a vector of either column names or single-element maps from column names
> to orders:
>
>        [:foo {:bar :desc} {:quux :asc}]
>
> so :foo is equivalent to {:foo :asc} but that’s a little bulky for a
> single descending key:
>
>        [{:foo :desc}]
>
> Perhaps a simple vector of column name direction pairs? You’d have to
> specify direction tho’:
>
>         [:foo :asc :bar :desc :quux :asc]
>
> For a single column:
>
>         [:foo :asc]
>
> Although there would be no ambiguity between a single (ascending) column
> name – either a string or keyword – and an order vector:
>
>         (find-by-keys db-spec :table example-map {:order-by :foo})
>         (find-by-keys db-spec :table example-map {:order-by [:foo :desc]})
>         (find-by-keys db-spec :table example-map {:order-by [:foo :asc
> :bar :desc]})
>
> Sean Corfield -- (904) 302-SEAN
> World Singles -- http://worldsingles.com/
>
>
>
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to