Re: Consistently use the XLogRecPtrIsInvalid() macro

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: Álvaro Herrera <alvherre@kurilemu.de>
Cc: Peter Eisentraut <peter@eisentraut.org>, Michael Paquier <michael@paquier.xyz>, Heikki Linnakangas <hlinnaka@iki.fi>, Quan Zongliang <quanzongliang@yeah.net>, pgsql-hackers@lists.postgresql.org
Date: 2025-11-07T17:22:59Z
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 03:03:03PM +0000, Bertrand Drouvot wrote:
> Hi,
> 
> On Fri, Nov 07, 2025 at 02:37:32PM +0100, Álvaro Herrera wrote:
> > On 2025-Nov-07, Bertrand Drouvot wrote:
> > 
> > > Agree, will modify the .cocci scripts that way.
> > 
> > I just noticed that we missed this ... maybe you want to include it also?
> > 
> > -	MyProc->waitLSN = 0;
> > +	MyProc->waitLSN = InvalidXLogRecPtr;
> >  
> > -	lastLSN = 0;
> > +	lastLSN = InvalidXLogRecPtr;
> >  
> > -	MyProc->waitLSN = 0;
> > +	MyProc->waitLSN = InvalidXLogRecPtr;
> 
> Yeah, that's another story here that is worth to look at too. Will do.

What do you think of the attached? It contains the ones you mentioned and some
others. The patch attached has been generated by the .cocci script [1].

[1]: https://github.com/bdrouvot/coccinelle_on_pg/blob/main/replace_literal_0_assignement_with_InvalidXLogRecPtr.cocci

Regards,

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