Lists: | pgsql-generalpgsql-hackers |
---|
From: | Eric B(dot)Ridge <ebr(at)tcdi(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | division by zero |
Date: | 2003-03-07 18:48:46 |
Message-ID: | 6D514366-50CD-11D7-B70C-0003937E3354@tcdi.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
I admit, I suck at math, but I really thought postgres would ERROR on
this:
foo=# select 1/0;
?column?
----------
0
(1 row)
More surprising is that this does ERROR:
foo=# select 1/0.0;
ERROR: division by zero on numeric
Is this a bug, or do I need to go back to high school algebra? "Both"
is an acceptable answer. :)
eric
From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | "Eric B(dot)Ridge" <ebr(at)tcdi(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: division by zero |
Date: | 2003-03-07 19:34:35 |
Message-ID: | 200303071934.h27JYZX15662@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
I think this caused by floating point signals being reported by the OS,
while integer operations don't have signals. I suppose we could catch
the divide by zero easily. Folks?
---------------------------------------------------------------------------
Eric B.Ridge wrote:
> I admit, I suck at math, but I really thought postgres would ERROR on
> this:
>
> foo=# select 1/0;
> ?column?
> ----------
> 0
> (1 row)
>
> More surprising is that this does ERROR:
> foo=# select 1/0.0;
> ERROR: division by zero on numeric
>
> Is this a bug, or do I need to go back to high school algebra? "Both"
> is an acceptable answer. :)
>
> eric
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Eric B(dot)Ridge" <ebr(at)tcdi(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: division by zero |
Date: | 2003-03-07 19:50:15 |
Message-ID: | 2079.1047066615@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
"Eric B.Ridge" <ebr(at)tcdi(dot)com> writes:
> I admit, I suck at math, but I really thought postgres would ERROR on
> this:
> foo=# select 1/0;
There's something wrong with your platform, I think. I get an error on
both HPUX and Red Hat Linux. What platform is this? and what PG
version?
z=# select 1/0;
ERROR: floating point exception! The last floating point operation either exceeded legal ranges or was a divide by zero
z=#
regards, tom lane
From: | Eric B(dot)Ridge <ebr(at)tcdi(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: division by zero |
Date: | 2003-03-07 19:58:53 |
Message-ID: | 3941E842-50D7-11D7-B70C-0003937E3354@tcdi.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
On Friday, March 7, 2003, at 02:50 PM, Tom Lane wrote:
> "Eric B.Ridge" <ebr(at)tcdi(dot)com> writes:
>> I admit, I suck at math, but I really thought postgres would ERROR on
>> this:
>
>> foo=# select 1/0;
>
> There's something wrong with your platform, I think. I get an error on
> both HPUX and Red Hat Linux. What platform is this? and what PG
> version?
I'm sorry. I know better.
% uname -a
Darwin foo.local. 6.4 Darwin Kernel Version 6.4: Wed Jan 29 18:50:42
PST 2003; root:xnu/xnu-344.26.obj~1/RELEASE_PPC Power Macintosh powerpc
Which translates to Mac OS X 10.2.4 (6I32)
foo=# select version();
version
------------------------------------------------------------------------
--------------------------
PostgreSQL 7.3.2 on powerpc-apple-darwin6.4, compiled by GCC gcc (GCC)
3.1 20020420 (prerelease)
select 1/0; fails as expected on my x86 Linux box, so yer right, it's
just my little Mac. "I switched because Mac's can divide by zero."
eric
> z=# select 1/0;
> ERROR: floating point exception! The last floating point operation
> either exceeded legal ranges or was a divide by zero
> z=#
>
> regards, tom lane
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Eric B(dot) Ridge" <ebr(at)tcdi(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: division by zero |
Date: | 2003-03-07 20:05:12 |
Message-ID: | 2228.1047067512@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
"Eric B. Ridge" <ebr(at)tcdi(dot)com> writes:
> select 1/0; fails as expected on my x86 Linux box, so yer right, it's
> just my little Mac. "I switched because Mac's can divide by zero."
Mph. I have a Mac handy, will look into this.
Can anyone confirm whether the error shows up on other BSD-derived
platforms?
regards, tom lane
From: | Fernando Schapachnik <fernando(at)mecon(dot)gov(dot)ar> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Eric B(dot) Ridge" <ebr(at)tcdi(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: division by zero |
Date: | 2003-03-07 20:08:44 |
Message-ID: | 20030307200844.GP357@bal740r0.mecon.gov.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
En un mensaje anterior, Tom Lane escribió:
> Can anyone confirm whether the error shows up on other BSD-derived
> platforms?
FreeBSD 4.7-RELEASE-p7
db=# SELECT version();
version
---------------------------------------------------------------------
PostgreSQL 7.3.2 on i386-portbld-freebsd4.7, compiled by GCC 2.95.4
(1 row)
db=# SELECT 1/0;
ERROR: floating point exception! The last floating point operation either
exceeded legal ranges or was a divide by zero
Regards.
From: | Eric B(dot)Ridge <ebr(at)tcdi(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: division by zero |
Date: | 2003-03-07 21:36:57 |
Message-ID: | EC27D603-50E4-11D7-B70C-0003937E3354@tcdi.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
On Friday, March 7, 2003, at 03:05 PM, Tom Lane wrote:
> "Eric B. Ridge" <ebr(at)tcdi(dot)com> writes:
>> select 1/0; fails as expected on my x86 Linux box, so yer right, it's
>> just my little Mac. "I switched because Mac's can divide by zero."
>
> Mph. I have a Mac handy, will look into this.
I doubt this helps, but I just tried on my Mac against 7.2.3 and it
still returns zero.
eric
>
> Can anyone confirm whether the error shows up on other BSD-derived
> platforms?
>
> regards, tom lane
From: | Brian Hirt <bhirt(at)mobygames(dot)com> |
---|---|
To: | "Eric B(dot)Ridge" <ebr(at)tcdi(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: division by zero |
Date: | 2003-03-07 23:32:57 |
Message-ID: | 20A602DE-50F5-11D7-812A-000393D9FD00@mobygames.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
fyi, my mac running mac os 10.2.4 and postgres 7.3.1 returns zero also.
On Friday, March 7, 2003, at 02:36 PM, Eric B.Ridge wrote:
> On Friday, March 7, 2003, at 03:05 PM, Tom Lane wrote:
>
>> "Eric B. Ridge" <ebr(at)tcdi(dot)com> writes:
>>> select 1/0; fails as expected on my x86 Linux box, so yer right, it's
>>> just my little Mac. "I switched because Mac's can divide by zero."
>>
>> Mph. I have a Mac handy, will look into this.
>
> I doubt this helps, but I just tried on my Mac against 7.2.3 and it
> still returns zero.
>
> eric
>
>>
>> Can anyone confirm whether the error shows up on other BSD-derived
>> platforms?
>>
>> regards, tom lane
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Eric B(dot) Ridge" <ebr(at)tcdi(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: division by zero |
Date: | 2003-03-08 18:19:03 |
Message-ID: | 7695.1047147543@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
"Eric B. Ridge" <ebr(at)tcdi(dot)com> writes:
> select 1/0; fails as expected on my x86 Linux box, so yer right, it's
> just my little Mac. "I switched because Mac's can divide by zero."
I checked into this, and indeed OS X 10.2 is behaving funny: integer
divide by zero doesn't raise any signal, it just returns a bogus answer.
They're within their rights to do so according to the ANSI C spec
(wherein division by zero is stated to have undefined behavior).
But since other BSD-derived Unixen all seem to raise SIGFPE, I can't
help wondering if this shouldn't be considered a bug.
I think we have three possible responses:
1. Put explicit tests for zero into the integer division SQL function
routines.
2. Consider this Apple's problem and file a bug report.
3. Both.
I don't care for answer #1 alone, because it would only catch zero
divides in the specific places we put in tests; internal errors would
likely go uncaught. So I think a complaint to Apple is in order.
I'm not sure whether to also put in zero-divide guards. Comments?
regards, tom lane
From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Eric B(dot) Ridge" <ebr(at)tcdi(dot)com>, <pgsql-general(at)postgresql(dot)org>, <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: division by zero |
Date: | 2003-03-08 19:28:24 |
Message-ID: | 20030308111114.O8453-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
On Sat, 8 Mar 2003, Tom Lane wrote:
> "Eric B. Ridge" <ebr(at)tcdi(dot)com> writes:
> > select 1/0; fails as expected on my x86 Linux box, so yer right, it's
> > just my little Mac. "I switched because Mac's can divide by zero."
>
> I checked into this, and indeed OS X 10.2 is behaving funny: integer
> divide by zero doesn't raise any signal, it just returns a bogus answer.
> They're within their rights to do so according to the ANSI C spec
> (wherein division by zero is stated to have undefined behavior).
> But since other BSD-derived Unixen all seem to raise SIGFPE, I can't
> help wondering if this shouldn't be considered a bug.
>
> I think we have three possible responses:
>
> 1. Put explicit tests for zero into the integer division SQL function
> routines.
>
> 2. Consider this Apple's problem and file a bug report.
>
> 3. Both.
>
> I don't care for answer #1 alone, because it would only catch zero
> divides in the specific places we put in tests; internal errors would
> likely go uncaught. So I think a complaint to Apple is in order.
> I'm not sure whether to also put in zero-divide guards. Comments?
We probably should put in guards since relying on sane behavior for
division by zero is probably unsafe from a portability standpoint. This
could hide some internal error on a system that has this problem (since we
could otherwise put it into a regression test) but those systems are
currently broken if the internal error occurs anyway.
From: | Justin Clift <justin(at)postgresql(dot)org> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Eric B(dot) Ridge" <ebr(at)tcdi(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: [GENERAL] division by zero |
Date: | 2003-03-09 04:54:50 |
Message-ID: | 3E6AC91A.1010700@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
Tom Lane wrote:
<snip>
> 2. Consider this Apple's problem and file a bug report.
Is there a good place to report errors to Apple for this kind of thing?
Was chatting to one of the guys in the MacOSX development team at Apple
a while ago and can pursue it through there if needed.
:-)
Regards and best wishes,
Justin Clift
> 3. Both.
>
> I don't care for answer #1 alone, because it would only catch zero
> divides in the specific places we put in tests; internal errors would
> likely go uncaught. So I think a complaint to Apple is in order.
> I'm not sure whether to also put in zero-divide guards. Comments?
>
> regards, tom lane
--
"My grandfather once told me that there are two kinds of people: those
who work and those who take the credit. He told me to try to be in the
first group; there was less competition there."
- Indira Gandhi
From: | Eric B(dot)Ridge <ebr(at)tcdi(dot)com> |
---|---|
To: | Justin Clift <justin(at)postgresql(dot)org> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: [GENERAL] division by zero |
Date: | 2003-03-09 21:34:43 |
Message-ID: | F159728C-5276-11D7-AD20-0003930C70D8@tcdi.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
On Saturday, March 8, 2003, at 11:54 PM, Justin Clift wrote:
> Tom Lane wrote:
> <snip>
>> 2. Consider this Apple's problem and file a bug report.
>
> Is there a good place to report errors to Apple for this kind of thing?
The best place I can find is:
http://developer.apple.com/bugreporter/index.html
Unfortunately, there doesn't seem to be a way to query existing
reports... If there is, I can't find it.
Also, I can't help but wonder why Apple/DarwinTeam handle integer
division by zero this way. There must be a reason, which makes me
think that "[considering] this Apple's problem" might not work out for
postgres in the end.
eric
From: | Justin Clift <justin(at)postgresql(dot)org> |
---|---|
To: | "Eric B(dot)Ridge" <ebr(at)tcdi(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: [GENERAL] division by zero |
Date: | 2003-03-10 00:15:25 |
Message-ID: | 3E6BD91D.7050007@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general pgsql-hackers |
Hi guys,
Was just looking around Google for similar reports of errors and came
across this:
MacOS X Server Developer Release Notes: Core OS Runtime
http://www.geminisolutions.com/WebObjects_4.5/Documentation/Developer/YellowBox/ReleaseNotes/Runtime.html
Looks like this is a known problem (as of 1998) and may not have been fixed.
Further hits come up when searching on the Apple Developer Connection
site too:
http://developer.apple.com/cgi-bin/search.pl?&q=divide+by+zero&num=10&lang=lang_en|lang_zh-CN|lang_fr|lang_de|lang_ja&ie=utf8&oe=utf8
(that should be all one line)
And this one looks potentially interesting:
http://developer.apple.com/technotes/tn2002/tn2053.html
(search in this page for "FE_ENABLE_DIVBYZERO")
Have asked the member of the Apple MacOS X Server team what he
recommends the best way to proceed is.
Regards and best wishes,
Justin Clift
Eric B.Ridge wrote:
> On Saturday, March 8, 2003, at 11:54 PM, Justin Clift wrote:
>
>> Tom Lane wrote:
>> <snip>
>>
>>> 2. Consider this Apple's problem and file a bug report.
>>
>>
>> Is there a good place to report errors to Apple for this kind of thing?
>
>
> The best place I can find is:
> http://developer.apple.com/bugreporter/index.html
>
> Unfortunately, there doesn't seem to be a way to query existing
> reports... If there is, I can't find it.
>
> Also, I can't help but wonder why Apple/DarwinTeam handle integer
> division by zero this way. There must be a reason, which makes me think
> that "[considering] this Apple's problem" might not work out for
> postgres in the end.
>
> eric
>
--
"My grandfather once told me that there are two kinds of people: those
who work and those who take the credit. He told me to try to be in the
first group; there was less competition there."
- Indira Gandhi