From a0a4eb331eefb3a3a29f35fba4295101ed84aee0 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sun, 4 Apr 2010 17:11:22 -0400 Subject: Parsed a WHERE clause --- tests/policy.ur | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'tests/policy.ur') 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 =>
  • {[x.Fruit.Id]}: {[x.Fruit.Nam]}
  • ); + x1 <- queryX (SELECT fruit.Id, fruit.Nam + FROM fruit) + (fn x =>
  • {[x.Fruit.Id]}: {[x.Fruit.Nam]}
  • ); + + x2 <- queryX (SELECT fruit.Nam, order.Qty + FROM fruit, order + WHERE order.Fruit = fruit.Id) + (fn x =>
  • {[x.Fruit.Nam]}: {[x.Order.Qty]}
  • ); return - {xml} + + -- cgit v1.2.3