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: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: 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-06-23T15:31:05Z
Lists: pgsql-bugs
On Tue, Jun 22, 2021 at 7:01 PM Alexander Korotkov <aekorotkov@gmail.com> wrote: > On Tue, Jun 22, 2021 at 4:42 PM Alvaro Herrera <alvherre@2ndquadrant.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
Commits
-
Fix bugs in polymorphic-argument resolution for multiranges.
- b7ea0e8c41f1 14.0 landed
- 336ea6e6ff11 15.0 landed
-
Fixes for multirange selectivity estimation
- 322e82b77ef4 14.0 landed
- 178ec460db0a 15.0 landed