Re: pgsql: Allow insert and update tuple routing and COPY for foreign table

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: Robert Haas <rhaas(at)postgresql(dot)org>, pgsql-committers(at)lists(dot)postgresql(dot)org, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Allow insert and update tuple routing and COPY for foreign table
Date: 2019-04-20 11:53:26
Message-ID: ed0b7471dce91169d871347cf003d8094ab96895.camel@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Fri, 2018-04-06 at 23:24 +0000, Robert Haas wrote:
> Allow insert and update tuple routing and COPY for foreign tables.
>
> Also enable this for postgres_fdw.
>
> Etsuro Fujita, based on an earlier patch by Amit Langote. The larger
> patch series of which this is a part has been reviewed by Amit
> Langote, David Fetter, Maksim Milyutin, Álvaro Herrera, Stephen Frost,
> and me. Minor documentation changes to the final version by me.
>
> Discussion: http://postgr.es/m/29906a26-da12-8c86-4fb9-d8f88442f2b9@lab.ntt.co.jp

This commit makes life hard for foreign data wrappers that support
data modifications.

If a FDW implements ExecForeignInsert, this commit automatically assumes
that it also supports COPY FROM. It will call ExecForeignInsert without
calling PlanForeignModify and BeginForeignModify, and a FDW that does not
expect that will probably fail.

So this commit silently turns a functioning FDW into a broken FDW.
That is not nice. Probably not every FDW is aware of this change, and
maybe there are FDWs that support INSERT but don't want to support COPY
for some reason.

I propose that PostgreSQL only allows COPY FROM on a foreign table if the FDW
implements BeginForeignInsert. The attached patch implements that.

I think this should be backpatched to v11.

Yours,
Laurenz Albe

Attachment Content-Type Size
0001-COPY-FROM-on-foreign-tables-requires-BeginForeignIns.patch text/x-patch 2.1 KB

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2019-04-20 15:18:48 pgsql: docs: reorder collation regression test order in paragraph
Previous Message Stephen Frost 2019-04-20 01:23:13 pgsql: GSSAPI: Improve documentation and tests

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2019-04-20 13:18:15 Re: finding changed blocks using WAL scanning
Previous Message Fabien COELHO 2019-04-20 11:23:42 Re: refactoring - share str2*int64 functions