comparison tests/limit.ur @ 262:a6cb33f49366

Monoize LIMIT
author Adam Chlipala <adamc@hcoop.net>
date Sun, 31 Aug 2008 16:10:20 -0400
parents 71bafe66dbe1
children 02e1870a0516
comparison
equal deleted inserted replaced
261:ee51e9d35c9b 262:a6cb33f49366
3 val q1 = (SELECT * FROM t LIMIT 42) 3 val q1 = (SELECT * FROM t LIMIT 42)
4 val q2 = fn n => (SELECT * FROM t LIMIT {n}) 4 val q2 = fn n => (SELECT * FROM t LIMIT {n})
5 5
6 val q3 = (SELECT * FROM t OFFSET 3) 6 val q3 = (SELECT * FROM t OFFSET 3)
7 val q4 = fn n => fn m => (SELECT * FROM t LIMIT {n} OFFSET {m}) 7 val q4 = fn n => fn m => (SELECT * FROM t LIMIT {n} OFFSET {m})
8
9
10 datatype list a = Nil | Cons of a * list a
11
12 val r1 : transaction (list {A : int, B : string, C : float}) =
13 query (q2 3)
14 (fn fs acc => return (Cons (fs.T, acc)))
15 Nil
16
17 val r2 : transaction string =
18 ls <- r1;
19 return (case ls of
20 Nil => "Problem"
21 | Cons ({B = b, ...}, _) => b)
22
23 val main : unit -> transaction page = fn () =>
24 s <- r2;
25 return <html><body>
26 {cdata s}
27 </body></html>