• T
    Fix replay of XLOG_HEAP_NEWPAGE WAL records to pay attention to the forknum · e55e6ecf
    Tom Lane 提交于
    field of the WAL record.  The previous coding always wrote to the main fork,
    resulting in data corruption if the page was meant to go into a non-default
    fork.
    
    At present, the only operation that can produce such WAL records is
    ALTER TABLE/INDEX SET TABLESPACE when executed with archive_mode = on.
    Data corruption would be observed on standby slaves, and could occur on the
    master as well if a database crash and recovery occurred after committing
    the ALTER and before the next checkpoint.  Per report from Gordon Shannon.
    
    Back-patch to 8.4; the problem doesn't exist in earlier branches because
    we didn't have a concept of multiple relation forks then.
    e55e6ecf
heapam.c 141.6 KB