pg_overexplain: Additional EXPLAIN options for debugging.
There's a fair amount of information in the Plan and PlanState trees
that isn't printed by any existing EXPLAIN option. This means that,
when working on the planner, it's often necessary to rely on facilities
such as debug_print_plan, which produce excessively voluminous
output. Hence, use the new EXPLAIN extension facilities to implement
EXPLAIN (DEBUG) and EXPLAIN (RANGE_TABLE) as extensions to the core
EXPLAIN facility.
A great deal more could be done here, and the specific choices about
what to print and how are definitely arguable, but this is at least
a starting point for discussion and a jumping-off point for possible
future improvements.
Reviewed-by: Sami Imseih <samimseih@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviweed-by: Andrei Lepikhov <lepihov@gmail.com> (who didn't like it)
Discussion: http://postgr.es/m/CA+TgmoZfvQUBWQ2P8iO30jywhfEAKyNzMZSR+uc2xr9PZBw6eQ@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/8d5ceb113e3f7ddb627bd40b26438a9d2fa05512
Modified Files
--------------
contrib/Makefile | 1 +
contrib/meson.build | 1 +
contrib/pg_overexplain/.gitignore | 4 +
contrib/pg_overexplain/Makefile | 21 +
contrib/pg_overexplain/expected/pg_overexplain.out | 483 +++++++++++++
contrib/pg_overexplain/meson.build | 28 +
contrib/pg_overexplain/pg_overexplain.c | 763 +++++++++++++++++++++
contrib/pg_overexplain/sql/pg_overexplain.sql | 105 +++
doc/src/sgml/contrib.sgml | 1 +
doc/src/sgml/filelist.sgml | 1 +
doc/src/sgml/pgoverexplain.sgml | 186 +++++
src/tools/pgindent/typedefs.list | 1 +
12 files changed, 1595 insertions(+)