BUG #1188: evaluation order of select seems to be wrong

From: "PostgreSQL Bugs List" <pgsql-bugs(at)postgresql(dot)org>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #1188: evaluation order of select seems to be wrong
Date: 2004-07-07 12:58:51
Message-ID: 20040707125851.31357CF4983@www.postgresql.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs


The following bug has been logged online:

Bug reference: 1188
Logged by: Holger Jakobs

Email address: holger(at)jakobs(dot)com

PostgreSQL version: 7.4

Operating system: Linux

Description: evaluation order of select seems to be wrong

Details:

There is a table like

create table games (
teamnr serial,
player integer not null,
win integer not null,
lose integer not null
);

I have the following select statement:

select teamnr, sum(win)/sum(lose)
from games
group by teamnr
having sum(lose) > 0;

According to what I know about select, the expressions of the from clause
have to be evaluated last, so that the case that sum(lose) is zero will be
filtered _before_ the division by 0 takes place.

Unfortunately, PostgreSQL 7.4.2 gives a "division by zero" error if there
are teams which have not yet won any game. Those teams should just not
appear in the output.

Example insert statements:

insert into games values (1, 11, 3, 0);
insert into games values (1, 12, 5, 2);
insert into games values (2, 21, 6, 0);

Without the last insert everything works fine. Adding the last insert
produces a team with zero numbers of games won leading to the error.

Btw, Oracle 8 handels this correctly.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Eisentraut 2004-07-07 16:03:20 Re: BUG #1188: evaluation order of select seems to be wrong
Previous Message Dario V. Fassi 2004-07-07 06:31:25 ResultSerMetaData.getColumnDisplaySize() with timestamp error