Re: TRUNCATE on foreign table

Поиск
Список
Период
Сортировка
От Kohei KaiGai
Тема Re: TRUNCATE on foreign table
Дата
Msg-id CAOP8fzYY=xkj_ke3h-cHO08S6WKfcja0uNPmGjNYo50rm66+6Q@mail.gmail.com
обсуждение исходный текст
Ответ на Re: TRUNCATE on foreign table  (Fujii Masao <masao.fujii@oss.nttdata.com>)
Ответы Re: TRUNCATE on foreign table
Список pgsql-hackers
2021年4月8日(木) 18:25 Fujii Masao <masao.fujii@oss.nttdata.com>:
>
> On 2021/04/08 15:48, Kohei KaiGai wrote:
> > 2021年4月8日(木) 15:04 Fujii Masao <masao.fujii@oss.nttdata.com>:
> >>
> >> On 2021/04/08 13:43, Kohei KaiGai wrote:
> >>> In case when a local table (with no children) has same contents,
> >>> TRUNCATE command
> >>> witll remove the entire table contents.
> >>
> >> But if there are local child tables that inherit the local parent table, and TRUNCATE ONLY <parent table> is
executed,only the contents in the parent will be truncated. I was thinking that this behavior should be applied to the
foreigntable whose remote (parent) table have remote child tables. 
> >>
> >> So what we need to reach the consensus is; how far ONLY option affects. Please imagine the case where we have
> >>
> >> (1) local parent table, also foreign table of remote parent table
> >> (2) local child table, inherits local parent table
> >> (3) remote parent table
> >> (4) remote child table, inherits remote parent table
> >>
> >> I think that we agree all (1), (2), (3) and (4) should be truncated if local parent table (1) is specified without
ONLYin TRUNCATE command. OTOH, if ONLY is specified, we agree that at least local child table (2) should NOT be
truncated.
> >>
> > My understanding of a foreign table is a representation of external
> > data, including remote RDBMS but not only RDBMS,
> > regardless of the parent-child relationship at the local side.
> > So, once a local foreign table wraps entire tables tree (a parent and
> > relevant children) at the remote side, at least, it shall
> > be considered as a unified data chunk from the standpoint of the local side.
>
> At least for me it's not intuitive to truncate the remote table and its all dependent tables even though users
explicitlyspecify ONLY for the foreign table. As far as I read the past discussion, some people was thinking the same. 
>
> >
> > Please assume if file_fdw could map 3 different CSV files, then
> > truncate on the foreign table may eliminate just 1 of 3 files.
> > Is it an expected / preferable behavior?
>
> I think that's up to each FDW. That is, IMO the information about whether ONLY is specified or not for each table
shouldbe passed to FDW. Then FDW itself should determine how to handle that information. 
>
> Anyway, attached is the updated version of the patch. This is still based on the latest Kazutaka-san's patch. That
is,extra list for ONLY is still passed to FDW. What about committing this version at first? Then we can continue the
discussionand change the behavior later if necessary. 
>
Ok, it's fair enought for me.

I'll try to sort out my thought, then raise a follow-up discussion if necessary.

Best regards,
--
HeteroDB, Inc / The PG-Strom Project
KaiGai Kohei <kaigai@heterodb.com>



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

Предыдущее
От: Bharath Rupireddy
Дата:
Сообщение: Re: Simplify backend terminate and wait logic in postgres_fdw test
Следующее
От: Fujii Masao
Дата:
Сообщение: Re: TRUNCATE on foreign table