Re: making EXPLAIN extensible
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Andrei Lepikhov <lepihov@gmail.com>
Cc: Jeff Davis <pgsql@j-davis.com>, Thom Brown <thom@linux.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Tom Lane <tgl@sss.pgh.pa.us>
Date: 2025-03-18T16:43:18Z
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 Tue, Mar 18, 2025 at 9:58 AM Andrei Lepikhov <lepihov@gmail.com> wrote: > I agree with him, too. But, as you can see, I proposed not changing the > first string or adding something there but just putting extension data > under that line. Extra information about workers' state (not so > important most of the time, I should say) sometimes makes it difficult > to read. OK, I wasn't sure if you meant just before or just after emitting the end-of-first-line newline. If you mean just after, that would amount to deciding that information coming from extensions goes before information from core rather than after. I thought about that and it's defensible, but in the end I thought it made more sense for core info to come first. We could bikeshed this endlessly, but there's no single choice that's going to make everybody 100% happy, and adding a whole bunch of extra hooks to cater to various preferences about exactly how the output should look does not seem worth it to me. > > I've committed 0001 and 0002 for now. The additional hook for > > cross-option validation can be added in a separate commit. v6-0003, > > now v7-0001, needs more substantive review before commit. I hope it > > gets some, and soon. > Ok, I am ready to review it thoroughly, if needed. Yeah, I don't know if Tom is going to jump in here, but if we want to get something into this release we don't have much time. I personally think this is good enough that it would be better to have it than nothing and we can always change stuff later. I'm not going to be too sympathetic if somebody complains about a backward compatibility break for pg_overexplain; it's labelled as a developer tool that shows information about internals. That said, I don't want to ship something and then have everybody say "what is this trash?". -- Robert Haas EDB: http://www.enterprisedb.com