Mercurial > urweb
comparison tests/policy.ur @ 1210:c5bd970e77a5
Parsing more comparison operators
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 06 Apr 2010 12:04:08 -0400 |
parents | 775357041e48 |
children | 648e6b087dfb |
comparison
equal
deleted
inserted
replaced
1209:775357041e48 | 1210:c5bd970e77a5 |
---|---|
11 (* Everyone may knows IDs and names. *) | 11 (* Everyone may knows IDs and names. *) |
12 policy query_policy (SELECT fruit.Id, fruit.Nam | 12 policy query_policy (SELECT fruit.Id, fruit.Nam |
13 FROM fruit) | 13 FROM fruit) |
14 | 14 |
15 (* The weight is sensitive information; you must know the secret. *) | 15 (* The weight is sensitive information; you must know the secret. *) |
16 policy query_policy (SELECT fruit.Weight | 16 policy query_policy (SELECT fruit.Weight, fruit.Secret |
17 FROM fruit | 17 FROM fruit |
18 WHERE known(fruit.Secret)) | 18 WHERE known(fruit.Secret)) |
19 | 19 |
20 policy query_policy (SELECT order.Id, order.Fruit, order.Qty | 20 policy query_policy (SELECT order.Id, order.Fruit, order.Qty |
21 FROM order, fruit | 21 FROM order, fruit |
24 | 24 |
25 fun fname r = | 25 fun fname r = |
26 x <- queryX (SELECT fruit.Weight | 26 x <- queryX (SELECT fruit.Weight |
27 FROM fruit | 27 FROM fruit |
28 WHERE fruit.Nam = {[r.Nam]} | 28 WHERE fruit.Nam = {[r.Nam]} |
29 AND fruit.Secret = {[r.Secret]}) | 29 AND fruit.Secret = {[r.Secret]} |
30 AND fruit.Weight <> 3.14 | |
31 AND fruit.Weight < 100.0 | |
32 AND fruit.Weight <= 200.1 | |
33 AND fruit.Weight > 1.23 | |
34 AND fruit.Weight >= 1.24) | |
30 (fn r => <xml>Weight is {[r.Fruit.Weight]}</xml>); | 35 (fn r => <xml>Weight is {[r.Fruit.Weight]}</xml>); |
31 | 36 |
32 return <xml><body> | 37 return <xml><body> |
33 {x} | 38 {x} |
34 </body></xml> | 39 </body></xml> |
35 | 40 |
36 fun main () = | 41 fun main () = |
37 x1 <- queryX (SELECT fruit.Id, fruit.Nam | 42 x1 <- queryX (SELECT fruit.Id, fruit.Nam |
38 FROM fruit | 43 FROM fruit |
39 WHERE fruit.Nam = "apple" | 44 WHERE fruit.Nam = "apple") |
40 AND fruit.Weight = 1.23) | |
41 (fn x => <xml><li>{[x.Fruit.Id]}: {[x.Fruit.Nam]}</li></xml>); | 45 (fn x => <xml><li>{[x.Fruit.Id]}: {[x.Fruit.Nam]}</li></xml>); |
42 | 46 |
43 x2 <- queryX (SELECT fruit.Nam, order.Qty | 47 x2 <- queryX (SELECT fruit.Nam, order.Qty |
44 FROM fruit, order | 48 FROM fruit, order |
45 WHERE fruit.Id = order.Fruit | 49 WHERE fruit.Id = order.Fruit |
46 AND order.Qty = 13) | 50 AND order.Qty = 13) |
47 (fn x => <xml><li>{[x.Fruit.Nam]}: {[x.Order.Qty]}</li></xml>); | 51 (fn x => <xml><li>{[x.Fruit.Nam]}: {[x.Order.Qty]}</li></xml>); |
48 | 52 |
49 return <xml><body> | 53 return <xml><body> |
50 <ul>{x1}</ul> | 54 <ul>{x1}</ul> |
55 | |
51 <ul>{x2}</ul> | 56 <ul>{x2}</ul> |
52 | 57 |
53 <form> | 58 <form> |
54 Fruit name: <textbox{#Nam}/><br/> | 59 Fruit name: <textbox{#Nam}/><br/> |
55 Secret: <textbox{#Secret}/><br/> | 60 Secret: <textbox{#Secret}/><br/> |