1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-30 05:23:50 +03:00

Merge branch bb-10.2-release into bb-10.3-release

This commit is contained in:
Nikita Malyavin
2021-05-04 14:49:31 +03:00
88 changed files with 1696 additions and 469 deletions

View File

@@ -1,3 +1,7 @@
call mtr.add_suppression("Cannot find index f2 in InnoDB index dictionary.");
call mtr.add_suppression("InnoDB indexes are inconsistent with what defined in .frm for table .*");
call mtr.add_suppression("Table test/t1 contains 1 indexes inside InnoDB, which is different from the number of indexes 2 defined in the MariaDB .*");
call mtr.add_suppression("InnoDB could not find key no 1 with name f2 from dict cache for table .*");
#
# Bug #18734396 INNODB IN-PLACE ALTER FAILURES BLOCK FUTURE ALTERS
#
@@ -24,3 +28,39 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`f2`,`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
#
# MDEV-22928 InnoDB fails to fetch index type
# when index mismatch
#
CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL,
index(f1), index(f2))ENGINE=InnoDB;
INSERT INTO t1 VALUES(1, 1), (2, 2);
connect con1,localhost,root,,test;
SET DEBUG_SYNC="alter_table_inplace_after_commit SIGNAL default_signal WAIT_FOR default_done";
ALTER TABLE t1 DROP INDEX f2, ALGORITHM=INPLACE;
connection default;
set DEBUG_SYNC="now WAIT_FOR default_signal";
disconnect con1;
SHOW KEYS FROM t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
t1 1 f1 1 f1 A 2 NULL NULL BTREE
t1 1 f2 1 f2 A NULL NULL NULL Corrupted
Warnings:
Warning 1082 InnoDB: Table test/t1 contains 1 indexes inside InnoDB, which is different from the number of indexes 2 defined in the MariaDB
Warning 1082 InnoDB: Table test/t1 contains 1 indexes inside InnoDB, which is different from the number of indexes 2 defined in the MariaDB
DROP TABLE t1;
#
# MDEV-25503 InnoDB hangs on startup during recovery
#
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=1;
connect con1,localhost,root,,;
BEGIN;
DELETE FROM mysql.innodb_table_stats;
connect con2,localhost,root,,;
SET DEBUG_SYNC='inplace_after_index_build SIGNAL blocked WAIT_FOR ever';
ALTER TABLE t1 FORCE;
connection default;
SET DEBUG_SYNC='now WAIT_FOR blocked';
SELECT * FROM t1;
a
DROP TABLE t1;

View File

@@ -21,7 +21,6 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES
WHERE engine = 'innodb'
AND support IN ('YES', 'DEFAULT', 'ENABLED');
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
FOUND 1 /InnoDB: Ignoring data file '.*t1.ibd' with space ID/ in mysqld.1.err
FOUND 1 /InnoDB: Tablespace \d+ was not found at.*t3.ibd/ in mysqld.1.err
# Fault 3: Wrong space_id in a dirty file, and no missing file.
SELECT * FROM INFORMATION_SCHEMA.ENGINES

View File

@@ -12,6 +12,14 @@
--source include/innodb_page_size.inc
--source include/have_debug_sync.inc
call mtr.add_suppression("Cannot find index f2 in InnoDB index dictionary.");
call mtr.add_suppression("InnoDB indexes are inconsistent with what defined in .frm for table .*");
call mtr.add_suppression("Table test/t1 contains 1 indexes inside InnoDB, which is different from the number of indexes 2 defined in the MariaDB .*");
call mtr.add_suppression("InnoDB could not find key no 1 with name f2 from dict cache for table .*");
--echo #
--echo # Bug #18734396 INNODB IN-PLACE ALTER FAILURES BLOCK FUTURE ALTERS
--echo #
@@ -41,3 +49,44 @@ show create table t1;
ALTER TABLE t1 ADD PRIMARY KEY (f2, f1);
show create table t1;
drop table t1;
--echo #
--echo # MDEV-22928 InnoDB fails to fetch index type
--echo # when index mismatch
--echo #
CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL,
index(f1), index(f2))ENGINE=InnoDB;
INSERT INTO t1 VALUES(1, 1), (2, 2);
connect (con1,localhost,root,,test);
SET DEBUG_SYNC="alter_table_inplace_after_commit SIGNAL default_signal WAIT_FOR default_done";
--send
ALTER TABLE t1 DROP INDEX f2, ALGORITHM=INPLACE;
connection default;
set DEBUG_SYNC="now WAIT_FOR default_signal";
--let $shutdown_timeout=0
--source include/restart_mysqld.inc
disconnect con1;
SHOW KEYS FROM t1;
DROP TABLE t1;
remove_files_wildcard $datadir/test #sql-*.frm;
--echo #
--echo # MDEV-25503 InnoDB hangs on startup during recovery
--echo #
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=1;
connect (con1,localhost,root,,);
BEGIN;
DELETE FROM mysql.innodb_table_stats;
connect (con2,localhost,root,,);
SET DEBUG_SYNC='inplace_after_index_build SIGNAL blocked WAIT_FOR ever';
send ALTER TABLE t1 FORCE;
connection default;
SET DEBUG_SYNC='now WAIT_FOR blocked';
--let $shutdown_timeout=0
--source include/restart_mysqld.inc
SELECT * FROM t1;
DROP TABLE t1;
remove_files_wildcard $datadir/test #sql-*.frm;

View File

@@ -54,9 +54,6 @@ let SEARCH_PATTERN= InnoDB: Ignoring data file '.*t2.ibd' with space ID \d+. Ano
--source include/start_mysqld.inc
eval $check_no_innodb;
let SEARCH_PATTERN= InnoDB: Ignoring data file '.*t1.ibd' with space ID;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= InnoDB: Tablespace \d+ was not found at.*t3.ibd;
--source include/search_pattern_in_file.inc