• Alvaro Herrera's avatar
    Wrap multixact/members correctly during extension · a50d9762
    Alvaro Herrera authored
    In the 9.2 code for extending multixact/members, the logic was very
    simple because the number of entries in a members page was a proper
    divisor of 2^32, and thus at 2^32 wraparound the logic for page switch
    was identical than at any other page boundary.  In commit 0ac5ad51 I
    failed to realize this and introduced code that was not able to go over
    the 2^32 boundary.  Fix that by ensuring that when we reach the last
    page of the last segment we correctly zero the initial page of the
    initial segment, using correct uint32-wraparound-safe arithmetic.
    
    Noticed while investigating bug #8673 reported by Serge Negodyuck, as
    diagnosed by Andres Freund.
    a50d9762
multixact.c 86.6 KB