GROUP BY can only infer functional dependency from non-deferrable primary keys.

Peter's original patch had this right, but I dropped the check while revising
the code to search pg_constraint instead of pg_index.  Spotted by Dean Rasheed.
This commit is contained in:
Tom Lane 2010-09-05 15:45:42 +00:00
parent 8d8d5cb612
commit a756f5ce14
1 changed files with 4 additions and 1 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.55 2010/08/07 02:44:06 tgl Exp $
* $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.56 2010/09/05 15:45:42 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -836,6 +836,9 @@ check_functional_grouping(Oid relid,
/* Only PK constraints are of interest for now, see comment above */
if (con->contype != CONSTRAINT_PRIMARY)
continue;
/* Constraint must be non-deferrable */
if (con->condeferrable)
continue;
/* Extract the conkey array, ie, attnums of PK's columns */
adatum = heap_getattr(tuple, Anum_pg_constraint_conkey,