| From: | Denis Smirnov <darthunix(at)gmail(dot)com> |
|---|---|
| To: | Amit Langote <amitlangote09(at)gmail(dot)com> |
| Cc: | Junwang Zhao <zhjwpku(at)gmail(dot)com>, cca5507 <cca5507(at)qq(dot)com>, Daniil Davydov <3danissimo(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Tomas Vondra <tomas(at)vondra(dot)me> |
| Subject: | Re: Batching in executor |
| Date: | 2026-07-17 04:17:26 |
| Message-ID: | 80692DF4-04F0-4292-8AF0-E13D5E13CE74@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
Attached is v3 of the two-patch heap-local batching series. The
series is still based on master at 1c4b1de8885.
Changes since v2:
- heap_page_batch_next() now verifies that the stored offsets, tuple
count, current position, and buffer still belong to the current heap
scan. This prevents a stale batch from being reused when a compatible
buffer slot is used by another scan or survives a rescan.
- Batch qual evaluation now enters the function-usage accounting code
only when track_functions requires it. Per-call accounting is still
preserved when function tracking is enabled.
- Consecutive supported quals referencing the same attribute now reuse
the already collected Datum values for rows remaining in the mask.
- prepare_batch_qual() now has one outer loop over quals, while retaining
the unmasked hot path for the first qual.
These changes do not alter the external interfaces or the set of
supported expressions.
Best regards,
Denis Smirnov
| Attachment | Content-Type | Size |
|---|---|---|
| v3-0001-Avoid-repeated-heapgettup_pagemode-calls-within-a.patch | application/octet-stream | 7.9 KB |
| v3-0002-Evaluate-SeqScan-quals-in-heap-page-batches.patch | application/octet-stream | 30.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Smith | 2026-07-17 04:19:53 | Re: Support EXCEPT for TABLES IN SCHEMA publications |
| Previous Message | Peter Smith | 2026-07-17 04:10:44 | A new C function `get_partition_root`. |