aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/catalog/indexing.c4
-rw-r--r--src/backend/commands/rename.c14
-rw-r--r--src/backend/commands/vacuum.c10
-rw-r--r--src/backend/utils/adt/selfuncs.c18
4 files changed, 25 insertions, 21 deletions
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index 0815fce3c4b..20e2f2d5e67 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 288c9404c12..cf2c1a1bd00 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 f80a07f3888..aa57eef655f 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 3e2d123df14..ee00e1dd79b 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;
}