From f7df12a66cc90ed12d24edba31eeedfb546ef14c Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Wed, 18 Feb 2026 08:47:58 +0900 Subject: [PATCH] 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 --- src/backend/catalog/objectaddress.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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,