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