Re: Consistently use the XLogRecPtrIsInvalid() macro

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: Álvaro Herrera <alvherre@kurilemu.de>, Michael Paquier <michael@paquier.xyz>, Heikki Linnakangas <hlinnaka@iki.fi>, Quan Zongliang <quanzongliang@yeah.net>, pgsql-hackers@lists.postgresql.org
Date: 2025-11-07T17:15:09Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Replace literal 0 with InvalidXLogRecPtr for XLogRecPtr assignments

  2. Replace pointer comparisons and assignments to literal zero with NULL

  3. Use XLogRecPtrIsValid() in various places

  4. Introduce XLogRecPtrIsValid()

Attachments

Hi,

On Fri, Nov 07, 2025 at 05:05:11PM +0100, Peter Eisentraut wrote:
> On 07.11.25 16:03, Bertrand Drouvot wrote:
> > +/*
> > + * Mark a declaration as deprecated with a custom message. The compiler will
> > + * emit a warning when the deprecated entity is used.
> > + */
> > +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L || \
> > +defined(__cplusplus) && __cplusplus >= 201402L
> 
> This could use some parentheses to disambiguate the && and ||.
> 
> Also the second line could be indented (or just put it on one line).

Agree that it could be more clear. Done that way in the attached (using only
one line as it looks more readable).

> > +#define pg_attribute_deprecated(msg) [[deprecated(msg)]]
> > +#elif defined(__GNUC__) || defined(__clang__)
> 
> The __clang__ part is not needed, because clang defines __GNUC__ also.

Good catch, thanks! Fixed in the attach.

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com