Mercurial > urweb
comparison lib/basis.lig @ 229:016d71e878c1
Relational operators; string literals for SQL
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 21 Aug 2008 15:27:04 -0400 |
parents | 5ac2cf59b839 |
children | 87d41ac28b30 |
comparison
equal
deleted
inserted
replaced
228:19e5791923d0 | 229:016d71e878c1 |
---|---|
12 con sql_table :: {Type} -> Type | 12 con sql_table :: {Type} -> Type |
13 | 13 |
14 (*** Queries *) | 14 (*** Queries *) |
15 | 15 |
16 con sql_query :: {{Type}} -> Type | 16 con sql_query :: {{Type}} -> Type |
17 con sql_query1 :: {{Type}} -> {{Type}} -> Type | |
17 con sql_exp :: {{Type}} -> {{Type}} -> Type -> Type | 18 con sql_exp :: {{Type}} -> {{Type}} -> Type -> Type |
18 | 19 |
19 con sql_subset :: {{Type}} -> {{Type}} -> Type | 20 con sql_subset :: {{Type}} -> {{Type}} -> Type |
20 val sql_subset : keep_drop :: {({Type} * {Type})} | 21 val sql_subset : keep_drop :: {({Type} * {Type})} |
21 -> sql_subset | 22 -> sql_subset |
26 [nm] ~ acc => | 27 [nm] ~ acc => |
27 [nm = fields.1] ++ acc) [] keep_drop) | 28 [nm = fields.1] ++ acc) [] keep_drop) |
28 val sql_subset_all : tables :: {{Type}} | 29 val sql_subset_all : tables :: {{Type}} |
29 -> sql_subset tables tables | 30 -> sql_subset tables tables |
30 | 31 |
31 val sql_query : tables ::: {{Type}} | 32 val sql_query1 : tables ::: {{Type}} |
32 -> grouped ::: {{Type}} | 33 -> grouped ::: {{Type}} |
33 -> selected ::: {{Type}} | 34 -> selected ::: {{Type}} |
34 -> {From : $(fold (fn nm => fn fields :: {Type} => fn acc => | 35 -> {From : $(fold (fn nm => fn fields :: {Type} => fn acc => |
35 [nm] ~ acc => [nm = sql_table fields] ++ acc) [] tables), | 36 [nm] ~ acc => [nm = sql_table fields] ++ acc) [] tables), |
36 Where : sql_exp tables [] bool, | 37 Where : sql_exp tables [] bool, |
37 GroupBy : sql_subset tables grouped, | 38 GroupBy : sql_subset tables grouped, |
38 Having : sql_exp grouped tables bool, | 39 Having : sql_exp grouped tables bool, |
39 SelectFields : sql_subset grouped selected} | 40 SelectFields : sql_subset grouped selected} |
41 -> sql_query1 tables selected | |
42 | |
43 type sql_relop | |
44 val sql_union : sql_relop | |
45 val sql_intersect : sql_relop | |
46 val sql_except : sql_relop | |
47 val sql_relop : sql_relop | |
48 -> tables1 ::: {{Type}} | |
49 -> tables2 ::: {{Type}} | |
50 -> selected ::: {{Type}} | |
51 -> sql_query1 tables1 selected -> sql_query1 tables2 selected -> sql_query1 selected selected | |
52 | |
53 val sql_query : tables ::: {{Type}} | |
54 -> selected ::: {{Type}} | |
55 -> sql_query1 tables selected | |
40 -> sql_query selected | 56 -> sql_query selected |
41 | 57 |
42 val sql_field : otherTabs ::: {{Type}} -> otherFields ::: {Type} -> fieldType ::: Type -> agg ::: {{Type}} | 58 val sql_field : otherTabs ::: {{Type}} -> otherFields ::: {Type} -> fieldType ::: Type -> agg ::: {{Type}} |
43 -> tab :: Name -> field :: Name | 59 -> tab :: Name -> field :: Name |
44 -> sql_exp ([tab = [field = fieldType] ++ otherFields] ++ otherTabs) agg fieldType | 60 -> sql_exp ([tab = [field = fieldType] ++ otherFields] ++ otherTabs) agg fieldType |