• Nikita Malyavin's avatar
    MDEV-17891 Assertion failure upon attempt to replace into a full table · d846b55d
    Nikita Malyavin authored
    Problem: Assertion `transactional_table || !changed ||
    thd->transaction.stmt.modified_non_trans_table' failed due REPLACE into a
    versioned table.
    
    It is not specific to system versioning/pertitioning/heap, but this
    combination makes it much easier to reproduce.
    
    The thing is to make first ha_update_row call succeed to make
    info->deleted != 0. And then make REPLACE fail by any reason.
    
    In this scenario we overflow versioned partition, so next ha_update_row
    succeeds, but corresponding ha_write_row fails to insert history record.
    
    Fix: modified_non_trans_table is set in one missed place
    d846b55d
partition.test 23 KB