Fwd: range_agg() missing support for multirange inputs - Mailing list pgsql-bugs

From Ian R. Campbell
Subject Fwd: range_agg() missing support for multirange inputs
Date
Msg-id CAOC8YUdFVtD-fc7WbPrbqyTVzGse+bhdBXLxPDRUFK-uxczAWA@mail.gmail.com
Whole thread Raw
In response to range_agg() missing support for multirange inputs  ("Ian R. Campbell" <ian.campbell@thepathcentral.com>)
Responses Re: range_agg() missing support for multirange inputs  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-bugs
Moderator: I have submitted this bug report twice, but it has never made it onto the forum and I've never had feedback on it.

All my other reports have been rapidly responded to.

Please advise.

---------- Forwarded message ---------
From: Ian R. Campbell <ian.campbell@thepathcentral.com>
Date: Thu, 25 Nov 2021 at 00:13
Subject: range_agg() missing support for multirange inputs
To: <pgsql-bugs@lists.postgresql.org>


Consider the following code:

 

with a(x) as(

               values

                                           ('{[10,20],[100,200]}'::int4multirange)

                                           ,('{[20,40],[15,55],[100,200]}'::int4multirange)

)

select                 range_agg(x)

from                   (

               select  unnest(x)x

               from     a

)t;

 

=> {[10,56),[100,201)}

 

Here, range_agg() won’t accept a multirange type input, but it outputs a multirange type.

 

The only way to aggregate the source multirange rows is to unnest them first.

 

However, range_intersect_agg() does not require the unnest step:

 

with a(x) as(

               values

                                           ('{[10,20],[100,200]}'::int4multirange)

                                           ,('{[20,40],[15,55],[100,200]}'::int4multirange)

)

select                 range_intersect_agg(x)

from                   a;

 

=> {[15,21),[100,201)}

 

Ian Campbell

 

pgsql-bugs by date:

Previous
From: Kyotaro Horiguchi
Date:
Subject: Re: BUG #17320: A SEGV in optimizer
Next
From: Dmitry Dolgov
Date:
Subject: Re: BUG #17318: ERROR: AddressSanitizer: SEGV on iso-8859-1 address in optimizer