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

Commitd88d06c

Browse files
committed
Fix relcache reference leak.
Reported by Kevin Grittner. Faulty commit identified by Tom Lane.Patch by Amit Langote, reviewed by Michael Paquier.Discussion:http://postgr.es/m/CACjxUsOHbH1=99u8mGxmLHfy5hov4ENEpvM6=3ARjos7wG7rtQ@mail.gmail.com
1 parent508daba commitd88d06c

File tree

5 files changed

+37
-2
lines changed

5 files changed

+37
-2
lines changed

‎src/backend/commands/analyze.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,11 +1360,14 @@ acquire_inherited_sample_rows(Relation onerel, int elevel,
13601360
else
13611361
{
13621362
/*
1363-
* ignore, but release the lock on it.could be a partitioned
1364-
*table.
1363+
* ignore, but release the lock on it.don't try to unlock the
1364+
*passed-in relation
13651365
*/
1366+
Assert(childrel->rd_rel->relkind==RELKIND_PARTITIONED_TABLE);
13661367
if (childrel!=onerel)
13671368
heap_close(childrel,AccessShareLock);
1369+
else
1370+
heap_close(childrel,NoLock);
13681371
continue;
13691372
}
13701373

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,3 +420,9 @@ SELECT nextval('truncate_a_id1'); -- fail, seq should have been dropped
420420
ERROR: relation "truncate_a_id1" does not exist
421421
LINE 1: SELECT nextval('truncate_a_id1');
422422
^
423+
-- partitioned table
424+
CREATE TABLE truncparted (a int, b char) PARTITION BY LIST (a);
425+
CREATE TABLE truncparted1 PARTITION OF truncparted FOR VALUES IN (1);
426+
INSERT INTO truncparted VALUES (1, 'a');
427+
TRUNCATE truncparted;
428+
DROP TABLE truncparted;

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,12 @@ VACUUM FULL vactst;
8282
VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
8383
DROP TABLE vaccluster;
8484
DROP TABLE vactst;
85+
-- partitioned table
86+
CREATE TABLE vacparted (a int, b char) PARTITION BY LIST (a);
87+
CREATE TABLE vacparted1 PARTITION OF vacparted FOR VALUES IN (1);
88+
INSERT INTO vacparted VALUES (1, 'a');
89+
UPDATE vacparted SET b = 'b';
90+
VACUUM (ANALYZE) vacparted;
91+
VACUUM (FULL) vacparted;
92+
VACUUM (FREEZE) vacparted;
93+
DROP TABLE vacparted;

‎src/test/regress/sql/truncate.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,10 @@ SELECT * FROM truncate_a;
215215
DROPTABLE truncate_a;
216216

217217
SELECT nextval('truncate_a_id1');-- fail, seq should have been dropped
218+
219+
-- partitioned table
220+
CREATETABLEtruncparted (aint, bchar) PARTITION BY LIST (a);
221+
CREATETABLEtruncparted1 PARTITION OF truncparted FORVALUESIN (1);
222+
INSERT INTO truncpartedVALUES (1,'a');
223+
TRUNCATE truncparted;
224+
DROPTABLE truncparted;

‎src/test/regress/sql/vacuum.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,13 @@ VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
6464

6565
DROPTABLE vaccluster;
6666
DROPTABLE vactst;
67+
68+
-- partitioned table
69+
CREATETABLEvacparted (aint, bchar) PARTITION BY LIST (a);
70+
CREATETABLEvacparted1 PARTITION OF vacparted FORVALUESIN (1);
71+
INSERT INTO vacpartedVALUES (1,'a');
72+
UPDATE vacpartedSET b='b';
73+
VACUUM (ANALYZE) vacparted;
74+
VACUUM (FULL) vacparted;
75+
VACUUM (FREEZE) vacparted;
76+
DROPTABLE vacparted;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp