From: Heikki Linnakangas Date: Mon, 15 Dec 2025 09:47:04 +0000 (+0200) Subject: Clarify comment on multixid offset wraparound check X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=366dcdaf5779792f522d1d18a8e558244850afdf;p=thirdparty%2Fpostgresql.git Clarify comment on multixid offset wraparound check Coverity complained that offset cannot be 0 here because there's an explicit check for "offset == 0" earlier in the function, but it didn't see the possibility that offset could've wrapped around to 0. The code is correct, but clarify the comment about it. The same code exists in backbranches in the server GetMultiXactIdMembers() function and in 'master' in the pg_upgrade GetOldMultiXactIdSingleMember function. In backbranches Coverity didn't complain about it because the check was merely an assertion, but change the comment in all supported branches for consistency. Per Tom Lane's suggestion. Discussion: https://www.postgresql.org/message-id/1827755.1765752936@sss.pgh.pa.us --- diff --git a/src/bin/pg_upgrade/multixact_read_v18.c b/src/bin/pg_upgrade/multixact_read_v18.c index f74011c4786..f7ed97f702b 100644 --- a/src/bin/pg_upgrade/multixact_read_v18.c +++ b/src/bin/pg_upgrade/multixact_read_v18.c @@ -276,7 +276,8 @@ GetOldMultiXactIdSingleMember(OldMultiXactReader *state, MultiXactId multi, if (!TransactionIdIsValid(*xactptr)) { /* - * Corner case 2: we are looking at unused slot zero + * Corner case 2: offset must have wrapped around to unused slot + * zero. */ if (offset == 0) continue;