]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Introduce XLogRecPtrIsValid()
authorÁlvaro Herrera <alvherre@kurilemu.de>
Thu, 6 Nov 2025 18:08:29 +0000 (19:08 +0100)
committerÁlvaro Herrera <alvherre@kurilemu.de>
Thu, 6 Nov 2025 18:08:29 +0000 (19:08 +0100)
XLogRecPtrIsInvalid() is inconsistent with the affirmative form of
macros used for other datatypes, and leads to awkward double negatives
in a few places.  This commit introduces XLogRecPtrIsValid(), which
allows code to be written more naturally.

This patch only adds the new macro.  XLogRecPtrIsInvalid() is left in
place, and all existing callers remain untouched.  This means all
supported branches can accept hypothetical bug fixes that use the new
macro, and at the same time any code that compiled with the original
formulation will continue to silently compile just fine.

Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Backpatch-through: 13
Discussion: https://postgr.es/m/aQB7EvGqrbZXrMlg@ip-10-97-1-34.eu-west-3.compute.internal

src/include/access/xlogdefs.h

index a47e3eeb1f513178fad3581031cb2fbd4ff0c623..8025b6c782b73b04a4e9613edd6c8af856c5e24c 100644 (file)
@@ -25,7 +25,8 @@ typedef uint64 XLogRecPtr;
  * WAL segment, initializing the first WAL page at WAL segment size, so no XLOG
  * record can begin at zero.
  */
-#define InvalidXLogRecPtr      0
+#define InvalidXLogRecPtr              0
+#define XLogRecPtrIsValid(r)   ((r) != InvalidXLogRecPtr)
 #define XLogRecPtrIsInvalid(r) ((r) == InvalidXLogRecPtr)
 
 /*