Mercurial > urweb
diff tests/nested.ur @ 880:8e9f2d247dba
Testing nested queries
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Fri, 17 Jul 2009 12:25:34 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/nested.ur Fri Jul 17 12:25:34 2009 -0400 @@ -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>