annotate demo/view.ur @ 1777:59b07fdae1ff

Partitioning and ordering for window functions
author Adam Chlipala <adam@chlipala.net>
date Sat, 02 Jun 2012 16:47:09 -0400
parents c7b9a33c26c8
children
rev   line source
adamc@778 1 table t : { A : int }
adamc@778 2 view v = SELECT t.A AS A FROM t WHERE t.A > 7
adamc@778 3
adam@1303 4 fun list [u] (_ : fieldsOf u [A = int]) (title : string) (x : u) : transaction xbody =
adamc@778 5 xml <- queryX (SELECT * FROM x)
adamc@778 6 (fn r : {X : {A : int}} => <xml><li>{[r.X.A]}</li></xml>);
adamc@778 7 return <xml>
adamc@778 8 <h2>{[title]}</h2>
adamc@778 9 <ul>{xml}</ul>
adamc@778 10 </xml>
adamc@778 11
adamc@778 12 fun main () =
adamc@778 13 listT <- list "T" t;
adamc@778 14 listV <- list "V" v;
adamc@778 15 return <xml><body>
adamc@778 16 {listT}
adamc@778 17 {listV}
adamc@778 18 <br/>
adamc@778 19
adamc@778 20 <form>Insert: <textbox{#A}/> <submit action={ins}/></form>
adamc@778 21 </body></xml>
adamc@778 22
adamc@778 23 and ins r =
adamc@778 24 dml (INSERT INTO t (A) VALUES ({[readError r.A]}));
adamc@778 25 main ()