diff options
author | Vasil Dimov <vasil.dimov@oracle.com> | 2010-10-18 15:16:23 +0300 |
---|---|---|
committer | Vasil Dimov <vasil.dimov@oracle.com> | 2010-10-18 15:16:23 +0300 |
commit | 75063440d8c170a3a1e15bbed66bdd0f3f62ff2f (patch) | |
tree | 93b74d2719df874fd7d08e09136d1ac49b0c89f3 /mysql-test/suite/innodb | |
parent | 626b2d6a83fa05fed5ddd1137fc3f8954f920fd8 (diff) | |
parent | 50c69f9301840ac8b0c1ede75c1ddba4f53bf39f (diff) | |
download | mariadb-git-75063440d8c170a3a1e15bbed66bdd0f3f62ff2f.tar.gz |
Merge mysql-5.1-innodb -> mysql-5.5-innodb
Diffstat (limited to 'mysql-test/suite/innodb')
-rw-r--r-- | mysql-test/suite/innodb/r/innodb_bug57252.result | 6 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb_bug57252.test | 46 |
2 files changed, 52 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/innodb_bug57252.result b/mysql-test/suite/innodb/r/innodb_bug57252.result new file mode 100644 index 00000000000..efa50c742e0 --- /dev/null +++ b/mysql-test/suite/innodb/r/innodb_bug57252.result @@ -0,0 +1,6 @@ +cardinality +10 +Table Op Msg_type Msg_text +test.bug57252 analyze status OK +cardinality +10 diff --git a/mysql-test/suite/innodb/t/innodb_bug57252.test b/mysql-test/suite/innodb/t/innodb_bug57252.test new file mode 100644 index 00000000000..04c3ed0cea7 --- /dev/null +++ b/mysql-test/suite/innodb/t/innodb_bug57252.test @@ -0,0 +1,46 @@ +# +# Bug#57252 disabling innobase_stats_on_metadata disables ANALYZE +# http://bugs.mysql.com/57252 +# + +-- source include/have_innodb.inc + +-- disable_query_log +-- disable_result_log + +SET @innodb_stats_on_metadata_orig = @@innodb_stats_on_metadata; + +CREATE TABLE bug57252 (a INT, KEY akey (a)) ENGINE=INNODB; + +BEGIN; +let $i = 10; +while ($i) { + eval INSERT INTO bug57252 VALUES ($i); + dec $i; +} +COMMIT; + +-- enable_result_log + +SET GLOBAL innodb_stats_on_metadata=0; + +# this calls ::info() without HA_STATUS_CONST and so +# index->stat_n_diff_key_vals[] is not copied to the mysql-visible +# rec_per_key +SELECT cardinality FROM information_schema.statistics +WHERE table_name='bug57252' AND index_name='akey'; + +# this calls ::info() with HA_STATUS_CONST and so +# index->stat_n_diff_key_vals[] is copied to the mysql-visible +# rec_per_key at the end; when the bug is present dict_update_statistics() +# is not called beforehand and so index->stat_n_diff_key_vals[] contains +# an outdated data and thus we get an outdated data in the result when the +# bug is present +ANALYZE TABLE bug57252; + +SELECT cardinality FROM information_schema.statistics +WHERE table_name='bug57252' AND index_name='akey'; + +DROP TABLE bug57252; + +SET GLOBAL innodb_stats_on_metadata = @innodb_stats_on_metadata_orig; |