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
/* 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;