pg_overexplain: Call previous hooks as appropriate.
authorRobert Haas
Fri, 28 Mar 2025 12:59:33 +0000 (08:59 -0400)
committerRobert Haas
Fri, 28 Mar 2025 13:02:37 +0000 (09:02 -0400)
It makes no sense to remember the previous values of the hook variables
and then never bother calling those functions. Thanks to Andrei for
spotting my goof.

Author: Andrei Lepikhov 
Discussion: http://postgr.es/m/41a344e3-ffb1-4296-8ba7-801f1e9642e5@gmail.com

contrib/pg_overexplain/pg_overexplain.c

index 4554c3abbbfbdb0257b2d04bbb40a6250e69e050..5f623e06019343f85d51fa2f620ad5c5a922d139 100644 (file)
@@ -135,6 +135,10 @@ overexplain_per_node_hook(PlanState *planstate, List *ancestors,
    overexplain_options *options;
    Plan       *plan = planstate->plan;
 
+   if (prev_explain_per_node_hook)
+       (*prev_explain_per_node_hook) (planstate, ancestors, relationship,
+                                      plan_name, es);
+
    options = GetExplainExtensionState(es, es_extension_id);
    if (options == NULL)
        return;
@@ -251,6 +255,10 @@ overexplain_per_plan_hook(PlannedStmt *plannedstmt,
 {
    overexplain_options *options;
 
+   if (prev_explain_per_plan_hook)
+       (*prev_explain_per_plan_hook) (plannedstmt, into, es, queryString,
+                                      params, queryEnv);
+
    options = GetExplainExtensionState(es, es_extension_id);
    if (options == NULL)
        return;