Spracherkennung für: .test vermutete Sprache: SQL {SQL[110] Lisp[36] Masm[36]} [Methode: maximale Elemente, drei Dimensionen]
#
# 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
CREATE DATABASE unlocked;
CREATE TABLE unlocked.t1(a INT PRIMARY KEY) ENGINE=INNODB STATS_PERSISTENT=0;
CREATE DATABASE locked;
CREATE TABLE locked.t1(a INT PRIMARY KEY) ENGINE=INNODB STATS_PERSISTENT=1;
CREATE TABLE innodb_stats_drop_locked (c INT, KEY c_key (c))
ENGINE=INNODB STATS_PERSISTENT=1;
ANALYZE TABLE innodb_stats_drop_locked;
BEGIN;
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,,)
SET innodb_lock_wait_timeout=1;
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE innodb_stats_drop_locked DROP INDEX c_key;
# the index should be gone
SHOW CREATE TABLE innodb_stats_drop_locked;
--error ER_LOCK_WAIT_TIMEOUT
DROP TABLE innodb_stats_drop_locked;
DROP DATABASE unlocked;
--error ER_LOCK_WAIT_TIMEOUT
DROP DATABASE locked;
-- disconnect con1
-- connection default
COMMIT;
DROP DATABASE locked;
# 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';
ALTER TABLE innodb_stats_drop_locked DROP INDEX c_key;
SELECT table_name FROM mysql.innodb_index_stats
WHERE table_name='innodb_stats_drop_locked';
DROP TABLE innodb_stats_drop_locked;
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';
[Dauer der Verarbeitung: 0.14 Sekunden, vorverarbeitet 2026-10-08]