Обсуждение: 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