aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cjrize.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-04-07 16:14:31 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-04-07 16:14:31 -0400
commit26ad31287745567b98b357de9793a0e795c63334 (patch)
tree6fa2aa05d829b2b71c6e2d778b4898999992a00f /src/cjrize.sml
parent98370da7e9f70e3d83f666019b765e15f617b846 (diff)
PRIMARY KEY
Diffstat (limited to 'src/cjrize.sml')
-rw-r--r--src/cjrize.sml13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/cjrize.sml b/src/cjrize.sml
index 839c0c57..e0341c64 100644
--- a/src/cjrize.sml
+++ b/src/cjrize.sml
@@ -524,7 +524,7 @@ fun cifyDecl ((d, loc), sm) =
(NONE, SOME (ek, "/" ^ s, n, ts, t, L'.ServerAndPullAndPush), sm)
end
- | L.DTable (s, xts, e) =>
+ | L.DTable (s, xts, pe, ce) =>
let
val (xts, sm) = ListUtil.foldlMap (fn ((x, t), sm) =>
let
@@ -540,10 +540,17 @@ fun cifyDecl ((d, loc), sm) =
| L.EStrcat (e1, e2) => flatten e1 @ flatten e2
| _ => (ErrorMsg.errorAt loc "Constraint has not been fully determined";
Print.prefaces "Undetermined constraint"
- [("e", MonoPrint.p_exp MonoEnv.empty e)];
+ [("e", MonoPrint.p_exp MonoEnv.empty e)];
[])
+
+ val pe = case #1 pe of
+ L.EPrim (Prim.String s) => s
+ | _ => (ErrorMsg.errorAt loc "Primary key has not been fully determined";
+ Print.prefaces "Undetermined constraint"
+ [("e", MonoPrint.p_exp MonoEnv.empty pe)];
+ "")
in
- (SOME (L'.DTable (s, xts, flatten e), loc), NONE, sm)
+ (SOME (L'.DTable (s, xts, pe, flatten ce), loc), NONE, sm)
end
| L.DSequence s =>
(SOME (L'.DSequence s, loc), NONE, sm)