• Vlad Lesin's avatar
    MDEV-33802 Weird read view after ROLLBACK of other transactions. · b7b79efe
    Vlad Lesin authored
    In the case when all unique key fields are nullable, there can be
    several records with all NULL key fields in unique index. When
    transaction is resumed after waiting on the record with all key fields
    equal to NULL, and stored in persistent cursor record is deleted,
    persistent cursor can be restored on the record with all key fields equal
    to NULL, and such record is wrongly treated as the record with the same
    unique key as the stored in persistent cursor record, what is wrong.
    
    The fix is to check if all unique fields are null when persistent cursor
    position is restored and not all comparing fields are equal, and if so,
    don't treat the record as a record with the same unique key as in the
    stored in persistent cursor record key.
    
    dict_index_t::nulls_equal was removed, as it was initially developed for
    never existed in MariaDB "intrinsic tables", and there is no code, which
    would set it to "true".
    
    Reviewed by Marko Mäkelä.
    b7b79efe
cursor-restore-unique-null.result 1.02 KB