Skip site navigation (1) Skip section navigation (2)

Re: Operator Precedence problem?

From: John McKown <jmckown(at)prodigy(dot)net>
To: Philip Warner <pjw(at)rhyme(dot)com(dot)au>
Cc: pgsql-sql(at)hub(dot)org
Subject: Re: Operator Precedence problem?
Date: 2000-08-12 13:53:54
Message-ID: Pine.LNX.4.21.0008120851440.16858-100000@linux2.johnmckown.net (view raw or flat)
Thread:
Lists: pgsql-sql
Every language that I've ever used (other than APL) has the precedence of
"or" being less than "and". So I would always expect the "and" clauses to
be evaluated first, then the "or". Just like in math, where in an
equation, I expect that the multiplication (and) is done before the
addition (or). Unless modified by parentheses just as in your second
example.

On Sat, 12 Aug 2000, Philip Warner wrote:

> 
> I have a peculiar problem that I can't reproduce on a trivial database:
> 
> select product, priority, count(*) as completed from issue 
> where
>     product = 'DIS' 
>     and create_date < '1-Aug-2000' and finish_date >= '1-Aug-2000' or
> finish_date is null
> group by product, priority;
> 
> This produces a list of all products - not just 'DIS'. If I put the last
> two clauses in parnthesis, then it works as expected:
> 
> select product, priority, count(*) as completed from issue 
> where
>     product = 'DIS' 
>     and create_date < '1-Aug-2000' and (finish_date >= '1-Aug-2000' or
> finish_date is null)
> group by product, priority;
> 
> Which makes me think that the precedence of 'or' is not what I expected. Is
> this a feature? If so, the fact that I get precisely the opposite behaviour
> in simple test databases must be a bug, I think.
> 
> Any help or explanation would be appreciated...
> 
> 
> 
> ----------------------------------------------------------------
> Philip Warner                    |     __---_____
> Albatross Consulting Pty. Ltd.   |----/       -  \
> (A.B.N. 75 008 659 498)          |          /(@)   ______---_
> Tel: (+61) 0500 83 82 81         |                 _________  \
> Fax: (+61) 0500 83 82 82         |                 ___________ |
> Http://www.rhyme.com.au          |                /           \|
>                                  |    --________--
> PGP key available upon request,  |  /
> and from pgp5.ai.mit.edu:11371   |/
> 


In response to

pgsql-sql by date

Next:From: Philip WarnerDate: 2000-08-12 13:59:24
Subject: Re: Operator Precedence problem?
Previous:From: John McKownDate: 2000-08-12 13:50:04
Subject: Re: Week of the Year?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group