Re: making EXPLAIN extensible
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Andrei Lepikhov <lepihov@gmail.com>
Cc: Sami Imseih <samimseih@gmail.com>, 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-27T01:53:20Z
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 Wed, Mar 26, 2025 at 2:09 PM Robert Haas <robertmhaas@gmail.com> wrote:
> Hearing no other votes against this, I have committed it, but now I
> wonder if that is going to break the buildfarm, because I just noticed
> that the changes I made in v9 seem not to have resolved the problem
> with debug_parallel_query, for reasons I do not yet understand.
> Investigating...
I pushed a couple of fixes for this, but I still see one failure, on drongo:
diff --strip-trailing-cr -U3
C:/prog/bf/root/HEAD/pgsql/contrib/pg_overexplain/expected/pg_overexplain.out
C:/prog/bf/root/HEAD/pgsql.build/testrun/pg_overexplain/regress/results/pg_overexplain.out
--- C:/prog/bf/root/HEAD/pgsql/contrib/pg_overexplain/expected/pg_overexplain.out
2025-03-26 20:33:47.834896600 +0000
+++ C:/prog/bf/root/HEAD/pgsql.build/testrun/pg_overexplain/regress/results/pg_overexplain.out
2025-03-26 21:57:55.332431300 +0000
@@ -419,7 +419,7 @@
Plan Node ID: 5
extParam: 0
allParam: 0
- -> Index Scan using daucus_id_idx on daucus v2_2 (actual
rows=0.12 loops=8)
+ -> Index Scan using daucus_id_idx on daucus v2_2 (actual
rows=0.13 loops=8)
Index Cond: (id = v1.id)
Index Searches: 8
Disabled Nodes: 0
As some of you will recall, I hate floating point arithmetic with a
fiery passion, but I'm still surprised to learn that 1/8 rounded to
two decimal places does not produce the same answer on all modern
systems. It's not even like this is some weird architecture -- it's
listed as x86_64. I'll look into a fix for this in the morning.
--
Robert Haas
EDB: http://www.enterprisedb.com