Tony Marston wrote:
The following bug has been logged online:
Bug reference: 4465
Logged by: Tony Marston
Email address: [EMAIL PROTECTED]
PostgreSQL version: 8.3.4
Operating system: Windows XP
Description: GROUP BY is not to SQL standard
Details:
The Postgresql implementation of GROUP BY does not conform to either the
1999 or 2003 SQL standard. The documentation states that every field in the
SELECT list which is not aggregated must be specified in the GROUP BY
clause. While this was true in the 1992 standard, in 1999 this was changed
to "any non-aggregated column appearing in the SELECT list is functionally
dependent upon the GROUP BY clause". In the example both p.name and p.price
are functionally dependent on product_id, therefore there is no need for
them to be included in the GROUP BY clause.
SQL 2003 (and similarly 1999) also says
"""
Without Feature T301, “Functional dependencies”, in conforming SQL
language, if T is a grouped table,
then in each <value expression> contained in the <select list>, each
<column reference> that references a
column of T shall reference a grouping column or be specified in an
aggregated argument of a <set function
specification>.
"""
and as you can read in the documentation
(http://www.postgresql.org/docs/current/static/unsupported-features-sql-standard.html),
PostgreSQL does not support feature T301.
Therefore the implemented behavior is not "wrong", but it could arguably
be enhanced.
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs