Re: Inconsistent LSN format in pg_waldump output

Álvaro Herrera <alvherre@kurilemu.de>

From: Álvaro Herrera <alvherre@kurilemu.de>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: Japin Li <japinli@hotmail.com>, Michael Paquier <michael@paquier.xyz>, Masahiko Sawada <sawada.mshk@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-07-07T15:04:26Z
Lists: pgsql-hackers
On 2025-Jul-07, Ashutosh Bapat wrote:

> I am wondering whether we should question the restriction on using
> format macros because of translations.

Sure Mr. Quixote, the windmills are over there.

> In fact, these format macros can actually aid translations e.g. if the
> translation sees LSN_FORMAT instead of %X/%X, it can use that
> knowledge to better translate the message since it knows that it's an
> LSN instead of two sets of hex numbers separated by /. If we could
> devise a prefix which will tell them that what comes next is a FORMAT
> for a special datatype, would the translation system be able to make
> use of this information.

You'd have to talk with the gettext developers and then wait a decade or
so for all the live distributions get a patched gettext release.  For
GNU gettext, this is explained at the bottom of this page:
https://www.gnu.org/software/gettext/manual/html_node/No-string-concatenation.html
I frankly wouldn't waste my time.


Meanwhile, crake is failing the cross-version upgrade test because of
this change, and I'm not sure what solution I'm going to offer.  Maybe
use the AdjustUpgrade.pm infrastructure to set all the pg_lsn column
values to NULL if the old version is earlier than 19 and the new version
is 19 or later :-)

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
Syntax error: function hell() needs an argument.
Please choose what hell you want to involve.



Commits

  1. Fix a couple more places in docs for pg_lsn change

  2. Adapt pg_upgrade test to pg_lsn output format difference

  3. Standardize LSN formatting by zero padding