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] =>