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 <[email protected]>
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