• Andres Freund's avatar
    Make HEAP_LOCK/HEAP2_LOCK_UPDATED replay reset HEAP_XMAX_INVALID. · a4d357bf
    Andres Freund authored
    0ac5ad51 started to compress infomask bits in WAL records. Unfortunately
    the replay routines for XLOG_HEAP_LOCK/XLOG_HEAP2_LOCK_UPDATED forgot to
    reset the HEAP_XMAX_INVALID (and some other) hint bits.
    
    Luckily that's not problematic in the majority of cases, because after a
    crash/on a standby row locks aren't meaningful. Unfortunately that does
    not hold true in the presence of prepared transactions. This means that
    after a crash, or after promotion, row level locks held by a prepared,
    but not yet committed, prepared transaction might not be enforced.
    
    Discussion: 20160715192319.ubfuzim4zv3rqnxv@alap3.anarazel.de
    Backpatch: 9.3, the oldest branch on which 0ac5ad51 is present.
    a4d357bf
heapam.c 265 KB