Re: making EXPLAIN extensible
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Pavel Luzanov <p.luzanov@postgrespro.ru>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2025-03-28T13:28: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 →
-
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
On Fri, Mar 28, 2025 at 5:39 AM Pavel Luzanov <p.luzanov@postgrespro.ru> wrote: > One more suggestion to improve the documentation. > It lacks installations actions, something like in auto_explain: > > To use pg_overexplain, simply load it into the server. > You can load it into an individual session: > > LOAD 'pg_overexplain'; > > (You must be superuser to do that.) > Another way is to preload it into some or all sessions > by including pg_overexplain in session_preload_libraries > or shared_preload_libraries in postgresql.conf. Yeah, I think this could make sense, but I'm not sure how much detail to include. pg_overexplain is a little unusual in being one of few contrib modules where all you have to do is load it -- there's no CREATE EXTENSION required, and shared_preload_libraries is not required either. So, it probably makes sense to explain something, but if we eventually have 10 more modules that work like this, we wouldn't want a lengthy explanation in each one. Another thing that we might want to do is adjust the documentation for EXPLAIN. At the very least, the "See also" section should probably reference pg_overexplain, but we might also want some text there explaining the general concept that EXPLAIN is now extensible via loadable modules. -- Robert Haas EDB: http://www.enterprisedb.com