diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-08-21 15:27:04 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-08-21 15:27:04 -0400 |
commit | 7a98ce3ccaa8e808bcbfc166eda9c9350776fabd (patch) | |
tree | 4acd04558981e546c6623e1199442683eb273eba /lib/basis.lig | |
parent | a2e5705c43f9705768652845b30fc3605cbb4873 (diff) |
Relational operators; string literals for SQL
Diffstat (limited to 'lib/basis.lig')
-rw-r--r-- | lib/basis.lig | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/basis.lig b/lib/basis.lig index 7b6f0917..6ef7408f 100644 --- a/lib/basis.lig +++ b/lib/basis.lig @@ -14,6 +14,7 @@ con sql_table :: {Type} -> Type (*** 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 : keep_drop :: {({Type} * {Type})} 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 @@ val sql_query : tables ::: {{Type}} 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}} |