Re: [PATCH][DOC] Fix for PREPARE TRANSACTION doc and postgres_fdw message.

Gilles DAROLD <gilles@darold.net>

From: Gilles Darold <gilles@darold.net>
To: Etsuro Fujita <etsuro.fujita@gmail.com>
Cc: "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2019-11-05T11:41:41Z
Lists: pgsql-hackers

Attachments

Hi Esturo,

Le 05/11/2019 à 10:35, Etsuro Fujita a écrit :
> Hi Gilles,
>
> On Sat, Nov 2, 2019 at 1:29 AM Gilles Darold <gilles@darold.net> wrote:
>> As per the following code, t1 is a remote table through postgres_fdw:
>> test=# BEGIN;
>> BEGIN
>> test=# SELECT * FROM t1;
>> ...
>>
>> test=# PREPARE TRANSACTION 'gxid1';
>> ERROR:  cannot prepare a transaction that modified remote tables
>> I have attached a patch to the documentation that adds remote tables to the list of objects where any operation prevent using a prepared transaction, currently it is just notified "operations involving temporary tables or the session's temporary namespace".
> I'm not sure that's a good idea because file_fdw works well for
> PREPARE TRANSACTION!  How about adding a note about  that to the
> section of Transaction Management in the postgres_fdw documentation
> like the attached?


You are right, read only FDW can be used. A second point in favor of
your remark is that this is the responsibility of the FDW implementation
to throw an error when used with a prepared transaction and I see that
this is not the case for all FDW.


I have attached a single patch that include Etsuro Fujita's patch on
postgres_fdw documentation and mine on postgres_fdw error message with
the precision that it comes from postgres_fdw. The modification about
prepared transaction in PostgreSQL documentation has been removed.


-- 
Gilles Darold

Commits

  1. Add regression test for two-phase transaction in postgres_fdw

  2. postgres_fdw: Fix error message for PREPARE TRANSACTION.