88 *
99 *
1010 * IDENTIFICATION
11- * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.240 2006/05/04 18 :51:35 tgl Exp $
11+ * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.241 2006/05/06 15 :51:07 tgl Exp $
1212 *
1313 *-------------------------------------------------------------------------
1414 */
1515/*
1616 * INTERFACE ROUTINES
17- *RelationCacheInitialize- initialize relcache
17+ *RelationCacheInitialize- initialize relcache (to empty)
1818 *RelationCacheInitializePhase2- finish initializing relcache
1919 *RelationIdGetRelation- get a reldesc by relation id
2020 *RelationIdCacheGetRelation- get a cached reldesc by relid
@@ -102,12 +102,6 @@ static HTAB *RelationIdCache;
102102 */
103103bool criticalRelcachesBuilt = false;
104104
105- /*
106- * This flag is set if we discover that we need to write a new relcache
107- * cache file at the end of startup.
108- */
109- static bool needNewCacheFile = false;
110-
111105/*
112106 * This counter counts relcache inval events received since backend startup
113107 * (but only for rels that are actually in cache).Presently, we use it only
@@ -1162,14 +1156,14 @@ LookupOpclassInfo(Oid operatorClassOid,
11621156 *formrdesc
11631157 *
11641158 *This is a special cut-down version of RelationBuildDesc()
1165- *used byRelationCacheInitialize () in initializing the relcache.
1159+ *used byRelationCacheInitializePhase2 () in initializing the relcache.
11661160 *The relation descriptor is built just from the supplied parameters,
11671161 *without actually looking at any system table entries. We cheat
11681162 *quite a lot since we only need to work for a few basic system
11691163 *catalogs.
11701164 *
11711165 * formrdesc is currently used for: pg_class, pg_attribute, pg_proc,
1172- * and pg_type (seeRelationCacheInitialize ).
1166+ * and pg_type (seeRelationCacheInitializePhase2 ).
11731167 *
11741168 * Note that these catalogs can't have constraints (except attnotnull),
11751169 * default values, rules, or triggers, since we don't cope with any of that.
@@ -2026,7 +2020,7 @@ RelationBuildLocalRelation(const char *relname,
20262020/*
20272021 * check for creation of a rel that must be nailed in cache.
20282022 *
2029- * XXX this list had better matchRelationCacheInitialize 's list.
2023+ * XXX this list had better matchRelationCacheInitializePhase2 's list.
20302024 */
20312025switch (relid )
20322026{
@@ -2180,7 +2174,7 @@ RelationCacheInitialize(void)
21802174oldcxt = MemoryContextSwitchTo (CacheMemoryContext );
21812175
21822176/*
2183- * createhashtables thatindex the relcache
2177+ * createhashtable thatindexes the relcache
21842178 */
21852179MemSet (& ctl ,0 ,sizeof (ctl ));
21862180ctl .keysize = sizeof (Oid );
@@ -2211,6 +2205,7 @@ RelationCacheInitializePhase2(void)
22112205HASH_SEQ_STATUS status ;
22122206RelIdCacheEnt * idhentry ;
22132207MemoryContext oldcxt ;
2208+ bool needNewCacheFile = false;
22142209
22152210/*
22162211 * switch to cache memory context
@@ -2225,6 +2220,8 @@ RelationCacheInitializePhase2(void)
22252220if (IsBootstrapProcessingMode ()||
22262221!load_relcache_init_file ())
22272222{
2223+ needNewCacheFile = true;
2224+
22282225formrdesc ("pg_class" ,PG_CLASS_RELTYPE_OID ,
22292226 true,Natts_pg_class ,Desc_pg_class );
22302227formrdesc ("pg_attribute" ,PG_ATTRIBUTE_RELTYPE_OID ,
@@ -2909,7 +2906,7 @@ RelationGetIndexPredicate(Relation relation)
29092906 * load_relcache_init_file -- attempt to load cache from the init file
29102907 *
29112908 * If successful, return TRUE and set criticalRelcachesBuilt to true.
2912- * If not successful, return FALSE and set needNewCacheFile to true .
2909+ * If not successful, return FALSE.
29132910 *
29142911 * NOTE: we assume we are already switched into CacheMemoryContext.
29152912 */
@@ -2932,10 +2929,7 @@ load_relcache_init_file(void)
29322929
29332930fp = AllocateFile (initfilename ,PG_BINARY_R );
29342931if (fp == NULL )
2935- {
2936- needNewCacheFile = true;
29372932return false;
2938- }
29392933
29402934/*
29412935 * Read the index relcache entries from the file. Note we will not enter
@@ -3199,7 +3193,6 @@ load_relcache_init_file(void)
31993193pfree (rels );
32003194FreeFile (fp );
32013195
3202- needNewCacheFile = true;
32033196return false;
32043197}
32053198