annotate tests/query.ur @ 376:6fd102fa28f9

Simple generation of persistent paths
author Adam Chlipala <adamc@hcoop.net>
date Sun, 19 Oct 2008 11:11:49 -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>