Re: Local visibility with logical decoding
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Marko Tiikkaja <marko@joh.to>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-07-20T20:21:34Z
Lists: pgsql-hackers
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