Re: Flaky vacuum truncate test in reloptions.sql - Mailing list pgsql-hackers
From | Arseny Sher |
---|---|
Subject | Re: Flaky vacuum truncate test in reloptions.sql |
Date | |
Msg-id | 87pmzeqvvi.fsf@ars-thinkpad Whole thread Raw |
In response to | Re: Flaky vacuum truncate test in reloptions.sql (Michael Paquier <michael@paquier.xyz>) |
Responses |
Re: Flaky vacuum truncate test in reloptions.sql
|
List | pgsql-hackers |
Michael Paquier <michael@paquier.xyz> writes: > On Thu, Apr 01, 2021 at 12:52:21PM +0900, Masahiko Sawada wrote: >> Just to be clear the context, I’m mentioning the following test case: Sorry, I misremembered the test and assumed the table is non-empty there while it is empty but vacuum_truncate is disabled. Still, this doesn't change my conclusion of freezing being not a big deal there due to small chance of locked page. Anyway, let's finish with this. > What you are writing here makes sense to me. Looking at the test, it > is designed to test vacuum_truncate, aka that the behavior we want to > stress (your former case here) gets stressed all the time, so adding > the options to avoid the latter case all the time is an improvement. > And this, even if the latter case does not actually cause a diff and > it has a small chance to happen in practice. > > It would be good to add a comment explaining why the options are > added (aka just don't skip any pages). How about the attached? -- cheers, arseny diff --git a/src/test/regress/expected/reloptions.out b/src/test/regress/expected/reloptions.out index 44c130409ff..d6f5bf98114 100644 --- a/src/test/regress/expected/reloptions.out +++ b/src/test/regress/expected/reloptions.out @@ -102,7 +102,8 @@ SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass; INSERT INTO reloptions_test VALUES (1, NULL), (NULL, NULL); ERROR: null value in column "i" of relation "reloptions_test" violates not-null constraint DETAIL: Failing row contains (null, null). -VACUUM reloptions_test; +-- do aggressive vacuum to be sure we won't skip the page even if it is locked +VACUUM FREEZE reloptions_test; SELECT pg_relation_size('reloptions_test') > 0; ?column? ---------- @@ -127,7 +128,8 @@ SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass; INSERT INTO reloptions_test VALUES (1, NULL), (NULL, NULL); ERROR: null value in column "i" of relation "reloptions_test" violates not-null constraint DETAIL: Failing row contains (null, null). -VACUUM reloptions_test; +-- do aggressive vacuum to be sure we won't skip the page even if it is locked +VACUUM FREEZE reloptions_test; SELECT pg_relation_size('reloptions_test') = 0; ?column? ---------- diff --git a/src/test/regress/sql/reloptions.sql b/src/test/regress/sql/reloptions.sql index cac5b0bcb0d..61638c3bcae 100644 --- a/src/test/regress/sql/reloptions.sql +++ b/src/test/regress/sql/reloptions.sql @@ -61,7 +61,8 @@ CREATE TABLE reloptions_test(i INT NOT NULL, j text) autovacuum_enabled=false); SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass; INSERT INTO reloptions_test VALUES (1, NULL), (NULL, NULL); -VACUUM reloptions_test; +-- do aggressive vacuum to be sure we won't skip the page even if it is locked +VACUUM FREEZE reloptions_test; SELECT pg_relation_size('reloptions_test') > 0; SELECT reloptions FROM pg_class WHERE oid = @@ -71,7 +72,8 @@ SELECT reloptions FROM pg_class WHERE oid = ALTER TABLE reloptions_test RESET (vacuum_truncate); SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass; INSERT INTO reloptions_test VALUES (1, NULL), (NULL, NULL); -VACUUM reloptions_test; +-- do aggressive vacuum to be sure we won't skip the page even if it is locked +VACUUM FREEZE reloptions_test; SELECT pg_relation_size('reloptions_test') = 0; -- Test toast.* options
pgsql-hackers by date: