]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Add MultiXactOffsetStorageSize() to multixact_internal.h
authorMichael Paquier <michael@paquier.xyz>
Tue, 30 Dec 2025 05:13:40 +0000 (14:13 +0900)
committerMichael Paquier <michael@paquier.xyz>
Tue, 30 Dec 2025 05:13:40 +0000 (14:13 +0900)
This function calculates in bytes the storage taken between two
multixact offsets.  This will be used in an upcoming patch, introduced
separately here as this piece can be useful on its own.

Author: Naga Appani <nagnrik@gmail.com>
Co-authored-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/aUyTvZMq2CLgNEB4@paquier.xyz

src/include/access/multixact_internal.h

index f2d6539e8a67245d9d5e35eb1dae70614600d9d6..afe1f037610b802fa67c01c5a1617b5541d0990e 100644 (file)
@@ -121,4 +121,14 @@ MXOffsetToMemberOffset(MultiXactOffset offset)
                member_in_group * sizeof(TransactionId);
 }
 
+/* Storage space consumed by a range of offsets, in bytes */
+static inline uint64
+MultiXactOffsetStorageSize(MultiXactOffset new_offset,
+                                                  MultiXactOffset old_offset)
+{
+       Assert(new_offset >= old_offset);
+       return (uint64) ((new_offset - old_offset) / MULTIXACT_MEMBERS_PER_MEMBERGROUP) *
+               MULTIXACT_MEMBERGROUP_SIZE;
+}
+
 #endif                                                 /* MULTIXACT_INTERNAL_H */