On Mon, Oct 07, 2024 at 02:00:05PM -0500, Nathan Bossart wrote:
> I refrained from introducing INT64_HEX_FORMAT/UINT64_HEX_FORMAT in c.h
> because I felt there was a nonzero chance of that causing problems with
> third-party code on the back-branches.  We could probably add them for v18,
> though.

Like so...

-- 
nathan
>From 03f7536acd06b91e6891ccfc86470a5a51b45736 Mon Sep 17 00:00:00 2001
From: Nathan Bossart <nat...@postgresql.org>
Date: Mon, 7 Oct 2024 14:16:07 -0500
Subject: [PATCH 1/1] add INT64_HEX_FORMAT and UINT64_HEX_FORMAT

---
 contrib/postgres_fdw/option.c                    | 2 +-
 src/backend/utils/error/csvlog.c                 | 2 +-
 src/backend/utils/error/elog.c                   | 4 ++--
 src/backend/utils/error/jsonlog.c                | 2 +-
 src/include/c.h                                  | 2 ++
 src/test/modules/test_radixtree/test_radixtree.c | 2 --
 6 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/contrib/postgres_fdw/option.c b/contrib/postgres_fdw/option.c
index d740893918..9a6785720d 100644
--- a/contrib/postgres_fdw/option.c
+++ b/contrib/postgres_fdw/option.c
@@ -522,7 +522,7 @@ process_pgfdw_appname(const char *appname)
                                appendStringInfoString(&buf, application_name);
                                break;
                        case 'c':
-                               appendStringInfo(&buf, "%" INT64_MODIFIER 
"x.%x", MyStartTime, MyProcPid);
+                               appendStringInfo(&buf, INT64_HEX_FORMAT ".%x", 
MyStartTime, MyProcPid);
                                break;
                        case 'C':
                                appendStringInfoString(&buf, cluster_name);
diff --git a/src/backend/utils/error/csvlog.c b/src/backend/utils/error/csvlog.c
index eab8df3fcc..acdffb6d06 100644
--- a/src/backend/utils/error/csvlog.c
+++ b/src/backend/utils/error/csvlog.c
@@ -120,7 +120,7 @@ write_csvlog(ErrorData *edata)
        appendStringInfoChar(&buf, ',');
 
        /* session id */
-       appendStringInfo(&buf, "%" INT64_MODIFIER "x.%x", MyStartTime, 
MyProcPid);
+       appendStringInfo(&buf, INT64_HEX_FORMAT ".%x", MyStartTime, MyProcPid);
        appendStringInfoChar(&buf, ',');
 
        /* Line number */
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 987ff98067..c71508c923 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -2944,12 +2944,12 @@ log_status_format(StringInfo buf, const char *format, 
ErrorData *edata)
                                {
                                        char            strfbuf[128];
 
-                                       snprintf(strfbuf, sizeof(strfbuf) - 1, 
"%" INT64_MODIFIER "x.%x",
+                                       snprintf(strfbuf, sizeof(strfbuf) - 1, 
INT64_HEX_FORMAT ".%x",
                                                         MyStartTime, 
MyProcPid);
                                        appendStringInfo(buf, "%*s", padding, 
strfbuf);
                                }
                                else
-                                       appendStringInfo(buf, "%" 
INT64_MODIFIER "x.%x", MyStartTime, MyProcPid);
+                                       appendStringInfo(buf, INT64_HEX_FORMAT 
".%x", MyStartTime, MyProcPid);
                                break;
                        case 'p':
                                if (padding != 0)
diff --git a/src/backend/utils/error/jsonlog.c 
b/src/backend/utils/error/jsonlog.c
index 2c7b14cacb..492383a89e 100644
--- a/src/backend/utils/error/jsonlog.c
+++ b/src/backend/utils/error/jsonlog.c
@@ -168,7 +168,7 @@ write_jsonlog(ErrorData *edata)
        }
 
        /* Session id */
-       appendJSONKeyValueFmt(&buf, "session_id", true, "%" INT64_MODIFIER 
"x.%x",
+       appendJSONKeyValueFmt(&buf, "session_id", true, INT64_HEX_FORMAT ".%x",
                                                  MyStartTime, MyProcPid);
 
        /* Line number */
diff --git a/src/include/c.h b/src/include/c.h
index 3297d89ff0..9520b89b00 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -550,6 +550,8 @@ typedef unsigned long long int uint64;
 /* snprintf format strings to use for 64-bit integers */
 #define INT64_FORMAT "%" INT64_MODIFIER "d"
 #define UINT64_FORMAT "%" INT64_MODIFIER "u"
+#define INT64_HEX_FORMAT "%" INT64_MODIFIER "x"
+#define UINT64_HEX_FORMAT "%" INT64_MODIFIER "x"
 
 /*
  * 128-bit signed and unsigned integers
diff --git a/src/test/modules/test_radixtree/test_radixtree.c 
b/src/test/modules/test_radixtree/test_radixtree.c
index 1d9165a3a2..3e6863f660 100644
--- a/src/test/modules/test_radixtree/test_radixtree.c
+++ b/src/test/modules/test_radixtree/test_radixtree.c
@@ -23,8 +23,6 @@
 /* uncomment to use shared memory for the tree */
 /* #define TEST_SHARED_RT */
 
-#define UINT64_HEX_FORMAT "%" INT64_MODIFIER "X"
-
 /* Convenient macros to test results */
 #define EXPECT_TRUE(expr)      \
        do { \
-- 
2.39.5 (Apple Git-154)

Reply via email to