diff options
author | Sergei Golubchik <sergii@pisem.net> | 2014-02-26 19:21:23 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2014-02-26 19:21:23 +0100 |
commit | ac585e9ed5d4073b023387c77f90c278f137e469 (patch) | |
tree | 852de46e59c6763c02647a28f87af76df6d1c582 /storage/xtradb/dict/dict0stats.cc | |
parent | 6bc7bd0eb233aa08702bcc0f0c3ca8b73fc32294 (diff) | |
parent | b338c8eb56d92bc3a5f4665ad74e93a840eb96d3 (diff) | |
download | mariadb-git-ac585e9ed5d4073b023387c77f90c278f137e469.tar.gz |
Percona-Server-5.6.15-rel63.0.tar.gz merge
Diffstat (limited to 'storage/xtradb/dict/dict0stats.cc')
-rw-r--r-- | storage/xtradb/dict/dict0stats.cc | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/storage/xtradb/dict/dict0stats.cc b/storage/xtradb/dict/dict0stats.cc index bfd0542b8e2..8bf02f9785c 100644 --- a/storage/xtradb/dict/dict0stats.cc +++ b/storage/xtradb/dict/dict0stats.cc @@ -780,10 +780,21 @@ dict_stats_update_transient_for_index( /*==================================*/ dict_index_t* index) /*!< in/out: index */ { - if (UNIV_LIKELY - (srv_force_recovery < SRV_FORCE_NO_IBUF_MERGE - || (srv_force_recovery < SRV_FORCE_NO_LOG_REDO - && dict_index_is_clust(index)))) { + if (srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO + && (srv_force_recovery >= SRV_FORCE_NO_LOG_REDO + || !dict_index_is_clust(index))) { + /* If we have set a high innodb_force_recovery + level, do not calculate statistics, as a badly + corrupted index can cause a crash in it. + Initialize some bogus index cardinality + statistics, so that the data can be queried in + various means, also via secondary indexes. */ + dict_stats_empty_index(index); +#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG + } else if (ibuf_debug && !dict_index_is_clust(index)) { + dict_stats_empty_index(index); +#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */ + } else { mtr_t mtr; ulint size; mtr_start(&mtr); @@ -812,14 +823,6 @@ dict_stats_update_transient_for_index( index->stat_n_leaf_pages = size; btr_estimate_number_of_different_key_vals(index); - } else { - /* If we have set a high innodb_force_recovery - level, do not calculate statistics, as a badly - corrupted index can cause a crash in it. - Initialize some bogus index cardinality - statistics, so that the data can be queried in - various means, also via secondary indexes. */ - dict_stats_empty_index(index); } } |