--source include/have_innodb.inc --source include/have_sequence.inc let $MYSQLD_DATADIR = `SELECT @@datadir`; --echo # --echo # MDEV-26137 ALTER TABLE IMPORT enhancement --echo # --echo # drop t1 before importing t2 CREATE TABLE t1 (a int) ENGINE=InnoDB; INSERT INTO t1 VALUES(42); FLUSH TABLES t1 FOR EXPORT; --copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_DATADIR/test/t2.cfg --copy_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_DATADIR/test/t2.frm --copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_DATADIR/test/t2.ibd UNLOCK TABLES; DROP TABLE t1; ALTER TABLE t2 IMPORT TABLESPACE; SHOW CREATE TABLE t2; SELECT * FROM t2; DROP TABLE t2; --echo # created t2 but did not discard tablespace CREATE TABLE t1 (a int) ENGINE=InnoDB; INSERT INTO t1 VALUES(42); CREATE TABLE t2 LIKE t1; FLUSH TABLES t1 FOR EXPORT; --copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_DATADIR/test/t2.cfg UNLOCK TABLES; DROP TABLE t1; call mtr.add_suppression("InnoDB: Unable to import tablespace"); --error ER_TABLESPACE_EXISTS ALTER TABLE t2 IMPORT TABLESPACE; SHOW CREATE TABLE t2; SELECT * FROM t2; DROP TABLE t2; --echo # attempt to import when there's no tablespace --error ER_NO_SUCH_TABLE ALTER TABLE t2 IMPORT TABLESPACE; --echo # with index CREATE TABLE t1 (a int, b varchar(50)) ENGINE=InnoDB; CREATE UNIQUE INDEX ai ON t1 (a); INSERT INTO t1 VALUES(42, "hello"); FLUSH TABLES t1 FOR EXPORT; --copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_DATADIR/test/t2.cfg --copy_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_DATADIR/test/t2.frm --copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_DATADIR/test/t2.ibd UNLOCK TABLES; ALTER TABLE t2 IMPORT TABLESPACE; SHOW CREATE TABLE t2; SELECT * FROM t2; SHOW INDEX FROM t1; SHOW INDEX FROM t2; DROP TABLE t1, t2; --echo # with virtual column index CREATE TABLE t1 (a int, b int as (a * a)) ENGINE=InnoDB; CREATE UNIQUE INDEX ai ON t1 (b); INSERT INTO t1 VALUES(42, default); FLUSH TABLES t1 FOR EXPORT; --copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_DATADIR/test/t2.cfg --copy_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_DATADIR/test/t2.frm --copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_DATADIR/test/t2.ibd UNLOCK TABLES; ALTER TABLE t2 IMPORT TABLESPACE; SHOW CREATE TABLE t2; SELECT * FROM t2; SELECT b FROM t2 USE INDEX (ai); SHOW INDEX FROM t1; SHOW INDEX FROM t2; CHECK TABLE t2 EXTENDED; DROP TABLE t1, t2; --echo # with auto_increment CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, i2 INT, i1 INT)ENGINE=INNODB; INSERT INTO t1 (i2) SELECT 4 FROM seq_1_to_1024; FLUSH TABLE t1 FOR EXPORT; --copy_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_DATADIR/test/t2.frm --copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_DATADIR/test/t2.ibd --copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_DATADIR/test/t2.cfg UNLOCK TABLES; ALTER TABLE t2 IMPORT TABLESPACE; CHECK TABLE t2 EXTENDED; DROP TABLE t2, t1;