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

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Neil Chen <carpenter(dot)nail(dot)cz(at)gmail(dot)com>, Alexander Law <exclusion(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>, Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com>
Subject: Re: BUG #17066: Cache lookup failed when null (unknown) is passed as anycompatiblemultirange
Date: 2021-06-23 15:31:05
Message-ID: CAPpHfdtT8NJGcBzx6OnDxMOrp0BjPsFjCLrL82xqFa4639R7Nw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Tue, Jun 22, 2021 at 7:01 PM Alexander Korotkov <aekorotkov(at)gmail(dot)com> wrote:
> On Tue, Jun 22, 2021 at 4:42 PM Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote:
> > On 2021-Jun-22, Neil Chen wrote:
> >
> > > Greetings,
> > >
> > > I tried to investigate the bug, but the complicated logic here completely
> > > messed up my mind...
> > >
> > > Anyway, this patch can fix it and make the regress test happy. But I think
> > > it's better to get the author's advice - I copied this email to Alvaro,
> > > hope it doesn't offend him...
> >
> > Without looking too deeply, the patch seems sensible to me. However,
> > I'm CC'ing Alexander and Paul :-)
>
> Thank you for pointing this out. And thanks to Neil for the fix.
>
> Looks good at the first glance. I'm going to review this in the next
> couple of days.

I've reviewed enforce_generic_type_consistency() more carefully. It
looks for me that this function requires more significant rework. For
instance, these two functions throw errors, but it seems that both of
them should work.

create function multirange_func(r anycompatiblerange)
returns anycompatiblemultirange as 'select multirange($1);' language sql;
create function range_func(r anycompatiblemultirange)
returns anycompatiblerange as 'select multirange($1);' language sql;

# select multirange_func(int4range(1,10));
ERROR: could not identify anycompatiblemultirange type

# select range_func(int4multirange(int4range(1,10)));
ERROR: could not determine polymorphic type anycompatiblerange
because input has type unknown

So, I'm still investigating this.

------
Regards,
Alexander Korotkov

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2021-06-23 16:02:40 Re: Found a buffer-overflow defect in asynchronous database connection API PQconnectPoll
Previous Message Sudheer H R 2021-06-23 14:03:06 Re: Found a buffer-overflow defect in asynchronous database connection API PQconnectPoll