PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
syscache.h File Reference
#include "access/attnum.h"
#include "access/htup.h"
Include dependency graph for syscache.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SysCacheSize   (USERMAPPINGUSERSERVER + 1)
 
#define SearchSysCache1(cacheId, key1)   SearchSysCache(cacheId, key1, 0, 0, 0)
 
#define SearchSysCache2(cacheId, key1, key2)   SearchSysCache(cacheId, key1, key2, 0, 0)
 
#define SearchSysCache3(cacheId, key1, key2, key3)   SearchSysCache(cacheId, key1, key2, key3, 0)
 
#define SearchSysCache4(cacheId, key1, key2, key3, key4)   SearchSysCache(cacheId, key1, key2, key3, key4)
 
#define SearchSysCacheCopy1(cacheId, key1)   SearchSysCacheCopy(cacheId, key1, 0, 0, 0)
 
#define SearchSysCacheCopy2(cacheId, key1, key2)   SearchSysCacheCopy(cacheId, key1, key2, 0, 0)
 
#define SearchSysCacheCopy3(cacheId, key1, key2, key3)   SearchSysCacheCopy(cacheId, key1, key2, key3, 0)
 
#define SearchSysCacheCopy4(cacheId, key1, key2, key3, key4)   SearchSysCacheCopy(cacheId, key1, key2, key3, key4)
 
#define SearchSysCacheExists1(cacheId, key1)   SearchSysCacheExists(cacheId, key1, 0, 0, 0)
 
#define SearchSysCacheExists2(cacheId, key1, key2)   SearchSysCacheExists(cacheId, key1, key2, 0, 0)
 
#define SearchSysCacheExists3(cacheId, key1, key2, key3)   SearchSysCacheExists(cacheId, key1, key2, key3, 0)
 
#define SearchSysCacheExists4(cacheId, key1, key2, key3, key4)   SearchSysCacheExists(cacheId, key1, key2, key3, key4)
 
#define GetSysCacheOid1(cacheId, key1)   GetSysCacheOid(cacheId, key1, 0, 0, 0)
 
#define GetSysCacheOid2(cacheId, key1, key2)   GetSysCacheOid(cacheId, key1, key2, 0, 0)
 
#define GetSysCacheOid3(cacheId, key1, key2, key3)   GetSysCacheOid(cacheId, key1, key2, key3, 0)
 
#define GetSysCacheOid4(cacheId, key1, key2, key3, key4)   GetSysCacheOid(cacheId, key1, key2, key3, key4)
 
#define GetSysCacheHashValue1(cacheId, key1)   GetSysCacheHashValue(cacheId, key1, 0, 0, 0)
 
#define GetSysCacheHashValue2(cacheId, key1, key2)   GetSysCacheHashValue(cacheId, key1, key2, 0, 0)
 
#define GetSysCacheHashValue3(cacheId, key1, key2, key3)   GetSysCacheHashValue(cacheId, key1, key2, key3, 0)
 
#define GetSysCacheHashValue4(cacheId, key1, key2, key3, key4)   GetSysCacheHashValue(cacheId, key1, key2, key3, key4)
 
#define SearchSysCacheList1(cacheId, key1)   SearchSysCacheList(cacheId, 1, key1, 0, 0, 0)
 
#define SearchSysCacheList2(cacheId, key1, key2)   SearchSysCacheList(cacheId, 2, key1, key2, 0, 0)
 
#define SearchSysCacheList3(cacheId, key1, key2, key3)   SearchSysCacheList(cacheId, 3, key1, key2, key3, 0)
 
#define SearchSysCacheList4(cacheId, key1, key2, key3, key4)   SearchSysCacheList(cacheId, 4, key1, key2, key3, key4)
 
#define ReleaseSysCacheList(x)   ReleaseCatCacheList(x)
 

Enumerations

enum  SysCacheIdentifier {
  AGGFNOID = 0, AMNAME, AMOID, AMOPOPID,
  AMOPSTRATEGY, AMPROCNUM, ATTNAME, ATTNUM,
  AUTHMEMMEMROLE, AUTHMEMROLEMEM, AUTHNAME, AUTHOID,
  CASTSOURCETARGET, CLAAMNAMENSP, CLAOID, COLLNAMEENCNSP,
  COLLOID, CONDEFAULT, CONNAMENSP, CONSTROID,
  CONVOID, DATABASEOID, DEFACLROLENSPOBJ, ENUMOID,
  ENUMTYPOIDNAME, EVENTTRIGGERNAME, EVENTTRIGGEROID, FOREIGNDATAWRAPPERNAME,
  FOREIGNDATAWRAPPEROID, FOREIGNSERVERNAME, FOREIGNSERVEROID, FOREIGNTABLEREL,
  INDEXRELID, LANGNAME, LANGOID, NAMESPACENAME,
  NAMESPACEOID, OPERNAMENSP, OPEROID, OPFAMILYAMNAMENSP,
  OPFAMILYOID, PARTRELID, PROCNAMEARGSNSP, PROCOID,
  PUBLICATIONNAME, PUBLICATIONOID, PUBLICATIONREL, PUBLICATIONRELMAP,
  RANGETYPE, RELNAMENSP, RELOID, REPLORIGIDENT,
  REPLORIGNAME, RULERELNAME, SEQRELID, STATEXTNAMENSP,
  STATEXTOID, STATRELATTINH, SUBSCRIPTIONNAME, SUBSCRIPTIONOID,
  SUBSCRIPTIONRELMAP, TABLESPACEOID, TRFOID, TRFTYPELANG,
  TSCONFIGMAP, TSCONFIGNAMENSP, TSCONFIGOID, TSDICTNAMENSP,
  TSDICTOID, TSPARSERNAMENSP, TSPARSEROID, TSTEMPLATENAMENSP,
  TSTEMPLATEOID, TYPENAMENSP, TYPEOID, USERMAPPINGOID
}
 

Functions

void InitCatalogCache (void)
 
void InitCatalogCachePhase2 (void)
 
HeapTuple SearchSysCache (int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
 
void ReleaseSysCache (HeapTuple tuple)
 
HeapTuple SearchSysCacheCopy (int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
 
bool SearchSysCacheExists (int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
 
Oid GetSysCacheOid (int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
 
HeapTuple SearchSysCacheAttName (Oid relid, const char *attname)
 
HeapTuple SearchSysCacheCopyAttName (Oid relid, const char *attname)
 
bool SearchSysCacheExistsAttName (Oid relid, const char *attname)
 
Datum SysCacheGetAttr (int cacheId, HeapTuple tup, AttrNumber attributeNumber, bool *isNull)
 
uint32 GetSysCacheHashValue (int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
 
struct catclistSearchSysCacheList (int cacheId, int nkeys, Datum key1, Datum key2, Datum key3, Datum key4)
 
void SysCacheInvalidate (int cacheId, uint32 hashValue)
 
bool RelationInvalidatesSnapshotsOnly (Oid relid)
 
bool RelationHasSysCache (Oid relid)
 
bool RelationSupportsSysCache (Oid relid)
 

Macro Definition Documentation

#define GetSysCacheHashValue1 (   cacheId,
  key1 
)    GetSysCacheHashValue(cacheId, key1, 0, 0, 0)

Definition at line 192 of file syscache.h.

Referenced by record_plan_function_dependency(), and ri_LoadConstraintInfo().

#define GetSysCacheHashValue2 (   cacheId,
  key1,
  key2 
)    GetSysCacheHashValue(cacheId, key1, key2, 0, 0)

Definition at line 194 of file syscache.h.

#define GetSysCacheHashValue3 (   cacheId,
  key1,
  key2,
  key3 
)    GetSysCacheHashValue(cacheId, key1, key2, key3, 0)

Definition at line 196 of file syscache.h.

#define GetSysCacheHashValue4 (   cacheId,
  key1,
  key2,
  key3,
  key4 
)    GetSysCacheHashValue(cacheId, key1, key2, key3, key4)

Definition at line 198 of file syscache.h.

#define GetSysCacheOid3 (   cacheId,
  key1,
  key2,
  key3 
)    GetSysCacheOid(cacheId, key1, key2, key3, 0)

Definition at line 187 of file syscache.h.

Referenced by lookup_collation(), OpclassnameGetOpcid(), and OpfamilynameGetOpfid().

#define GetSysCacheOid4 (   cacheId,
  key1,
  key2,
  key3,
  key4 
)    GetSysCacheOid(cacheId, key1, key2, key3, key4)

Definition at line 189 of file syscache.h.

Referenced by dropOperators(), and dropProcedures().

#define SearchSysCache1 (   cacheId,
  key1 
)    SearchSysCache(cacheId, key1, 0, 0, 0)

Definition at line 156 of file syscache.h.

Referenced by aclitemout(), AggregateCreate(), AlterDomainValidateConstraint(), AlterEnum(), AlterObjectRename_internal(), AlterOpFamily(), AlterSchemaOwner(), AlterSchemaOwner_oid(), AlterTSDictionary(), AlterTypeOwner_oid(), amvalidate(), appendAggOrderBy(), appendFunctionName(), assignOperTypes(), assignProcTypes(), ATAddForeignKeyConstraint(), ATExecAlterColumnGenericOptions(), ATExecChangeOwner(), ATExecDropNotNull(), ATExecSetRelOptions(), ATPostAlterTypeCleanup(), blvalidate(), brinvalidate(), btvalidate(), build_coercion_expression(), BuildIndexValueDescription(), BuildTupleRemapInfo(), CacheInvalidateRelcacheByRelid(), call_pltcl_start_proc(), check_amop_signature(), check_amproc_signature(), check_enable_rls(), check_hash_func_signature(), check_role(), check_safe_enum_use(), check_session_authorization(), check_TSCurrentConfig(), CheckFunctionValidatorAccess(), CheckIndexCompatible(), CheckMyDatabase(), cluster(), cluster_rel(), CollationIsVisible(), compile_plperl_function(), compile_pltcl_function(), ComputeIndexAttrs(), ConstructTupleDescriptor(), ConversionIsVisible(), create_proc_lang(), CreateCast(), CreateEventTrigger(), CreateFunction(), CreateSchemaCommand(), CreateTransform(), DefineCollation(), DefineIndex(), DefineOpClass(), DefineTSConfiguration(), DeleteRelationTuple(), DeleteSequenceTuple(), deparseOpExpr(), deparseScalarArrayOpExpr(), do_autovacuum(), do_compile(), do_setval(), dropdb(), DropProceduralLanguageById(), DropRole(), enum_cmp_internal(), enum_out(), enum_send(), errdatatype(), eval_const_expressions_mutator(), ExecGrant_Database(), ExecGrant_Fdw(), ExecGrant_ForeignServer(), ExecGrant_Function(), ExecGrant_Language(), ExecGrant_Namespace(), ExecGrant_Relation(), ExecGrant_Tablespace(), ExecGrant_Type(), ExecInitAgg(), ExecuteDoStmt(), fetch_agg_sort_op(), fetch_fp_info(), fixup_whole_row_references(), flatten_reloptions(), fmgr_c_validator(), fmgr_info_cxt_security(), fmgr_info_other_lang(), fmgr_internal_validator(), fmgr_security_definer(), fmgr_sql_validator(), format_operator_internal(), format_operator_parts(), format_procedure_internal(), format_procedure_parts(), format_type_internal(), func_get_detail(), func_parallel(), func_strict(), func_volatile(), FunctionIsVisible(), generate_collation_name(), generate_function_name(), generate_operator_name(), generate_partition_qual(), generate_qualified_relation_name(), generate_relation_name(), generateClonedIndexStmt(), get_agg_clause_costs_walker(), get_am_name(), get_am_type_oid(), get_array_type(), get_attstatsslot(), get_base_element_type(), get_collation(), get_collation_name(), get_commutator(), get_constraint_name(), get_database_name(), get_db_info(), get_element_type(), get_func_cost(), get_func_leakproof(), get_func_name(), get_func_namespace(), get_func_nargs(), get_func_result_name(), get_func_retset(), get_func_rettype(), get_func_rows(), get_func_signature(), get_func_variadictype(), get_language_name(), get_namespace_name(), get_negator(), get_object_address_defacl(), get_object_address_usermapping(), get_object_namespace(), get_op_rettype(), get_opclass(), get_opclass_family(), get_opclass_input_type(), get_opclass_name(), get_opcode(), get_oper_expr(), get_opname(), get_oprjoin(), get_oprrest(), get_publication_name(), get_range_subtype(), get_rel_name(), get_rel_namespace(), get_rel_oids(), get_rel_persistence(), get_rel_relkind(), get_rel_tablespace(), get_rel_type_id(), get_relation_statistics(), get_role_password(), get_rolespec_tuple(), get_subscription_name(), get_tablespace(), get_typ_typrelid(), get_typbyval(), get_typcollation(), get_typdefault(), get_type_category_preferred(), get_type_io_data(), get_typisdefined(), get_typlen(), get_typlenbyval(), get_typlenbyvalalign(), get_typmodin(), get_typstorage(), get_typtype(), getBaseTypeAndTypmod(), GetFdwRoutineByServerId(), GetForeignDataWrapper(), GetForeignServer(), GetForeignServerIdByRelId(), GetForeignTable(), GetIndexAmRoutineByAmId(), getObjectDescription(), getObjectIdentityParts(), getOpFamilyDescription(), getOpFamilyIdentity(), getProcedureTypeDescription(), GetPublication(), getRelationDescription(), getRelationIdentity(), GetRelationPublicationActions(), getRelationTypeDescription(), GetSubscription(), GetTSConfigTuple(), getTypeBinaryInputInfo(), getTypeBinaryOutputInfo(), getTypeInputInfo(), getTypeOutputInfo(), GetUserNameFromId(), ginvalidate(), gistproperty(), gistvalidate(), has_bypassrls_privilege(), has_createrole_privilege(), has_rolinherit(), has_rolreplication(), has_subclass(), hash_ok_operator(), hashvalidate(), have_createdb_privilege(), heap_drop_with_catalog(), index_drop(), indexam_property(), IndexGetRelation(), IndexSupportsBackwardScan(), init_sql_fcache(), initialize_peragg(), InitializeSessionUserId(), inline_set_returning_function(), internal_get_result_type(), left_oper(), load_domaintype_info(), load_rangetype_info(), logicalrep_write_tuple(), logicalrep_write_typ(), lookup_collation_cache(), lookup_ts_config_cache(), lookup_ts_dictionary_cache(), lookup_ts_parser_cache(), lookup_type_cache(), LookupAggWithArgs(), LookupTypeName(), make_new_heap(), map_sql_table_to_xmlschema(), map_sql_type_to_xml_name(), mark_index_clustered(), mv_GenerateOper(), nextval_internal(), op_hashjoinable(), op_input_types(), op_mergejoinable(), OpClassCacheLookup(), OpclassIsVisible(), oper(), OperatorIsVisible(), OpFamilyCacheLookup(), OpfamilyIsVisible(), ParseFuncOrColumn(), pg_attribute_aclcheck_all(), pg_attribute_aclmask(), pg_class_aclmask(), pg_class_ownercheck(), pg_collation_actual_version(), pg_collation_ownercheck(), pg_conversion_ownercheck(), pg_database_aclmask(), pg_database_ownercheck(), pg_event_trigger_ownercheck(), pg_foreign_data_wrapper_aclmask(), pg_foreign_data_wrapper_ownercheck(), pg_foreign_server_aclmask(), pg_foreign_server_ownercheck(), pg_get_function_arg_default(), pg_get_function_arguments(), pg_get_function_identity_arguments(), pg_get_function_result(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), pg_get_statisticsobj_worker(), pg_get_userbyid(), pg_language_aclmask(), pg_language_ownercheck(), pg_namespace_aclmask(), pg_namespace_ownercheck(), pg_newlocale_from_collation(), pg_opclass_ownercheck(), pg_oper_ownercheck(), pg_opfamily_ownercheck(), pg_proc_aclmask(), pg_proc_ownercheck(), pg_publication_ownercheck(), pg_relation_filenode(), pg_relation_filepath(), pg_relation_is_publishable(), pg_sequence_parameters(), pg_statistics_object_ownercheck(), pg_subscription_ownercheck(), pg_tablespace_aclmask(), pg_tablespace_ownercheck(), pg_ts_config_ownercheck(), pg_ts_dict_ownercheck(), pg_type_aclmask(), pg_type_ownercheck(), pgfdw_reject_incomplete_xact_state_change(), plperl_validator(), plpgsql_build_datatype(), plpgsql_compile(), plpgsql_parse_cwordtype(), plpgsql_validator(), plpython_validator(), PLy_input_tuple_funcs(), PLy_output_tuple_funcs(), PLy_procedure_argument_valid(), PLy_procedure_create(), PLy_procedure_get(), PLy_spi_prepare(), PLyString_ToComposite(), prepare_column_cache(), print_function_arguments(), RangeVarCallbackForAlterRelation(), RangeVarCallbackForDropRelation(), RangeVarCallbackForPolicy(), RangeVarCallbackForRenameAttribute(), RangeVarCallbackForRenameRule(), RangeVarCallbackForRenameTrigger(), RangeVarCallbackOwnsRelation(), recomputeNamespacePath(), recordExtObjInitPriv(), regclassout(), regconfigout(), regdictionaryout(), regoperout(), regprocout(), regtypeout(), relation_mark_replica_identity(), RelationBuildPartitionDesc(), RelationBuildPartitionKey(), RelationCacheInitializePhase3(), relationHasPrimaryKey(), RelationHasUnloggedIndex(), RelationInitIndexAccessInfo(), RelationIsVisible(), RelationReloadIndexInfo(), RemoveAccessMethodById(), RemoveConstraintById(), RemoveEventTriggerById(), removeExtObjInitPriv(), RemoveForeignDataWrapperById(), RemoveForeignServerById(), RemoveFunctionById(), RemoveObjects(), RemoveOpClassById(), RemoveOperatorById(), RemoveOpFamilyById(), RemovePartitionKeyByRelId(), RemovePublicationById(), RemovePublicationRelById(), RemoveSchemaById(), RemoveStatisticsById(), RemoveTSConfigurationById(), RemoveTSDictionaryById(), RemoveTSParserById(), RemoveTSTemplateById(), RemoveTypeById(), RemoveUserMappingById(), rename_constraint_internal(), RenameConstraint(), RenameRole(), replorigin_by_name(), replorigin_by_oid(), replorigin_drop(), ResetSequence(), ResolveOpClass(), ri_add_cast_to(), ri_GenerateQual(), ri_GenerateQualCollation(), ri_LoadConstraintInfo(), right_oper(), sepgsql_proc_setattr(), sepgsql_relation_setattr(), sequence_options(), simplify_function(), spgvalidate(), SPI_gettype(), statext_dependencies_load(), statext_ndistinct_load(), statext_store(), StatisticsObjIsVisible(), StorePartitionKey(), superuser_arg(), test_indoption(), transformArrayType(), transformFkeyCheckAttrs(), transformFkeyGetPrimaryKey(), triggered_change_notification(), TryReuseForeignKey(), TSConfigIsVisible(), TSDictionaryIsVisible(), TSParserIsVisible(), TSTemplateIsVisible(), TupleDescInitEntry(), typeidType(), typeidTypeRelid(), typeIsOfTypedTable(), TypeIsVisible(), and verify_dictoptions().

#define SearchSysCache4 (   cacheId,
  key1,
  key2,
  key3,
  key4 
)    SearchSysCache(cacheId, key1, key2, key3, key4)
#define SearchSysCacheCopy1 (   cacheId,
  key1 
)    SearchSysCacheCopy(cacheId, key1, 0, 0, 0)

Definition at line 165 of file syscache.h.

Referenced by AlterCollation(), AlterDomainAddConstraint(), AlterDomainDefault(), AlterDomainDropConstraint(), AlterDomainNotNull(), AlterEventTrigger(), AlterEventTriggerOwner(), AlterEventTriggerOwner_oid(), AlterForeignDataWrapper(), AlterForeignDataWrapperOwner(), AlterForeignDataWrapperOwner_oid(), AlterForeignServer(), AlterForeignServerOwner(), AlterForeignServerOwner_oid(), AlterFunction(), AlterObjectNamespace_internal(), AlterOperator(), AlterPublication(), AlterPublicationOwner(), AlterPublicationOwner_oid(), AlterRelationNamespaceInternal(), AlterSequence(), AlterSubscriptionOwner_oid(), AlterTypeNamespaceInternal(), AlterTypeOwnerInternal(), AlterUserMapping(), ATExecAddColumn(), ATExecAddOf(), ATExecDetachPartition(), ATExecDisableRowSecurity(), ATExecDropColumn(), ATExecDropOf(), ATExecEnableRowSecurity(), ATExecForceNoForceRowSecurity(), ATExecGenericOptions(), ATExecSetTableSpace(), create_toast_table(), CreateTrigger(), DefineQueryRewrite(), do_autovacuum(), examine_attribute(), finish_heap_swap(), get_catalog_object_by_oid(), index_build(), index_constraint_create(), index_set_state_flags(), index_update_stats(), mark_index_clustered(), OperatorCreate(), OperatorUpd(), reindex_index(), relation_mark_replica_identity(), RelationSetNewRelfilenode(), RemoveConstraintById(), RenameConstraintById(), RenameDatabase(), RenameRelationInternal(), RenameSchema(), RenameType(), RenameTypeInternal(), SetFunctionArgType(), SetFunctionReturnType(), SetMatViewPopulatedState(), SetRelationHasSubclass(), SetRelationNumChecks(), SetRelationRuleStatus(), StorePartitionBound(), swap_relation_files(), table_recheck_autovac(), vac_update_datfrozenxid(), and vac_update_relstats().

#define SearchSysCacheCopy2 (   cacheId,
  key1,
  key2 
)    SearchSysCacheCopy(cacheId, key1, key2, 0, 0)
#define SearchSysCacheCopy3 (   cacheId,
  key1,
  key2,
  key3 
)    SearchSysCacheCopy(cacheId, key1, key2, key3, 0)

Definition at line 169 of file syscache.h.

#define SearchSysCacheCopy4 (   cacheId,
  key1,
  key2,
  key3,
  key4 
)    SearchSysCacheCopy(cacheId, key1, key2, key3, key4)

Definition at line 171 of file syscache.h.

#define SearchSysCacheExists3 (   cacheId,
  key1,
  key2,
  key3 
)    SearchSysCacheExists(cacheId, key1, key2, key3, 0)
#define SearchSysCacheExists4 (   cacheId,
  key1,
  key2,
  key3,
  key4 
)    SearchSysCacheExists(cacheId, key1, key2, key3, key4)

Definition at line 180 of file syscache.h.

Referenced by gistproperty(), storeOperators(), and storeProcedures().

#define SearchSysCacheList2 (   cacheId,
  key1,
  key2 
)    SearchSysCacheList(cacheId, 2, key1, key2, 0, 0)

Definition at line 203 of file syscache.h.

#define SearchSysCacheList3 (   cacheId,
  key1,
  key2,
  key3 
)    SearchSysCacheList(cacheId, 3, key1, key2, key3, 0)

Definition at line 205 of file syscache.h.

Referenced by FindDefaultConversion(), and OpernameGetOprid().

#define SearchSysCacheList4 (   cacheId,
  key1,
  key2,
  key3,
  key4 
)    SearchSysCacheList(cacheId, 4, key1, key2, key3, key4)

Definition at line 207 of file syscache.h.

Enumeration Type Documentation

Enumerator
AGGFNOID 
AMNAME 
AMOID 
AMOPOPID 
AMOPSTRATEGY 
AMPROCNUM 
ATTNAME 
ATTNUM 
AUTHMEMMEMROLE 
AUTHMEMROLEMEM 
AUTHNAME 
AUTHOID 
CASTSOURCETARGET 
CLAAMNAMENSP 
CLAOID 
COLLNAMEENCNSP 
COLLOID 
CONDEFAULT 
CONNAMENSP 
CONSTROID 
CONVOID 
DATABASEOID 
DEFACLROLENSPOBJ 
ENUMOID 
ENUMTYPOIDNAME 
EVENTTRIGGERNAME 
EVENTTRIGGEROID 
FOREIGNDATAWRAPPERNAME 
FOREIGNDATAWRAPPEROID 
FOREIGNSERVERNAME 
FOREIGNSERVEROID 
FOREIGNTABLEREL 
INDEXRELID 
LANGNAME 
LANGOID 
NAMESPACENAME 
NAMESPACEOID 
OPERNAMENSP 
OPEROID 
OPFAMILYAMNAMENSP 
OPFAMILYOID 
PARTRELID 
PROCNAMEARGSNSP 
PROCOID 
PUBLICATIONNAME 
PUBLICATIONOID 
PUBLICATIONREL 
PUBLICATIONRELMAP 
RANGETYPE 
RELNAMENSP 
RELOID 
REPLORIGIDENT 
REPLORIGNAME 
RULERELNAME 
SEQRELID 
STATEXTNAMENSP 
STATEXTOID 
STATRELATTINH 
SUBSCRIPTIONNAME 
SUBSCRIPTIONOID 
SUBSCRIPTIONRELMAP 
TABLESPACEOID 
TRFOID 
TRFTYPELANG 
TSCONFIGMAP 
TSCONFIGNAMENSP 
TSCONFIGOID 
TSDICTNAMENSP 
TSDICTOID 
TSPARSERNAMENSP 
TSPARSEROID 
TSTEMPLATENAMENSP 
TSTEMPLATEOID 
TYPENAMENSP 
TYPEOID 
USERMAPPINGOID 

Definition at line 32 of file syscache.h.

33 {
34  AGGFNOID = 0,
35  AMNAME,
36  AMOID,
37  AMOPOPID,
39  AMPROCNUM,
40  ATTNAME,
41  ATTNUM,
44  AUTHNAME,
45  AUTHOID,
48  CLAOID,
50  COLLOID,
51  CONDEFAULT,
52  CONNAMENSP,
53  CONSTROID,
54  CONVOID,
57  ENUMOID,
66  INDEXRELID,
67  LANGNAME,
68  LANGOID,
72  OPEROID,
75  PARTRELID,
77  PROCOID,
82  RANGETYPE,
83  RELNAMENSP,
84  RELOID,
88  SEQRELID,
90  STATEXTOID,
96  TRFOID,
100  TSCONFIGOID,
102  TSDICTOID,
104  TSPARSEROID,
107  TYPENAMENSP,
108  TYPEOID,
110  USERMAPPINGUSERSERVER
111 
112 #define SysCacheSize (USERMAPPINGUSERSERVER + 1)
113 };
Definition: syscache.h:36

Function Documentation

uint32 GetSysCacheHashValue ( int  cacheId,
Datum  key1,
Datum  key2,
Datum  key3,
Datum  key4 
)

Definition at line 1314 of file syscache.c.

References elog, ERROR, GetCatCacheHashValue(), PointerIsValid, and SysCacheSize.

1319 {
1320  if (cacheId < 0 || cacheId >= SysCacheSize ||
1321  !PointerIsValid(SysCache[cacheId]))
1322  elog(ERROR, "invalid cache ID: %d", cacheId);
1323 
1324  return GetCatCacheHashValue(SysCache[cacheId], key1, key2, key3, key4);
1325 }
#define SysCacheSize
Definition: syscache.h:112
#define ERROR
Definition: elog.h:43
static CatCache * SysCache[SysCacheSize]
Definition: syscache.c:974
#define elog
Definition: elog.h:219
uint32 GetCatCacheHashValue(CatCache *cache, Datum v1, Datum v2, Datum v3, Datum v4)
Definition: catcache.c:1335
#define PointerIsValid(pointer)
Definition: c.h:526
Oid GetSysCacheOid ( int  cacheId,
Datum  key1,
Datum  key2,
Datum  key3,
Datum  key4 
)

Definition at line 1178 of file syscache.c.

References HeapTupleGetOid, HeapTupleIsValid, InvalidOid, ReleaseSysCache(), result, and SearchSysCache().

1183 {
1184  HeapTuple tuple;
1185  Oid result;
1186 
1187  tuple = SearchSysCache(cacheId, key1, key2, key3, key4);
1188  if (!HeapTupleIsValid(tuple))
1189  return InvalidOid;
1190  result = HeapTupleGetOid(tuple);
1191  ReleaseSysCache(tuple);
1192  return result;
1193 }
HeapTuple SearchSysCache(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
Definition: syscache.c:1099
return result
Definition: formatting.c:1633
unsigned int Oid
Definition: postgres_ext.h:31
void ReleaseSysCache(HeapTuple tuple)
Definition: syscache.c:1117
#define InvalidOid
Definition: postgres_ext.h:36
#define HeapTupleIsValid(tuple)
Definition: htup.h:77
#define HeapTupleGetOid(tuple)
Definition: htup_details.h:695
void InitCatalogCache ( void  )

Definition at line 998 of file syscache.c.

References Assert, CacheInitialized, elog, ERROR, i, cachedesc::indoid, InitCatCache(), cachedesc::key, lengthof, cachedesc::nbuckets, cachedesc::nkeys, oid_compare(), pg_qsort(), PointerIsValid, RelationInvalidatesSnapshotsOnly(), cachedesc::reloid, StaticAssertStmt, SysCacheRelationOid, SysCacheRelationOidSize, SysCacheSize, SysCacheSupportingRelOid, and SysCacheSupportingRelOidSize.

Referenced by InitPostgres().

999 {
1000  int cacheId;
1001  int i,
1002  j;
1003 
1005  "SysCacheSize does not match syscache.c's array");
1006 
1008 
1010 
1011  for (cacheId = 0; cacheId < SysCacheSize; cacheId++)
1012  {
1013  SysCache[cacheId] = InitCatCache(cacheId,
1014  cacheinfo[cacheId].reloid,
1015  cacheinfo[cacheId].indoid,
1016  cacheinfo[cacheId].nkeys,
1017  cacheinfo[cacheId].key,
1018  cacheinfo[cacheId].nbuckets);
1019  if (!PointerIsValid(SysCache[cacheId]))
1020  elog(ERROR, "could not initialize cache %u (%d)",
1021  cacheinfo[cacheId].reloid, cacheId);
1022  /* Accumulate data for OID lists, too */
1024  cacheinfo[cacheId].reloid;
1026  cacheinfo[cacheId].reloid;
1028  cacheinfo[cacheId].indoid;
1029  /* see comments for RelationInvalidatesSnapshotsOnly */
1031  }
1032 
1035 
1036  /* Sort and de-dup OID arrays, so we can use binary search. */
1038  sizeof(Oid), oid_compare);
1039  for (i = 1, j = 0; i < SysCacheRelationOidSize; i++)
1040  {
1043  }
1044  SysCacheRelationOidSize = j + 1;
1045 
1047  sizeof(Oid), oid_compare);
1048  for (i = 1, j = 0; i < SysCacheSupportingRelOidSize; i++)
1049  {
1052  }
1053  SysCacheSupportingRelOidSize = j + 1;
1054 
1055  CacheInitialized = true;
1056 }
static bool CacheInitialized
Definition: syscache.c:976
static int SysCacheSupportingRelOidSize
Definition: syscache.c:984
static Oid SysCacheSupportingRelOid[SysCacheSize *2]
Definition: syscache.c:983
static int SysCacheRelationOidSize
Definition: syscache.c:980
#define lengthof(array)
Definition: c.h:562
unsigned int Oid
Definition: postgres_ext.h:31
static const struct cachedesc cacheinfo[]
Definition: syscache.c:123
Oid reloid
Definition: syscache.c:116
#define StaticAssertStmt(condition, errmessage)
Definition: c.h:757
#define SysCacheSize
Definition: syscache.h:112
#define ERROR
Definition: elog.h:43
CatCache * InitCatCache(int id, Oid reloid, Oid indexoid, int nkeys, const int *key, int nbuckets)
Definition: catcache.c:705
Oid indoid
Definition: syscache.c:117
static CatCache * SysCache[SysCacheSize]
Definition: syscache.c:974
static Oid SysCacheRelationOid[SysCacheSize]
Definition: syscache.c:979
#define Assert(condition)
Definition: c.h:675
bool RelationInvalidatesSnapshotsOnly(Oid relid)
Definition: syscache.c:1375
void pg_qsort(void *base, size_t nel, size_t elsize, int(*cmp)(const void *, const void *))
Definition: qsort.c:113
static int oid_compare(const void *a, const void *b)
Definition: syscache.c:1448
int i
#define elog
Definition: elog.h:219
#define PointerIsValid(pointer)
Definition: c.h:526
void InitCatalogCachePhase2 ( void  )

Definition at line 1071 of file syscache.c.

References Assert, CacheInitialized, InitCatCachePhase2(), and SysCacheSize.

Referenced by RelationCacheInitializePhase3().

1072 {
1073  int cacheId;
1074 
1076 
1077  for (cacheId = 0; cacheId < SysCacheSize; cacheId++)
1078  InitCatCachePhase2(SysCache[cacheId], true);
1079 }
static bool CacheInitialized
Definition: syscache.c:976
#define SysCacheSize
Definition: syscache.h:112
static CatCache * SysCache[SysCacheSize]
Definition: syscache.c:974
#define Assert(condition)
Definition: c.h:675
void InitCatCachePhase2(CatCache *cache, bool touch_index)
Definition: catcache.c:974
bool RelationHasSysCache ( Oid  relid)

Definition at line 1398 of file syscache.c.

References SysCacheRelationOid, and SysCacheRelationOidSize.

Referenced by GetNonHistoricCatalogSnapshot().

1399 {
1400  int low = 0,
1401  high = SysCacheRelationOidSize - 1;
1402 
1403  while (low <= high)
1404  {
1405  int middle = low + (high - low) / 2;
1406 
1407  if (SysCacheRelationOid[middle] == relid)
1408  return true;
1409  if (SysCacheRelationOid[middle] < relid)
1410  low = middle + 1;
1411  else
1412  high = middle - 1;
1413  }
1414 
1415  return false;
1416 }
static int SysCacheRelationOidSize
Definition: syscache.c:980
static Oid SysCacheRelationOid[SysCacheSize]
Definition: syscache.c:979
bool RelationInvalidatesSnapshotsOnly ( Oid  relid)

Definition at line 1375 of file syscache.c.

References DbRoleSettingRelationId, DependRelationId, DescriptionRelationId, SecLabelRelationId, SharedDependRelationId, SharedDescriptionRelationId, and SharedSecLabelRelationId.

Referenced by CacheInvalidateHeapTuple(), GetNonHistoricCatalogSnapshot(), and InitCatalogCache().

1376 {
1377  switch (relid)
1378  {
1380  case DependRelationId:
1382  case DescriptionRelationId:
1384  case SecLabelRelationId:
1386  return true;
1387  default:
1388  break;
1389  }
1390 
1391  return false;
1392 }
#define SharedDependRelationId
Definition: pg_shdepend.h:29
#define DependRelationId
Definition: pg_depend.h:29
#define SharedDescriptionRelationId
#define SharedSecLabelRelationId
Definition: pg_shseclabel.h:21
#define SecLabelRelationId
Definition: pg_seclabel.h:21
#define DescriptionRelationId
#define DbRoleSettingRelationId
bool RelationSupportsSysCache ( Oid  relid)

Definition at line 1423 of file syscache.c.

References SysCacheSupportingRelOid, and SysCacheSupportingRelOidSize.

Referenced by RelationIdIsInInitFile().

1424 {
1425  int low = 0,
1426  high = SysCacheSupportingRelOidSize - 1;
1427 
1428  while (low <= high)
1429  {
1430  int middle = low + (high - low) / 2;
1431 
1432  if (SysCacheSupportingRelOid[middle] == relid)
1433  return true;
1434  if (SysCacheSupportingRelOid[middle] < relid)
1435  low = middle + 1;
1436  else
1437  high = middle - 1;
1438  }
1439 
1440  return false;
1441 }
static int SysCacheSupportingRelOidSize
Definition: syscache.c:984
static Oid SysCacheSupportingRelOid[SysCacheSize *2]
Definition: syscache.c:983
void ReleaseSysCache ( HeapTuple  tuple)

Definition at line 1117 of file syscache.c.

References ReleaseCatCache().

Referenced by aclitemout(), AddEnumLabel(), AddRoleMems(), AggregateCreate(), AlterDomainValidateConstraint(), AlterEnum(), AlterObjectRename_internal(), AlterOpFamily(), AlterRole(), AlterRoleSet(), AlterSchemaOwner(), AlterSchemaOwner_oid(), AlterTSConfiguration(), AlterTSDictionary(), AlterTypeOwner(), AlterTypeOwner_oid(), amvalidate(), appendAggOrderBy(), appendFunctionName(), assignOperTypes(), assignProcTypes(), ATAddForeignKeyConstraint(), ATExecAddColumn(), ATExecAddOf(), ATExecAlterColumnGenericOptions(), ATExecAlterColumnType(), ATExecChangeOwner(), ATExecDropColumn(), ATExecDropNotNull(), ATExecSetOptions(), ATExecSetRelOptions(), ATPostAlterTypeCleanup(), ATPrepAlterColumnType(), blvalidate(), brincostestimate(), brinvalidate(), btcostestimate(), btvalidate(), build_coercion_expression(), BuildIndexValueDescription(), BuildTupleRemapInfo(), CacheInvalidateRelcacheByRelid(), call_pltcl_start_proc(), check_amop_signature(), check_amproc_signature(), check_enable_rls(), check_for_column_name_collision(), check_hash_func_signature(), check_role(), check_safe_enum_use(), check_session_authorization(), check_TSCurrentConfig(), CheckFunctionValidatorAccess(), CheckIndexCompatible(), CheckMyDatabase(), cluster(), cluster_rel(), coerce_type(), CollationIsVisible(), column_privilege_check(), compatible_oper(), compatible_oper_opid(), compile_plperl_function(), compile_pltcl_function(), compute_return_type(), ComputeIndexAttrs(), ComputePartitionAttrs(), ConstructTupleDescriptor(), ConversionIsVisible(), create_proc_lang(), CreateCast(), CreateFunction(), CreateRole(), CreateSchemaCommand(), CreateStatistics(), CreateTransform(), DefineCollation(), DefineDomain(), DefineIndex(), DefineOpClass(), DefineTSConfiguration(), DefineType(), DeleteRelationTuple(), DeleteSequenceTuple(), DelRoleMems(), deparseOpExpr(), deparseScalarArrayOpExpr(), do_autovacuum(), do_compile(), do_setval(), dropdb(), DropProceduralLanguageById(), DropRole(), DropSubscription(), enum_cmp_internal(), enum_in(), enum_out(), enum_recv(), enum_send(), errdatatype(), eval_const_expressions_mutator(), examine_simple_variable(), examine_variable(), ExecGrant_Attribute(), ExecGrant_Database(), ExecGrant_Fdw(), ExecGrant_ForeignServer(), ExecGrant_Function(), ExecGrant_Language(), ExecGrant_Namespace(), ExecGrant_Relation(), ExecGrant_Tablespace(), ExecGrant_Type(), ExecHashBuildSkewHash(), ExecInitAgg(), ExecuteDoStmt(), expand_all_col_privileges(), fetch_agg_sort_op(), fetch_fp_info(), find_coercion_pathway(), find_typmod_coercion_function(), fixup_whole_row_references(), flatten_reloptions(), fmgr_c_validator(), fmgr_info_cxt_security(), fmgr_info_other_lang(), fmgr_internal_validator(), fmgr_security_definer(), fmgr_sql_validator(), format_operator_internal(), format_operator_parts(), format_procedure_internal(), format_procedure_parts(), format_type_internal(), func_get_detail(), func_parallel(), func_strict(), func_volatile(), FuncNameAsType(), FunctionIsVisible(), generate_collation_name(), generate_function_name(), generate_operator_name(), generate_partition_qual(), generate_qualified_relation_name(), generate_relation_name(), generateClonedIndexStmt(), get_agg_clause_costs_walker(), get_am_name(), get_am_type_oid(), get_array_type(), get_attavgwidth(), get_attidentity(), get_attname(), get_attnum(), get_attribute_options(), get_attstatsslot(), get_atttype(), get_atttypetypmodcoll(), get_atttypmod(), get_base_element_type(), get_collation(), get_collation_name(), get_commutator(), get_constraint_name(), get_database_name(), get_db_info(), get_default_acl_internal(), get_element_type(), get_func_cost(), get_func_leakproof(), get_func_name(), get_func_namespace(), get_func_nargs(), get_func_result_name(), get_func_retset(), get_func_rettype(), get_func_rows(), get_func_signature(), get_func_variadictype(), get_language_name(), get_namespace_name(), get_negator(), get_object_address_defacl(), get_object_address_opf_member(), get_object_address_type(), get_object_address_usermapping(), get_object_namespace(), get_op_opfamily_properties(), get_op_opfamily_sortfamily(), get_op_opfamily_strategy(), get_op_rettype(), get_opclass(), get_opclass_family(), get_opclass_input_type(), get_opclass_name(), get_opclass_oid(), get_opcode(), get_oper_expr(), get_opfamily_member(), get_opfamily_oid(), get_opfamily_proc(), get_opname(), get_oprjoin(), get_oprrest(), get_publication_name(), get_range_subtype(), get_rel_name(), get_rel_namespace(), get_rel_oids(), get_rel_persistence(), get_rel_relkind(), get_rel_tablespace(), get_rel_type_id(), get_relation_statistics(), get_rewrite_oid(), get_role_password(), get_rolespec_name(), get_rte_attribute_is_dropped(), get_rte_attribute_type(), get_subscription_name(), get_tablespace(), get_transform_fromsql(), get_transform_tosql(), get_typ_typrelid(), get_typbyval(), get_typcollation(), get_typdefault(), get_type_category_preferred(), get_type_io_data(), get_typisdefined(), get_typlen(), get_typlenbyval(), get_typlenbyvalalign(), get_typmodin(), get_typstorage(), get_typtype(), getBaseTypeAndTypmod(), GetFdwRoutineByServerId(), GetForeignColumnOptions(), GetForeignDataWrapper(), GetForeignServer(), GetForeignServerIdByRelId(), GetForeignTable(), GetIndexAmRoutineByAmId(), getObjectDescription(), getObjectIdentityParts(), getOpFamilyDescription(), getOpFamilyIdentity(), getProcedureTypeDescription(), GetPublication(), getRelationDescription(), getRelationIdentity(), GetRelationPublicationActions(), getRelationTypeDescription(), GetSubscription(), GetSubscriptionRelState(), GetSysCacheOid(), getTypeBinaryInputInfo(), getTypeBinaryOutputInfo(), getTypeInputInfo(), getTypeOutputInfo(), GetUserMapping(), GetUserNameFromId(), ginvalidate(), gistproperty(), gistvalidate(), has_bypassrls_privilege(), has_createrole_privilege(), has_rolinherit(), has_rolreplication(), has_subclass(), hash_ok_operator(), hashvalidate(), have_createdb_privilege(), heap_drop_with_catalog(), inclusion_get_strategy_procinfo(), index_check_primary_key(), index_drop(), indexam_property(), IndexGetRelation(), IndexSupportsBackwardScan(), init_sql_fcache(), initialize_peragg(), InitializeSessionUserId(), inline_set_returning_function(), InsertRule(), internal_get_result_type(), interpret_function_parameter_list(), IsBinaryCoercible(), load_domaintype_info(), load_rangetype_info(), logicalrep_write_tuple(), logicalrep_write_typ(), lookup_collation(), lookup_collation_cache(), lookup_ts_config_cache(), lookup_ts_dictionary_cache(), lookup_ts_parser_cache(), lookup_type_cache(), LookupAggWithArgs(), LookupTypeNameOid(), make_new_heap(), make_op(), make_scalar_array_op(), map_sql_table_to_xmlschema(), map_sql_type_to_xml_name(), mark_index_clustered(), minmax_get_strategy_procinfo(), mv_GenerateOper(), nextval_internal(), op_hashjoinable(), op_input_types(), op_mergejoinable(), OpclassIsVisible(), OperatorGet(), OperatorIsVisible(), OpernameGetOprid(), OpfamilyIsVisible(), ParseFuncOrColumn(), parseTypeString(), pg_attribute_aclcheck_all(), pg_attribute_aclmask(), pg_class_aclmask(), pg_class_ownercheck(), pg_collation_actual_version(), pg_collation_ownercheck(), pg_conversion_ownercheck(), pg_database_aclmask(), pg_database_ownercheck(), pg_event_trigger_ownercheck(), pg_foreign_data_wrapper_aclmask(), pg_foreign_data_wrapper_ownercheck(), pg_foreign_server_aclmask(), pg_foreign_server_ownercheck(), pg_get_function_arg_default(), pg_get_function_arguments(), pg_get_function_identity_arguments(), pg_get_function_result(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), pg_get_statisticsobj_worker(), pg_get_userbyid(), pg_language_aclmask(), pg_language_ownercheck(), pg_namespace_aclmask(), pg_namespace_ownercheck(), pg_newlocale_from_collation(), pg_opclass_ownercheck(), pg_oper_ownercheck(), pg_opfamily_ownercheck(), pg_proc_aclmask(), pg_proc_ownercheck(), pg_publication_ownercheck(), pg_relation_filenode(), pg_relation_filepath(), pg_relation_is_publishable(), pg_sequence_parameters(), pg_statistics_object_ownercheck(), pg_subscription_ownercheck(), pg_tablespace_aclmask(), pg_tablespace_ownercheck(), pg_ts_config_ownercheck(), pg_ts_dict_ownercheck(), pg_type_aclmask(), pg_type_ownercheck(), pgfdw_reject_incomplete_xact_state_change(), plperl_validator(), plpgsql_build_datatype(), plpgsql_compile(), plpgsql_parse_cwordtype(), plpgsql_parse_wordtype(), plpgsql_validator(), plpython_validator(), PLy_input_tuple_funcs(), PLy_output_tuple_funcs(), PLy_procedure_argument_valid(), PLy_procedure_create(), PLy_procedure_get(), PLy_spi_prepare(), PLyString_ToComposite(), prepare_column_cache(), print_function_arguments(), ProcedureCreate(), RangeVarCallbackForAlterRelation(), RangeVarCallbackForDropRelation(), RangeVarCallbackForPolicy(), RangeVarCallbackForRenameAttribute(), RangeVarCallbackForRenameRule(), RangeVarCallbackForRenameTrigger(), RangeVarCallbackOwnsRelation(), recomputeNamespacePath(), recordExtObjInitPriv(), regclassout(), regconfigout(), regdictionaryout(), regoperout(), regprocout(), regtypeout(), relation_mark_replica_identity(), RelationBuildPartitionDesc(), RelationBuildPartitionKey(), RelationCacheInitializePhase3(), relationHasPrimaryKey(), RelationHasUnloggedIndex(), RelationInitIndexAccessInfo(), RelationIsVisible(), RelationReloadIndexInfo(), RemoveAccessMethodById(), RemoveConstraintById(), RemoveEventTriggerById(), removeExtObjInitPriv(), RemoveForeignDataWrapperById(), RemoveForeignServerById(), RemoveFunctionById(), RemoveObjects(), RemoveOpClassById(), RemoveOperatorById(), RemoveOpFamilyById(), RemovePartitionKeyByRelId(), RemovePublicationById(), RemovePublicationRelById(), RemoveSchemaById(), RemoveStatisticsById(), RemoveTSConfigurationById(), RemoveTSDictionaryById(), RemoveTSParserById(), RemoveTSTemplateById(), RemoveTypeById(), RemoveUserMappingById(), rename_constraint_internal(), RenameConstraint(), RenameRole(), replorigin_by_name(), replorigin_by_oid(), replorigin_drop(), ResetSequence(), ResolveOpClass(), ri_add_cast_to(), ri_GenerateQual(), ri_GenerateQualCollation(), ri_LoadConstraintInfo(), SearchSysCacheAttName(), SearchSysCacheCopy(), SearchSysCacheCopyAttName(), SearchSysCacheExists(), SearchSysCacheExistsAttName(), sepgsql_proc_setattr(), sepgsql_relation_setattr(), sequence_options(), SetDefaultACL(), simplify_function(), spgvalidate(), SPI_gettype(), statext_dependencies_load(), statext_ndistinct_load(), statext_store(), StatisticsObjIsVisible(), superuser_arg(), test_indoption(), transformArrayType(), transformColumnDefinition(), transformColumnNameList(), transformColumnType(), transformFkeyCheckAttrs(), transformFkeyGetPrimaryKey(), transformOfType(), triggered_change_notification(), TryReuseForeignKey(), TSConfigIsVisible(), TSDictionaryIsVisible(), TSParserIsVisible(), TSTemplateIsVisible(), TupleDescInitEntry(), typeidTypeRelid(), typeIsOfTypedTable(), TypeIsVisible(), typenameTypeId(), typenameTypeIdAndMod(), update_attstats(), and verify_dictoptions().

1118 {
1119  ReleaseCatCache(tuple);
1120 }
void ReleaseCatCache(HeapTuple tuple)
Definition: catcache.c:1303
HeapTuple SearchSysCache ( int  cacheId,
Datum  key1,
Datum  key2,
Datum  key3,
Datum  key4 
)

Definition at line 1099 of file syscache.c.

References elog, ERROR, PointerIsValid, SearchCatCache(), and SysCacheSize.

Referenced by GetSysCacheOid(), SearchSysCacheCopy(), and SearchSysCacheExists().

1104 {
1105  if (cacheId < 0 || cacheId >= SysCacheSize ||
1106  !PointerIsValid(SysCache[cacheId]))
1107  elog(ERROR, "invalid cache ID: %d", cacheId);
1108 
1109  return SearchCatCache(SysCache[cacheId], key1, key2, key3, key4);
1110 }
#define SysCacheSize
Definition: syscache.h:112
#define ERROR
Definition: elog.h:43
static CatCache * SysCache[SysCacheSize]
Definition: syscache.c:974
HeapTuple SearchCatCache(CatCache *cache, Datum v1, Datum v2, Datum v3, Datum v4)
Definition: catcache.c:1089
#define elog
Definition: elog.h:219
#define PointerIsValid(pointer)
Definition: c.h:526
HeapTuple SearchSysCacheAttName ( Oid  relid,
const char *  attname 
)

Definition at line 1205 of file syscache.c.

References ATTNAME, CStringGetDatum, GETSTRUCT, HeapTupleIsValid, NULL, ObjectIdGetDatum, ReleaseSysCache(), and SearchSysCache2.

Referenced by ATExecAlterColumnGenericOptions(), ATExecDropColumn(), ATExecSetOptions(), ATPrepAlterColumnType(), ComputeIndexAttrs(), ComputePartitionAttrs(), CreateStatistics(), get_attnum(), plpgsql_parse_cwordtype(), SearchSysCacheCopyAttName(), SearchSysCacheExistsAttName(), and transformColumnNameList().

1206 {
1207  HeapTuple tuple;
1208 
1209  tuple = SearchSysCache2(ATTNAME,
1210  ObjectIdGetDatum(relid),
1211  CStringGetDatum(attname));
1212  if (!HeapTupleIsValid(tuple))
1213  return NULL;
1214  if (((Form_pg_attribute) GETSTRUCT(tuple))->attisdropped)
1215  {
1216  ReleaseSysCache(tuple);
1217  return NULL;
1218  }
1219  return tuple;
1220 }
#define GETSTRUCT(TUP)
Definition: htup_details.h:656
#define ObjectIdGetDatum(X)
Definition: postgres.h:513
#define CStringGetDatum(X)
Definition: postgres.h:584
FormData_pg_attribute * Form_pg_attribute
Definition: pg_attribute.h:187
void ReleaseSysCache(HeapTuple tuple)
Definition: syscache.c:1117
#define HeapTupleIsValid(tuple)
Definition: htup.h:77
#define NULL
Definition: c.h:229
#define SearchSysCache2(cacheId, key1, key2)
Definition: syscache.h:158
HeapTuple SearchSysCacheCopy ( int  cacheId,
Datum  key1,
Datum  key2,
Datum  key3,
Datum  key4 
)

Definition at line 1131 of file syscache.c.

References heap_copytuple(), HeapTupleIsValid, ReleaseSysCache(), and SearchSysCache().

1136 {
1137  HeapTuple tuple,
1138  newtuple;
1139 
1140  tuple = SearchSysCache(cacheId, key1, key2, key3, key4);
1141  if (!HeapTupleIsValid(tuple))
1142  return tuple;
1143  newtuple = heap_copytuple(tuple);
1144  ReleaseSysCache(tuple);
1145  return newtuple;
1146 }
HeapTuple SearchSysCache(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
Definition: syscache.c:1099
HeapTuple heap_copytuple(HeapTuple tuple)
Definition: heaptuple.c:608
void ReleaseSysCache(HeapTuple tuple)
Definition: syscache.c:1117
#define HeapTupleIsValid(tuple)
Definition: htup.h:77
HeapTuple SearchSysCacheCopyAttName ( Oid  relid,
const char *  attname 
)

Definition at line 1228 of file syscache.c.

References heap_copytuple(), HeapTupleIsValid, ReleaseSysCache(), and SearchSysCacheAttName().

Referenced by ATExecAddColumn(), ATExecAddIdentity(), ATExecAlterColumnType(), ATExecDropColumn(), ATExecDropIdentity(), ATExecDropNotNull(), ATExecSetIdentity(), ATExecSetNotNull(), ATExecSetStatistics(), ATExecSetStorage(), MergeAttributesIntoExisting(), and renameatt_internal().

1229 {
1230  HeapTuple tuple,
1231  newtuple;
1232 
1233  tuple = SearchSysCacheAttName(relid, attname);
1234  if (!HeapTupleIsValid(tuple))
1235  return tuple;
1236  newtuple = heap_copytuple(tuple);
1237  ReleaseSysCache(tuple);
1238  return newtuple;
1239 }
HeapTuple heap_copytuple(HeapTuple tuple)
Definition: heaptuple.c:608
void ReleaseSysCache(HeapTuple tuple)
Definition: syscache.c:1117
#define HeapTupleIsValid(tuple)
Definition: htup.h:77
HeapTuple SearchSysCacheAttName(Oid relid, const char *attname)
Definition: syscache.c:1205
bool SearchSysCacheExists ( int  cacheId,
Datum  key1,
Datum  key2,
Datum  key3,
Datum  key4 
)

Definition at line 1155 of file syscache.c.

References HeapTupleIsValid, ReleaseSysCache(), and SearchSysCache().

1160 {
1161  HeapTuple tuple;
1162 
1163  tuple = SearchSysCache(cacheId, key1, key2, key3, key4);
1164  if (!HeapTupleIsValid(tuple))
1165  return false;
1166  ReleaseSysCache(tuple);
1167  return true;
1168 }
HeapTuple SearchSysCache(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
Definition: syscache.c:1099
void ReleaseSysCache(HeapTuple tuple)
Definition: syscache.c:1117
#define HeapTupleIsValid(tuple)
Definition: htup.h:77
bool SearchSysCacheExistsAttName ( Oid  relid,
const char *  attname 
)

Definition at line 1247 of file syscache.c.

References HeapTupleIsValid, ReleaseSysCache(), and SearchSysCacheAttName().

Referenced by RemoveInheritance().

1248 {
1249  HeapTuple tuple;
1250 
1251  tuple = SearchSysCacheAttName(relid, attname);
1252  if (!HeapTupleIsValid(tuple))
1253  return false;
1254  ReleaseSysCache(tuple);
1255  return true;
1256 }
void ReleaseSysCache(HeapTuple tuple)
Definition: syscache.c:1117
#define HeapTupleIsValid(tuple)
Definition: htup.h:77
HeapTuple SearchSysCacheAttName(Oid relid, const char *attname)
Definition: syscache.c:1205
struct catclist* SearchSysCacheList ( int  cacheId,
int  nkeys,
Datum  key1,
Datum  key2,
Datum  key3,
Datum  key4 
)

Definition at line 1331 of file syscache.c.

References elog, ERROR, PointerIsValid, SearchCatCacheList(), and SysCacheSize.

1333 {
1334  if (cacheId < 0 || cacheId >= SysCacheSize ||
1335  !PointerIsValid(SysCache[cacheId]))
1336  elog(ERROR, "invalid cache ID: %d", cacheId);
1337 
1338  return SearchCatCacheList(SysCache[cacheId], nkeys,
1339  key1, key2, key3, key4);
1340 }
#define SysCacheSize
Definition: syscache.h:112
#define ERROR
Definition: elog.h:43
static CatCache * SysCache[SysCacheSize]
Definition: syscache.c:974
CatCList * SearchCatCacheList(CatCache *cache, int nkeys, Datum v1, Datum v2, Datum v3, Datum v4)
Definition: catcache.c:1375
#define elog
Definition: elog.h:219
#define PointerIsValid(pointer)
Definition: c.h:526
Datum SysCacheGetAttr ( int  cacheId,
HeapTuple  tup,
AttrNumber  attributeNumber,
bool isNull 
)

Definition at line 1279 of file syscache.c.

References Assert, elog, ERROR, heap_getattr, InitCatCachePhase2(), PointerIsValid, and SysCacheSize.

Referenced by AlterCollation(), AlterDomainValidateConstraint(), AlterForeignDataWrapper(), AlterForeignServer(), AlterFunction(), AlterRole(), AlterSchemaOwner_internal(), AlterTSDictionary(), AlterUserMapping(), ATExecAlterColumnGenericOptions(), ATExecChangeOwner(), ATExecDetachPartition(), ATExecGenericOptions(), ATExecSetOptions(), ATExecSetRelOptions(), build_function_result_tupdesc_t(), build_replindex_scan_key(), CheckIndexCompatible(), compile_plperl_function(), compile_pltcl_function(), DefineDomain(), do_compile(), DropSubscription(), ExecGrant_Attribute(), ExecGrant_Fdw(), ExecGrant_ForeignServer(), ExecGrant_Function(), ExecGrant_Language(), ExecGrant_Namespace(), ExecGrant_Relation(), ExecInitAgg(), fetch_function_defaults(), fetch_statentries_for_relation(), flatten_reloptions(), fmgr_c_validator(), fmgr_info_C_lang(), fmgr_info_cxt_security(), fmgr_internal_validator(), fmgr_security_definer(), fmgr_sql_validator(), func_get_detail(), generate_partition_qual(), generateClonedIndexStmt(), get_attribute_options(), get_attstatsslot(), get_default_acl_internal(), get_func_arg_info(), get_func_result_name(), get_func_trftypes(), get_object_namespace(), get_role_password(), get_tablespace(), get_typdefault(), GetForeignColumnOptions(), GetForeignDataWrapper(), GetForeignServer(), GetForeignTable(), GetSubscription(), GetSubscriptionRelState(), GetUserMapping(), gistproperty(), inclusion_get_strategy_procinfo(), init_sql_fcache(), initialize_peragg(), inline_function(), inline_set_returning_function(), lookup_ts_dictionary_cache(), make_new_heap(), MatchNamedCall(), minmax_get_strategy_procinfo(), pg_attribute_aclmask(), pg_class_aclmask(), pg_database_aclmask(), pg_foreign_data_wrapper_aclmask(), pg_foreign_server_aclmask(), pg_get_constraintdef_worker(), pg_get_function_arg_default(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), pg_get_statisticsobj_worker(), pg_language_aclmask(), pg_namespace_aclmask(), pg_newlocale_from_collation(), pg_proc_aclmask(), pg_tablespace_aclmask(), pg_type_aclmask(), PLy_procedure_create(), prepare_sql_fn_parse_info(), print_function_arguments(), ProcedureCreate(), recordExtObjInitPriv(), RelationBuildPartitionDesc(), RelationBuildPartitionKey(), ri_LoadConstraintInfo(), SetDefaultACL(), statext_dependencies_load(), statext_ndistinct_load(), StorePartitionBound(), test_indoption(), transformFkeyCheckAttrs(), transformFkeyGetPrimaryKey(), transformIndexConstraint(), TryReuseForeignKey(), and validateCheckConstraint().

1282 {
1283  /*
1284  * We just need to get the TupleDesc out of the cache entry, and then we
1285  * can apply heap_getattr(). Normally the cache control data is already
1286  * valid (because the caller recently fetched the tuple via this same
1287  * cache), but there are cases where we have to initialize the cache here.
1288  */
1289  if (cacheId < 0 || cacheId >= SysCacheSize ||
1290  !PointerIsValid(SysCache[cacheId]))
1291  elog(ERROR, "invalid cache ID: %d", cacheId);
1292  if (!PointerIsValid(SysCache[cacheId]->cc_tupdesc))
1293  {
1294  InitCatCachePhase2(SysCache[cacheId], false);
1295  Assert(PointerIsValid(SysCache[cacheId]->cc_tupdesc));
1296  }
1297 
1298  return heap_getattr(tup, attributeNumber,
1299  SysCache[cacheId]->cc_tupdesc,
1300  isNull);
1301 }
#define SysCacheSize
Definition: syscache.h:112
#define ERROR
Definition: elog.h:43
#define heap_getattr(tup, attnum, tupleDesc, isnull)
Definition: htup_details.h:769
static CatCache * SysCache[SysCacheSize]
Definition: syscache.c:974
#define Assert(condition)
Definition: c.h:675
#define elog
Definition: elog.h:219
void InitCatCachePhase2(CatCache *cache, bool touch_index)
Definition: catcache.c:974
#define PointerIsValid(pointer)
Definition: c.h:526
void SysCacheInvalidate ( int  cacheId,
uint32  hashValue 
)

Definition at line 1351 of file syscache.c.

References CatCacheInvalidate(), elog, ERROR, PointerIsValid, and SysCacheSize.

Referenced by LocalExecuteInvalidationMessage().

1352 {
1353  if (cacheId < 0 || cacheId >= SysCacheSize)
1354  elog(ERROR, "invalid cache ID: %d", cacheId);
1355 
1356  /* if this cache isn't initialized yet, no need to do anything */
1357  if (!PointerIsValid(SysCache[cacheId]))
1358  return;
1359 
1360  CatCacheInvalidate(SysCache[cacheId], hashValue);
1361 }
void CatCacheInvalidate(CatCache *cache, uint32 hashValue)
Definition: catcache.c:443
#define SysCacheSize
Definition: syscache.h:112
#define ERROR
Definition: elog.h:43
static CatCache * SysCache[SysCacheSize]
Definition: syscache.c:974
#define elog
Definition: elog.h:219
#define PointerIsValid(pointer)
Definition: c.h:526