summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/innodb')
-rw-r--r--mysql-test/suite/innodb/r/innodb-wl5522.result18
-rw-r--r--mysql-test/suite/innodb/r/innodb_buffer_pool_resize_with_chunks.result8
-rw-r--r--mysql-test/suite/innodb/r/innodb_information_schema.result62
-rw-r--r--mysql-test/suite/innodb/r/restart,16k,innodb.rdiff16
-rw-r--r--mysql-test/suite/innodb/r/restart,32k,innodb.rdiff16
-rw-r--r--mysql-test/suite/innodb/r/restart,4k,innodb.rdiff16
-rw-r--r--mysql-test/suite/innodb/r/restart,64k,innodb.rdiff16
-rw-r--r--mysql-test/suite/innodb/r/restart,8k,innodb.rdiff16
-rw-r--r--mysql-test/suite/innodb/r/restart.result13
-rw-r--r--mysql-test/suite/innodb/r/skip_symbolic_links.result56
-rw-r--r--mysql-test/suite/innodb/t/101_compatibility.test1
-rw-r--r--mysql-test/suite/innodb/t/create_isl_with_direct.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5522.test37
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5980-alter.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5980-debug.test1
-rw-r--r--mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.opt2
-rw-r--r--mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb_information_schema.test2
-rw-r--r--mysql-test/suite/innodb/t/restart.opt2
-rw-r--r--mysql-test/suite/innodb/t/restart.test24
-rw-r--r--mysql-test/suite/innodb/t/skip_symbolic_links.opt1
-rw-r--r--mysql-test/suite/innodb/t/skip_symbolic_links.test51
22 files changed, 324 insertions, 38 deletions
diff --git a/mysql-test/suite/innodb/r/innodb-wl5522.result b/mysql-test/suite/innodb/r/innodb-wl5522.result
index 27856fa136b..88db4c040f5 100644
--- a/mysql-test/suite/innodb/r/innodb-wl5522.result
+++ b/mysql-test/suite/innodb/r/innodb-wl5522.result
@@ -334,7 +334,7 @@ SELECT * FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
ALTER TABLE t1 IMPORT TABLESPACE;
-ERROR HY000: Schema mismatch (Number of columns don't match, table has 6 columns but the tablespace meta-data file has 5 columns)
+ERROR HY000: Schema mismatch (Column c3 not found in tablespace.)
unlink: t1.ibd
unlink: t1.cfg
DROP TABLE t1;
@@ -919,6 +919,22 @@ c1 c2
15 1
16 1
DROP TABLE t1;
+CREATE TABLE t1 ( id INT NOT NULL, i1 INT, i2 INT, i3 INT, PRIMARY KEY (id)) engine=innodb;
+CREATE TABLE t2 ( id INT NOT NULL, i1 INT, i2 INT, PRIMARY KEY (id)) engine=innodb;
+ALTER TABLE t2 DISCARD TABLESPACE;
+FLUSH TABLES t1 FOR EXPORT;
+UNLOCK TABLES;
+ALTER TABLE t2 IMPORT TABLESPACE;
+ERROR HY000: Schema mismatch (Column DB_ROW_ID ordinal value mismatch, it's at 3 in the table and 4 in the tablespace meta-data file)
+DROP TABLE t1, t2;
+CREATE TABLE t1 ( id INT NOT NULL, i1 INT, i2 INT, PRIMARY KEY (id)) engine=innodb;
+CREATE TABLE t2 ( id INT NOT NULL, i1 INT, i2 INT, i3 INT, PRIMARY KEY (id)) engine=innodb;
+ALTER TABLE t2 DISCARD TABLESPACE;
+FLUSH TABLES t1 FOR EXPORT;
+UNLOCK TABLES;
+ALTER TABLE t2 IMPORT TABLESPACE;
+ERROR HY000: Schema mismatch (Column i3 not found in tablespace.)
+DROP TABLE t1, t2;
call mtr.add_suppression("Got error -1 when reading table '.*'");
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'");
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
diff --git a/mysql-test/suite/innodb/r/innodb_buffer_pool_resize_with_chunks.result b/mysql-test/suite/innodb/r/innodb_buffer_pool_resize_with_chunks.result
index 4bf244c9588..efb652091bf 100644
--- a/mysql-test/suite/innodb/r/innodb_buffer_pool_resize_with_chunks.result
+++ b/mysql-test/suite/innodb/r/innodb_buffer_pool_resize_with_chunks.result
@@ -1,6 +1,6 @@
select @@innodb_buffer_pool_chunk_size;
@@innodb_buffer_pool_chunk_size
-2097152
+4194304
create table t1 (id int not null, val int not null default '0', primary key (id)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
create or replace view view0 as select 1 union all select 1;
set @`v_id` := 0;
@@ -18,9 +18,9 @@ count(val)
262144
drop table t1;
drop view view0;
-set global innodb_buffer_pool_size = 1048576;
+set global innodb_buffer_pool_size = 2*1048576;
Warnings:
-Warning 1292 Truncated incorrect innodb_buffer_pool_size value: '1048576'
+Warning 1292 Truncated incorrect innodb_buffer_pool_size value: '2097152'
select @@innodb_buffer_pool_size;
@@innodb_buffer_pool_size
-6291456
+4194304
diff --git a/mysql-test/suite/innodb/r/innodb_information_schema.result b/mysql-test/suite/innodb/r/innodb_information_schema.result
index f8b53f1b2c8..8fa779e8e11 100644
--- a/mysql-test/suite/innodb/r/innodb_information_schema.result
+++ b/mysql-test/suite/innodb/r/innodb_information_schema.result
@@ -1,18 +1,18 @@
lock_mode lock_type lock_table lock_index lock_rec lock_data
-X RECORD `test`.```t'\"_str` PRIMARY 2 '1', 'abc', '''abc', 'abc''', 'a''bc', 'a''bc''', '''abc'''''
-X RECORD `test`.```t'\"_str` PRIMARY 2 '1', 'abc', '''abc', 'abc''', 'a''bc', 'a''bc''', '''abc'''''
-X RECORD `test`.```t'\"_str` PRIMARY 3 '2', 'abc', '"abc', 'abc"', 'a"bc', 'a"bc"', '"abc""'
-X RECORD `test`.```t'\"_str` PRIMARY 3 '2', 'abc', '"abc', 'abc"', 'a"bc', 'a"bc"', '"abc""'
-X RECORD `test`.```t'\"_str` PRIMARY 4 '3', 'abc', '\\abc', 'abc\\', 'a\\bc', 'a\\bc\\', '\\abc\\\\'
-X RECORD `test`.```t'\"_str` PRIMARY 4 '3', 'abc', '\\abc', 'abc\\', 'a\\bc', 'a\\bc\\', '\\abc\\\\'
-X RECORD `test`.```t'\"_str` PRIMARY 5 '4', 'abc', '\0abc', 'abc\0', 'a\0bc', 'a\0bc\0', 'a\0bc\0\0'
-X RECORD `test`.```t'\"_str` PRIMARY 5 '4', 'abc', '\0abc', 'abc\0', 'a\0bc', 'a\0bc\0', 'a\0bc\0\0'
-X RECORD `test`.`t_min` PRIMARY 2 -128, 0, -32768, 0, -8388608, 0, -2147483648, 0, -9223372036854775808, 0
-X RECORD `test`.`t_min` PRIMARY 2 -128, 0, -32768, 0, -8388608, 0, -2147483648, 0, -9223372036854775808, 0
-X RECORD `test`.`t_max` PRIMARY 2 127, 255, 32767, 65535, 8388607, 16777215, 2147483647, 4294967295, 9223372036854775807, 18446744073709551615
-X RECORD `test`.`t_max` PRIMARY 2 127, 255, 32767, 65535, 8388607, 16777215, 2147483647, 4294967295, 9223372036854775807, 18446744073709551615
-X RECORD `test`.```t'\"_str` PRIMARY 1 supremum pseudo-record
-X RECORD `test`.```t'\"_str` PRIMARY 1 supremum pseudo-record
+X RECORD `test`.```t'\"_str` PRIMARY 1 #
+X RECORD `test`.```t'\"_str` PRIMARY 1 #
+X RECORD `test`.```t'\"_str` PRIMARY 2 #
+X RECORD `test`.```t'\"_str` PRIMARY 2 #
+X RECORD `test`.```t'\"_str` PRIMARY 3 #
+X RECORD `test`.```t'\"_str` PRIMARY 3 #
+X RECORD `test`.```t'\"_str` PRIMARY 4 #
+X RECORD `test`.```t'\"_str` PRIMARY 4 #
+X RECORD `test`.```t'\"_str` PRIMARY 5 #
+X RECORD `test`.```t'\"_str` PRIMARY 5 #
+X RECORD `test`.`t_max` PRIMARY 2 #
+X RECORD `test`.`t_max` PRIMARY 2 #
+X RECORD `test`.`t_min` PRIMARY 2 #
+X RECORD `test`.`t_min` PRIMARY 2 #
lock_table COUNT(*)
`test`.`t_max` 2
`test`.`t_min` 2
@@ -22,28 +22,28 @@ lock_table COUNT(*)
"test"."t_min" 2
"test"."`t'\""_str" 10
Field Type Null Key Default Extra
-trx_id varchar(18) NO
-trx_state varchar(13) NO
-trx_started datetime NO 0000-00-00 00:00:00
+trx_id varchar(18) NO NULL
+trx_state varchar(13) NO NULL
+trx_started datetime NO NULL
trx_requested_lock_id varchar(81) YES NULL
trx_wait_started datetime YES NULL
-trx_weight bigint(21) unsigned NO 0
-trx_mysql_thread_id bigint(21) unsigned NO 0
+trx_weight bigint(21) unsigned NO NULL
+trx_mysql_thread_id bigint(21) unsigned NO NULL
trx_query varchar(1024) YES NULL
trx_operation_state varchar(64) YES NULL
-trx_tables_in_use bigint(21) unsigned NO 0
-trx_tables_locked bigint(21) unsigned NO 0
-trx_lock_structs bigint(21) unsigned NO 0
-trx_lock_memory_bytes bigint(21) unsigned NO 0
-trx_rows_locked bigint(21) unsigned NO 0
-trx_rows_modified bigint(21) unsigned NO 0
-trx_concurrency_tickets bigint(21) unsigned NO 0
-trx_isolation_level varchar(16) NO
-trx_unique_checks int(1) NO 0
-trx_foreign_key_checks int(1) NO 0
+trx_tables_in_use bigint(21) unsigned NO NULL
+trx_tables_locked bigint(21) unsigned NO NULL
+trx_lock_structs bigint(21) unsigned NO NULL
+trx_lock_memory_bytes bigint(21) unsigned NO NULL
+trx_rows_locked bigint(21) unsigned NO NULL
+trx_rows_modified bigint(21) unsigned NO NULL
+trx_concurrency_tickets bigint(21) unsigned NO NULL
+trx_isolation_level varchar(16) NO NULL
+trx_unique_checks int(1) NO NULL
+trx_foreign_key_checks int(1) NO NULL
trx_last_foreign_key_error varchar(256) YES NULL
-trx_is_read_only int(1) NO 0
-trx_autocommit_non_locking int(1) NO 0
+trx_is_read_only int(1) NO NULL
+trx_autocommit_non_locking int(1) NO NULL
trx_state trx_weight trx_tables_in_use trx_tables_locked trx_rows_locked trx_rows_modified trx_concurrency_tickets trx_isolation_level trx_unique_checks trx_foreign_key_checks
RUNNING 3 0 1 6 1 0 REPEATABLE READ 1 1
trx_isolation_level trx_unique_checks trx_foreign_key_checks
diff --git a/mysql-test/suite/innodb/r/restart,16k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,16k,innodb.rdiff
new file mode 100644
index 00000000000..b36ed067913
--- /dev/null
+++ b/mysql-test/suite/innodb/r/restart,16k,innodb.rdiff
@@ -0,0 +1,16 @@
+--- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100
++++ suite/innodb/r/restart.reject 2022-01-19 08:12:28.602794678 +1100
+@@ -32,10 +32,10 @@
+ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig;
+ SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size;
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size -1);
+-ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of '5242879'
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1210 innodb_buffer_pool_size must be at least MIN_VAL for innodb_page_size=PAGE_SIZE
+-Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++Warning 1210 innodb_buffer_pool_size must be at least 5242880 for innodb_page_size=16384
++Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of '5242879'
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size);
+ SET GLOBAL innodb_buffer_pool_size = @innodb_buffer_pool_size_orig;
diff --git a/mysql-test/suite/innodb/r/restart,32k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,32k,innodb.rdiff
new file mode 100644
index 00000000000..8fa057814c4
--- /dev/null
+++ b/mysql-test/suite/innodb/r/restart,32k,innodb.rdiff
@@ -0,0 +1,16 @@
+--- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100
++++ suite/innodb/r/restart.reject 2022-01-19 08:07:57.402230887 +1100
+@@ -32,10 +32,10 @@
+ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig;
+ SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size;
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size -1);
+-ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of '10485759'
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1210 innodb_buffer_pool_size must be at least MIN_VAL for innodb_page_size=PAGE_SIZE
+-Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++Warning 1210 innodb_buffer_pool_size must be at least 10485760 for innodb_page_size=32768
++Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of '10485759'
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size);
+ SET GLOBAL innodb_buffer_pool_size = @innodb_buffer_pool_size_orig;
diff --git a/mysql-test/suite/innodb/r/restart,4k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,4k,innodb.rdiff
new file mode 100644
index 00000000000..7d0846360e0
--- /dev/null
+++ b/mysql-test/suite/innodb/r/restart,4k,innodb.rdiff
@@ -0,0 +1,16 @@
+--- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100
++++ suite/innodb/r/restart.reject 2022-01-19 08:13:56.397475513 +1100
+@@ -32,10 +32,10 @@
+ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig;
+ SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size;
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size -1);
+-ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of '2097151'
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1210 innodb_buffer_pool_size must be at least MIN_VAL for innodb_page_size=PAGE_SIZE
+-Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++Warning 1210 innodb_buffer_pool_size must be at least 2097152 for innodb_page_size=4096
++Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of '2097151'
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size);
+ SET GLOBAL innodb_buffer_pool_size = @innodb_buffer_pool_size_orig;
diff --git a/mysql-test/suite/innodb/r/restart,64k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,64k,innodb.rdiff
new file mode 100644
index 00000000000..3ac9f45b196
--- /dev/null
+++ b/mysql-test/suite/innodb/r/restart,64k,innodb.rdiff
@@ -0,0 +1,16 @@
+--- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100
++++ suite/innodb/r/restart.reject 2022-01-19 08:11:32.418759095 +1100
+@@ -32,10 +32,10 @@
+ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig;
+ SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size;
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size -1);
+-ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of '20971519'
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1210 innodb_buffer_pool_size must be at least MIN_VAL for innodb_page_size=PAGE_SIZE
+-Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++Warning 1210 innodb_buffer_pool_size must be at least 20971520 for innodb_page_size=65536
++Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of '20971519'
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size);
+ SET GLOBAL innodb_buffer_pool_size = @innodb_buffer_pool_size_orig;
diff --git a/mysql-test/suite/innodb/r/restart,8k,innodb.rdiff b/mysql-test/suite/innodb/r/restart,8k,innodb.rdiff
new file mode 100644
index 00000000000..4da55ebfcef
--- /dev/null
+++ b/mysql-test/suite/innodb/r/restart,8k,innodb.rdiff
@@ -0,0 +1,16 @@
+--- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100
++++ suite/innodb/r/restart.reject 2022-01-19 08:13:11.027788852 +1100
+@@ -32,10 +32,10 @@
+ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig;
+ SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size;
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size -1);
+-ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of '3145727'
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1210 innodb_buffer_pool_size must be at least MIN_VAL for innodb_page_size=PAGE_SIZE
+-Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
++Warning 1210 innodb_buffer_pool_size must be at least 3145728 for innodb_page_size=8192
++Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of '3145727'
+ EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size);
+ SET GLOBAL innodb_buffer_pool_size = @innodb_buffer_pool_size_orig;
diff --git a/mysql-test/suite/innodb/r/restart.result b/mysql-test/suite/innodb/r/restart.result
index b2132bed267..2c786572cd8 100644
--- a/mysql-test/suite/innodb/r/restart.result
+++ b/mysql-test/suite/innodb/r/restart.result
@@ -28,3 +28,16 @@ a
SELECT * FROM td;
a
DROP TABLE tr,tc,td;
+#
+# MDEV-27467 innodb to enfore the minimum innodb_buffer_pool_size in SET (resize) the same as startup
+#
+SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig;
+SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size;
+EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size -1);
+ERROR 42000: Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
+SHOW WARNINGS;
+Level Code Message
+Warning 1210 innodb_buffer_pool_size must be at least MIN_VAL for innodb_page_size=PAGE_SIZE
+Error 1231 Variable 'innodb_buffer_pool_size' can't be set to the value of 'WRONG_VALUE'
+EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size);
+SET GLOBAL innodb_buffer_pool_size = @innodb_buffer_pool_size_orig;
diff --git a/mysql-test/suite/innodb/r/skip_symbolic_links.result b/mysql-test/suite/innodb/r/skip_symbolic_links.result
new file mode 100644
index 00000000000..e7a8a3cf86b
--- /dev/null
+++ b/mysql-test/suite/innodb/r/skip_symbolic_links.result
@@ -0,0 +1,56 @@
+SELECT @@have_symlink;
+@@have_symlink
+DISABLED
+CREATE TABLE t1(a INT) ENGINE=InnoDB DATA DIRECTORY 'MYSQL_TMP_DIR';
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+DROP TABLE t1;
+CREATE TABLE t1(a INT) ENGINE=InnoDB;
+ALTER TABLE t1 DATA DIRECTORY 'MYSQL_TMP_DIR';
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+DROP TABLE t1;
+# restart: --symbolic-links
+CREATE TABLE t1(a INT PRIMARY KEY, b INT) ENGINE=InnoDB
+DATA DIRECTORY 'MYSQL_TMP_DIR';
+CREATE TABLE t2(a INT PRIMARY KEY, b INT) ENGINE=InnoDB
+DATA DIRECTORY 'MYSQL_TMP_DIR';
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+# restart
+ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+ALTER TABLE t2 FORCE, ALGORITHM=COPY;
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
+test.t1 optimize status OK
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+t1.ibd
+DROP TABLE t2;
+RENAME TABLE t1 TO t2;
+ALTER TABLE t2 ADD UNIQUE INDEX(b), RENAME TO t3;
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+ALTER TABLE t3 RENAME TO t2;
+ALTER TABLE t2 DROP INDEX b, RENAME TO t1;
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+ALTER TABLE t1 CHANGE b c INT;
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+ALTER TABLE t1 CHANGE c b INT NOT NULL;
+Warnings:
+Warning 1618 <DATA DIRECTORY> option ignored
+t1.ibd
+TRUNCATE TABLE t1;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/101_compatibility.test b/mysql-test/suite/innodb/t/101_compatibility.test
index eb1ec3b26ac..878daad2756 100644
--- a/mysql-test/suite/innodb/t/101_compatibility.test
+++ b/mysql-test/suite/innodb/t/101_compatibility.test
@@ -1,5 +1,6 @@
--source include/innodb_page_size.inc
--source include/not_embedded.inc
+--source include/have_symlink.inc
-- echo #
-- echo # MDEV-11623 MariaDB 10.1 fails to start datadir created with
diff --git a/mysql-test/suite/innodb/t/create_isl_with_direct.test b/mysql-test/suite/innodb/t/create_isl_with_direct.test
index 1427264e13e..2092d03b72f 100644
--- a/mysql-test/suite/innodb/t/create_isl_with_direct.test
+++ b/mysql-test/suite/innodb/t/create_isl_with_direct.test
@@ -1,5 +1,6 @@
--source include/not_embedded.inc
--source include/have_innodb.inc
+--source include/have_symlink.inc
--disable_query_log
CALL mtr.add_suppression(".*Failed to set O_DIRECT on file.*");
diff --git a/mysql-test/suite/innodb/t/innodb-wl5522.test b/mysql-test/suite/innodb/t/innodb-wl5522.test
index 0b1c7d216b2..47ea4325403 100644
--- a/mysql-test/suite/innodb/t/innodb-wl5522.test
+++ b/mysql-test/suite/innodb/t/innodb-wl5522.test
@@ -1069,6 +1069,43 @@ SELECT * FROM t1;
DROP TABLE t1;
+
+CREATE TABLE t1 ( id INT NOT NULL, i1 INT, i2 INT, i3 INT, PRIMARY KEY (id)) engine=innodb;
+CREATE TABLE t2 ( id INT NOT NULL, i1 INT, i2 INT, PRIMARY KEY (id)) engine=innodb;
+
+ALTER TABLE t2 DISCARD TABLESPACE;
+FLUSH TABLES t1 FOR EXPORT;
+
+--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;
+--error ER_TABLE_SCHEMA_MISMATCH
+ALTER TABLE t2 IMPORT TABLESPACE;
+
+DROP TABLE t1, t2;
+
+
+CREATE TABLE t1 ( id INT NOT NULL, i1 INT, i2 INT, PRIMARY KEY (id)) engine=innodb;
+CREATE TABLE t2 ( id INT NOT NULL, i1 INT, i2 INT, i3 INT, PRIMARY KEY (id)) engine=innodb;
+
+ALTER TABLE t2 DISCARD TABLESPACE;
+FLUSH TABLES t1 FOR EXPORT;
+
+--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;
+--error ER_TABLE_SCHEMA_MISMATCH
+ALTER TABLE t2 IMPORT TABLESPACE;
+
+--remove_file $MYSQLD_DATADIR/test/t2.ibd
+--remove_file $MYSQLD_DATADIR/test/t2.cfg
+
+
+DROP TABLE t1, t2;
+
+
call mtr.add_suppression("Got error -1 when reading table '.*'");
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'");
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
diff --git a/mysql-test/suite/innodb/t/innodb-wl5980-alter.test b/mysql-test/suite/innodb/t/innodb-wl5980-alter.test
index a0d80ea8374..9b51612854f 100644
--- a/mysql-test/suite/innodb/t/innodb-wl5980-alter.test
+++ b/mysql-test/suite/innodb/t/innodb-wl5980-alter.test
@@ -4,6 +4,7 @@
--echo #
--source include/have_innodb.inc
+--source include/have_symlink.inc
--disable_query_log
# These values can change during the test
diff --git a/mysql-test/suite/innodb/t/innodb-wl5980-debug.test b/mysql-test/suite/innodb/t/innodb-wl5980-debug.test
index 2c5e2b48870..dbb8ad33676 100644
--- a/mysql-test/suite/innodb/t/innodb-wl5980-debug.test
+++ b/mysql-test/suite/innodb/t/innodb-wl5980-debug.test
@@ -8,6 +8,7 @@
--source include/not_embedded.inc
--source include/have_debug.inc
--source include/have_innodb.inc
+--source include/have_symlink.inc
# These messages are expected in the log
call mtr.add_suppression("Cannot find space id [0-9]+ in the tablespace memory cache");
diff --git a/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.opt b/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.opt
index b97a3995457..ade197de338 100644
--- a/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.opt
+++ b/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.opt
@@ -1,3 +1,3 @@
--innodb-buffer-pool-size=16M
---innodb-buffer-pool-chunk-size=2M
+--innodb-buffer-pool-chunk-size=4M
--innodb-page-size=4k
diff --git a/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.test b/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.test
index b04b0306bf1..7a26db65d33 100644
--- a/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.test
+++ b/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_with_chunks.test
@@ -49,7 +49,7 @@ drop table t1;
drop view view0;
# Try to shrink buffer pool to smaller than chunk size
-set global innodb_buffer_pool_size = 1048576;
+set global innodb_buffer_pool_size = 2*1048576;
--source include/wait_condition.inc
select @@innodb_buffer_pool_size;
diff --git a/mysql-test/suite/innodb/t/innodb_information_schema.test b/mysql-test/suite/innodb/t/innodb_information_schema.test
index da7ee016f29..5bc1115c58e 100644
--- a/mysql-test/suite/innodb/t/innodb_information_schema.test
+++ b/mysql-test/suite/innodb/t/innodb_information_schema.test
@@ -148,6 +148,8 @@ if (!$success)
-- echo Timeout waiting for rows in INNODB_LOCKS to appear
}
+--replace_column 6 #
+--sorted_result
SELECT lock_mode, lock_type, lock_table, lock_index, lock_rec, lock_data
FROM INFORMATION_SCHEMA.INNODB_LOCKS ORDER BY lock_data;
diff --git a/mysql-test/suite/innodb/t/restart.opt b/mysql-test/suite/innodb/t/restart.opt
new file mode 100644
index 00000000000..ce43e89cb2b
--- /dev/null
+++ b/mysql-test/suite/innodb/t/restart.opt
@@ -0,0 +1,2 @@
+--loose-innodb_disable_resize_buffer_pool_debug=0
+--innodb-buffer-pool-chunk-size=1M
diff --git a/mysql-test/suite/innodb/t/restart.test b/mysql-test/suite/innodb/t/restart.test
index a7a7855ba7b..cd5e7532354 100644
--- a/mysql-test/suite/innodb/t/restart.test
+++ b/mysql-test/suite/innodb/t/restart.test
@@ -1,5 +1,6 @@
--source include/innodb_page_size.inc
--source include/not_embedded.inc
+--source include/have_symlink.inc
let datadir= `select @@datadir`;
let page_size= `select @@innodb_page_size`;
@@ -77,3 +78,26 @@ SELECT * FROM tr;
SELECT * FROM tc;
SELECT * FROM td;
DROP TABLE tr,tc,td;
+
+--echo #
+--echo # MDEV-27467 innodb to enfore the minimum innodb_buffer_pool_size in SET (resize) the same as startup
+--echo #
+
+let $wait_timeout = 180;
+let $wait_condition =
+ SELECT SUBSTR(variable_value, 1, 34) = 'Completed resizing buffer pool at '
+ FROM information_schema.global_status
+ WHERE LOWER(variable_name) = 'innodb_buffer_pool_resize_status';
+
+SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig;
+SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size;
+--error ER_WRONG_VALUE_FOR_VAR
+EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size -1);
+
+SHOW WARNINGS;
+
+EXECUTE IMMEDIATE 'SET GLOBAL innodb_buffer_pool_size = ?' USING (@min_pool_size);
+
+--source include/wait_condition.inc
+
+SET GLOBAL innodb_buffer_pool_size = @innodb_buffer_pool_size_orig;
diff --git a/mysql-test/suite/innodb/t/skip_symbolic_links.opt b/mysql-test/suite/innodb/t/skip_symbolic_links.opt
new file mode 100644
index 00000000000..c7844699cdb
--- /dev/null
+++ b/mysql-test/suite/innodb/t/skip_symbolic_links.opt
@@ -0,0 +1 @@
+--skip-symbolic-links
diff --git a/mysql-test/suite/innodb/t/skip_symbolic_links.test b/mysql-test/suite/innodb/t/skip_symbolic_links.test
new file mode 100644
index 00000000000..b5274d220c8
--- /dev/null
+++ b/mysql-test/suite/innodb/t/skip_symbolic_links.test
@@ -0,0 +1,51 @@
+--source include/have_innodb.inc
+--source include/not_windows.inc
+
+SELECT @@have_symlink;
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval CREATE TABLE t1(a INT) ENGINE=InnoDB DATA DIRECTORY '$MYSQL_TMP_DIR';
+DROP TABLE t1;
+CREATE TABLE t1(a INT) ENGINE=InnoDB;
+
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval ALTER TABLE t1 DATA DIRECTORY '$MYSQL_TMP_DIR';
+SHOW CREATE TABLE t1;
+
+DROP TABLE t1;
+
+--let $restart_parameters=--symbolic-links
+--source include/restart_mysqld.inc
+
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval CREATE TABLE t1(a INT PRIMARY KEY, b INT) ENGINE=InnoDB
+DATA DIRECTORY '$MYSQL_TMP_DIR';
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval CREATE TABLE t2(a INT PRIMARY KEY, b INT) ENGINE=InnoDB
+DATA DIRECTORY '$MYSQL_TMP_DIR';
+
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+
+--let $restart_parameters=
+--source include/restart_mysqld.inc
+
+# Native ALTER will retain DATA DIRECTORY
+ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
+ALTER TABLE t2 FORCE, ALGORITHM=COPY;
+OPTIMIZE TABLE t1;
+--list_files $MYSQL_TMP_DIR/test
+DROP TABLE t2;
+
+RENAME TABLE t1 TO t2;
+ALTER TABLE t2 ADD UNIQUE INDEX(b), RENAME TO t3;
+
+ALTER TABLE t3 RENAME TO t2;
+ALTER TABLE t2 DROP INDEX b, RENAME TO t1;
+ALTER TABLE t1 CHANGE b c INT;
+ALTER TABLE t1 CHANGE c b INT NOT NULL;
+
+--list_files $MYSQL_TMP_DIR/test
+# TRUNCATE TABLE will discard DATA DIRECTORY.
+TRUNCATE TABLE t1;
+--list_files $MYSQL_TMP_DIR/test
+DROP TABLE t1;