• Robert Haas's avatar
    Log the creation of an init fork unconditionally. · fa0f466d
    Robert Haas authored
    Previously, it was thought that this only needed to be done for the
    benefit of possible standbys, so wal_level = minimal skipped it.
    But that's not safe, because during crash recovery we might replay
    XLOG_DBASE_CREATE or XLOG_TBLSPC_CREATE record which recursively
    removes the directory that contains the new init fork.  So log it
    always.
    
    The user-visible effect of this bug is that if you create a database
    or tablespace, then create an unlogged table, then crash without
    checkpointing, then restart, accessing the table will fail, because
    the it won't have been properly reset.  This commit fixes that.
    
    Michael Paquier, per a report from Konstantin Knizhnik.  Wording of
    the comments per a suggestion from me.
    fa0f466d
blinsert.c 9.41 KB