Re: TRUNCATE on foreign table

Поиск
Список
Период
Сортировка
От Fujii Masao
Тема Re: TRUNCATE on foreign table
Дата
Msg-id c427d3ec-00df-0535-e896-2f1f1baa2dbd@oss.nttdata.com
обсуждение исходный текст
Ответ на Re: TRUNCATE on foreign table  (Kazutaka Onishi <onishi@heterodb.com>)
Ответы Re: TRUNCATE on foreign table  (Kohei KaiGai <kaigai@heterodb.com>)
Список pgsql-hackers

On 2021/03/28 2:37, Kazutaka Onishi wrote:
> Fujii-san,
> 
> Thank you for your review!
> Now I prepare v5 patch and I'll answer to your each comment. please
> check this again.
> m(_ _)m
> 
> 1. In postgres-fdw.sgml, "and truncatable" should be appended into the
> above first description?
> 2. truncate.sgml should be updated because, for example, it contains
> the above descriptions.
> 
> Yeah, you're right. I've fixed it.
> 
> 
> 
> 3.  Don't we need to document the detail information about frels_extra?
> 
> I've written about frels_extra into fdwhander.sgml.
> 
> 
> 
> 4. postgres_fdw determines whether to specify ONLY or not by checking
> whether the passed extra value is zero or not.
> 
> Please refer this:
> https://www.postgresql.org/message-id/CAOP8fzb-t3WVNLjGMC%2B4sV4AZa9S%3DMAQ7Q6pQoADMCf_1jp4ew%40mail.gmail.com
>> Negative value means that foreign-tables are not specified in the TRUNCATE
>> command, but truncated due to dependency (like partition's child leaf).
> 
> I've added this information into fdwhandler.sgml.

Even when a foreign table is specified explicitly in TRUNCATE command,
its extra value can be negative if it's found as an inherited children firstly
(i.e., in the case where the partitioned table having that foreign table as
its partition is specified explicitly in TRUNCATE command).
Isn't this a problem?

Please imagine the following example;

----------------------------------
create extension postgres_fdw;
create server loopback foreign data wrapper postgres_fdw;
create user mapping for public server loopback;

create table t (i int, j int) partition by hash (j);
create table t0 partition of t for values with (modulus 2, remainder 0);
create table t1 partition of t for values with (modulus 2, remainder 1);

create table test (i int, j int) partition by hash (i);
create table test0 partition of test for values with (modulus 2, remainder 0);
create foreign table ft partition of test for values with (modulus 2, remainder 1) server loopback options (table_name
't');
----------------------------------

In this example, "truncate ft, test" works fine, but "truncate test, ft" causes
an error though they should work in the same way basically.

Regards,

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION



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

Предыдущее
От: Justin Pryzby
Дата:
Сообщение: Re: Merging statistics from children instead of re-sampling everything
Следующее
От: Vik Fearing
Дата:
Сообщение: Re: Idea: Avoid JOINs by using path expressions to follow FKs