Add ExplainState argument to pg_plan_query() and planner().
authorRobert Haas <rhaas@postgresql.org>
Wed, 8 Oct 2025 12:33:29 +0000 (08:33 -0400)
committerRobert Haas <rhaas@postgresql.org>
Wed, 8 Oct 2025 12:33:29 +0000 (08:33 -0400)
commitc83ac02ec7309edb7561eee93895c31a54b93d3d
tree6cae6dc6ebe7615af87e6df9ac9aa0c019c4d1e8
parent8e11859102f947e6145acdd809e5cdcdfbe90fa5
Add ExplainState argument to pg_plan_query() and planner().

This allows extensions to have access to any data they've stored
in the ExplainState during planning. Unfortunately, it won't help
with EXPLAIN EXECUTE is used, but since that case is less common,
this still seems like an improvement.

Since planner() has quite a few arguments now, also add some
documentation of those arguments and the return value.

Author: Robert Haas <rhaas@postgresql.org>
Co-authored-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Andrei Lepikhov <lepihov@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: http://postgr.es/m/CA+TgmoYWKHU2hKr62Toyzh-kTDEnMDeLw7gkOOnjL-TnOUq0kQ@mail.gmail.com
12 files changed:
contrib/pg_stat_statements/pg_stat_statements.c
src/backend/commands/copyto.c
src/backend/commands/createas.c
src/backend/commands/explain.c
src/backend/commands/matview.c
src/backend/commands/portalcmds.c
src/backend/optimizer/plan/planner.c
src/backend/tcop/postgres.c
src/include/optimizer/optimizer.h
src/include/optimizer/planner.h
src/include/tcop/tcopprot.h
src/test/modules/delay_execution/delay_execution.c