Re: Infinity vs Error for division by zero

Поиск
Список
Период
Сортировка
Искать
От
Andres Freund
Тема
Re: Infinity vs Error for division by zero
Дата
Msg-id
20190301180438.4q5a3xung2ndwpea@alap3.anarazel.de
Ответ на
Список
Дерево обсуждения
Infinity vs Error for division by zero Matt Pulver <mpulver@unitytechgroup.com>
Re: Infinity vs Error for division by zero Andres Freund <andres@anarazel.de>
Re: Infinity vs Error for division by zero Andrew Gierth <andrew@tao11.riddles.org.uk>
Re: Infinity vs Error for division by zero "David G. Johnston" <david.g.johnston@gmail.com>
Re: Infinity vs Error for division by zero Andres Freund <andres@anarazel.de>
Re: Infinity vs Error for division by zero Chapman Flack <chap@anastigmatix.net>
Re: Infinity vs Error for division by zero "David G. Johnston" <david.g.johnston@gmail.com>
Re: Infinity vs Error for division by zero Chapman Flack <chap@anastigmatix.net>
Re: Infinity vs Error for division by zero Matt Pulver <mpulver@unitytechgroup.com>
Re: Infinity vs Error for division by zero Chapman Flack <chap@anastigmatix.net>
Re: Infinity vs Error for division by zero Tom Lane <tgl@sss.pgh.pa.us>
Re: Infinity vs Error for division by zero Chapman Flack <chap@anastigmatix.net>
Re: Infinity vs Error for division by zero Tom Lane <tgl@sss.pgh.pa.us>
Re: Infinity vs Error for division by zero Matt Pulver <mpulver@unitytechgroup.com>
Hi,

On 2019-03-01 12:46:55 -0500, Matt Pulver wrote:
> PostgreSQL FLOAT appears to support +/-Infinity and NaN per the IEEE 754
> standard, with expressions such as CAST('NaN' AS FLOAT) and CAST('Infinity'
> AS FLOAT) and even supports ordering columns of floats that contain NaN.
> 
> However the query "SELECT 1.0/0.0;" produces an exception:
> 
> ERROR:  division by zero
> 
> 
> Question: If Infinity and NaN are supported, then why throw an exception
> here, instead of returning Infinity? Is it purely for historical reasons,
> or if it could all be done again, would an exception still be preferred?
> 
> For purely integer arithmetic, I can see how an exception would make sense.
> However for FLOAT, I would expect/prefer Infinity to be returned.

It'd be good for performance reasons to not have to check for that, and
for under/overflow. But the historical behaviour has quite some weight,
and there's some language in the standard that can legitimate be
interpreted that both conditions need to be signalled, if I recall
correctly.

Greetings,

Andres Freund

В списке pgsql-hackers по дате отправления
От: David G. Johnston
Дата:
От: Robert Haas
Дата:
FAQ