The test relies on VACUUM being able to mark a page all-visible, but
this can fail when autovacuum in other sessions prevents the visibility
horizon from advancing. Making the test table temporary isolates its
horizon from other sessions, including catalog table vacuums, ensuring
reliable test behavior.
Reported-by: Alexander Lakhin <exclusion@gmail.com>
Author: Kirill Reshke <reshkekirill@gmail.com>
Reviewed-by: Melanie Plageman <melanieplageman@gmail.com>
Discussion: https://postgr.es/m/
2b09fba6-6b71-497a-96ef-
a6947fcc39f6%40gmail.com
-- test the case where vacuum phase I does not need to modify the heap buffer
-- and only needs to set the VM
-create table test_vac_unmodified_heap(a int);
+create temp table test_vac_unmodified_heap(a int);
insert into test_vac_unmodified_heap values (1);
vacuum (freeze) test_vac_unmodified_heap;
select pg_visibility_map_summary('test_vac_unmodified_heap');
-- test the case where vacuum phase I does not need to modify the heap buffer
-- and only needs to set the VM
-create table test_vac_unmodified_heap(a int);
+create temp table test_vac_unmodified_heap(a int);
insert into test_vac_unmodified_heap values (1);
vacuum (freeze) test_vac_unmodified_heap;
select pg_visibility_map_summary('test_vac_unmodified_heap');