Re: Consistently use the XLogRecPtrIsInvalid() macro

From: Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>
To: Álvaro Herrera <alvherre(at)kurilemu(dot)de>
Cc: Peter Eisentraut <peter(at)eisentraut(dot)org>, Michael Paquier <michael(at)paquier(dot)xyz>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Quan Zongliang <quanzongliang(at)yeah(dot)net>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Consistently use the XLogRecPtrIsInvalid() macro
Date: 2025-11-06 14:27:04
Message-ID: aQywOKctVLwjDuuT@ip-10-97-1-34.eu-west-3.compute.internal
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Thu, Nov 06, 2025 at 10:06:13AM +0100, Álvaro Herrera wrote:
> On 2025-Nov-06, Bertrand Drouvot wrote:
>
> > Subject: [PATCH v5 1/4] Introduce XLogRecPtrIsValid() and replace
> > XLogRecPtrIsInvalid() calls
>
> > XLogRecPtrIsInvalid() is inconsistent with the affirmative form of other
> > *IsValid() macros and leads to awkward double negative.
> >
> > This commit introduces XLogRecPtrIsValid() and replace all the
> > XLogRecPtrIsInvalid() calls.
> >
> > It also adds a comment mentioning that new code should use XLogRecPtrIsValid()
> > instead of XLogRecPtrIsInvalid() and that XLogRecPtrIsInvalid() could be
> > deprecated in the future.
>
> I think we should do this in two steps. First, introduce
> XLogRecPtrIsValid(), don't use it anywhere, backpatch this one. This
> would alleviate potential backpatching pains when using the new macro in
> future bugfixes.

I see, I would have introduced XLogRecPtrIsInvalid() on the back branches only
if there is a need to (a bugfix that would make use of it). But yeah, I agree
that would add extra "unnecessary" work, so done as you suggested in the
attached. I checked that 0001 apply on the [14-18]_STABLE branches successfully.

> The uppercase name looks a bit ugly. We use lowercase for other uses of
> __attribute__, e.g. pg_attribute_aligned(). Also, probably add
> "attribute" to the name, for consistency with those.

Right, replaced by pg_attribute_deprecated() in the attached.

Regards,

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

Attachment Content-Type Size
v6-0001-Introduce-XLogRecPtrIsValid.patch text/x-diff 1.5 KB
v6-0002-Replace-XLogRecPtrIsInvalid-calls-by-XLogRecPtrIs.patch text/x-diff 48.8 KB
v6-0003-Introduce-pg_attribute_deprecated-and-deprecate-X.patch text/x-diff 2.7 KB
v6-0004-Replace-InvalidXLogRecPtr-comparisons-with-XLogRe.patch text/x-diff 39.2 KB
v6-0005-Replace-literal-0-comparisons-on-XLogRecPtr-with-.patch text/x-diff 1.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bryan Green 2025-11-06 14:42:14 Re: [PATCH] O_CLOEXEC not honored on Windows - handle inheritance chain
Previous Message Andrew Dunstan 2025-11-06 14:21:35 Re: Spacing of options in getopt_long processing