summaryrefslogtreecommitdiff
path: root/mysql-test/suite
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2022-01-29 15:41:05 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2022-01-29 15:41:05 +0100
commit41a163ac5ccf4ac5394edc84e40b3f47acea6b08 (patch)
tree60d5259e290b4a0166d8ef1651975b14b5afe304 /mysql-test/suite
parenta85d942be9008cf19086d8bd330c4be83a18167f (diff)
parente2b50213cf12623da31c8b49be4d40772876223c (diff)
downloadmariadb-git-41a163ac5ccf4ac5394edc84e40b3f47acea6b08.tar.gz
Merge branch '10.2' into 10.3mariadb-10.3.33
Diffstat (limited to 'mysql-test/suite')
-rw-r--r--mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc25
-rw-r--r--mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result20
-rw-r--r--mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result26
-rw-r--r--mysql-test/suite/binlog/r/binlog_xa_handling.result11
-rw-r--r--mysql-test/suite/binlog/t/binlog_xa_handling.test28
-rw-r--r--mysql-test/suite/encryption/t/innodb-first-page-read.test1
-rw-r--r--mysql-test/suite/federated/rpl.result18
-rw-r--r--mysql-test/suite/federated/rpl.test19
-rw-r--r--mysql-test/suite/funcs_1/datadict/columns.inc4
-rw-r--r--mysql-test/suite/funcs_1/t/is_columns_is_embedded.test2
-rw-r--r--mysql-test/suite/funcs_1/t/is_columns_myisam_embedded.test6
-rw-r--r--mysql-test/suite/funcs_1/t/is_columns_mysql_embedded.test5
-rw-r--r--mysql-test/suite/galera/r/enforce_storage_engine2.result1
-rw-r--r--mysql-test/suite/galera/r/galera_create_table_like.result5
-rw-r--r--mysql-test/suite/galera/r/galera_myisam_transactions.result11
-rw-r--r--mysql-test/suite/galera/r/wsrep_slave_threads_basic.result (renamed from mysql-test/suite/sys_vars/r/wsrep_slave_threads_basic.result)0
-rw-r--r--mysql-test/suite/galera/t/galera_create_table_like.test9
-rw-r--r--mysql-test/suite/galera/t/galera_myisam_transactions.test13
-rw-r--r--mysql-test/suite/galera/t/wsrep_slave_threads_basic.test (renamed from mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test)2
-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.result28
-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.result54
-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
-rw-r--r--mysql-test/suite/innodb_fts/r/innodb_fts_plugin.result1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test2
-rw-r--r--mysql-test/suite/innodb_gis/r/rtree_split.result7
-rw-r--r--mysql-test/suite/innodb_gis/t/rtree_split.test8
-rw-r--r--mysql-test/suite/innodb_zip/r/wl5522_zip.result2
-rw-r--r--mysql-test/suite/innodb_zip/t/restart.test1
-rw-r--r--mysql-test/suite/maria/fulltext2.result7
-rw-r--r--mysql-test/suite/maria/fulltext2.test9
-rw-r--r--mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test1
-rw-r--r--mysql-test/suite/mariabackup/data_directory.test1
-rw-r--r--mysql-test/suite/mariabackup/partition_datadir.test1
-rw-r--r--mysql-test/suite/parts/t/alter_data_directory_innodb.test1
-rw-r--r--mysql-test/suite/parts/t/reorganize_partition_innodb.test1
-rw-r--r--mysql-test/suite/plugins/r/locales.result36
-rw-r--r--mysql-test/suite/rpl/r/rpl_seconds_behind_master_spike.result40
-rw-r--r--mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test88
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_innodb.result2
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff14
-rw-r--r--mysql-test/suite/vcol/r/not_supported.result8
-rw-r--r--mysql-test/suite/vcol/t/not_supported.test10
61 files changed, 714 insertions, 58 deletions
diff --git a/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc b/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc
index ce919550b51..874be1dac61 100644
--- a/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc
+++ b/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc
@@ -1921,3 +1921,28 @@ let $MYSQLD_DATADIR= `select @@datadir`;
DROP TABLE t1;
+--echo #
+--echo # Beginning of 10.2 test
+--echo #
+--echo # MDEV-25460: Assertion `!is_set() || (m_status == DA_OK_BULK &&
+--echo # is_bulk_op())' failed in Diagnostics_area::set_ok_status in my_ok
+--echo # from mysql_sql_stmt_prepare
+--echo #
+
+CREATE TEMPORARY TABLE a (c INT) ENGINE=InnoDB;
+CREATE TABLE b (c INT) ENGINE=InnoDB;
+
+--error ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+PREPARE s FROM 'SET STATEMENT binlog_format=ROW FOR SELECT * FROM b';
+
+DROP TABLE b;
+DROP TEMPORARY TABLE a;
+
+CREATE TEMPORARY TABLE t (c INT);
+--error ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+PREPARE s FROM 'SET STATEMENT binlog_format=ROW FOR SELECT 1';
+DROP TEMPORARY TABLE t;
+
+--echo #
+--echo # End of 10.2 test
+--echo #
diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
index d8a5864ba3d..a1d3adb7c02 100644
--- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
+++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
@@ -6372,3 +6372,23 @@ ROLLBACK /* added by mysqlbinlog */;
# Cleanup.
#
DROP TABLE t1;
+#
+# Beginning of 10.2 test
+#
+# MDEV-25460: Assertion `!is_set() || (m_status == DA_OK_BULK &&
+# is_bulk_op())' failed in Diagnostics_area::set_ok_status in my_ok
+# from mysql_sql_stmt_prepare
+#
+CREATE TEMPORARY TABLE a (c INT) ENGINE=InnoDB;
+CREATE TABLE b (c INT) ENGINE=InnoDB;
+PREPARE s FROM 'SET STATEMENT binlog_format=ROW FOR SELECT * FROM b';
+ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
+DROP TABLE b;
+DROP TEMPORARY TABLE a;
+CREATE TEMPORARY TABLE t (c INT);
+PREPARE s FROM 'SET STATEMENT binlog_format=ROW FOR SELECT 1';
+ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
+DROP TEMPORARY TABLE t;
+#
+# End of 10.2 test
+#
diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
index a75593055d7..00756368e45 100644
--- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
+++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
@@ -6413,3 +6413,29 @@ ROLLBACK /* added by mysqlbinlog */;
# Cleanup.
#
DROP TABLE t1;
+#
+# Beginning of 10.2 test
+#
+# MDEV-25460: Assertion `!is_set() || (m_status == DA_OK_BULK &&
+# is_bulk_op())' failed in Diagnostics_area::set_ok_status in my_ok
+# from mysql_sql_stmt_prepare
+#
+CREATE TEMPORARY TABLE a (c INT) ENGINE=InnoDB;
+Warnings:
+Warning 1286 Unknown storage engine 'InnoDB'
+Warning 1266 Using storage engine MyISAM for table 'a'
+CREATE TABLE b (c INT) ENGINE=InnoDB;
+Warnings:
+Warning 1286 Unknown storage engine 'InnoDB'
+Warning 1266 Using storage engine MyISAM for table 'b'
+PREPARE s FROM 'SET STATEMENT binlog_format=ROW FOR SELECT * FROM b';
+ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
+DROP TABLE b;
+DROP TEMPORARY TABLE a;
+CREATE TEMPORARY TABLE t (c INT);
+PREPARE s FROM 'SET STATEMENT binlog_format=ROW FOR SELECT 1';
+ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
+DROP TEMPORARY TABLE t;
+#
+# End of 10.2 test
+#
diff --git a/mysql-test/suite/binlog/r/binlog_xa_handling.result b/mysql-test/suite/binlog/r/binlog_xa_handling.result
new file mode 100644
index 00000000000..7a60fb59b9a
--- /dev/null
+++ b/mysql-test/suite/binlog/r/binlog_xa_handling.result
@@ -0,0 +1,11 @@
+connection default;
+CREATE TABLE t1(f1 int) ENGINE=Innodb;
+XA START 'xa';
+INSERT INTO t1 VALUES(10);
+BINLOG '
+SOgWTg8BAAAAbgAAAHIAAAAAAAQANS42LjMtbTUtZGVidWctbG9nAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABI6BZOEzgNAAgAEgAEBAQEEgAAVgAEGggAAAAICAgCAAAAAAVAYI8=';
+XA END 'xa';
+XA PREPARE 'xa';
+XA ROLLBACK 'xa';
+DROP TABLE t1;
diff --git a/mysql-test/suite/binlog/t/binlog_xa_handling.test b/mysql-test/suite/binlog/t/binlog_xa_handling.test
new file mode 100644
index 00000000000..c454e83169e
--- /dev/null
+++ b/mysql-test/suite/binlog/t/binlog_xa_handling.test
@@ -0,0 +1,28 @@
+###############################################################################
+# Bug#19928622: ASSERTION `! IS_SET()' FAILED. | ABORT IN
+# DIAGNOSTICS_AREA::SET_OK_STATUS
+#
+# MDEV-27536 Invalid BINLOG_BASE64_EVENT and assertion Diagnostics_area:: !is_set()
+#
+# Test:
+# =====
+# Begin an XA transaction and execte a DML statement so that XA state becomes
+# XA_ACTIVE. Execute the BINLOG command it should not cause any assert.
+# Execution should be successful.
+###############################################################################
+--source include/have_log_bin.inc
+--source include/have_innodb.inc
+
+--connection default
+CREATE TABLE t1(f1 int) ENGINE=Innodb;
+
+XA START 'xa';
+INSERT INTO t1 VALUES(10);
+BINLOG '
+SOgWTg8BAAAAbgAAAHIAAAAAAAQANS42LjMtbTUtZGVidWctbG9nAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABI6BZOEzgNAAgAEgAEBAQEEgAAVgAEGggAAAAICAgCAAAAAAVAYI8=';
+XA END 'xa';
+XA PREPARE 'xa';
+XA ROLLBACK 'xa';
+
+DROP TABLE t1;
diff --git a/mysql-test/suite/encryption/t/innodb-first-page-read.test b/mysql-test/suite/encryption/t/innodb-first-page-read.test
index 4e6eeb25080..600a41cf5ec 100644
--- a/mysql-test/suite/encryption/t/innodb-first-page-read.test
+++ b/mysql-test/suite/encryption/t/innodb-first-page-read.test
@@ -1,6 +1,7 @@
-- source include/have_innodb.inc
-- source include/have_file_key_management_plugin.inc
-- source include/not_embedded.inc
+-- source include/have_symlink.inc
FLUSH STATUS;
diff --git a/mysql-test/suite/federated/rpl.result b/mysql-test/suite/federated/rpl.result
new file mode 100644
index 00000000000..71821411c91
--- /dev/null
+++ b/mysql-test/suite/federated/rpl.result
@@ -0,0 +1,18 @@
+include/master-slave.inc
+[connection master]
+create table t1 (a int primary key, b int);
+connection slave;
+rename table t1 to t2;
+create table t1 (a int primary key, b int) engine=federated connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t2';
+connection master;
+insert t1 values (1,1),(2,2),(3,1);
+delete from t1 where a=2;
+connection slave;
+select * from t1;
+a b
+1 1
+3 1
+drop table t2;
+connection master;
+drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/federated/rpl.test b/mysql-test/suite/federated/rpl.test
new file mode 100644
index 00000000000..6ec4bec5a1a
--- /dev/null
+++ b/mysql-test/suite/federated/rpl.test
@@ -0,0 +1,19 @@
+source include/have_binlog_format_row.inc;
+source include/master-slave.inc;
+
+create table t1 (a int primary key, b int);
+
+sync_slave_with_master;
+rename table t1 to t2;
+evalp create table t1 (a int primary key, b int) engine=federated connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t2';
+connection master;
+
+insert t1 values (1,1),(2,2),(3,1);
+delete from t1 where a=2;
+sync_slave_with_master;
+select * from t1;
+drop table t2;
+
+connection master;
+drop table t1;
+source include/rpl_end.inc;
diff --git a/mysql-test/suite/funcs_1/datadict/columns.inc b/mysql-test/suite/funcs_1/datadict/columns.inc
index 64318492b00..a03fef9c0dd 100644
--- a/mysql-test/suite/funcs_1/datadict/columns.inc
+++ b/mysql-test/suite/funcs_1/datadict/columns.inc
@@ -25,6 +25,10 @@
#
--source suite/funcs_1/datadict/datadict_bug_12777.inc
+
+# The following is needed as embedded server can be compiled with and without
+# privlege tables
+
eval
SELECT * FROM information_schema.columns
$my_where
diff --git a/mysql-test/suite/funcs_1/t/is_columns_is_embedded.test b/mysql-test/suite/funcs_1/t/is_columns_is_embedded.test
index 9db247fd6fd..bb9cc2a6ffb 100644
--- a/mysql-test/suite/funcs_1/t/is_columns_is_embedded.test
+++ b/mysql-test/suite/funcs_1/t/is_columns_is_embedded.test
@@ -14,7 +14,7 @@
#
--source include/have_innodb.inc
---source include/is_embedded.inc
+--source include/is_embedded_no_privileges.inc
let $my_where = WHERE table_schema = 'information_schema'
AND table_name <> 'profiling' AND table_name not like 'innodb_%';
diff --git a/mysql-test/suite/funcs_1/t/is_columns_myisam_embedded.test b/mysql-test/suite/funcs_1/t/is_columns_myisam_embedded.test
index 3d0cca24474..bb2200604f3 100644
--- a/mysql-test/suite/funcs_1/t/is_columns_myisam_embedded.test
+++ b/mysql-test/suite/funcs_1/t/is_columns_myisam_embedded.test
@@ -10,10 +10,8 @@
# 2008-06-06 mleich Create this this variant for the embedded server.
#
-if (`SELECT VERSION() NOT LIKE '%embedded%'`)
-{
- --skip Test requires: embedded server
-}
+--source include/is_embedded_no_privileges.inc
+
let $engine_type= MyISAM;
SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION';
--source suite/funcs_1/datadict/datadict_load.inc
diff --git a/mysql-test/suite/funcs_1/t/is_columns_mysql_embedded.test b/mysql-test/suite/funcs_1/t/is_columns_mysql_embedded.test
index d1ed45425ec..9ef1b6d869a 100644
--- a/mysql-test/suite/funcs_1/t/is_columns_mysql_embedded.test
+++ b/mysql-test/suite/funcs_1/t/is_columns_mysql_embedded.test
@@ -10,10 +10,7 @@
# 2008-06-06 mleich Create this variant for the embedded server
#
-if (`SELECT VERSION() NOT LIKE '%embedded%'`)
-{
- --skip Test requires: embedded server
-}
+--source include/is_embedded_no_privileges.inc
let $my_where = WHERE table_schema = 'mysql';
--source suite/funcs_1/datadict/columns.inc
diff --git a/mysql-test/suite/galera/r/enforce_storage_engine2.result b/mysql-test/suite/galera/r/enforce_storage_engine2.result
index 128994ed221..4b80d335bb0 100644
--- a/mysql-test/suite/galera/r/enforce_storage_engine2.result
+++ b/mysql-test/suite/galera/r/enforce_storage_engine2.result
@@ -7,6 +7,7 @@ CREATE TABLE t1(i INT) ENGINE=INNODB;
CREATE TABLE t2(i INT) ENGINE=MYISAM;
Warnings:
Note 1266 Using storage engine InnoDB for table 't2'
+Note 1266 Using storage engine InnoDB for table 't2'
connection node_2;
SHOW TABLES;
Tables_in_test
diff --git a/mysql-test/suite/galera/r/galera_create_table_like.result b/mysql-test/suite/galera/r/galera_create_table_like.result
index 131ac311bca..128931381d4 100644
--- a/mysql-test/suite/galera/r/galera_create_table_like.result
+++ b/mysql-test/suite/galera/r/galera_create_table_like.result
@@ -47,3 +47,8 @@ DROP TABLE schema2.real_table2;
DROP TABLE schema2.real_table3;
DROP SCHEMA schema1;
DROP SCHEMA schema2;
+use test;
+CREATE TEMPORARY TABLE t (c INT) ENGINE=mrg_myisam UNION=(t,t2) insert_method=FIRST;
+CREATE TABLE t2 LIKE t;
+ERROR HY000: Table 't' is differently defined or of non-MyISAM type or doesn't exist
+DROP TABLE t;
diff --git a/mysql-test/suite/galera/r/galera_myisam_transactions.result b/mysql-test/suite/galera/r/galera_myisam_transactions.result
index 25796c309d1..3905e874d12 100644
--- a/mysql-test/suite/galera/r/galera_myisam_transactions.result
+++ b/mysql-test/suite/galera/r/galera_myisam_transactions.result
@@ -35,3 +35,14 @@ SELECT COUNT(*) = 0 FROM t2;
COUNT(*) = 0
1
DROP TABLE t1, t2, t3;
+SET SESSION lock_wait_timeout=2;
+SET GLOBAL wsrep_replicate_myisam= ON;
+CREATE TEMPORARY TABLE t1 (i INT, PRIMARY KEY pk (i)) ENGINE=MyISAM;
+Warnings:
+Warning 1280 Name 'pk' ignored for PRIMARY key.
+PREPARE stmt FROM "INSERT INTO t1 (id) SELECT * FROM (SELECT 4 AS i) AS y";
+INSERT INTO t1 VALUES(4);
+DEALLOCATE PREPARE stmt;
+COMMIT;
+DROP TABLE t1;
+SET GLOBAL wsrep_replicate_myisam=OFF;
diff --git a/mysql-test/suite/sys_vars/r/wsrep_slave_threads_basic.result b/mysql-test/suite/galera/r/wsrep_slave_threads_basic.result
index 62be5a42416..62be5a42416 100644
--- a/mysql-test/suite/sys_vars/r/wsrep_slave_threads_basic.result
+++ b/mysql-test/suite/galera/r/wsrep_slave_threads_basic.result
diff --git a/mysql-test/suite/galera/t/galera_create_table_like.test b/mysql-test/suite/galera/t/galera_create_table_like.test
index 0e0e8b0ffcf..3cf51521be1 100644
--- a/mysql-test/suite/galera/t/galera_create_table_like.test
+++ b/mysql-test/suite/galera/t/galera_create_table_like.test
@@ -48,3 +48,12 @@ DROP TABLE schema2.real_table3;
DROP SCHEMA schema1;
DROP SCHEMA schema2;
+
+#
+# MDEV-25856: SIGSEGV in ha_myisammrg::append_create_info
+#
+use test;
+CREATE TEMPORARY TABLE t (c INT) ENGINE=mrg_myisam UNION=(t,t2) insert_method=FIRST;
+--error 1472
+CREATE TABLE t2 LIKE t;
+DROP TABLE t;
diff --git a/mysql-test/suite/galera/t/galera_myisam_transactions.test b/mysql-test/suite/galera/t/galera_myisam_transactions.test
index 00e0bf3fdca..30677ddbe4d 100644
--- a/mysql-test/suite/galera/t/galera_myisam_transactions.test
+++ b/mysql-test/suite/galera/t/galera_myisam_transactions.test
@@ -34,3 +34,16 @@ SELECT COUNT(*) = 0 FROM t2;
SELECT COUNT(*) = 0 FROM t2;
DROP TABLE t1, t2, t3;
+
+#
+# MDEV-25201 : Assertion `thd->wsrep_trx_meta.gtid.seqno == (-1)' failed in int wsrep_to_isolation_begin(THD*, const char*, const char*, const TABLE_LIST*, Alter_info*)
+#
+SET SESSION lock_wait_timeout=2;
+SET GLOBAL wsrep_replicate_myisam= ON;
+CREATE TEMPORARY TABLE t1 (i INT, PRIMARY KEY pk (i)) ENGINE=MyISAM;
+PREPARE stmt FROM "INSERT INTO t1 (id) SELECT * FROM (SELECT 4 AS i) AS y";
+INSERT INTO t1 VALUES(4);
+DEALLOCATE PREPARE stmt;
+COMMIT;
+DROP TABLE t1;
+SET GLOBAL wsrep_replicate_myisam=OFF;
diff --git a/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test b/mysql-test/suite/galera/t/wsrep_slave_threads_basic.test
index 80b4648982d..ecf159f8365 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_slave_threads_basic.test
+++ b/mysql-test/suite/galera/t/wsrep_slave_threads_basic.test
@@ -1,4 +1,4 @@
---source include/have_wsrep.inc
+--source include/galera_cluster.inc
--echo #
--echo # wsrep_slave_threads
diff --git a/mysql-test/suite/innodb/r/innodb-wl5522.result b/mysql-test/suite/innodb/r/innodb-wl5522.result
index 27a93922fbf..3097a7660ef 100644
--- a/mysql-test/suite/innodb/r/innodb-wl5522.result
+++ b/mysql-test/suite/innodb/r/innodb-wl5522.result
@@ -331,7 +331,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;
@@ -916,6 +916,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 8b4186a0fbe..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
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 5e3315be204..606e94d81db 100644
--- a/mysql-test/suite/innodb/r/restart.result
+++ b/mysql-test/suite/innodb/r/restart.result
@@ -26,3 +26,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..4dc036765a0
--- /dev/null
+++ b/mysql-test/suite/innodb/r/skip_symbolic_links.result
@@ -0,0 +1,54 @@
+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;
+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;
+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 2b836bfc985..bebc6132d1b 100644
--- a/mysql-test/suite/innodb/t/innodb-wl5522.test
+++ b/mysql-test/suite/innodb/t/innodb-wl5522.test
@@ -1056,6 +1056,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 d7582306492..16c6d20f621 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;
diff --git a/mysql-test/suite/innodb_fts/r/innodb_fts_plugin.result b/mysql-test/suite/innodb_fts/r/innodb_fts_plugin.result
index dc71156b7a1..cec88f14b26 100644
--- a/mysql-test/suite/innodb_fts/r/innodb_fts_plugin.result
+++ b/mysql-test/suite/innodb_fts/r/innodb_fts_plugin.result
@@ -159,6 +159,7 @@ id title body
SELECT COUNT(*) FROM articles;
COUNT(*)
5
+INSERT INTO articles (title, body) VALUES ('111', '1234 1234 1234');
DROP TABLE articles;
# Test Part 5: Test Uninstall Plugin After Index is Built
CREATE TABLE articles (
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test b/mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test
index cd31500b23f..b22ac456668 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test
@@ -158,6 +158,8 @@ SELECT * FROM articles WHERE
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('full text search');
SELECT COUNT(*) FROM articles;
+
+INSERT INTO articles (title, body) VALUES ('111', '1234 1234 1234');
DROP TABLE articles;
-- echo # Test Part 5: Test Uninstall Plugin After Index is Built
diff --git a/mysql-test/suite/innodb_gis/r/rtree_split.result b/mysql-test/suite/innodb_gis/r/rtree_split.result
index df88960ba3d..2d6e8a1dfbe 100644
--- a/mysql-test/suite/innodb_gis/r/rtree_split.result
+++ b/mysql-test/suite/innodb_gis/r/rtree_split.result
@@ -61,3 +61,10 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
57344
drop table t1;
+#
+# MDEV-27417 Spatial index tries to update
+# change buffer bookkeeping page
+#
+CREATE TEMPORARY TABLE t1 (c POINT NOT NULL, SPATIAL(c)) ENGINE=InnoDB;
+INSERT INTO t1 SELECT PointFromText('POINT(0 0)') FROM seq_1_to_366;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_gis/t/rtree_split.test b/mysql-test/suite/innodb_gis/t/rtree_split.test
index af626dba6b7..dd46d1ecc4d 100644
--- a/mysql-test/suite/innodb_gis/t/rtree_split.test
+++ b/mysql-test/suite/innodb_gis/t/rtree_split.test
@@ -72,3 +72,11 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
# Clean up.
drop table t1;
+
+--echo #
+--echo # MDEV-27417 Spatial index tries to update
+--echo # change buffer bookkeeping page
+--echo #
+CREATE TEMPORARY TABLE t1 (c POINT NOT NULL, SPATIAL(c)) ENGINE=InnoDB;
+INSERT INTO t1 SELECT PointFromText('POINT(0 0)') FROM seq_1_to_366;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_zip/r/wl5522_zip.result b/mysql-test/suite/innodb_zip/r/wl5522_zip.result
index 40b357e1b7f..e85223574d7 100644
--- a/mysql-test/suite/innodb_zip/r/wl5522_zip.result
+++ b/mysql-test/suite/innodb_zip/r/wl5522_zip.result
@@ -317,7 +317,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;
diff --git a/mysql-test/suite/innodb_zip/t/restart.test b/mysql-test/suite/innodb_zip/t/restart.test
index 05ac8274278..1c4af461dfc 100644
--- a/mysql-test/suite/innodb_zip/t/restart.test
+++ b/mysql-test/suite/innodb_zip/t/restart.test
@@ -4,6 +4,7 @@
--source include/innodb_page_size_small.inc
--source include/have_partition.inc
--source include/not_embedded.inc
+--source include/have_symlink.inc
SET default_storage_engine=InnoDB;
LET $MYSQLD_DATADIR = `select @@datadir`;
LET $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
diff --git a/mysql-test/suite/maria/fulltext2.result b/mysql-test/suite/maria/fulltext2.result
index 1e4e6636ef6..6cffc5cf404 100644
--- a/mysql-test/suite/maria/fulltext2.result
+++ b/mysql-test/suite/maria/fulltext2.result
@@ -84,3 +84,10 @@ select count(*) from t1 where match a against ('aaayyy' in boolean mode);
count(*)
0
drop table t1;
+set names utf8mb4;
+create table t1 (a int, b text, fulltext (b)) charset=utf8mb4 collate=utf8mb4_unicode_ci engine=aria;
+insert t1 values (1000, 'C͓̙̯͔̩ͅͅi̩̘̜̲a̯̲̬̳̜̖̤o͕͓̜͓̺̖̗,̠̬͚ ̺T͇̲h͈̱e ̬̜D̖o̦̖͔̗͖̩̘c̣̼t̝͉̫̮̗o͉̫̭r̙͎̗.͓̪̥');
+select a from t1 where match(b) against ('ciao' in boolean mode);
+a
+1000
+drop table t1;
diff --git a/mysql-test/suite/maria/fulltext2.test b/mysql-test/suite/maria/fulltext2.test
index 060b748eb4f..7bfbe600ff7 100644
--- a/mysql-test/suite/maria/fulltext2.test
+++ b/mysql-test/suite/maria/fulltext2.test
@@ -75,3 +75,12 @@ select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
select count(*) from t1 where match a against ('aaayyy' in boolean mode);
drop table t1;
+
+#
+# MDEV-11241 Certain combining marks cause MariaDB to crash when doing Full-Text searches
+#
+set names utf8mb4;
+create table t1 (a int, b text, fulltext (b)) charset=utf8mb4 collate=utf8mb4_unicode_ci engine=aria;
+insert t1 values (1000, 'C͓̙̯͔̩ͅͅi̩̘̜̲a̯̲̬̳̜̖̤o͕͓̜͓̺̖̗,̠̬͚ ̺T͇̲h͈̱e ̬̜D̖o̦̖͔̗͖̩̘c̣̼t̝͉̫̮̗o͉̫̭r̙͎̗.͓̪̥');
+select a from t1 where match(b) against ('ciao' in boolean mode);
+drop table t1;
diff --git a/mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test b/mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test
index d0cb83d069f..f01028b6494 100644
--- a/mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test
+++ b/mysql-test/suite/mariabackup/create_with_data_directory_during_backup.test
@@ -1,4 +1,5 @@
--source include/have_debug.inc
+--source include/have_symlink.inc
let $table_data_dir=$MYSQLTEST_VARDIR/tmp/ddir;
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
mkdir $table_data_dir;
diff --git a/mysql-test/suite/mariabackup/data_directory.test b/mysql-test/suite/mariabackup/data_directory.test
index 50789a34c78..a89b7bdccc4 100644
--- a/mysql-test/suite/mariabackup/data_directory.test
+++ b/mysql-test/suite/mariabackup/data_directory.test
@@ -1,3 +1,4 @@
+--source include/have_symlink.inc
let $table_data_dir=$MYSQLTEST_VARDIR/ddir;
mkdir $table_data_dir;
--replace_result $table_data_dir table_data_dir
diff --git a/mysql-test/suite/mariabackup/partition_datadir.test b/mysql-test/suite/mariabackup/partition_datadir.test
index c525d34a02c..36520d331bf 100644
--- a/mysql-test/suite/mariabackup/partition_datadir.test
+++ b/mysql-test/suite/mariabackup/partition_datadir.test
@@ -1,4 +1,5 @@
--source include/have_partition.inc
+--source include/have_symlink.inc
let $targetdir=$MYSQLTEST_VARDIR/backup;
mkdir $targetdir;
mkdir $MYSQLTEST_VARDIR/partitdata;
diff --git a/mysql-test/suite/parts/t/alter_data_directory_innodb.test b/mysql-test/suite/parts/t/alter_data_directory_innodb.test
index ac15e9bec6c..def04e14173 100644
--- a/mysql-test/suite/parts/t/alter_data_directory_innodb.test
+++ b/mysql-test/suite/parts/t/alter_data_directory_innodb.test
@@ -1,5 +1,6 @@
--source include/have_innodb.inc
--source include/have_partition.inc
+--source include/have_symlink.inc
--echo #
--echo # MDEV-15953 Alter InnoDB Partitioned Table Moves Files (which were originally not in the datadir) to the datadir
diff --git a/mysql-test/suite/parts/t/reorganize_partition_innodb.test b/mysql-test/suite/parts/t/reorganize_partition_innodb.test
index db73650c54b..77109c38c96 100644
--- a/mysql-test/suite/parts/t/reorganize_partition_innodb.test
+++ b/mysql-test/suite/parts/t/reorganize_partition_innodb.test
@@ -1,5 +1,6 @@
--source include/have_innodb.inc
--source include/have_partition.inc
+--source include/have_symlink.inc
--echo #
--echo # MDEV-15953 Alter InnoDB Partitioned Table Moves Files (which were originally not in the datadir) to the datadir
diff --git a/mysql-test/suite/plugins/r/locales.result b/mysql-test/suite/plugins/r/locales.result
index 106bf22923c..2ea88493705 100644
--- a/mysql-test/suite/plugins/r/locales.result
+++ b/mysql-test/suite/plugins/r/locales.result
@@ -17,7 +17,7 @@ ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOU
14 cs_CZ Czech - Czech Republic 8 7 , czech
15 da_DK Danish - Denmark 9 7 , . danish
16 de_AT German - Austria 9 10 , german
-17 es_ES Spanish - Spain 10 9 , spanish
+17 es_ES Spanish - Spain 10 9 , . spanish
18 et_EE Estonian - Estonia 9 9 , estonian
19 eu_ES Basque - Basque 9 10 , english
20 fi_FI Finnish - Finland 9 11 , english
@@ -82,24 +82,24 @@ ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOU
79 en_ZA English - South Africa 9 9 . , english
80 en_ZW English - Zimbabwe 9 9 . , english
81 es_AR Spanish - Argentina 10 9 , . spanish
-82 es_BO Spanish - Bolivia 10 9 , spanish
-83 es_CL Spanish - Chile 10 9 , spanish
-84 es_CO Spanish - Columbia 10 9 , spanish
-85 es_CR Spanish - Costa Rica 10 9 . spanish
-86 es_DO Spanish - Dominican Republic 10 9 . spanish
-87 es_EC Spanish - Ecuador 10 9 , spanish
-88 es_GT Spanish - Guatemala 10 9 . spanish
-89 es_HN Spanish - Honduras 10 9 . spanish
-90 es_MX Spanish - Mexico 10 9 . spanish
-91 es_NI Spanish - Nicaragua 10 9 . spanish
-92 es_PA Spanish - Panama 10 9 . spanish
-93 es_PE Spanish - Peru 10 9 . spanish
-94 es_PR Spanish - Puerto Rico 10 9 . spanish
-95 es_PY Spanish - Paraguay 10 9 , spanish
-96 es_SV Spanish - El Salvador 10 9 . spanish
+82 es_BO Spanish - Bolivia 10 9 , . spanish
+83 es_CL Spanish - Chile 10 9 , . spanish
+84 es_CO Spanish - Columbia 10 9 , . spanish
+85 es_CR Spanish - Costa Rica 10 9 , spanish
+86 es_DO Spanish - Dominican Republic 10 9 . , spanish
+87 es_EC Spanish - Ecuador 10 9 , . spanish
+88 es_GT Spanish - Guatemala 10 9 . , spanish
+89 es_HN Spanish - Honduras 10 9 . , spanish
+90 es_MX Spanish - Mexico 10 9 . , spanish
+91 es_NI Spanish - Nicaragua 10 9 . , spanish
+92 es_PA Spanish - Panama 10 9 . , spanish
+93 es_PE Spanish - Peru 10 9 . , spanish
+94 es_PR Spanish - Puerto Rico 10 9 . , spanish
+95 es_PY Spanish - Paraguay 10 9 , . spanish
+96 es_SV Spanish - El Salvador 10 9 . , spanish
97 es_US Spanish - United States 10 9 . , spanish
-98 es_UY Spanish - Uruguay 10 9 , spanish
-99 es_VE Spanish - Venezuela 10 9 , spanish
+98 es_UY Spanish - Uruguay 10 9 , . spanish
+99 es_VE Spanish - Venezuela 10 9 , . spanish
100 fr_BE French - Belgium 9 8 , . french
101 fr_CA French - Canada 9 8 , french
102 fr_CH French - Switzerland 9 8 , french
diff --git a/mysql-test/suite/rpl/r/rpl_seconds_behind_master_spike.result b/mysql-test/suite/rpl/r/rpl_seconds_behind_master_spike.result
new file mode 100644
index 00000000000..be18f95c2c0
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_seconds_behind_master_spike.result
@@ -0,0 +1,40 @@
+include/master-slave.inc
+[connection master]
+connection slave;
+include/stop_slave.inc
+SET @save_dbug= @@GLOBAL.debug_dbug;
+SET @@global.debug_dbug="+d,pause_sql_thread_on_fde";
+include/start_slave.inc
+# Future events must be logged at least 2 seconds after
+# the slave starts
+connection master;
+# Write events to ensure slave will be consistent with master
+create table t1 (a int);
+insert into t1 values (1);
+# Flush logs on master forces slave to generate a Format description
+# event in its relay log
+flush logs;
+connection slave;
+# Ignore FDEs that happen before the CREATE/INSERT commands
+SET DEBUG_SYNC='now WAIT_FOR paused_on_fde';
+SET DEBUG_SYNC='now SIGNAL sql_thread_continue';
+SET DEBUG_SYNC='now WAIT_FOR paused_on_fde';
+SET DEBUG_SYNC='now SIGNAL sql_thread_continue';
+# On the next FDE, the slave should have the master CREATE/INSERT events
+SET DEBUG_SYNC='now WAIT_FOR paused_on_fde';
+select count(*)=1 from t1;
+count(*)=1
+1
+# The relay log FDE has been processed - here we check to ensure it was
+# not considered in Seconds_Behind_Master calculation
+connection slave1;
+# Safely resume slave SQL thread
+SET @@global.debug_dbug='';
+SET DEBUG_SYNC='pause_sql_thread_on_fde CLEAR';
+SET DEBUG_SYNC='now SIGNAL sql_thread_continue';
+SET DEBUG_SYNC='RESET';
+connection master;
+DROP TABLE t1;
+connection slave;
+SET @@global.debug_dbug=$save_dbug;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test b/mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test
new file mode 100644
index 00000000000..029625a09ad
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_seconds_behind_master_spike.test
@@ -0,0 +1,88 @@
+#
+# Purpose:
+# This test validates that a slave's relay log format description event is
+# not used to calculate the Seconds_Behind_Master time displayed by
+# SHOW SLAVE STATUS.
+#
+# Methodology:
+# Ensure that a slave's reported Seconds_Behind_Master does not point before
+# a time in which we can prove that it has progressed beyond. The slave's
+# relay log events are created using the timestamp at which the IO thread was
+# created. Therefore, after starting the slave's IO thread, we sleep so any
+# proceeding events are forced to have later timestamps. After sleeping, we run
+# MDL statements on the master and save the time at which they are binlogged.
+# Once the slave executes these MDL commands, we have proven that the slave has
+# caught up to this saved timestamp. At this point, if the value of
+# Seconds_Behind_Master points before the time in which the MDL events were
+# logged, it is invalid.
+#
+# References:
+# MDEV-16091: Seconds_Behind_Master spikes to millions of seconds
+#
+--source include/have_debug.inc
+--source include/have_innodb.inc
+--source include/master-slave.inc
+
+--connection slave
+--source include/stop_slave.inc
+SET @save_dbug= @@GLOBAL.debug_dbug;
+SET @@global.debug_dbug="+d,pause_sql_thread_on_fde";
+--source include/start_slave.inc
+
+--let $sleep_time=2
+--echo # Future events must be logged at least $sleep_time seconds after
+--echo # the slave starts
+--sleep $sleep_time
+
+--connection master
+--echo # Write events to ensure slave will be consistent with master
+create table t1 (a int);
+insert into t1 values (1);
+--let $t_master_events_logged= `SELECT UNIX_TIMESTAMP()`
+
+--echo # Flush logs on master forces slave to generate a Format description
+--echo # event in its relay log
+flush logs;
+
+--connection slave
+--echo # Ignore FDEs that happen before the CREATE/INSERT commands
+SET DEBUG_SYNC='now WAIT_FOR paused_on_fde';
+SET DEBUG_SYNC='now SIGNAL sql_thread_continue';
+SET DEBUG_SYNC='now WAIT_FOR paused_on_fde';
+SET DEBUG_SYNC='now SIGNAL sql_thread_continue';
+
+--echo # On the next FDE, the slave should have the master CREATE/INSERT events
+SET DEBUG_SYNC='now WAIT_FOR paused_on_fde';
+select count(*)=1 from t1;
+
+--echo # The relay log FDE has been processed - here we check to ensure it was
+--echo # not considered in Seconds_Behind_Master calculation
+--connection slave1
+let $sbm= query_get_value(SHOW SLAVE STATUS, Seconds_Behind_Master, 1);
+--let $t_now= `SELECT UNIX_TIMESTAMP()`
+
+# Ensure Seconds_Behind_Master does not point beyond when we have proven the
+# events we have proven to have executed. The extra second is needed as a
+# buffer because the recorded times are not exact with when the events were
+# recorded on the master.
+if(`select $sbm > $t_now - $t_master_events_logged + 1`)
+{
+ die "A relay log event was incorrectly used to set Seconds_Behind_Master";
+}
+
+--echo # Safely resume slave SQL thread
+SET @@global.debug_dbug='';
+SET DEBUG_SYNC='pause_sql_thread_on_fde CLEAR';
+SET DEBUG_SYNC='now SIGNAL sql_thread_continue';
+
+# Reset last sql_thread_continue signal
+SET DEBUG_SYNC='RESET';
+
+# Cleanup
+--connection master
+DROP TABLE t1;
+
+--connection slave
+SET @@global.debug_dbug=$save_dbug;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
index 5b794166cc7..d44b8fbf470 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
@@ -279,7 +279,7 @@ DEFAULT_VALUE 134217728
VARIABLE_SCOPE GLOBAL
VARIABLE_TYPE BIGINT UNSIGNED
VARIABLE_COMMENT The size of the memory buffer InnoDB uses to cache data and indexes of its tables.
-NUMERIC_MIN_VALUE 5242880
+NUMERIC_MIN_VALUE 2097152
NUMERIC_MAX_VALUE 9223372036854775807
NUMERIC_BLOCK_SIZE 1048576
ENUM_VALUE_LIST NULL
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
index 685c45162ac..5e2d984663c 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
+++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
@@ -1,7 +1,7 @@
---- sysvars_server_embedded.result 2019-09-02 17:28:33.630863762 +0300
-+++ sysvars_server_embedded,32bit.reject 2019-09-02 17:50:30.619590080 +0300
-@@ -25,7 +25,7 @@
- COMMAND_LINE_ARGUMENT OPTIONAL
+--- ../../mysql-test/suite/sys_vars/r/sysvars_server_embedded.result 2022-01-27 20:42:19.039084441 +0200
++++ ../../mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.result~ 2022-01-28 16:12:40.038627481 +0200
+@@ -14,7 +14,7 @@
+ order by variable_name;
VARIABLE_NAME ARIA_BLOCK_SIZE
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
@@ -555,7 +555,7 @@
-VARIABLE_TYPE BIGINT UNSIGNED
+VARIABLE_TYPE INT UNSIGNED
VARIABLE_COMMENT The number of bytes to use when sorting BLOB or TEXT values (only the first max_sort_length bytes of each value are used; the rest are ignored)
- NUMERIC_MIN_VALUE 4
+ NUMERIC_MIN_VALUE 64
NUMERIC_MAX_VALUE 8388608
@@ -1895,7 +1895,7 @@
COMMAND_LINE_ARGUMENT REQUIRED
@@ -779,8 +779,8 @@
+VARIABLE_TYPE INT
VARIABLE_COMMENT Size of the statement digest. Use 0 to disable, -1 for automated sizing.
NUMERIC_MIN_VALUE -1
- NUMERIC_MAX_VALUE 200
-@@ -2265,7 +2265,7 @@
+ NUMERIC_MAX_VALUE 1048576
+@@ -2144,7 +2144,7 @@
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE
VARIABLE_SCOPE GLOBAL
diff --git a/mysql-test/suite/vcol/r/not_supported.result b/mysql-test/suite/vcol/r/not_supported.result
index c804cf220d2..d8703f755da 100644
--- a/mysql-test/suite/vcol/r/not_supported.result
+++ b/mysql-test/suite/vcol/r/not_supported.result
@@ -34,3 +34,11 @@ select * from t8;
a b v
1234567890 2 2009-02-14 00:31:30
drop table t1, t3_ok, t8;
+#
+# Bug#33141966 - INCONSISTENT BEHAVIOR IF A COLUMN OF TYPE SERIAL IS SET AS GENERATED
+#
+create table t1 (a int, b serial as (a+1));
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'as (a+1))' at line 1
+#
+# End of 10.2 tests
+#
diff --git a/mysql-test/suite/vcol/t/not_supported.test b/mysql-test/suite/vcol/t/not_supported.test
index 1ea7970523a..2b5baf4ff4b 100644
--- a/mysql-test/suite/vcol/t/not_supported.test
+++ b/mysql-test/suite/vcol/t/not_supported.test
@@ -39,3 +39,13 @@ select * from t1;
select * from t8;
drop table t1, t3_ok, t8;
+
+--echo #
+--echo # Bug#33141966 - INCONSISTENT BEHAVIOR IF A COLUMN OF TYPE SERIAL IS SET AS GENERATED
+--echo #
+--error ER_PARSE_ERROR
+create table t1 (a int, b serial as (a+1));
+
+--echo #
+--echo # End of 10.2 tests
+--echo #