summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2024-08-08 10:20:25 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2024-08-08 10:22:30 +0300
commitc943e2aae7c59c673d502bbb243b57469be4c75f (patch)
tree831047861df57b0656e67de7c2dca0658f58cb92
parentf0096ef13be263cfefb0b47e48c00a0e2fbfef06 (diff)
Fix pg_rewind debug output to print the source timeline history
getTimelineHistory() is called twice, to read the source and the target timeline history files. However, the loop to print the file with the --debug option used the wrong variable when dealing with the source. As a result, the source's history was always printed as empty. Spotted while debugging bug #18575, but this does not fix that bug, just the debugging output. Backpatch to all supported versions. Discussion: https://www.postgresql.org/message-id/092dd515-b7b4-4fd0-8407-ceca2f02f6ec@iki.fi
-rw-r--r--src/bin/pg_rewind/pg_rewind.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/bin/pg_rewind/pg_rewind.c b/src/bin/pg_rewind/pg_rewind.c
index 789f2ffe2c2..2b487e241c5 100644
--- a/src/bin/pg_rewind/pg_rewind.c
+++ b/src/bin/pg_rewind/pg_rewind.c
@@ -645,6 +645,7 @@ getTimelineHistory(ControlFileData *controlFile, int *nentries)
pg_free(histfile);
}
+ /* In debugging mode, print what we read */
if (debug)
{
int i;
@@ -656,10 +657,7 @@ getTimelineHistory(ControlFileData *controlFile, int *nentries)
else
Assert(false);
- /*
- * Print the target timeline history.
- */
- for (i = 0; i < targetNentries; i++)
+ for (i = 0; i < *nentries; i++)
{
TimeLineHistoryEntry *entry;