annotate tests/query.ur @ 425:7009b0ac1501

Properly freeing libpq results on errors
author Adam Chlipala <adamc@hcoop.net>
date Fri, 24 Oct 2008 17:30:07 -0400
parents f8d9395575ec
children 5f9b9972e6b8
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@243 9 query q1
adamc@251 10 (fn fs acc => return (Cons (fs.T1, acc)))
adamc@243 11 Nil
adamc@243 12
adamc@249 13 val r2 : transaction string =
adamc@243 14 ls <- r1;
adamc@243 15 return (case ls of
adamc@249 16 Nil => "Problem"
adamc@249 17 | Cons ({B = b, ...}, _) => b)
adamc@249 18
adamc@249 19 val main : unit -> transaction page = fn () =>
adamc@249 20 s <- r2;
adamc@249 21 return <html><body>
adamc@249 22 {cdata s}
adamc@249 23 </body></html>