adamc@231: table t : {A : int, B : string, C : float} adamc@231: adamc@231: val q1 = (SELECT * FROM t LIMIT 42) adamc@231: val q2 = fn n => (SELECT * FROM t LIMIT {n}) adamc@232: adamc@232: val q3 = (SELECT * FROM t OFFSET 3) adamc@232: val q4 = fn n => fn m => (SELECT * FROM t LIMIT {n} OFFSET {m}) adamc@262: adamc@262: adamc@262: datatype list a = Nil | Cons of a * list a adamc@262: adamc@262: val r1 : transaction (list {A : int, B : string, C : float}) = adamc@263: query (q4 3 7) adamc@262: (fn fs acc => return (Cons (fs.T, acc))) adamc@262: Nil adamc@262: adamc@262: val r2 : transaction string = adamc@262: ls <- r1; adamc@262: return (case ls of adamc@262: Nil => "Problem" adamc@262: | Cons ({B = b, ...}, _) => b) adamc@262: adamc@262: val main : unit -> transaction page = fn () => adamc@262: s <- r2; adamc@262: return adamc@262: {cdata s} adamc@262: