From b6f1cca9ba3d24c8fcaa9facc30c96bcc50b37aa Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Mon, 23 Oct 2023 10:20:30 +0900 Subject: [PATCH] Remove unnecessary break in pg_logical_replication_slot_advance() pg_logical_replication_slot_advance() included a break condition to stop when a targeted LSN is reached, when processing a series of WAL records with XLogReadRecord(). Since 38a957316d7e, it matched with the check of its main while loop. This condition saved from an extra CFI check, actually pointless, so let's remove this condition and simplify the code. In passing, fix an incorrect comment. Author: Bharath Rupireddy Reviewed-by: Tom Lane, Gurjeet Singh Discussion: https://postgr.es/m/CALj2ACWfGDLQ2cy7ZKwxnJqbDkO6Yvqqrqxne5ZN4HYm=PRTGg@mail.gmail.com --- src/backend/replication/slotfuncs.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/backend/replication/slotfuncs.c b/src/backend/replication/slotfuncs.c index 6035cf48160..4b694a03d09 100644 --- a/src/backend/replication/slotfuncs.c +++ b/src/backend/replication/slotfuncs.c @@ -500,7 +500,7 @@ pg_logical_replication_slot_advance(XLogRecPtr moveto) /* invalidate non-timetravel entries */ InvalidateSystemCaches(); - /* Decode at least one record, until we run out of records */ + /* Decode records until we reach the requested target */ while (ctx->reader->EndRecPtr < moveto) { char *errm = NULL; @@ -523,10 +523,6 @@ pg_logical_replication_slot_advance(XLogRecPtr moveto) if (record) LogicalDecodingProcessRecord(ctx, ctx->reader); - /* Stop once the requested target has been reached */ - if (moveto <= ctx->reader->EndRecPtr) - break; - CHECK_FOR_INTERRUPTS(); }