diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c index b4fa89bce906319aaa4bb39f21ba983d5d6ef7d3..0b07a86a6aee5d26673aba3901b141d7ea561376 100644 --- a/contrib/postgres_fdw/connection.c +++ b/contrib/postgres_fdw/connection.c @@ -741,17 +741,17 @@ pgfdw_xact_callback(XactEvent event, void *arg) case XACT_EVENT_PRE_PREPARE: /* - * We disallow remote transactions that modified anything, - * since it's not very reasonable to hold them open until - * the prepared transaction is committed. For the moment, - * throw error unconditionally; later we might allow - * read-only cases. Note that the error will cause us to - * come right back here with event == XACT_EVENT_ABORT, so - * we'll clean up the connection state at that point. + * We disallow any remote transactions, since it's not + * very reasonable to hold them open until the prepared + * transaction is committed. For the moment, throw error + * unconditionally; later we might allow read-only cases. + * Note that the error will cause us to come right back + * here with event == XACT_EVENT_ABORT, so we'll clean up + * the connection state at that point. */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cannot prepare a transaction that modified remote tables"))); + errmsg("cannot PREPARE a transaction that has operated on postgres_fdw foreign tables"))); break; case XACT_EVENT_PARALLEL_COMMIT: case XACT_EVENT_COMMIT: diff --git a/doc/src/sgml/postgres-fdw.sgml b/doc/src/sgml/postgres-fdw.sgml index 7c922821e988ffde8711e8323ff310c8166187d4..48e0ad2756399451315020ff3a2e90dea95b5d9c 100644 --- a/doc/src/sgml/postgres-fdw.sgml +++ b/doc/src/sgml/postgres-fdw.sgml @@ -415,6 +415,12 @@ COMMITTED</> local transaction. A future <productname>PostgreSQL</productname> release might modify these rules. </para> + + <para> + Note that it is currently not supported by + <filename>postgres_fdw</filename> to prepare the remote transaction for + two-phase commit. + </para> </sect2> <sect2>