diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index 0815fce3c4bf5bfd2f524208100c5b4ebd22e789..20e2f2d5e67ee264e9e68811a07182f58796e74d 100644
--- a/src/backend/catalog/indexing.c
+++ b/src/backend/catalog/indexing.c
@@ -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] =
diff --git a/src/backend/commands/rename.c b/src/backend/commands/rename.c
index 288c9404c128c7a83b20a45ee0bdba5872b906a6..cf2c1a1bd0095bc5fe6eb66169d6c882d70269b4 100644
--- a/src/backend/commands/rename.c
+++ b/src/backend/commands/rename.c
@@ -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);
 }
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index f80a07f3888ac58ac3576988bc830327ca938dff..aa57eef655f2a5c2a8f469c27412b05c866e4479 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -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]));
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 3e2d123df1456c2610e62bc9657d7096d3617b8c..ee00e1dd79b36ecea0a0908d42abd5e5395511ee 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -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;
 }