Re: Postgresql range_agg() Return empty list

From: Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com>
To: Han Tang <bj(dot)tanghan(at)gmail(dot)com>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Postgresql range_agg() Return empty list
Date: 2024-07-11 04:46:33
Message-ID: CA+renyVrWZzX5NcKPyCD5sZQbf6pGOi=7wg=iAWDPXnt+YndTw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Jul 10, 2024 at 6:37 PM Han Tang <bj(dot)tanghan(at)gmail(dot)com> wrote:
> I am using range_agg() function, it works fine with original table value
>
> But when I try to do some update for range value, it will give back an empty list
>
> Select range_agg(b.r)
> From (
> Select int8range(lower(bin_range)+1, upper(bin_range)+5) as r
> From bin_data) as b;
>

The value '(,)' signifies a range with no lower bound and no upper
bound. So '{(,)}' is the multirange that contains just that range
(unbounded in either direction)---in other words not an empty list but
every integer. Ranges use null to indicate unbounded, so it is the
same as '(null,null)'. It looks like the inputs in your second
screenshot must include some ranges with null lower & upper bounds, so
then when you combine them you get everything.

It appears that query is on lines 153-156 of some larger sequence? So
I'm guessing the table contents are not the same as when you generated
the first screenshot.

If you think something else is going on, perhaps you could share the
full contents of bin_data.

Yours,
Paul

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ron Johnson 2024-07-11 07:15:40 Re: Dropping column from big table
Previous Message sud 2024-07-11 03:28:18 Re: Dropping column from big table