Minor mathematical error in documentation

From: Russell Smith <mr-russ(at)pws(dot)com(dot)au>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Minor mathematical error in documentation
Date: 2008-01-17 19:26:26
Message-ID: 478FABE2.1080903@pws.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

I've had this minor bugbear with this part of the docs for a while and
am finally reporting it.

http://www.postgresql.org/docs/8.3/static/sql-expressions.html (And all
back branch documentation)

SELECT ... WHERE x <> 0 AND y/x > 1.5;

But this is safe:

SELECT ... WHERE CASE WHEN x <> 0 THEN y/x > 1.5 ELSE false END;

A CASE construct used in this fashion will defeat optimization attempts,
so it should only be done when necessary. (In this particular example,
it would be best to sidestep the problem by writing y > 1.5*x instead.)

In-equality transformations do not guarantee that y > 1.5x == y/x >
1.5. This is only true for x>0, y < 1.5*x for x<0. I have not posted a
patch as I'm not sure what is the best way to change the example.

Regards

Russell Smith

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Eisentraut 2008-01-17 19:56:02 Re: Minor mathematical error in documentation
Previous Message Steven Flatt 2008-01-17 19:25:03 Re: BUG #3883: Autovacuum deadlock with truncate?