Re: [HACKERS] Bug in ExecModifyTable function and trigger issuesfor foreign tables

Поиск
Список
Период
Сортировка
От Ildus Kurbangaliev
Тема Re: [HACKERS] Bug in ExecModifyTable function and trigger issuesfor foreign tables
Дата
Msg-id 20170515165455.545dd3d6@wp.localdomain
обсуждение исходный текст
Ответ на Re: [HACKERS] Bug in ExecModifyTable function and trigger issues forforeign tables  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
Ответы Re: [HACKERS] Bug in ExecModifyTable function and trigger issues forforeign tables  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
Список pgsql-hackers
On Mon, 15 May 2017 17:43:52 +0530
Ashutosh Bapat <ashutosh.bapat@enterprisedb.com> wrote:

> On Mon, May 15, 2017 at 2:46 PM, Ildus Kurbangaliev
> <i.kurbangaliev@postgrespro.ru> wrote:
> > On Mon, 15 May 2017 10:34:58 +0530
> > Dilip Kumar <dilipbalaut@gmail.com> wrote:
> >  
> >> On Sun, May 14, 2017 at 9:54 PM, Dilip Kumar
> >> <dilipbalaut@gmail.com> wrote:  
> >> > After your fix, now tupleid is invalid which is expected, but
> >> > seems like we need to do something more. As per the comments
> >> > seems like it is expected to get the oldtuple from planSlot.
> >> > But I don't see any code for handling that part.  
> >>
> >> Maybe we should do something like attached patch.
> >>  
> >
> > Hi,
> > planSlot contains already projected tuple, you can't use it as
> > oldtuple. I think problem is that `rewriteTargetListUD` called only
> > for parent relation, so there is no `wholerow` attribute for
> > foreign tables.  
> 
> Yes. postgresAddForeignUpdateTargets() which is called by
> rewriteTargetListUD injects "ctid". "wholerow" is always there. Not
> for postgres_fdw but for other wrappers it might be a bad news. ctid,
> whole row obtained from the remote postgres server will fit the tuple
> descriptor of parent, but for other FDWs the column injected by
> rewriteTargetListUD() may make the child tuple look different from
> that of the parent, so we may not pass that column down to the child.
> 

I'm trying to say that when we have a regular table as parent, and
foreign table as child, in rewriteTargetListUD `wholerow` won't be
added, because rewriteTargetListUD will be called only for parent
relation. You can see that by running the script i provided in the first
message of this thread.

-- 
---
Ildus Kurbangaliev
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Mark Dilger
Дата:
Сообщение: Re: [HACKERS] Event triggers + table partitioning cause server crash in current master
Следующее
От: Haribabu Kommi
Дата:
Сообщение: [HACKERS] Increasing parallel workers at runtime