Skip to content

Commit 4451ed3

Browse files
author
Hiroshi Inoue
committed
init_irels() is changed to be called in RelationCacheInitializePhase2()
so that transactional control could guarantee the consistency.
1 parent 682b128 commit 4451ed3

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

src/backend/utils/cache/relcache.c

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.123 2001/01/04 02:24:22 inoue Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.124 2001/01/06 01:48:59 inoue Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -2104,15 +2104,11 @@ RelationCacheInitialize(void)
21042104
formrdesc(LogRelationName, Natts_pg_log, Desc_pg_log);
21052105

21062106
/*
2107-
* If this isn't initdb time, then we want to initialize some index
2108-
* relation descriptors, as well. The descriptors are for
2109-
* pg_attnumind (to make building relation descriptors fast) and
2110-
* possibly others, as they're added.
2107+
* init_irels() used to be called here. It is changed to be called
2108+
* in RelationCacheInitializePhase2() now so that transactional
2109+
* control could guarantee the consistency.
21112110
*/
21122111

2113-
if (!IsBootstrapProcessingMode())
2114-
init_irels();
2115-
21162112
MemoryContextSwitchTo(oldcxt);
21172113
}
21182114

@@ -2134,6 +2130,17 @@ RelationCacheInitializePhase2(void)
21342130
*/
21352131
if (!IsBootstrapProcessingMode())
21362132
{
2133+
/*
2134+
* Initialize critical system index relation descriptors, first.
2135+
* They are to make building relation descriptors fast.
2136+
* init_irels() used to be called in RelationCacheInitialize().
2137+
* It is changed to be called here to be transaction safe.
2138+
*/
2139+
MemoryContext oldcxt = MemoryContextSwitchTo(CacheMemoryContext);
2140+
init_irels();
2141+
MemoryContextSwitchTo(oldcxt);
2142+
2143+
/* fix nailed-in-cache relations */
21372144
fixrdesc(RelationRelationName);
21382145
fixrdesc(AttributeRelationName);
21392146
fixrdesc(ProcedureRelationName);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy