Mercurial > urweb
comparison demo/more/dbgrid.ur @ 1649:9253765d7724
Rename [Top.id] to avoid clash with [Basis.id]
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Thu, 29 Dec 2011 14:12:03 -0500 |
parents | e2611b5dafce |
children | 6bc2a8cb3a67 |
comparison
equal
deleted
inserted
replaced
1648:bd7edca0aec1 | 1649:9253765d7724 |
---|---|
383 val list = query (SELECT * FROM {{M.tab}} AS T) (fn r rs => return (r.T :: rs)) [] | 383 val list = query (SELECT * FROM {{M.tab}} AS T) (fn r rs => return (r.T :: rs)) [] |
384 | 384 |
385 val wholeRow = @Folder.concat ! M.keyFolder M.rowFolder | 385 val wholeRow = @Folder.concat ! M.keyFolder M.rowFolder |
386 | 386 |
387 fun ensql [env] (r : $(M.key ++ M.row)) = | 387 fun ensql [env] (r : $(M.key ++ M.row)) = |
388 @map2 [rawMeta] [id] [sql_exp env [] []] | 388 @map2 [rawMeta] [ident] [sql_exp env [] []] |
389 (fn [t] meta v => @sql_inject meta.Inj v) | 389 (fn [t] meta v => @sql_inject meta.Inj v) |
390 wholeRow M.raw r | 390 wholeRow M.raw r |
391 | 391 |
392 val new = | 392 val new = |
393 row <- @Monad.mapR _ [rawMeta] [id] | 393 row <- @Monad.mapR _ [rawMeta] [ident] |
394 (fn [nm :: Name] [t :: Type] meta => meta.New) | 394 (fn [nm :: Name] [t :: Type] meta => meta.New) |
395 wholeRow M.raw; | 395 wholeRow M.raw; |
396 dml (insert M.tab (ensql row)); | 396 dml (insert M.tab (ensql row)); |
397 return row | 397 return row |
398 | 398 |
399 fun selector (r : $M.key) : sql_exp [T = M.key ++ M.row] [] [] bool = | 399 fun selector (r : $M.key) : sql_exp [T = M.key ++ M.row] [] [] bool = |
400 @foldR2 [rawMeta] [id] | 400 @foldR2 [rawMeta] [ident] |
401 [fn key => rest :: {Type} -> [rest ~ key] => sql_exp [T = key ++ rest] [] [] bool] | 401 [fn key => rest :: {Type} -> [rest ~ key] => sql_exp [T = key ++ rest] [] [] bool] |
402 (fn [nm :: Name] [t :: Type] [key :: {Type}] [[nm] ~ key] | 402 (fn [nm :: Name] [t :: Type] [key :: {Type}] [[nm] ~ key] |
403 (meta : rawMeta t) (v : t) | 403 (meta : rawMeta t) (v : t) |
404 (exp : rest :: {Type} -> [rest ~ key] => sql_exp [T = key ++ rest] [] [] bool) | 404 (exp : rest :: {Type} -> [rest ~ key] => sql_exp [T = key ++ rest] [] [] bool) |
405 [rest :: {Type}] [rest ~ [nm = t] ++ key] => | 405 [rest :: {Type}] [rest ~ [nm = t] ++ key] => |