Re: making EXPLAIN extensible
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Sami Imseih <samimseih@gmail.com>
Cc: Andrei Lepikhov <lepihov@gmail.com>, Robert Haas <robertmhaas@gmail.com>,
Jeff Davis <pgsql@j-davis.com>, Thom Brown <thom@linux.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-19T21:10:32Z
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
Sami Imseih <samimseih@gmail.com> writes: >> It would be better to add the parameter "type: EXPLAIN_ONLY | >> ANALYZE_ONLY | BOTH" to the RegisterExtensionExplainOption() routine. >> This value will be saved inside the ExplainExtensionOption structure and >> processed by the core inside the ParseExplainOptionList. > hmm, IIUC, what you are describing is flag that will be limited to > only check if an option can be used with EXPLAIN_ONLY, ANALYZE_ONLY > or both. But what about if I have a case to check against between other > extension options? let's say ExtensionAOptionA and ExtensionAoptionB. > How would that work with the way you are suggesting? More generally, I think that's quite a constricted view of what sorts of checks an extension might need to make. As an example, suppose an extension's option conflicts with "GENERIC_PLAN on" for some reason (perhaps it wants to modify the plan). I think the current hook proposal is fine. It leaves all the validation work to be done by the extension(s), sure, but the amount of code required to handle that one case is tiny, and the door is left open to handle cases we didn't foresee. regards, tom lane