• Marko Mäkelä's avatar
    MDEV-12353: Introduce an EXTENDED record subtype TRIM_PAGES · fae259f0
    Marko Mäkelä authored
    For undo log truncation, commit 055a3334
    repurposed the MLOG_FILE_CREATE2 record with a nonzero page size
    to indicate that an undo tablespace will be shrunk in size.
    In commit 7ae21b18 the
    MLOG_FILE_CREATE2 record was replaced by a FILE_CREATE record.
    
    Now that the redo log encoding was changed, there is no actual need
    to write a file name in the log record; it suffices to write the
    page identifier of the first page that is not part of the file.
    
    This TRIM_PAGES record could allow us to shrink any data files in the
    future. For now, it will be limited to undo tablespaces.
    
    mtr_t::log_file_op(): Remove the parameter first_page_no, because
    it would always be 0 for file operations.
    
    mtr_t::trim_pages(): Replaces fil_truncate_log().
    
    mtr_t::log_write(): Avoid same_page encoding if !bpage&&!m_last.
    
    fil_op_replay_rename(): Remove the constant parameter first_page_no=0.
    fae259f0
trx0purge.cc 35.7 KB