Re: Batching in executor

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

In response to

Browse pgsql-hackers by date

  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`.