Re: making EXPLAIN extensible

Andrei Lepikhov <lepihov@gmail.com>

From: Andrei Lepikhov <lepihov@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Sami Imseih <samimseih@gmail.com>, Jeff Davis <pgsql@j-davis.com>, Thom Brown <thom@linux.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2025-05-03T18:44:43Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. pg_overexplain: Use PG_MODULE_MAGIC_EXT.

  2. pg_overexplain: Call previous hooks as appropriate.

  3. pg_overexplain: Additional EXPLAIN options for debugging.

  4. Add an additional hook for EXPLAIN option validation.

  5. Add some new hooks so extensions can add details to EXPLAIN.

  6. Make it possible for loadable modules to add EXPLAIN options.

On 28/3/2025 14:09, Robert Haas wrote:
> On Thu, Mar 27, 2025 at 5:34 PM Andrei Lepikhov <lepihov@gmail.com> wrote:
>> I’m afraid to sound like a bore, but I think pg_overexplain should
>> include a call into the hook call chain (see attachment). Who knows,
>> maybe this extension will be used someday in production?
> 
> Oh, bother, that was a silly mistake on my part. Thanks, committed.
I have one additional proposal.

I currently use this interface and have noticed that the parameter 
`option_name` in the RegisterExtensionExplainOption routine is 
case-sensitive. Since SQL treats our extended options as 
case-insensitive, it would be beneficial to either add a comment 
clarifying this behavior or forcedly convert incoming text constant to 
lowercase.

-- 
regards, Andrei Lepikhov