Hi Gilles,

On Sat, Nov 2, 2019 at 1:29 AM Gilles Darold <gil...@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?

> The second patch modify the message returned by postgres_fdw as per the 
> SELECT statement above the message should be more comprehensible with:
>
>     ERROR:  cannot PREPARE a transaction that has operated on remote tables
>
> like for temporary objects:
>
>     ERROR:  cannot PREPARE a transaction that has operated on temporary 
> objects

+1  (I too think it would be better to use "foreign tables" rather
than "remote tables" as pointed by Michael-san, but I think it might
be much better to use "postgres_fdw foreign tables", not just "foreign
tables".)

Best regards,
Etsuro Fujita

Attachment: improve-postgres-fdw-doc.patch
Description: Binary data

Reply via email to