Re: Strange behaviors with ranges - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Strange behaviors with ranges
Date
Msg-id 572cc9d2-a981-4f0e-802a-69515dac1722@aklaver.com
Whole thread Raw
Responses Re: Strange behaviors with ranges
Re: Strange behaviors with ranges
List pgsql-general

On 8/27/24 10:29 AM, Jean-Christophe Boggio wrote:
> Hello,
> 
> I have 2 very confusing behaviors when using ranges.
> 
> It all started with this query:
> 
>      WITH rangespaliers AS (
>          SELECT numrange( qtep1+1   , qtep2,  '[]') AS rangep FROM 
> paliers JOIN tmp_limitcontrats USING(idcontrat)
> --        SELECT numrange( qtep1+1   , qtep2,  '[]') AS rangep FROM 
> paliers WHERE idcontrat=1003
>      )
>      ,rangespaliers2 AS (
>          select *
>          FROM rangespaliers
>          WHERE rangep <> NUMRANGE(NULL, NULL) -- ERROR IS HERE
>      )
>      select * from rangespaliers2;
> 
> When I run this query, I get the error "Range lower bound must be less 
> than or equal to range upper bound".
> 
> (a) If I comment out the line marked "ERROR IS HERE", I don't have an 
> error (but I'm missing the filter of course).
> 
> (b) Also, if I uncomment line 3 and comment out line 2, I get the 
> correct behavior. Very strange thing is that tmp_limitcontrats has only 
> one row which contains "idcontrat=1003".

What does:

SELECT numrange( qtep1+1   , qtep2,  '[]') AS rangep FROM paliers WHERE 
idcontrat=1003

return?


> 
> This fails on PG 16.4 and 15.7
> 
> Thanks a lot for your enlightenment.
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: After DB upgrade from PG13 to PG15 showing error
Next
From: Jean-Christophe Boggio
Date:
Subject: Re: Strange behaviors with ranges