Re: BUG #17066: Cache lookup failed when null (unknown) is passed as anycompatiblemultirange

Alexander Korotkov <aekorotkov@gmail.com>

From: Alexander Korotkov <aekorotkov@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Neil Chen <carpenter.nail.cz@gmail.com>, Alexander Law <exclusion@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Paul A Jungwirth <pj@illuminatedcomputing.com>
Date: 2021-07-21T10:25:39Z
Lists: pgsql-bugs
On Wed, Jul 21, 2021 at 12:54 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Alexander Korotkov <aekorotkov@gmail.com> writes:
> > Do I understand correctly that enforce_generic_type_consistency() is
> > called only after check_generic_type_consistency() returned true?
> > If so, that means some of the checks are redundant.  Therefore, we can
> > replace ereport()'s with Assert()'s.
>
> They are not redundant, IIRC.  I forget the exact mechanism for
> reaching them, but it likely has something to do with aggregates
> or variadic functions.

If checks aren't redundant, there should be cases when they don't
pass.  It would be nice to identify these cases and add them to the
regression tests.  I didn't manage to do this yet.

> In any case, apologies for taking so long to get back to this.  Here's
> a proposed patch (based in part on Neil's earlier patch).

Thank you!  I'll review this and come back to you.

------
Regards,
Alexander Korotkov



Commits

  1. Fix bugs in polymorphic-argument resolution for multiranges.

  2. Fixes for multirange selectivity estimation