Re: [HACKERS] WHERE vs HAVING - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] WHERE vs HAVING
Date
Msg-id 25460.926532419@sss.pgh.pa.us
Whole thread Raw
In response to WHERE vs HAVING  (jwieck@debis.com (Jan Wieck))
List pgsql-hackers
jwieck@debis.com (Jan Wieck) writes:
>     I  wonder  what makes the difference between WHERE and HAVING
>     that causes HAVING to accept aggregates while WHERE  doesn't.

Huh?  It seems inherent in the definition to me: WHERE is a filter
applied to individual tuples before any aggregation stage can happen,
thus it makes no sense for it to include aggregate functions
(except in explicit subselects, which create a new context for the
aggregation to occur in).  HAVING applies to groups of tuples after
aggregation, so aggregate functions can meaningfully be applied to
those groups.

>     It  would  be  extremely nice if it's possible to teach WHERE
>     how to handle aggregates properly. Having to push  them  into
>     subselects during rewrite if a views aggregate column appears
>     in the WHERE clause is a total mess.

Explain to me what you think it should mean.  It sounds to me like
you are trying to have the rewrite system change an incorrect query
into a valid one.  Doesn't strike me as a good idea; does the user
know what he's going to get?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] BUG? serials and primary keys (was Re: [INTERFACES] Bug in psql?)
Next
From: Keith Parks
Date:
Subject: Patch to pg_dump for NUMERIC.