Re: Assertion failure with ALTER TABLE ATTACH PARTITION withlog_min_messages >= DEBUG1 - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Assertion failure with ALTER TABLE ATTACH PARTITION withlog_min_messages >= DEBUG1
Date
Msg-id 20181006000040.GB1197@paquier.xyz
Whole thread Raw
In response to Re: Assertion failure with ALTER TABLE ATTACH PARTITION withlog_min_messages >= DEBUG1  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: Assertion failure with ALTER TABLE ATTACH PARTITION withlog_min_messages >= DEBUG1  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
On Fri, Oct 05, 2018 at 12:41:29PM -0300, Alvaro Herrera wrote:
> On 2018-Oct-05, Michael Paquier wrote:
>> Looking at the stack trace there is this log in
>> validateForeignKeyConstraint:
>> ereport(DEBUG1,
>>         (errmsg("validating foreign key constraint \"%s\"", conname)));
>>
>> However conname is set to NULL in this code path.
>
> Ouch.  Thanks for catching this one.  I think the "this is all we need"
> comment is just asking for trouble :-(

Would you reformulate it?  Like, say, if new fields are needed perhaps
we could just say instead "XXX: make sure to update the list of fields
copied if a new partition-relation command needs it."

>> From what I can see the problem comes from CloneForeignKeyConstraint
>> which forgets to assign the constraint name when cloning the FK
>> definition.  While looking at the ATTACH PARTITION code, I have noticed
>> that a variable gets overridden, which is in my opinion bad style.
>
> Ugh, yeah that looks bad.  I wish the compiler would warn about this :-(

Do you want me to take care of this one?  On this issue, I am way more
confident than the other thread for event triggers as I spent quite some
time on it.
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Segfault when creating partition with a primary key and sql_droptrigger exists
Next
From: Thomas Munro
Date:
Subject: Re: Relax transactional restrictions on ALTER ENUM ... ADD TYPE (redux)