Re: Expanding HOT updates for expression and partial indexes

From: "Greg Burd" <greg(at)burd(dot)me>
To: "Jeff Davis" <pgsql(at)j-davis(dot)com>, "Nathan Bossart" <nathandbossart(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Expanding HOT updates for expression and partial indexes
Date: 2026-03-16 20:51:31
Message-ID: 427bfbda-c901-49e4-b725-8ddc41bec23d@app.fastmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On Mon, Mar 16, 2026, at 4:01 PM, Jeff Davis wrote:
> On Mon, 2026-03-16 at 14:35 -0400, Greg Burd wrote:
>> Now I want to rename ExecGetAllUpdatedCols() to
>> ExecUpdateTargetedCols(), maybe I will.  And while I'm at it I'll
>> change the single non-trigger use case in index_unchanged_by_update()
>> to my new ExecUpdateTargetedCols() function which better matches that
>> use anyway.
>
> Does this mean a new bitmap of "actually changed values" that's a
> subset of targeted columns?

No, I'd been thinking of targeted columns *and* any other columns we can identify as modified.

> If so it feels like quite a few bitmaps and we might need to expand
> some comments to explain the subtle meanings of each, and when they are
> valid, and what kinds of false positives they might contain (hopefully
> none have false negatives).

I agree, and also this commit has garnered too much attention relative to the important changes that come after it.

> Also, the "actually changed values" is only valid for a single tuple,
> and it would be good to clarify that and make sure there's not a lot of
> room for confusion there.

Yes, that's true... too much confusion and not enough juice for the squeeze. I'm dropping that.

> Regards,
> Jeff Davis

So, attached is v36 with the:

0001 - New hot_updates.sql tests, important for future commits but can be skipped for now.
0002 - Move HeapDetermineColumnsInfo() to executor

best.

-greg

Attachment Content-Type Size
v36-0001-Add-tests-to-cover-a-variety-of-heap-HOT-update-.patch text/x-patch 45.3 KB
v36-0002-Identify-modified-indexed-attributes-in-the-exec.patch text/x-patch 61.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Daniil Davydov 2026-03-16 20:54:43 Re: POC: Parallel processing of indexes in autovacuum
Previous Message Robert Haas 2026-03-16 20:51:09 Re: pg_plan_advice