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. >