Re: BUG #6675: Box overlap with infinity edge - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #6675: Box overlap with infinity edge
Date
Msg-id 6245.1338958728@sss.pgh.pa.us
Whole thread Raw
In response to BUG #6675: Box overlap with infinity edge  (jeremie.thomassey@gmail.com)
List pgsql-bugs
jeremie.thomassey@gmail.com writes:
> I can't understand this result :

> SELECT box '((1,1),(infinity, 1))' && box '((2, 1),(infinity, 1))';
>  ?column?
> ---------
>  f

> Isn't it supposed to return true? The documentation doesn't really say
> anything about infinite edge.

The test for this involves

    FPge(box1->high.x, box2->high.x)

where FPge is defined as

    #define FPge(A,B)    ((B) - (A) <= EPSILON)

When both high.x values are infinity, you have infinity minus infinity,
which yields NaN in IEEE arithmetic, so the comparison to epsilon comes
out false.

In general I don't think we promise that geometric operations involving
infinite endpoints will behave sanely.  There are probably a boatload
of corner cases besides this one that'd need to be fixed before we
could consider that a supported case.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Dean Schulze
Date:
Subject: JDBC Driver can't read UUID from database
Next
From: katsumata.tomonari@po.ntts.co.jp
Date:
Subject: BUG #6676: checkpointer does not work by SIGINT.