Re: [PATCH] Add RetrieveInstrumentation hook for CustomScan providers
Siddharth Kothari <sidkot@google.com>
From: Siddharth Kothari <sidkot@google.com>
To: pgsql-hackers@lists.postgresql.org
Cc: Vaibhav Jain <jainva@google.com>, Madhukar <madhukarprasad@google.com>
Date: 2026-04-08T05:27:16Z
Lists: pgsql-hackers
Hi everyone, I’m just checking in to see if anyone has had a chance to look at this or if there’s any further information I should provide to help with the review. I have also added the patch to PG20-1 CF queue, the link is https://commitfest.postgresql.org/patch/6524/. Thanks, Siddharth On Wed, Feb 18, 2026 at 3:09 PM Siddharth Kothari <sidkot@google.com> wrote: > Dear PostgreSQL Hackers, > > This email proposes a patch to enhance the CustomScan provider interface. > The patch file, > 0001-Add-RetrieveInstrumentationCustomScan-hook-for-Custo.patch, is > attached. > > *Problem:* > > CustomScan providers currently lack a standard method to aggregate > instrumentation data from parallel workers back to the leader process > before the Dynamic Shared Memory (DSM) segment is unlinked. This makes it > difficult to gather comprehensive performance metrics from parallelized > custom scans. > > *Solution:* > > This patch introduces a new optional hook, > RetrieveInstrumentationCustomScan, to the CustomExecMethods struct. This > hook allows custom scan providers to implement logic to collect and > consolidate instrumentation from shared memory or worker states during the > parallel query cleanup phase. This hook is invoked via the new > ExecCustomScanRetrieveInstrumentation function, called from > ExecParallelRetrieveInstrumentation for T_CustomScanState nodes. Since > the hook is optional (checked for NULL before calling), it maintains full > backward compatibility. > > *Testing & Compatibility:* > > - The patch compiles and passes all core regression tests (make > check-world) on my x86_64 instance. > - The changes are not platform-specific. > - Regression Tests: This patch provides a new *capability* for custom > scan providers. Since the hook's functionality is only realized when > implemented by an extension, specific tests would naturally reside within > that extension rather than in the core regression suite. > > This patch does not directly address a specific item on the official TODO > list but enhances the extensibility framework. > > I believe this patch is complete and ready for review. I look forward to > any feedback and am happy to make revisions. I will also add this patch to > the next CommitFest. > > Thank you, > > Siddharth Kothari >
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add EXPLAIN (IO) instrumentation for SeqScan
- 3b1117d6e2e4 19 (unreleased) cited
-
Allocate separate DSM chunk for parallel Index[Only]Scan instrumentation
- dd78e69cfc33 19 (unreleased) cited