diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 8c80c34619..7d3dcca655 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -2644,15 +2644,15 @@ show_scan_stats(List *stats, List *clauses, List *ors, forthree (lc1, stats, lc2, clauses, lc3, ors) { - StatisticExtInfo *stat = (StatisticExtInfo *) lfirst(lc1); + Oid statOid = lfirst_oid(lc1); List *applied_clauses = (List *) lfirst(lc2); int is_or = lfirst_int(lc3); initStringInfo(&str); appendStringInfo(&str, "%s.%s Clauses: %s", - get_namespace_name(get_statistics_namespace(stat->statOid)), - get_statistics_name(stat->statOid), + get_namespace_name(get_statistics_namespace(statOid)), + get_statistics_name(statOid), show_stat_qual(applied_clauses, is_or, planstate, ancestors, es)); ExplainPropertyText("Ext Stats", str.data, es); diff --git a/src/backend/statistics/extended_stats.c b/src/backend/statistics/extended_stats.c index dbf921118e..79ab608160 100644 --- a/src/backend/statistics/extended_stats.c +++ b/src/backend/statistics/extended_stats.c @@ -1860,7 +1860,7 @@ statext_mcv_clauselist_selectivity(PlannerInfo *root, List *clauses, int varReli /* add it to the list of applied stats/clauses, if this flag is true */ if (root->parse->isExplain_Stats) { - rel->applied_stats = lappend(rel->applied_stats, stat); + rel->applied_stats = lappend_oid(rel->applied_stats, stat->statOid); rel->applied_clauses = lappend(rel->applied_clauses, stat_clauses); rel->applied_clauses_or = lappend_int(rel->applied_clauses_or, (is_or) ? 1 : 0); } diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c index 21feb92a58..42f5306ec7 100644 --- a/src/backend/utils/adt/selfuncs.c +++ b/src/backend/utils/adt/selfuncs.c @@ -4162,7 +4162,7 @@ estimate_multivariate_ndistinct(PlannerInfo *root, RelOptInfo *rel, /* add it to the list of applied stats/clauses, if this flag is true */ if (root->parse->isExplain_Stats) { - rel->applied_stats = lappend(rel->applied_stats, matched_info); + rel->applied_stats = lappend_oid(rel->applied_stats, matched_info->statOid); rel->applied_clauses = lappend(rel->applied_clauses, matched_exprs); rel->applied_clauses_or = lappend_int(rel->applied_clauses_or, 2); /* 2: Use comma to deparse */ }