view sql.urs @ 6:799f43bce62b

Import some code from iwl
author Adam Chlipala <adam@chlipala.net>
date Tue, 14 Dec 2010 10:33:24 -0500
parents
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 *)