Hello.

I found the following lines in xlogprefetch.c.

>    ereport(LOG,
>            (errmsg("recovery finished prefetching at %X/%X; "
>                    "prefetch = " UINT64_FORMAT ", "
>                    "skip_hit = " UINT64_FORMAT ", "
...

It is found in ja.po as

"recovery finished prefetching at %X/%X; prefetch = "

. . . .

Anyway we can rely on %lld/%llu and we decided to use them in
translatable strings.  So the attached fixes (AFAICS) all instances of
the macros in translatable strings.

# I just found 3286065651 did one instance of that so I excluded that
# from this patch.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center
>From 50873d196fea546a78c2c26f1963e172dc95c687 Mon Sep 17 00:00:00 2001
From: Kyotaro Horiguchi <horikyota....@gmail.com>
Date: Wed, 21 Apr 2021 19:50:43 +0900
Subject: [PATCH] Don't use INT64_FORMAT inside message strings, take 2

Use %lld/%llu and cast to (unsigned) long long int instead.
---
 contrib/pg_prewarm/pg_prewarm.c           |  8 ++++----
 src/backend/access/transam/xlogprefetch.c | 23 +++++++++++------------
 src/bin/pgbench/pgbench.c                 |  7 ++++---
 3 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/contrib/pg_prewarm/pg_prewarm.c b/contrib/pg_prewarm/pg_prewarm.c
index a855452936..58dcb6c76c 100644
--- a/contrib/pg_prewarm/pg_prewarm.c
+++ b/contrib/pg_prewarm/pg_prewarm.c
@@ -126,8 +126,8 @@ pg_prewarm(PG_FUNCTION_ARGS)
 		if (first_block < 0 || first_block >= nblocks)
 			ereport(ERROR,
 					(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-					 errmsg("starting block number must be between 0 and " INT64_FORMAT,
-							nblocks - 1)));
+					 errmsg("starting block number must be between 0 and %lld",
+							(long long int) (nblocks - 1))));
 	}
 	if (PG_ARGISNULL(4))
 		last_block = nblocks - 1;
@@ -137,8 +137,8 @@ pg_prewarm(PG_FUNCTION_ARGS)
 		if (last_block < 0 || last_block >= nblocks)
 			ereport(ERROR,
 					(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-					 errmsg("ending block number must be between 0 and " INT64_FORMAT,
-							nblocks - 1)));
+					 errmsg("ending block number must be between 0 and %lld",
+							(long long int) (nblocks - 1))));
 	}
 
 	/* Now we're ready to do the real work. */
diff --git a/src/backend/access/transam/xlogprefetch.c b/src/backend/access/transam/xlogprefetch.c
index 9a6f17ca36..3d401bda34 100644
--- a/src/backend/access/transam/xlogprefetch.c
+++ b/src/backend/access/transam/xlogprefetch.c
@@ -358,20 +358,19 @@ XLogPrefetcherFree(XLogPrefetcher *prefetcher)
 	/* Log final statistics. */
 	ereport(LOG,
 			(errmsg("recovery finished prefetching at %X/%X; "
-					"prefetch = " UINT64_FORMAT ", "
-					"skip_hit = " UINT64_FORMAT ", "
-					"skip_new = " UINT64_FORMAT ", "
-					"skip_fpw = " UINT64_FORMAT ", "
-					"skip_seq = " UINT64_FORMAT ", "
+					"prefetch = %llu, "
+					"skip_hit = %llu, "
+					"skip_new = %llu, "
+					"skip_fpw = %llu, "
+					"skip_seq = %llu, "
 					"avg_distance = %f, "
 					"avg_queue_depth = %f",
-					(uint32) (prefetcher->reader->EndRecPtr << 32),
-					(uint32) (prefetcher->reader->EndRecPtr),
-					pg_atomic_read_u64(&SharedStats->prefetch),
-					pg_atomic_read_u64(&SharedStats->skip_hit),
-					pg_atomic_read_u64(&SharedStats->skip_new),
-					pg_atomic_read_u64(&SharedStats->skip_fpw),
-					pg_atomic_read_u64(&SharedStats->skip_seq),
+					LSN_FORMAT_ARGS(prefetcher->reader->EndRecPtr),
+					(unsigned long long int) pg_atomic_read_u64(&SharedStats->prefetch),
+					(unsigned long long int) pg_atomic_read_u64(&SharedStats->skip_hit),
+					(unsigned long long int) pg_atomic_read_u64(&SharedStats->skip_new),
+					(unsigned long long int) pg_atomic_read_u64(&SharedStats->skip_fpw),
+					(unsigned long long int) pg_atomic_read_u64(&SharedStats->skip_seq),
 					SharedStats->avg_distance,
 					SharedStats->avg_queue_depth)));
 	hash_destroy(prefetcher->filter_table);
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index da1d9ec535..07403abb58 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -5359,8 +5359,8 @@ parseScriptWeight(const char *option, char **script)
 		}
 		if (wtmp > INT_MAX || wtmp < 0)
 		{
-			pg_log_fatal("weight specification out of range (0 .. %u): " INT64_FORMAT,
-						 INT_MAX, (int64) wtmp);
+			pg_log_fatal("weight specification out of range (0 .. %u): %lld",
+						 INT_MAX, (long long int) wtmp);
 			exit(1);
 		}
 		weight = wtmp;
@@ -5680,7 +5680,8 @@ set_random_seed(const char *seed)
 	}
 
 	if (seed != NULL)
-		pg_log_info("setting random seed to " UINT64_FORMAT, iseed);
+		pg_log_info("setting random seed to %llu",
+					(unsigned long long int) iseed);
 	random_seed = iseed;
 
 	/* Fill base_random_sequence with low-order bits of seed */
-- 
2.27.0

Reply via email to