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-07 06:17:27
Message-ID: aQ2O99S+VjEZSf3/@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 08:48:11PM +0100, Álvaro Herrera wrote:
> On 2025-Nov-06, Bertrand Drouvot wrote:
>
> > 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.
>
> Okay, thanks, I have applied that one to all stable branches, except I
> didn't add the judgemental comment about XLogRecPtrIsInvalid().
>
> I also pushed 0002+0004+0005 together as one commit, so now we have
> XLogRecPtrIsValid() everywhere.

Thanks!

> I did a couple of minor transformations, where the new code would end
> doing "!XLogRecPtrIsValid(x) ? A : B" it seems clearer to remove the
> negation and invert the other two arguments in the ternary. We also had
> this assertion,
>
> - Assert(XLogRecPtrIsInvalid(state->istartpoint) == (state->istarttli == 0));
>
> which was being transformed to have a negation. I chose to negate the
> other side of the equality instead, that is,
>
> + Assert(XLogRecPtrIsValid(state->istartpoint) == (state->istarttli != 0));
>
> which also seems clearer.

Agree, will modify the .cocci scripts that way.

> Now only 0003 remains ... I would change the complaining version to 21
> there, because why not?

Now that XLogRecPtrIsValid() is available in back branches, I agree that we
can be less conservative and not wait until v24. v21 looks like good timing to
me.

Regards,

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kirill Reshke 2025-11-07 06:25:59 Re: transformJsonFuncExpr pathspec cache lookup failed
Previous Message Michael Paquier 2025-11-07 06:12:29 Re: Sequence Access Methods, round two