Обсуждение: Divid by zero bug in float
Shouldn't this produce Infinity instead of an error? postgresql=# select 5::float/0::float; ERROR: division by zero postgresql=# select 5::float/'Infinity'::float;?column? ---------- 0 (1 row) postgresql=# -- Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461
"Jim C. Nasby" <jnasby@pervasive.com> writes:
> Shouldn't this produce Infinity instead of an error?
> postgresql=# select 5::float/0::float;
> ERROR: division by zero
No, I don't think so. SQL92 6.12 <numeric value expression> quoth:
4) The dyadic arithmetic operators <plus sign>, <minus sign>, <as- terisk>, and <solidus> (+, -, *,
and/, respectively) specify addition, subtraction, multiplication, and division, respec- tively. If
thevalue of a divisor is zero, then an exception condition is raised: data exception-division by zero.
There is nothing in there about allowing IEEE infinities instead, and
I very strongly doubt that the average database user would expect such
behavior.
regards, tom lane
On Wed, Feb 22, 2006 at 12:40:11PM -0500, Tom Lane wrote: > "Jim C. Nasby" <jnasby@pervasive.com> writes: > > Shouldn't this produce Infinity instead of an error? > > postgresql=# select 5::float/0::float; > > ERROR: division by zero > > No, I don't think so. SQL92 6.12 <numeric value expression> quoth: > > 4) The dyadic arithmetic operators <plus sign>, <minus sign>, <as- > terisk>, and <solidus> (+, -, *, and /, respectively) specify > addition, subtraction, multiplication, and division, respec- > tively. If the value of a divisor is zero, then an exception > condition is raised: data exception-division by zero. > > There is nothing in there about allowing IEEE infinities instead, and > I very strongly doubt that the average database user would expect such > behavior. Guess the spec is pretty clear then. Do you think it's worth mentioning this in the floating point section of the docs? -- Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461