Enable pg_statistic cache use.
authorBruce Momjian <bruce@momjian.us>
Thu, 25 Nov 1999 00:15:57 +0000 (00:15 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 25 Nov 1999 00:15:57 +0000 (00:15 +0000)
src/backend/catalog/indexing.c
src/backend/commands/rename.c
src/backend/commands/vacuum.c
src/backend/utils/adt/selfuncs.c

index 0815fce3c4bf5bfd2f524208100c5b4ebd22e789..20e2f2d5e67ee264e9e68811a07182f58796e74d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.52 1999/11/24 16:52:31 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.53 1999/11/25 00:15:56 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -63,6 +63,8 @@ char     *Name_pg_rewrite_indices[Num_pg_rewrite_indices] =
            {RewriteOidIndex, RewriteRulenameIndex};
 char      *Name_pg_shadow_indices[Num_pg_shadow_indices] =
            {ShadowNameIndex, ShadowSysidIndex};
+char      *Name_pg_statistic_indices[Num_pg_statistic_indices] =
+           {StatisticRelidAttnumOpIndex};
 char      *Name_pg_trigger_indices[Num_pg_trigger_indices] =
            {TriggerRelidIndex, TriggerConstrNameIndex, TriggerConstrRelidIndex};
 char      *Name_pg_type_indices[Num_pg_type_indices] =
index 288c9404c128c7a83b20a45ee0bdba5872b906a6..cf2c1a1bd0095bc5fe6eb66169d6c882d70269b4 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.36 1999/11/24 00:44:30 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.37 1999/11/25 00:15:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,7 +56,6 @@ renameatt(char *relname,
    HeapTuple   reltup,
                oldatttup,
                newatttup;
-   Relation    irelations[Num_pg_attr_indices];
    Oid         relid;
 
    /*
@@ -159,10 +158,13 @@ renameatt(char *relname,
    heap_update(attrelation, &oldatttup->t_self, oldatttup, NULL);
 
    /* keep system catalog indices current */
-   CatalogOpenIndices(Num_pg_attr_indices, Name_pg_attr_indices, irelations);
-   CatalogIndexInsert(irelations, Num_pg_attr_indices, attrelation, oldatttup);
-   CatalogCloseIndices(Num_pg_attr_indices, irelations);
-
+   {
+       Relation    irelations[Num_pg_attr_indices];
+       CatalogOpenIndices(Num_pg_attr_indices, Name_pg_attr_indices, irelations);
+       CatalogIndexInsert(irelations, Num_pg_attr_indices, attrelation, oldatttup);
+       CatalogCloseIndices(Num_pg_attr_indices, irelations);
+   }
+   
    pfree(oldatttup);
    heap_close(attrelation, RowExclusiveLock);
 }
index f80a07f3888ac58ac3576988bc830327ca938dff..aa57eef655f2a5c2a8f469c27412b05c866e4479 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.125 1999/11/22 17:56:02 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.126 1999/11/25 00:15:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,6 +24,7 @@
 #include "catalog/catalog.h"
 #include "catalog/catname.h"
 #include "catalog/index.h"
+#include "catalog/indexing.h"
 #include "catalog/pg_operator.h"
 #include "catalog/pg_statistic.h"
 #include "catalog/pg_type.h"
@@ -2446,6 +2447,13 @@ vc_updstats(Oid relid, int num_pages, int num_tuples, bool hasindex, VRelStats *
                     */
                    heap_insert(sd, stup);
 
+                   {
+                       Relation    irelations[Num_pg_statistic_indices];
+                       CatalogOpenIndices(Num_pg_statistic_indices, Name_pg_statistic_indices, irelations);
+                       CatalogIndexInsert(irelations, Num_pg_statistic_indices, sd, stup);
+                       CatalogCloseIndices(Num_pg_statistic_indices, irelations);
+                   }
+                   
                    /* release allocated space */
                    pfree(DatumGetPointer(values[Anum_pg_statistic_stacommonval-1]));
                    pfree(DatumGetPointer(values[Anum_pg_statistic_staloval-1]));
index 3e2d123df1456c2610e62bc9657d7096d3617b8c..ee00e1dd79b36ecea0a0908d42abd5e5395511ee 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.42 1999/11/22 17:56:30 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.43 1999/11/25 00:15:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -588,11 +588,6 @@ getattstatistics(Oid relid, AttrNumber attnum, Oid typid, int32 typmod,
                 Datum *hival)
 {
    Relation    rel;
-   HeapScanDesc scan;
-   static ScanKeyData key[2] = {
-       {0, Anum_pg_statistic_starelid, F_OIDEQ, {0, 0, F_OIDEQ}},
-       {0, Anum_pg_statistic_staattnum, F_INT2EQ, {0, 0, F_INT2EQ}}
-   };
    bool        isnull;
    HeapTuple   tuple;
    HeapTuple   typeTuple;
@@ -600,15 +595,13 @@ getattstatistics(Oid relid, AttrNumber attnum, Oid typid, int32 typmod,
 
    rel = heap_openr(StatisticRelationName, AccessShareLock);
 
-   key[0].sk_argument = ObjectIdGetDatum(relid);
-   key[1].sk_argument = Int16GetDatum((int16) attnum);
-
-   scan = heap_beginscan(rel, 0, SnapshotNow, 2, key);
-   tuple = heap_getnext(scan, 0);
+   tuple = SearchSysCacheTuple(STATRELID,
+                                   ObjectIdGetDatum(relid),
+                                   Int16GetDatum((int16) attnum),
+                                   0, 0); /* staop is currently 0 */
    if (!HeapTupleIsValid(tuple))
    {
        /* no such stats entry */
-       heap_endscan(scan);
        heap_close(rel, AccessShareLock);
        return false;
    }
@@ -693,7 +686,6 @@ getattstatistics(Oid relid, AttrNumber attnum, Oid typid, int32 typmod,
        }
    }
 
-   heap_endscan(scan);
    heap_close(rel, AccessShareLock);
    return true;
 }