mirror of
https://github.com/postgres/postgres.git
synced 2026-07-15 20:52:53 -04:00
Avoid theoretical infinite loop loading relcache partition key.
Amit Langote, per report from 甄明洋 Discussion: http://postgr.es/m/57bd1e1.1886.15bd7b79cee.Coremail.18612389267@yeah.net
This commit is contained in:
parent
e17628145a
commit
622c82279d
1 changed files with 9 additions and 2 deletions
11
src/backend/utils/cache/relcache.c
vendored
11
src/backend/utils/cache/relcache.c
vendored
|
|
@ -3858,13 +3858,20 @@ RelationCacheInitializePhase3(void)
|
|||
}
|
||||
|
||||
/*
|
||||
* Reload partition key and descriptor for a partitioned table.
|
||||
* Reload the partition key and descriptor for a partitioned table.
|
||||
*/
|
||||
if (relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE)
|
||||
if (relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE &&
|
||||
relation->rd_partkey == NULL)
|
||||
{
|
||||
RelationBuildPartitionKey(relation);
|
||||
Assert(relation->rd_partkey != NULL);
|
||||
|
||||
restart = true;
|
||||
}
|
||||
|
||||
if (relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE &&
|
||||
relation->rd_partdesc == NULL)
|
||||
{
|
||||
RelationBuildPartitionDesc(relation);
|
||||
Assert(relation->rd_partdesc != NULL);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue