On 28.10.25 13:33, Bertrand Drouvot wrote:
I do prefer to introduce XLogRecPtrIsValid(x) and switch to that. Then, do the
same kind of work on OidIsValid() and TransactionIdIsValid() and add an annual
check.

Idea is to get some code consistency while keeping macros which are valuable for
readability and centralize changes if any need to be done in the way we check
their validity.

If we wanted real type safety, we could turn XLogRecPtr back into a struct, and then enforce the use of XLogRecPtrIsValid() and similar. Otherwise, we should just acknowledge that it's an integer and use integer code to deal with it. These *IsValid() and similar macros that are there for "readability" but are not actually enforced other than by some developers' willpower are just causing more work and inconsistency in the long run.



Reply via email to