Re: TRUNCATE on foreign table - Mailing list pgsql-hackers
From | Kohei KaiGai |
---|---|
Subject | Re: TRUNCATE on foreign table |
Date | |
Msg-id | CAOP8fzYY=xkj_ke3h-cHO08S6WKfcja0uNPmGjNYo50rm66+6Q@mail.gmail.com Whole thread Raw |
In response to | Re: TRUNCATE on foreign table (Fujii Masao <masao.fujii@oss.nttdata.com>) |
Responses |
Re: TRUNCATE on foreign table
|
List | 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 by date: