diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index e6edae0845c..854a148fbf3 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -70,7 +70,7 @@ static void ExplainPrintJIT(ExplainState *es, int jit_flags, static void ExplainPrintSerialize(ExplainState *es, SerializeMetrics *metrics); static void report_triggers(ResultRelInfo *rInfo, bool show_relname, - ExplainState *es); + ExplainState *es, char *list_name); static double elapsed_time(instr_time *starttime); static bool ExplainPreScanNode(PlanState *planstate, Bitmapset **rels_used); static void ExplainNode(PlanState *planstate, List *ancestors, @@ -850,19 +850,19 @@ ExplainPrintTriggers(ExplainState *es, QueryDesc *queryDesc) foreach(l, resultrels) { rInfo = (ResultRelInfo *) lfirst(l); - report_triggers(rInfo, show_relname, es); + report_triggers(rInfo, show_relname, es, "resultrels"); } foreach(l, routerels) { rInfo = (ResultRelInfo *) lfirst(l); - report_triggers(rInfo, show_relname, es); + report_triggers(rInfo, show_relname, es, "routerels"); } foreach(l, targrels) { rInfo = (ResultRelInfo *) lfirst(l); - report_triggers(rInfo, show_relname, es); + report_triggers(rInfo, show_relname, es, "trigrels"); } ExplainCloseGroup("Triggers", "Triggers", false, es); @@ -1090,7 +1090,8 @@ ExplainQueryParameters(ExplainState *es, ParamListInfo params, int maxlen) * report execution stats for a single relation's triggers */ static void -report_triggers(ResultRelInfo *rInfo, bool show_relname, ExplainState *es) +report_triggers(ResultRelInfo *rInfo, bool show_relname, ExplainState *es, + char *list_name) { int nt; @@ -1134,6 +1135,8 @@ report_triggers(ResultRelInfo *rInfo, bool show_relname, ExplainState *es) appendStringInfo(es->str, " for constraint %s", conname); if (show_relname) appendStringInfo(es->str, " on %s", relname); + if (list_name) + appendStringInfo(es->str, " in List %s", list_name); if (es->timing) appendStringInfo(es->str, ": time=%.3f calls=%.0f\n", 1000.0 * instr->total, instr->ntuples);