Re: pg15 inherited stats expressions: cache lookup failed for statistics object

Richard Guo <guofenglinux@gmail.com>

From: Richard Guo <guofenglinux@gmail.com>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: Tomas Vondra <tomas.vondra@enterprisedb.com>, pgsql-hackers@lists.postgresql.org
Date: 2022-10-31T04:26:22Z
Lists: pgsql-hackers
On Mon, Oct 31, 2022 at 1:05 AM Justin Pryzby <pryzby@telsasoft.com> wrote:

> I think this is what's needed.
>
> diff --git a/src/backend/utils/adt/selfuncs.c
> b/src/backend/utils/adt/selfuncs.c
> index 14e0885f19f..4450f0d682f 100644
> --- a/src/backend/utils/adt/selfuncs.c
> +++ b/src/backend/utils/adt/selfuncs.c
> @@ -5240,6 +5240,8 @@ examine_variable(PlannerInfo *root, Node *node, int
> varRelid,
>                         /* skip stats without per-expression stats */
>                         if (info->kind != STATS_EXT_EXPRESSIONS)
>                                 continue;
> +                       if (info->inherit != rte->inh)
> +                               continue;
>
>                         pos = 0;
>                         foreach(expr_item, info->exprs)
>

I think we also need to do this when loading the ndistinct value, to
skip statistics with mismatching stxdinherit in
estimate_multivariate_ndistinct().

Thanks
Richard

Commits

  1. Fix planner failure with extended statistics on partitioned tables.