Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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

+3-2
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

+3-2
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)