# HG changeset patch # User Adam Chlipala # Date 1219337649 14400 # Node ID cb8a68964ebba3c029b0bcb1806c6cc2873f7f6e # Parent bbe5899a95858835e66c3f68ba5bc12fcc379ab5 GROUP BY added to query type, with trivial parsing, for now diff -r bbe5899a9585 -r cb8a68964ebb lib/basis.lig --- a/lib/basis.lig Thu Aug 21 12:49:29 2008 -0400 +++ b/lib/basis.lig Thu Aug 21 12:54:09 2008 -0400 @@ -29,14 +29,14 @@ -> sql_subset tables tables val sql_query : tables ::: {{Type}} - (*-> grouped ::: {{Type}}*) + -> grouped ::: {{Type}} -> selected ::: {{Type}} -> {From : $(fold (fn nm => fn fields :: {Type} => fn acc => [nm] ~ acc => [nm = sql_table fields] ++ acc) [] tables), Where : sql_exp tables [] bool, - (*GroupBy : sql_subset tables grouped, - Having : sql_exp grouped tables bool,*) - SelectFields : sql_subset tables selected} + GroupBy : sql_subset tables grouped, + Having : sql_exp grouped tables bool, + SelectFields : sql_subset grouped selected} -> sql_query selected val sql_field : otherTabs ::: {{Type}} -> otherFields ::: {Type} -> fieldType ::: Type diff -r bbe5899a9585 -r cb8a68964ebb src/lacweb.grm --- a/src/lacweb.grm Thu Aug 21 12:49:29 2008 -0400 +++ b/src/lacweb.grm Thu Aug 21 12:54:09 2008 -0400 @@ -654,6 +654,12 @@ (ERecord tables, loc)), ((CName "Where", loc), wopt), + ((CName "GroupBy", loc), + (ECApp ((EVar (["Basis"], "sql_subset_all"), loc), + (CWild (KRecord (KRecord (KType, loc), loc), + loc), loc)), loc)), + ((CName "Having", loc), + hopt), ((CName "SelectFields", loc), (ECApp ((EVar (["Basis"], "sql_subset"), loc), sel), loc))], loc)