]> granicus.if.org Git - postgresql/commitdiff
RelationCacheInvalidate thought there were 7 nailed-in-cache
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 6 Sep 1999 18:13:02 +0000 (18:13 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 6 Sep 1999 18:13:02 +0000 (18:13 +0000)
system tables, but actually there are only 6 --- see RelationInitialize.
Kinda makes you wonder how long ago this code was last executed...

src/backend/utils/cache/relcache.c

index c534db71a43e75237f92496978dce604b925166f..6f5bbb7f959d5241a349d72be02f8aa1b754df0a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.70 1999/09/04 21:47:23 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.71 1999/09/06 18:13:02 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1462,13 +1462,13 @@ RelationCacheInvalidate(bool onlyFlushReferenceCountZero)
                                  onlyFlushReferenceCountZero);
 
        /*
-        * nailed-in reldescs will still be in the cache... 7 hardwired heaps
-        * + 3 hardwired indices == 10 total.
+        * nailed-in reldescs will still be in the cache... 6 hardwired heaps
+        * + 3 hardwired indices == 9 total.
         */
        if (!onlyFlushReferenceCountZero)
        {
-               Assert(RelationNameCache->hctl->nkeys == 10);
-               Assert(RelationIdCache->hctl->nkeys == 10);
+               Assert(RelationNameCache->hctl->nkeys == 9);
+               Assert(RelationIdCache->hctl->nkeys == 9);
        }
 }
 
@@ -1634,6 +1634,8 @@ RelationInitialize(void)
         *      initialize the cache with pre-made relation descriptors
         *      for some of the more important system relations.  These
         *      relations should always be in the cache.
+        *
+        *      NB: if you change this list, fix the count in RelationCacheInvalidate!
         * ----------------
         */
        formrdesc(RelationRelationName, Natts_pg_class, Desc_pg_class);
@@ -2058,11 +2060,14 @@ write_irels(void)
        FileSeek(fd, 0L, SEEK_SET);
 
        /*
-        * Build a relation descriptor for pg_attnumind without resort to the
-        * descriptor cache.  In order to do this, we set ProcessingMode to
-        * Bootstrap.  The effect of this is to disable indexed relation
-        * searches -- a necessary step, since we're trying to instantiate the
-        * index relation descriptors here.
+        * Build relation descriptors for the critical system indexes without
+        * resort to the descriptor cache.  In order to do this, we set
+        * ProcessingMode to Bootstrap.  The effect of this is to disable indexed
+        * relation searches -- a necessary step, since we're trying to
+        * instantiate the index relation descriptors here.  Once we have the
+        * descriptors, nail them into cache so we never lose them.
+        *
+        * NB: if you change this list, fix the count in RelationCacheInvalidate!
         */
 
        oldmode = GetProcessingMode();
@@ -2083,7 +2088,9 @@ write_irels(void)
 
        SetProcessingMode(oldmode);
 
-       /* nail the descriptor in the cache */
+       /*
+        * Write out the index reldescs to the special cache file.
+        */
        for (relno = 0; relno < Num_indices_bootstrap; relno++)
        {
                ird = irel[relno];