1
1
drop table if exists t1, t2;
2
set debug_sync='RESET';
2
3
create table t1 (n1 int, n2 int, n3 int,
6
7
create table t2 (i int);
7
8
alter table t1 disable keys;
8
insert into t1 values (RAND()*1000, RAND()*1000, RAND()*1000);
9
insert into t1 values (1, 2, 3);
10
set session debug="+d,sleep_alter_enable_indexes";
11
set debug_sync='alter_table_enable_indexes SIGNAL parked WAIT_FOR go';
11
12
alter table t1 enable keys;;
13
set debug_sync='now WAIT_FOR parked';
12
14
insert into t2 values (1);
13
insert into t1 values (1, 1, 1);
14
set session debug="-d,sleep_alter_enable_indexes";
15
insert into t1 values (1, 1, 1);;
16
set debug_sync='now SIGNAL go';
15
17
show binlog events from <binlog_start>;
16
18
Log_name Pos Event_type Server_id End_log_pos Info
19
master-bin.000001 # Query # # BEGIN
17
20
master-bin.000001 # Query # # use `test`; insert into t2 values (1)
21
master-bin.000001 # Query # # COMMIT
18
22
master-bin.000001 # Query # # use `test`; alter table t1 enable keys
23
master-bin.000001 # Query # # BEGIN
19
24
master-bin.000001 # Query # # use `test`; insert into t1 values (1, 1, 1)
25
master-bin.000001 # Query # # COMMIT
20
26
drop tables t1, t2;
27
set debug_sync='RESET';
22
29
drop table if exists t1, t2, t3;
23
30
create table t1 (i int);
25
set session debug="+d,sleep_alter_before_main_binlog";
32
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
26
33
alter table t1 change i c char(10) default 'Test1';;
27
insert into t1 values ();
34
set debug_sync='now WAIT_FOR parked';
35
insert into t1 values ();;
36
set debug_sync='now SIGNAL go';
40
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
31
41
alter table t1 change c vc varchar(100) default 'Test2';;
32
rename table t1 to t2;
42
set debug_sync='now WAIT_FOR parked';
43
rename table t1 to t2;;
44
set debug_sync='now SIGNAL go';
34
46
create table t1 (i int);
47
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
35
48
alter table t1 change i c char(10) default 'Test3', rename to t2;;
36
insert into t2 values ();
49
set debug_sync='now WAIT_FOR parked';
50
insert into t2 values();;
51
set debug_sync='now SIGNAL go';
40
55
alter table t2 change c vc varchar(100) default 'Test2', rename to t1;;
41
56
rename table t1 to t3;
43
set session debug="-d,sleep_alter_before_main_binlog";
58
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
59
set debug_sync='RESET';
44
60
show binlog events from <binlog_start>;
45
61
Log_name Pos Event_type Server_id End_log_pos Info
46
62
master-bin.000001 # Query # # use `test`; alter table t1 change i c char(10) default 'Test1'
63
master-bin.000001 # Query # # BEGIN
47
64
master-bin.000001 # Query # # use `test`; insert into t1 values ()
65
master-bin.000001 # Query # # COMMIT
48
66
master-bin.000001 # Query # # use `test`; alter table t1 change c vc varchar(100) default 'Test2'
49
67
master-bin.000001 # Query # # use `test`; rename table t1 to t2
50
master-bin.000001 # Query # # use `test`; drop table t2
68
master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */
51
69
master-bin.000001 # Query # # use `test`; create table t1 (i int)
52
70
master-bin.000001 # Query # # use `test`; alter table t1 change i c char(10) default 'Test3', rename to t2
53
master-bin.000001 # Query # # use `test`; insert into t2 values ()
71
master-bin.000001 # Query # # BEGIN
72
master-bin.000001 # Query # # use `test`; insert into t2 values()
73
master-bin.000001 # Query # # COMMIT
54
74
master-bin.000001 # Query # # use `test`; alter table t2 change c vc varchar(100) default 'Test2', rename to t1
55
75
master-bin.000001 # Query # # use `test`; rename table t1 to t3
56
master-bin.000001 # Query # # use `test`; drop table t3
76
master-bin.000001 # Query # # use `test`; DROP TABLE `t3` /* generated by server */