pgsql: Don't skip SQL backends in logical decoding for visibility compu

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Don't skip SQL backends in logical decoding for visibility compu
Date: 2014-12-02 23:04:19
Message-ID: E1XvwUV-0001cB-LC@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Don't skip SQL backends in logical decoding for visibility computation.

The logical decoding patchset introduced PROC_IN_LOGICAL_DECODING flag
PGXACT flag, that allows such backends to be skipped when computing
the xmin horizon/snapshots. That's fine and sensible for walsenders
streaming out logical changes, but not at all fine for SQL backends
doing logical decoding. If the latter set that flag any change they
have performed outside of logical decoding will not be regarded as
visible - which e.g. can lead to that change being vacuumed away.

Note that not setting the flag for SQL backends isn't particularly
bothersome - the SQL backend doesn't do streaming, so it only runs for
a limited amount of time.

Per buildfarm member 'tick' and Alvaro.

Backpatch to 9.4, where logical decoding was introduced.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/0fd38e13706e6bd4b2a4ce4e0570d0aa4ad65345

Modified Files
--------------
contrib/test_decoding/expected/decoding_into_rel.out | 2 ++
contrib/test_decoding/sql/decoding_into_rel.sql | 4 ++++
src/backend/replication/logical/logical.c | 15 ++++++++++++---
src/include/storage/proc.h | 2 +-
4 files changed, 19 insertions(+), 4 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2014-12-02 23:04:21 pgsql: Don't skip SQL backends in logical decoding for visibility compu
Previous Message Alvaro Herrera 2014-12-02 20:46:01 Re: pgsql: Move security_label test