Re: postgres_fdw: IMPORT FOREIGN SCHEMA ... LIMIT TO (partition)

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Bernd Helmle <mailings@oopsware.de>, Matthias van de Meent <boekewurm+postgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Stephen Frost <sfrost@snowman.net>, Michael Paquier <michael@paquier.xyz>
Date: 2021-04-06T12:29:20Z
Lists: pgsql-hackers

Attachments


On 2021/04/06 16:05, Amit Langote wrote:
> On Tue, Apr 6, 2021 at 8:34 AM Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
>> For now I have no objection to this feature.
>>
>> -IMPORT FOREIGN SCHEMA import_source EXCEPT (t1, "x 4", nonesuch)
>> +IMPORT FOREIGN SCHEMA import_source EXCEPT (t1, "x 4", nonesuch, t4_part)
>>
>> Isn't it better to create also another partition like "t4_part2"?
>> If we do this, for example, the above test can confirm that both
>> partitions in EXCEPT and not in are excluded.
>>
>> +    All tables or foreign tables which are partitions of some other table
>> +    are automatically excluded from <xref linkend="sql-importforeignschema"/>
>> +    unless they are explicitly included in the <literal>LIMIT TO</literal>
>>
>> IMO it's better to document that partitions are imported when they are
>> included in LIMIT TO, instead. What about the following?
>>
>>       Tables or foreign tables which are partitions of some other table are
>>       imported only when they are explicitly specified in
>>       <literal>LIMIT TO</literal> clause.  Otherwise they are automatically
>>       excluded from <xref linkend="sql-importforeignschema"/>.
>>
>> +    clause.  Since all data can be accessed through the partitioned table
>> +    which is the root of the partitioning hierarchy, this approach should
>> +    allow access to all the data without creating extra objects.
>>
>> Now "this approach" in the above is not clear? What about replacing it with
>> something like "importing only partitioned tables"?
> 
> +1, that wording is better.

Thanks! So I applied all the changes that I suggested upthread to the patch.
I also updated the comment as follows.

  		 * Import table data for partitions only when they are explicitly
-		 * specified in LIMIT TO clause. Otherwise ignore them and
-		 * only include the definitions of the root partitioned tables to
-		 * allow access to the complete remote data set locally in
-		 * the schema imported.
+		 * specified in LIMIT TO clause. Otherwise ignore them and only
+		 * include the definitions of the root partitioned tables to allow
+		 * access to the complete remote data set locally in the schema
+		 * imported.

Attached is the updated version of the patch. Barring any objection,
I'm thinking to commit this.

Regards,

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

Commits

  1. postgres_fdw: Allow partitions specified in LIMIT TO to be imported.

  2. postgres_fdw: Teach IMPORT FOREIGN SCHEMA about partitioning.