change_to_applied_stats_has_list_of_oids.diff
application/octet-stream
Filename: change_to_applied_stats_has_list_of_oids.diff
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/commands/explain.c | 3 | 3 |
| src/backend/statistics/extended_stats.c | 1 | 1 |
| src/backend/utils/adt/selfuncs.c | 1 | 1 |
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 */
}