Mercurial > urweb
view tests/dbupload.ur @ 1886:b7cd3c7c7edd
Interpret 'table' signature items more flexibly, automatically adding (Ur) constraints to support a kind of subtyping over (SQL) constraint sets
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Mon, 04 Nov 2013 15:14:23 -0500 |
parents | 216a3a67ebe3 |
children |
line wrap: on
line source
table t : { Id : int, Blob : blob, MimeType : string } sequence s fun getImage id : transaction page = r <- oneRow1 (SELECT t.Blob, t.MimeType FROM t WHERE t.Id = {[id]}); returnBlob r.Blob (blessMime r.MimeType) fun main () : transaction page = let fun handle r = id <- nextval s; dml (INSERT INTO t (Id, Blob, MimeType) VALUES ({[id]}, {[fileData r.File]}, {[fileMimeType r.File]})); main () in x <- queryX1 (SELECT t.Id FROM t) (fn r => <xml><img src={url (getImage r.Id)}/><br/></xml>); return <xml><body> <form><upload{#File}/> <submit action={handle}/></form> <hr/> {x} </body></xml> end