| From: | "Greg Burd" <greg(at)burd(dot)me> |
|---|---|
| To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Cc: | "Jeff Davis" <pgsql(at)j-davis(dot)com> |
| Subject: | Re: Expanding HOT updates for expression and partial indexes |
| Date: | 2026-02-23 19:23:39 |
| Message-ID: | bce13827-5f98-4d79-b779-ac5fff2b7668@app.fastmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello.
Attached is a new patch set that fixes a few issues identified in the last set.
0001 - creates a new way to identify the set of attributes both modified by the update and referenced by one or more indexes on the target relation being updated. This patch keeps the HeapDetermineColumnsInfo() path within heap_update() for calls from simple_heap_update() when modified_attrs_valid is set to false. I'm not a huge fan of this, but it does serve as a way to illustrate a minimal set of changes easing review a bit.
0002 - splits out the top portion of heap_update() into both heapam_tuple_update() and simple_heap_update(), adds a few helper functions and tries to reduce repeated code. The goal here was to remove some of the mess related to the various bitmaps used to make decisions during the update.
Performance tests so far haven't shown a regression of note for this set of changes.
I'm still working on:
a) cleaning this up a bit more
b) create ExecCheckUpdateRequiresReplicaId() in executor
c) look for a way to cleanly pass/maintain per-table AM state during update
d) root cause for difference in tests
e) look into UPDATE WHERE > 1 row performance
best.
-greg
| Attachment | Content-Type | Size |
|---|---|---|
| v20260226-0001-Idenfity-modified-indexed-attributes-in-th.patch | text/x-patch | 29.7 KB |
| v20260226-0002-Refactor-heap_update-and-move-attribute-de.patch | text/x-patch | 61.6 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Geoghegan | 2026-02-23 19:27:07 | Re: Don't synchronously wait for already-in-progress IO in read stream |
| Previous Message | Jacob Champion | 2026-02-23 19:22:22 | Re: Add ssl_(supported|shared)_groups to sslinfo |