Re: Printing LSN made easy

Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>

From: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
To: Li Japin <japinli@hotmail.com>
Cc: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, Alexey Kondratov <a.kondratov@postgrespro.ru>, pgsql-hackers <pgsql-hackers@postgresql.org>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Craig Ringer <craig.ringer@enterprisedb.com>
Date: 2020-12-03T06:13:41Z
Lists: pgsql-hackers
On Mon, Nov 30, 2020 at 7:38 PM Li Japin <japinli@hotmail.com> wrote:

> Hi,
>
> On Nov 30, 2020, at 9:06 PM, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
> wrote:
>
> On Fri, Nov 27, 2020 at 9:51 PM Li Japin <japinli@hotmail.com> wrote:
>
>
> Hi,
>
> Here, we cannot use sizeof(but) to get the buf size, because it is a
> pointer, so it always
> 8 bytes on 64-bit or 4 bytes on 32-bit machine.
>
>
> For an array, the sizeof() returns the size of memory consumed by the
> array. See section "Application to arrays" at
> https://en.wikipedia.org/wiki/Sizeof.
>
>
> That’s true! However, in pg_lsn_out_buffer(), it converts to a pointer,
> not an array. See the following test:
>
>
Ah! Thanks for pointing that out. I have fixed this in my repository.
However, from Alvaro's reply it looks like the approach is not acceptable,
so I am not posting the fixed version here.

--
Best Wishes,
Ashutosh

Commits

  1. Simplify printing of LSNs

  2. Unwind some workarounds for lack of portable int64 format specifier