comparison lib/basis.lig @ 224:cb8a68964ebb

GROUP BY added to query type, with trivial parsing, for now
author Adam Chlipala <adamc@hcoop.net>
date Thu, 21 Aug 2008 12:54:09 -0400
parents bbe5899a9585
children 5ac2cf59b839
comparison
equal deleted inserted replaced
223:bbe5899a9585 224:cb8a68964ebb
27 [nm = fields.1] ++ acc) [] keep_drop) 27 [nm = fields.1] ++ acc) [] keep_drop)
28 val sql_subset_all : tables :: {{Type}} 28 val sql_subset_all : tables :: {{Type}}
29 -> sql_subset tables tables 29 -> sql_subset tables tables
30 30
31 val sql_query : tables ::: {{Type}} 31 val sql_query : tables ::: {{Type}}
32 (*-> grouped ::: {{Type}}*) 32 -> grouped ::: {{Type}}
33 -> selected ::: {{Type}} 33 -> selected ::: {{Type}}
34 -> {From : $(fold (fn nm => fn fields :: {Type} => fn acc => 34 -> {From : $(fold (fn nm => fn fields :: {Type} => fn acc =>
35 [nm] ~ acc => [nm = sql_table fields] ++ acc) [] tables), 35 [nm] ~ acc => [nm = sql_table fields] ++ acc) [] tables),
36 Where : sql_exp tables [] bool, 36 Where : sql_exp tables [] bool,
37 (*GroupBy : sql_subset tables grouped, 37 GroupBy : sql_subset tables grouped,
38 Having : sql_exp grouped tables bool,*) 38 Having : sql_exp grouped tables bool,
39 SelectFields : sql_subset tables selected} 39 SelectFields : sql_subset grouped selected}
40 -> sql_query selected 40 -> sql_query selected
41 41
42 val sql_field : otherTabs ::: {{Type}} -> otherFields ::: {Type} -> fieldType ::: Type 42 val sql_field : otherTabs ::: {{Type}} -> otherFields ::: {Type} -> fieldType ::: Type
43 -> tab :: Name -> field :: Name 43 -> tab :: Name -> field :: Name
44 -> agg ::: {{Type}} 44 -> agg ::: {{Type}}