Re: [PATCH] Keeps tracking the uniqueness with UniqueKey

From: David Rowley <dgrowleyml(at)gmail(dot)com>
To: Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, rushabh(dot)lathia(at)gmail(dot)com
Subject: Re: [PATCH] Keeps tracking the uniqueness with UniqueKey
Date: 2020-04-04 01:31:32
Message-ID: CAApHDvqNSN3DEjp-ZvDpsBQH4mC9LpJcRGG1Rm-Q_kaVqsnJ_Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, 3 Apr 2020 at 21:56, Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com> wrote:
>
>
>
> On Fri, Apr 3, 2020 at 12:08 PM David Rowley <dgrowleyml(at)gmail(dot)com> wrote:
>>
>> On Fri, 3 Apr 2020 at 16:40, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> > (It occurs to me BTW that we've been overly conservative about using
>> > NOT NULL constraints in planning, because of failing to consider that.
>> > Addition or drop of NOT NULL has to cause a change in
>> > pg_attribute.attnotnull, which will definitely cause a relcache inval
>> > on its table, cf rules in CacheInvalidateHeapTuple(). So we *don't*
>> > need to have a pg_constraint entry corresponding to the NOT NULL, as
>> > we've mistakenly supposed in some past discussions.)
>>
>> Agreed for remove_useless_groupby_columns(), but we'd need it if we
>> wanted to detect functional dependencies in
>> check_functional_grouping() using unique indexes.
>
>
> Thanks for the explanation. I will add the removal in the next version of this
> patch.

There's no need for this patch to touch
remove_useless_groupby_columns(). Fixes for that should be considered
independently and *possibly* even backpatched.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2020-04-04 01:52:05 Re: backup manifests and contemporaneous buildfarm failures
Previous Message Adam Brusselback 2020-04-04 01:05:58 Re: Proposal: is_castable