• Marko Mäkelä's avatar
    MDEV-16267 Wrong INFORMATION_SCHEMA.INNODB_BUFFER_PAGE.TABLE_NAME · 52df8040
    Marko Mäkelä authored
    This is the MariaDB 10.2 version of the patch.
    
    field_store_string(): Simplify the code.
    
    field_store_index_name(): Remove, and use field_store_string()
    instead. Starting with MariaDB 10.2.2, there is the predicate
    dict_index_t::is_committed(), and dict_index_t::name never
    contains the magic byte 0xff.
    
    Correct some comments to refer to TEMP_INDEX_PREFIX_STR.
    
    i_s_cmp_per_index_fill_low(): Use the appropriate value NULL to
    identify that an index was not found. Check that storing each
    column value succeeded.
    
    i_s_innodb_buffer_page_fill(), i_s_innodb_buf_page_lru_fill():
    Only invoke Field::set_notnull() if the index was found.
    (This fixes the bug.)
    
    i_s_dict_fill_sys_indexes(): Adjust the index->name that was
    directly loaded from SYS_INDEXES.NAME (which can start with
    the 0xff byte). This was the only function that depended
    on the translation in field_store_index_name().
    52df8040
dict0load.cc 105 KB