pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Nathan Bossart <nathandbossart@gmail.com>
To: Max Johnson <max.johnson@novatechautomation.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org <pgsql-hackers@postgresql.org>
Subject: Re: pg_ctl/miscinit: print "MyStartTime" as a long long instead of long to avoid 2038 problem.
Date: Mon, 7 Oct 2024 14:17:06 -0500
Message-ID: <ZwQzsqbm2fBsZ8xS@nathan> (raw)
In-Reply-To: <ZwQvtUbPKaaRQezd@nathan>
References: <ZvMghxsFyYM9e9kT@nathan>
	<3486094.1727210681@sss.pgh.pa.us>
	<ZvMn4K2PO2_7iavy@nathan>
	<CO1PR07MB90521D419ABB8EB3E74BC1028D692@CO1PR07MB9052.namprd07.prod.outlook.com>
	<ZvRbA1BXCC4nadX7@nathan>
	<CO1PR07MB90520AC8D94BB410500480FF8D692@CO1PR07MB9052.namprd07.prod.outlook.com>
	<ZvYasD2ROejOr1Fs@nathan>
	<CO1PR07MB9052F0E98A65881F38775C7D8D6B2@CO1PR07MB9052.namprd07.prod.outlook.com>
	<ZvcDNzsXO27nKI5T@nathan>
	<ZwQvtUbPKaaRQezd@nathan>

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

Attachments:

0001-add-INT64_HEX_FORMAT-and-UINT64_HEX_FORMAT.patch (text/plain, 3.8K) download From 03f7536acd06b91e6891ccfc86470a5a51b45736 Mon Sep 17 00:00:00 2001 From: Nathan Bossart <nathan@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)

view thread (14+ messages)  latest in thread

Message-ID: <ZwQzsqbm2fBsZ8xS@nathan>
Permalink:  ../ZwQzsqbm2fBsZ8xS@nathan/
Also on:    postgresql.org/message-id/ZwQzsqbm2fBsZ8xS@nathan

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: nathandbossart@gmail.com, max.johnson@novatechautomation.com, tgl@sss.pgh.pa.us
  Subject: Re: pg_ctl/miscinit: print "MyStartTime" as a long long instead of long to avoid 2038 problem.
  In-Reply-To: <ZwQzsqbm2fBsZ8xS@nathan>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox