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
preventusing a prepared transaction, currently it is just notified "operations involving temporary tables or the
session'stemporary 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
morecomprehensible 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