diff lib/basis.lig @ 207:cc68da3801bc

Non-star SELECT
author Adam Chlipala <adamc@hcoop.net>
date Thu, 14 Aug 2008 18:35:08 -0400
parents 241c9a0e3397
children 1487c712eb12
line wrap: on
line diff
--- a/lib/basis.lig	Thu Aug 14 15:27:35 2008 -0400
+++ b/lib/basis.lig	Thu Aug 14 18:35:08 2008 -0400
@@ -15,10 +15,12 @@
 
 con sql_query :: {{Type}} -> Type
 
-val sql_query : tables ::: {{Type}}
-        -> $(fold (fn nm => fn ts => fn acc => [nm] ~ acc =>
-                [nm = sql_table ts] ++ acc) [] tables)
-        -> sql_query tables
+val sql_query : tables :: {({Type} * {Type})}
+        -> $(fold (fn nm => fn selected_unselected :: ({Type} * {Type}) => fn acc =>
+                [nm] ~ acc => selected_unselected.1 ~ selected_unselected.2 =>
+                [nm = sql_table (selected_unselected.1 ++ selected_unselected.2)] ++ acc) [] tables)
+        -> sql_query (fold (fn nm => fn selected_unselected :: ({Type} * {Type}) => fn acc => [nm] ~ acc =>
+                [nm = selected_unselected.1] ++ acc) [] tables)
 
 
 (** XML *)