Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f8a1c1d

Browse files
committed
Make GIN regression test stable.
Commit 7f46eaf added the regression test which checks that gin_clean_pending_list() cleans up the GIN pending list and returns >0. This usually works fine. But if autovacuum comes along and cleans the list before gin_clean_pending_list() starts, the function may return 0, and then the regression test may fail. To fix the problem, this commit disables autovacuum on the target index of gin_clean_pending_list() by setting autovacuum_enabled reloption to off when creating the table. Also this commit sets gin_pending_list_limit reloption to 4MB on the target index. Otherwise when running "make installcheck" with small gin_pending_list_limit GUC, insertions of data may trigger the cleanup of pending list before gin_clean_pending_list() starts and the function may return 0. This could cause the regression test to fail. Per buildfarm member spoonbill. Reported-By: Tom Lane
1 parent a6897ef commit f8a1c1d

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/test/regress/expected/gin.out

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
-- There are other tests to test different GIN opclassed. This is for testing
55
-- GIN itself.
66
-- Create and populate a test table with a GIN index.
7-
create table gin_test_tbl(i int4[]);
8-
create index gin_test_idx on gin_test_tbl using gin (i) with (fastupdate = on);
7+
create table gin_test_tbl(i int4[]) with (autovacuum_enabled = off);
8+
create index gin_test_idx on gin_test_tbl using gin (i)
9+
with (fastupdate = on, gin_pending_list_limit = 4096);
910
insert into gin_test_tbl select array[1, 2, g] from generate_series(1, 20000) g;
1011
insert into gin_test_tbl select array[1, 3, g] from generate_series(1, 1000) g;
1112
select gin_clean_pending_list('gin_test_idx')>10 as many; -- flush the fastupdate buffers

src/test/regress/sql/gin.sql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
-- GIN itself.
66

77
-- Create and populate a test table with a GIN index.
8-
create table gin_test_tbl(i int4[]);
9-
create index gin_test_idx on gin_test_tbl using gin (i) with (fastupdate = on);
8+
create table gin_test_tbl(i int4[]) with (autovacuum_enabled = off);
9+
create index gin_test_idx on gin_test_tbl using gin (i)
10+
with (fastupdate = on, gin_pending_list_limit = 4096);
1011
insert into gin_test_tbl select array[1, 2, g] from generate_series(1, 20000) g;
1112
insert into gin_test_tbl select array[1, 3, g] from generate_series(1, 1000) g;
1213

0 commit comments

Comments
 (0)