Re: Multi-insert into a partitioned table with before insert rowtrigger causes server crash on latest HEAD - Mailing list pgsql-hackers

From Ashutosh Sharma
Subject Re: Multi-insert into a partitioned table with before insert rowtrigger causes server crash on latest HEAD
Date
Msg-id CAE9k0P=m0JVPc+vFHaRn83fP32EP=Es44trkapqw=_c1qz011g@mail.gmail.com
Whole thread Raw
In response to Re: Multi-insert into a partitioned table with before insert rowtrigger causes server crash on latest HEAD  (Andres Freund <andres@anarazel.de>)
Responses Re: Multi-insert into a partitioned table with before insert rowtrigger causes server crash on latest HEAD  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
List pgsql-hackers
>
> Yea, that anlysis sounds right. Peter?
>
Thanks Andres for the confirmation on my initial analysis. I'm not
sure why Peter hasn't commented on it so far. However, I continued
investigating on it further and here are findings

I think, the root cause of this problem is that CopyFrom() is using
the stale value of *has_before_insert_row_trig* to determine if the
current partition is okay for multi-insert or not i.e.
has_before_insert_row_trig used to determine multi-insert condition
for the current partition actually belongs to old partition. I think,
*has_before_insert_row_trig* needs to updated before CopyFrom()
evaluates if the current partition is good to go for multi insert or
not. Attached is the patch based on this. I've also added the relevant
test-case for it. Peter, David, Could you please have a look into the
attached patch and share your thoughts. Thank you.

-- 
With Regards,
Ashutosh Sharma
EnterpriseDB:http://www.enterprisedb.com

Attachment

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Large writable variables
Next
From: Andres Freund
Date:
Subject: Re: Large writable variables