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 1vs8rZ-007no3-1J for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Feb 2026 00:22:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vs8rY-006ra4-0O for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Feb 2026 00:22:48 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vs8rX-006rZw-1j for pgsql-hackers@lists.postgresql.org; Tue, 17 Feb 2026 00:22:47 +0000 Received: from mail-dy1-x1334.google.com ([2607:f8b0:4864:20::1334]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vs8rV-000000016j7-0WtY for pgsql-hackers@postgresql.org; Tue, 17 Feb 2026 00:22:47 +0000 Received: by mail-dy1-x1334.google.com with SMTP id 5a478bee46e88-2ba9c484e5eso3479124eec.1 for ; Mon, 16 Feb 2026 16:22:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; t=1771287762; x=1771892562; darn=postgresql.org; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=5d15ImXzHbbO9xnFU6K3H3Y4G5s1X/rBaBUcx8bf17k=; b=ZgPewDHbavncxeSGOBc/K2wZIE0fEZkLAwix9Zr9OP2CjokkwzSZlfOUeS+bxESjZC gq2lEQ4NqvS33q0WaI2jTwVS02ErVg3BzLks1vdkdF29cjJ/PRuSQ41JlvKwtfjMMeJE c+ApfsM9Hmsp8o8o24UIkS1Qw2Sv00ZoiQDbY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771287762; x=1771892562; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=5d15ImXzHbbO9xnFU6K3H3Y4G5s1X/rBaBUcx8bf17k=; b=OQSx247rWjQ1YUIhttNAGPfIyBVIiFxXgHCj8FqUYS7/qMl4I9UOlOFNocR4wemsIx 9fvrufzWutTU+60k0R6nAsR++By0Nuk0Jly12jnM3MaCktBXlvuLNVvC5wwuj57j31E9 OKskmFU1KFniyJ+eRjKpKXEAiCv9srJtOLwIWgGMInM6Fj4lydEVnzD0QHNvGgNjzrHq AwvKByMD7tzuQV147HQqaBR1vpkj0yZygGGY8usn4C/NzYvAXp1zON6X/nMh+k5PkuHJ IxkJaMK0qeELeqNqq21xvgLBcDj/UkRv6obWO6gLwkRlWBW3XyTYd6LfwRvn58X6eTFS xMdg== X-Forwarded-Encrypted: i=1; AJvYcCXSVEago2URFNK/tCodH6IdEugo8H4bmXznUBQyeWLEsNeJwoGVVsmImYDombYeBxaZ8lBtkOFqy6GDekFF@postgresql.org X-Gm-Message-State: AOJu0YyBZhpTM/Yy0RAlkaNbevSUeDVNv8VC9CJ6alhJGt2LoMWerMWU 3s2kc6/aNCZaHBN+7GwF/V1rBtwdw3YkD8sHQ3+fOOHHs4ruL0FEgypMIOUCU0P6Zw== X-Gm-Gg: AZuq6aJuRvMIAwYQ/53yu6s3GOFsmcjFlDKtM7ZZV5l364UvQbl19Dguy5EVxYwLvYi cRYCjOM6C66JY2swGFjeHG3dxxsyGNe0GmDwrd4nmyqxBiGFBnhAi/cb8l3ZAK8b/Y54coeTKH9 es+M24bWV2qtK6NpJKuDhzD0Fxl3MVHc/d0yKr8ub4cffGLhy8MGo7foD2WBNOsA8XQ4b134qcN a350ZPyYPGlvnc55JcuEulS2aw48Psw7uTglBJSPpHxbipFCfQ35Tzq58wNIE4Ge5vYjmkxxG6c erhe0ZPkAiQyUFy9Q0C3l5LOr4ff4wIKukLCFC0GpRWgumSUlPbqgVqJ+8GfWupAavweaAfKUDK 2hFBbzC90s+hoTkef25dJxfXUHa2rCpLnrBcurUm5/UviZ+HGEQ5c/MPjcL8lXhW+wRGZFVn4ek VdFrGoIlOUbd98+NHhSqujj+kPSQqb5nzw9hoXvdN1Gdj8yH+uk2AELr8= X-Received: by 2002:a05:7301:1297:b0:2ba:6b3a:7696 with SMTP id 5a478bee46e88-2bac933a786mr3104940eec.8.1771287762328; Mon, 16 Feb 2026 16:22:42 -0800 (PST) Received: from microsoft.com (c-73-15-160-255.hsd1.ca.comcast.net. [73.15.160.255]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2bacb543e1dsm11922518eec.4.2026.02.16.16.22.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Feb 2026 16:22:41 -0800 (PST) Date: Mon, 16 Feb 2026 16:22:39 -0800 From: Noah Misch To: Peter Eisentraut Cc: Mark Dilger , Nitin Motiani , Andres Freund , pgsql-hackers@postgresql.org Subject: Re: Inval reliability, especially for inplace updates Message-ID: <20260217002239.08.noahmisch@microsoft.com> References: <20241013004511.9c.nmisch@google.com> <20241024025357.a8.nmisch@google.com> <20260121174720.71.noahmisch@microsoft.com> <20260122174250.bf@rfd.leadboat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/2.2.12 (2023-09-09) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Mon, Feb 16, 2026 at 08:52:42PM +0100, Peter Eisentraut wrote: > On 22.01.26 18:42, Noah Misch wrote: > > On Thu, Jan 22, 2026 at 07:53:21AM -0800, Mark Dilger wrote: > > > On Wed, Jan 21, 2026 at 9:47 AM Noah Misch wrote: > > > > Based on your experience, I probably should encourage packagers to do an > > > > early check of the packages they build, especially if they build tableam > > > > modules not found in PGXN. How do you see it? > > > > > > I don't know what you mean by "early". 18.2 hasn't stamped yet. 18.1 > > > doesn't have the change. So, I'd say that I'm building pretty early, and I > > > noticed the change will be coming in 18.2. > > > > I'll probably say: > > > > If you've tested your packaging builds against REL_17_STABLE and > > REL_18_STABLE since 2025-12-16 *or* you package only modules present in > > PGXN, you can stop reading. > > > > Mark Dilger reported non-PGXN tableam modules that needed changes to cope > > with back-patched signature changes in functions > > CacheInvalidateHeapTupleInplace() (commit 06b030e) and > > PrepareToInvalidateCacheTuple() (commit 2e58802). Consider trying a rebuild > > against REL_17_STABLE and REL_18_STABLE now, so you learn about any similar > > need for changes in your modules. > > It has been requested to revert these, because they are an ABI and API > break, and they are unnecessary in the backbranches. Could we do this > please? The old API version was in 18.0 and 18.1 only. The new one is in 18.2, 17.8, 16.12, 15.16, and 14.21. How does your risk calculation weigh that? Let's talk about what you and others are seeing, in much more detail. > > > Oh, I don't mean to question the overall purpose of the patch. I was > > > questioning whether it needed to have breaking changes which are mere "code > > > cleanup". The change to CacheInvalidateHeapTupleInplace to remove the > > > unused third argument seemed inappropriate for backpatching, so I spoke up > > > before 18.2 is stamped. Doing this one piece of code cleanup in the back > > > branches will cause a lot of packaging pain for no real benefit. > > > > Is the source code for one of these modules published? I'm not picturing how > > a module could need a CacheInvalidateHeapTupleInplace() call, so your code may > > illuminate that for me. > > > > If you upload one of these modules to PGXN, my scans before future ABI breaks > > will find its calls and will block avoidable ABI breaks like the > > CacheInvalidateHeapTupleInplace() one. > > Since the heap AM calls this, it doesn't seem surprising that another table > AM would call it too. That is not the case. Inplace updates are not part of the table AM API. Since the system catalogs use heap, heap offers inplace updates. Where code performs heap inplace updates, heap function names appear verbatim.