Re: making EXPLAIN extensible

Sami Imseih <samimseih@gmail.com>

From: Sami Imseih <samimseih@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Jeff Davis <pgsql@j-davis.com>, Thom Brown <thom@linux.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-19T17:41:36Z
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.

Attachments

> On Wed, Mar 19, 2025 at 11:38 AM Sami Imseih <samimseih@gmail.com> wrote:
> > ... as I made the hook signature match that of
> > ParseExplainOptionList, so both pstate and the options list
> > are now available to the hook.
>
> This version LGTM, except it's not pgindent-clean.

ugh, sorry about that. ran it for both modified files and it found one
indentation correction from v2.

> index 1d4be3c18ac..8fe1ca5c73e 100644
38c38
< +        (*explain_validate_options_hook) (es, options, pstate);
---
> +        (*explain_validate_options_hook)(es, options, pstate);
59c59
< 2.47.1

v3 attached.


--
Sami Imseih
Amazon Web Services (AWS)