• Fujii Masao's avatar
    pg_waldump: Fix bug in per-record statistics. · 51893c84
    Fujii Masao authored
    pg_waldump --stats=record identifies a record by a combination
    of the RmgrId and the four bits of the xl_info field of the record.
    But XACT records use the first bit of those four bits for an optional
    flag variable, and the following three bits for the opcode to
    identify a record. So previously the same type of XACT record
    could have different four bits (three bits are the same but the
    first one bit is different), and which could cause
    pg_waldump --stats=record to show two lines of per-record statistics
    for the same XACT record. This is a bug.
    
    This commit changes pg_waldump --stats=record so that it processes
    only XACT record differently, i.e., filters the opcode out of xl_info
    and uses a combination of the RmgrId and those three bits as
    the identifier of a record, only for XACT record. For other records,
    the four bits of the xl_info field are still used.
    
    Back-patch to all supported branches.
    
    Author: Kyotaro Horiguchi
    Reviewed-by: Shinya Kato, Fujii Masao
    Discussion: https://postgr.es/m/2020100913412132258847@highgo.ca
    51893c84
pg_waldump.c 28.5 KB