summaryrefslogtreecommitdiff
path: root/demo/more/orm.ur
diff options
context:
space:
mode:
Diffstat (limited to 'demo/more/orm.ur')
-rw-r--r--demo/more/orm.ur48
1 files changed, 24 insertions, 24 deletions
diff --git a/demo/more/orm.ur b/demo/more/orm.ur
index 620db9ad..d9f57f3b 100644
--- a/demo/more/orm.ur
+++ b/demo/more/orm.ur
@@ -32,9 +32,9 @@ functor Table(M : sig
Inj = inj}
fun ensql [avail] (r : row') : $(map (sql_exp avail [] []) fs') =
- map2 [meta] [fst] [fn ts :: (Type * Type) => sql_exp avail [] [] ts.1]
- (fn [ts] meta v => @sql_inject meta.Inj v)
- [_] M.folder M.cols r
+ @map2 [meta] [fst] [fn ts :: (Type * Type) => sql_exp avail [] [] ts.1]
+ (fn [ts] meta v => @sql_inject meta.Inj v)
+ M.folder M.cols r
fun create (r : row') =
id <- nextval s;
@@ -43,7 +43,7 @@ functor Table(M : sig
fun delete r = dml (DELETE FROM t WHERE t.Id = {[r.Id]})
- fun save r = dml (update [fs'] ! (ensql (r -- #Id)) t (WHERE T.Id = {[r.Id]}))
+ fun save r = dml (update [fs'] (ensql (r -- #Id)) t (WHERE T.Id = {[r.Id]}))
fun lookup id =
ro <- oneOrNoRows (SELECT * FROM t WHERE t.Id = {[id]});
@@ -59,20 +59,20 @@ functor Table(M : sig
{Col : {Exp : sql_exp [T = fs] [] [] col,
Inj : sql_injectable col},
Parent : $fs -> transaction (option parent)}
- val cols = foldR [meta] [fn before => after :: {(Type * Type)} -> [before ~ after] =>
- $(map (meta' (map fst (before ++ after))) before)]
- (fn [nm :: Name] [ts :: (Type * Type)] [before :: {(Type * Type)}]
- [[nm] ~ before] (meta : meta ts)
- (acc : after :: {(Type * Type)} -> [before ~ after] =>
- $(map (meta' (map fst (before ++ after))) before))
- [after :: {(Type * Type)}] [[nm = ts] ++ before ~ after] =>
- {nm = {Col = {Exp = sql_field [#T] [nm],
- Inj = meta.Inj},
- Parent = fn r => meta.Link r.nm}}
- ++ acc [[nm = ts] ++ after] !)
- (fn [after :: {(Type * Type)}] [[] ~ after] => {})
- [_] M.folder M.cols
- [[Id = (id, row)]] !
+ val cols = @foldR [meta] [fn before => after :: {(Type * Type)} -> [before ~ after] =>
+ $(map (meta' (map fst (before ++ after))) before)]
+ (fn [nm :: Name] [ts :: (Type * Type)] [before :: {(Type * Type)}]
+ [[nm] ~ before] (meta : meta ts)
+ (acc : after :: {(Type * Type)} -> [before ~ after] =>
+ $(map (meta' (map fst (before ++ after))) before))
+ [after :: {(Type * Type)}] [[nm = ts] ++ before ~ after] =>
+ {nm = {Col = {Exp = sql_field [#T] [nm],
+ Inj = meta.Inj},
+ Parent = fn r => meta.Link r.nm}}
+ ++ acc [[nm = ts] ++ after] !)
+ (fn [after :: {(Type * Type)}] [[] ~ after] => {})
+ M.folder M.cols
+ [[Id = (id, row)]] !
type filter = sql_exp [T = fs] [] [] bool
fun find (f : filter) = resultOut (SELECT * FROM t WHERE {f})
@@ -80,12 +80,12 @@ functor Table(M : sig
fun bin (b : t ::: Type -> sql_binary t t bool) [t] (c : col t) (v : t) =
sql_binary b c.Exp (@sql_inject c.Inj v)
- val eq = bin @@sql_eq
- val ne = bin @@sql_ne
- val lt = bin @@sql_lt
- val le = bin @@sql_le
- val gt = bin @@sql_gt
- val ge = bin @@sql_ge
+ val eq = @@bin @@sql_eq
+ val ne = @@bin @@sql_ne
+ val lt = @@bin @@sql_lt
+ val le = @@bin @@sql_le
+ val gt = @@bin @@sql_gt
+ val ge = @@bin @@sql_ge
fun bb (b : sql_binary bool bool bool) (f1 : filter) (f2 : filter) =
sql_binary b f1 f2