Re: Inconsistent LSN format in pg_waldump output - Mailing list pgsql-hackers

From Japin Li
Subject Re: Inconsistent LSN format in pg_waldump output
Date
Msg-id SY8P300MB044286652CDE99415F169310B641A@SY8P300MB0442.AUSP300.PROD.OUTLOOK.COM
Whole thread Raw
In response to Re: Inconsistent LSN format in pg_waldump output  (Álvaro Herrera <alvherre@kurilemu.de>)
List pgsql-hackers
On Tue, 01 Jul 2025 at 13:39, Álvaro Herrera <alvherre@kurilemu.de> wrote:
> On 2025-Jul-01, Japin Li wrote:
>
>> This inconsistency, while minor, could be confusing when cross-referencing
>> LSNs within pg_waldump's own output or when parsing it programmatically.
>
> I agree that we should fix this, but I'd rather add the missing zeros
> than remove these ones (the only ones we have):
>
>>      XLogRecGetLen(record, &rec_len, &fpi_len);
>>
>> -    printf("rmgr: %-11s len (rec/tot): %6u/%6u, tx: %10u, lsn: %X/%08X, prev %X/%08X, ",
>> +    printf("rmgr: %-11s len (rec/tot): %6u/%6u, tx: %10u, lsn: %X/%X, prev %X/%X, ",
>>             desc->rm_name,
>>             rec_len, XLogRecGetTotalLen(record),
>>             XLogRecGetXid(record),
>
> I think pg_waldump did things right in this regard, and all other places
> were cargo-culting the older broken practice.
>

I initially considered using the %X/%08X format, but observing %X/%X
consistently elsewhere led me to abandon that idea.

> IOW I think we should change all occurrences of %X/%X to %X/%08X
> instead.  There's a ton of them though.  See also
> https://www.postgresql.org/message-id/flat/CAExHW5ub5NaTELZ3hJUCE6amuvqAtsSxc7O%2BuK7y4t9Rrk23cw%40mail.gmail.com
> where LSN_FORMAT_ARGS was invented, but where the width of the second %X
> was not discussed.

Agreed.  I believe %X/%08X is better.
--
Regards,
Japin Li



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Optimize LWLock scalability via ReadBiasedLWLock for heavily-shared locks
Next
From: Tomas Vondra
Date:
Subject: Re: NUMA shared memory interleaving