From: Michael Paquier Date: Tue, 17 Feb 2026 23:47:58 +0000 (+0900) Subject: Fix one-off issue with cache ID in objectaddress.c X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7df12a66cc90ed12d24edba31eeedfb546ef14c;p=thirdparty%2Fpostgresql.git Fix one-off issue with cache ID in objectaddress.c get_catalog_object_by_oid_extended() has been doing a syscache lookup when given a cache ID strictly higher than 0, which is wrong because the first valid value of SysCacheIdentifier is 0. This issue had no consequences, as the first value assigned in the enum SysCacheIdentifier is AGGFNOID, which is not used in the object type properties listed in objectaddress.c. Even if an ID of 0 was hypotherically given, the code would still work with a less efficient heap-or-index scan. Discussion: https://postgr.es/m/aZTr_R6JGmqokUBb@paquier.xyz --- diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c index 02af64b82c6..198caf641a5 100644 --- a/src/backend/catalog/objectaddress.c +++ b/src/backend/catalog/objectaddress.c @@ -2808,7 +2808,7 @@ get_catalog_object_by_oid_extended(Relation catalog, Oid classId = RelationGetRelid(catalog); int oidCacheId = get_object_catcache_oid(classId); - if (oidCacheId > 0) + if (oidCacheId >= 0) { if (locktup) tuple = SearchSysCacheLockedCopy1(oidCacheId,