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 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
--echo #
--echo # Import regular and partitioned tablespaces exported from 5.7 after a restart.
--echo #
# The following SQL was used to create the tables on 5.7
# CREATE SCHEMA `export57`;
# USE `export57`;
# CREATE TABLE `t1` (`c1` INT);
# INSERT INTO `t1` values (1);
# CREATE TABLE `t2` (`c1` INT PRIMARY KEY, `c2` INT) DATA DIRECTORY '/tmp/data57';
# INSERT INTO `t2` values (1, 1);
# CREATE TABLE `t3` (`c1` INT) PARTITION BY KEY (`c1`) PARTITIONS 2;
# INSERT INTO `t3` values (1);
# CREATE TABLE `t4` (`c1` INT PRIMARY KEY, `c2` INT) DATA DIRECTORY '/tmp/data57' PARTITION BY HASH (`c1`) PARTITIONS 2;
# INSERT INTO `t4` values (1, 1);
# FLUSH TABLES `t1`, `t2`, `t3`, `t4` FOR EXPORT;
#
# Copy all .cfg and .ibd files for t1 and t3 files to /tmp/data57/export57
# /tmp/data57> zip -qr data57_exported.zip export57
# Copy data57_exported.zip to {branch mysql-8.0} mysql-test/std_data/data57_exported.zip
#
# UNLOCK TABLES;
# DROP TABLE `t1`, `t2`, `t3`, `t4`;
--source include/have_innodb_16k.inc
--let $MYSQLD_DATADIR = `select @@datadir`
--let $EXTERNAL_DIR = $MYSQL_TMP_DIR/external_dir
CREATE SCHEMA `import80`;
USE `import80`;
CREATE TABLE `t1` (`c1` INT);
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE `t2` (`c1` INT PRIMARY KEY, `c2` INT) DATA DIRECTORY ='$EXTERNAL_DIR';
CREATE TABLE `t3` (`c1` INT) PARTITION BY KEY (`c1`) PARTITIONS 2;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE `t4` (`c1` INT PRIMARY KEY, `c2` INT) DATA DIRECTORY ='$EXTERNAL_DIR' PARTITION BY HASH (`c1`) PARTITIONS 2;
CREATE TABLE `t5` (`c1` INT);
INSERT INTO `t5` values (1);
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE `t6` (`c1` INT PRIMARY KEY, `c2` INT) DATA DIRECTORY ='$EXTERNAL_DIR';
INSERT INTO `t6` values (1, 1);
CREATE TABLE `t7` (`c1` INT) PARTITION BY KEY (`c1`) PARTITIONS 2;
INSERT INTO `t7` values (1);
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE `t8` (`c1` INT PRIMARY KEY, `c2` INT) DATA DIRECTORY ='$EXTERNAL_DIR' PARTITION BY HASH (`c1`) PARTITIONS 2;
INSERT INTO `t8` values (1, 1);
FLUSH TABLES `t5`, `t6`, `t7`, `t8` FOR EXPORT;
--mkdir $MYSQL_TMP_DIR/export80/
--echo # Copy cfg and ibd files for `t5` to MYSQL_TMP_DIR/export80.
--copy_files_wildcard $MYSQLD_DATADIR/import80/ $MYSQL_TMP_DIR/export80/ t5*
--echo # Copy cfg and ibd files for `t6` to MYSQL_TMP_DIR/export80.
--copy_files_wildcard $EXTERNAL_DIR/import80/ $MYSQL_TMP_DIR/export80/ t6*
--echo # Copy cfg and ibd files for `t7` to MYSQL_TMP_DIR/export80.
--copy_files_wildcard $MYSQLD_DATADIR/import80/ $MYSQL_TMP_DIR/export80/ t7*
--echo # Copy cfg and ibd files for `t8` to MYSQL_TMP_DIR/export80.
--copy_files_wildcard $EXTERNAL_DIR/import80/ $MYSQL_TMP_DIR/export80/ t8*
UNLOCK TABLES;
ALTER TABLE `t1` DISCARD TABLESPACE;
ALTER TABLE `t2` DISCARD TABLESPACE;
ALTER TABLE `t3` DISCARD TABLESPACE;
ALTER TABLE `t4` DISCARD TABLESPACE;
ALTER TABLE `t5` DISCARD TABLESPACE;
ALTER TABLE `t6` DISCARD TABLESPACE;
ALTER TABLE `t7` DISCARD TABLESPACE;
ALTER TABLE `t8` DISCARD TABLESPACE;
--echo # Unzip exported 5.7 partitioned tables to MYSQL_TMP_DIR.
--copy_file $MYSQLTEST_VARDIR/std_data/data57_exported.zip $MYSQL_TMP_DIR/data57_exported.zip
--file_exists $MYSQL_TMP_DIR/data57_exported.zip
--exec unzip -qo $MYSQL_TMP_DIR/data57_exported.zip -d $MYSQL_TMP_DIR
--echo # Copy exported v5.7 t1 files to MYSQLD_DATADIR/import80.
--copy_files_wildcard $MYSQL_TMP_DIR/export57/ $MYSQLD_DATADIR/import80/ t1*
--echo # Copy exported v5.7 t2 files to MYSQL_TMP_DIR/external_dir/import80.
--copy_files_wildcard $MYSQL_TMP_DIR/export57/ $EXTERNAL_DIR/import80/ t2*
--echo # Copy exported v5.7 t3 files to MYSQLD_DATADIR/import80.
--copy_files_wildcard $MYSQL_TMP_DIR/export57/ $MYSQLD_DATADIR/import80/ t3*
--echo # Copy exported v5.7 t4 files to MYSQL_TMP_DIR/external_dir/import80.
--copy_files_wildcard $MYSQL_TMP_DIR/export57/ $EXTERNAL_DIR/import80/ t4*
--echo # Copy exported v8.0 t5 files to MYSQLD_DATADIR/import80.
--copy_files_wildcard $MYSQL_TMP_DIR/export80/ $MYSQLD_DATADIR/import80/ t5*
--echo # Copy exported v8.0 t6 files to MYSQL_TMP_DIR/external_dir/import80.
--copy_files_wildcard $MYSQL_TMP_DIR/export80/ $EXTERNAL_DIR/import80/ t6*
--echo # Copy exported v8.0 t7 files to MYSQLD_DATADIR/import80.
--copy_files_wildcard $MYSQL_TMP_DIR/export80/ $MYSQLD_DATADIR/import80/ t7*
--echo # Copy exported v8.0 t8 files to MYSQL_TMP_DIR/external_dir/import80.
--copy_files_wildcard $MYSQL_TMP_DIR/export80/ $EXTERNAL_DIR/import80/ t8*
--source include/restart_mysqld.inc
ALTER TABLE `t1` IMPORT TABLESPACE;
select * from t1;
ALTER TABLE `t2` IMPORT TABLESPACE;
select * from t2;
ALTER TABLE `t3` IMPORT TABLESPACE;
select * from t3;
ALTER TABLE `t4` IMPORT TABLESPACE;
select * from t4;
ALTER TABLE `t5` IMPORT TABLESPACE;
select * from t5;
ALTER TABLE `t6` IMPORT TABLESPACE;
select * from t6;
ALTER TABLE `t7` IMPORT TABLESPACE;
select * from t7;
ALTER TABLE `t8` IMPORT TABLESPACE;
select * from t8;
--echo # Cleanup
DROP TABLE `t1`, `t2`, t3, t4, `t5`, `t6`, t7, t8;
USE `test`;
DROP SCHEMA `import80`;
--force-rmdir $EXTERNAL_DIR/import80
--force-rmdir $EXTERNAL_DIR
--force-rmdir $MYSQL_TMP_DIR/export57
--force-rmdir $MYSQL_TMP_DIR/export80
--remove_file $MYSQL_TMP_DIR/data57_exported.zip
|