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-05T21:00:21Z
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
Robert Haas <robertmhaas@gmail.com> writes: > On Wed, Mar 5, 2025 at 1:53 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> I'm quite confused by the #include additions in auto_explain.c and >> file_fdw.c, and I strongly object to the ones in explain_state.h. >> Surely those are unnecessary? > They are necessary but they should have been part of 0001. Ah. I was mistakenly assuming that 0001 would compile on its own ;-) > Because > 0001 moves the definition of ExplainState to explain_state.h, files > that need to access to the members of that structure now need to > include that header file. As for the includes in explain_state.h, it > needs definitions for DefElem, ParseState, and PlannedStmt. Got it. So does that mean we can remove any #include's from explain.h after moving the struct definition? regards, tom lane