Re: BUG #6675: Box overlap with infinity edge

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #6675: Box overlap with infinity edge
Дата
Msg-id 6245.1338958728@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #6675: Box overlap with infinity edge  (jeremie.thomassey@gmail.com)
Список 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 по дате отправления:

Предыдущее
От: Dean Schulze
Дата:
Сообщение: JDBC Driver can't read UUID from database
Следующее
От: katsumata.tomonari@po.ntts.co.jp
Дата:
Сообщение: BUG #6676: checkpointer does not work by SIGINT.