Re: Consistently use the XLogRecPtrIsInvalid() macro

Álvaro Herrera <alvherre@kurilemu.de>

From: Álvaro Herrera <alvherre@kurilemu.de>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>, 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-19T22:03: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()

On 2025-Nov-19, Robert Haas wrote:

> I do not know how to make the phrase "older minor releases" any more
> clear.

It's perfectly clear.  I just don't believe this claim.

> You and Álvaro seem to be under the impression that nobody will
> ever try to compile code written after this change from a point
> release that we shipped before this change. While I don't think that
> will be a common thing to do, I'm not sure where you get the idea that
> older minor releases completely cease to be relevant when we release a
> new one. That's just not how it works.

I'm sure compiled versions continue to be relevant, but I highly doubt
anybody compiles afresh with old minors.

> I bet if we look in a few years we'll find modules on PGXN that have
> #ifdef logic in them to make sure they can work with both
> XLogRecPtrIsInvalid and XLogRecPtrIsValid.

Ok, let's wait a few years and see.  My bet is you won't find any.

-- 
Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/