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@xxxxxxxxxxx