diff options
Diffstat (limited to 'mysql-test/suite/storage_engine/index_enable_disable.test')
-rw-r--r-- | mysql-test/suite/storage_engine/index_enable_disable.test | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/mysql-test/suite/storage_engine/index_enable_disable.test b/mysql-test/suite/storage_engine/index_enable_disable.test new file mode 100644 index 00000000000..4f0297ea2f0 --- /dev/null +++ b/mysql-test/suite/storage_engine/index_enable_disable.test @@ -0,0 +1,88 @@ +# +# ENABLE KEYS / DISABLE KEYS +# + +--source have_engine.inc +--source have_default_index.inc + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + + +--let $create_definition = a $int_indexed_col, $default_index(a) +--source create_table.inc +INSERT INTO t1 (a) VALUES (10); + +INSERT INTO t1 (a) VALUES + (1),(2),(3),(4),(5),(6),(7),(8),(9), + (21),(22),(23),(24),(25),(26),(27),(28),(29); +# Plan should use the index. +# Masking the `rows` column as the value might vary a bit +--replace_column 9 # +EXPLAIN SELECT a FROM t1 ORDER BY a; + +--replace_column 6 # 7 # +SHOW INDEX IN t1; + +--let $alter_definition = DISABLE KEYS +--source alter_table.inc +if ($mysql_errname) +{ + --let $my_last_stmt = $alter_statement + --let $functionality = ALTER .. DISABLE KEYS + --source unexpected_result.inc +} + +# Now comment should say 'disabled' +--replace_column 6 # 7 # +SHOW INDEX IN t1; + +# And the plan should not use the index +EXPLAIN SELECT a FROM t1 ORDER BY a; +INSERT INTO t1 (a) VALUES + (11),(12),(13),(14),(15),(16),(17),(18),(19),(20); + +# The index should be back active +--let $alter_definition = ENABLE KEYS +--source alter_table.inc +--replace_column 6 # 7 # +SHOW INDEX IN t1; +--replace_column 9 # +EXPLAIN SELECT a FROM t1 ORDER BY a; + +DROP TABLE t1; + +--let $create_definition = a $int_indexed_col, UNIQUE INDEX(a) +--source create_table.inc +if ($mysql_errname) +{ + --let $my_last_stmt = $create_statement + --let $functionality = Unique keys + --source unexpected_result.inc +} +if (!$mysql_errname) +{ + INSERT INTO t1 (a) VALUES + (1),(2),(3),(4),(5),(6),(7),(8),(9), + (21),(22),(23),(24),(25),(26),(27),(28),(29); + + # For unique indexes DISABLE KEYS has no effect + + --let $alter_definition = DISABLE KEYS + --source alter_table.inc + --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY + INSERT INTO t1 (a) VALUES (29); + --source check_errors.inc + --replace_column 6 # 7 # + SHOW INDEX IN t1; + --replace_column 9 # + EXPLAIN SELECT a FROM t1 ORDER BY a; + + DROP TABLE t1; +} + +# Cleanup + +--source cleanup_engine.inc + |