495 lines
17 KiB
Plaintext
495 lines
17 KiB
Plaintext
#
|
|
# Skip this test when MySQL has been built with other storage engines
|
|
# than InnoDB, it is because dumping SDI from mysql.ibd
|
|
# causes extra output when for example the ndbcluster storage engine is
|
|
# included and additional system tables are added to the MySQL data dictionary
|
|
# It is hard to separate this output
|
|
# from mysql.json
|
|
--source include/have_only_innodb.inc
|
|
|
|
#########################
|
|
# how to record this test JSON result content mismatch
|
|
# If required fix regex patterns in mysql-test/include/ibd2sdi.pl
|
|
# and mysql-test/suite/innodb/include/ibd2sdi_replace_pattern.inc,
|
|
# then run the test with --record option.
|
|
#########################
|
|
|
|
--let $SRC_DIR=$MYSQL_TEST_DIR/std_data/dd/sdi/innodb_sdi
|
|
|
|
# Create a directory to store json generated
|
|
--let $DEST_DIR=$MYSQL_TMP_DIR/sdi_dest/
|
|
--error 0,1
|
|
--force-rmdir $DEST_DIR
|
|
--mkdir $DEST_DIR
|
|
|
|
let $MYSQLD_BASEDIR= `select @@basedir`;
|
|
let $START_PAGE_SIZE= `select @@innodb_page_size`;
|
|
let $LOG_FILE_SIZE= `select @@innodb_log_file_size`;
|
|
|
|
# Set path for --datadir
|
|
let $MYSQLD_DATADIR = $MYSQL_TMP_DIR/datadir;
|
|
--mkdir $MYSQLD_DATADIR
|
|
|
|
let BOOTSTRAP_SQL=$MYSQL_TMP_DIR/boot.sql;
|
|
|
|
--echo # create bootstrap file
|
|
write_file $BOOTSTRAP_SQL;
|
|
CREATE DATABASE test;
|
|
EOF
|
|
|
|
# Set the bootstrap parameters with undo log encryption enabled
|
|
let NEW_CMD = $MYSQLD --no-defaults --innodb_dedicated_server=OFF --initialize-insecure --secure-file-priv="" --innodb_log_file_size=$LOG_FILE_SIZE --innodb_page_size=$START_PAGE_SIZE --datadir=$MYSQLD_DATADIR --init-file=$BOOTSTRAP_SQL --cluster-id=1 --cluster-start-index=1 --cluster-info='127.0.0.1:29211@1' </dev/null>>$MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1;
|
|
|
|
--echo # Stop the MTR default DB server
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
--echo # Run the bootstrap command
|
|
--exec $NEW_CMD
|
|
|
|
--let $restart_parameters="restart: --datadir=$MYSQLD_DATADIR --innodb_log_file_size=$LOG_FILE_SIZE --innodb_log_files_in_group=2"
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR $LOG_FILE_SIZE LOG_FILE_SIZE
|
|
--source include/start_mysqld.inc
|
|
|
|
CREATE TABLE t1 (a INT);
|
|
CREATE TABLE t2 (a INT PRIMARY KEY, b BLOB);
|
|
CREATE TABLE t3 (a INT PRIMARY KEY, b SMALLINT, c TEXT, d JSON, UNIQUE KEY k1(b), KEY k2(b, c(20)));
|
|
CREATE TABLE t4 (a INT PRIMARY KEY, b TINYINT, c MEDIUMINT, d BIGINT);
|
|
CREATE TABLE t5 (a INT NOT NULL, b INT NOT NULL, PRIMARY KEY(a,b), c DECIMAL(5,2), d FLOAT(7,4), e DOUBLE);
|
|
create table `t6` (
|
|
`c0291` char(140) not null,
|
|
`c0292` int(10) unsigned zerofill not null,
|
|
`c0293` time(3) default null,
|
|
`c0294` int(11) not null,
|
|
`c0295` binary(1) not null,
|
|
`c0296` datetime(6) not null,
|
|
`c0297` date default null,
|
|
`c0298` mediumtext not null,
|
|
`c0299` int(10) unsigned zerofill not null,
|
|
`c0300` decimal(54,6) not null,
|
|
primary key (`c0296`,`c0298`(186)),
|
|
unique key `i0002` (`c0294`),
|
|
unique key `i0005` (`c0298`(102)),
|
|
unique key `i0007` (`c0299`,`c0292`,`c0297`),
|
|
unique key `i0008` (`c0296`,`c0293`),
|
|
unique key `i0001` (`c0297`,`c0298`(240),`c0296`,`c0293`,`c0294`),
|
|
unique key `i0004` (`c0296`,`c0295`,`c0293`,`c0291`(95),`c0298`(215)),
|
|
key `i0003` (`c0296`,`c0291`(26)),
|
|
key `i0006` (`c0297`,`c0296`,`c0293`,`c0294`),
|
|
key `i0009` (`c0299`,`c0292`,`c0300`) using btree
|
|
) engine=innodb default charset=latin1 row_format=compact;
|
|
|
|
CREATE TABLE t7(
|
|
a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
b INT NOT NULL DEFAULT '123',
|
|
c TIMESTAMP NOT NULL DEFAULT '2000-01-01 00:00:00'
|
|
) ROW_FORMAT=REDUNDANT ENGINE=InnoDB;
|
|
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd';
|
|
CREATE TABLE t8(fld1 INT NOT NULL PRIMARY KEY) TABLESPACE=ts1 ENGINE=InnoDB;
|
|
CREATE TABLE t9(fld1 INT NOT NULL, fld2 INT AS (fld1) VIRTUAL, KEY(fld2),
|
|
FOREIGN KEY(fld1) REFERENCES t8(fld1) ON UPDATE CASCADE) TABLESPACE=ts1 ENGINE=InnoDB;
|
|
|
|
CREATE TABLE t10(a INT PRIMARY KEY, b JSON, c BLOB, d LONGBLOB, e MEDIUMBLOB, f TINYBLOB);
|
|
|
|
CREATE TABLE t11 (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10),
|
|
j INT, m INT GENERATED ALWAYS AS(b + x), n VARCHAR(10),
|
|
p VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, y)),
|
|
x INT, y CHAR(20), z INT, INDEX idx1(c), INDEX idx2 (m), INDEX idx3(p)) ENGINE=InnoDB;
|
|
|
|
CREATE TABLE t12 (
|
|
id INT NOT NULL,
|
|
store_id INT NOT NULL,
|
|
x INT GENERATED ALWAYS AS (id + store_id)
|
|
) ENGINE=InnoDB
|
|
PARTITION BY RANGE (store_id) (
|
|
PARTITION p0 VALUES LESS THAN (6),
|
|
PARTITION p1 VALUES LESS THAN (11),
|
|
PARTITION p2 VALUES LESS THAN (16),
|
|
PARTITION p3 VALUES LESS THAN (21)
|
|
);
|
|
|
|
CREATE TABLE t13 (
|
|
FTS_DOC_ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
id int(10) not null ,
|
|
first_name varchar(50) NOT NULL,
|
|
last_name varchar(50) NOT NULL,
|
|
PRIMARY KEY (FTS_DOC_ID),
|
|
UNIQUE KEY idx_1 (first_name, last_name),
|
|
FULLTEXT KEY `idx_2` (first_name)
|
|
) ENGINE=InnoDB;
|
|
|
|
CREATE TABLE t14 (
|
|
i int(10) unsigned not null auto_increment primary key,
|
|
a varchar(255) not null,
|
|
FULLTEXT KEY (a)
|
|
) ENGINE = INNODB;
|
|
|
|
create table t15 (c1 int, c2 geometry not null SRID 0, spatial index (c2)) engine=innodb;
|
|
|
|
CREATE TABLE t16 (
|
|
a INT,
|
|
b INT,
|
|
c INT,
|
|
d INT,
|
|
e INT,
|
|
f INT,
|
|
PRIMARY KEY (a),
|
|
INDEX i1 (b),
|
|
INDEX i2 (c),
|
|
INDEX i3 (d),
|
|
INDEX i4 (e)
|
|
) ENGINE=INNODB TABLESPACE=`innodb_system`;
|
|
|
|
SET GLOBAL innodb_file_per_table=OFF;
|
|
|
|
CREATE TABLE t17(
|
|
c1 iNT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
|
|
|
|
SET GLOBAL innodb_file_per_table=default;
|
|
|
|
SET NAMES UTF8;
|
|
CREATE TABLE t18(హి INT, శరెెనిక BLOB);
|
|
|
|
|
|
--echo #
|
|
--echo # Bug#29020745: INNODB TABLESPACES WITH SUBPARTITIONS DO NOT
|
|
--echo # CONTAIN TABLE SDI OBJECT
|
|
--echo #
|
|
|
|
CREATE TABLE t18_ (a INT NOT NULL, b INT)
|
|
PARTITION BY RANGE (a) PARTITIONS 3 SUBPARTITION BY KEY (b) (
|
|
PARTITION p1 VALUES LESS THAN (200) (
|
|
SUBPARTITION p11,
|
|
SUBPARTITION p12,
|
|
SUBPARTITION p13),
|
|
PARTITION p2 VALUES LESS THAN (600) (
|
|
SUBPARTITION p21,
|
|
SUBPARTITION p22,
|
|
SUBPARTITION p23),
|
|
PARTITION p3 VALUES LESS THAN (1800) (
|
|
SUBPARTITION p31,
|
|
SUBPARTITION p32,
|
|
SUBPARTITION p33));
|
|
|
|
|
|
#--let $table_id=`select HEX(se_private_id) from mysql.tables where name = 't14'`
|
|
#--echo "table_id is $table_id"
|
|
#--let $count = `select count(*) from mysql.tablespace_files where file_name like './test/fts_%$table_id%'`
|
|
#--echo "count is $count"
|
|
#--let $val = 1
|
|
#--expr $count = $count - $val
|
|
#--echo "count is $count"
|
|
#while ($count >= 0)
|
|
#{
|
|
#--let $file_name$count = `select file_name from mysql.tablespace_files where file_name like './test/fts_%$table_id%' LIMIT $count,1`
|
|
#--echo "file_name is $file_name$count"
|
|
#dec $count;
|
|
#}
|
|
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
--echo # Check SDI from mysql.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/mysql.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/mysql.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace_mysql.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/mysql.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t1.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t1.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t1.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t1.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t2.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t2.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t2.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t2.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t3.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t3.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t3.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t3.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t4.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t4.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t4.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t4.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t5.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t5.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t5.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t5.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t6.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t6.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t6.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t6.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t7.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t7.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t7.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t7.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from ts1.ibd(holds t8 & t9)
|
|
--let JSON_FILE_PATH = $DEST_DIR/ts1.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/ts1.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/ts1.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t10.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t10.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t10.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t10.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t11.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t11.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t11.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t11.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from partition tables t12.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t12#p#p0.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t12#P#p0.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t12#p#p0.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--let JSON_FILE_PATH = $DEST_DIR/t12#p#p1.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t12#P#p1.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t12#p#p1.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t13.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t13.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t13.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t13.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t14.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t14.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t14.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t14.json $JSON_FILE_PATH
|
|
}
|
|
|
|
# This seems very hard
|
|
#--echo # Check SDI from FTS .ibd files
|
|
|
|
--echo # Check SDI from t15.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t15.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t15.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t15.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from system tablespace(has 16,17)
|
|
--let JSON_FILE_PATH = $DEST_DIR/ibdata1.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/ibdata1 -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace_system.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/ibdata1.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t18.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t18.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t18.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t18.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t18_#p#p1#sp#p11.ibd
|
|
--echo # Should have both tablespace and table SDIs
|
|
--let JSON_FILE_PATH = $DEST_DIR/t18_#p#p1#sp#p11.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t18_#P#p1#SP#p11.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t18_#p#p1#sp#p11.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t18_#p#p1#sp#p12.ibd
|
|
--echo # Should only have tablespace SDI
|
|
--let JSON_FILE_PATH = $DEST_DIR/t18_#p#p1#sp#p12.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t18_#P#p1#SP#p12.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t18_#p#p1#sp#p12.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR $LOG_FILE_SIZE LOG_FILE_SIZE
|
|
--source include/start_mysqld.inc
|
|
--echo # ALTER TABLE t1, ADD COLUMN. Verify SDI shows the newly added column
|
|
ALTER TABLE t1 ADD COLUMN b INT;
|
|
|
|
--echo # ALTER TABLE t2, ADD INDEX, Verify SDI shows the newly added index
|
|
ALTER TABLE t2 ADD INDEX k1(b(10));
|
|
|
|
--echo # ALTER TABLE t3, DROP INDEX, Verify SDI doesn't show dropped index
|
|
ALTER TABLE t3 DROP INDEX k2;
|
|
|
|
--echo # ALTER TABLE t4, DROP column, Verify SDI doesn't show dropped column
|
|
ALTER TABLE t4 DROP COLUMN d;
|
|
|
|
--echo # ALTER TABLE RENAME column
|
|
ALTER TABLE t10 CHANGE a pk INT;
|
|
|
|
--echo # Drop virtual column, verify SDI is updated
|
|
ALTER TABLE t11 DROP COLUMN m;
|
|
|
|
--echo # Create and drop tables in general tablespace
|
|
CREATE TABLE t19(a INT) TABLESPACE=`ts1`;
|
|
CREATE TABLE t20(a INT, b INT) TABLESPACE=`ts1`;
|
|
DROP TABLE t19;
|
|
DROP TABLE t20;
|
|
|
|
--source include/shutdown_mysqld.inc
|
|
--echo # ALTER TABLE t1, ADD COLUMN. Verify SDI shows the newly added column 'b'
|
|
--echo # Check SDI from t1.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t1_altered.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t1.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t1_altered.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # ALTER TABLE t2, ADD INDEX, Verify SDI shows the newly added index 'k1'
|
|
--echo # Check SDI from t2.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t2_altered.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t2.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t2_altered.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # ALTER TABLE t3, DROP INDEX, Verify SDI doesn't show dropped index 'k2'
|
|
--echo # Check SDI from t3.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t3_altered.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t3.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t3_altered.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # ALTER TABLE t4, DROP column, Verify SDI doesn't show dropped column 'd'
|
|
--echo # Check SDI from t4.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t4_altered.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t4.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t4_altered.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # ALTER TABLE t10 RENAME column from 'a' to 'pk'. Verify column name is 'pk'
|
|
--echo # Check SDI from t10.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t10_altered.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t10.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t10_altered.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Drop virtual column of t11, verify SDI doesn't show clumn 'm'
|
|
--echo # Check SDI from t11.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t11_altered.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/test/t11.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t11_altered.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Create and drop tables in general tablespace. Shouldn't show t19, t20
|
|
--let JSON_FILE_PATH = $DEST_DIR/ts1_altered.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR/ts1.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source ../include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/ts1_altered.json $JSON_FILE_PATH
|
|
}
|
|
|
|
# If --record is used, save the json files created in the $DEST_DIR
|
|
# back to the $SRC_DIR.
|
|
if ($MTR_RECORD == 1) {
|
|
--copy_files_wildcard $DEST_DIR $SRC_DIR *.json
|
|
}
|
|
|
|
--echo # Remove json and other test files
|
|
--force-rmdir $DEST_DIR
|
|
--force-rmdir $MYSQLD_DATADIR
|
|
--remove_file $BOOTSTRAP_SQL
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/bootstrap.log
|
|
|
|
--let $restart_parameters=
|
|
--source include/start_mysqld.inc
|
|
|
|
--echo #
|
|
--echo # Bug#27151163 - INNODB: ASSERTION FAILURE: DICT0SDI.CC:.*
|
|
--echo #
|
|
--disable_query_log
|
|
call mtr.add_suppression("Operating system error number 2 in a file operation.");
|
|
call mtr.add_suppression("The error means the system cannot find the path specified.");
|
|
call mtr.add_suppression("Cannot open datafile for read-only:");
|
|
call mtr.add_suppression("Cannot calculate statistics for table .* because the \.ibd file is missing");
|
|
call mtr.add_suppression("Tablespace .*, name 'ts1', file 'ts1.ibd' is missing!");
|
|
call mtr.add_suppression("Cannot find tablespace for 'ts1' in the tablespace memory cache");
|
|
|
|
--enable_query_log
|
|
|
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd';
|
|
CREATE DATABASE sdi;
|
|
|
|
CREATE TABLE sdi.t1(i int) TABLESPACE ts1;
|
|
|
|
--echo # Shutdown the server
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
--echo # Remove ts1.ibd file
|
|
--remove_file $MYSQLD_DATADIR/ts1.ibd
|
|
|
|
--source include/start_mysqld.inc
|
|
|
|
--error ER_TABLESPACE_MISSING
|
|
ALTER TABLE sdi.t1 ADD COLUMN j INT;
|
|
--error ER_TABLESPACE_MISSING
|
|
ALTER TABLE sdi.t1 RENAME COLUMN i to j;
|
|
--error ER_ALTER_FILEGROUP_FAILED
|
|
ALTER TABLESPACE ts1 RENAME to ts2;
|
|
SHOW WARNINGS;
|
|
DROP DATABASE sdi;
|
|
DROP TABLESPACE ts1;
|