summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-08-21 15:27:04 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-08-21 15:27:04 -0400
commit7a98ce3ccaa8e808bcbfc166eda9c9350776fabd (patch)
tree4acd04558981e546c6623e1199442683eb273eba /lib
parenta2e5705c43f9705768652845b30fc3605cbb4873 (diff)
Relational operators; string literals for SQL
Diffstat (limited to 'lib')
-rw-r--r--lib/basis.lig18
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}}