• Marko Mäkelä's avatar
    MDEV-12188 information schema - errors populating fail to free memory, unlock mutexes · 217b8115
    Marko Mäkelä authored
    Given the OK macro used in innodb does a DBUG_RETURN(1) on expression failure
    the innodb implementation has a number of errors in i_s.cc.
    
    We introduce a new macro BREAK_IF that replaces some use of the OK macro.
    Also, do some other cleanup detailed below.
    
    When invoking Field::store() on integers, always pass the parameter
    is_unsigned=true to avoid an unnecessary conversion to double.
    
    i_s_fts_deleted_generic_fill(), i_s_fts_config_fill():
    Use the BREAK_IF macro instead of OK.
    
    i_s_fts_index_cache_fill_one_index(), i_s_fts_index_table_fill_one_index():
    Add a parameter for conv_string, and let the caller allocate that buffer.
    
    i_s_fts_index_cache_fill(): Check the return status of
    i_s_fts_index_cache_fill_one_index().
    
    i_s_fts_index_table_fill(): Check the return status of
    i_s_fts_index_table_fill_one_index().
    
    i_s_fts_index_table_fill_one_fetch(): Always let the caller invoke
    i_s_fts_index_table_free_one_fetch().
    
    i_s_innodb_buffer_page_fill(), i_s_innodb_buf_page_lru_fill():
    Do release dict_sys->mutex if filling the buffers fails.
    
    i_s_innodb_buf_page_lru_fill(): Also display the value
    INFORMATION_SCHEMA.INNODB_BUFFER_PAGE.PAGE_IO_FIX='IO_PIN'
    when a block is in that state. Remove the unnecessary variable 'heap'.
    217b8115
i_s.cc 225 KB