mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 00:03:57 -04:00 
			
		
		
		
	Reverse out cache changes that are not ready yet.
This commit is contained in:
		
							parent
							
								
									7944d501f4
								
							
						
					
					
						commit
						c175de56dc
					
				| @ -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 | ||||
| @ -55,13 +55,16 @@ static Oid GetHeapRelationOid(char *heapRelationName, char *indexRelationName, | ||||
| 				   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, | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
							
								
								
									
										27
									
								
								src/backend/utils/cache/syscache.c
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								src/backend/utils/cache/syscache.c
									
									
									
									
										vendored
									
									
								
							| @ -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, | ||||
| 		{ | ||||
|  | ||||
| @ -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,12 +32,9 @@ | ||||
| /*
 | ||||
|  * 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 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" | ||||
| @ -52,9 +47,7 @@ | ||||
| #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,19 +71,13 @@ 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); | ||||
| 
 | ||||
| extern HeapTuple AttributeNumIndexScan(Relation heapRelation, | ||||
| 					  Oid relid, | ||||
| 					  AttrNumber attnum); | ||||
| extern HeapTuple IndexRelidIndexScan(Relation heapRelation, Oid relid); | ||||
| extern HeapTuple ProcedureOidIndexScan(Relation heapRelation, Oid procId); | ||||
| extern HeapTuple ProcedureNameIndexScan(Relation heapRelation, | ||||
| 					   char *procName, int2 nargs, Oid *argTypes); | ||||
| @ -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)); | ||||
|  | ||||
| @ -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() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user