summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2023-01-25 12:36:57 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2023-01-25 12:43:47 +0530
commit1b4919cfc061e71fc9e573ab1e736bd01dd3fc8a (patch)
treefa069ef6df411b03a1fde508c6f620b11d8314eb
parent15226a2822a84d4ca56c99f236670f0e28ca1e5f (diff)
downloadmariadb-git-bb-10.6-MDEV-30429.tar.gz
MDEV-30429 InnoDB: Failing assertion: stat_value != UINT64_UNDEFINED in storage/innobase/dict/dict0stats.cc line 3647bb-10.6-MDEV-30429
In dict_stats_analyze_index(), InnoDB sets the maximum value for index_stats_t to indicate the bulk under bulk insert operation. But InnoDB fails to empty the statistics of the table in that case.
-rw-r--r--storage/innobase/dict/dict0stats.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/storage/innobase/dict/dict0stats.cc b/storage/innobase/dict/dict0stats.cc
index 845f133f1a6..0d630583daa 100644
--- a/storage/innobase/dict/dict0stats.cc
+++ b/storage/innobase/dict/dict0stats.cc
@@ -3008,6 +3008,7 @@ dict_stats_update_persistent(
index_stats_t stats = dict_stats_analyze_index(index);
if (stats.is_bulk_operation()) {
+ dict_stats_empty_table(table, false);
return DB_SUCCESS_LOCKED_REC;
}
@@ -3050,6 +3051,12 @@ dict_stats_update_persistent(
stats = dict_stats_analyze_index(index);
table->stats_mutex_lock();
+ if (stats.is_bulk_operation()) {
+ table->stats_mutex_unlock();
+ dict_stats_empty_table(table, false);
+ return DB_SUCCESS_LOCKED_REC;
+ }
+
index->stat_index_size = stats.index_size;
index->stat_n_leaf_pages = stats.n_leaf_pages;