Commit d8eef0f6 authored by Marko Mäkelä's avatar Marko Mäkelä

Merge 10.1 into 10.2

parents 899c5899 29b6e809
...@@ -470,8 +470,6 @@ ddl_online_create_index 0 ...@@ -470,8 +470,6 @@ ddl_online_create_index 0
ddl_pending_alter_table 0 ddl_pending_alter_table 0
ddl_sort_file_alter_table 0 ddl_sort_file_alter_table 0
ddl_log_file_alter_table 2 ddl_log_file_alter_table 2
connection con1;
disconnect con1;
connection default; connection default;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
...@@ -498,6 +496,25 @@ ERROR 42000: Duplicate key name 'c2h' ...@@ -498,6 +496,25 @@ ERROR 42000: Duplicate key name 'c2h'
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
SET GLOBAL innodb_monitor_disable = module_ddl; SET GLOBAL innodb_monitor_disable = module_ddl;
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-13205 assertion !dict_index_is_online_ddl(index) upon ALTER TABLE
#
CREATE TABLE t1 (c VARCHAR(64)) ENGINE=InnoDB;
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL t1u_created WAIT_FOR dup_done';
ALTER TABLE t1 ADD UNIQUE(c);
connection con1;
SET DEBUG_SYNC = 'now WAIT_FOR t1u_created';
BEGIN;
INSERT INTO t1 VALUES('bar'),('bar');
SET DEBUG_SYNC = 'now SIGNAL dup_done';
connection default;
ERROR 23000: Duplicate entry 'bar' for key 'c'
SET DEBUG_SYNC = 'RESET';
disconnect con1;
CREATE TABLE t2 (c VARCHAR(64)) ENGINE=InnoDB;
ALTER TABLE t2 ADD FOREIGN KEY (c) REFERENCES t1 (c);
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 150 "Foreign key constraint is incorrectly formed")
DROP TABLE t2,t1;
SET GLOBAL innodb_file_per_table = @global_innodb_file_per_table_orig; SET GLOBAL innodb_file_per_table = @global_innodb_file_per_table_orig;
SET GLOBAL innodb_monitor_enable = default; SET GLOBAL innodb_monitor_enable = default;
SET GLOBAL innodb_monitor_disable = default; SET GLOBAL innodb_monitor_disable = default;
...@@ -457,8 +457,6 @@ connection default; ...@@ -457,8 +457,6 @@ connection default;
reap; reap;
--enable_parsing --enable_parsing
#remove below con1 disconnect if above test case is enabled #remove below con1 disconnect if above test case is enabled
connection con1;
disconnect con1;
connection default; connection default;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
...@@ -474,6 +472,31 @@ SET GLOBAL innodb_monitor_disable = module_ddl; ...@@ -474,6 +472,31 @@ SET GLOBAL innodb_monitor_disable = module_ddl;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-13205 assertion !dict_index_is_online_ddl(index) upon ALTER TABLE
--echo #
CREATE TABLE t1 (c VARCHAR(64)) ENGINE=InnoDB;
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL t1u_created WAIT_FOR dup_done';
send ALTER TABLE t1 ADD UNIQUE(c);
connection con1;
SET DEBUG_SYNC = 'now WAIT_FOR t1u_created';
BEGIN;
INSERT INTO t1 VALUES('bar'),('bar');
SET DEBUG_SYNC = 'now SIGNAL dup_done';
connection default;
--error ER_DUP_ENTRY
reap;
SET DEBUG_SYNC = 'RESET';
disconnect con1;
CREATE TABLE t2 (c VARCHAR(64)) ENGINE=InnoDB;
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
ALTER TABLE t2 ADD FOREIGN KEY (c) REFERENCES t1 (c);
DROP TABLE t2,t1;
# Check that all connections opened by test cases in this file are really # Check that all connections opened by test cases in this file are really
# gone so execution of other tests won't be affected by their presence. # gone so execution of other tests won't be affected by their presence.
--source include/wait_until_count_sessions.inc --source include/wait_until_count_sessions.inc
......
...@@ -3439,6 +3439,7 @@ dict_foreign_find_index( ...@@ -3439,6 +3439,7 @@ dict_foreign_find_index(
&& !(index->type & DICT_FTS) && !(index->type & DICT_FTS)
&& !dict_index_is_spatial(index) && !dict_index_is_spatial(index)
&& !index->to_be_dropped && !index->to_be_dropped
&& !dict_index_is_online_ddl(index)
&& dict_foreign_qualify_index( && dict_foreign_qualify_index(
table, col_names, columns, n_cols, table, col_names, columns, n_cols,
index, types_idx, index, types_idx,
......
...@@ -3409,6 +3409,7 @@ dict_foreign_find_index( ...@@ -3409,6 +3409,7 @@ dict_foreign_find_index(
if (types_idx != index if (types_idx != index
&& !(index->type & DICT_FTS) && !(index->type & DICT_FTS)
&& !index->to_be_dropped && !index->to_be_dropped
&& !dict_index_is_online_ddl(index)
&& dict_foreign_qualify_index( && dict_foreign_qualify_index(
table, col_names, columns, n_cols, table, col_names, columns, n_cols,
index, types_idx, index, types_idx,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment