• Heikki Linnakangas's avatar
    Mark commit and abort WAL records with XLR_SPECIAL_REL_UPDATE. · a28d731a
    Heikki Linnakangas authored
    If a commit or abort record includes "dropped relfilenodes", then replaying
    the record will remove data files. That is surely a "special rel update",
    but the records were not marked as such. Fix that, teach pg_rewind to
    expect and ignore them, and add a test case to cover it.
    
    It's always been like this, but no backporting for fear of breaking
    existing applications. If an application parsed the WAL but was not
    handling commit/abort records, it would stop working. That might be a good
    thing if it really needed to handle the dropped rels, but it will be caught
    when the application is updated to work with PostgreSQL v14 anyway.
    
    Discussion: https://www.postgresql.org/message-id/07b33e2c-46a6-86a1-5f9e-a7da73fddb95%40iki.fi
    Reviewed-by: Amit Kapila, Michael Paquier
    a28d731a
parsexlog.c 11.9 KB