Here is resubmission of patch to implement logical decoding of two-phase transactions (instead of treating them as usual transaction when commit)  I’ve slightly polished things and used test_decoding output plugin as client.
General idea quite simple here: * Write gid along with commit/prepare records in case of 2pc * Add several routines to decode prepare records in the same way as it already happens in logical decoding. I’ve also added explicit LOCK statement in test_decoding regression suit to check that it doesn’t break thing. If somebody can create scenario that will block decoding because of existing dummy backend lock that will be great help. Right now all my tests passing (including TAP tests to check recovery of twophase tx in case of failures from adjacent mail thread). If we will agree about current approach than I’m ready to add this stuff to proposed in-core logical replication.  https://www.postgresql.org/message-id/EE7452CA-3C39-4A0E-97EC-17A414972884%40postgrespro.ru
Description: Binary data
-- Stas Kelvich Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
-- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers