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: Alexander Lakhin <exclusion@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@2ndquadrant.com>, Neil Chen <carpenter.nail.cz@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Paul A Jungwirth <pj@illuminatedcomputing.com>
Date: 2021-06-29T20:22:27Z
Lists: pgsql-bugs
On Sun, Jun 27, 2021 at 2:29 AM Alexander Korotkov <aekorotkov@gmail.com> wrote:
>  On Sat, Jun 26, 2021 at 12:02 AM Alexander Korotkov
> <aekorotkov@gmail.com> wrote:
> > On Fri, Jun 25, 2021 at 7:00 AM Alexander Lakhin <exclusion@gmail.com> wrote:
> > > Hello,
> > > 24.06.2021 02:35, Tom Lane wrote:
> > > > Alexander Korotkov <aekorotkov@gmail.com> writes:
> > > >> I really appreciate a hint here.
> > > > I think I'm to blame for most of that code originally, so I'll take
> > > > a look soon.  Been up to my neck in other stuff recently.
> > > I'm not sure whether it related to the initial issue, but there is
> > > another anomaly with the multirange types. (May be I should report it as
> > > a distinct bug?) The query:
> > > create table test_multirange(mr int4multirange);
> > > select count(*) from test_multirange where mr << int4range(100,100);
> > > produces:
> > > ERROR:  unexpected operator 4396
> > >
> > > while
> > > select count(*) from test_multirange where mr << int4range(100,500);
> > > returns a result (as the multirangetypes test shows).
> >
> > Yep, that's a distinct bug.  It seems that I've added some missing
> > operators, but forgot to add some selectivity estimates for them.
> >
> > I'll come with a fix soon.
>
> The patch is attached.  It fixes some switches in calc_multirangesel()
> and calc_multirangesel().  Additionally, it improves regression test
> coverage for matching empty range/multirange.
>
> I'm going to push it if no objection.

Pushed!

------
Regards,
Alexander Korotkov



Commits

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

  2. Fixes for multirange selectivity estimation