Re: Bug in ExecModifyTable function and trigger issues for foreign tables

Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>

From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>, Ildus Kurbangaliev <i.kurbangaliev@postgrespro.ru>
Cc: Dilip Kumar <dilipbalaut@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Robert Haas <robertmhaas@gmail.com>
Date: 2017-05-16T12:36:11Z
Lists: pgsql-hackers

Attachments

On 2017/05/16 21:11, Ashutosh Bapat wrote:
> On Tue, May 16, 2017 at 5:35 PM, Ildus Kurbangaliev
> <i.kurbangaliev@postgrespro.ru> wrote:

>> I agree. Maybe this issue should be added to Postgresql Open Items?
>> I think there should be some complex solution that fixes not only
>> triggers for foreign tables at table partitioning, but covers other
>> possible not working cases.

> I doubt if this is an open item, since DMLs on foreign tables are
> supported since 9.3 and support to add foreign tables to inheritance
> was added back in 9.5.

I think this issue was introduced by the latter, so that was my fault.

One approach I came up with to fix this issue is to rewrite the 
targetList entries of an inherited UPDATE/DELETE properly using 
rewriteTargetListUD, when generating a plan for each child table in 
inheritance_planner.  Attached is a WIP patch for that.  Maybe I am 
missing something, though.

Best regards,
Etsuro Fujita

Commits

  1. Fix creation of resjunk tlist entries for inherited mixed UPDATE/DELETE.