From c175de56dc16b6039c8e19f633abe99efaa1e5e6 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Tue, 20 Jul 1999 17:14:08 +0000
Subject: [PATCH] Reverse out cache changes that are not ready yet.

---
 src/backend/catalog/index.c        |  23 +++---
 src/backend/catalog/indexing.c     | 128 +++++------------------------
 src/backend/utils/cache/syscache.c |  27 ++++--
 src/include/catalog/indexing.h     |  59 +++++--------
 src/include/utils/syscache.h       |  27 +++---
 5 files changed, 84 insertions(+), 180 deletions(-)

diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 53103e2f663..5c44746cb2c 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.86 1999/07/20 16:48:54 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.87 1999/07/20 17:14:05 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -52,23 +52,26 @@
 
 /* non-export function prototypes */
 static Oid GetHeapRelationOid(char *heapRelationName, char *indexRelationName,
-		bool istemp);
+				   bool istemp);
 static TupleDesc BuildFuncTupleDesc(FuncIndexInfo *funcInfo);
 static TupleDesc ConstructTupleDescriptor(Oid heapoid, Relation heapRelation,
-		List *attributeList, int numatts, AttrNumber *attNums);
+						 List *attributeList,
+						 int numatts, AttrNumber *attNums);
 
 static void ConstructIndexReldesc(Relation indexRelation, Oid amoid);
 static Oid	UpdateRelationRelation(Relation indexRelation, char *temp_relname);
 static void InitializeAttributeOids(Relation indexRelation,
-		int numatts, Oid indexoid);
-static void AppendAttributeTuples(Relation indexRelation, int numatts);
+						int numatts,
+						Oid indexoid);
+static void
+			AppendAttributeTuples(Relation indexRelation, int numatts);
 static void UpdateIndexRelation(Oid indexoid, Oid heapoid,
-		FuncIndexInfo *funcInfo, int natts,
-		AttrNumber *attNums, Oid *classOids, Node *predicate,
-		List *attributeList, bool islossy, bool unique, bool primary);
+					FuncIndexInfo *funcInfo, int natts,
+					AttrNumber *attNums, Oid *classOids, Node *predicate,
+		   List *attributeList, bool islossy, bool unique, bool primary);
 static void DefaultBuild(Relation heapRelation, Relation indexRelation,
-		int numberOfAttributes, AttrNumber *attributeNumber,
-		IndexStrategy indexStrategy, uint16 parameterCount,
+			 int numberOfAttributes, AttrNumber *attributeNumber,
+			 IndexStrategy indexStrategy, uint16 parameterCount,
 		Datum *parameter, FuncIndexInfoPtr funcInfo, PredInfo *predInfo);
 
 /* ----------------------------------------------------------------
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index f29b317f9e7..85a22874354 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.41 1999/07/20 16:48:54 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.42 1999/07/20 17:14:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,29 +28,38 @@
 
 /*
  * Names of indices on the following system catalogs:
+ *
+ *		pg_attribute
+ *		pg_proc
+ *		pg_type
+ *		pg_naming
+ *		pg_class
+ *		pg_attrdef
+ *		pg_relcheck
+ *		pg_trigger
  */
 
-char	   *Name_pg_amop_indices[Num_pg_amop_indices] = {AccessMethodOpidIndex,
-			AccessMethodStrategyIndex};
 char	   *Name_pg_attr_indices[Num_pg_attr_indices] = {AttributeNameIndex,
-			AttributeNumIndex, AttributeRelidIndex};
-char	   *Name_pg_index_indices[Num_pg_index_indices] = {IndexRelidIndex};
+	AttributeNumIndex,
+AttributeRelidIndex};
 char	   *Name_pg_proc_indices[Num_pg_proc_indices] = {ProcedureNameIndex,
-			ProcedureOidIndex, ProcedureSrcIndex};
+	ProcedureOidIndex,
+ProcedureSrcIndex};
 char	   *Name_pg_type_indices[Num_pg_type_indices] = {TypeNameIndex,
-			TypeOidIndex};
+TypeOidIndex};
 char	   *Name_pg_class_indices[Num_pg_class_indices] = {ClassNameIndex,
-			ClassOidIndex};
+ClassOidIndex};
 char	   *Name_pg_attrdef_indices[Num_pg_attrdef_indices] = {AttrDefaultIndex};
 
 char	   *Name_pg_relcheck_indices[Num_pg_relcheck_indices] = {RelCheckIndex};
 
 char	   *Name_pg_trigger_indices[Num_pg_trigger_indices] = {TriggerRelidIndex};
-char	   *Name_pg_description_indices[Num_pg_description_indices] = {DescriptionObjIndex};
 
 
 static HeapTuple CatalogIndexFetchTuple(Relation heapRelation,
-			Relation idesc, ScanKey skey, int16 num_keys);
+					   Relation idesc,
+					   ScanKey skey,
+					   int16 num_keys);
 
 
 /*
@@ -243,89 +252,12 @@ CatalogIndexFetchTuple(Relation heapRelation,
 }
 
 
-/*---------------------------------------------------------------------
- *                       Class-specific index lookups
- *---------------------------------------------------------------------
- */
-
 /*
  * The remainder of the file is for individual index scan routines.  Each
  * index should be scanned according to how it was defined during bootstrap
  * (that is, functional or normal) and what arguments the cache lookup
  * requires.  Each routine returns the heap tuple that qualifies.
  */
-HeapTuple
-AccessMethodOpidIndexScan(Relation heapRelation,
-						  Oid claid,
-						  Oid opopr,
-						  Oid opid)
-{
-	Relation	idesc;
-	ScanKeyData skey[3];
-	HeapTuple	tuple;
-
-	ScanKeyEntryInitialize(&skey[0],
-						   (bits16) 0x0,
-						   (AttrNumber) 1,
-						   (RegProcedure) F_OIDEQ,
-						   ObjectIdGetDatum(claid));
-
-	ScanKeyEntryInitialize(&skey[1],
-						   (bits16) 0x0,
-						   (AttrNumber) 2,
-						   (RegProcedure) F_OIDEQ,
-						   ObjectIdGetDatum(opopr));
-
-	ScanKeyEntryInitialize(&skey[2],
-						   (bits16) 0x0,
-						   (AttrNumber) 3,
-						   (RegProcedure) F_OIDEQ,
-						   ObjectIdGetDatum(opid));
-
-	idesc = index_openr(AccessMethodOpidIndex);
-	tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 3);
-
-	index_close(idesc);
-
-	return tuple;
-}
-
-HeapTuple
-AccessMethodStrategyIndexScan(Relation heapRelation,
-							  Oid opid,
-							  Oid claid,
-							  int2 opstrategy)
-{
-	Relation	idesc;
-	ScanKeyData skey[3];
-	HeapTuple	tuple;
-
-	ScanKeyEntryInitialize(&skey[0],
-						   (bits16) 0x0,
-						   (AttrNumber) 1,
-						   (RegProcedure) F_OIDEQ,
-						   ObjectIdGetDatum(opid));
-
-	ScanKeyEntryInitialize(&skey[1],
-						   (bits16) 0x0,
-						   (AttrNumber) 2,
-						   (RegProcedure) F_OIDEQ,
-						   ObjectIdGetDatum(claid));
-
-	ScanKeyEntryInitialize(&skey[2],
-						   (bits16) 0x0,
-						   (AttrNumber) 3,
-						   (RegProcedure) F_INT2EQ,
-						   Int16GetDatum(opstrategy));
-
-	idesc = index_openr(AccessMethodStrategyIndex);
-	tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 3);
-
-	index_close(idesc);
-
-	return tuple;
-}
- 
 HeapTuple
 AttributeNameIndexScan(Relation heapRelation,
 					   Oid relid,
@@ -385,28 +317,6 @@ AttributeNumIndexScan(Relation heapRelation,
 	return tuple;
 }
 
-HeapTuple
-IndexRelidIndexScan(Relation heapRelation, Oid relid)
-{
-	Relation	idesc;
-	ScanKeyData skey[1];
-	HeapTuple	tuple;
-
-	ScanKeyEntryInitialize(&skey[0],
-						   (bits16) 0x0,
-						   (AttrNumber) 1,
-						   (RegProcedure) F_OIDEQ,
-						   ObjectIdGetDatum(relid));
-
-	idesc = index_openr(IndexRelidIndex);
-	tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 1);
-
-	index_close(idesc);
-
-	return tuple;
-}
-
-
 
 HeapTuple
 ProcedureOidIndexScan(Relation heapRelation, Oid procId)
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index 2dc797206f7..4e4c354e07b 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.32 1999/07/20 16:48:55 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.33 1999/07/20 17:14:06 momjian Exp $
  *
  * NOTES
  *	  These routines allow the parser/planner/executor to perform
@@ -58,8 +58,8 @@ static struct cachedesc cacheinfo[] = {
 			0
 		},
 		sizeof(FormData_pg_amop),
-		AccessMethodOpidIndex,
-	(ScanFunc) AccessMethodOpidIndexScan},
+		NULL,
+	(ScanFunc) NULL},
 	{AccessMethodOperatorRelationName,	/* AMOPSTRATEGY */
 		3,
 		{
@@ -69,8 +69,8 @@ static struct cachedesc cacheinfo[] = {
 			0
 		},
 		sizeof(FormData_pg_amop),
-		AccessMethodStrategyIndex,
-	(ScanFunc) AccessMethodStrategyIndexScan},
+		NULL,
+	(ScanFunc) NULL},
 	{AttributeRelationName,		/* ATTNAME */
 		2,
 		{
@@ -81,7 +81,7 @@ static struct cachedesc cacheinfo[] = {
 		},
 		ATTRIBUTE_TUPLE_SIZE,
 		AttributeNameIndex,
-	(ScanFunc) IndexRelidIndexScan},
+	(ScanFunc) AttributeNameIndexScan},
 	{AttributeRelationName,		/* ATTNUM */
 		2,
 		{
@@ -102,8 +102,8 @@ static struct cachedesc cacheinfo[] = {
 			0
 		},
 		offsetof(FormData_pg_index, indpred),
-		IndexRelidIndex,
-	(ScanFunc) IndexRelidIndexScan},
+		NULL,
+	NULL},
 	{LanguageRelationName,		/* LANNAME */
 		1,
 		{
@@ -225,6 +225,17 @@ static struct cachedesc cacheinfo[] = {
 		sizeof(FormData_pg_opclass),
 		NULL,
 	NULL},
+	{IndexRelationName,			/* INDRELIDKEY *//* never used */
+		2,
+		{
+			Anum_pg_index_indrelid,
+			Anum_pg_index_indkey,
+			0,
+			0
+		},
+		offsetof(FormData_pg_index, indpred),
+		NULL,
+	(ScanFunc) NULL},
 	{InheritsRelationName,		/* INHRELID */
 		2,
 		{
diff --git a/src/include/catalog/indexing.h b/src/include/catalog/indexing.h
index 4a7cfa7c471..698342d0815 100644
--- a/src/include/catalog/indexing.h
+++ b/src/include/catalog/indexing.h
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: indexing.h,v 1.22 1999/07/20 16:48:56 momjian Exp $
+ * $Id: indexing.h,v 1.23 1999/07/20 17:14:07 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,9 +19,7 @@
 /*
  * Some definitions for indices on pg_attribute
  */
-#define Num_pg_amop_indices		2
 #define Num_pg_attr_indices		3
-#define Num_pg_index_indices	1
 #define Num_pg_proc_indices		3
 #define Num_pg_type_indices		2
 #define Num_pg_class_indices	2
@@ -34,27 +32,22 @@
 /*
  * Names of indices on system catalogs
  */
-#define AccessMethodOpidIndex "pg_amop_opid_index"
-#define AccessMethodStrategyIndex "pg_amop_strategy_index"
-#define AttributeNameIndex 	"pg_attribute_relid_attnam_index"
-#define AttributeNumIndex  	"pg_attribute_relid_attnum_index"
+#define AttributeNameIndex "pg_attribute_relid_attnam_index"
+#define AttributeNumIndex  "pg_attribute_relid_attnum_index"
 #define AttributeRelidIndex "pg_attribute_attrelid_index"
-#define IndexRelidIndex 	"pg_index_indexrelid_index"
-#define ProcedureOidIndex  	"pg_proc_oid_index"
-#define ProcedureNameIndex 	"pg_proc_proname_narg_type_index"
-#define ProcedureSrcIndex  	"pg_proc_prosrc_index"
-#define TypeOidIndex	   	"pg_type_oid_index"
-#define TypeNameIndex	   	"pg_type_typname_index"
-#define ClassOidIndex	   	"pg_class_oid_index"
-#define ClassNameIndex	   	"pg_class_relname_index"
-#define AttrDefaultIndex   	"pg_attrdef_adrelid_index"
-#define RelCheckIndex	   	"pg_relcheck_rcrelid_index"
-#define TriggerRelidIndex  	"pg_trigger_tgrelid_index"
+#define ProcedureOidIndex  "pg_proc_oid_index"
+#define ProcedureNameIndex "pg_proc_proname_narg_type_index"
+#define ProcedureSrcIndex  "pg_proc_prosrc_index"
+#define TypeOidIndex	   "pg_type_oid_index"
+#define TypeNameIndex	   "pg_type_typname_index"
+#define ClassOidIndex	   "pg_class_oid_index"
+#define ClassNameIndex	   "pg_class_relname_index"
+#define AttrDefaultIndex   "pg_attrdef_adrelid_index"
+#define RelCheckIndex	   "pg_relcheck_rcrelid_index"
+#define TriggerRelidIndex  "pg_trigger_tgrelid_index"
 #define DescriptionObjIndex "pg_description_objoid_index"
 
-extern char *Name_pg_amop_indices[];
 extern char *Name_pg_attr_indices[];
-extern char *Name_pg_index_indices[];
 extern char *Name_pg_proc_indices[];
 extern char *Name_pg_type_indices[];
 extern char *Name_pg_class_indices[];
@@ -63,7 +56,6 @@ extern char *Name_pg_relcheck_indices[];
 extern char *Name_pg_trigger_indices[];
 extern char *Name_pg_description_indices[];
 
-
 extern char *IndexedCatalogNames[];
 
 /*
@@ -79,22 +71,16 @@ extern void CatalogIndexInsert(Relation *idescs,
 				   HeapTuple heapTuple);
 extern bool CatalogHasIndex(char *catName, Oid catId);
 
-
-
-extern HeapTuple AccessMethodOpidIndexScan(Relation heapRelation,
-				  Oid claid, Oid opopr, Oid opid);
-extern HeapTuple AccessMethodStrategyIndexScan(Relation heapRelation,
-				  Oid opid, Oid claid, int2 opstrategy);
 extern HeapTuple AttributeNameIndexScan(Relation heapRelation,
-				   Oid relid,
-				   char *attname);
+					   Oid relid,
+					   char *attname);
+
 extern HeapTuple AttributeNumIndexScan(Relation heapRelation,
-				  Oid relid,
-				  AttrNumber attnum);
-extern HeapTuple IndexRelidIndexScan(Relation heapRelation, Oid relid);
+					  Oid relid,
+					  AttrNumber attnum);
 extern HeapTuple ProcedureOidIndexScan(Relation heapRelation, Oid procId);
 extern HeapTuple ProcedureNameIndexScan(Relation heapRelation,
-				   char *procName, int2 nargs, Oid *argTypes);
+					   char *procName, int2 nargs, Oid *argTypes);
 extern HeapTuple ProcedureSrcIndexScan(Relation heapRelation, text *procSrc);
 extern HeapTuple TypeOidIndexScan(Relation heapRelation, Oid typeId);
 extern HeapTuple TypeNameIndexScan(Relation heapRelation, char *typeName);
@@ -102,8 +88,6 @@ extern HeapTuple ClassNameIndexScan(Relation heapRelation, char *relName);
 extern HeapTuple ClassOidIndexScan(Relation heapRelation, Oid relId);
 
 
-
-
 /*
  * What follows are lines processed by genbki.sh to create the statements
  * the bootstrap parser will turn into DefineIndex commands.
@@ -111,15 +95,10 @@ extern HeapTuple ClassOidIndexScan(Relation heapRelation, Oid relId);
  * The keyword is DECLARE_INDEX every thing after that is just like in a
  * normal specification of the 'define index' POSTQUEL command.
  */
-DECLARE_INDEX(pg_amop_opid_index on pg_amop using btree(amopclaid oid_ops, amopopr oid_ops, amopid oid_ops));
-DECLARE_INDEX(pg_amop_strategy_index on pg_amop using btree(amopid oid_ops, amopclaid oid_ops, amopstrategy int2_ops));
-
 DECLARE_INDEX(pg_attribute_relid_attnam_index on pg_attribute using btree(attrelid oid_ops, attname name_ops));
 DECLARE_INDEX(pg_attribute_relid_attnum_index on pg_attribute using btree(attrelid oid_ops, attnum int2_ops));
 DECLARE_INDEX(pg_attribute_attrelid_index on pg_attribute using btree(attrelid oid_ops));
 
-DECLARE_INDEX(pg_index_indexrelid_index on pg_index using btree(indrelid oid_ops));
-
 DECLARE_INDEX(pg_proc_oid_index on pg_proc using btree(oid oid_ops));
 DECLARE_INDEX(pg_proc_proname_narg_type_index on pg_proc using btree(proname name_ops, pronargs int2_ops, proargtypes oid8_ops));
 DECLARE_INDEX(pg_proc_prosrc_index on pg_proc using btree(prosrc text_ops));
diff --git a/src/include/utils/syscache.h b/src/include/utils/syscache.h
index 5378b6319dc..313f543e45e 100644
--- a/src/include/utils/syscache.h
+++ b/src/include/utils/syscache.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: syscache.h,v 1.16 1999/07/20 16:48:58 momjian Exp $
+ * $Id: syscache.h,v 1.17 1999/07/20 17:14:08 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,18 +46,19 @@
 #define TYPOID			13
 #define AMNAME			14
 #define CLANAME			15
-#define INHRELID		16
-#define RULOID			17
-#define AGGNAME			18
-#define LISTENREL		19
-#define USENAME			20
-#define USESYSID		21
-#define GRONAME			22
-#define GROSYSID		23
-#define REWRITENAME		24
-#define PROSRC			25
-#define CLADEFTYPE		26
-#define LANOID			27
+#define INDRELIDKEY		16
+#define INHRELID		17
+#define RULOID			18
+#define AGGNAME			19
+#define LISTENREL		20
+#define USENAME			21
+#define USESYSID		22
+#define GRONAME			23
+#define GROSYSID		24
+#define REWRITENAME		25
+#define PROSRC			26
+#define CLADEFTYPE		27
+#define LANOID			28
 
 /* ----------------
  *		struct cachedesc:		information needed for a call to InitSysCache()
-- 
GitLab