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-19T15:38:26Z
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 →
-
pg_overexplain: Use PG_MODULE_MAGIC_EXT.
- 83ccc85859f3 18.0 landed
-
pg_overexplain: Call previous hooks as appropriate.
- 9f0c36aea0fb 18.0 landed
-
pg_overexplain: Additional EXPLAIN options for debugging.
- 8d5ceb113e3f 18.0 landed
-
Add an additional hook for EXPLAIN option validation.
- 50ba65e73325 18.0 landed
-
Add some new hooks so extensions can add details to EXPLAIN.
- 4fd02bf7cf94 18.0 landed
-
Make it possible for loadable modules to add EXPLAIN options.
- c65bc2e1d14a 18.0 landed
Attachments
- v2-0001-Add-new-hooks-for-performing-additional-EXPLAIN-o.patch (application/octet-stream) patch v2-0001
> On Tue, Mar 18, 2025 at 11:21 PM Sami Imseih <samimseih@gmail.com> wrote: > > > > Do you want to propose a patch? > > > > > > yes, will attach a patch shortly. > > > > Attached is a patch to add a hook to allow extensions > > to add additional option validations. The hook takes > > in the ExplainState as an argument and returns void. > > It is expected the extension will raise an error if the > > validation fails. > > Since the new hook will be called from explain_state.c, please declare > it in explain_state.h. done > I think the header-file comment should be just one line rather than a > block comment as we do for other hooks in this area. If you think a > more detailed explanation is needed, I'd put that in the .c file. on second thought, no reason for the detailed explanation... > Is there any value in passing "options" or "pstate" to the hook? > Couldn't the hook want to use "pstate" for error reporting purposes? ... as I made the hook signature match that of ParseExplainOptionList, so both pstate and the options list are now available to the hook. -- Sami Imseih Amazon Web Services (AWS)