1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
#######################################################################
# #
# The aim of this test is to set up replication between a master and #
# slave and test the basic functionality of invisible indexes which #
# were introduced in WL#8697: Support for INVISIBLE indexes. #
# #
# Creation Date: 2016-05-12 #
# Author: Deepa Dixit #
# #
#######################################################################
--source include/have_myisam.inc
--source include/master-slave.inc
--connection master
--echo # Create a table with an index
CREATE TABLE t1 ( i INT , KEY (i));
INSERT INTO t1 VALUES (2),(3),(5),(7),(11),(13);
ANALYZE TABLE t1;
--source include/sync_slave_sql_with_master.inc
--echo [Connection Slave]
--echo # Check that the index is on the slave
SHOW INDEXES FROM t1;
--echo [Connection Master]
--connection master
--echo # Make the index invisible
ALTER TABLE t1 ALTER INDEX i INVISIBLE;
ANALYZE TABLE t1;
--source include/sync_slave_sql_with_master.inc
--echo [Connection Slave]
--echo # Verify that the index is invisible on the slave
SHOW INDEXES FROM t1;
EXPLAIN SELECT * FROM t1 WHERE i=3;
--echo [Connection Master]
--connection master
ALTER TABLE t1 ALTER INDEX i VISIBLE;
ANALYZE TABLE t1;
--source include/sync_slave_sql_with_master.inc
--echo [Connection Slave]
--echo # Verify that the index is visible on the slave
SHOW INDEXES FROM t1;
EXPLAIN SELECT * FROM t1 WHERE i=3;
--echo [Connection Master]
--connection master
--echo # Create an invisible index on the table
CREATE UNIQUE INDEX idx ON t1(i) INVISIBLE;
--source include/sync_slave_sql_with_master.inc
--echo [Connection Slave]
--echo # Verify that the invisible is created on the slave
SHOW INDEXES FROM t1;
--echo [Connection Master]
--connection master
ALTER TABLE t1 DROP INDEX i, ALTER INDEX idx VISIBLE, ALTER INDEX idx INVISIBLE, ALTER INDEX idx VISIBLE;
ANALYZE TABLE t1;
--source include/sync_slave_sql_with_master.inc
--echo [Connection Slave]
SHOW INDEXES FROM t1;
--echo [Connection Master]
--connection master
--echo # Alter the engine
ALTER TABLE t1 ALTER INDEX idx INVISIBLE, ALTER INDEX idx VISIBLE;
ANALYZE TABLE t1;
--source include/sync_slave_sql_with_master.inc
--echo [Connection Slave]
SHOW INDEXES FROM t1;
--echo [Connection Master]
--connection master
--echo # Clean up
DROP TABLE t1;
--source include/sync_slave_sql_with_master.inc
--echo [Connection Slave]
--error ER_NO_SUCH_TABLE
SELECT * FROM t1;
--source include/rpl_end.inc
|