]> granicus.if.org Git - postgresql/commitdiff
Make GIN regression test stable.
authorFujii Masao <fujii@postgresql.org>
Mon, 8 Feb 2016 14:41:46 +0000 (23:41 +0900)
committerFujii Masao <fujii@postgresql.org>
Mon, 8 Feb 2016 14:41:46 +0000 (23:41 +0900)
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
src/test/regress/expected/gin.out
src/test/regress/sql/gin.sql

index cc7601c667762687fbcf5727c58dce98be73f2b6..a3911a6c6c944cc2961f8e3c01fdd6871587fa3c 100644 (file)
@@ -4,8 +4,9 @@
 -- There are other tests to test different GIN opclassed. This is for testing
 -- GIN itself.
 -- Create and populate a test table with a GIN index.
-create table gin_test_tbl(i int4[]);
-create index gin_test_idx on gin_test_tbl using gin (i) with (fastupdate = on);
+create table gin_test_tbl(i int4[]) with (autovacuum_enabled = off);
+create index gin_test_idx on gin_test_tbl using gin (i)
+  with (fastupdate = on, gin_pending_list_limit = 4096);
 insert into gin_test_tbl select array[1, 2, g] from generate_series(1, 20000) g;
 insert into gin_test_tbl select array[1, 3, g] from generate_series(1, 1000) g;
 select gin_clean_pending_list('gin_test_idx')>10 as many; -- flush the fastupdate buffers
index 31890b46d8c0e4c8ea536d9f515557191979c29d..c566e9b58c805f10d23a1653554b3ae7c5fd3299 100644 (file)
@@ -5,8 +5,9 @@
 -- GIN itself.
 
 -- Create and populate a test table with a GIN index.
-create table gin_test_tbl(i int4[]);
-create index gin_test_idx on gin_test_tbl using gin (i) with (fastupdate = on);
+create table gin_test_tbl(i int4[]) with (autovacuum_enabled = off);
+create index gin_test_idx on gin_test_tbl using gin (i)
+  with (fastupdate = on, gin_pending_list_limit = 4096);
 insert into gin_test_tbl select array[1, 2, g] from generate_series(1, 20000) g;
 insert into gin_test_tbl select array[1, 3, g] from generate_series(1, 1000) g;