Commit 0c19aaba authored by Tom Lane's avatar Tom Lane

Ooops, I broke initdb with that last patch.

That's what I get for not fully retesting the final version of the patch.
The replace_allowed cross-check needs an additional special case for
bootstrapping.
parent 078b2ed2
...@@ -181,13 +181,13 @@ do { \ ...@@ -181,13 +181,13 @@ do { \
HASH_ENTER, &found); \ HASH_ENTER, &found); \
if (found) \ if (found) \
{ \ { \
/* this can happen, see comments in RelationBuildDesc */ \ /* see comments in RelationBuildDesc and RelationBuildLocalRelation */ \
Relation _old_rel = hentry->reldesc; \ Relation _old_rel = hentry->reldesc; \
Assert(replace_allowed); \ Assert(replace_allowed); \
hentry->reldesc = (RELATION); \ hentry->reldesc = (RELATION); \
if (RelationHasReferenceCountZero(_old_rel)) \ if (RelationHasReferenceCountZero(_old_rel)) \
RelationDestroyRelation(_old_rel, false); \ RelationDestroyRelation(_old_rel, false); \
else \ else if (!IsBootstrapProcessingMode()) \
elog(WARNING, "leaking still-referenced relcache entry for \"%s\"", \ elog(WARNING, "leaking still-referenced relcache entry for \"%s\"", \
RelationGetRelationName(_old_rel)); \ RelationGetRelationName(_old_rel)); \
} \ } \
...@@ -2861,9 +2861,15 @@ RelationBuildLocalRelation(const char *relname, ...@@ -2861,9 +2861,15 @@ RelationBuildLocalRelation(const char *relname,
RelationInitPhysicalAddr(rel); RelationInitPhysicalAddr(rel);
/* /*
* Okay to insert into the relcache hash tables. * Okay to insert into the relcache hash table.
*
* Ordinarily, there should certainly not be an existing hash entry for
* the same OID; but during bootstrap, when we create a "real" relcache
* entry for one of the bootstrap relations, we'll be overwriting the
* phony one created with formrdesc. So allow that to happen for nailed
* rels.
*/ */
RelationCacheInsert(rel, false); RelationCacheInsert(rel, nailit);
/* /*
* Flag relation as needing eoxact cleanup (to clear rd_createSubid). We * Flag relation as needing eoxact cleanup (to clear rd_createSubid). We
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment