summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2025-10-08 09:07:49 -0400
committerRobert Haas <rhaas@postgresql.org>2025-10-08 09:07:49 -0400
commit4685977cc51c91dda0f76b1ef71ba02823a57a1e (patch)
treea975da3303046fe3093a45a4f4d10c742c649b53 /src
parent94f3ad3961a2cb32d30c79f01a70db4caff13318 (diff)
Add extension_state member to PlannedStmt.
Extensions can stash data computed at plan time into this list using planner_shutdown_hook (or perhaps other mechanisms) and then access it from any code that has access to the PlannedStmt (such as explain hooks), allowing for extensible debugging and instrumentation of plans. 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
Diffstat (limited to 'src')
-rw-r--r--src/include/nodes/plannodes.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h
index 3d196f5078e..77ec2bc10b2 100644
--- a/src/include/nodes/plannodes.h
+++ b/src/include/nodes/plannodes.h
@@ -149,6 +149,15 @@ typedef struct PlannedStmt
/* non-null if this is utility stmt */
Node *utilityStmt;
+ /*
+ * DefElem objects added by extensions, e.g. using planner_shutdown_hook
+ *
+ * Set each DefElem's defname to the name of the plugin or extension, and
+ * the argument to a tree of nodes that all have copy and read/write
+ * support.
+ */
+ List *extension_state;
+
/* statement location in source string (copied from Query) */
/* start location, or -1 if unknown */
ParseLoc stmt_location;