annotate tests/query.ur @ 2297:6d56080f495c

Fix a read-after-free bug using a timestamp check
author Adam Chlipala <adam@chlipala.net>
date Thu, 19 Nov 2015 13:18:58 -0500
parents 5f9b9972e6b8
children
rev   line source
adamc@253 1 table t1 : {A : int, B : string, C : float, D : bool}
adamc@243 2 table t2 : {A : float, D : int}
adamc@243 3
adamc@243 4 datatype list a = Nil | Cons of a * list a
adamc@243 5
adamc@254 6 val q1 = (SELECT * FROM t1)
adamc@253 7
adamc@253 8 val r1 : transaction (list {A : int, B : string, C : float, D : bool}) =
adamc@748 9 query q1
adamc@748 10 (fn fs acc => return (Cons (fs.T1, acc)))
adamc@748 11 Nil
adamc@243 12
adamc@249 13 val r2 : transaction string =
adamc@748 14 ls <- r1;
adamc@748 15 return (case ls of
adamc@748 16 Nil => "Problem"
adamc@748 17 | Cons ({B = b, ...}, _) => b)
adamc@249 18
adamc@748 19 fun main () : transaction page =
adamc@748 20 s <- r2;
adamc@748 21 return <xml><body>
adamc@748 22 {cdata s}
adamc@748 23 </body></xml>