Commit a61724a3 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-16267 Wrong INFORMATION_SCHEMA.INNODB_BUFFER_PAGE.TABLE_NAME

i_s_innodb_buffer_page_fill(), i_s_innodb_buf_page_lru_fill():
Only invoke Field::set_notnull() if the index was found.
parent a816aa06
/***************************************************************************** /*****************************************************************************
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, MariaDB Corporation. Copyright (c) 2017, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
...@@ -4955,9 +4955,11 @@ i_s_innodb_buffer_page_fill( ...@@ -4955,9 +4955,11 @@ i_s_innodb_buffer_page_fill(
mutex_enter(&dict_sys->mutex); mutex_enter(&dict_sys->mutex);
if (const dict_index_t* index = const dict_index_t* index =
dict_index_get_if_in_cache_low( dict_index_get_if_in_cache_low(
page_info->index_id)) { page_info->index_id);
if (index) {
table_name_end = innobase_convert_name( table_name_end = innobase_convert_name(
table_name, sizeof(table_name), table_name, sizeof(table_name),
index->table_name, index->table_name,
...@@ -4980,7 +4982,10 @@ i_s_innodb_buffer_page_fill( ...@@ -4980,7 +4982,10 @@ i_s_innodb_buffer_page_fill(
OK(ret); OK(ret);
fields[IDX_BUFFER_PAGE_TABLE_NAME]->set_notnull(); if (index) {
fields[IDX_BUFFER_PAGE_TABLE_NAME]
->set_notnull();
}
} }
OK(fields[IDX_BUFFER_PAGE_NUM_RECS]->store( OK(fields[IDX_BUFFER_PAGE_NUM_RECS]->store(
...@@ -5657,9 +5662,11 @@ i_s_innodb_buf_page_lru_fill( ...@@ -5657,9 +5662,11 @@ i_s_innodb_buf_page_lru_fill(
mutex_enter(&dict_sys->mutex); mutex_enter(&dict_sys->mutex);
if (const dict_index_t* index = const dict_index_t* index =
dict_index_get_if_in_cache_low( dict_index_get_if_in_cache_low(
page_info->index_id)) { page_info->index_id);
if (index) {
table_name_end = innobase_convert_name( table_name_end = innobase_convert_name(
table_name, sizeof(table_name), table_name, sizeof(table_name),
index->table_name, index->table_name,
...@@ -5682,7 +5689,10 @@ i_s_innodb_buf_page_lru_fill( ...@@ -5682,7 +5689,10 @@ i_s_innodb_buf_page_lru_fill(
OK(ret); OK(ret);
fields[IDX_BUF_LRU_PAGE_TABLE_NAME]->set_notnull(); if (index) {
fields[IDX_BUF_LRU_PAGE_TABLE_NAME]
->set_notnull();
}
} }
OK(fields[IDX_BUF_LRU_PAGE_NUM_RECS]->store( OK(fields[IDX_BUF_LRU_PAGE_NUM_RECS]->store(
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, MariaDB Corporation. Copyright (c) 2017, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
...@@ -4943,9 +4943,11 @@ i_s_innodb_buffer_page_fill( ...@@ -4943,9 +4943,11 @@ i_s_innodb_buffer_page_fill(
mutex_enter(&dict_sys->mutex); mutex_enter(&dict_sys->mutex);
if (const dict_index_t* index = const dict_index_t* index =
dict_index_get_if_in_cache_low( dict_index_get_if_in_cache_low(
page_info->index_id)) { page_info->index_id);
if (index) {
table_name_end = innobase_convert_name( table_name_end = innobase_convert_name(
table_name, sizeof(table_name), table_name, sizeof(table_name),
index->table_name, index->table_name,
...@@ -4968,7 +4970,10 @@ i_s_innodb_buffer_page_fill( ...@@ -4968,7 +4970,10 @@ i_s_innodb_buffer_page_fill(
OK(ret); OK(ret);
fields[IDX_BUFFER_PAGE_TABLE_NAME]->set_notnull(); if (index) {
fields[IDX_BUFFER_PAGE_TABLE_NAME]
->set_notnull();
}
} }
OK(fields[IDX_BUFFER_PAGE_NUM_RECS]->store( OK(fields[IDX_BUFFER_PAGE_NUM_RECS]->store(
...@@ -5642,9 +5647,11 @@ i_s_innodb_buf_page_lru_fill( ...@@ -5642,9 +5647,11 @@ i_s_innodb_buf_page_lru_fill(
mutex_enter(&dict_sys->mutex); mutex_enter(&dict_sys->mutex);
if (const dict_index_t* index = const dict_index_t* index =
dict_index_get_if_in_cache_low( dict_index_get_if_in_cache_low(
page_info->index_id)) { page_info->index_id);
if (index) {
table_name_end = innobase_convert_name( table_name_end = innobase_convert_name(
table_name, sizeof(table_name), table_name, sizeof(table_name),
index->table_name, index->table_name,
...@@ -5667,7 +5674,10 @@ i_s_innodb_buf_page_lru_fill( ...@@ -5667,7 +5674,10 @@ i_s_innodb_buf_page_lru_fill(
OK(ret); OK(ret);
fields[IDX_BUF_LRU_PAGE_TABLE_NAME]->set_notnull(); if (index) {
fields[IDX_BUF_LRU_PAGE_TABLE_NAME]
->set_notnull();
}
} }
OK(fields[IDX_BUF_LRU_PAGE_NUM_RECS]->store( OK(fields[IDX_BUF_LRU_PAGE_NUM_RECS]->store(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment