@@ -486,29 +486,7 @@ ExplainOnePlan(PlannedStmt *plannedstmt, IntoClause *into, ExplainState *es,
486486
487487 /* Print info about runtime of triggers */
488488 if (es -> analyze )
489- {
490- ResultRelInfo * rInfo ;
491- bool show_relname ;
492- int numrels = queryDesc -> estate -> es_num_result_relations ;
493- List * targrels = queryDesc -> estate -> es_trig_target_relations ;
494- int nr ;
495- ListCell * l ;
496-
497- ExplainOpenGroup ("Triggers" , "Triggers" , false, es );
498-
499- show_relname = (numrels > 1 || targrels != NIL );
500- rInfo = queryDesc -> estate -> es_result_relations ;
501- for (nr = 0 ; nr < numrels ; rInfo ++ , nr ++ )
502- report_triggers (rInfo , show_relname , es );
503-
504- foreach (l , targrels )
505- {
506- rInfo = (ResultRelInfo * ) lfirst (l );
507- report_triggers (rInfo , show_relname , es );
508- }
509-
510- ExplainCloseGroup ("Triggers" , "Triggers" , false, es );
511- }
489+ ExplainPrintTriggers (es , queryDesc );
512490
513491 /*
514492 * Close down the query and free resources. Include time for this in the
@@ -564,6 +542,42 @@ ExplainPrintPlan(ExplainState *es, QueryDesc *queryDesc)
564542 ExplainNode (queryDesc -> planstate , NIL , NULL , NULL , es );
565543}
566544
545+ /*
546+ * ExplainPrintTriggers -
547+
548+ * convert a QueryDesc's trigger statistics to text and append it to
549+ * es->str
550+ *
551+ * The caller should have set up the options fields of *es, as well as
552+ * initializing the output buffer es->str. Other fields in *es are
553+ * initialized here.
554+ */
555+ void
556+ ExplainPrintTriggers (ExplainState * es , QueryDesc * queryDesc )
557+ {
558+ ResultRelInfo * rInfo ;
559+ bool show_relname ;
560+ int numrels = queryDesc -> estate -> es_num_result_relations ;
561+ List * targrels = queryDesc -> estate -> es_trig_target_relations ;
562+ int nr ;
563+ ListCell * l ;
564+
565+ ExplainOpenGroup ("Triggers" , "Triggers" , false, es );
566+
567+ show_relname = (numrels > 1 || targrels != NIL );
568+ rInfo = queryDesc -> estate -> es_result_relations ;
569+ for (nr = 0 ; nr < numrels ; rInfo ++ , nr ++ )
570+ report_triggers (rInfo , show_relname , es );
571+
572+ foreach (l , targrels )
573+ {
574+ rInfo = (ResultRelInfo * ) lfirst (l );
575+ report_triggers (rInfo , show_relname , es );
576+ }
577+
578+ ExplainCloseGroup ("Triggers" , "Triggers" , false, es );
579+ }
580+
567581/*
568582 * ExplainQueryText -
569583 * add a "Query Text" node that contains the actual text of the query
0 commit comments