Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfe246d1

Browse files
committed
Improve stability of test with vacuum_truncate in reloptions.sql
This test has been using a simple VACUUM with pg_relation_size() tocheck if a relation gets physically truncated or not, but forgot thefact that some concurrent activity, like checkpoint buffer writes, couldcause some pages to be skipped. The second test enablingvacuum_truncate could fail, seeing a non-empty relation. The first testwould not have failed, but could finish by testing a behavior differentthan the one aimed for. Both tests gain a FREEZE option, to make thevacuums more aggressive and prevent page skips.This is similar to the issues fixed inc2dc1a7.Author: Arseny SherReviewed-by: Masahiko SawadaDiscussion:https://postgr.es/m/87tuotr2hh.fsf@ars-thinkpadbackpatch-through: 12
1 parent1ebdec8 commitfe246d1

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

‎src/test/regress/expected/reloptions.out

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass;
102102
INSERT INTO reloptions_test VALUES (1, NULL), (NULL, NULL);
103103
ERROR: null value in column "i" of relation "reloptions_test" violates not-null constraint
104104
DETAIL: Failing row contains (null, null).
105-
VACUUM reloptions_test;
105+
-- Do an aggressive vacuum to prevent page-skipping.
106+
VACUUM FREEZE reloptions_test;
106107
SELECT pg_relation_size('reloptions_test') > 0;
107108
?column?
108109
----------
@@ -127,7 +128,8 @@ SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass;
127128
INSERT INTO reloptions_test VALUES (1, NULL), (NULL, NULL);
128129
ERROR: null value in column "i" of relation "reloptions_test" violates not-null constraint
129130
DETAIL: Failing row contains (null, null).
130-
VACUUM reloptions_test;
131+
-- Do an aggressive vacuum to prevent page-skipping.
132+
VACUUM FREEZE reloptions_test;
131133
SELECT pg_relation_size('reloptions_test') = 0;
132134
?column?
133135
----------

‎src/test/regress/sql/reloptions.sql

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ CREATE TABLE reloptions_test(i INT NOT NULL, j text)
6161
autovacuum_enabled=false);
6262
SELECT reloptionsFROM pg_classWHEREoid='reloptions_test'::regclass;
6363
INSERT INTO reloptions_testVALUES (1,NULL), (NULL,NULL);
64-
VACUUM reloptions_test;
64+
-- Do an aggressive vacuum to prevent page-skipping.
65+
VACUUM FREEZE reloptions_test;
6566
SELECT pg_relation_size('reloptions_test')>0;
6667

6768
SELECT reloptionsFROM pg_classWHEREoid=
@@ -71,7 +72,8 @@ SELECT reloptions FROM pg_class WHERE oid =
7172
ALTERTABLE reloptions_test RESET (vacuum_truncate);
7273
SELECT reloptionsFROM pg_classWHEREoid='reloptions_test'::regclass;
7374
INSERT INTO reloptions_testVALUES (1,NULL), (NULL,NULL);
74-
VACUUM reloptions_test;
75+
-- Do an aggressive vacuum to prevent page-skipping.
76+
VACUUM FREEZE reloptions_test;
7577
SELECT pg_relation_size('reloptions_test')=0;
7678

7779
-- Test toast.* options

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp