diff options
author | Adam Chlipala <adamc@hcoop.net> | 2010-04-04 17:11:22 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2010-04-04 17:11:22 -0400 |
commit | 20f0e57e0e9e418ef08ce8bdb202b6d10de1c86b (patch) | |
tree | 3f18e01aaa2a2e73518b2214ba305be654579a5d /tests | |
parent | ccb85d8fc50d86d6f51387d21cd3a4b9c867a8a4 (diff) |
Parsed a WHERE clause
Diffstat (limited to 'tests')
-rw-r--r-- | tests/policy.ur | 25 |
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> |