Re: Functional dependencies and GROUP BY

Peter Eisentraut <peter_e@gmx.net>

From: Peter Eisentraut <peter_e@gmx.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Dean Rasheed <dean.a.rasheed@gmail.com>, Alex Hunsaker <badalex@gmail.com>, pgsql-hackers@postgresql.org
Date: 2010-09-05T18:28:10Z
Lists: pgsql-hackers
On sön, 2010-09-05 at 11:35 -0400, Tom Lane wrote:
> Dean Rasheed <dean.a.rasheed@gmail.com> writes:
> > On 5 September 2010 16:15, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >> I don't recall having thought about it one way or the other. What did
> >> the check look like?
> 
> > Well originally it was searching indexes rather than constraints, and
> > funcdeps_check_pk() included the following check:
> 
> > if (!indexStruct->indisprimary || !indexStruct->indimmediate)
> > 	continue;
> 
> > Now its looping over pg_constraint entries, so I guess anything wtih
> > con->condeferrable == true should be ignored.
> 
> Seems reasonable, will fix.  Thanks for the report!

Yes, the SQL standard explicitly requires the constraint in question to
be immediate.