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-19T16:49:42Z
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 →
-
Replace literal 0 with InvalidXLogRecPtr for XLogRecPtr assignments
- ec3174407164 19 (unreleased) landed
-
Replace pointer comparisons and assignments to literal zero with NULL
- ec782f56b0c3 19 (unreleased) landed
-
Use XLogRecPtrIsValid() in various places
- a2b02293bc65 19 (unreleased) landed
-
Introduce XLogRecPtrIsValid()
- d2965f627fe3 14.20 landed
- c0031d461324 18.1 landed
- 723cc84db50a 16.11 landed
- 49b45999f3b2 15.15 landed
- 33727aff18d0 17.7 landed
- 20bafb097288 13.23 landed
- 06edbed47862 19 (unreleased) landed
On 2025-Nov-19, Robert Haas wrote: > On Thu, Nov 6, 2025 at 2:48 PM Álvaro Herrera <alvherre@kurilemu.de> wrote: > > Okay, thanks, I have applied that one to all stable branches, except > > I didn't add the judgemental comment about XLogRecPtrIsInvalid(). > > I'm rather late to the party here, but for what it's worth, I don't > really think this was a good idea. Anyone who wants to write > out-of-core code that works in the back-branches must still write it > the old way, or it will potentially fail on older minor releases. No, they don't need to. Thus far, they can still keep their code the way it is. The next patch in the series (not yet committed, but I intend to get it out at some point, unless there are objections) is going to add an obsolescence warning when their code is compiled with Postgres 21 -- by which time the minors without the new macro are going to be two years old. Nobody needs to compile their code with minor releases that old. So they can fix their code to work with Postgres 21 and with all contemporary minors. They don't need to ensure that their code compiles with minors older than that. We could make that Postgres 22, but I don't think that makes any practical difference. Maybe you misunderstood what the patch is doing. -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/