Re: Local visibility with logical decoding
Marko Tiikkaja <marko@joh.to>
From: Marko Tiikkaja <marko@joh.to>
To: Antonin Houska <ah@cybertec.at>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-07-20T17:10:55Z
Lists: pgsql-hackers
On Mon, Jul 20, 2020 at 7:36 PM Antonin Houska <ah@cybertec.at> wrote: > Marko Tiikkaja <marko@joh.to> 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? > > Can you please share the test that indicates this behavior? As far as I > understand, the transaction must have been committed before the output > plugin > starts to receive the changes. > I don't have a reliable test program, but you can reproduce quite easily with test_decoding if you put a breakpoint before the SyncRepWaitForLSN() call in src/backend/access/transam/xact.c. pg_logicalrecv will see the changes while the session is sitting on the breakpoint, and not finishing its commit. -marko