annotate tests/query.ur @ 1813:4c61bb7acb9b
Minor js optimizations.
* flatten() now uses accumulator and join.
* reuse regexps instead of allocating new each time
author |
Vladimir Shabanov <vshabanoff@gmail.com> |
date |
Thu, 30 Aug 2012 17:58:37 +0400 |
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>
|