You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
session #2
SQL> commit;
SQL> SET TRANSACTION READ COMMITTED RECORD_VERSION NO WAIT; -- note: only when *read commited* and *NO wait*
SQL> drop table tx;
SQL> commit;
Statement failed, SQLSTATE = 40001
lock conflict on no wait transaction
-unsuccessful metadata update
-object TX is in use
The text was updated successfully, but these errors were encountered:
PS.
It seems that TIL (read committed record_version | no record_version vs snapshot) does not matter.
The metadata can`t be changed only when "NO WAIT" clause is specified.
summary: Transaction can`t change metadata if it is run in RC + no_wait and there is another connect that once had queried these metadata => Transaction can`t change metadata if it is run in no_wait and there is another connect that once had queried these metadata
Submitted by: @pavel-zotov
Is duplicated by CORE5160
Is duplicated by CORE5267
Relate to CORE6382
WI-V2.5.2.26390 Firebird 2.5
DDL:
C:\1INSTALL\FIREBIRD\Data>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 't2.fdb'; commit;
SQL> create table tx(id int); commit;
SQL> insert into tx values(123); commit;
SQL> quit;
---------------------------------------------------------
session #1
C:\1INSTALL\FIREBIRD\Data>isql -n localhost/3050:C:\1INSTALL\FIREBIRD\Data\T2.FDB
Database: localhost/3050:C:\1INSTALL\FIREBIRD\Data\T2.FDB
session #2
C:\1INSTALL\FIREBIRD\Data>isql -n localhost/3050:C:\1INSTALL\FIREBIRD\Data\T2.FDB
Database: localhost/3050:C:\1INSTALL\FIREBIRD\Data\T2.FDB
session #1
SQL> set list on;
SQL> select * from tx;
ID 123
SQL> commit;
SQL> select * from rdb$database;
RDB$DESCRIPTION <null>
RDB$RELATION_ID 129
RDB$SECURITY_CLASS <null>
RDB$CHARACTER_SET_NAME NONE
SQL> commit;
session #2
SQL> commit;
SQL> SET TRANSACTION READ COMMITTED RECORD_VERSION NO WAIT; -- note: only when *read commited* and *NO wait*
SQL> drop table tx;
SQL> commit;
Statement failed, SQLSTATE = 40001
lock conflict on no wait transaction
-unsuccessful metadata update
-object TX is in use
The text was updated successfully, but these errors were encountered: