Mark, all

  I just committed changes as we discussed above. I.e. session reset now ignores
prepared transactions, rollback currently active user transaction and start new
one, issue warning if user transaction made changes in tables.

Here is how it looks now:

SQL> alter session reset;
Statement failed, SQLSTATE = 01002
Cannot reset user session
-There are open transactions (2 active)
SQL>
SQL> commit;
SQL> set autoddl off;
SQL>
SQL> alter session reset;
SQL>
SQL> insert into x values (current_transaction);
SQL> select * from x;

          ID
============
         311
         362

SQL> alter session reset;
Session was reset with warning(s)
-Transaction is rolled back due to session reset, all changes are lost
SQL>
SQL> select * from x;

          ID
============
         311

SQL> select current_transaction from rdb$database;

  CURRENT_TRANSACTION
=====================
                  363

SQL> set warning off;
SQL> insert into x values (current_transaction);
SQL> select * from x;

          ID
============
         311
         363

SQL> alter session reset;
SQL> select * from x;

          ID
============
         311

SQL> select current_transaction from rdb$database;

  CURRENT_TRANSACTION
=====================
                  364

Regards,
Vlad

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to