Prevent instability in contrib/pageinspect's regression test.
authorTom Lane <[email protected]>
Mon, 21 Nov 2022 15:50:50 +0000 (10:50 -0500)
committerTom Lane <[email protected]>
Mon, 21 Nov 2022 15:50:50 +0000 (10:50 -0500)
pageinspect has occasionally failed on slow buildfarm members,
with symptoms indicating that the expected effects of VACUUM
FREEZE didn't happen.  This is presumably because a background
transaction such as auto-analyze was holding back global xmin.

We can work around that by using a temp table in the test.
Since commit a7212be8b, that will use an up-to-date cutoff xmin
regardless of other processes.  And pageinspect itself shouldn't
really care whether the table is temp.

Back-patch to v14.  There would be no point in older branches
without back-patching a7212be8b, which seems like more trouble
than the problem is worth.

Discussion: https://postgr.es/m/2892135.1668976646@sss.pgh.pa.us

contrib/pageinspect/expected/page.out
contrib/pageinspect/sql/page.sql

index 3bdc37bbf590df5dba607d0ff7c36c4016337cc4..80ddb45a60ac0cdaf8139c8860efd16827f63476 100644 (file)
@@ -1,5 +1,6 @@
 CREATE EXTENSION pageinspect;
-CREATE TABLE test1 (a int, b int);
+-- Use a temp table so that effects of VACUUM are predictable
+CREATE TEMP TABLE test1 (a int, b int);
 INSERT INTO test1 VALUES (16777217, 131584);
 VACUUM (DISABLE_PAGE_SKIPPING) test1;  -- set up FSM
 -- The page contents can vary, so just test that it can be read
index b5c41cc8ac53a1e00c3f5b20aa57aef04080b2ee..5bff568d3b5f8c4c7afd08383050cb4e61f5712b 100644 (file)
@@ -1,6 +1,7 @@
 CREATE EXTENSION pageinspect;
 
-CREATE TABLE test1 (a int, b int);
+-- Use a temp table so that effects of VACUUM are predictable
+CREATE TEMP TABLE test1 (a int, b int);
 INSERT INTO test1 VALUES (16777217, 131584);
 
 VACUUM (DISABLE_PAGE_SKIPPING) test1;  -- set up FSM