diff options
Diffstat (limited to 'src/backend/statistics/mcv.c')
-rw-r--r-- | src/backend/statistics/mcv.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/statistics/mcv.c b/src/backend/statistics/mcv.c index 65fa87b1c79..bad1787cfb2 100644 --- a/src/backend/statistics/mcv.c +++ b/src/backend/statistics/mcv.c @@ -559,12 +559,13 @@ build_column_frequencies(SortItem *groups, int ngroups, * Load the MCV list for the indicated pg_statistic_ext tuple. */ MCVList * -statext_mcv_load(Oid mvoid) +statext_mcv_load(Oid mvoid, bool inh) { MCVList *result; bool isnull; Datum mcvlist; - HeapTuple htup = SearchSysCache1(STATEXTDATASTXOID, ObjectIdGetDatum(mvoid)); + HeapTuple htup = SearchSysCache2(STATEXTDATASTXOID, + ObjectIdGetDatum(mvoid), BoolGetDatum(inh)); if (!HeapTupleIsValid(htup)) elog(ERROR, "cache lookup failed for statistics object %u", mvoid); @@ -2038,12 +2039,13 @@ mcv_clauselist_selectivity(PlannerInfo *root, StatisticExtInfo *stat, int i; MCVList *mcv; Selectivity s = 0.0; + RangeTblEntry *rte = root->simple_rte_array[rel->relid]; /* match/mismatch bitmap for each MCV item */ bool *matches = NULL; /* load the MCV list stored in the statistics object */ - mcv = statext_mcv_load(stat->statOid); + mcv = statext_mcv_load(stat->statOid, rte->inh); /* build a match bitmap for the clauses */ matches = mcv_get_match_bitmap(root, clauses, stat->keys, stat->exprs, |