Mercurial > urweb
view tests/blobOpt.ur @ 2174:ce312cad5ecd
Use correct OpenSSL thread safety macros on OS X (closes #209)
Create an Autoconf test to determine if pthread_t is a pointer or scalar
type, and use the appropriate CRYPTO_THREADID_set macro based on the
result.
author | Benjamin Barenblat <bbaren at mit.edu> |
---|---|
date | Sun, 20 Sep 2015 17:46:07 -0400 |
parents | cd67c3a942e3 |
children |
line wrap: on
line source
sequence s table t : { Id : int, Data : option blob, Typ : string } fun view id = r <- oneRow (SELECT t.Data, t.Typ FROM t WHERE t.Id = {[id]}); case r.T.Data of None => return <xml>This one's empty.</xml> | Some data => returnBlob data (blessMime r.T.Typ) fun save r = id <- nextval s; dml (INSERT INTO t (Id, Data, Typ) VALUES ({[id]}, {[Some (fileData r.Data)]}, {[fileMimeType r.Data]})); main () and saveEmpty () = id <- nextval s; dml (INSERT INTO t (Id, Data, Typ) VALUES ({[id]}, {[None]}, "bogus")); main () and main () = ls <- queryX (SELECT t.Id FROM t) (fn r => <xml><li><a link={view r.T.Id}>{[r.T.Id]}</a></li></xml>); return <xml><body> {ls} <br/> <form> <upload{#Data}/> <submit action={save}/> </form> <form> <submit action={saveEmpty}/> </form> </body></xml>