# # Test the persistent stats feature when DROPping a table or an # index when the corresponding rows in the stats tables are locked # -- source include/have_innodb.inc -- disable_warnings -- disable_query_log DROP TABLE IF EXISTS innodb_stats_drop_locked; CREATE TABLE innodb_stats_drop_locked (c INT, KEY c_key (c)) ENGINE=INNODB STATS_PERSISTENT=1; ANALYZE TABLE innodb_stats_drop_locked; -- enable_warnings -- enable_query_log SET autocommit=0; SELECT table_name FROM mysql.innodb_table_stats WHERE table_name='innodb_stats_drop_locked' FOR UPDATE; SELECT table_name FROM mysql.innodb_index_stats WHERE table_name='innodb_stats_drop_locked' FOR UPDATE; -- connect (con1,localhost,root,,) -- connection con1 ALTER TABLE innodb_stats_drop_locked DROP INDEX c_key; # the index should be gone SHOW CREATE TABLE innodb_stats_drop_locked; DROP TABLE innodb_stats_drop_locked; # the table should be gone SHOW TABLES; -- connection default -- disconnect con1 COMMIT; # the stats should be there SELECT table_name FROM mysql.innodb_table_stats WHERE table_name='innodb_stats_drop_locked'; SELECT table_name FROM mysql.innodb_index_stats WHERE table_name='innodb_stats_drop_locked'; --disable_query_log call mtr.add_suppression("Unable to delete statistics for table test.innodb_stats_drop_locked: Lock wait timeout. They can be deleted later using DELETE FROM mysql.innodb_index_stats WHERE database_name"); --enable_query_log