Spracherkennung für: .test vermutete Sprache: SQL {SQL[96] Masm[62] VDM[56]} [Methode: maximale Elemente, drei Dimensionen]
--source include/have_innodb.inc
#
# Bug#
57252 disabling innobase_stats_on_metadata disables
ANALYZE
#
http://bugs.mysql.com/57252
#
-- 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 STATS_PERSISTENT=
0;
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;