annotate tests/nested.ur @ 948:b03d48aac959

Find more opportunities for 'let' inlining with better purity information
author Adam Chlipala <adamc@hcoop.net>
date Thu, 17 Sep 2009 12:55:22 -0400
parents 8e9f2d247dba
children
rev   line source
adamc@880 1 table t : {A : int, B : int}
adamc@880 2
adamc@880 3 fun init () =
adamc@880 4 dml (DELETE FROM t WHERE TRUE);
adamc@880 5 dml (INSERT INTO t (A, B) VALUES (1, 2));
adamc@880 6 dml (INSERT INTO t (A, B) VALUES (2, 3))
adamc@880 7
adamc@880 8 fun easy () =
adamc@880 9 queryX' (SELECT MAX(t.A) AS M FROM t)
adamc@880 10 (fn r =>
adamc@880 11 queryX (SELECT * FROM t WHERE t.A = {[r.M]})
adamc@880 12 (fn r => <xml>({[r.T.A]}, {[r.T.B]})</xml>))
adamc@880 13
adamc@880 14 fun hard id =
adamc@880 15 queryX' (SELECT t.B AS N FROM t WHERE t.A = {[id]})
adamc@880 16 (fn r =>
adamc@880 17 b <- hard r.N;
adamc@880 18 return <xml>({[id]}, {[r.N]}); {b}</xml>)
adamc@880 19
adamc@880 20 fun doit () =
adamc@880 21 init ();
adamc@880 22 b1 <- easy ();
adamc@880 23 b2 <- hard 1;
adamc@880 24 return <xml><body>
adamc@880 25 {b1}<br/>
adamc@880 26 {b2}
adamc@880 27 </body></xml>
adamc@880 28
adamc@880 29 fun main () = return <xml><body><form><submit action={doit}/></form></body></xml>