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
The reason is that engine first check for state of concurrent transaction (update master ...) and used WAIT mode of current transaction while waiting for concurrent transaction lock. Therefore WAIT transaction will never see record, changed by still active concurrent transaction.
The check for PK\UK values of master record (implemented by FK handling improvement) occurs after.
Hi, this is still an ongoing issue in FB3, any chance this can be fixed?
If the second transaction has a isc_tpb_lock_timeout configured, the second statement will wait the specified timeout seconds, and then complete successfully, instead of completing immediately. Of course, if the first transaction finishes earlier then the second transaction will then complete immediately after.
Submitted by: Petr Savelyev (petr.savelyev)
Is related to CORE1606
Votes: 2
Improvement foreign key handling is broken for WAIT transactions.
create table master (id int not null primary key, f varchar(20));
create table child (id int not null primary key, master_id int not null references master);
insert into master values(1, '1');
First connect:
update master set f = '111' where id = 1;
Second connect:
set transaction read write wait;
insert into child values (1, 1);
Now second connect waits for commit/rollback of first transaction instead of insert record immediately. In NO WAIT transactions insert works correct.
The text was updated successfully, but these errors were encountered: