126 {AggregateRelationId,
127 AggregateFnoidIndexId,
130 Anum_pg_aggregate_aggfnoid,
137 {AccessMethodRelationId,
148 {AccessMethodRelationId,
159 {AccessMethodOperatorRelationId,
160 AccessMethodOperatorIndexId,
163 Anum_pg_amop_amopopr,
164 Anum_pg_amop_amoppurpose,
165 Anum_pg_amop_amopfamily,
170 {AccessMethodOperatorRelationId,
171 AccessMethodStrategyIndexId,
174 Anum_pg_amop_amopfamily,
175 Anum_pg_amop_amoplefttype,
176 Anum_pg_amop_amoprighttype,
177 Anum_pg_amop_amopstrategy
181 {AccessMethodProcedureRelationId,
182 AccessMethodProcedureIndexId,
185 Anum_pg_amproc_amprocfamily,
186 Anum_pg_amproc_amproclefttype,
187 Anum_pg_amproc_amprocrighttype,
188 Anum_pg_amproc_amprocnum
192 {AttributeRelationId,
193 AttributeRelidNameIndexId,
196 Anum_pg_attribute_attrelid,
197 Anum_pg_attribute_attname,
203 {AttributeRelationId,
204 AttributeRelidNumIndexId,
207 Anum_pg_attribute_attrelid,
208 Anum_pg_attribute_attnum,
215 AuthMemMemRoleIndexId,
218 Anum_pg_auth_members_member,
219 Anum_pg_auth_members_roleid,
226 AuthMemRoleMemIndexId,
229 Anum_pg_auth_members_roleid,
230 Anum_pg_auth_members_member,
237 AuthIdRolnameIndexId,
240 Anum_pg_authid_rolname,
260 CastSourceTargetIndexId,
263 Anum_pg_cast_castsource,
264 Anum_pg_cast_casttarget,
270 {OperatorClassRelationId,
271 OpclassAmNameNspIndexId,
274 Anum_pg_opclass_opcmethod,
275 Anum_pg_opclass_opcname,
276 Anum_pg_opclass_opcnamespace,
281 {OperatorClassRelationId,
292 {CollationRelationId,
293 CollationNameEncNspIndexId,
296 Anum_pg_collation_collname,
297 Anum_pg_collation_collencoding,
298 Anum_pg_collation_collnamespace,
303 {CollationRelationId,
307 Anum_pg_collation_oid,
314 {ConversionRelationId,
315 ConversionDefaultIndexId,
318 Anum_pg_conversion_connamespace,
319 Anum_pg_conversion_conforencoding,
320 Anum_pg_conversion_contoencoding,
321 Anum_pg_conversion_oid
325 {ConversionRelationId,
326 ConversionNameNspIndexId,
329 Anum_pg_conversion_conname,
330 Anum_pg_conversion_connamespace,
336 {ConstraintRelationId,
337 ConstraintOidIndexId,
340 Anum_pg_constraint_oid,
347 {ConversionRelationId,
348 ConversionOidIndexId,
351 Anum_pg_conversion_oid,
362 Anum_pg_database_oid,
369 {DefaultAclRelationId,
370 DefaultAclRoleNspObjIndexId,
373 Anum_pg_default_acl_defaclrole,
374 Anum_pg_default_acl_defaclnamespace,
375 Anum_pg_default_acl_defaclobjtype,
392 EnumTypIdLabelIndexId,
395 Anum_pg_enum_enumtypid,
396 Anum_pg_enum_enumlabel,
402 {EventTriggerRelationId,
403 EventTriggerNameIndexId,
406 Anum_pg_event_trigger_evtname,
413 {EventTriggerRelationId,
414 EventTriggerOidIndexId,
417 Anum_pg_event_trigger_oid,
424 {ForeignDataWrapperRelationId,
425 ForeignDataWrapperNameIndexId,
428 Anum_pg_foreign_data_wrapper_fdwname,
435 {ForeignDataWrapperRelationId,
436 ForeignDataWrapperOidIndexId,
439 Anum_pg_foreign_data_wrapper_oid,
446 {ForeignServerRelationId,
447 ForeignServerNameIndexId,
450 Anum_pg_foreign_server_srvname,
457 {ForeignServerRelationId,
458 ForeignServerOidIndexId,
461 Anum_pg_foreign_server_oid,
468 {ForeignTableRelationId,
469 ForeignTableRelidIndexId,
472 Anum_pg_foreign_table_ftrelid,
483 Anum_pg_index_indexrelid,
494 Anum_pg_language_lanname,
505 Anum_pg_language_oid,
512 {NamespaceRelationId,
513 NamespaceNameIndexId,
516 Anum_pg_namespace_nspname,
523 {NamespaceRelationId,
527 Anum_pg_namespace_oid,
535 OperatorNameNspIndexId,
538 Anum_pg_operator_oprname,
539 Anum_pg_operator_oprleft,
540 Anum_pg_operator_oprright,
541 Anum_pg_operator_oprnamespace
549 Anum_pg_operator_oid,
556 {OperatorFamilyRelationId,
557 OpfamilyAmNameNspIndexId,
560 Anum_pg_opfamily_opfmethod,
561 Anum_pg_opfamily_opfname,
562 Anum_pg_opfamily_opfnamespace,
567 {OperatorFamilyRelationId,
571 Anum_pg_opfamily_oid,
578 {ParameterAclRelationId,
579 ParameterAclParnameIndexId,
582 Anum_pg_parameter_acl_parname,
589 {ParameterAclRelationId,
590 ParameterAclOidIndexId,
593 Anum_pg_parameter_acl_oid,
600 {PartitionedRelationId,
601 PartitionedRelidIndexId,
604 Anum_pg_partitioned_table_partrelid,
611 {ProcedureRelationId,
612 ProcedureNameArgsNspIndexId,
615 Anum_pg_proc_proname,
616 Anum_pg_proc_proargtypes,
617 Anum_pg_proc_pronamespace,
622 {ProcedureRelationId,
633 {PublicationRelationId,
634 PublicationNameIndexId,
637 Anum_pg_publication_pubname,
644 {PublicationNamespaceRelationId,
645 PublicationNamespaceObjectIndexId,
648 Anum_pg_publication_namespace_oid,
655 {PublicationNamespaceRelationId,
656 PublicationNamespacePnnspidPnpubidIndexId,
659 Anum_pg_publication_namespace_pnnspid,
660 Anum_pg_publication_namespace_pnpubid,
666 {PublicationRelationId,
667 PublicationObjectIndexId,
670 Anum_pg_publication_oid,
677 {PublicationRelRelationId,
678 PublicationRelObjectIndexId,
681 Anum_pg_publication_rel_oid,
688 {PublicationRelRelationId,
689 PublicationRelPrrelidPrpubidIndexId,
692 Anum_pg_publication_rel_prrelid,
693 Anum_pg_publication_rel_prpubid,
700 RangeMultirangeTypidIndexId,
703 Anum_pg_range_rngmultitypid,
715 Anum_pg_range_rngtypid,
726 Anum_pg_class_relname,
727 Anum_pg_class_relnamespace,
744 {ReplicationOriginRelationId,
745 ReplicationOriginIdentIndex,
748 Anum_pg_replication_origin_roident,
755 {ReplicationOriginRelationId,
756 ReplicationOriginNameIndex,
759 Anum_pg_replication_origin_roname,
767 RewriteRelRulenameIndexId,
770 Anum_pg_rewrite_ev_class,
771 Anum_pg_rewrite_rulename,
778 SequenceRelidIndexId,
781 Anum_pg_sequence_seqrelid,
788 {StatisticExtDataRelationId,
789 StatisticExtDataStxoidInhIndexId,
792 Anum_pg_statistic_ext_data_stxoid,
793 Anum_pg_statistic_ext_data_stxdinherit,
799 {StatisticExtRelationId,
800 StatisticExtNameIndexId,
803 Anum_pg_statistic_ext_stxname,
804 Anum_pg_statistic_ext_stxnamespace,
810 {StatisticExtRelationId,
811 StatisticExtOidIndexId,
814 Anum_pg_statistic_ext_oid,
821 {StatisticRelationId,
822 StatisticRelidAttnumInhIndexId,
825 Anum_pg_statistic_starelid,
826 Anum_pg_statistic_staattnum,
827 Anum_pg_statistic_stainherit,
832 {SubscriptionRelationId,
833 SubscriptionNameIndexId,
836 Anum_pg_subscription_subdbid,
837 Anum_pg_subscription_subname,
843 {SubscriptionRelationId,
844 SubscriptionObjectIndexId,
847 Anum_pg_subscription_oid,
854 {SubscriptionRelRelationId,
855 SubscriptionRelSrrelidSrsubidIndexId,
858 Anum_pg_subscription_rel_srrelid,
859 Anum_pg_subscription_rel_srsubid,
865 {TableSpaceRelationId,
866 TablespaceOidIndexId,
869 Anum_pg_tablespace_oid,
876 {TransformRelationId,
880 Anum_pg_transform_oid,
887 {TransformRelationId,
888 TransformTypeLangIndexId,
891 Anum_pg_transform_trftype,
892 Anum_pg_transform_trflang,
898 {TSConfigMapRelationId,
902 Anum_pg_ts_config_map_mapcfg,
903 Anum_pg_ts_config_map_maptokentype,
904 Anum_pg_ts_config_map_mapseqno,
910 TSConfigNameNspIndexId,
913 Anum_pg_ts_config_cfgname,
914 Anum_pg_ts_config_cfgnamespace,
924 Anum_pg_ts_config_oid,
931 {TSDictionaryRelationId,
932 TSDictionaryNameNspIndexId,
935 Anum_pg_ts_dict_dictname,
936 Anum_pg_ts_dict_dictnamespace,
942 {TSDictionaryRelationId,
943 TSDictionaryOidIndexId,
954 TSParserNameNspIndexId,
957 Anum_pg_ts_parser_prsname,
958 Anum_pg_ts_parser_prsnamespace,
968 Anum_pg_ts_parser_oid,
975 {TSTemplateRelationId,
976 TSTemplateNameNspIndexId,
979 Anum_pg_ts_template_tmplname,
980 Anum_pg_ts_template_tmplnamespace,
986 {TSTemplateRelationId,
987 TSTemplateOidIndexId,
990 Anum_pg_ts_template_oid,
1001 Anum_pg_type_typname,
1002 Anum_pg_type_typnamespace,
1019 {UserMappingRelationId,
1020 UserMappingOidIndexId,
1023 Anum_pg_user_mapping_oid,
1030 {UserMappingRelationId,
1031 UserMappingUserServerIndexId,
1034 Anum_pg_user_mapping_umuser,
1035 Anum_pg_user_mapping_umserver,
1072 "SysCacheSize does not match syscache.c's array");
1087 elog(
ERROR,
"could not initialize cache %u (%d)",
1446 elog(
ERROR,
"invalid cache ID: %d", cacheId);
1477 elog(
ERROR,
"invalid cache ID: %d", cacheId);
1491 elog(
ERROR,
"invalid cache ID: %d", cacheId);
1509 elog(
ERROR,
"invalid cache ID: %d", cacheId);
1534 case DbRoleSettingRelationId:
1535 case DependRelationId:
1536 case SharedDependRelationId:
1537 case DescriptionRelationId:
1538 case SharedDescriptionRelationId:
1539 case SecLabelRelationId:
1540 case SharedSecLabelRelationId:
1560 int middle = low + (high - low) / 2;
1585 int middle = low + (high - low) / 2;
1610 return (oa > ob) ? 1 : -1;
#define PointerIsValid(pointer)
#define StaticAssertStmt(condition, errmessage)
HeapTuple SearchCatCache2(CatCache *cache, Datum v1, Datum v2)
HeapTuple SearchCatCache3(CatCache *cache, Datum v1, Datum v2, Datum v3)
void InitCatCachePhase2(CatCache *cache, bool touch_index)
uint32 GetCatCacheHashValue(CatCache *cache, Datum v1, Datum v2, Datum v3, Datum v4)
HeapTuple SearchCatCache4(CatCache *cache, Datum v1, Datum v2, Datum v3, Datum v4)
CatCache * InitCatCache(int id, Oid reloid, Oid indexoid, int nkeys, const int *key, int nbuckets)
CatCList * SearchCatCacheList(CatCache *cache, int nkeys, Datum v1, Datum v2, Datum v3)
void CatCacheInvalidate(CatCache *cache, uint32 hashValue)
HeapTuple SearchCatCache1(CatCache *cache, Datum v1)
void ReleaseCatCache(HeapTuple tuple)
HeapTuple SearchCatCache(CatCache *cache, Datum v1, Datum v2, Datum v3, Datum v4)
elog(ERROR, "%s: %s", p2, msg)
HeapTuple heap_copytuple(HeapTuple tuple)
#define HeapTupleIsValid(tuple)
static Datum heap_getattr(HeapTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
Assert(fmt[strlen(fmt) - 1] !='\n')
FormData_pg_attribute * Form_pg_attribute
void pg_qsort(void *base, size_t nel, size_t elsize, int(*cmp)(const void *, const void *))
#define CStringGetDatum(X)
#define ObjectIdGetDatum(X)
static size_t qunique(void *array, size_t elements, size_t width, int(*compare)(const void *, const void *))
HeapTuple SearchSysCacheCopyAttName(Oid relid, const char *attname)
void SysCacheInvalidate(int cacheId, uint32 hashValue)
bool RelationHasSysCache(Oid relid)
HeapTuple SearchSysCacheCopyAttNum(Oid relid, int16 attnum)
void InitCatalogCache(void)
static const struct cachedesc cacheinfo[]
void ReleaseSysCache(HeapTuple tuple)
static bool CacheInitialized
static int oid_compare(const void *a, const void *b)
HeapTuple SearchSysCache(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
HeapTuple SearchSysCache1(int cacheId, Datum key1)
uint32 GetSysCacheHashValue(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
struct catclist * SearchSysCacheList(int cacheId, int nkeys, Datum key1, Datum key2, Datum key3)
HeapTuple SearchSysCache3(int cacheId, Datum key1, Datum key2, Datum key3)
static int SysCacheSupportingRelOidSize
HeapTuple SearchSysCacheAttNum(Oid relid, int16 attnum)
bool RelationSupportsSysCache(Oid relid)
Datum SysCacheGetAttr(int cacheId, HeapTuple tup, AttrNumber attributeNumber, bool *isNull)
bool SearchSysCacheExistsAttName(Oid relid, const char *attname)
void InitCatalogCachePhase2(void)
HeapTuple SearchSysCache2(int cacheId, Datum key1, Datum key2)
HeapTuple SearchSysCacheAttName(Oid relid, const char *attname)
bool SearchSysCacheExists(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
HeapTuple SearchSysCacheCopy(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
static Oid SysCacheRelationOid[SysCacheSize]
static CatCache * SysCache[SysCacheSize]
static Oid SysCacheSupportingRelOid[SysCacheSize *2]
static int SysCacheRelationOidSize
bool RelationInvalidatesSnapshotsOnly(Oid relid)
HeapTuple SearchSysCache4(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
Oid GetSysCacheOid(int cacheId, AttrNumber oidcol, Datum key1, Datum key2, Datum key3, Datum key4)