summaryrefslogtreecommitdiff
path: root/tests/nested.ur
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-07-17 12:25:34 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-07-17 12:25:34 -0400
commit97a00aa5ce18d3ef6e8ae03a45dcad89bf310e8b (patch)
tree01175fcf8d29d98dc9ca279350fd43f4f6d242ee /tests/nested.ur
parent034761874175cd088c75820ee7f59d3a4ca0fa90 (diff)
Testing nested queries
Diffstat (limited to 'tests/nested.ur')
-rw-r--r--tests/nested.ur29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/nested.ur b/tests/nested.ur
new file mode 100644
index 00000000..a23ae2ac
--- /dev/null
+++ b/tests/nested.ur
@@ -0,0 +1,29 @@
+table t : {A : int, B : int}
+
+fun init () =
+ dml (DELETE FROM t WHERE TRUE);
+ dml (INSERT INTO t (A, B) VALUES (1, 2));
+ dml (INSERT INTO t (A, B) VALUES (2, 3))
+
+fun easy () =
+ queryX' (SELECT MAX(t.A) AS M FROM t)
+ (fn r =>
+ queryX (SELECT * FROM t WHERE t.A = {[r.M]})
+ (fn r => <xml>({[r.T.A]}, {[r.T.B]})</xml>))
+
+fun hard id =
+ queryX' (SELECT t.B AS N FROM t WHERE t.A = {[id]})
+ (fn r =>
+ b <- hard r.N;
+ return <xml>({[id]}, {[r.N]}); {b}</xml>)
+
+fun doit () =
+ init ();
+ b1 <- easy ();
+ b2 <- hard 1;
+ return <xml><body>
+ {b1}<br/>
+ {b2}
+ </body></xml>
+
+fun main () = return <xml><body><form><submit action={doit}/></form></body></xml>