From 54ed8c93b392aeb8a86b7612853554d46948f3d0 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Wed, 13 Aug 2025 20:00:30 +0900 Subject: [PATCH v5 09/15] Add catcache support for OID8OID This is required to be able to do catalog cache lookups of oid8 fields for toast values of the same type. --- src/backend/utils/cache/catcache.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index e2cd3feaf81d..fee2e67c7830 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -240,6 +240,18 @@ int4hashfast(Datum datum) return murmurhash32((int32) DatumGetInt32(datum)); } +static bool +oid8eqfast(Datum a, Datum b) +{ + return DatumGetObjectId8(a) == DatumGetObjectId8(b); +} + +static uint32 +oid8hashfast(Datum datum) +{ + return murmurhash64(DatumGetObjectId8(datum)); +} + static bool texteqfast(Datum a, Datum b) { @@ -300,6 +312,11 @@ GetCCHashEqFuncs(Oid keytype, CCHashFN *hashfunc, RegProcedure *eqfunc, CCFastEq *fasteqfunc = int4eqfast; *eqfunc = F_INT4EQ; break; + case OID8OID: + *hashfunc = oid8hashfast; + *fasteqfunc = oid8eqfast; + *eqfunc = F_OID8EQ; + break; case TEXTOID: *hashfunc = texthashfast; *fasteqfunc = texteqfast; -- 2.50.0