Hi, On 2020-07-20 17:27:30 +0300, Marko Tiikkaja wrote: > It appears that when logical decoding sends out the data from the output > plugin, it is not guaranteed that the decoded transaction's effects are > visible on the source server. Is this the way it's supposed to work?
At the moment the visibility behaviour is basically the same as crash recovery / standbys. And they just look at the WAL... > If so, would doing something like this in the output plugin be reasonable? > > TransactionId xid = transaction->xid; > if (transaction->is_known_as_subxact) > xid = transaction->toplevel_xid; > > if (TransactionIdIsInProgress(xid)) > XactLockTableWait(xid, NULL, NULL, XLTW_None); I'd not be surprised if this had a potential to cause deadlocks. Greetings, Andres Freund