Mercurial > urweb
annotate tests/sql_option.ur @ 2195:18e6fb487880
Reduce: add reduction in some spots previously missed, associated with 'case' return types
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Wed, 25 Nov 2015 18:48:17 -0500 |
parents | 4efab85405be |
children |
rev | line source |
---|---|
adamc@467 | 1 table t : { O : option int } |
adamc@467 | 2 |
adamc@467 | 3 fun addNull () = |
adamc@467 | 4 dml (INSERT INTO t (O) VALUES (NULL)); |
adamc@467 | 5 return <xml>Done</xml> |
adamc@467 | 6 |
adamc@468 | 7 fun add3 () = |
adamc@468 | 8 dml (INSERT INTO t (O) VALUES ({Some 3})); |
adamc@468 | 9 return <xml>Done</xml> |
adamc@468 | 10 |
adamc@468 | 11 fun addN r = |
adamc@468 | 12 dml (INSERT INTO t (O) VALUES ({Some (readError r.N)})); |
adamc@468 | 13 return <xml>Done</xml> |
adamc@467 | 14 |
adamc@467 | 15 fun main () : transaction page = |
adamc@467 | 16 xml <- queryX (SELECT * FROM t) |
adamc@467 | 17 (fn r => case r.T.O of |
adamc@467 | 18 None => <xml>Nada<br/></xml> |
adamc@467 | 19 | Some n => <xml>Num: {[n]}<br/></xml>); |
adamc@467 | 20 return <xml><body> |
adamc@467 | 21 {xml} |
adamc@467 | 22 |
adamc@467 | 23 <a link={addNull ()}>Add a null</a><br/> |
adamc@468 | 24 <a link={add3 ()}>Add a 3</a><br/> |
adamc@468 | 25 <form> |
adamc@468 | 26 Add <textbox{#N}/> <submit action={addN}/> |
adamc@468 | 27 </form> |
adamc@467 | 28 </body></xml> |