diff options
author | Robert Haas <rhaas@postgresql.org> | 2025-03-18 08:41:12 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2025-03-18 08:41:12 -0400 |
commit | c65bc2e1d14a2d4daed7c1921ac518f2c5ac3d17 (patch) | |
tree | ffb12e651e2d3603d3f11aef0449d90bd82ac087 /contrib/auto_explain | |
parent | 9d6db8bec19413cd0167f1e59d1af005a997bd3e (diff) | |
download | postgresql-c65bc2e1d14a2d4daed7c1921ac518f2c5ac3d17.tar.gz postgresql-c65bc2e1d14a2d4daed7c1921ac518f2c5ac3d17.zip |
Make it possible for loadable modules to add EXPLAIN options.
Modules can use RegisterExtensionExplainOption to register new
EXPLAIN options, and GetExplainExtensionId, GetExplainExtensionState,
and SetExplainExtensionState to store related state inside the
ExplainState object.
Since this substantially increases the amount of code that needs
to handle ExplainState-related tasks, move a few bits of existing
code to a new file explain_state.c and add the rest of this
infrastructure there.
See the comments at the top of explain_state.c for further
explanation of how this mechanism works.
This does not yet provide a way for such such options to do anything
useful. The intention is that we'll add hooks for that purpose in a
separate commit.
Discussion: http://postgr.es/m/CA+TgmoYSzg58hPuBmei46o8D3SKX+SZoO4K_aGQGwiRzvRApLg@mail.gmail.com
Reviewed-by: Srinath Reddy <srinath2133@gmail.com>
Reviewed-by: Andrei Lepikhov <lepihov@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Sami Imseih <samimseih@gmail.com>
Diffstat (limited to 'contrib/auto_explain')
-rw-r--r-- | contrib/auto_explain/auto_explain.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c index 7007a226c08..3b73bd19107 100644 --- a/contrib/auto_explain/auto_explain.c +++ b/contrib/auto_explain/auto_explain.c @@ -17,6 +17,7 @@ #include "access/parallel.h" #include "commands/explain.h" #include "commands/explain_format.h" +#include "commands/explain_state.h" #include "common/pg_prng.h" #include "executor/instrument.h" #include "utils/guc.h" |