7.3 GROUP BY differs from 7.2 - Mailing list pgsql-bugs

From Dan Langille
Subject 7.3 GROUP BY differs from 7.2
Date
Msg-id 20030221193223.G76894@xeon.unixathome.org
Whole thread Raw
Responses Re: 7.3 GROUP BY differs from 7.2
List pgsql-bugs
I notice this today when migrating an application from 7.2 to 7.3.  The
column name is not being recognized.

See also: http://archives.postgresql.org/pgsql-sql/2003-02/msg00480.php

This is the query in question:

SELECT element_id as wle_element_id, COUNT(watch_list_id)
  FROM watch_list JOIN watch_list_element
       ON watch_list.id   = watch_list_element.watch_list_id
 WHERE watch_list.user_id = 1
 GROUP BY watch_list_element.element_id;

ERROR:  Attribute unnamed_join.element_id must be GROUPed or used in an
aggregate function

Of note is the column watch_list_element.element_id. The following
variation works:

SELECT element_id as wle_element_id, COUNT(watch_list_id)
  FROM watch_list JOIN watch_list_element
       ON watch_list.id   = watch_list_element.watch_list_id
 WHERE watch_list.user_id = 1
 GROUP BY element_id;

i.e. remove the table name from the GROUP BY field.  Similar success is
obtained if you add the table name to element_id in both the SELECT and
the GROUP BY.

Similarly, this works:

SELECT element_id as wle_element_id, COUNT(watch_list_id)
  FROM watch_list JOIN watch_list_element
       ON watch_list.id   = watch_list_element.watch_list_id
 WHERE watch_list.user_id = 1
 GROUP BY wle_element_id;

i.e. use the column alias.

Under 7.2.3, all of the above queries work.

cheers

pgsql-bugs by date:

Previous
From: pgsql-bugs@postgresql.org
Date:
Subject: Bug #900: Win32 Postgres ODBC driver does not allow 2 connections to a database at the same time
Next
From: Tom Lane
Date:
Subject: Re: 7.3 GROUP BY differs from 7.2