Index and blob garbage collection doesn't take into accout data in undo log [CORE4701] #5009
Labels
affect-version: 2.1.5 Update 1
affect-version: 2.1.6
affect-version: 2.1.7
affect-version: 2.5.0
affect-version: 2.5.1
affect-version: 2.5.2 Update 1
affect-version: 2.5.2
affect-version: 2.5.3 Update 1
affect-version: 2.5.3
affect-version: 2.5.4
affect-version: 3.0 Alpha 1
affect-version: 3.0 Alpha 2
affect-version: 3.0 Beta 1
affect-version: 3.0 Beta 2
component: engine
fix-version: 4.0 Alpha 1
priority: major
type: bug
Submitted by: @aafemt
Assigned to: @aafemt
When indexes and blobs are garbage collected during savepoint release, list_staying() collect data only from versions on disk, but not from undo log. As the result following script produces missing index entry:
create database "d_test";
create table g_test (f integer);
create index g_ind on g_test (f);
insert into g_test values (1);
commit;
update g_test set f=2;
savepoint a;
update g_test set f=3;
savepoint b;
update g_test set f=3;
savepoint c;
update g_test set f=4;
savepoint d;
update g_test set f=4;
release savepoint b only;
rollback to savepoint c;
commit;
select * from g_test;
select * from g_test where f=3;
Commits: 27395a0 FirebirdSQL/fbt-repository@0ae7bde
The text was updated successfully, but these errors were encountered: