Re: Expanding HOT updates for expression and partial indexes

From: "Greg Burd" <greg(at)burd(dot)me>
To: "Nathan Bossart" <nathandbossart(at)gmail(dot)com>
Cc: "Jeff Davis" <pgsql(at)j-davis(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Expanding HOT updates for expression and partial indexes
Date: 2026-03-16 18:37:32
Message-ID: 63ca7c87-f511-4ce7-8f1f-6edd53a72c43@app.fastmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On Mon, Mar 16, 2026, at 1:29 PM, Nathan Bossart wrote:
> On Mon, Mar 16, 2026 at 12:23:04PM -0400, Greg Burd wrote:
>> On Sun, Mar 15, 2026, at 5:11 PM, Jeff Davis wrote:
>>> Why do extra work in ExecBRUpdateTriggers() to eliminate the false
>>> negative case if we don't rely on it anyway? If we do need to rely on
>>> it in subsequent patches, then we need to be sure, right?
>>
>> [...]
>>
>> What do we "need to be sure" of? That ExecGetAllUpdatedCols() not really
>> contains all attributes that its name implies? I think it now does that
>> after 0002, do you disagree?
>
> I'm admittedly still digging into the details, but the main question on my
> mind is whether there are other cases lurking that our in-tree tests aren't
> catching or that only exist in extensions. Will there be some sort of
> check or assertion to catch those?

Hey Nathan,

I think based on Jeff's questions I'm going to side-step this a bit with a new function ExecUpdateTargetedCols(). Hopefully I can have an assert in there that double checks the assumption and validates the contract.

> --
> nathan

-greg

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Matt Blewitt 2026-03-16 18:48:41 Re: [PATCH] Fix JSON_SERIALIZE() coercion placeholder type for jsonb input
Previous Message Greg Burd 2026-03-16 18:35:50 Re: Expanding HOT updates for expression and partial indexes