view demo/treeFun.urs @ 1437:493e087f5479

Exit periodic loop if a ROLLBACK fails, to avoid infinite looping when the database server is brought down
author Adam Chlipala <adam@chlipala.net>
date Fri, 18 Mar 2011 09:12:55 -0400
parents 311ca1ae715d
children
line wrap: on
line source
functor Make(M : sig
                 type key
                 con id :: Name
                 con parent :: Name
                 con cols :: {Type}
                 constraint [id] ~ [parent]
                 constraint [id, parent] ~ cols

                 val key_inj : sql_injectable_prim key

                 table tab : ([id = key, parent = option key] ++ cols)
             end) : sig

    con id = M.id
    con parent = M.parent

    val tree : ($([id = M.key, parent = option M.key] ++ M.cols) -> xbody)
               -> option M.key
               -> transaction xbody

end