view sql.urs @ 10:763eb2f2aa5a

Record.mem
author Adam Chlipala <adam@chlipala.net>
date Thu, 03 Feb 2011 09:31:32 -0500
parents 799f43bce62b
children d05943db55e8
line wrap: on
line source
(** Common metaprogramming patterns for SQL syntax construction *)

val sqexps : env ::: {{Type}} -> fields ::: {Type} -> folder fields -> $(map sql_injectable fields)
             -> $fields -> $(map (sql_exp env [] []) fields)
(* Convert a record of Ur values into a record of SQL expressions *)

val selector : tn :: Name -> fs ::: {Type} -> ofs ::: {Type} -> [fs ~ ofs]
               => folder fs -> $(map sql_injectable fs) -> $fs
               -> sql_exp [tn = ofs ++ fs] [] [] bool
(* Build a boolean SQL expression expressing equality of some fields of a table
 * row with a record of Ur values *)