summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/basis.lig8
-rw-r--r--src/lacweb.grm6
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)