Re: set relispartition when attaching child index

Amit Langote <langote_amit_f8@lab.ntt.co.jp>

From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Amit Langote <amitlangote09@gmail.com>, Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-04-25T01:11:04Z
Lists: pgsql-hackers
On 2019/04/25 0:55, Amit Langote wrote:
> On Thu, Apr 25, 2019 at 12:39 AM Amit Langote <amitlangote09@gmail.com> wrote:
>> On Thu, Apr 25, 2019 at 12:38 AM Amit Langote <amitlangote09@gmail.com> wrote:
>>> On Thu, Apr 25, 2019 at 12:35 AM Alvaro Herrera
>>> <alvherre@2ndquadrant.com> wrote:
>>>> On 2019-Apr-25, Amit Langote wrote:
>>>>
>>>>> It seems that DefineIndex() is forgetting to update_relispartition()
>>>>> on a partition's index when it's attached to an index being added to
>>>>> the parent.  That results in unexpected behavior when adding a foreign
>>>>> key referencing the parent.
>>>>
>>>> BTW, maybe IndexSetParentIndex ought to be the one calling
>>>> update_relispartition() ...
>>>
>>> I thought so too, but other sites are doing what I did in the patch.
>>
>> Although, we wouldn't have this bug if it was IndexSetParentIndex
>> calling it.  Maybe a good idea to do that now.
> 
> I tried that in the attached.

BTW, this will need to be back-patched to 11.

Thanks,
Amit




Commits

  1. Fix partitioned index attachment