v3-0001-Use-SysCacheIdentifier-enum-instead-of-int.patch
text/plain
Filename: v3-0001-Use-SysCacheIdentifier-enum-instead-of-int.patch
Type: text/plain
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v3-0001
Subject: Use SysCacheIdentifier enum instead of int
| File | + | − |
|---|---|---|
| contrib/postgres_fdw/connection.c | 2 | 2 |
| contrib/postgres_fdw/shippable.c | 1 | 1 |
| src/backend/catalog/aclchk.c | 5 | 5 |
| src/backend/catalog/dependency.c | 1 | 1 |
| src/backend/catalog/genbki.pl | 11 | 4 |
| src/backend/catalog/namespace.c | 2 | 2 |
| src/backend/catalog/objectaddress.c | 39 | 38 |
| src/backend/commands/alter.c | 4 | 4 |
| src/backend/commands/extension.c | 2 | 2 |
| src/backend/optimizer/util/predtest.c | 2 | 2 |
| src/backend/parser/parse_oper.c | 2 | 2 |
| src/backend/replication/logical/syncutils.c | 1 | 1 |
| src/backend/replication/logical/worker.c | 1 | 1 |
| src/backend/replication/pgoutput/pgoutput.c | 4 | 4 |
| src/backend/utils/adt/acl.c | 2 | 2 |
| src/backend/utils/adt/ri_triggers.c | 2 | 2 |
| src/backend/utils/cache/attoptcache.c | 1 | 1 |
| src/backend/utils/cache/evtcache.c | 2 | 2 |
| src/backend/utils/cache/inval.c | 2 | 2 |
| src/backend/utils/cache/plancache.c | 4 | 4 |
| src/backend/utils/cache/spccache.c | 1 | 1 |
| src/backend/utils/cache/syscache.c | 17 | 17 |
| src/backend/utils/cache/ts_cache.c | 1 | 1 |
| src/backend/utils/cache/typcache.c | 6 | 6 |
| src/backend/utils/misc/superuser.c | 2 | 2 |
| src/include/catalog/objectaddress.h | 3 | 2 |
| src/include/replication/worker_internal.h | 1 | 1 |
| src/include/utils/inval.h | 4 | 3 |
| src/include/utils/syscache.h | 15 | 15 |
From 612ffaf8fa9abab811b6878739e8393c78f495fc Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Tue, 17 Feb 2026 15:51:41 +0900
Subject: [PATCH v3] Use SysCacheIdentifier enum instead of int
This change makes the ABI checker happier, by forcing checks based on
this type.
---
src/include/catalog/objectaddress.h | 5 +-
src/include/replication/worker_internal.h | 2 +-
src/include/utils/inval.h | 7 +-
src/include/utils/syscache.h | 30 ++++----
src/backend/catalog/aclchk.c | 10 +--
src/backend/catalog/dependency.c | 2 +-
src/backend/catalog/genbki.pl | 15 ++--
src/backend/catalog/namespace.c | 4 +-
src/backend/catalog/objectaddress.c | 77 +++++++++++----------
src/backend/commands/alter.c | 8 +--
src/backend/commands/extension.c | 4 +-
src/backend/optimizer/util/predtest.c | 4 +-
src/backend/parser/parse_oper.c | 4 +-
src/backend/replication/logical/syncutils.c | 2 +-
src/backend/replication/logical/worker.c | 2 +-
src/backend/replication/pgoutput/pgoutput.c | 8 +--
src/backend/utils/adt/acl.c | 4 +-
src/backend/utils/adt/ri_triggers.c | 4 +-
src/backend/utils/cache/attoptcache.c | 2 +-
src/backend/utils/cache/evtcache.c | 4 +-
src/backend/utils/cache/inval.c | 4 +-
src/backend/utils/cache/plancache.c | 8 +--
src/backend/utils/cache/spccache.c | 2 +-
src/backend/utils/cache/syscache.c | 34 ++++-----
src/backend/utils/cache/ts_cache.c | 2 +-
src/backend/utils/cache/typcache.c | 12 ++--
src/backend/utils/misc/superuser.c | 4 +-
contrib/postgres_fdw/connection.c | 4 +-
contrib/postgres_fdw/shippable.c | 2 +-
29 files changed, 140 insertions(+), 130 deletions(-)
diff --git a/src/include/catalog/objectaddress.h b/src/include/catalog/objectaddress.h
index e2fe9db11617..b549be2d523e 100644
--- a/src/include/catalog/objectaddress.h
+++ b/src/include/catalog/objectaddress.h
@@ -17,6 +17,7 @@
#include "nodes/parsenodes.h"
#include "storage/lockdefs.h"
#include "utils/relcache.h"
+#include "utils/syscache.h"
/*
* An ObjectAddress represents a database object of any type.
@@ -57,8 +58,8 @@ extern Oid get_object_namespace(const ObjectAddress *address);
extern bool is_objectclass_supported(Oid class_id);
extern const char *get_object_class_descr(Oid class_id);
extern Oid get_object_oid_index(Oid class_id);
-extern int get_object_catcache_oid(Oid class_id);
-extern int get_object_catcache_name(Oid class_id);
+extern SysCacheIdentifier get_object_catcache_oid(Oid class_id);
+extern SysCacheIdentifier get_object_catcache_name(Oid class_id);
extern AttrNumber get_object_attnum_oid(Oid class_id);
extern AttrNumber get_object_attnum_name(Oid class_id);
extern AttrNumber get_object_attnum_namespace(Oid class_id);
diff --git a/src/include/replication/worker_internal.h b/src/include/replication/worker_internal.h
index c1285fdd1bc1..644c953c9407 100644
--- a/src/include/replication/worker_internal.h
+++ b/src/include/replication/worker_internal.h
@@ -289,7 +289,7 @@ extern void ProcessSyncingTablesForApply(XLogRecPtr current_lsn);
extern void ProcessSequencesForSync(void);
pg_noreturn extern void FinishSyncWorker(void);
-extern void InvalidateSyncingRelStates(Datum arg, int cacheid, uint32 hashvalue);
+extern void InvalidateSyncingRelStates(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
extern void launch_sync_worker(LogicalRepWorkerType wtype, int nsyncworkers,
Oid relid, TimestampTz *last_start_time);
extern void ProcessSyncingRelations(XLogRecPtr current_lsn);
diff --git a/src/include/utils/inval.h b/src/include/utils/inval.h
index 0e937fec9e9c..e9d8cdb75ff6 100644
--- a/src/include/utils/inval.h
+++ b/src/include/utils/inval.h
@@ -17,6 +17,7 @@
#include "access/htup.h"
#include "storage/relfilelocator.h"
#include "utils/relcache.h"
+#include "utils/syscache.h"
extern PGDLLIMPORT int debug_discard_caches;
@@ -38,7 +39,7 @@ extern PGDLLIMPORT int debug_discard_caches;
#endif /* not DISCARD_CACHES_ENABLED */
-typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, uint32 hashvalue);
+typedef void (*SyscacheCallbackFunction) (Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid);
typedef void (*RelSyncCallbackFunction) (Datum arg, Oid relid);
@@ -81,7 +82,7 @@ extern void CacheInvalidateSmgr(RelFileLocatorBackend rlocator);
extern void CacheInvalidateRelmap(Oid databaseId);
-extern void CacheRegisterSyscacheCallback(int cacheid,
+extern void CacheRegisterSyscacheCallback(SysCacheIdentifier cacheid,
SyscacheCallbackFunction func,
Datum arg);
@@ -91,7 +92,7 @@ extern void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func,
extern void CacheRegisterRelSyncCallback(RelSyncCallbackFunction func,
Datum arg);
-extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue);
+extern void CallSyscacheCallbacks(SysCacheIdentifier cacheid, uint32 hashvalue);
extern void CallRelSyncCallbacks(Oid relid);
diff --git a/src/include/utils/syscache.h b/src/include/utils/syscache.h
index 13f49af9ed4e..81e5933708e1 100644
--- a/src/include/utils/syscache.h
+++ b/src/include/utils/syscache.h
@@ -25,35 +25,35 @@
extern void InitCatalogCache(void);
extern void InitCatalogCachePhase2(void);
-extern HeapTuple SearchSysCache(int cacheId,
+extern HeapTuple SearchSysCache(SysCacheIdentifier cacheId,
Datum key1, Datum key2, Datum key3, Datum key4);
/*
* The use of argument specific numbers is encouraged. They're faster, and
* insulates the caller from changes in the maximum number of keys.
*/
-extern HeapTuple SearchSysCache1(int cacheId,
+extern HeapTuple SearchSysCache1(SysCacheIdentifier cacheId,
Datum key1);
-extern HeapTuple SearchSysCache2(int cacheId,
+extern HeapTuple SearchSysCache2(SysCacheIdentifier cacheId,
Datum key1, Datum key2);
-extern HeapTuple SearchSysCache3(int cacheId,
+extern HeapTuple SearchSysCache3(SysCacheIdentifier cacheId,
Datum key1, Datum key2, Datum key3);
-extern HeapTuple SearchSysCache4(int cacheId,
+extern HeapTuple SearchSysCache4(SysCacheIdentifier cacheId,
Datum key1, Datum key2, Datum key3, Datum key4);
extern void ReleaseSysCache(HeapTuple tuple);
-extern HeapTuple SearchSysCacheLocked1(int cacheId,
+extern HeapTuple SearchSysCacheLocked1(SysCacheIdentifier cacheId,
Datum key1);
/* convenience routines */
-extern HeapTuple SearchSysCacheCopy(int cacheId,
+extern HeapTuple SearchSysCacheCopy(SysCacheIdentifier cacheId,
Datum key1, Datum key2, Datum key3, Datum key4);
-extern HeapTuple SearchSysCacheLockedCopy1(int cacheId,
+extern HeapTuple SearchSysCacheLockedCopy1(SysCacheIdentifier cacheId,
Datum key1);
-extern bool SearchSysCacheExists(int cacheId,
+extern bool SearchSysCacheExists(SysCacheIdentifier cacheId,
Datum key1, Datum key2, Datum key3, Datum key4);
-extern Oid GetSysCacheOid(int cacheId, AttrNumber oidcol,
+extern Oid GetSysCacheOid(SysCacheIdentifier cacheId, AttrNumber oidcol,
Datum key1, Datum key2, Datum key3, Datum key4);
extern HeapTuple SearchSysCacheAttName(Oid relid, const char *attname);
@@ -63,21 +63,21 @@ extern bool SearchSysCacheExistsAttName(Oid relid, const char *attname);
extern HeapTuple SearchSysCacheAttNum(Oid relid, int16 attnum);
extern HeapTuple SearchSysCacheCopyAttNum(Oid relid, int16 attnum);
-extern Datum SysCacheGetAttr(int cacheId, HeapTuple tup,
+extern Datum SysCacheGetAttr(SysCacheIdentifier cacheId, HeapTuple tup,
AttrNumber attributeNumber, bool *isNull);
-extern Datum SysCacheGetAttrNotNull(int cacheId, HeapTuple tup,
+extern Datum SysCacheGetAttrNotNull(SysCacheIdentifier cacheId, HeapTuple tup,
AttrNumber attributeNumber);
-extern uint32 GetSysCacheHashValue(int cacheId,
+extern uint32 GetSysCacheHashValue(SysCacheIdentifier cacheId,
Datum key1, Datum key2, Datum key3, Datum key4);
/* list-search interface. Users of this must import catcache.h too */
struct catclist;
-extern struct catclist *SearchSysCacheList(int cacheId, int nkeys,
+extern struct catclist *SearchSysCacheList(SysCacheIdentifier cacheId, int nkeys,
Datum key1, Datum key2, Datum key3);
-extern void SysCacheInvalidate(int cacheId, uint32 hashValue);
+extern void SysCacheInvalidate(SysCacheIdentifier cacheId, uint32 hashValue);
extern bool RelationInvalidatesSnapshotsOnly(Oid relid);
extern bool RelationHasSysCache(Oid relid);
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index a431fc0926ff..1dd6df71d14b 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -2115,7 +2115,7 @@ static void
ExecGrant_common(InternalGrant *istmt, Oid classid, AclMode default_privs,
void (*object_check) (InternalGrant *istmt, HeapTuple tuple))
{
- int cacheid;
+ SysCacheIdentifier cacheid;
Relation relation;
ListCell *cell;
@@ -3058,7 +3058,7 @@ object_aclmask_ext(Oid classid, Oid objectid, Oid roleid,
AclMode mask, AclMaskHow how,
bool *is_missing)
{
- int cacheid;
+ SysCacheIdentifier cacheid;
AclMode result;
HeapTuple tuple;
Datum aclDatum;
@@ -4089,7 +4089,7 @@ pg_largeobject_aclcheck_snapshot(Oid lobj_oid, Oid roleid, AclMode mode,
bool
object_ownercheck(Oid classid, Oid objectid, Oid roleid)
{
- int cacheid;
+ SysCacheIdentifier cacheid;
Oid ownerId;
/* Superusers bypass all permission checking. */
@@ -4486,7 +4486,7 @@ recordExtObjInitPriv(Oid objoid, Oid classoid)
/* This will error on unsupported classoid. */
else if (get_object_attnum_acl(classoid) != InvalidAttrNumber)
{
- int cacheid;
+ SysCacheIdentifier cacheid;
Datum aclDatum;
bool isNull;
HeapTuple tuple;
@@ -4870,7 +4870,7 @@ RemoveRoleFromInitPriv(Oid roleid, Oid classid, Oid objid, int32 objsubid)
ScanKeyData key[3];
SysScanDesc scan;
HeapTuple oldtuple;
- int cacheid;
+ SysCacheIdentifier cacheid;
HeapTuple objtuple;
Oid ownerId;
Datum oldAclDatum;
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index f89267f03428..7564965fa18d 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -1238,7 +1238,7 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
static void
DropObjectById(const ObjectAddress *object)
{
- int cacheId;
+ SysCacheIdentifier cacheId;
Relation rel;
HeapTuple tup;
diff --git a/src/backend/catalog/genbki.pl b/src/backend/catalog/genbki.pl
index b2c1b1c57332..48c6805f7527 100644
--- a/src/backend/catalog/genbki.pl
+++ b/src/backend/catalog/genbki.pl
@@ -795,9 +795,9 @@ print $fk_info "};\n\n#endif\t\t\t\t\t\t\t/* SYSTEM_FK_INFO_H */\n";
# Now generate syscache info
print_boilerplate($syscache_ids_fh, "syscache_ids.h", "SysCache identifiers");
-print $syscache_ids_fh "enum SysCacheIdentifier
+print $syscache_ids_fh "typedef enum SysCacheIdentifier
{
-";
+\tSYSCACHEID_INVALID = -1,\n";
print_boilerplate($syscache_info_fh, "syscache_info.h",
"SysCache definitions");
@@ -812,7 +812,14 @@ print $syscache_info_fh "static const struct cachedesc cacheinfo[] = {\n";
my $last_syscache;
foreach my $syscache (sort keys %syscaches)
{
- print $syscache_ids_fh "\t$syscache,\n";
+ if (not defined $last_syscache)
+ {
+ print $syscache_ids_fh "\t$syscache = 0,\n";
+ }
+ else
+ {
+ print $syscache_ids_fh "\t$syscache,\n";
+ }
$last_syscache = $syscache;
print $syscache_info_fh "\t[$syscache] = {\n";
@@ -825,7 +832,7 @@ foreach my $syscache (sort keys %syscaches)
print $syscache_info_fh "\t},\n";
}
-print $syscache_ids_fh "};\n";
+print $syscache_ids_fh "} SysCacheIdentifier;\n";
print $syscache_ids_fh "#define SysCacheSize ($last_syscache + 1)\n";
print $syscache_info_fh "};\n";
diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c
index c3b79a2ba48f..cb335afdf896 100644
--- a/src/backend/catalog/namespace.c
+++ b/src/backend/catalog/namespace.c
@@ -229,7 +229,7 @@ static void AccessTempTableNamespace(bool force);
static void InitTempTableNamespace(void);
static void RemoveTempRelations(Oid tempNamespaceId);
static void RemoveTempRelationsCallback(int code, Datum arg);
-static void InvalidationCallback(Datum arg, int cacheid, uint32 hashvalue);
+static void InvalidationCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
bool include_out_arguments, int pronargs,
int **argnumbers, int *fgc_flags);
@@ -4863,7 +4863,7 @@ InitializeSearchPath(void)
* Syscache inval callback function
*/
static void
-InvalidationCallback(Datum arg, int cacheid, uint32 hashvalue)
+InvalidationCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
/*
* Force search path to be recomputed on next use, also invalidating the
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 02af64b82c68..d41a4d629186 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -99,10 +99,11 @@ typedef struct
* error messages */
Oid class_oid; /* oid of catalog */
Oid oid_index_oid; /* oid of index on system oid column */
- int oid_catcache_id; /* id of catcache on system oid column */
- int name_catcache_id; /* id of catcache on (name,namespace), or
- * (name) if the object does not live in a
- * namespace */
+ SysCacheIdentifier oid_catcache_id; /* id of catcache on system oid column */
+ SysCacheIdentifier name_catcache_id; /* id of catcache on
+ * (name,namespace), or (name) if
+ * the object does not live in a
+ * namespace */
AttrNumber attnum_oid; /* attribute number of oid column */
AttrNumber attnum_name; /* attnum of name field */
AttrNumber attnum_namespace; /* attnum of namespace field */
@@ -135,8 +136,8 @@ static const ObjectPropertyType ObjectProperty[] =
"access method operator",
AccessMethodOperatorRelationId,
AccessMethodOperatorOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_amop_oid,
InvalidAttrNumber,
InvalidAttrNumber,
@@ -149,8 +150,8 @@ static const ObjectPropertyType ObjectProperty[] =
"access method procedure",
AccessMethodProcedureRelationId,
AccessMethodProcedureOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_amproc_oid,
InvalidAttrNumber,
InvalidAttrNumber,
@@ -163,8 +164,8 @@ static const ObjectPropertyType ObjectProperty[] =
"cast",
CastRelationId,
CastOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_cast_oid,
InvalidAttrNumber,
InvalidAttrNumber,
@@ -178,7 +179,7 @@ static const ObjectPropertyType ObjectProperty[] =
CollationRelationId,
CollationOidIndexId,
COLLOID,
- -1, /* COLLNAMEENCNSP also takes encoding */
+ SYSCACHEID_INVALID, /* COLLNAMEENCNSP also takes encoding */
Anum_pg_collation_oid,
Anum_pg_collation_collname,
Anum_pg_collation_collnamespace,
@@ -192,7 +193,7 @@ static const ObjectPropertyType ObjectProperty[] =
ConstraintRelationId,
ConstraintOidIndexId,
CONSTROID,
- -1,
+ SYSCACHEID_INVALID,
Anum_pg_constraint_oid,
Anum_pg_constraint_conname,
Anum_pg_constraint_connamespace,
@@ -220,7 +221,7 @@ static const ObjectPropertyType ObjectProperty[] =
DatabaseRelationId,
DatabaseOidIndexId,
DATABASEOID,
- -1,
+ SYSCACHEID_INVALID,
Anum_pg_database_oid,
Anum_pg_database_datname,
InvalidAttrNumber,
@@ -233,8 +234,8 @@ static const ObjectPropertyType ObjectProperty[] =
"default ACL",
DefaultAclRelationId,
DefaultAclOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_default_acl_oid,
InvalidAttrNumber,
InvalidAttrNumber,
@@ -247,8 +248,8 @@ static const ObjectPropertyType ObjectProperty[] =
"extension",
ExtensionRelationId,
ExtensionOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_extension_oid,
Anum_pg_extension_extname,
InvalidAttrNumber, /* extension doesn't belong to extnamespace */
@@ -290,7 +291,7 @@ static const ObjectPropertyType ObjectProperty[] =
ProcedureRelationId,
ProcedureOidIndexId,
PROCOID,
- -1, /* PROCNAMEARGSNSP also takes argument types */
+ SYSCACHEID_INVALID, /* PROCNAMEARGSNSP also takes argument types */
Anum_pg_proc_oid,
Anum_pg_proc_proname,
Anum_pg_proc_pronamespace,
@@ -317,8 +318,8 @@ static const ObjectPropertyType ObjectProperty[] =
"large object metadata",
LargeObjectMetadataRelationId,
LargeObjectMetadataOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_largeobject_metadata_oid,
InvalidAttrNumber,
InvalidAttrNumber,
@@ -332,7 +333,7 @@ static const ObjectPropertyType ObjectProperty[] =
OperatorClassRelationId,
OpclassOidIndexId,
CLAOID,
- -1, /* CLAAMNAMENSP also takes opcmethod */
+ SYSCACHEID_INVALID, /* CLAAMNAMENSP also takes opcmethod */
Anum_pg_opclass_oid,
Anum_pg_opclass_opcname,
Anum_pg_opclass_opcnamespace,
@@ -346,7 +347,7 @@ static const ObjectPropertyType ObjectProperty[] =
OperatorRelationId,
OperatorOidIndexId,
OPEROID,
- -1, /* OPERNAMENSP also takes left and right type */
+ SYSCACHEID_INVALID, /* OPERNAMENSP also takes left and right type */
Anum_pg_operator_oid,
Anum_pg_operator_oprname,
Anum_pg_operator_oprnamespace,
@@ -360,7 +361,7 @@ static const ObjectPropertyType ObjectProperty[] =
OperatorFamilyRelationId,
OpfamilyOidIndexId,
OPFAMILYOID,
- -1, /* OPFAMILYAMNAMENSP also takes opfmethod */
+ SYSCACHEID_INVALID, /* OPFAMILYAMNAMENSP also takes opfmethod */
Anum_pg_opfamily_oid,
Anum_pg_opfamily_opfname,
Anum_pg_opfamily_opfnamespace,
@@ -387,8 +388,8 @@ static const ObjectPropertyType ObjectProperty[] =
"role membership",
AuthMemRelationId,
AuthMemOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_auth_members_oid,
InvalidAttrNumber,
InvalidAttrNumber,
@@ -401,8 +402,8 @@ static const ObjectPropertyType ObjectProperty[] =
"rule",
RewriteRelationId,
RewriteOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_rewrite_oid,
Anum_pg_rewrite_rulename,
InvalidAttrNumber,
@@ -444,7 +445,7 @@ static const ObjectPropertyType ObjectProperty[] =
TableSpaceRelationId,
TablespaceOidIndexId,
TABLESPACEOID,
- -1,
+ SYSCACHEID_INVALID,
Anum_pg_tablespace_oid,
Anum_pg_tablespace_spcname,
InvalidAttrNumber,
@@ -458,7 +459,7 @@ static const ObjectPropertyType ObjectProperty[] =
TransformRelationId,
TransformOidIndexId,
TRFOID,
- -1,
+ SYSCACHEID_INVALID,
Anum_pg_transform_oid,
InvalidAttrNumber,
InvalidAttrNumber,
@@ -471,8 +472,8 @@ static const ObjectPropertyType ObjectProperty[] =
"trigger",
TriggerRelationId,
TriggerOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_trigger_oid,
Anum_pg_trigger_tgname,
InvalidAttrNumber,
@@ -485,8 +486,8 @@ static const ObjectPropertyType ObjectProperty[] =
"policy",
PolicyRelationId,
PolicyOidIndexId,
- -1,
- -1,
+ SYSCACHEID_INVALID,
+ SYSCACHEID_INVALID,
Anum_pg_policy_oid,
Anum_pg_policy_polname,
InvalidAttrNumber,
@@ -626,7 +627,7 @@ static const ObjectPropertyType ObjectProperty[] =
UserMappingRelationId,
UserMappingOidIndexId,
USERMAPPINGOID,
- -1,
+ SYSCACHEID_INVALID,
Anum_pg_user_mapping_oid,
InvalidAttrNumber,
InvalidAttrNumber,
@@ -2571,7 +2572,7 @@ check_object_ownership(Oid roleid, ObjectType objtype, ObjectAddress address,
Oid
get_object_namespace(const ObjectAddress *address)
{
- int cache;
+ SysCacheIdentifier cache;
HeapTuple tuple;
Oid oid;
const ObjectPropertyType *property;
@@ -2640,7 +2641,7 @@ get_object_oid_index(Oid class_id)
return prop->oid_index_oid;
}
-int
+SysCacheIdentifier
get_object_catcache_oid(Oid class_id)
{
const ObjectPropertyType *prop = get_object_property_data(class_id);
@@ -2648,7 +2649,7 @@ get_object_catcache_oid(Oid class_id)
return prop->oid_catcache_id;
}
-int
+SysCacheIdentifier
get_object_catcache_name(Oid class_id)
{
const ObjectPropertyType *prop = get_object_property_data(class_id);
@@ -2806,7 +2807,7 @@ get_catalog_object_by_oid_extended(Relation catalog,
{
HeapTuple tuple;
Oid classId = RelationGetRelid(catalog);
- int oidCacheId = get_object_catcache_oid(classId);
+ SysCacheIdentifier oidCacheId = get_object_catcache_oid(classId);
if (oidCacheId > 0)
{
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index 08957104c70a..c6f58d47be62 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -159,8 +159,8 @@ static void
AlterObjectRename_internal(Relation rel, Oid objectId, const char *new_name)
{
Oid classId = RelationGetRelid(rel);
- int oidCacheId = get_object_catcache_oid(classId);
- int nameCacheId = get_object_catcache_name(classId);
+ SysCacheIdentifier oidCacheId = get_object_catcache_oid(classId);
+ SysCacheIdentifier nameCacheId = get_object_catcache_name(classId);
AttrNumber Anum_name = get_object_attnum_name(classId);
AttrNumber Anum_namespace = get_object_attnum_namespace(classId);
AttrNumber Anum_owner = get_object_attnum_owner(classId);
@@ -686,8 +686,8 @@ static Oid
AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
{
Oid classId = RelationGetRelid(rel);
- int oidCacheId = get_object_catcache_oid(classId);
- int nameCacheId = get_object_catcache_name(classId);
+ SysCacheIdentifier oidCacheId = get_object_catcache_oid(classId);
+ SysCacheIdentifier nameCacheId = get_object_catcache_name(classId);
AttrNumber Anum_name = get_object_attnum_name(classId);
AttrNumber Anum_namespace = get_object_attnum_namespace(classId);
AttrNumber Anum_owner = get_object_attnum_owner(classId);
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index 81f24615d51c..93ce3ebabf81 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -162,7 +162,7 @@ typedef struct ExtensionSiblingCache
static ExtensionSiblingCache *ext_sibling_list = NULL;
/* Local functions */
-static void ext_sibling_callback(Datum arg, int cacheid, uint32 hashvalue);
+static void ext_sibling_callback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
static List *find_update_path(List *evi_list,
ExtensionVersionInfo *evi_start,
ExtensionVersionInfo *evi_target,
@@ -379,7 +379,7 @@ get_function_sibling_type(Oid funcoid, const char *typname)
* looking for, could change without an extension update or drop/recreate.
*/
static void
-ext_sibling_callback(Datum arg, int cacheid, uint32 hashvalue)
+ext_sibling_callback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
ExtensionSiblingCache *cache_entry;
diff --git a/src/backend/optimizer/util/predtest.c b/src/backend/optimizer/util/predtest.c
index 26858d1d2b07..61a0ed195aa5 100644
--- a/src/backend/optimizer/util/predtest.c
+++ b/src/backend/optimizer/util/predtest.c
@@ -109,7 +109,7 @@ static bool operator_same_subexprs_proof(Oid pred_op, Oid clause_op,
static bool operator_same_subexprs_lookup(Oid pred_op, Oid clause_op,
bool refute_it);
static Oid get_btree_test_op(Oid pred_op, Oid clause_op, bool refute_it);
-static void InvalidateOprProofCacheCallBack(Datum arg, int cacheid, uint32 hashvalue);
+static void InvalidateOprProofCacheCallBack(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
/*
@@ -2343,7 +2343,7 @@ get_btree_test_op(Oid pred_op, Oid clause_op, bool refute_it)
* Callback for pg_amop inval events
*/
static void
-InvalidateOprProofCacheCallBack(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateOprProofCacheCallBack(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS status;
OprProofCacheEntry *hentry;
diff --git a/src/backend/parser/parse_oper.c b/src/backend/parser/parse_oper.c
index 768e4cff9c50..76cbdacf9336 100644
--- a/src/backend/parser/parse_oper.c
+++ b/src/backend/parser/parse_oper.c
@@ -79,7 +79,7 @@ static bool make_oper_cache_key(ParseState *pstate, OprCacheKey *key,
int location);
static Oid find_oper_cache_entry(OprCacheKey *key);
static void make_oper_cache_entry(OprCacheKey *key, Oid opr_oid);
-static void InvalidateOprCacheCallBack(Datum arg, int cacheid, uint32 hashvalue);
+static void InvalidateOprCacheCallBack(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
/*
@@ -1076,7 +1076,7 @@ make_oper_cache_entry(OprCacheKey *key, Oid opr_oid)
* Callback for pg_operator and pg_cast inval events
*/
static void
-InvalidateOprCacheCallBack(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateOprCacheCallBack(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS status;
OprCacheEntry *hentry;
diff --git a/src/backend/replication/logical/syncutils.c b/src/backend/replication/logical/syncutils.c
index 535ffb6f09e3..8f0897beec14 100644
--- a/src/backend/replication/logical/syncutils.c
+++ b/src/backend/replication/logical/syncutils.c
@@ -98,7 +98,7 @@ FinishSyncWorker(void)
* Callback from syscache invalidation.
*/
void
-InvalidateSyncingRelStates(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateSyncingRelStates(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
relation_states_validity = SYNC_RELATIONS_STATE_NEEDS_REBUILD;
}
diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c
index 32725c48623b..8b93f48470c3 100644
--- a/src/backend/replication/logical/worker.c
+++ b/src/backend/replication/logical/worker.c
@@ -5164,7 +5164,7 @@ maybe_reread_subscription(void)
* Callback from subscription syscache invalidation.
*/
static void
-subscription_change_cb(Datum arg, int cacheid, uint32 hashvalue)
+subscription_change_cb(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
MySubscriptionValid = false;
}
diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c
index e016f64e0b37..2aea20dca227 100644
--- a/src/backend/replication/pgoutput/pgoutput.c
+++ b/src/backend/replication/pgoutput/pgoutput.c
@@ -86,7 +86,7 @@ static void pgoutput_stream_prepare_txn(LogicalDecodingContext *ctx,
static bool publications_valid;
static List *LoadPublications(List *pubnames);
-static void publication_invalidation_cb(Datum arg, int cacheid,
+static void publication_invalidation_cb(Datum arg, SysCacheIdentifier cacheid,
uint32 hashvalue);
static void send_repl_origin(LogicalDecodingContext *ctx,
ReplOriginId origin_id, XLogRecPtr origin_lsn,
@@ -227,7 +227,7 @@ static void send_relation_and_attrs(Relation relation, TransactionId xid,
LogicalDecodingContext *ctx,
RelationSyncEntry *relentry);
static void rel_sync_cache_relation_cb(Datum arg, Oid relid);
-static void rel_sync_cache_publication_cb(Datum arg, int cacheid,
+static void rel_sync_cache_publication_cb(Datum arg, SysCacheIdentifier cacheid,
uint32 hashvalue);
static void set_schema_sent_in_streamed_txn(RelationSyncEntry *entry,
TransactionId xid);
@@ -1828,7 +1828,7 @@ LoadPublications(List *pubnames)
* Called for invalidations on pg_publication.
*/
static void
-publication_invalidation_cb(Datum arg, int cacheid, uint32 hashvalue)
+publication_invalidation_cb(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
publications_valid = false;
}
@@ -2431,7 +2431,7 @@ rel_sync_cache_relation_cb(Datum arg, Oid relid)
* Called for invalidations on pg_namespace.
*/
static void
-rel_sync_cache_publication_cb(Datum arg, int cacheid, uint32 hashvalue)
+rel_sync_cache_publication_cb(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS status;
RelationSyncEntry *entry;
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c
index 3a6905f9546e..332152cfd2a3 100644
--- a/src/backend/utils/adt/acl.c
+++ b/src/backend/utils/adt/acl.c
@@ -130,7 +130,7 @@ static AclMode convert_largeobject_priv_string(text *priv_type_text);
static AclMode convert_role_priv_string(text *priv_type_text);
static AclResult pg_role_aclcheck(Oid role_oid, Oid roleid, AclMode mode);
-static void RoleMembershipCacheCallback(Datum arg, int cacheid, uint32 hashvalue);
+static void RoleMembershipCacheCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
/*
@@ -5067,7 +5067,7 @@ initialize_acl(void)
* Syscache inval callback function
*/
static void
-RoleMembershipCacheCallback(Datum arg, int cacheid, uint32 hashvalue)
+RoleMembershipCacheCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
if (cacheid == DATABASEOID &&
hashvalue != cached_db_hash &&
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c
index bbadecef5f92..57a511cc9e24 100644
--- a/src/backend/utils/adt/ri_triggers.c
+++ b/src/backend/utils/adt/ri_triggers.c
@@ -213,7 +213,7 @@ static bool ri_CompareWithCast(Oid eq_opr, Oid typeid, Oid collid,
Datum lhs, Datum rhs);
static void ri_InitHashTables(void);
-static void InvalidateConstraintCacheCallBack(Datum arg, int cacheid, uint32 hashvalue);
+static void InvalidateConstraintCacheCallBack(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
static SPIPlanPtr ri_FetchPreparedPlan(RI_QueryKey *key);
static void ri_HashPreparedPlan(RI_QueryKey *key, SPIPlanPtr plan);
static RI_CompareHashEntry *ri_HashCompareOp(Oid eq_opr, Oid typeid);
@@ -2397,7 +2397,7 @@ get_ri_constraint_root(Oid constrOid)
* data from changing under it --- but we may get cache flushes anyway.)
*/
static void
-InvalidateConstraintCacheCallBack(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateConstraintCacheCallBack(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
dlist_mutable_iter iter;
diff --git a/src/backend/utils/cache/attoptcache.c b/src/backend/utils/cache/attoptcache.c
index 72edc8f665b8..4e0fc7f91123 100644
--- a/src/backend/utils/cache/attoptcache.c
+++ b/src/backend/utils/cache/attoptcache.c
@@ -50,7 +50,7 @@ typedef struct
* for that attribute.
*/
static void
-InvalidateAttoptCacheCallback(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateAttoptCacheCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS status;
AttoptCacheEntry *attopt;
diff --git a/src/backend/utils/cache/evtcache.c b/src/backend/utils/cache/evtcache.c
index 2b4453e54a76..ac5c760efa74 100644
--- a/src/backend/utils/cache/evtcache.c
+++ b/src/backend/utils/cache/evtcache.c
@@ -49,7 +49,7 @@ static EventTriggerCacheStateType EventTriggerCacheState = ETCS_NEEDS_REBUILD;
static void BuildEventTriggerCache(void);
static void InvalidateEventCacheCallback(Datum arg,
- int cacheid, uint32 hashvalue);
+ SysCacheIdentifier cacheid, uint32 hashvalue);
static Bitmapset *DecodeTextArrayToBitmapset(Datum array);
/*
@@ -254,7 +254,7 @@ DecodeTextArrayToBitmapset(Datum array)
* memory leaks.
*/
static void
-InvalidateEventCacheCallback(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateEventCacheCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
/*
* If the cache isn't valid, then there might be a rebuild in progress, so
diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index bf465a295e3f..d59216b28f16 100644
--- a/src/backend/utils/cache/inval.c
+++ b/src/backend/utils/cache/inval.c
@@ -1813,7 +1813,7 @@ CacheInvalidateRelmap(Oid databaseId)
* flush all cached state anyway.
*/
void
-CacheRegisterSyscacheCallback(int cacheid,
+CacheRegisterSyscacheCallback(SysCacheIdentifier cacheid,
SyscacheCallbackFunction func,
Datum arg)
{
@@ -1895,7 +1895,7 @@ CacheRegisterRelSyncCallback(RelSyncCallbackFunction func,
* this module from knowing which catcache IDs correspond to which catalogs.
*/
void
-CallSyscacheCallbacks(int cacheid, uint32 hashvalue)
+CallSyscacheCallbacks(SysCacheIdentifier cacheid, uint32 hashvalue)
{
int i;
diff --git a/src/backend/utils/cache/plancache.c b/src/backend/utils/cache/plancache.c
index 37d5d73b7fb9..d93c3b8afe87 100644
--- a/src/backend/utils/cache/plancache.c
+++ b/src/backend/utils/cache/plancache.c
@@ -106,8 +106,8 @@ static void ScanQueryForLocks(Query *parsetree, bool acquire);
static bool ScanQueryWalker(Node *node, bool *acquire);
static TupleDesc PlanCacheComputeResultDesc(List *stmt_list);
static void PlanCacheRelCallback(Datum arg, Oid relid);
-static void PlanCacheObjectCallback(Datum arg, int cacheid, uint32 hashvalue);
-static void PlanCacheSysCallback(Datum arg, int cacheid, uint32 hashvalue);
+static void PlanCacheObjectCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
+static void PlanCacheSysCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
/* ResourceOwner callbacks to track plancache references */
static void ResOwnerReleaseCachedPlan(Datum res);
@@ -2201,7 +2201,7 @@ PlanCacheRelCallback(Datum arg, Oid relid)
* or all plans mentioning any member of this cache if hashvalue == 0.
*/
static void
-PlanCacheObjectCallback(Datum arg, int cacheid, uint32 hashvalue)
+PlanCacheObjectCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
dlist_iter iter;
@@ -2310,7 +2310,7 @@ PlanCacheObjectCallback(Datum arg, int cacheid, uint32 hashvalue)
* Just invalidate everything...
*/
static void
-PlanCacheSysCallback(Datum arg, int cacheid, uint32 hashvalue)
+PlanCacheSysCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
ResetPlanCache();
}
diff --git a/src/backend/utils/cache/spccache.c b/src/backend/utils/cache/spccache.c
index 8f1a5e695956..0d87fb2f4fcd 100644
--- a/src/backend/utils/cache/spccache.c
+++ b/src/backend/utils/cache/spccache.c
@@ -52,7 +52,7 @@ typedef struct
* tablespaces, nor do we expect them to be frequently modified.
*/
static void
-InvalidateTableSpaceCacheCallback(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateTableSpaceCacheCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS status;
TableSpaceCacheEntry *spc;
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index ae3d18e0e74a..007a9a15d71b 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -109,7 +109,7 @@ static int oid_compare(const void *a, const void *b);
void
InitCatalogCache(void)
{
- int cacheId;
+ SysCacheIdentifier cacheId;
Assert(!CacheInitialized);
@@ -179,7 +179,7 @@ InitCatalogCache(void)
void
InitCatalogCachePhase2(void)
{
- int cacheId;
+ SysCacheIdentifier cacheId;
Assert(CacheInitialized);
@@ -205,7 +205,7 @@ InitCatalogCachePhase2(void)
* CAUTION: The tuple that is returned must NOT be freed by the caller!
*/
HeapTuple
-SearchSysCache(int cacheId,
+SearchSysCache(SysCacheIdentifier cacheId,
Datum key1,
Datum key2,
Datum key3,
@@ -217,7 +217,7 @@ SearchSysCache(int cacheId,
}
HeapTuple
-SearchSysCache1(int cacheId,
+SearchSysCache1(SysCacheIdentifier cacheId,
Datum key1)
{
Assert(cacheId >= 0 && cacheId < SysCacheSize && SysCache[cacheId]);
@@ -227,7 +227,7 @@ SearchSysCache1(int cacheId,
}
HeapTuple
-SearchSysCache2(int cacheId,
+SearchSysCache2(SysCacheIdentifier cacheId,
Datum key1, Datum key2)
{
Assert(cacheId >= 0 && cacheId < SysCacheSize && SysCache[cacheId]);
@@ -237,7 +237,7 @@ SearchSysCache2(int cacheId,
}
HeapTuple
-SearchSysCache3(int cacheId,
+SearchSysCache3(SysCacheIdentifier cacheId,
Datum key1, Datum key2, Datum key3)
{
Assert(cacheId >= 0 && cacheId < SysCacheSize && SysCache[cacheId]);
@@ -247,7 +247,7 @@ SearchSysCache3(int cacheId,
}
HeapTuple
-SearchSysCache4(int cacheId,
+SearchSysCache4(SysCacheIdentifier cacheId,
Datum key1, Datum key2, Datum key3, Datum key4)
{
Assert(cacheId >= 0 && cacheId < SysCacheSize && SysCache[cacheId]);
@@ -279,7 +279,7 @@ ReleaseSysCache(HeapTuple tuple)
* doesn't prevent the "tuple concurrently updated" error.
*/
HeapTuple
-SearchSysCacheLocked1(int cacheId,
+SearchSysCacheLocked1(SysCacheIdentifier cacheId,
Datum key1)
{
CatCache *cache = SysCache[cacheId];
@@ -371,7 +371,7 @@ SearchSysCacheLocked1(int cacheId,
* heap_freetuple() the result when done with it.
*/
HeapTuple
-SearchSysCacheCopy(int cacheId,
+SearchSysCacheCopy(SysCacheIdentifier cacheId,
Datum key1,
Datum key2,
Datum key3,
@@ -396,7 +396,7 @@ SearchSysCacheCopy(int cacheId,
* heap_freetuple().
*/
HeapTuple
-SearchSysCacheLockedCopy1(int cacheId,
+SearchSysCacheLockedCopy1(SysCacheIdentifier cacheId,
Datum key1)
{
HeapTuple tuple,
@@ -417,7 +417,7 @@ SearchSysCacheLockedCopy1(int cacheId,
* No lock is retained on the syscache entry.
*/
bool
-SearchSysCacheExists(int cacheId,
+SearchSysCacheExists(SysCacheIdentifier cacheId,
Datum key1,
Datum key2,
Datum key3,
@@ -440,7 +440,7 @@ SearchSysCacheExists(int cacheId,
* No lock is retained on the syscache entry.
*/
Oid
-GetSysCacheOid(int cacheId,
+GetSysCacheOid(SysCacheIdentifier cacheId,
AttrNumber oidcol,
Datum key1,
Datum key2,
@@ -592,7 +592,7 @@ SearchSysCacheCopyAttNum(Oid relid, int16 attnum)
* a different cache for the same catalog the tuple was fetched from.
*/
Datum
-SysCacheGetAttr(int cacheId, HeapTuple tup,
+SysCacheGetAttr(SysCacheIdentifier cacheId, HeapTuple tup,
AttrNumber attributeNumber,
bool *isNull)
{
@@ -622,7 +622,7 @@ SysCacheGetAttr(int cacheId, HeapTuple tup,
* be NULL.
*/
Datum
-SysCacheGetAttrNotNull(int cacheId, HeapTuple tup,
+SysCacheGetAttrNotNull(SysCacheIdentifier cacheId, HeapTuple tup,
AttrNumber attributeNumber)
{
bool isnull;
@@ -652,7 +652,7 @@ SysCacheGetAttrNotNull(int cacheId, HeapTuple tup,
* catcache code that need to be able to compute the hash values.
*/
uint32
-GetSysCacheHashValue(int cacheId,
+GetSysCacheHashValue(SysCacheIdentifier cacheId,
Datum key1,
Datum key2,
Datum key3,
@@ -668,7 +668,7 @@ GetSysCacheHashValue(int cacheId,
* List-search interface
*/
struct catclist *
-SearchSysCacheList(int cacheId, int nkeys,
+SearchSysCacheList(SysCacheIdentifier cacheId, int nkeys,
Datum key1, Datum key2, Datum key3)
{
if (cacheId < 0 || cacheId >= SysCacheSize || !SysCache[cacheId])
@@ -687,7 +687,7 @@ SearchSysCacheList(int cacheId, int nkeys,
* This routine is only quasi-public: it should only be used by inval.c.
*/
void
-SysCacheInvalidate(int cacheId, uint32 hashValue)
+SysCacheInvalidate(SysCacheIdentifier cacheId, uint32 hashValue)
{
if (cacheId < 0 || cacheId >= SysCacheSize)
elog(ERROR, "invalid cache ID: %d", cacheId);
diff --git a/src/backend/utils/cache/ts_cache.c b/src/backend/utils/cache/ts_cache.c
index 71e49b2b9193..744c8e71d715 100644
--- a/src/backend/utils/cache/ts_cache.c
+++ b/src/backend/utils/cache/ts_cache.c
@@ -91,7 +91,7 @@ static Oid TSCurrentConfigCache = InvalidOid;
* table address as the "arg".
*/
static void
-InvalidateTSCacheCallBack(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateTSCacheCallBack(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HTAB *hash = (HTAB *) DatumGetPointer(arg);
HASH_SEQ_STATUS status;
diff --git a/src/backend/utils/cache/typcache.c b/src/backend/utils/cache/typcache.c
index dc4b1a56414c..c721e1c28747 100644
--- a/src/backend/utils/cache/typcache.c
+++ b/src/backend/utils/cache/typcache.c
@@ -337,9 +337,9 @@ static bool multirange_element_has_hashing(TypeCacheEntry *typentry);
static bool multirange_element_has_extended_hashing(TypeCacheEntry *typentry);
static void cache_multirange_element_properties(TypeCacheEntry *typentry);
static void TypeCacheRelCallback(Datum arg, Oid relid);
-static void TypeCacheTypCallback(Datum arg, int cacheid, uint32 hashvalue);
-static void TypeCacheOpcCallback(Datum arg, int cacheid, uint32 hashvalue);
-static void TypeCacheConstrCallback(Datum arg, int cacheid, uint32 hashvalue);
+static void TypeCacheTypCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
+static void TypeCacheOpcCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
+static void TypeCacheConstrCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
static void load_enum_cache_data(TypeCacheEntry *tcache);
static EnumItem *find_enumitem(TypeCacheEnumData *enumdata, Oid arg);
static int enum_oid_cmp(const void *left, const void *right);
@@ -2512,7 +2512,7 @@ TypeCacheRelCallback(Datum arg, Oid relid)
* it as needing to be reloaded.
*/
static void
-TypeCacheTypCallback(Datum arg, int cacheid, uint32 hashvalue)
+TypeCacheTypCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS status;
TypeCacheEntry *typentry;
@@ -2569,7 +2569,7 @@ TypeCacheTypCallback(Datum arg, int cacheid, uint32 hashvalue)
* of members are not going to get cached here.
*/
static void
-TypeCacheOpcCallback(Datum arg, int cacheid, uint32 hashvalue)
+TypeCacheOpcCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS status;
TypeCacheEntry *typentry;
@@ -2607,7 +2607,7 @@ TypeCacheOpcCallback(Datum arg, int cacheid, uint32 hashvalue)
* approach to domain constraints.
*/
static void
-TypeCacheConstrCallback(Datum arg, int cacheid, uint32 hashvalue)
+TypeCacheConstrCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
TypeCacheEntry *typentry;
diff --git a/src/backend/utils/misc/superuser.c b/src/backend/utils/misc/superuser.c
index 7821624687af..10759a9a37bd 100644
--- a/src/backend/utils/misc/superuser.c
+++ b/src/backend/utils/misc/superuser.c
@@ -36,7 +36,7 @@ static Oid last_roleid = InvalidOid; /* InvalidOid == cache not valid */
static bool last_roleid_is_super = false;
static bool roleid_callback_registered = false;
-static void RoleidCallback(Datum arg, int cacheid, uint32 hashvalue);
+static void RoleidCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
/*
@@ -100,7 +100,7 @@ superuser_arg(Oid roleid)
* Syscache inval callback function
*/
static void
-RoleidCallback(Datum arg, int cacheid, uint32 hashvalue)
+RoleidCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
/* Invalidate our local cache in case role's superuserness changed */
last_roleid = InvalidOid;
diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c
index 487a1a231707..16e440715773 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -150,7 +150,7 @@ static void pgfdw_subxact_callback(SubXactEvent event,
SubTransactionId mySubid,
SubTransactionId parentSubid,
void *arg);
-static void pgfdw_inval_callback(Datum arg, int cacheid, uint32 hashvalue);
+static void pgfdw_inval_callback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue);
static void pgfdw_reject_incomplete_xact_state_change(ConnCacheEntry *entry);
static void pgfdw_reset_xact_state(ConnCacheEntry *entry, bool toplevel);
static bool pgfdw_cancel_query(PGconn *conn);
@@ -1309,7 +1309,7 @@ pgfdw_subxact_callback(SubXactEvent event, SubTransactionId mySubid,
* individual option values, but it seems too much effort for the gain.
*/
static void
-pgfdw_inval_callback(Datum arg, int cacheid, uint32 hashvalue)
+pgfdw_inval_callback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS scan;
ConnCacheEntry *entry;
diff --git a/contrib/postgres_fdw/shippable.c b/contrib/postgres_fdw/shippable.c
index d32d3d0e4616..e07eadd36300 100644
--- a/contrib/postgres_fdw/shippable.c
+++ b/contrib/postgres_fdw/shippable.c
@@ -62,7 +62,7 @@ typedef struct
* made for them, however.
*/
static void
-InvalidateShippableCacheCallback(Datum arg, int cacheid, uint32 hashvalue)
+InvalidateShippableCacheCallback(Datum arg, SysCacheIdentifier cacheid, uint32 hashvalue)
{
HASH_SEQ_STATUS status;
ShippableCacheEntry *entry;
--
2.53.0