From c9f92f39da7f79d4f4296af4e44957066eb61992 Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Wed, 23 Mar 2022 03:29:03 +0000
Subject: [PATCH v8] Deduplicate checkpoint/restartpoint starting/complete
 message

---
 src/backend/access/transam/xlog.c | 97 +++++++++++--------------------
 1 file changed, 33 insertions(+), 64 deletions(-)

diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 4ac3871c74..364f07bee9 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -6056,30 +6056,18 @@ ShutdownXLOG(int code, Datum arg)
 static void
 LogCheckpointStart(int flags, bool restartpoint)
 {
-	if (restartpoint)
-		ereport(LOG,
-		/* translator: the placeholders show checkpoint options */
-				(errmsg("restartpoint starting:%s%s%s%s%s%s%s%s",
-						(flags & CHECKPOINT_IS_SHUTDOWN) ? " shutdown" : "",
-						(flags & CHECKPOINT_END_OF_RECOVERY) ? " end-of-recovery" : "",
-						(flags & CHECKPOINT_IMMEDIATE) ? " immediate" : "",
-						(flags & CHECKPOINT_FORCE) ? " force" : "",
-						(flags & CHECKPOINT_WAIT) ? " wait" : "",
-						(flags & CHECKPOINT_CAUSE_XLOG) ? " wal" : "",
-						(flags & CHECKPOINT_CAUSE_TIME) ? " time" : "",
-						(flags & CHECKPOINT_FLUSH_ALL) ? " flush-all" : "")));
-	else
-		ereport(LOG,
-		/* translator: the placeholders show checkpoint options */
-				(errmsg("checkpoint starting:%s%s%s%s%s%s%s%s",
-						(flags & CHECKPOINT_IS_SHUTDOWN) ? " shutdown" : "",
-						(flags & CHECKPOINT_END_OF_RECOVERY) ? " end-of-recovery" : "",
-						(flags & CHECKPOINT_IMMEDIATE) ? " immediate" : "",
-						(flags & CHECKPOINT_FORCE) ? " force" : "",
-						(flags & CHECKPOINT_WAIT) ? " wait" : "",
-						(flags & CHECKPOINT_CAUSE_XLOG) ? " wal" : "",
-						(flags & CHECKPOINT_CAUSE_TIME) ? " time" : "",
-						(flags & CHECKPOINT_FLUSH_ALL) ? " flush-all" : "")));
+	ereport(LOG,
+	/* translator: the placeholders after first %s show restartpoint/checkpoint options */
+			(errmsg("%s starting:%s%s%s%s%s%s%s%s",
+					restartpoint ? _("restartpoint") : _("checkpoint"),
+					(flags & CHECKPOINT_IS_SHUTDOWN) ? " shutdown" : "",
+					(flags & CHECKPOINT_END_OF_RECOVERY) ? " end-of-recovery" : "",
+					(flags & CHECKPOINT_IMMEDIATE) ? " immediate" : "",
+					(flags & CHECKPOINT_FORCE) ? " force" : "",
+					(flags & CHECKPOINT_WAIT) ? " wait" : "",
+					(flags & CHECKPOINT_CAUSE_XLOG) ? " wal" : "",
+					(flags & CHECKPOINT_CAUSE_TIME) ? " time" : "",
+					(flags & CHECKPOINT_FLUSH_ALL) ? " flush-all" : "")));
 }
 
 /*
@@ -6129,46 +6117,27 @@ LogCheckpointEnd(bool restartpoint)
 			CheckpointStats.ckpt_sync_rels;
 	average_msecs = (long) ((average_sync_time + 999) / 1000);
 
-	if (restartpoint)
-		ereport(LOG,
-				(errmsg("restartpoint complete: wrote %d buffers (%.1f%%); "
-						"%d WAL file(s) added, %d removed, %d recycled; "
-						"write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; "
-						"sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; "
-						"distance=%d kB, estimate=%d kB",
-						CheckpointStats.ckpt_bufs_written,
-						(double) CheckpointStats.ckpt_bufs_written * 100 / NBuffers,
-						CheckpointStats.ckpt_segs_added,
-						CheckpointStats.ckpt_segs_removed,
-						CheckpointStats.ckpt_segs_recycled,
-						write_msecs / 1000, (int) (write_msecs % 1000),
-						sync_msecs / 1000, (int) (sync_msecs % 1000),
-						total_msecs / 1000, (int) (total_msecs % 1000),
-						CheckpointStats.ckpt_sync_rels,
-						longest_msecs / 1000, (int) (longest_msecs % 1000),
-						average_msecs / 1000, (int) (average_msecs % 1000),
-						(int) (PrevCheckPointDistance / 1024.0),
-						(int) (CheckPointDistanceEstimate / 1024.0))));
-	else
-		ereport(LOG,
-				(errmsg("checkpoint complete: wrote %d buffers (%.1f%%); "
-						"%d WAL file(s) added, %d removed, %d recycled; "
-						"write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; "
-						"sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; "
-						"distance=%d kB, estimate=%d kB",
-						CheckpointStats.ckpt_bufs_written,
-						(double) CheckpointStats.ckpt_bufs_written * 100 / NBuffers,
-						CheckpointStats.ckpt_segs_added,
-						CheckpointStats.ckpt_segs_removed,
-						CheckpointStats.ckpt_segs_recycled,
-						write_msecs / 1000, (int) (write_msecs % 1000),
-						sync_msecs / 1000, (int) (sync_msecs % 1000),
-						total_msecs / 1000, (int) (total_msecs % 1000),
-						CheckpointStats.ckpt_sync_rels,
-						longest_msecs / 1000, (int) (longest_msecs % 1000),
-						average_msecs / 1000, (int) (average_msecs % 1000),
-						(int) (PrevCheckPointDistance / 1024.0),
-						(int) (CheckPointDistanceEstimate / 1024.0))));
+	ereport(LOG,
+	/* translator: the placeholders after first %s show restartpoint/checkpoint stats */
+			(errmsg("%s complete: wrote %d buffers (%.1f%%); "
+					"%d WAL file(s) added, %d removed, %d recycled; "
+					"write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; "
+					"sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; "
+					"distance=%d kB, estimate=%d kB",
+					restartpoint ? _("restartpoint") : _("checkpoint"),
+					CheckpointStats.ckpt_bufs_written,
+					(double) CheckpointStats.ckpt_bufs_written * 100 / NBuffers,
+					CheckpointStats.ckpt_segs_added,
+					CheckpointStats.ckpt_segs_removed,
+					CheckpointStats.ckpt_segs_recycled,
+					write_msecs / 1000, (int) (write_msecs % 1000),
+					sync_msecs / 1000, (int) (sync_msecs % 1000),
+					total_msecs / 1000, (int) (total_msecs % 1000),
+					CheckpointStats.ckpt_sync_rels,
+					longest_msecs / 1000, (int) (longest_msecs % 1000),
+					average_msecs / 1000, (int) (average_msecs % 1000),
+					(int) (PrevCheckPointDistance / 1024.0),
+					(int) (CheckPointDistanceEstimate / 1024.0))));
 }
 
 /*
-- 
2.25.1

