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 1viyhu-002uNy-39 for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Jan 2026 17:42:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1viyht-00E2N2-2Y for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Jan 2026 17:42:58 +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 1viyht-00E2Ms-1b for pgsql-hackers@lists.postgresql.org; Thu, 22 Jan 2026 17:42:57 +0000 Received: from mail-dy1-x1331.google.com ([2607:f8b0:4864:20::1331]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1viyhr-001wQs-1v for pgsql-hackers@postgresql.org; Thu, 22 Jan 2026 17:42:57 +0000 Received: by mail-dy1-x1331.google.com with SMTP id 5a478bee46e88-2b729f4c154so1564150eec.0 for ; Thu, 22 Jan 2026 09:42:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; t=1769103773; x=1769708573; 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=op1JfUJBFUwEt7kgaLMIlCVYrXcbih+fWFa5r2xVVmo=; b=JdUd/hmm6c9Fqqfkzoor2xpa5rZXQCIEUcMHOMiDTXdoQRb6MbQ9yeAAIHY7WBPsQL OczNgqE9XbWM3MF4IjVfDbmMySya5J7BgatW0RJk6kR6899d+QLzl+/HA2B5lB+ceytJ sDcVJBMLO6lIJNBaQB5+pI4cZyW4uVA3aN8DI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769103773; x=1769708573; 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=op1JfUJBFUwEt7kgaLMIlCVYrXcbih+fWFa5r2xVVmo=; b=pK1qngsRSzJrUEAQQhjER/cZtqvGTqO2T8etiWHyDWqCGdLc4eg4789QYSVDEqbRLb rjFIvSOWDh03yS0PuZ8WcDH93m1SV2wB/bhbK/qHRYlKZFctBvyKhzZnBIMQsMJeTNQk ka3h2M6g099pbWW+GDrucS0qkIimEVzsOHpsRP2M6UJaJAl3V5m7kvXmTXWoI9OZYGTT 3mb+qlYPRnMJRJR/LeClSRzu8jLeF6O1Ptz6Tq7dl9/HlEKB1E5KxyaZjYbdtJisUd31 velhOQCcGUEz0Itr1ozCXzW+Uq17rzkxVV8g4ZRysuGt2KPE92+rmtpg0OM1Kc4ABcMY 78Ew== X-Forwarded-Encrypted: i=1; AJvYcCX0SUUP3y/UPrvviqx601Tm20x0g8TKEbAdNAYb6/Jro7qniUbOJL7hr8dLt/4XpLB+8dkbVkZywdJokrzJ@postgresql.org X-Gm-Message-State: AOJu0YyL/ZGvfzHIz785VU5B7N5zALHWYjliWuU8qSyHh/1OMMiFSDds IyatvagaGfoQfA5azAB0hFkNQNL6MbaXt021gWcRKfbIqj9rWvpp9/TEAfFtw1vDXA== X-Gm-Gg: AZuq6aI35zElcWH/Wiha9krM/eEW0kQxiuzJsi7pHgeBVDryqMuq6ZqvEVjbhfEMsqb OuhzVDPf5HL0uwTBNEZNi8Uuv0LZnxi9My6vmTY5UgYxmfkaQRdayfz8rk74Gf1FURhEAVPrrVJ aN2YlkvB/DbttCSkKUkkChtaPE+qCqvMn0Mn8DhsHL87ZsywSxWpx6lNKmtEulyYz9wKM8CRWV+ djlpFnT2pEjntZ5pu3dTNtliP3BKSYZJRrIb8M/i5Of4GPHzjDdivijq7graiGJnm+Tv0qy7BcP qyY5BoAWlrhN+mGTTRnv/kY5xK78FHGij/s/i8O7xTY0J6ic93HOUjcQfgA1T4uS2b5YsVpfZ/z clJ2BtEMHU6zeKqXRk+oU+ASK1bFdyY6LD26/313OO2n+4lcSw8PddGh5VxXewfXB2+4A8Da9xD Pxp3gGadU2ZwfOwdcnYdEK21VOlM/wmAAo2FidAB3Ue451aZs= X-Received: by 2002:a05:7301:fa87:b0:2b7:f7f:69c with SMTP id 5a478bee46e88-2b739badce1mr78520eec.32.1769103772642; Thu, 22 Jan 2026 09:42:52 -0800 (PST) Received: from rfd.leadboat.com (c-73-15-160-255.hsd1.ca.comcast.net. [73.15.160.255]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b6b36550dfsm26781480eec.25.2026.01.22.09.42.51 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Jan 2026 09:42:52 -0800 (PST) Date: Thu, 22 Jan 2026 09:42:50 -0800 From: Noah Misch To: Mark Dilger Cc: Nitin Motiani , Andres Freund , pgsql-hackers@postgresql.org Subject: Re: Inval reliability, especially for inplace updates Message-ID: <20260122174250.bf@rfd.leadboat.com> References: <20240831010711.67.nmisch@google.com> <20240930193350.04.nmisch@google.com> <20241013004511.9c.nmisch@google.com> <20241024025357.a8.nmisch@google.com> <20260121174720.71.noahmisch@microsoft.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 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. > 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.