Thread: Re: Inconsistent LSN format in pg_waldump output

Re: Inconsistent LSN format in pg_waldump output

From
Ashutosh Bapat
Date:
On Fri, Jul 4, 2025 at 5:18 PM Álvaro Herrera <alvherre@kurilemu.de> wrote:
>
> On 2025-Jul-04, Japin Li wrote:
>
> > I've opted to directly use %X/%08X for LSN formatting in this patch, with an
> > accompanying comment near LSN_FORMAT_ARGS.
>
> Thank you!  I support this approach and intend to work on getting this
> patch committed soon after some more review, unless there are further
> objections.
>

I am wondering whether we should question the restriction on using
format macros because of translations. 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. I am
not familiar with the translation system and I might be wrong in
making such an assumption.

--
Best Wishes,
Ashutosh Bapat



Re: Inconsistent LSN format in pg_waldump output

From
Álvaro Herrera
Date:
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.