Re: making EXPLAIN extensible

Tom Lane <tgl@sss.pgh.pa.us>

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

Robert Haas <robertmhaas@gmail.com> writes:
> Here's v6, doing it that way. I found that the simplest thing to do
> was just push the call to GetExplainExtensionId() inside
> Get/SetExplainExtensionState().

Fair enough.

> Tom, what do you think?

The header comments for explain_state.c could use a spellcheck.
I noticed s/offests/offsets/ and s/direcrtly/directly/.
Other than that, I think 0001 and 0002 are good to go.
I've still not looked at 0003.

			regards, tom lane