mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / mysql-test / suite / engines / funcs / t / rpl_row_until.test
blobbf38bd487ea3b7965591c52f8271113d433745d7
1 -- source include/not_ndb_default.inc
2 -- source include/have_binlog_format_row.inc
3 -- source include/master-slave.inc
5 # Note: The test is dependent on binlog positions
7 # Create some events on master
8 connection master;
9 CREATE TABLE t1(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
10 INSERT INTO t1 VALUES (1),(2),(3),(4);
11 DROP TABLE t1;
12 # Save master log position for query DROP TABLE t1
13 save_master_pos;
14 let $master_pos_drop_t1= query_get_value(SHOW BINLOG EVENTS, Pos, 7);
15 let $master_log_file= query_get_value(SHOW BINLOG EVENTS, Log_name, 7);
17 CREATE TABLE t2(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
18 # Save master log position for query CREATE TABLE t2
19 save_master_pos;
20 let $master_pos_create_t2= query_get_value(SHOW BINLOG EVENTS, Pos, 8);
22 INSERT INTO t2 VALUES (1),(2);
23 save_master_pos;
24 # Save master log position for query INSERT INTO t2 VALUES (1),(2);
25 let $master_pos_insert1_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 12);
26 sync_slave_with_master;
28 # Save relay log position for query INSERT INTO t2 VALUES (1),(2);
29 let $relay_pos_insert1_t2= query_get_value(show slave status, Relay_Log_Pos, 1);
31 connection master;
32 INSERT INTO t2 VALUES (3),(4);
33 DROP TABLE t2;
34 # Save master log position for query INSERT INTO t2 VALUES (1),(2);
35 let $master_pos_drop_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 17);
36 sync_slave_with_master;
38 --source include/stop_slave.inc
39 # Reset slave.
40 RESET SLAVE;
41 --disable_query_log
42 eval CHANGE MASTER TO MASTER_USER='root', MASTER_CONNECT_RETRY=1, MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT;
43 --enable_query_log
45 # Try to replicate all queries until drop of t1
46 connection slave;
47 echo START SLAVE UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=master_pos_drop_t1;
48 --disable_query_log
49 eval START SLAVE UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=$master_pos_drop_t1;
50 --enable_query_log
51 --source include/wait_for_slave_sql_to_stop.inc
53 # Here table should be still not deleted
54 SELECT * FROM t1;
55 --let $slave_param= Exec_Master_Log_Pos
56 --let $slave_param_value= $master_pos_drop_t1
57 --source include/check_slave_param.inc
59 # This should fail right after start
60 --replace_result 291 MASTER_LOG_POS
61 START SLAVE UNTIL MASTER_LOG_FILE='master-no-such-bin.000001', MASTER_LOG_POS=291;
62 --source include/wait_for_slave_sql_to_stop.inc
63 # again this table should be still not deleted
64 SELECT * FROM t1;
66 --let $slave_param= Exec_Master_Log_Pos
67 --let $slave_param_value= $master_pos_drop_t1
68 --source include/check_slave_param.inc
70 # Try replicate all up to and not including the second insert to t2;
71 echo START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', RELAY_LOG_POS=relay_pos_insert1_t2;
72 --disable_query_log
73 eval START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', RELAY_LOG_POS=$relay_pos_insert1_t2;
74 --enable_query_log
75 --source include/wait_for_slave_sql_to_stop.inc
76 SELECT * FROM t2;
78 --let $slave_param= Exec_Master_Log_Pos
79 --let $slave_param_value= $master_pos_insert1_t2
80 --source include/check_slave_param.inc
82 # clean up
83 START SLAVE;
84 --source include/wait_for_slave_to_start.inc
85 connection master;
86 sync_slave_with_master;
87 --source include/stop_slave.inc
89 # This should stop immediately as we are already there
90 echo START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=master_pos_create_t2;
91 --disable_query_log
92 eval START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=$master_pos_create_t2;
93 --enable_query_log
94 let $slave_param= Until_Log_Pos;
95 let $slave_param_value= $master_pos_create_t2;
96 --source include/wait_for_slave_param.inc
97 --source include/wait_for_slave_sql_to_stop.inc
98 # here the sql slave thread should be stopped
99 --let $slave_param= Exec_Master_Log_Pos
100 --let $slave_param_value= $master_pos_drop_t2
101 --source include/check_slave_param.inc
103 #testing various error conditions
104 --replace_result 561 MASTER_LOG_POS
105 --error 1277
106 START SLAVE UNTIL MASTER_LOG_FILE='master-bin', MASTER_LOG_POS=561;
107 --replace_result 561 MASTER_LOG_POS 12 RELAY_LOG_POS
108 --error 1277
109 START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=561, RELAY_LOG_POS=12;
110 --error 1277
111 START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001';
112 --error 1277
113 START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000009';
114 --replace_result 561 MASTER_LOG_POS
115 --error 1277
116 START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', MASTER_LOG_POS=561;
117 # Warning should be given for second command
118 START SLAVE;
119 --replace_result 740 MASTER_LOG_POS
120 START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=740;
122 --source include/stop_slave.inc
123 # Clear slave IO error.
124 RESET SLAVE;
126 --let $rpl_only_running_threads= 1
127 --source include/rpl_end.inc