v62-63-0004-For-cascading-replication-wake-up-physical-walse.patch

text/plain

Filename: v62-63-0004-For-cascading-replication-wake-up-physical-walse.patch
Type: text/plain
Part: 1
Message: Re: Minimal logical decoding on standbys

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
Series: patch v62-0004
File+
src/backend/access/transam/xlogrecovery.c 5 3
diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c
index cc4f7b5302..e6427c54c5 100644
--- a/src/backend/access/transam/xlogrecovery.c
+++ b/src/backend/access/transam/xlogrecovery.c
@@ -1945,7 +1945,7 @@ ApplyWalRecord(XLogReaderState *xlogreader, XLogRecord *record, TimeLineID *repl
 	 * Indeed, logical walsenders on standby can't decode and send data until
 	 * it's been applied.
 	 *
-	 * Physical walsenders don't need to be wakon up during replay unless
+	 * Physical walsenders don't need to be woken up during replay unless
 	 * cascading replication is allowed and time line change occured (so that
 	 * they can notice that they are on a new time line).
 	 *
@@ -1953,9 +1953,11 @@ ApplyWalRecord(XLogReaderState *xlogreader, XLogRecord *record, TimeLineID *repl
 	 *
 	 *  - physical walsenders in case of new time line and cascade
 	 *  replication is allowed.
-	 *  - always true for logical walsenders.
+	 *  - logical walsenders in case cascade replication is allowed (could not
+	 *  be created otherwise).
 	 */
-	WalSndWakeup(switchedTLI && AllowCascadeReplication(), true);
+	if (AllowCascadeReplication())
+		WalSndWakeup(switchedTLI, true);
 
 	/*
 	 * If rm_redo called XLogRequestWalReceiverReply, then we wake up the