Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
beaadc4b
Commit
beaadc4b
authored
Jun 26, 2020
by
Sachin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix mysql_alter_table part 1
and fix previous patch
parent
c003b362
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1019 additions
and
66 deletions
+1019
-66
mysql-test/suite/rpl/include/start_alter_concurrent.test
mysql-test/suite/rpl/include/start_alter_concurrent.test
+1
-1
mysql-test/suite/rpl/r/rpl_start_alter_1.result
mysql-test/suite/rpl/r/rpl_start_alter_1.result
+5
-4
mysql-test/suite/rpl/r/rpl_start_alter_2.result
mysql-test/suite/rpl/r/rpl_start_alter_2.result
+5
-4
mysql-test/suite/rpl/r/rpl_start_alter_3.result
mysql-test/suite/rpl/r/rpl_start_alter_3.result
+5
-4
mysql-test/suite/rpl/r/rpl_start_alter_4.result
mysql-test/suite/rpl/r/rpl_start_alter_4.result
+5
-4
mysql-test/suite/rpl/r/rpl_start_alter_5.result
mysql-test/suite/rpl/r/rpl_start_alter_5.result
+5
-4
mysql-test/suite/rpl/r/rpl_start_alter_6.result
mysql-test/suite/rpl/r/rpl_start_alter_6.result
+5
-4
mysql-test/suite/rpl/r/rpl_start_alter_7.result
mysql-test/suite/rpl/r/rpl_start_alter_7.result
+8
-10
mysql-test/suite/rpl/r/rpl_start_alter_8.result
mysql-test/suite/rpl/r/rpl_start_alter_8.result
+8
-10
mysql-test/suite/rpl/r/rpl_start_alter_9.result
mysql-test/suite/rpl/r/rpl_start_alter_9.result
+900
-0
mysql-test/suite/rpl/t/rpl_start_alter_1.test
mysql-test/suite/rpl/t/rpl_start_alter_1.test
+1
-0
mysql-test/suite/rpl/t/rpl_start_alter_2.test
mysql-test/suite/rpl/t/rpl_start_alter_2.test
+1
-0
mysql-test/suite/rpl/t/rpl_start_alter_3.test
mysql-test/suite/rpl/t/rpl_start_alter_3.test
+1
-0
mysql-test/suite/rpl/t/rpl_start_alter_4.test
mysql-test/suite/rpl/t/rpl_start_alter_4.test
+1
-0
mysql-test/suite/rpl/t/rpl_start_alter_5.test
mysql-test/suite/rpl/t/rpl_start_alter_5.test
+1
-0
mysql-test/suite/rpl/t/rpl_start_alter_6.test
mysql-test/suite/rpl/t/rpl_start_alter_6.test
+1
-0
mysql-test/suite/rpl/t/rpl_start_alter_7.test
mysql-test/suite/rpl/t/rpl_start_alter_7.test
+2
-0
mysql-test/suite/rpl/t/rpl_start_alter_8.test
mysql-test/suite/rpl/t/rpl_start_alter_8.test
+2
-0
mysql-test/suite/rpl/t/rpl_start_alter_9.test
mysql-test/suite/rpl/t/rpl_start_alter_9.test
+39
-0
sql/sql_alter.cc
sql/sql_alter.cc
+2
-0
sql/sql_table.cc
sql/sql_table.cc
+21
-21
No files found.
mysql-test/suite/rpl/include/start_alter_concurrent.test
View file @
beaadc4b
...
...
@@ -354,5 +354,5 @@ if ($sync_slave)
--
disconnect
con18
--
disconnect
con19
--
disconnect
con20
--
connection
default
--
connection
master_node
SET
GLOBAL
debug_dbug
=
""
;
mysql-test/suite/rpl/r/rpl_start_alter_1.result
View file @
beaadc4b
...
...
@@ -294,7 +294,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -514,7 +514,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -734,7 +734,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -991,10 +991,11 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
connection master;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
...
...
mysql-test/suite/rpl/r/rpl_start_alter_2.result
View file @
beaadc4b
...
...
@@ -300,7 +300,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -520,7 +520,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -740,7 +740,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -997,10 +997,11 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
connection master;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
...
...
mysql-test/suite/rpl/r/rpl_start_alter_3.result
View file @
beaadc4b
...
...
@@ -300,7 +300,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -520,7 +520,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -740,7 +740,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -997,10 +997,11 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
connection master;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
...
...
mysql-test/suite/rpl/r/rpl_start_alter_4.result
View file @
beaadc4b
...
...
@@ -300,7 +300,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -520,7 +520,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -740,7 +740,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -997,10 +997,11 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
connection master;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
...
...
mysql-test/suite/rpl/r/rpl_start_alter_5.result
View file @
beaadc4b
...
...
@@ -300,7 +300,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -520,7 +520,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -740,7 +740,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -997,10 +997,11 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
connection master;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
...
...
mysql-test/suite/rpl/r/rpl_start_alter_6.result
View file @
beaadc4b
...
...
@@ -301,7 +301,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -521,7 +521,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -741,7 +741,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -998,10 +998,11 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
connection master;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
...
...
mysql-test/suite/rpl/r/rpl_start_alter_7.result
View file @
beaadc4b
...
...
@@ -12,8 +12,6 @@ connection server_3;
SET GLOBAL slave_parallel_threads=20;
set global slave_parallel_mode=optimistic;
set global gtid_strict_mode=1;
change master 'm1' to master_port=MYPORT_1 , master_host='127.0.0.1', master_user='root', master_use_gtid=slave_pos;
change master 'm2' to master_port=16001 , master_host='127.0.0.1', master_user='root', master_use_gtid=slave_pos;
connection server_1;
set gtid_domain_id= 11;
create database s1;
...
...
@@ -275,7 +273,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -470,7 +468,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -665,7 +663,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -892,7 +890,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
...
...
@@ -1162,7 +1160,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -1357,7 +1355,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -1552,7 +1550,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -1779,7 +1777,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
...
...
mysql-test/suite/rpl/r/rpl_start_alter_8.result
View file @
beaadc4b
...
...
@@ -12,8 +12,6 @@ connection server_3;
SET GLOBAL slave_parallel_threads=5;
set global slave_parallel_mode=optimistic;
set global gtid_strict_mode=1;
change master 'm1' to master_port=MYPORT_1 , master_host='127.0.0.1', master_user='root', master_use_gtid=slave_pos;
change master 'm2' to master_port=16001 , master_host='127.0.0.1', master_user='root', master_use_gtid=slave_pos;
connection server_1;
set gtid_domain_id= 11;
create database s1;
...
...
@@ -275,7 +273,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -470,7 +468,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -665,7 +663,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -892,7 +890,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
...
...
@@ -1162,7 +1160,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
...
...
@@ -1357,7 +1355,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
...
...
@@ -1552,7 +1550,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
...
...
@@ -1779,7 +1777,7 @@ disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection
default
;
connection
master_node
;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
...
...
mysql-test/suite/rpl/r/rpl_start_alter_9.result
0 → 100644
View file @
beaadc4b
include/master-slave.inc
[connection master]
connection master;
set global binlog_split_alter=true;
connection slave;
include/stop_slave.inc
change master to master_use_gtid= current_pos;
set global gtid_strict_mode=1;
#Legacy Master Slave
# Myisam
connect master_node,127.0.0.1,root,,$db_name, $M_port;
set gtid_domain_id= 0;;
connect slave_node,127.0.0.1,root,,test, $S_port;
set gtid_domain_id= 0;;
connection master_node;
create table t1( a int, b int) engine=myisam;
insert into t1 values(1,1);
insert into t1 values(2,2);
#Normal Alter
alter table t1 add column c int;
#Failed Alter
insert into t1 values(1,1, NULL);
alter table t1 change a a int unique ;
ERROR 23000: Duplicate entry '1' for key 'a'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
connection master_node;
drop table t1;
# Innodb
connection master_node;
create table t1( a int, b int) engine=innodb;
insert into t1 values(1,1);
insert into t1 values(2,2);
#Normal Alter
alter table t1 add column c int;
#Failed Alter
insert into t1 values(1,1, NULL);
alter table t1 change a a int unique ;
ERROR 23000: Duplicate entry '1' for key 'a'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
connection master_node;
drop table t1;
# Aria
connection master_node;
create table t1( a int, b int) engine=aria;
insert into t1 values(1,1);
insert into t1 values(2,2);
#Normal Alter
alter table t1 add column c int;
#Failed Alter
insert into t1 values(1,1, NULL);
alter table t1 change a a int unique ;
ERROR 23000: Duplicate entry '1' for key 'a'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
connection master_node;
drop table t1;
connection master_node;
#concurrent alter Myisam
connection master_node;
set global debug_dbug="+d,start_alter_delay_master";
create table t1( a int primary key, b int) engine=myisam;
insert into t1 values(1,1),(2,2);
create table t2( a int primary key, b int) engine=myisam;
insert into t2 values(1,1),(2,2);
create table t3( a int primary key, b int) engine=myisam;
insert into t3 values(1,1),(2,2);
create table t4( a int primary key, b int) engine=myisam;
insert into t4 values(1,1),(2,2);
create table t5( a int primary key, b int) engine=myisam;
insert into t5 values(1,1),(2,2);
create table t6( a int primary key, b int) engine=myisam;
insert into t6 values(1,1),(2,2);
create table t7( a int primary key, b int) engine=myisam;
insert into t7 values(1,1),(2,2);
create table t8( a int primary key, b int) engine=myisam;
insert into t8 values(1,1),(2,2);
create table t9( a int primary key, b int) engine=myisam;
insert into t9 values(1,1),(2,2);
create table t10( a int primary key, b int) engine=myisam;
insert into t10 values(1,1),(2,2);
set global gtid_domain_id= 0;;
connect con1,127.0.0.1,root,,$db_name, $M_port;
connect con2,127.0.0.1,root,,$db_name, $M_port;
connect con3,127.0.0.1,root,,$db_name, $M_port;
connect con4,127.0.0.1,root,,$db_name, $M_port;
connect con5,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con6,127.0.0.1,root,,$db_name, $M_port;
connect con7,127.0.0.1,root,,$db_name, $M_port;
connect con8,127.0.0.1,root,,$db_name, $M_port;
connect con9,127.0.0.1,root,,$db_name, $M_port;
connect con10,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con11,127.0.0.1,root,,$db_name, $M_port;
connect con12,127.0.0.1,root,,$db_name, $M_port;
connect con13,127.0.0.1,root,,$db_name, $M_port;
connect con14,127.0.0.1,root,,$db_name, $M_port;
connect con15,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con16,127.0.0.1,root,,$db_name, $M_port;
connect con17,127.0.0.1,root,,$db_name, $M_port;
connect con18,127.0.0.1,root,,$db_name, $M_port;
connect con19,127.0.0.1,root,,$db_name, $M_port;
connect con20,127.0.0.1,root,,$db_name, $M_port;
connection con1;
alter table t1 add column c int, force, algorithm=copy;
connection con2;
alter table t2 add column c int, force, algorithm=copy;
connection con3;
alter table t3 add column c int, force, algorithm=copy;
connection con4;
alter table t4 add column c int, force, algorithm=copy;
connection con5;
alter table t5 add column c int, force, algorithm=copy;
connection con6;
alter table t6 add column c int, force, algorithm=copy;
connection con7;
alter table t7 add column c int, force, algorithm=copy;
connection con8;
alter table t8 add column c int, force, algorithm=copy;
connection con9;
alter table t9 add column c int, force, algorithm=copy;
connection con10;
alter table t10 add column c int, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
connection con2;
connection con3;
connection con4;
connection con5;
connection con6;
connection con7;
connection con8;
connection con9;
connection con10;
connection master_node;
set DEBUG_SYNC= 'RESET';
#Concurrent DML
connection con1;
alter table t1 add column d int, force, algorithm=copy;
connection con2;
alter table t2 add column d int, force, algorithm=copy;
connection con3;
alter table t3 add column d int, force, algorithm=copy;
connection con4;
alter table t4 add column d int, force, algorithm=copy;
connection con5;
alter table t5 add column d int, force, algorithm=copy;
connection con6;
alter table t6 add column d int, force, algorithm=copy;
connection con7;
alter table t7 add column d int, force, algorithm=copy;
connection con8;
alter table t8 add column d int, force, algorithm=copy;
connection con9;
alter table t9 add column d int, force, algorithm=copy;
connection con10;
alter table t10 add column d int, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
connection con2;
connection con3;
connection con4;
connection con5;
connection con6;
connection con7;
connection con8;
connection con9;
connection con10;
connection master_node;
set DEBUG_SYNC= 'RESET';
# Rollback tests
connection con1;
insert into t1 values(3,2,1,1);
alter table t1 change b b int unique, force, algorithm=copy;
connection con2;
insert into t2 values(3,2,1,1);
alter table t2 change b b int unique, force, algorithm=copy;
connection con3;
insert into t3 values(3,2,1,1);
alter table t3 change b b int unique, force, algorithm=copy;
connection con4;
insert into t4 values(3,2,1,1);
alter table t4 change b b int unique, force, algorithm=copy;
connection con5;
insert into t5 values(3,2,1,1);
alter table t5 change b b int unique, force, algorithm=copy;
connection con6;
insert into t6 values(3,2,1,1);
alter table t6 change b b int unique, force, algorithm=copy;
connection con7;
insert into t7 values(3,2,1,1);
alter table t7 change b b int unique, force, algorithm=copy;
connection con8;
insert into t8 values(3,2,1,1);
alter table t8 change b b int unique, force, algorithm=copy;
connection con9;
insert into t9 values(3,2,1,1);
alter table t9 change b b int unique, force, algorithm=copy;
connection con10;
insert into t10 values(3,2,1,1);
alter table t10 change b b int unique, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con2;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con3;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con4;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con5;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con6;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con7;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con8;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con9;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con10;
ERROR 23000: Duplicate entry '2' for key 'b'
connection master_node;
set DEBUG_SYNC= 'RESET';
drop table t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
disconnect con1;
disconnect con2;
disconnect con3;
disconnect con4;
disconnect con5;
disconnect con6;
disconnect con7;
disconnect con8;
disconnect con9;
disconnect con10;
disconnect con11;
disconnect con12;
disconnect con13;
disconnect con14;
disconnect con15;
disconnect con16;
disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection default;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Aria
connection master_node;
set global debug_dbug="+d,start_alter_delay_master";
create table t1( a int primary key, b int) engine=aria;
insert into t1 values(1,1),(2,2);
create table t2( a int primary key, b int) engine=aria;
insert into t2 values(1,1),(2,2);
create table t3( a int primary key, b int) engine=aria;
insert into t3 values(1,1),(2,2);
create table t4( a int primary key, b int) engine=aria;
insert into t4 values(1,1),(2,2);
create table t5( a int primary key, b int) engine=aria;
insert into t5 values(1,1),(2,2);
create table t6( a int primary key, b int) engine=aria;
insert into t6 values(1,1),(2,2);
create table t7( a int primary key, b int) engine=aria;
insert into t7 values(1,1),(2,2);
create table t8( a int primary key, b int) engine=aria;
insert into t8 values(1,1),(2,2);
create table t9( a int primary key, b int) engine=aria;
insert into t9 values(1,1),(2,2);
create table t10( a int primary key, b int) engine=aria;
insert into t10 values(1,1),(2,2);
set global gtid_domain_id= 0;;
connect con1,127.0.0.1,root,,$db_name, $M_port;
connect con2,127.0.0.1,root,,$db_name, $M_port;
connect con3,127.0.0.1,root,,$db_name, $M_port;
connect con4,127.0.0.1,root,,$db_name, $M_port;
connect con5,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con6,127.0.0.1,root,,$db_name, $M_port;
connect con7,127.0.0.1,root,,$db_name, $M_port;
connect con8,127.0.0.1,root,,$db_name, $M_port;
connect con9,127.0.0.1,root,,$db_name, $M_port;
connect con10,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con11,127.0.0.1,root,,$db_name, $M_port;
connect con12,127.0.0.1,root,,$db_name, $M_port;
connect con13,127.0.0.1,root,,$db_name, $M_port;
connect con14,127.0.0.1,root,,$db_name, $M_port;
connect con15,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con16,127.0.0.1,root,,$db_name, $M_port;
connect con17,127.0.0.1,root,,$db_name, $M_port;
connect con18,127.0.0.1,root,,$db_name, $M_port;
connect con19,127.0.0.1,root,,$db_name, $M_port;
connect con20,127.0.0.1,root,,$db_name, $M_port;
connection con1;
alter table t1 add column c int, force, algorithm=copy;
connection con2;
alter table t2 add column c int, force, algorithm=copy;
connection con3;
alter table t3 add column c int, force, algorithm=copy;
connection con4;
alter table t4 add column c int, force, algorithm=copy;
connection con5;
alter table t5 add column c int, force, algorithm=copy;
connection con6;
alter table t6 add column c int, force, algorithm=copy;
connection con7;
alter table t7 add column c int, force, algorithm=copy;
connection con8;
alter table t8 add column c int, force, algorithm=copy;
connection con9;
alter table t9 add column c int, force, algorithm=copy;
connection con10;
alter table t10 add column c int, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
connection con2;
connection con3;
connection con4;
connection con5;
connection con6;
connection con7;
connection con8;
connection con9;
connection con10;
connection master_node;
set DEBUG_SYNC= 'RESET';
#Concurrent DML
connection con1;
alter table t1 add column d int, force, algorithm=copy;
connection con2;
alter table t2 add column d int, force, algorithm=copy;
connection con3;
alter table t3 add column d int, force, algorithm=copy;
connection con4;
alter table t4 add column d int, force, algorithm=copy;
connection con5;
alter table t5 add column d int, force, algorithm=copy;
connection con6;
alter table t6 add column d int, force, algorithm=copy;
connection con7;
alter table t7 add column d int, force, algorithm=copy;
connection con8;
alter table t8 add column d int, force, algorithm=copy;
connection con9;
alter table t9 add column d int, force, algorithm=copy;
connection con10;
alter table t10 add column d int, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
connection con2;
connection con3;
connection con4;
connection con5;
connection con6;
connection con7;
connection con8;
connection con9;
connection con10;
connection master_node;
set DEBUG_SYNC= 'RESET';
# Rollback tests
connection con1;
insert into t1 values(3,2,1,1);
alter table t1 change b b int unique, force, algorithm=copy;
connection con2;
insert into t2 values(3,2,1,1);
alter table t2 change b b int unique, force, algorithm=copy;
connection con3;
insert into t3 values(3,2,1,1);
alter table t3 change b b int unique, force, algorithm=copy;
connection con4;
insert into t4 values(3,2,1,1);
alter table t4 change b b int unique, force, algorithm=copy;
connection con5;
insert into t5 values(3,2,1,1);
alter table t5 change b b int unique, force, algorithm=copy;
connection con6;
insert into t6 values(3,2,1,1);
alter table t6 change b b int unique, force, algorithm=copy;
connection con7;
insert into t7 values(3,2,1,1);
alter table t7 change b b int unique, force, algorithm=copy;
connection con8;
insert into t8 values(3,2,1,1);
alter table t8 change b b int unique, force, algorithm=copy;
connection con9;
insert into t9 values(3,2,1,1);
alter table t9 change b b int unique, force, algorithm=copy;
connection con10;
insert into t10 values(3,2,1,1);
alter table t10 change b b int unique, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con2;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con3;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con4;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con5;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con6;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con7;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con8;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con9;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con10;
ERROR 23000: Duplicate entry '2' for key 'b'
connection master_node;
set DEBUG_SYNC= 'RESET';
drop table t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
disconnect con1;
disconnect con2;
disconnect con3;
disconnect con4;
disconnect con5;
disconnect con6;
disconnect con7;
disconnect con8;
disconnect con9;
disconnect con10;
disconnect con11;
disconnect con12;
disconnect con13;
disconnect con14;
disconnect con15;
disconnect con16;
disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection default;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb copy
connection master_node;
set global debug_dbug="+d,start_alter_delay_master";
create table t1( a int primary key, b int) engine=innodb;
insert into t1 values(1,1),(2,2);
create table t2( a int primary key, b int) engine=innodb;
insert into t2 values(1,1),(2,2);
create table t3( a int primary key, b int) engine=innodb;
insert into t3 values(1,1),(2,2);
create table t4( a int primary key, b int) engine=innodb;
insert into t4 values(1,1),(2,2);
create table t5( a int primary key, b int) engine=innodb;
insert into t5 values(1,1),(2,2);
create table t6( a int primary key, b int) engine=innodb;
insert into t6 values(1,1),(2,2);
create table t7( a int primary key, b int) engine=innodb;
insert into t7 values(1,1),(2,2);
create table t8( a int primary key, b int) engine=innodb;
insert into t8 values(1,1),(2,2);
create table t9( a int primary key, b int) engine=innodb;
insert into t9 values(1,1),(2,2);
create table t10( a int primary key, b int) engine=innodb;
insert into t10 values(1,1),(2,2);
set global gtid_domain_id= 0;;
connect con1,127.0.0.1,root,,$db_name, $M_port;
connect con2,127.0.0.1,root,,$db_name, $M_port;
connect con3,127.0.0.1,root,,$db_name, $M_port;
connect con4,127.0.0.1,root,,$db_name, $M_port;
connect con5,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con6,127.0.0.1,root,,$db_name, $M_port;
connect con7,127.0.0.1,root,,$db_name, $M_port;
connect con8,127.0.0.1,root,,$db_name, $M_port;
connect con9,127.0.0.1,root,,$db_name, $M_port;
connect con10,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con11,127.0.0.1,root,,$db_name, $M_port;
connect con12,127.0.0.1,root,,$db_name, $M_port;
connect con13,127.0.0.1,root,,$db_name, $M_port;
connect con14,127.0.0.1,root,,$db_name, $M_port;
connect con15,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con16,127.0.0.1,root,,$db_name, $M_port;
connect con17,127.0.0.1,root,,$db_name, $M_port;
connect con18,127.0.0.1,root,,$db_name, $M_port;
connect con19,127.0.0.1,root,,$db_name, $M_port;
connect con20,127.0.0.1,root,,$db_name, $M_port;
connection con1;
alter table t1 add column c int, force, algorithm=copy;
connection con2;
alter table t2 add column c int, force, algorithm=copy;
connection con3;
alter table t3 add column c int, force, algorithm=copy;
connection con4;
alter table t4 add column c int, force, algorithm=copy;
connection con5;
alter table t5 add column c int, force, algorithm=copy;
connection con6;
alter table t6 add column c int, force, algorithm=copy;
connection con7;
alter table t7 add column c int, force, algorithm=copy;
connection con8;
alter table t8 add column c int, force, algorithm=copy;
connection con9;
alter table t9 add column c int, force, algorithm=copy;
connection con10;
alter table t10 add column c int, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
connection con2;
connection con3;
connection con4;
connection con5;
connection con6;
connection con7;
connection con8;
connection con9;
connection con10;
connection master_node;
set DEBUG_SYNC= 'RESET';
#Concurrent DML
connection con1;
alter table t1 add column d int, force, algorithm=copy;
connection con2;
alter table t2 add column d int, force, algorithm=copy;
connection con3;
alter table t3 add column d int, force, algorithm=copy;
connection con4;
alter table t4 add column d int, force, algorithm=copy;
connection con5;
alter table t5 add column d int, force, algorithm=copy;
connection con6;
alter table t6 add column d int, force, algorithm=copy;
connection con7;
alter table t7 add column d int, force, algorithm=copy;
connection con8;
alter table t8 add column d int, force, algorithm=copy;
connection con9;
alter table t9 add column d int, force, algorithm=copy;
connection con10;
alter table t10 add column d int, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
connection con2;
connection con3;
connection con4;
connection con5;
connection con6;
connection con7;
connection con8;
connection con9;
connection con10;
connection master_node;
set DEBUG_SYNC= 'RESET';
# Rollback tests
connection con1;
insert into t1 values(3,2,1,1);
alter table t1 change b b int unique, force, algorithm=copy;
connection con2;
insert into t2 values(3,2,1,1);
alter table t2 change b b int unique, force, algorithm=copy;
connection con3;
insert into t3 values(3,2,1,1);
alter table t3 change b b int unique, force, algorithm=copy;
connection con4;
insert into t4 values(3,2,1,1);
alter table t4 change b b int unique, force, algorithm=copy;
connection con5;
insert into t5 values(3,2,1,1);
alter table t5 change b b int unique, force, algorithm=copy;
connection con6;
insert into t6 values(3,2,1,1);
alter table t6 change b b int unique, force, algorithm=copy;
connection con7;
insert into t7 values(3,2,1,1);
alter table t7 change b b int unique, force, algorithm=copy;
connection con8;
insert into t8 values(3,2,1,1);
alter table t8 change b b int unique, force, algorithm=copy;
connection con9;
insert into t9 values(3,2,1,1);
alter table t9 change b b int unique, force, algorithm=copy;
connection con10;
insert into t10 values(3,2,1,1);
alter table t10 change b b int unique, force, algorithm=copy;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con2;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con3;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con4;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con5;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con6;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con7;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con8;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con9;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con10;
ERROR 23000: Duplicate entry '2' for key 'b'
connection master_node;
set DEBUG_SYNC= 'RESET';
drop table t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
disconnect con1;
disconnect con2;
disconnect con3;
disconnect con4;
disconnect con5;
disconnect con6;
disconnect con7;
disconnect con8;
disconnect con9;
disconnect con10;
disconnect con11;
disconnect con12;
disconnect con13;
disconnect con14;
disconnect con15;
disconnect con16;
disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection default;
SET GLOBAL debug_dbug= "";
connection master_node;
#concurrent alter Innodb Inplace
connection master_node;
set global debug_dbug="+d,start_alter_delay_master";
create table t1( a int primary key, b int) engine=innodb;
insert into t1 values(1,1),(2,2);
create table t2( a int primary key, b int) engine=innodb;
insert into t2 values(1,1),(2,2);
create table t3( a int primary key, b int) engine=innodb;
insert into t3 values(1,1),(2,2);
create table t4( a int primary key, b int) engine=innodb;
insert into t4 values(1,1),(2,2);
create table t5( a int primary key, b int) engine=innodb;
insert into t5 values(1,1),(2,2);
create table t6( a int primary key, b int) engine=innodb;
insert into t6 values(1,1),(2,2);
create table t7( a int primary key, b int) engine=innodb;
insert into t7 values(1,1),(2,2);
create table t8( a int primary key, b int) engine=innodb;
insert into t8 values(1,1),(2,2);
create table t9( a int primary key, b int) engine=innodb;
insert into t9 values(1,1),(2,2);
create table t10( a int primary key, b int) engine=innodb;
insert into t10 values(1,1),(2,2);
set global gtid_domain_id= 0;;
connect con1,127.0.0.1,root,,$db_name, $M_port;
connect con2,127.0.0.1,root,,$db_name, $M_port;
connect con3,127.0.0.1,root,,$db_name, $M_port;
connect con4,127.0.0.1,root,,$db_name, $M_port;
connect con5,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con6,127.0.0.1,root,,$db_name, $M_port;
connect con7,127.0.0.1,root,,$db_name, $M_port;
connect con8,127.0.0.1,root,,$db_name, $M_port;
connect con9,127.0.0.1,root,,$db_name, $M_port;
connect con10,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con11,127.0.0.1,root,,$db_name, $M_port;
connect con12,127.0.0.1,root,,$db_name, $M_port;
connect con13,127.0.0.1,root,,$db_name, $M_port;
connect con14,127.0.0.1,root,,$db_name, $M_port;
connect con15,127.0.0.1,root,,$db_name, $M_port;
set global gtid_domain_id= 0;;
connect con16,127.0.0.1,root,,$db_name, $M_port;
connect con17,127.0.0.1,root,,$db_name, $M_port;
connect con18,127.0.0.1,root,,$db_name, $M_port;
connect con19,127.0.0.1,root,,$db_name, $M_port;
connect con20,127.0.0.1,root,,$db_name, $M_port;
connection con1;
alter table t1 add column c int, force, algorithm=inplace;
connection con2;
alter table t2 add column c int, force, algorithm=inplace;
connection con3;
alter table t3 add column c int, force, algorithm=inplace;
connection con4;
alter table t4 add column c int, force, algorithm=inplace;
connection con5;
alter table t5 add column c int, force, algorithm=inplace;
connection con6;
alter table t6 add column c int, force, algorithm=inplace;
connection con7;
alter table t7 add column c int, force, algorithm=inplace;
connection con8;
alter table t8 add column c int, force, algorithm=inplace;
connection con9;
alter table t9 add column c int, force, algorithm=inplace;
connection con10;
alter table t10 add column c int, force, algorithm=inplace;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
connection con2;
connection con3;
connection con4;
connection con5;
connection con6;
connection con7;
connection con8;
connection con9;
connection con10;
connection master_node;
set DEBUG_SYNC= 'RESET';
#Concurrent DML
connection con1;
alter table t1 add column d int, force, algorithm=inplace;
connection con2;
alter table t2 add column d int, force, algorithm=inplace;
connection con3;
alter table t3 add column d int, force, algorithm=inplace;
connection con4;
alter table t4 add column d int, force, algorithm=inplace;
connection con5;
alter table t5 add column d int, force, algorithm=inplace;
connection con6;
alter table t6 add column d int, force, algorithm=inplace;
connection con7;
alter table t7 add column d int, force, algorithm=inplace;
connection con8;
alter table t8 add column d int, force, algorithm=inplace;
connection con9;
alter table t9 add column d int, force, algorithm=inplace;
connection con10;
alter table t10 add column d int, force, algorithm=inplace;
connection con11;
insert into t1 values(5,5,5);;
connection con12;
insert into t2 values(5,5,5);;
connection con13;
insert into t3 values(5,5,5);;
connection con14;
insert into t4 values(5,5,5);;
connection con15;
insert into t5 values(5,5,5);;
connection con16;
insert into t6 values(5,5,5);;
connection con17;
insert into t7 values(5,5,5);;
connection con18;
insert into t8 values(5,5,5);;
connection con19;
insert into t9 values(5,5,5);;
connection con20;
insert into t10 values(5,5,5);;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con11;
connection con12;
connection con13;
connection con14;
connection con15;
connection con16;
connection con17;
connection con18;
connection con19;
connection con20;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
connection con2;
connection con3;
connection con4;
connection con5;
connection con6;
connection con7;
connection con8;
connection con9;
connection con10;
connection master_node;
set DEBUG_SYNC= 'RESET';
# Rollback tests
connection con1;
insert into t1 values(3,2,1,1);
alter table t1 change b b int unique, force, algorithm=inplace;
connection con2;
insert into t2 values(3,2,1,1);
alter table t2 change b b int unique, force, algorithm=inplace;
connection con3;
insert into t3 values(3,2,1,1);
alter table t3 change b b int unique, force, algorithm=inplace;
connection con4;
insert into t4 values(3,2,1,1);
alter table t4 change b b int unique, force, algorithm=inplace;
connection con5;
insert into t5 values(3,2,1,1);
alter table t5 change b b int unique, force, algorithm=inplace;
connection con6;
insert into t6 values(3,2,1,1);
alter table t6 change b b int unique, force, algorithm=inplace;
connection con7;
insert into t7 values(3,2,1,1);
alter table t7 change b b int unique, force, algorithm=inplace;
connection con8;
insert into t8 values(3,2,1,1);
alter table t8 change b b int unique, force, algorithm=inplace;
connection con9;
insert into t9 values(3,2,1,1);
alter table t9 change b b int unique, force, algorithm=inplace;
connection con10;
insert into t10 values(3,2,1,1);
alter table t10 change b b int unique, force, algorithm=inplace;
connection master_node;
set DEBUG_SYNC= "now signal alter_cont";
connection con1;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con2;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con3;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con4;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con5;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con6;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con7;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con8;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con9;
ERROR 23000: Duplicate entry '2' for key 'b'
connection con10;
ERROR 23000: Duplicate entry '2' for key 'b'
connection master_node;
set DEBUG_SYNC= 'RESET';
drop table t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
disconnect con1;
disconnect con2;
disconnect con3;
disconnect con4;
disconnect con5;
disconnect con6;
disconnect con7;
disconnect con8;
disconnect con9;
disconnect con10;
disconnect con11;
disconnect con12;
disconnect con13;
disconnect con14;
disconnect con15;
disconnect con16;
disconnect con17;
disconnect con18;
disconnect con19;
disconnect con20;
connection default;
SET GLOBAL debug_dbug= "";
disconnect master_node;
disconnect slave_node;
select @@gtid_binlog_state;
@@gtid_binlog_state
0-1-401
RESET master;
connection slave;
select @@gtid_binlog_state;
@@gtid_binlog_state
0-1-401
set global gtid_strict_mode=0;
include/start_slave.inc
connection master;
set global binlog_split_alter=false;
include/rpl_end.inc
mysql-test/suite/rpl/t/rpl_start_alter_1.test
View file @
beaadc4b
...
...
@@ -19,6 +19,7 @@ set global gtid_strict_mode=1;
--
let
$sync_slave
=
1
--
source
include
/
start_alter_include
.
test
--
connection
master
--
source
include
/
save_master_gtid
.
inc
--
connection
slave
...
...
mysql-test/suite/rpl/t/rpl_start_alter_2.test
View file @
beaadc4b
...
...
@@ -28,6 +28,7 @@ change master to master_use_gtid=slave_pos;
--
let
$S_port
=
$SLAVE_MYPORT
--
let
$sync_slave
=
1
--
source
include
/
start_alter_include
.
test
--
connection
master
--
source
include
/
save_master_gtid
.
inc
--
connection
slave
...
...
mysql-test/suite/rpl/t/rpl_start_alter_3.test
View file @
beaadc4b
...
...
@@ -27,6 +27,7 @@ change master to master_use_gtid=slave_pos;
--
let
$S_port
=
$SLAVE_MYPORT
--
let
$sync_slave
=
1
--
source
include
/
start_alter_include
.
test
--
connection
master
--
source
include
/
save_master_gtid
.
inc
--
connection
slave
...
...
mysql-test/suite/rpl/t/rpl_start_alter_4.test
View file @
beaadc4b
...
...
@@ -27,6 +27,7 @@ change master to master_use_gtid=slave_pos;
--
let
$S_port
=
$SLAVE_MYPORT
--
let
$sync_slave
=
1
--
source
include
/
start_alter_include
.
test
--
connection
master
--
source
include
/
save_master_gtid
.
inc
--
connection
slave
...
...
mysql-test/suite/rpl/t/rpl_start_alter_5.test
View file @
beaadc4b
...
...
@@ -27,6 +27,7 @@ change master to master_use_gtid=slave_pos;
--
let
$S_port
=
$SLAVE_MYPORT
--
let
$sync_slave
=
1
--
source
include
/
start_alter_include
.
test
--
connection
master
--
source
include
/
save_master_gtid
.
inc
--
connection
slave
...
...
mysql-test/suite/rpl/t/rpl_start_alter_6.test
View file @
beaadc4b
...
...
@@ -30,6 +30,7 @@ change master to master_use_gtid=slave_pos;
--
let
$S_port
=
$SLAVE_MYPORT
--
let
$sync_slave
=
1
--
source
include
/
start_alter_include
.
test
--
connection
master
--
source
include
/
save_master_gtid
.
inc
--
connection
slave
...
...
mysql-test/suite/rpl/t/rpl_start_alter_7.test
View file @
beaadc4b
...
...
@@ -25,10 +25,12 @@ set global gtid_strict_mode=1;
--
disable_warnings
--
disable_query_log
--
replace_result
$SERVER_MYPORT_1
MYPORT_1
eval
change
master
'm1'
to
master_port
=
$SERVER_MYPORT_1
,
master_host
=
'127.0.0.1'
,
master_user
=
'root'
,
master_use_gtid
=
slave_pos
;
#--replace_result $SERVER_MYPORT_2 MYPORT_2
eval
change
master
'm2'
to
master_port
=
$SERVER_MYPORT_2
,
master_host
=
'127.0.0.1'
,
master_user
=
'root'
,
master_use_gtid
=
slave_pos
;
--
enable_query_log
--
enable_warnings
...
...
mysql-test/suite/rpl/t/rpl_start_alter_8.test
View file @
beaadc4b
...
...
@@ -25,10 +25,12 @@ set global gtid_strict_mode=1;
--
disable_warnings
--
disable_query_log
--
replace_result
$SERVER_MYPORT_1
MYPORT_1
eval
change
master
'm1'
to
master_port
=
$SERVER_MYPORT_1
,
master_host
=
'127.0.0.1'
,
master_user
=
'root'
,
master_use_gtid
=
slave_pos
;
#--replace_result $SERVER_MYPORT_2 MYPORT_2
eval
change
master
'm2'
to
master_port
=
$SERVER_MYPORT_2
,
master_host
=
'127.0.0.1'
,
master_user
=
'root'
,
master_use_gtid
=
slave_pos
;
--
enable_query_log
--
enable_warnings
...
...
mysql-test/suite/rpl/t/rpl_start_alter_9.test
0 → 100644
View file @
beaadc4b
#
# Start Alter with binlog applied using mysqlbinlog
#
--
source
include
/
have_log_bin
.
inc
--
source
include
/
have_innodb
.
inc
--
source
include
/
master
-
slave
.
inc
--
source
include
/
have_debug
.
inc
--
connection
master
set
global
binlog_split_alter
=
true
;
--
connection
slave
--
source
include
/
stop_slave
.
inc
change
master
to
master_use_gtid
=
current_pos
;
set
global
gtid_strict_mode
=
1
;
--
echo
#Legacy Master Slave
--
let
$domain_1
=
0
--
let
$domain_2
=
0
--
let
$M_port
=
$MASTER_MYPORT
--
let
$S_port
=
$SLAVE_MYPORT
--
let
$sync_slave
=
0
#create table t1(a int);
#alter table t1 add column b int execute= UNTIL COMMIT 12;
--
source
include
/
start_alter_include
.
test
let
MYSQLD_DATADIR
=
`select @@datadir;`
;
--
exec
$MYSQL_BINLOG
$MYSQLD_DATADIR
/
master
-
bin
.
000001
>
$MYSQLTEST_VARDIR
/
tmp
/
master
.
sql
select
@@
gtid_binlog_state
;
RESET
master
;
--
connection
slave
--
exec
$MYSQL
--
host
=
127.0
.
0.1
--
port
=
$SLAVE_MYPORT
-
e
"source
$MYSQLTEST_VARDIR
/tmp/master.sql"
select
@@
gtid_binlog_state
;
set
global
gtid_strict_mode
=
0
;
--
source
include
/
start_slave
.
inc
--
connection
master
set
global
binlog_split_alter
=
false
;
--
source
include
/
rpl_end
.
inc
sql/sql_alter.cc
View file @
beaadc4b
...
...
@@ -388,6 +388,7 @@ static int process_start_alter(THD *thd, uint64 thread_id)
thd
->
rgi_slave
->
reserved_start_alter_thread
=
false
;
if
(
write_bin_log
(
thd
,
false
,
thd
->
query
(),
thd
->
query_length
()))
return
START_ALTER_ERROR
;
my_ok
(
thd
);
return
START_ALTER_SKIP
;
}
return
START_ALTER_PARSE
;
...
...
@@ -498,6 +499,7 @@ static int process_rollback_alter(THD *thd, uint64 thread_id)
write_binlog:
if
(
write_bin_log
(
thd
,
true
,
thd
->
query
(),
thd
->
query_length
()))
return
START_ALTER_ERROR
;
my_ok
(
thd
);
return
START_ALTER_SKIP
;
}
bool
Sql_cmd_alter_table
::
execute
(
THD
*
thd
)
...
...
sql/sql_table.cc
View file @
beaadc4b
...
...
@@ -9365,6 +9365,17 @@ static void wait_for_master(THD *thd, start_alter_info* info)
return
;
}
static
void
alter_committed
(
THD
*
thd
,
start_alter_info
*
info
,
Master_info
*
mi
)
{
start_alter_state
tmp
=
info
->
state
;
mysql_mutex_lock
(
&
mi
->
start_alter_lock
);
info
->
state
=
start_alter_state
::
COMMITTED
;
mysql_mutex_unlock
(
&
mi
->
start_alter_lock
);
mysql_cond_broadcast
(
&
info
->
start_alter_cond
);
if
(
tmp
==
start_alter_state
::
ROLLBACK_ALTER
)
thd
->
clear_error
();
}
/*
master_result:- process the info->state recieved from master
@retval >=1 Error{ 1= ROLLBACK recieved from master , 2= error
...
...
@@ -9380,11 +9391,7 @@ static int master_result(THD *thd, Master_info *mi, start_alter_info *info,
DBUG_ASSERT
(
info
->
state
>
start_alter_state
::
REGISTERED
);
if
(
info
->
state
==
start_alter_state
::
ROLLBACK_ALTER
)
{
mysql_mutex_lock
(
&
mi
->
start_alter_lock
);
info
->
state
=
start_alter_state
::
COMMITTED
;
mysql_mutex_unlock
(
&
mi
->
start_alter_lock
);
mysql_cond_broadcast
(
&
info
->
start_alter_cond
);
thd
->
clear_error
();
alter_committed
(
thd
,
info
,
mi
);
return
MASTER_RESULT_ROLLBACK
;
}
else
if
(
info
->
state
==
start_alter_state
::
COMMIT_ALTER
&&
alter_result
)
...
...
@@ -10288,7 +10295,7 @@ do_continue:;
if
(
res
)
{
if
(
opt_binlog_split
_alter
)
if
(
partial
_alter
)
{
thd
->
gtid_flags3
|=
Gtid_log_event
::
FL_ROLLBACK_ALTER_E1
;
sprintf
(
send_query
,
"/*!100001 %s EXECUTE = ROLLBACK %ld */"
,
thd
->
query
(),
...
...
@@ -10345,6 +10352,8 @@ do_continue:;
thd
->
close_unused_temporary_table_instances
(
table_list
);
//If issues by binlog/master complete the prepare phase of alter and then commit
if
(
table
->
s
->
tmp_table
==
NO_TMP_TABLE
||
(
table
->
s
->
tmp_table
!=
NO_TMP_TABLE
&&
!
thd
->
is_current_stmt_binlog_format_row
()))
if
(
write_start_alter
(
thd
,
&
partial_alter
,
info
))
DBUG_RETURN
(
true
);
DBUG_EXECUTE_IF
(
"start_alter_delay_master"
,
{
...
...
@@ -10467,12 +10476,7 @@ do_continue:;
}
else
if
(
start_alter_id
&&
!
thd
->
direct_commit_alter
)
{
//if(write_bin_log(thd, FALSE, send_query, strlen(send_query), true))
// DBUG_RETURN(true);
mysql_mutex_lock
(
&
mi
->
start_alter_lock
);
info
->
state
=
start_alter_state
::
COMMITTED
;
mysql_mutex_unlock
(
&
mi
->
start_alter_lock
);
mysql_cond_broadcast
(
&
info
->
start_alter_cond
);
alter_committed
(
thd
,
info
,
mi
);
}
/* We don't replicate alter table statement on temporary tables */
else
if
(
!
thd
->
is_current_stmt_binlog_format_row
()
&&
...
...
@@ -10676,12 +10680,7 @@ do_continue:;
}
else
if
(
start_alter_id
&&
!
thd
->
direct_commit_alter
)
{
//if(write_bin_log(thd, FALSE, send_query, strlen(send_query), true))
// DBUG_RETURN(true);
mysql_mutex_lock
(
&
mi
->
start_alter_lock
);
info
->
state
=
start_alter_state
::
COMMITTED
;
mysql_mutex_unlock
(
&
mi
->
start_alter_lock
);
mysql_cond_broadcast
(
&
info
->
start_alter_cond
);
alter_committed
(
thd
,
info
,
mi
);
}
else
if
(
write_bin_log
(
thd
,
true
,
thd
->
query
(),
thd
->
query_length
()))
DBUG_RETURN
(
true
);
...
...
@@ -10733,9 +10732,10 @@ do_continue:;
(
FN_IS_TMP
|
(
no_ha_table
?
NO_HA_TABLE
:
0
)),
alter_ctx
.
get_tmp_path
());
//STODO
//Can be the case when master sent CA and on slave we got RA
if
(
start_alter_id
&&
!
thd
->
direct_commit_alter
)
master_result
(
thd
,
mi
,
info
,
1
);
else
if
(
opt_binlog_split_alter
)
else
if
(
partial_alter
)
//Write only if SA written
{
thd
->
gtid_flags3
|=
Gtid_log_event
::
FL_ROLLBACK_ALTER_E1
;
sprintf
(
send_query
,
"/*!100001 %s EXECUTE = ROLLBACK %ld */"
,
thd
->
query
(),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment