]> granicus.if.org Git - postgresql/commitdiff
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;
 }