diff options
-rw-r--r-- | lib/basis.lig | 8 | ||||
-rw-r--r-- | src/lacweb.grm | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/basis.lig b/lib/basis.lig index 8299f200..099caab8 100644 --- a/lib/basis.lig +++ b/lib/basis.lig @@ -29,14 +29,14 @@ val sql_subset_all : tables :: {{Type}} -> 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 --git a/src/lacweb.grm b/src/lacweb.grm index 1eb85181..1431f792 100644 --- a/src/lacweb.grm +++ b/src/lacweb.grm @@ -654,6 +654,12 @@ query : SELECT select FROM tables wopt (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) |