Dear Sawada-san, > > I think that replaying the status change record itself is correct, as > > it reflects the status at the time the record was written. The problem > > is that the end-of-recovery code assumed that this cannot happen, > > instead of adjusting the status. Therefore, the fix removes the > > wal_level='minimal' special case from > > UpdateLogicalDecodingStatusEndOfRecovery() so that it recomputes the > > status as usual.
Good catch. I could reproduce. I initially thought that we could just skip redoing for XLOG_LOGICAL_DECODING_STATUS_CHANGE records. I confirmed it could also solve the issue. Also, I think it could slightly reduce the redoing time because it does not have to emit/wait the ProcSignalBarrier. But your point is also valid: either way is fine for me. I reviewed your patches and I could not find issues. Best regards, Hayato Kuroda FUJITSU LIMITED
