Mercurial > urweb
diff 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 |
line wrap: on
line diff
--- a/lib/basis.lig Thu Aug 21 14:45:31 2008 -0400 +++ b/lib/basis.lig Thu Aug 21 15:27:04 2008 -0400 @@ -14,6 +14,7 @@ (*** Queries *) con sql_query :: {{Type}} -> Type +con sql_query1 :: {{Type}} -> {{Type}} -> Type con sql_exp :: {{Type}} -> {{Type}} -> Type -> Type con sql_subset :: {{Type}} -> {{Type}} -> Type @@ -28,7 +29,7 @@ val sql_subset_all : tables :: {{Type}} -> sql_subset tables tables -val sql_query : tables ::: {{Type}} +val sql_query1 : tables ::: {{Type}} -> grouped ::: {{Type}} -> selected ::: {{Type}} -> {From : $(fold (fn nm => fn fields :: {Type} => fn acc => @@ -37,6 +38,21 @@ GroupBy : sql_subset tables grouped, Having : sql_exp grouped tables bool, SelectFields : sql_subset grouped selected} + -> sql_query1 tables selected + +type sql_relop +val sql_union : sql_relop +val sql_intersect : sql_relop +val sql_except : sql_relop +val sql_relop : sql_relop + -> tables1 ::: {{Type}} + -> tables2 ::: {{Type}} + -> selected ::: {{Type}} + -> sql_query1 tables1 selected -> sql_query1 tables2 selected -> sql_query1 selected selected + +val sql_query : tables ::: {{Type}} + -> selected ::: {{Type}} + -> sql_query1 tables selected -> sql_query selected val sql_field : otherTabs ::: {{Type}} -> otherFields ::: {Type} -> fieldType ::: Type -> agg ::: {{Type}}