Disable logical decoding after REPACK (CONCURRENTLY) REPACK (CONCURRENTLY) uses a temporary logical replication slot, which is dropped once done, but it wasn't calling RequestDisableLogicalDecoding(), leaving effective_wal_level stuck at 'logical'.
Fix by adding a Boolean flag to ReplicationSlotDropAcquired() to have it request to disable logical decoding, and passing it as true on REPACK. Other callers of that function preserve their existing behavior. Author: Imran Zaheer <[email protected]> Reviewed-by: shveta malik <[email protected]> Discussion: https://postgr.es/m/CA+UBfaktds57dw2M8BEv_kS-=ixph3w+3mxkixtadqmi_k7...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/2af1dc89282bea681201cf66e2bb32537294e623 Modified Files -------------- src/backend/commands/repack_worker.c | 2 +- src/backend/replication/logical/launcher.c | 3 +- src/backend/replication/logical/slotsync.c | 10 ++++-- src/backend/replication/slot.c | 48 +++++++++++--------------- src/include/replication/slot.h | 2 +- src/test/recovery/t/051_effective_wal_level.pl | 14 ++++++++ 6 files changed, 47 insertions(+), 32 deletions(-)
