On 30-5-2015 17:13, Vlad Khorsun wrote: >> I'd especially like to know at which point the commit is executed, and >> the impact this has on open resources (cursor, blob, etc). As far as I >> understand commit_retaining is used. What impact does that have on >> visibility of transactions and resource use? > > A bit simplified overview of autocommit code: > > when transaction, marked as TRA_autocommit performs any of following > actions, it is marked also as TRA_perform_autocommit: > - insert > - update > - delete > - select with lock > - post event > > TRA_perform_autocommit flag is checked when: > - engine receives input message > - engine send output message > - engine stars to execute request > - engine finished to execute DDL request > > When TRA_perform_autocommit flag is detected, engine run on-commit > triggers > (not for DDL, btw, looks like a bug) and performs commit retaining. New > transaction have TRA_autocommit flag set and TRA_perform_autocommit not set.
Thanks! Mark -- Mark Rotteveel ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel