diff src/core_util.sml @ 704:70cbdcf5989b

UNIQUE constraints
author Adam Chlipala <adamc@hcoop.net>
date Tue, 07 Apr 2009 12:24:31 -0400
parents 230654093b51
children e6706a1df013
line wrap: on
line diff
--- a/src/core_util.sml	Sun Apr 05 16:17:32 2009 -0400
+++ b/src/core_util.sml	Tue Apr 07 12:24:31 2009 -0400
@@ -933,10 +933,12 @@
                             (DValRec vis', loc))
                 end
               | DExport _ => S.return2 dAll
-              | DTable (x, n, c, s) =>
-                S.map2 (mfc ctx c,
+              | DTable (x, n, c, s, e) =>
+                S.bind2 (mfc ctx c,
                      fn c' =>
-                        (DTable (x, n, c', s), loc))
+                        S.map2 (mfe ctx e,
+                                fn e' =>
+                                   (DTable (x, n, c', s, e'), loc)))
               | DSequence _ => S.return2 dAll
               | DDatabase _ => S.return2 dAll
               | DCookie (x, n, c, s) =>
@@ -1058,7 +1060,7 @@
                                         foldl (fn ((x, n, t, e, s), ctx) => bind (ctx, NamedE (x, n, t, NONE, s)))
                                         ctx vis
                                       | DExport _ => ctx
-                                      | DTable (x, n, c, s) =>
+                                      | DTable (x, n, c, s, _) =>
                                         let
                                             val t = (CApp ((CFfi ("Basis", "sql_table"), #2 d'), c), #2 d')
                                         in
@@ -1134,7 +1136,7 @@
                           | DVal (_, n, _, _, _) => Int.max (n, count)
                           | DValRec vis => foldl (fn ((_, n, _, _, _), count) => Int.max (n, count)) count vis
                           | DExport _ => count
-                          | DTable (_, n, _, _) => Int.max (n, count)
+                          | DTable (_, n, _, _, _) => Int.max (n, count)
                           | DSequence (_, n, _) => Int.max (n, count)
                           | DDatabase _ => count
                           | DCookie (_, n, _, _) => Int.max (n, count)) 0