summaryrefslogtreecommitdiff
path: root/mysql-test/suite
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-08-29 15:40:37 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-08-29 18:33:30 +0300
commitf56bd70f51020c67a30415ae381ae93b9087d88d (patch)
tree80067214de138b4d91938e1ecadaae4c61f6fa4e /mysql-test/suite
parent8d9298167ec2251942953e6a1bdb4d4019b5957b (diff)
downloadmariadb-git-f56bd70f51020c67a30415ae381ae93b9087d88d.tar.gz
Adjust the imported MySQL 5.6 tests for MariaDB
FIXME: MDEV-13668 InnoDB unnecessarily rebuilds table FIXME: MDEV-13671 InnoDB should use case-insensitive column name comparisons like the rest of the server FIXME: MDEV-13640 / Properly fix MDEV-9469 'Incorrect key file' on ALTER TABLE FIXME: investigate result difference in innodb.innodb-alter-autoinc and ensure that MariaDB does the right thing with auto_increment_increment and auto_increment_offset, for both ALGORITHM=INPLACE and ALGORITHM=COPY (Oracle MySQL behaviour differs between those two).
Diffstat (limited to 'mysql-test/suite')
-rw-r--r--mysql-test/suite/innodb/r/alter_rename_existing.result6
-rw-r--r--mysql-test/suite/innodb/r/innodb-alter-autoinc.result6
-rw-r--r--mysql-test/suite/innodb/r/innodb-alter.result27
-rw-r--r--mysql-test/suite/innodb/r/innodb-index-debug.result17
-rw-r--r--mysql-test/suite/innodb/r/innodb-index-online-fk.result40
-rw-r--r--mysql-test/suite/innodb/r/innodb-index-online.result22
-rw-r--r--mysql-test/suite/innodb/r/innodb-table-online.result17
-rw-r--r--mysql-test/suite/innodb/r/innodb-wl5980-alter.result16
-rw-r--r--mysql-test/suite/innodb/t/index_tree_operation.opt1
-rw-r--r--mysql-test/suite/innodb/t/innodb-alter.opt3
-rw-r--r--mysql-test/suite/innodb/t/innodb-alter.test25
-rw-r--r--mysql-test/suite/innodb/t/innodb-index-debug.opt (renamed from mysql-test/suite/innodb/t/innodb-index-debug-master.opt)0
-rw-r--r--mysql-test/suite/innodb/t/innodb-index-debug.test17
-rw-r--r--mysql-test/suite/innodb/t/innodb-index-online-fk.opt4
-rw-r--r--mysql-test/suite/innodb/t/innodb-index-online-fk.test25
-rw-r--r--mysql-test/suite/innodb/t/innodb-index-online-master.opt1
-rw-r--r--mysql-test/suite/innodb/t/innodb-index-online.opt6
-rw-r--r--mysql-test/suite/innodb/t/innodb-index-online.test26
-rw-r--r--mysql-test/suite/innodb/t/innodb-table-online.test12
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5980-alter.opt3
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5980-alter.test31
21 files changed, 182 insertions, 123 deletions
diff --git a/mysql-test/suite/innodb/r/alter_rename_existing.result b/mysql-test/suite/innodb/r/alter_rename_existing.result
index 7eeeef7203d..b0b5083b635 100644
--- a/mysql-test/suite/innodb/r/alter_rename_existing.result
+++ b/mysql-test/suite/innodb/r/alter_rename_existing.result
@@ -13,7 +13,7 @@ INSERT INTO t1(b) VALUES('one'), ('two'), ('three');
#
t1.ibd
ALTER TABLE t1 ENGINE = InnoDB;
-ERROR HY000: Error on rename of 'OLD_FILE_NAME' to 'NEW_FILE_NAME' (errno: 184 - Tablespace already exists)
+ERROR HY000: Error on rename of 'OLD_FILE_NAME' to 'NEW_FILE_NAME' (errno: 184 "Tablespace already exists")
#
# Move the file to InnoDB as t2
#
@@ -31,7 +31,7 @@ a b
2 two
3 three
ALTER TABLE t2 RENAME TO t1;
-ERROR HY000: Error on rename of 'OLD_FILE_NAME' to 'NEW_FILE_NAME' (errno: 184 - Tablespace already exists)
+ERROR HY000: Error on rename of 'OLD_FILE_NAME' to 'NEW_FILE_NAME' (errno: 184 "Tablespace already exists")
#
# Create another t1, but in the system tablespace.
#
@@ -61,7 +61,7 @@ SET GLOBAL innodb_file_per_table=ON;
ALTER TABLE t1 ADD COLUMN e1 INT, ALGORITHM=INPLACE;
ERROR HY000: Tablespace for table 'test/t1' exists. Please DISCARD the tablespace before IMPORT.
ALTER TABLE t1 ADD COLUMN e2 INT, ALGORITHM=COPY;
-ERROR HY000: Error on rename of 'OLD_FILE_NAME' to 'NEW_FILE_NAME' (errno: 184 - Tablespace already exists)
+ERROR HY000: Error on rename of 'OLD_FILE_NAME' to 'NEW_FILE_NAME' (errno: 184 "Tablespace already exists")
#
# Delete the blocking file called MYSQLD_DATADIR/test/t1.ibd
# Move t1 to file-per-table using ALGORITHM=INPLACE with no blocking t1.ibd.
diff --git a/mysql-test/suite/innodb/r/innodb-alter-autoinc.result b/mysql-test/suite/innodb/r/innodb-alter-autoinc.result
index 8b4909917b3..452a3fbc46f 100644
--- a/mysql-test/suite/innodb/r/innodb-alter-autoinc.result
+++ b/mysql-test/suite/innodb/r/innodb-alter-autoinc.result
@@ -148,7 +148,7 @@ t1 CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `id` (`id`,`a`)
-) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=latin1
+) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=latin1
INSERT INTO t1 SET a=123;
INSERT INTO t1 VALUES(-123,-45);
ALTER TABLE t1 AUTO_INCREMENT = 75;
@@ -161,8 +161,8 @@ a id
123 55
347 60
33101 65
-123 70
123 75
+123 80
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -170,5 +170,5 @@ t1 CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `id` (`id`,`a`)
-) ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=latin1
+) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=latin1
DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/innodb-alter.result b/mysql-test/suite/innodb/r/innodb-alter.result
index 47fc97206c9..6ffa4c669d7 100644
--- a/mysql-test/suite/innodb/r/innodb-alter.result
+++ b/mysql-test/suite/innodb/r/innodb-alter.result
@@ -540,6 +540,9 @@ ERROR 42000: Key column 'c2' doesn't exist in table
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY;
ERROR 42000: Key column 'c2' doesn't exist in table
ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
+ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY.
+ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE;
+ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE;
SHOW CREATE TABLE t1n;
Table Create Table
t1n CREATE TABLE `t1n` (
@@ -556,6 +559,9 @@ ALTER TABLE t1n DROP INDEX c4;
ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE;
ERROR 42S21: Duplicate column name 'c1'
ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE;
+ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY.
+ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE;
+ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE;
SHOW CREATE TABLE t1n;
Table Create Table
t1n CREATE TABLE `t1n` (
@@ -634,11 +640,10 @@ CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL;
ALTER TABLE t1o DROP INDEX ct, DROP INDEX FTS_DOC_ID_INDEX,
CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL;
ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id);
+call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o");
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
ADD FULLTEXT INDEX(ct);
-ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
-ALGORITHM=INPLACE;
-ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot drop or rename FTS_DOC_ID. Try ALGORITHM=COPY.
+ERROR HY000: Incorrect key file for table 't1o'; try to repair it
DROP TABLE sys_indexes;
CREATE TABLE sys_indexes SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
INNER JOIN sys_tables st ON i.TABLE_ID=st.TABLE_ID;
@@ -646,16 +651,9 @@ SELECT i.NAME,i.POS,i.MTYPE,i.PRTYPE,i.LEN
FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS i
INNER JOIN sys_tables st ON i.TABLE_ID=st.TABLE_ID;
NAME POS MTYPE PRTYPE LEN
-FTS_DOC_ID 0 6 1800 8
-c2 1 6 1027 4
-ct 2 5 524540 10
-cu 3 5 524540 10
SELECT si.NAME,i.POS,i.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS i
INNER JOIN sys_indexes si ON i.INDEX_ID=si.INDEX_ID;
NAME POS NAME
-PRIMARY 0 FTS_DOC_ID
-FTS_DOC_ID_INDEX 0 FTS_DOC_ID
-ct 0 ct
SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS i
INNER JOIN sys_foreign sf ON i.ID = sf.ID;
ID FOR_COL_NAME REF_COL_NAME POS
@@ -725,21 +723,20 @@ Table Create Table
t2 CREATE TABLE `t2` (
`c2` int(11) NOT NULL,
KEY `c2` (`c2`),
- CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`C1`)
+ CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`c1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
-ALTER TABLE t1 CHANGE COLUMN C1 c5 INT;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c5` int(11) NOT NULL DEFAULT '0',
- PRIMARY KEY (`c5`)
+ `C1` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`C1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c2` int(11) NOT NULL,
KEY `c2` (`c2`),
- CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`c5`)
+ CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`c1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t2, t1;
#
diff --git a/mysql-test/suite/innodb/r/innodb-index-debug.result b/mysql-test/suite/innodb/r/innodb-index-debug.result
index 4db96a3b092..d78ba68078d 100644
--- a/mysql-test/suite/innodb/r/innodb-index-debug.result
+++ b/mysql-test/suite/innodb/r/innodb-index-debug.result
@@ -9,10 +9,11 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`c1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5);
-SET SESSION DEBUG='+d,ib_build_indexes_too_many_concurrent_trxs, ib_rename_indexes_too_many_concurrent_trxs, ib_drop_index_too_many_concurrent_trxs';
+SET @saved_debug_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG='+d,ib_build_indexes_too_many_concurrent_trxs, ib_rename_indexes_too_many_concurrent_trxs, ib_drop_index_too_many_concurrent_trxs';
ALTER TABLE t1 ADD UNIQUE INDEX(c2);
ERROR HY000: Too many active concurrent transactions
-SET SESSION DEBUG=DEFAULT;
+SET DEBUG_DBUG = @saved_debug_dbug;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -24,15 +25,15 @@ DROP TABLE t1;
CREATE TABLE bug13861218 (c1 INT NOT NULL, c2 INT NOT NULL, INDEX(c2))
ENGINE=InnoDB;
INSERT INTO bug13861218 VALUES (8, 0), (4, 0), (0, 0);
-SET DEBUG='+d,ib_row_merge_buf_add_two';
+SET DEBUG_DBUG = '+d,ib_row_merge_buf_add_two';
CREATE UNIQUE INDEX ui ON bug13861218(c1);
-SET DEBUG='-d,ib_row_merge_buf_add_two';
+SET DEBUG_DBUG = @saved_debug_dbug;
DROP TABLE bug13861218;
CREATE TABLE bug13861218 (c1 INT NOT NULL, c2 INT UNIQUE) ENGINE=InnoDB;
INSERT INTO bug13861218 VALUES (8, NULL), (4, NULL), (0, NULL);
-SET DEBUG='+d,ib_row_merge_buf_add_two';
+SET DEBUG_DBUG = '+d,ib_row_merge_buf_add_two';
CREATE UNIQUE INDEX ui ON bug13861218(c1);
-SET DEBUG='-d,ib_row_merge_buf_add_two';
+SET DEBUG_DBUG = @saved_debug_dbug;
DROP TABLE bug13861218;
set global innodb_file_per_table=1;
set global innodb_file_format=Antelope;
@@ -61,8 +62,8 @@ insert into t1 select NULL,'aaaaaaaa','bbbbbbbb','cccccccc' from t480;
select count(*) from t1;
count(*)
2880
-SET DEBUG = '+d,innobase_tmpfile_creation_failure';
+SET DEBUG_DBUG = '+d,innobase_tmpfile_creation_failure';
alter table t1 force, algorithm=inplace;
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
-SET DEBUG = '-d,innobase_tmpfile_creation_failure';
+SET DEBUG_DBUG = @saved_debug_dbug;
drop table t1, t480;
diff --git a/mysql-test/suite/innodb/r/innodb-index-online-fk.result b/mysql-test/suite/innodb/r/innodb-index-online-fk.result
index c54cf6bebb4..acd0c7ae317 100644
--- a/mysql-test/suite/innodb/r/innodb-index-online-fk.result
+++ b/mysql-test/suite/innodb/r/innodb-index-online-fk.result
@@ -90,11 +90,12 @@ a1 a2
2 3
10 20
SET foreign_key_checks = 0;
-SET DEBUG = '+d,innodb_test_open_ref_fail';
+SET @saved_debug_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG = '+d,innodb_test_open_ref_fail';
ALTER TABLE child ADD CONSTRAINT fk_4 FOREIGN KEY (a1, a2)
REFERENCES parent(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
-SET DEBUG = '-d,innodb_test_open_ref_fail';
+SET DEBUG_DBUG = @saved_debug_dbug;
SELECT * FROM information_schema.INNODB_SYS_FOREIGN;
ID FOR_NAME REF_NAME N_COLS TYPE
test/fk_1 test/child test/parent 1 6
@@ -125,9 +126,6 @@ SYS_FOREIGN_COLS
SYS_TABLESPACES
mysql/innodb_index_stats
mysql/innodb_table_stats
-mysql/slave_master_info
-mysql/slave_relay_log_info
-mysql/slave_worker_info
test/child
test/parent
INSERT INTO child VALUES(5,4);
@@ -139,12 +137,12 @@ CREATE TABLE `#parent` (a INT PRIMARY KEY, b INT NOT NULL) ENGINE = InnoDB;
CREATE INDEX tb ON `#parent`(a, b);
CREATE TABLE `#child` (a1 INT PRIMARY KEY, a2 INT) ENGINE = InnoDB;
CREATE INDEX tb ON `#child`(a1, a2);
-SET DEBUG = '+d,innodb_test_no_foreign_idx';
+SET DEBUG_DBUG = '+d,innodb_test_no_foreign_idx';
ALTER TABLE `#child` ADD CONSTRAINT fk_40 FOREIGN KEY (a1, a2)
REFERENCES `#parent`(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
ERROR HY000: Failed to add the foreign key constaint. Missing index for constraint 'fk_40' in the foreign table '#child'
-SET DEBUG = '-d,innodb_test_no_foreign_idx';
+SET DEBUG_DBUG = @saved_debug_dbug;
SHOW ERRORS;
Level Code Message
Error 1821 Failed to add the foreign key constaint. Missing index for constraint 'fk_40' in the foreign table '#child'
@@ -166,21 +164,21 @@ test/fk_3 a1 a 0
test/fk_3 a2 b 1
test/fk_4 a1 a 0
test/fk_4 a2 b 1
-SET DEBUG = '+d,innodb_test_no_reference_idx';
+SET DEBUG_DBUG = '+d,innodb_test_no_reference_idx';
ALTER TABLE child ADD CONSTRAINT fk_42 FOREIGN KEY (a1, a2)
REFERENCES parent(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
ERROR HY000: Failed to add the foreign key constaint. Missing index for constraint 'fk_42' in the referenced table 'parent'
-SET DEBUG = '-d,innodb_test_no_reference_idx';
+SET DEBUG_DBUG = @saved_debug_dbug;
SHOW ERRORS;
Level Code Message
Error 1822 Failed to add the foreign key constaint. Missing index for constraint 'fk_42' in the referenced table 'parent'
-SET DEBUG = '+d,innodb_test_wrong_fk_option';
+SET DEBUG_DBUG = '+d,innodb_test_wrong_fk_option';
ALTER TABLE child ADD CONSTRAINT fk_42 FOREIGN KEY (a1, a2)
REFERENCES parent(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
ERROR HY000: Failed to add the foreign key constraint on table 'child'. Incorrect options in FOREIGN KEY constraint 'test/fk_42'
-SET DEBUG = '-d,innodb_test_wrong_fk_option';
+SET DEBUG_DBUG = @saved_debug_dbug;
SELECT * FROM information_schema.INNODB_SYS_FOREIGN;
ID FOR_NAME REF_NAME N_COLS TYPE
test/fk_1 test/child test/parent 1 6
@@ -199,12 +197,12 @@ test/fk_3 a1 a 0
test/fk_3 a2 b 1
test/fk_4 a1 a 0
test/fk_4 a2 b 1
-SET DEBUG = '+d,innodb_test_cannot_add_fk_system';
+SET DEBUG_DBUG = '+d,innodb_test_cannot_add_fk_system';
ALTER TABLE `#child` ADD CONSTRAINT fk_43 FOREIGN KEY (a1, a2)
REFERENCES `#parent`(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
ERROR HY000: Failed to add the foreign key constraint 'test/fk_43' to system tables
-SET DEBUG = '-d,innodb_test_cannot_add_fk_system';
+SET DEBUG_DBUG = @saved_debug_dbug;
SHOW ERRORS;
Level Code Message
Error 1823 Failed to add the foreign key constraint 'test/fk_43' to system tables
@@ -295,13 +293,13 @@ INSERT INTO parent VALUES(10,20),(20,30);
CREATE TABLE child (a1 INT NOT NULL, a2 INT) ENGINE = InnoDB;
CREATE INDEX tb ON child(a2);
SET foreign_key_checks = 0;
-SET DEBUG = '+d,innodb_test_cannot_add_fk_system';
+SET DEBUG_DBUG = '+d,innodb_test_cannot_add_fk_system';
ALTER TABLE child ADD PRIMARY KEY idx (a3), CHANGE a1 a3 INT,
ADD CONSTRAINT fk_1 FOREIGN KEY (a2) REFERENCES parent(b)
ON DELETE SET NULL ON UPDATE CASCADE,
ALGORITHM = INPLACE;
ERROR HY000: Failed to add the foreign key constraint 'test/fk_1' to system tables
-SET DEBUG = '-d,innodb_test_cannot_add_fk_system';
+SET DEBUG_DBUG = @saved_debug_dbug;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
ID FOR_NAME REF_NAME N_COLS TYPE
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
@@ -318,9 +316,6 @@ SYS_FOREIGN_COLS
SYS_TABLESPACES
mysql/innodb_index_stats
mysql/innodb_table_stats
-mysql/slave_master_info
-mysql/slave_relay_log_info
-mysql/slave_worker_info
test/child
test/parent
ALTER TABLE child ADD PRIMARY KEY idx (a3), CHANGE a1 a3 INT,
@@ -345,9 +340,6 @@ SYS_FOREIGN_COLS
SYS_TABLESPACES
mysql/innodb_index_stats
mysql/innodb_table_stats
-mysql/slave_master_info
-mysql/slave_relay_log_info
-mysql/slave_worker_info
test/child
test/parent
SHOW CREATE TABLE child;
@@ -383,9 +375,6 @@ SYS_FOREIGN_COLS
SYS_TABLESPACES
mysql/innodb_index_stats
mysql/innodb_table_stats
-mysql/slave_master_info
-mysql/slave_relay_log_info
-mysql/slave_worker_info
test/child
test/parent
SHOW CREATE TABLE child;
@@ -421,9 +410,6 @@ SYS_FOREIGN_COLS
SYS_TABLESPACES
mysql/innodb_index_stats
mysql/innodb_table_stats
-mysql/slave_master_info
-mysql/slave_relay_log_info
-mysql/slave_worker_info
test/child
test/parent
SHOW CREATE TABLE child;
diff --git a/mysql-test/suite/innodb/r/innodb-index-online.result b/mysql-test/suite/innodb/r/innodb-index-online.result
index 8437959e0ad..77b7bc365aa 100644
--- a/mysql-test/suite/innodb/r/innodb-index-online.result
+++ b/mysql-test/suite/innodb/r/innodb-index-online.result
@@ -26,14 +26,15 @@ ddl_background_drop_indexes 0
ddl_background_drop_tables 0
ddl_online_create_index 0
ddl_pending_alter_table 0
-SET SESSION DEBUG = '+d,innodb_OOM_prepare_inplace_alter';
+SET @saved_debug_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG = '+d,innodb_OOM_prepare_inplace_alter';
ALTER TABLE t1 ADD UNIQUE INDEX(c2);
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
-SET SESSION DEBUG = '-d,innodb_OOM_prepare_inplace_alter';
-SET SESSION DEBUG = '+d,innodb_OOM_inplace_alter';
+SET DEBUG_DBUG = @saved_debug_dbug;
+SET DEBUG_DBUG = '+d,innodb_OOM_inplace_alter';
CREATE UNIQUE INDEX c2 ON t1(c2);
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
-SET SESSION DEBUG = '-d,innodb_OOM_inplace_alter';
+SET DEBUG_DBUG = @saved_debug_dbug;
CREATE UNIQUE INDEX c2 ON t1(c2);
DROP INDEX c2 ON t1;
SHOW CREATE TABLE t1;
@@ -121,9 +122,6 @@ database_name table_name index_name last_update stat_name stat_value sample_size
test t1 PRIMARY LAST_UPDATE n_diff_pfx01 5 1 c1
test t1 PRIMARY LAST_UPDATE n_leaf_pages 1 NULL Number of leaf pages in the index
test t1 PRIMARY LAST_UPDATE size 1 NULL Number of pages in the index
-test t1_c2_stats GEN_CLUST_INDEX LAST_UPDATE n_diff_pfx01 3 1 DB_ROW_ID
-test t1_c2_stats GEN_CLUST_INDEX LAST_UPDATE n_leaf_pages 1 NULL Number of leaf pages in the index
-test t1_c2_stats GEN_CLUST_INDEX LAST_UPDATE size 1 NULL Number of pages in the index
KILL QUERY @id;
ERROR 70100: Query execution was interrupted
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL c2d_created WAIT_FOR kill_done';
@@ -184,11 +182,10 @@ t1 CREATE TABLE `t1` (
) ENGINE=InnoDB DEFAULT CHARSET=latin1 STATS_PERSISTENT=1
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL c2e_created WAIT_FOR dml2_done';
SET lock_wait_timeout = 10;
-ALTER TABLE t1 CHANGE c2 c22 INT, DROP INDEX c2d, ADD INDEX c2e(c22),
+ALTER TABLE t1 DROP INDEX c2d, ADD INDEX c2e(c2),
ALGORITHM = INPLACE;
INSERT INTO t1 SELECT 80 + c1, c2, c3 FROM t1;
INSERT INTO t1 SELECT 160 + c1, c2, c3 FROM t1;
-UPDATE t1 SET c2 = c2 + 1;
SET DEBUG_SYNC = 'now WAIT_FOR c2e_created';
SELECT name, count FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE subsystem = 'ddl';
name count
@@ -249,7 +246,7 @@ ddl_background_drop_tables 0
ddl_online_create_index 0
ddl_pending_alter_table 0
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL c2f_created WAIT_FOR dml3_done';
-ALTER TABLE t1 ADD INDEX c2f(c22f), CHANGE c2 c22f INT;
+ALTER TABLE t1 ADD INDEX c2f(c2);
SET DEBUG_SYNC = 'now WAIT_FOR c2f_created';
SELECT name, count FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE subsystem = 'ddl';
name count
@@ -273,7 +270,8 @@ ddl_online_create_index 1
ddl_pending_alter_table 1
SET DEBUG_SYNC = 'now SIGNAL dml3_done';
Warnings:
-Note 1831 Duplicate index 'c2f' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
+Note 1831 Duplicate index `c2f`. This is deprecated and will be disallowed in a future release.
+ALTER TABLE t1 CHANGE c2 c22f INT;
SELECT name, count FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE subsystem = 'ddl';
name count
ddl_background_drop_indexes 0
@@ -339,10 +337,8 @@ ALTER TABLE t1 ADD INDEX c2h(c22f), ALGORITHM = INPLACE;
ALTER TABLE t1 ADD INDEX c2h(c22f), ALGORITHM = COPY;
ERROR 42000: Duplicate key name 'c2h'
SET DEBUG_SYNC = 'RESET';
-SET DEBUG = '';
SET GLOBAL innodb_monitor_disable = module_ddl;
DROP TABLE t1;
-SET GLOBAL DEBUG = '';
SET GLOBAL innodb_file_per_table = @global_innodb_file_per_table_orig;
SET GLOBAL innodb_monitor_enable = default;
SET GLOBAL innodb_monitor_disable = default;
diff --git a/mysql-test/suite/innodb/r/innodb-table-online.result b/mysql-test/suite/innodb/r/innodb-table-online.result
index ee51c3b8239..5440df0bb9c 100644
--- a/mysql-test/suite/innodb/r/innodb-table-online.result
+++ b/mysql-test/suite/innodb/r/innodb-table-online.result
@@ -31,14 +31,21 @@ ddl_background_drop_tables 0
ddl_online_create_index 0
ddl_pending_alter_table 0
# session con1
-SET SESSION DEBUG = '+d,innodb_OOM_prepare_inplace_alter';
+SET @saved_debug_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG = '+d,innodb_OOM_prepare_inplace_alter';
ALTER TABLE t1 ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE, LOCK=NONE;
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
-SET SESSION DEBUG = '-d,innodb_OOM_prepare_inplace_alter';
+SET SESSION DEBUG = @saved_debug_dbug;
+Warnings:
+Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
SET SESSION DEBUG = '+d,innodb_OOM_inplace_alter';
+Warnings:
+Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
ALTER TABLE t1 ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE, LOCK=NONE;
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
-SET SESSION DEBUG = '-d,innodb_OOM_inplace_alter';
+SET SESSION DEBUG = @saved_debug_dbug;
+Warnings:
+Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
ALTER TABLE t1 ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE, LOCK=NONE;
# session default
SHOW CREATE TABLE t1;
@@ -68,7 +75,7 @@ LOCK = SHARED, ALGORITHM = INPLACE;
ALTER TABLE t1 ADD UNIQUE INDEX(c2),
LOCK = EXCLUSIVE, ALGORITHM = INPLACE;
Warnings:
-Note 1831 Duplicate index 'c2_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
+Note 1831 Duplicate index `c2_2`. This is deprecated and will be disallowed in a future release.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -359,10 +366,8 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`c1`,`c22f`,`c4`(5))
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
SET DEBUG_SYNC = 'RESET';
-SET DEBUG = '';
SET GLOBAL innodb_monitor_disable = module_ddl;
DROP TABLE t1;
-SET GLOBAL DEBUG = '';
SET GLOBAL innodb_file_per_table = @global_innodb_file_per_table_orig;
SET GLOBAL innodb_monitor_enable = default;
SET GLOBAL innodb_monitor_disable = default;
diff --git a/mysql-test/suite/innodb/r/innodb-wl5980-alter.result b/mysql-test/suite/innodb/r/innodb-wl5980-alter.result
index 59d0921e31f..11e4e926b43 100644
--- a/mysql-test/suite/innodb/r/innodb-wl5980-alter.result
+++ b/mysql-test/suite/innodb/r/innodb-wl5980-alter.result
@@ -1010,6 +1010,9 @@ ERROR 42000: Key column 'c2' doesn't exist in table
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY;
ERROR 42000: Key column 'c2' doesn't exist in table
ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
+ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY.
+ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE;
+ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE;
### files in MYSQL_DATA_DIR/test
FTS_AUX_INDEX_1.ibd
FTS_AUX_INDEX_2.ibd
@@ -1110,6 +1113,9 @@ tt.ibd
ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE;
ERROR 42S21: Duplicate column name 'c1'
ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE;
+ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY.
+ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE;
+ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE;
### files in MYSQL_DATA_DIR/test
FTS_AUX_INDEX_1.ibd
FTS_AUX_INDEX_2.ibd
@@ -1195,9 +1201,13 @@ tt.isl
t1c.ibd
t1p.ibd
tt.ibd
+call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o");
ALTER TABLE t1o ADD FULLTEXT INDEX(ct),
CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
ALGORITHM=INPLACE;
+ERROR HY000: Incorrect key file for table 't1o'; try to repair it
+ALTER TABLE t1o CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE;
+ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
### files in MYSQL_DATA_DIR/test
FTS_AUX_INDEX_1.ibd
FTS_AUX_INDEX_2.ibd
@@ -1239,9 +1249,6 @@ tt.isl
t1c.ibd
t1p.ibd
tt.ibd
-ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
-LOCK=NONE;
-ERROR 0A000: LOCK=NONE is not supported. Reason: Cannot drop or rename FTS_DOC_ID. Try LOCK=SHARED.
SELECT sc.pos FROM information_schema.innodb_sys_columns sc
INNER JOIN information_schema.innodb_sys_tables st
ON sc.TABLE_ID=st.TABLE_ID
@@ -1345,6 +1352,9 @@ tt.isl
tt.ibd
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
ADD FULLTEXT INDEX(ct);
+ERROR HY000: Incorrect key file for table 't1o'; try to repair it
+ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE;
+ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
### files in MYSQL_DATA_DIR/test
FTS_AUX_INDEX_1.ibd
FTS_AUX_INDEX_2.ibd
diff --git a/mysql-test/suite/innodb/t/index_tree_operation.opt b/mysql-test/suite/innodb/t/index_tree_operation.opt
new file mode 100644
index 00000000000..66bceccc683
--- /dev/null
+++ b/mysql-test/suite/innodb/t/index_tree_operation.opt
@@ -0,0 +1 @@
+--innodb-sys-tablespaces
diff --git a/mysql-test/suite/innodb/t/innodb-alter.opt b/mysql-test/suite/innodb/t/innodb-alter.opt
new file mode 100644
index 00000000000..aa400236153
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-alter.opt
@@ -0,0 +1,3 @@
+--loose-innodb-sys-indexes
+--loose-innodb-sys-columns
+--loose-innodb-sys-fields
diff --git a/mysql-test/suite/innodb/t/innodb-alter.test b/mysql-test/suite/innodb/t/innodb-alter.test
index ca1252fb4e4..67f637a1814 100644
--- a/mysql-test/suite/innodb/t/innodb-alter.test
+++ b/mysql-test/suite/innodb/t/innodb-alter.test
@@ -298,12 +298,21 @@ SHOW CREATE TABLE t1n;
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
--error ER_KEY_COLUMN_DOES_NOT_EXITS
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY;
+# FIXME: MDEV-13668 InnoDB unnecessarily rebuilds table
+# when renaming a column and adding index
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
+ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE;
+ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE;
SHOW CREATE TABLE t1n;
ALTER TABLE t1n DROP INDEX c4;
--error ER_DUP_FIELDNAME
ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE;
+# FIXME: MDEV-13668
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE;
+ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE;
+ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE;
SHOW CREATE TABLE t1n;
DROP TABLE t1n;
@@ -361,12 +370,16 @@ CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL;
ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id);
+# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE
+call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o");
+--error ER_NOT_KEYFILE
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
ADD FULLTEXT INDEX(ct);
-
---error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
-ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
-ALGORITHM=INPLACE;
+# FIXME: MDEV-9469 (enable this)
+#--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+#ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
+#ALGORITHM=INPLACE;
+#end of MDEV-9469 FIXME
DROP TABLE sys_indexes;
CREATE TABLE sys_indexes SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
@@ -421,7 +434,9 @@ SHOW CREATE TABLE t2;
ALTER TABLE t1 CHANGE COLUMN c1 C1 INT;
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t2;
-ALTER TABLE t1 CHANGE COLUMN C1 c5 INT;
+# FIXME: MDEV-13671 InnoDB should use case-insensitive column name comparisons
+# like the rest of the server
+#ALTER TABLE t1 CHANGE COLUMN C1 c5 INT;
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t2;
DROP TABLE t2, t1;
diff --git a/mysql-test/suite/innodb/t/innodb-index-debug-master.opt b/mysql-test/suite/innodb/t/innodb-index-debug.opt
index 778b4443d4f..778b4443d4f 100644
--- a/mysql-test/suite/innodb/t/innodb-index-debug-master.opt
+++ b/mysql-test/suite/innodb/t/innodb-index-debug.opt
diff --git a/mysql-test/suite/innodb/t/innodb-index-debug.test b/mysql-test/suite/innodb/t/innodb-index-debug.test
index 8969dc69aa4..d4fcda4f160 100644
--- a/mysql-test/suite/innodb/t/innodb-index-debug.test
+++ b/mysql-test/suite/innodb/t/innodb-index-debug.test
@@ -15,10 +15,11 @@ CREATE TABLE t1(c1 INT NOT NULL, c2 INT, PRIMARY KEY(c1)) Engine=InnoDB;
SHOW CREATE TABLE t1;
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5);
-SET SESSION DEBUG='+d,ib_build_indexes_too_many_concurrent_trxs, ib_rename_indexes_too_many_concurrent_trxs, ib_drop_index_too_many_concurrent_trxs';
+SET @saved_debug_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG='+d,ib_build_indexes_too_many_concurrent_trxs, ib_rename_indexes_too_many_concurrent_trxs, ib_drop_index_too_many_concurrent_trxs';
--error ER_TOO_MANY_CONCURRENT_TRXS
ALTER TABLE t1 ADD UNIQUE INDEX(c2);
-SET SESSION DEBUG=DEFAULT;
+SET DEBUG_DBUG = @saved_debug_dbug;
SHOW CREATE TABLE t1;
DROP TABLE t1;
@@ -29,20 +30,20 @@ DROP TABLE t1;
CREATE TABLE bug13861218 (c1 INT NOT NULL, c2 INT NOT NULL, INDEX(c2))
ENGINE=InnoDB;
INSERT INTO bug13861218 VALUES (8, 0), (4, 0), (0, 0);
-SET DEBUG='+d,ib_row_merge_buf_add_two';
+SET DEBUG_DBUG = '+d,ib_row_merge_buf_add_two';
# Force creation of a PRIMARY KEY on c1 to see what happens on the index(c2).
# No crash here, because n_uniq for c2 includes the clustered index fields
CREATE UNIQUE INDEX ui ON bug13861218(c1);
-SET DEBUG='-d,ib_row_merge_buf_add_two';
+SET DEBUG_DBUG = @saved_debug_dbug;
DROP TABLE bug13861218;
CREATE TABLE bug13861218 (c1 INT NOT NULL, c2 INT UNIQUE) ENGINE=InnoDB;
INSERT INTO bug13861218 VALUES (8, NULL), (4, NULL), (0, NULL);
-SET DEBUG='+d,ib_row_merge_buf_add_two';
+SET DEBUG_DBUG = '+d,ib_row_merge_buf_add_two';
# Force creation of a PRIMARY KEY on c1 to see what happens on the index(c2).
# assertion failure: ut_ad(cmp_dtuple_rec(dtuple, rec, rec_offsets) > 0)
CREATE UNIQUE INDEX ui ON bug13861218(c1);
-SET DEBUG='-d,ib_row_merge_buf_add_two';
+SET DEBUG_DBUG = @saved_debug_dbug;
DROP TABLE bug13861218;
eval set global innodb_file_per_table=$per_table;
@@ -76,8 +77,8 @@ insert into t1 select NULL,'aaaaaaa','bbbbbbb','ccccccc' from t480;
insert into t1 select NULL,'aaaaaaaa','bbbbbbbb','cccccccc' from t480;
select count(*) from t1;
-SET DEBUG = '+d,innobase_tmpfile_creation_failure';
+SET DEBUG_DBUG = '+d,innobase_tmpfile_creation_failure';
--error ER_OUT_OF_RESOURCES
alter table t1 force, algorithm=inplace;
-SET DEBUG = '-d,innobase_tmpfile_creation_failure';
+SET DEBUG_DBUG = @saved_debug_dbug;
drop table t1, t480;
diff --git a/mysql-test/suite/innodb/t/innodb-index-online-fk.opt b/mysql-test/suite/innodb/t/innodb-index-online-fk.opt
new file mode 100644
index 00000000000..345d5529dce
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-index-online-fk.opt
@@ -0,0 +1,4 @@
+--loose-innodb-sys-tables
+--loose-innodb-sys-columns
+--loose-innodb-sys-foreign
+--loose-innodb-sys-foreign-cols
diff --git a/mysql-test/suite/innodb/t/innodb-index-online-fk.test b/mysql-test/suite/innodb/t/innodb-index-online-fk.test
index bb8c4a323e7..4480b88f0bf 100644
--- a/mysql-test/suite/innodb/t/innodb-index-online-fk.test
+++ b/mysql-test/suite/innodb/t/innodb-index-online-fk.test
@@ -92,11 +92,12 @@ SET foreign_key_checks = 0;
# This is to test the scenario we cannot open the referenced table.
# Since foreign_key_checks is set to 0, the foreign key should still
# be added.
-SET DEBUG = '+d,innodb_test_open_ref_fail';
+SET @saved_debug_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG = '+d,innodb_test_open_ref_fail';
ALTER TABLE child ADD CONSTRAINT fk_4 FOREIGN KEY (a1, a2)
REFERENCES parent(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
-SET DEBUG = '-d,innodb_test_open_ref_fail';
+SET DEBUG_DBUG = @saved_debug_dbug;
SELECT * FROM information_schema.INNODB_SYS_FOREIGN;
@@ -127,12 +128,12 @@ CREATE TABLE `#child` (a1 INT PRIMARY KEY, a2 INT) ENGINE = InnoDB;
CREATE INDEX tb ON `#child`(a1, a2);
# This is to test the scenario no foreign index, alter table should fail
-SET DEBUG = '+d,innodb_test_no_foreign_idx';
+SET DEBUG_DBUG = '+d,innodb_test_no_foreign_idx';
--error ER_FK_NO_INDEX_CHILD,
ALTER TABLE `#child` ADD CONSTRAINT fk_40 FOREIGN KEY (a1, a2)
REFERENCES `#parent`(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
-SET DEBUG = '-d,innodb_test_no_foreign_idx';
+SET DEBUG_DBUG = @saved_debug_dbug;
SHOW ERRORS;
@@ -142,23 +143,23 @@ SELECT * FROM information_schema.INNODB_SYS_FOREIGN_COLS;
# This is to test the scenario no index on referenced table,
# alter table should fail
-SET DEBUG = '+d,innodb_test_no_reference_idx';
+SET DEBUG_DBUG = '+d,innodb_test_no_reference_idx';
--error ER_FK_NO_INDEX_PARENT,
ALTER TABLE child ADD CONSTRAINT fk_42 FOREIGN KEY (a1, a2)
REFERENCES parent(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
-SET DEBUG = '-d,innodb_test_no_reference_idx';
+SET DEBUG_DBUG = @saved_debug_dbug;
SHOW ERRORS;
# This is to test the scenario no index on referenced table,
# alter table should fail
-SET DEBUG = '+d,innodb_test_wrong_fk_option';
+SET DEBUG_DBUG = '+d,innodb_test_wrong_fk_option';
--error ER_FK_INCORRECT_OPTION
ALTER TABLE child ADD CONSTRAINT fk_42 FOREIGN KEY (a1, a2)
REFERENCES parent(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
-SET DEBUG = '-d,innodb_test_wrong_fk_option';
+SET DEBUG_DBUG = @saved_debug_dbug;
SELECT * FROM information_schema.INNODB_SYS_FOREIGN;
@@ -166,12 +167,12 @@ SELECT * FROM information_schema.INNODB_SYS_FOREIGN_COLS;
# This is to test the scenario cannot add fk to the system table,
# alter table should fail
-SET DEBUG = '+d,innodb_test_cannot_add_fk_system';
+SET DEBUG_DBUG = '+d,innodb_test_cannot_add_fk_system';
--error ER_FK_FAIL_ADD_SYSTEM
ALTER TABLE `#child` ADD CONSTRAINT fk_43 FOREIGN KEY (a1, a2)
REFERENCES `#parent`(a, b) ON DELETE CASCADE ON UPDATE CASCADE,
ALGORITHM = INPLACE;
-SET DEBUG = '-d,innodb_test_cannot_add_fk_system';
+SET DEBUG_DBUG = @saved_debug_dbug;
SHOW ERRORS;
@@ -275,13 +276,13 @@ SET foreign_key_checks = 0;
# Let's rebuild the table and add the FK, make the add FK failed.
-SET DEBUG = '+d,innodb_test_cannot_add_fk_system';
+SET DEBUG_DBUG = '+d,innodb_test_cannot_add_fk_system';
--error ER_FK_FAIL_ADD_SYSTEM
ALTER TABLE child ADD PRIMARY KEY idx (a3), CHANGE a1 a3 INT,
ADD CONSTRAINT fk_1 FOREIGN KEY (a2) REFERENCES parent(b)
ON DELETE SET NULL ON UPDATE CASCADE,
ALGORITHM = INPLACE;
-SET DEBUG = '-d,innodb_test_cannot_add_fk_system';
+SET DEBUG_DBUG = @saved_debug_dbug;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
diff --git a/mysql-test/suite/innodb/t/innodb-index-online-master.opt b/mysql-test/suite/innodb/t/innodb-index-online-master.opt
deleted file mode 100644
index 9ac01ffb5ad..00000000000
--- a/mysql-test/suite/innodb/t/innodb-index-online-master.opt
+++ /dev/null
@@ -1 +0,0 @@
---innodb-sort-buffer-size=64k --innodb-online-alter-log-max-size=64k --innodb-buffer-pool-size=5M --innodb-log-buffer-size=256k
diff --git a/mysql-test/suite/innodb/t/innodb-index-online.opt b/mysql-test/suite/innodb/t/innodb-index-online.opt
new file mode 100644
index 00000000000..3f3c063b38f
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-index-online.opt
@@ -0,0 +1,6 @@
+--innodb-sort-buffer-size=64k
+--innodb-online-alter-log-max-size=64k
+--innodb-buffer-pool-size=5M
+--innodb-log-buffer-size=256k
+--innodb-sys-indexes
+--innodb-sys-fields
diff --git a/mysql-test/suite/innodb/t/innodb-index-online.test b/mysql-test/suite/innodb/t/innodb-index-online.test
index c314607e617..24e3cd1ba22 100644
--- a/mysql-test/suite/innodb/t/innodb-index-online.test
+++ b/mysql-test/suite/innodb/t/innodb-index-online.test
@@ -1,4 +1,4 @@
---source include/have_innodb.inc
+--source include/innodb_page_size_small.inc
--source include/have_debug_sync.inc
let $innodb_metrics_select=
@@ -42,14 +42,15 @@ reap;
eval $innodb_metrics_select;
connection con1;
-SET SESSION DEBUG = '+d,innodb_OOM_prepare_inplace_alter';
+SET @saved_debug_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG = '+d,innodb_OOM_prepare_inplace_alter';
--error ER_OUT_OF_RESOURCES
ALTER TABLE t1 ADD UNIQUE INDEX(c2);
-SET SESSION DEBUG = '-d,innodb_OOM_prepare_inplace_alter';
-SET SESSION DEBUG = '+d,innodb_OOM_inplace_alter';
+SET DEBUG_DBUG = @saved_debug_dbug;
+SET DEBUG_DBUG = '+d,innodb_OOM_inplace_alter';
--error ER_OUT_OF_RESOURCES
CREATE UNIQUE INDEX c2 ON t1(c2);
-SET SESSION DEBUG = '-d,innodb_OOM_inplace_alter';
+SET DEBUG_DBUG = @saved_debug_dbug;
CREATE UNIQUE INDEX c2 ON t1(c2);
DROP INDEX c2 ON t1;
@@ -206,7 +207,9 @@ SET DEBUG_SYNC = 'row_log_apply_before SIGNAL c2e_created WAIT_FOR dml2_done';
# Ensure that the ALTER TABLE will be executed even with some concurrent DML.
SET lock_wait_timeout = 10;
--send
-ALTER TABLE t1 CHANGE c2 c22 INT, DROP INDEX c2d, ADD INDEX c2e(c22),
+# FIXME: MDEV-13668
+#ALTER TABLE t1 CHANGE c2 c22 INT, DROP INDEX c2d, ADD INDEX c2e(c22),
+ALTER TABLE t1 DROP INDEX c2d, ADD INDEX c2e(c2),
ALGORITHM = INPLACE;
# Generate some log (delete-mark, delete-unmark, insert etc.)
@@ -215,7 +218,7 @@ ALGORITHM = INPLACE;
connection default;
INSERT INTO t1 SELECT 80 + c1, c2, c3 FROM t1;
INSERT INTO t1 SELECT 160 + c1, c2, c3 FROM t1;
-UPDATE t1 SET c2 = c2 + 1;
+#UPDATE t1 SET c2 = c2 + 1;
SET DEBUG_SYNC = 'now WAIT_FOR c2e_created';
# At this point, the clustered index scan must have completed,
# but the modification log keeps accumulating due to the DEBUG_SYNC.
@@ -271,7 +274,9 @@ connection con1;
# Accumulate and apply some modification log.
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL c2f_created WAIT_FOR dml3_done';
--send
-ALTER TABLE t1 ADD INDEX c2f(c22f), CHANGE c2 c22f INT;
+# FIXME: MDEV-13668
+#ALTER TABLE t1 ADD INDEX c2f(c22f), CHANGE c2 c22f INT;
+ALTER TABLE t1 ADD INDEX c2f(c2);
connection default;
SET DEBUG_SYNC = 'now WAIT_FOR c2f_created';
@@ -291,6 +296,9 @@ SET DEBUG_SYNC = 'now SIGNAL dml3_done';
connection con1;
reap;
+# FIXME: MDEV-13668
+ALTER TABLE t1 CHANGE c2 c22f INT;
+
eval $innodb_metrics_select;
SELECT COUNT(c22f) FROM t1;
CHECK TABLE t1;
@@ -386,7 +394,6 @@ ALTER TABLE t1 ADD INDEX c2h(c22f), ALGORITHM = INPLACE;
ALTER TABLE t1 ADD INDEX c2h(c22f), ALGORITHM = COPY;
SET DEBUG_SYNC = 'RESET';
-SET DEBUG = '';
SET GLOBAL innodb_monitor_disable = module_ddl;
DROP TABLE t1;
@@ -395,7 +402,6 @@ DROP TABLE t1;
# gone so execution of other tests won't be affected by their presence.
--source include/wait_until_count_sessions.inc
-SET GLOBAL DEBUG = '';
SET GLOBAL innodb_file_per_table = @global_innodb_file_per_table_orig;
--disable_warnings
SET GLOBAL innodb_monitor_enable = default;
diff --git a/mysql-test/suite/innodb/t/innodb-table-online.test b/mysql-test/suite/innodb/t/innodb-table-online.test
index f8bce701803..4dce8e4d65f 100644
--- a/mysql-test/suite/innodb/t/innodb-table-online.test
+++ b/mysql-test/suite/innodb/t/innodb-table-online.test
@@ -1,4 +1,5 @@
---source include/have_innodb.inc
+--source include/innodb_page_size.inc
+--source include/have_debug.inc
--source include/have_debug_sync.inc
let $innodb_metrics_select=
@@ -48,14 +49,15 @@ eval $innodb_metrics_select;
--echo # session con1
connection con1;
-SET SESSION DEBUG = '+d,innodb_OOM_prepare_inplace_alter';
+SET @saved_debug_dbug = @@SESSION.debug_dbug;
+SET DEBUG_DBUG = '+d,innodb_OOM_prepare_inplace_alter';
--error ER_OUT_OF_RESOURCES
ALTER TABLE t1 ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE, LOCK=NONE;
-SET SESSION DEBUG = '-d,innodb_OOM_prepare_inplace_alter';
+SET SESSION DEBUG = @saved_debug_dbug;
SET SESSION DEBUG = '+d,innodb_OOM_inplace_alter';
--error ER_OUT_OF_RESOURCES
ALTER TABLE t1 ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE, LOCK=NONE;
-SET SESSION DEBUG = '-d,innodb_OOM_inplace_alter';
+SET SESSION DEBUG = @saved_debug_dbug;
ALTER TABLE t1 ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE, LOCK=NONE;
--echo # session default
@@ -363,7 +365,6 @@ disconnect con1;
connection default;
SHOW CREATE TABLE t1;
SET DEBUG_SYNC = 'RESET';
-SET DEBUG = '';
SET GLOBAL innodb_monitor_disable = module_ddl;
DROP TABLE t1;
@@ -371,7 +372,6 @@ DROP TABLE t1;
# gone so execution of other tests won't be affected by their presence.
--source include/wait_until_count_sessions.inc
-SET GLOBAL DEBUG = '';
SET GLOBAL innodb_file_per_table = @global_innodb_file_per_table_orig;
--disable_warnings
SET GLOBAL innodb_monitor_enable = default;
diff --git a/mysql-test/suite/innodb/t/innodb-wl5980-alter.opt b/mysql-test/suite/innodb/t/innodb-wl5980-alter.opt
new file mode 100644
index 00000000000..aa400236153
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-wl5980-alter.opt
@@ -0,0 +1,3 @@
+--loose-innodb-sys-indexes
+--loose-innodb-sys-columns
+--loose-innodb-sys-fields
diff --git a/mysql-test/suite/innodb/t/innodb-wl5980-alter.test b/mysql-test/suite/innodb/t/innodb-wl5980-alter.test
index 2815a6fc6d7..a3ae83753e0 100644
--- a/mysql-test/suite/innodb/t/innodb-wl5980-alter.test
+++ b/mysql-test/suite/innodb/t/innodb-wl5980-alter.test
@@ -447,7 +447,12 @@ ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
--error ER_KEY_COLUMN_DOES_NOT_EXITS
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY;
+# FIXME: MDEV-13668 InnoDB unnecessarily rebuilds table
+# when renaming a column and adding index
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
+ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE;
+ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE;
--echo ### files in MYSQL_DATA_DIR/test
--replace_regex $regexp
@@ -469,7 +474,11 @@ ALTER TABLE t1n DROP INDEX c4;
--error ER_DUP_FIELDNAME
ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE;
+# FIXME: MDEV-13668
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE;
+ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE;
+ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE;
--echo ### files in MYSQL_DATA_DIR/test
--replace_regex $regexp
@@ -491,10 +500,17 @@ ALTER TABLE t1o MODIFY c1 BIGINT UNSIGNED NOT NULL;
--replace_regex $regexp
--list_files $MYSQL_TMP_DIR/alt_dir/test
+# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE
+call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o");
+--error ER_NOT_KEYFILE
ALTER TABLE t1o ADD FULLTEXT INDEX(ct),
CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
ALGORITHM=INPLACE;
+ALTER TABLE t1o CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE;
+ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
+# end of MDEV-9469 FIXME
+
--echo ### files in MYSQL_DATA_DIR/test
--replace_regex $regexp
--list_files $MYSQL_DATA_DIR/test
@@ -503,9 +519,11 @@ ALGORITHM=INPLACE;
--list_files $MYSQL_TMP_DIR/alt_dir/test
# This would create a hidden FTS_DOC_ID column, which cannot be done online.
---error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
-ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
-LOCK=NONE;
+# FIXME: MDEV-9469 (enable this)
+#--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+#ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
+#LOCK=NONE;
+#end of MDEV-9469 FIXME
# This should not show duplicates.
SELECT sc.pos FROM information_schema.innodb_sys_columns sc
@@ -516,6 +534,7 @@ WHERE st.NAME='test/t1o' AND sc.NAME='FTS_DOC_ID';
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t1o;
+# FIXME: MDEV-13668
ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
DROP INDEX ct, LOCK=NONE;
@@ -553,9 +572,15 @@ ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id);
--replace_regex $regexp
--list_files $MYSQL_TMP_DIR/alt_dir/test
+# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE
+--error ER_NOT_KEYFILE
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
ADD FULLTEXT INDEX(ct);
+ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE;
+ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
+#end of MDEV-9469 FIXME
+
--echo ### files in MYSQL_DATA_DIR/test
--replace_regex $regexp
--list_files $MYSQL_DATA_DIR/test