Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vsGKB-00DXWl-2j for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Feb 2026 08:20:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vsGKA-009CoW-1l for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Feb 2026 08:20:50 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vsGKA-009CoN-0r for pgsql-hackers@lists.postgresql.org; Tue, 17 Feb 2026 08:20:50 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vsGK7-000000011jY-23rp for pgsql-hackers@lists.postgresql.org; Tue, 17 Feb 2026 08:20:49 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id 9E9F752C8F4 for ; Tue, 17 Feb 2026 09:20:45 +0100 (CET) Received: from s934.loopia.se (unknown [172.22.191.6]) by s807.loopia.se (Postfix) with ESMTP id 8AFF152D620; Tue, 17 Feb 2026 09:20:45 +0100 (CET) Received: from s473.loopia.se (unknown [172.22.191.6]) by s934.loopia.se (Postfix) with ESMTP id 869747CE902; Tue, 17 Feb 2026 09:20:45 +0100 (CET) X-Virus-Scanned: amavisd-new at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.2 X-Spam-Level: X-Spam-Status: No, score=-1.2 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1] autolearn=disabled Authentication-Results: s473.loopia.se (amavisd-new); dkim=pass (2048-bit key) header.d=proxel.se Received: from s899.loopia.se ([172.22.191.5]) by s473.loopia.se (s473.loopia.se [172.22.190.13]) (amavisd-new, port 10024) with UTF8LMTP id yF4-3bnz0b1q; Tue, 17 Feb 2026 09:20:45 +0100 (CET) X-Loopia-Auth: user X-Loopia-User: andreas@proxel.se X-Loopia-Originating-IP: 147.28.75.140 Received: from [192.168.0.121] (customer-147-28-75-140.stosn.net [147.28.75.140]) (Authenticated sender: andreas@proxel.se) by s899.loopia.se (Postfix) with ESMTPSA id EF97B2C8BAB8; Tue, 17 Feb 2026 09:20:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1771316445; bh=k4eqqQtBnxi9nVEuPk6HDePJNRuKfEF6DoYsg/9PERU=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=JOxSHwl2lXErtHOoOXXzfUcJXWJm6QivKrDBTeI8umRXWVogvppphpM2fM/lOZWj/ dAOKeumQmrkK0WAvPnlaVnnB2kAaRuy+l5PmYaKwSnDFeVBvojCwN/ZYHIyKsZq8MU Fd6pP/ziNENRC/F9Xe5ulL5pexUf73QSHwiKDLw8jJg8yrVEGTiz6A2zWkXmlIGydQ aefWFu8IyAlX/ypvr8Bt3WTosY9JtFm6pNthmsgxXSp8ZMWrEvCGBK7vdS/Xoqf1LF xq5BxCz0jg+GhNCZXT5/fIIAy2umsZfgPhUUlhnYMdbzcor5g9RUIgtC2GJq0qa+2j cZgz7x+6CFWKA== Message-ID: <4be75b7d-587f-4217-b0ed-396949d90b43@proxel.se> Date: Tue, 17 Feb 2026 09:20:44 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Our ABI diff infrastructure ignores enum SysCacheIdentifier To: Michael Paquier Cc: Tom Lane , pgsql-hackers@lists.postgresql.org References: <289125.1770913057@sss.pgh.pa.us> <4653b0bf-5642-44f1-b059-7cc1db861da7@proxel.se> <1b901fbf-655d-434c-aff4-ee06313d31cd@proxel.se> From: Andreas Karlsson Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 2/17/26 7:58 AM, Michael Paquier wrote: > On Mon, Feb 16, 2026 at 04:47:24PM +0900, Michael Paquier wrote: >> The blast looks acceptable with inval.c in sight. What's less >> acceptable is the set of failures generated, like: >> #3 0x00000000019e7ac4 in ExceptionalCondition >> (conditionName=0x1e31ff0 "cacheId >= 0 && cacheId < SysCacheSize && >> SysCache[cacheId]", fileName=0x1e31e80 "syscache.c", >> lineNumber=223) at assert.c:65 >> #4 0x00000000019d277e in SearchSysCache1 (cacheId=4294967295, >> key1=16778) at syscache.c:223 > > The issue here is that we have three code paths that are perfectly OK > with dealing in negative syscache ID values: > - DropObjectById()@dependency.c > - AlterObjectRename_internal()@alter.c > - AlterObjectNamespace_internal()@alter.c > > The best path moving forward on this one that I can think of in > objectaddress.c would be to add an extra "invalid" value in the enum > of SysCacheIdentifier and attach that to the ObjectProperty that we > can use to mark when we don't have an ID assigned. That would have > the advantage to self-document the behavior that we don't have a > syscache entry at all when using this invalid ID. > > What do you think about the updated version attached? Yeah, that looks like a quite nice improvement. My only comment is that if it was me I would have split it into two patches, one introducing the invalid and one replacing int. But you are much more familiar than me with what granularity of commits the project prefers Andreas