pg_surgery: Try to stabilize regression tests.
authorRobert Haas <rhaas@postgresql.org>
Fri, 18 Sep 2020 17:26:48 +0000 (13:26 -0400)
committerRobert Haas <rhaas@postgresql.org>
Fri, 18 Sep 2020 17:26:48 +0000 (13:26 -0400)
commit0811f766fd740018a72e222521553f8b22e7b3d6
treef76c3263c1c913bb99281643a6fab1ec5f2fa0bb
parent24fb35e11148b2b2cae2bddc5f2d6c566675c2b2
pg_surgery: Try to stabilize regression tests.

According to buildfarm member sungazer, the behavior of VACUUM can be
unstable in these tests even if we prevent autovacuum from running on
the tables in question, apparently because even a manual vacuum can
behave differently depending on whether anything else is running that
holds back the global xmin. So use a temporary table instead, which
as of commit a7212be8b9e0885ee769e8c55f99ef742cda487b enables
vacuuming using a more aggressive cutoff.

This approach can't be used for the regression test that involves a
materialized view, but that test doesn't run vacuum, so it shouldn't
be prone to this particular failure mode.

Analysis by Tom Lane. Patch by Ashutosh Sharma and me.

Discussion: http://postgr.es/m/665524.1599948007@sss.pgh.pa.us
contrib/pg_surgery/expected/heap_surgery.out
contrib/pg_surgery/sql/heap_surgery.sql