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: Robert Haas <robertmhaas@gmail.com>, Andrei Lepikhov <lepihov@gmail.com>,
Jeff Davis <pgsql@j-davis.com>, Thom Brown <thom@linux.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-21T18:37:05Z
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: > overall this LGTM, and I don't really have other comments. I took a look through v8, and have just a couple of trivial nits: +static void overexplain_debug_handler(ExplainState *, DefElem *, + ParseState *); +static void overexplain_range_table_handler(ExplainState *, DefElem *, + ParseState *); I cordially hate this parameter-name-less style of function declaration, and consider it Stroustrup's single worst idea in C++. It rests on the assumption that parameter names convey zero information, which is wrongheaded for any function more complex than, say, addition. Also, even if you like this style, clang-tidy probably won't (cf for example 035ce1feb). pgoverexplain.sgml seems to have been formatted to fit in about an 85-column window. Please don't do that --- you might as well have made it 99 columns wide or any other random number, it still looks like heck in 80 columns. Other than that, there's room to debate exactly what to show. But as long as we're agreed that we won't hold this module to high cross-version compatibility standards, that doesn't seem like a problem. I'm okay with this as a starting point. regards, tom lane