aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/policy.ur
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2010-04-04 17:11:22 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2010-04-04 17:11:22 -0400
commit20f0e57e0e9e418ef08ce8bdb202b6d10de1c86b (patch)
tree3f18e01aaa2a2e73518b2214ba305be654579a5d /tests/policy.ur
parentccb85d8fc50d86d6f51387d21cd3a4b9c867a8a4 (diff)
Parsed a WHERE clause
Diffstat (limited to 'tests/policy.ur')
-rw-r--r--tests/policy.ur25
1 files changed, 20 insertions, 5 deletions
diff --git a/tests/policy.ur b/tests/policy.ur
index bc4da5be..b821d1d1 100644
--- a/tests/policy.ur
+++ b/tests/policy.ur
@@ -1,12 +1,27 @@
-table fruit : { Id : int, Nam : string, Weight : float, Secret : string }
+type fruit = int
+table fruit : { Id : fruit, Nam : string, Weight : float, Secret : string }
+ PRIMARY KEY Id,
+ CONSTRAINT Nam UNIQUE Nam
+
+type order = int
+table order : { Id : order, Fruit : fruit, Qty : int, Code : int }
+ PRIMARY KEY Id,
+ CONSTRAINT Fruit FOREIGN KEY Fruit REFERENCES fruit(Id)
policy query_policy (SELECT fruit.Id, fruit.Nam, fruit.Weight FROM fruit)
+policy query_policy (SELECT order.Id, order.Fruit, order.Qty FROM order)
fun main () =
- xml <- queryX (SELECT fruit.Id, fruit.Nam
- FROM fruit)
- (fn x => <xml><li>{[x.Fruit.Id]}: {[x.Fruit.Nam]}</li></xml>);
+ x1 <- queryX (SELECT fruit.Id, fruit.Nam
+ FROM fruit)
+ (fn x => <xml><li>{[x.Fruit.Id]}: {[x.Fruit.Nam]}</li></xml>);
+
+ x2 <- queryX (SELECT fruit.Nam, order.Qty
+ FROM fruit, order
+ WHERE order.Fruit = fruit.Id)
+ (fn x => <xml><li>{[x.Fruit.Nam]}: {[x.Order.Qty]}</li></xml>);
return <xml><body>
- {xml}
+ <ul>{x1}</ul>
+ <ul>{x2}</ul>
</body></xml>