comparison lib/basis.lig @ 221:79819a6346e2

Fields in SQL expressions
author Adam Chlipala <adamc@hcoop.net>
date Sat, 16 Aug 2008 17:46:26 -0400
parents 2b665e822e9a
children bbe5899a9585
comparison
equal deleted inserted replaced
220:2b665e822e9a 221:79819a6346e2
24 [nm] ~ acc => selected_unselected.1 ~ selected_unselected.2 => 24 [nm] ~ acc => selected_unselected.1 ~ selected_unselected.2 =>
25 [nm = selected_unselected.1 ++ selected_unselected.2] ++ acc) [] tables) bool} 25 [nm = selected_unselected.1 ++ selected_unselected.2] ++ acc) [] tables) bool}
26 -> sql_query (fold (fn nm => fn selected_unselected :: ({Type} * {Type}) => fn acc => [nm] ~ acc => 26 -> sql_query (fold (fn nm => fn selected_unselected :: ({Type} * {Type}) => fn acc => [nm] ~ acc =>
27 [nm = selected_unselected.1] ++ acc) [] tables) 27 [nm = selected_unselected.1] ++ acc) [] tables)
28 28
29 class sql_type 29 val sql_field : otherTabs ::: {{Type}} -> otherFields ::: {Type} -> fieldType ::: Type
30 val sql_bool : sql_type bool 30 -> tab :: Name -> field :: Name
31 val sql_int : sql_type int 31 -> sql_exp ([tab = [field = fieldType] ++ otherFields] ++ otherTabs) fieldType
32 val sql_float : sql_type float
33 val sql_string : sql_type string
34 32
35 val sql_inject : tables ::: {{Type}} -> t ::: Type -> t -> sql_type t -> sql_exp tables t 33 class sql_injectable
34 val sql_bool : sql_injectable bool
35 val sql_int : sql_injectable int
36 val sql_float : sql_injectable float
37 val sql_string : sql_injectable string
38 val sql_inject : tables ::: {{Type}} -> t ::: Type -> t -> sql_injectable t -> sql_exp tables t
36 39
37 con sql_unary :: Type -> Type -> Type 40 con sql_unary :: Type -> Type -> Type
38 val sql_not : sql_unary bool bool 41 val sql_not : sql_unary bool bool
39 val sql_unary : tables ::: {{Type}} -> arg ::: Type -> res ::: Type 42 val sql_unary : tables ::: {{Type}} -> arg ::: Type -> res ::: Type
40 -> sql_unary arg res -> sql_exp tables arg -> sql_exp tables res 43 -> sql_unary arg res -> sql_exp tables arg -> sql_exp tables res
52 val sql_le : sql_comparison 55 val sql_le : sql_comparison
53 val sql_gt : sql_comparison 56 val sql_gt : sql_comparison
54 val sql_ge : sql_comparison 57 val sql_ge : sql_comparison
55 val sql_comparison : sql_comparison 58 val sql_comparison : sql_comparison
56 -> tables ::: {{Type}} -> t ::: Type -> sql_exp tables t -> sql_exp tables t 59 -> tables ::: {{Type}} -> t ::: Type -> sql_exp tables t -> sql_exp tables t
57 -> sql_type t -> sql_exp tables bool 60 -> sql_injectable t -> sql_exp tables bool
58 61
59 (** XML *) 62 (** XML *)
60 63
61 con tag :: {Type} -> {Unit} -> {Unit} -> {Type} -> {Type} -> Type 64 con tag :: {Type} -> {Unit} -> {Unit} -> {Type} -> {Type} -> Type
62 65