Merging with mysql-5.1-new-rpl
mysql-test/r/rpl_row_delayed_ins.result: Manual merge.
This commit is contained in:
commit
e1a360ad62
@ -82,7 +82,7 @@ show slave status;
|
||||
|
||||
stop slave;
|
||||
delete from t3;
|
||||
change master to master_log_pos=544; # the BEGIN log event
|
||||
change master to master_log_pos=547; # the BEGIN log event
|
||||
begin;
|
||||
select * from t2 for update; # hold lock
|
||||
start slave;
|
||||
@ -107,7 +107,7 @@ set global max_relay_log_size=0;
|
||||
# This is really copy-paste of 2) of above
|
||||
stop slave;
|
||||
delete from t3;
|
||||
change master to master_log_pos=544;
|
||||
change master to master_log_pos=547;
|
||||
begin;
|
||||
select * from t2 for update;
|
||||
start slave;
|
||||
|
@ -42,13 +42,13 @@ select count(*) from t1;
|
||||
show binlog events;
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 102 limit 1;
|
||||
show binlog events from 105 limit 1;
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 102 limit 2;
|
||||
show binlog events from 105 limit 2;
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 102 limit 2,1;
|
||||
show binlog events from 105 limit 2,1;
|
||||
flush logs;
|
||||
|
||||
# We need an extra update before doing save_master_pos.
|
||||
|
@ -115,7 +115,7 @@ drop database mysqltest2;
|
||||
drop database mysqltest3;
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 102;
|
||||
show binlog events from 105;
|
||||
sync_slave_with_master;
|
||||
|
||||
# Check that we can change global.collation_server (since 5.0.3)
|
||||
|
@ -1,7 +1,7 @@
|
||||
reset master;
|
||||
show master status;
|
||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||
master-bin.000001 102
|
||||
master-bin.000001 105
|
||||
reset slave;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
@ -17,7 +17,7 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File
|
||||
start slave;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_PORT 7 master-bin.000001 102 # # master-bin.000001 Yes Yes 0 0 102 # None 0 No #
|
||||
# 127.0.0.1 root MASTER_PORT 7 master-bin.000001 105 # # master-bin.000001 Yes Yes 0 0 105 # None 0 No #
|
||||
drop table if exists t1;
|
||||
create table t1 (n int, PRIMARY KEY(n));
|
||||
insert into t1 values (10),(45),(90);
|
||||
|
@ -13,11 +13,11 @@ insert into t1 values(2);
|
||||
stop slave;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 # # # master-bin.000001 No No 0 0 187 # None 0 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 # # # master-bin.000001 No No 0 0 190 # None 0 No #
|
||||
change master to master_user='root';
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 # # # master-bin.000001 No No 0 0 187 # None 0 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 # # # master-bin.000001 No No 0 0 190 # None 0 No #
|
||||
start slave;
|
||||
select * from t1;
|
||||
n
|
||||
|
@ -80,7 +80,7 @@ Master_SSL_Key
|
||||
Seconds_Behind_Master #
|
||||
stop slave;
|
||||
delete from t3;
|
||||
change master to master_log_pos=544;
|
||||
change master to master_log_pos=547;
|
||||
begin;
|
||||
select * from t2 for update;
|
||||
a
|
||||
@ -136,7 +136,7 @@ set @my_max_relay_log_size= @@global.max_relay_log_size;
|
||||
set global max_relay_log_size=0;
|
||||
stop slave;
|
||||
delete from t3;
|
||||
change master to master_log_pos=544;
|
||||
change master to master_log_pos=547;
|
||||
begin;
|
||||
select * from t2 for update;
|
||||
a
|
||||
|
@ -24,7 +24,7 @@ Master_User root
|
||||
Master_Port SLAVE_PORT
|
||||
Connect_Retry 60
|
||||
Master_Log_File slave-bin.000001
|
||||
Read_Master_Log_Pos 212
|
||||
Read_Master_Log_Pos 215
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File slave-bin.000001
|
||||
@ -39,7 +39,7 @@ Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 212
|
||||
Exec_Master_Log_Pos 215
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
|
@ -6,10 +6,10 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
show master status;
|
||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||
master-bin.000001 102 <Binlog_Ignore_DB>
|
||||
master-bin.000001 105 <Binlog_Ignore_DB>
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 102 # # master-bin.000001 Yes Yes 0 0 102 # None 0 No #
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 105 # # master-bin.000001 Yes Yes 0 0 105 # None 0 No #
|
||||
stop slave;
|
||||
change master to master_log_pos=74;
|
||||
start slave;
|
||||
@ -30,13 +30,13 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 177 # # master-bin.000001 No Yes 0 0 177 # None 0 No #
|
||||
show master status;
|
||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||
master-bin.000001 102 <Binlog_Ignore_DB>
|
||||
master-bin.000001 105 <Binlog_Ignore_DB>
|
||||
create table if not exists t1 (n int);
|
||||
drop table if exists t1;
|
||||
create table t1 (n int);
|
||||
insert into t1 values (1),(2),(3);
|
||||
stop slave;
|
||||
change master to master_log_pos=102;
|
||||
change master to master_log_pos=105;
|
||||
start slave;
|
||||
select * from t1 ORDER BY n;
|
||||
n
|
||||
|
@ -24,11 +24,11 @@ SHOW TABLES;
|
||||
Tables_in_test_ignore
|
||||
t2
|
||||
INSERT INTO t2 VALUES (3,3), (4,4);
|
||||
SHOW BINLOG EVENTS FROM 102;
|
||||
SHOW BINLOG EVENTS FROM 105;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 102 Query 1 195 use `test`; CREATE TABLE t1 (a INT, b INT)
|
||||
master-bin.000001 195 Table_map 1 235 table_id: # (test.t1)
|
||||
master-bin.000001 235 Write_rows 1 282 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 105 Query 1 198 use `test`; CREATE TABLE t1 (a INT, b INT)
|
||||
master-bin.000001 198 Table_map 1 238 table_id: # (test.t1)
|
||||
master-bin.000001 238 Write_rows 1 285 table_id: # flags: STMT_END_F
|
||||
**** On Slave ****
|
||||
SHOW DATABASES;
|
||||
Database
|
||||
@ -54,10 +54,10 @@ DELETE FROM t1 WHERE a = 0;
|
||||
UPDATE t1 SET a=99 WHERE a = 0;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 188 use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 188 Table_map 1 227 table_id: # (test.t1)
|
||||
master-bin.000001 227 Write_rows 1 266 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 191 use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 191 Table_map 1 230 table_id: # (test.t1)
|
||||
master-bin.000001 230 Write_rows 1 269 table_id: # flags: STMT_END_F
|
||||
DROP TABLE t1;
|
||||
================ Test for BUG#17620 ================
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
@ -118,3 +118,102 @@ HEX(a) b
|
||||
SELECT HEX(a),b FROM t1;
|
||||
HEX(a) b
|
||||
0 2
|
||||
DROP TABLE IF EXISTS t1;
|
||||
================ Test for BUG#22583 ================
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
**** On Master ****
|
||||
CREATE TABLE t1_myisam (k INT, a BIT(1), b BIT(9)) ENGINE=MYISAM;
|
||||
CREATE TABLE t1_innodb (k INT, a BIT(1), b BIT(9)) ENGINE=INNODB;
|
||||
CREATE TABLE t2_myisam (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=MYISAM;
|
||||
CREATE TABLE t2_innodb (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=INNODB;
|
||||
**** On Slave ****
|
||||
ALTER TABLE t1_myisam ENGINE=INNODB;
|
||||
ALTER TABLE t1_innodb ENGINE=MYISAM;
|
||||
ALTER TABLE t2_myisam ENGINE=INNODB;
|
||||
ALTER TABLE t2_innodb ENGINE=MYISAM;
|
||||
**** On Master ****
|
||||
INSERT INTO t1_myisam VALUES(1, b'0', 257);
|
||||
INSERT INTO t1_myisam VALUES(2, b'1', 256);
|
||||
INSERT INTO t1_innodb VALUES(1, b'0', 257);
|
||||
INSERT INTO t1_innodb VALUES(2, b'1', 256);
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 101
|
||||
2 1 100
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 101
|
||||
2 1 100
|
||||
INSERT INTO t2_myisam VALUES(1, b'0', 9);
|
||||
INSERT INTO t2_myisam VALUES(2, b'1', 8);
|
||||
INSERT INTO t2_innodb VALUES(1, b'0', 9);
|
||||
INSERT INTO t2_innodb VALUES(2, b'1', 8);
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 9
|
||||
2 1 8
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 9
|
||||
2 1 8
|
||||
**** On Slave ****
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 101
|
||||
2 1 100
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 101
|
||||
2 1 100
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 9
|
||||
2 1 8
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 9
|
||||
2 1 8
|
||||
**** On Master ****
|
||||
UPDATE t1_myisam SET a=0 WHERE k=2;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 101
|
||||
2 0 100
|
||||
UPDATE t1_innodb SET a=0 WHERE k=2;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 101
|
||||
2 0 100
|
||||
UPDATE t2_myisam SET a=0 WHERE k=2;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 9
|
||||
2 0 8
|
||||
UPDATE t2_innodb SET a=0 WHERE k=2;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 9
|
||||
2 0 8
|
||||
**** On Slave ****
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 101
|
||||
2 0 100
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 101
|
||||
2 0 100
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 9
|
||||
2 0 8
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
||||
k HEX(a) HEX(b)
|
||||
1 0 9
|
||||
2 0 8
|
||||
**** On Master ****
|
||||
DROP TABLE IF EXISTS t1_myisam, t1_innodb, t2_myisam, t2_innodb;
|
||||
|
@ -109,7 +109,7 @@ a b
|
||||
1 cp850_general_ci
|
||||
drop database mysqltest2;
|
||||
drop database mysqltest3;
|
||||
show binlog events from 102;
|
||||
show binlog events from 105;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # drop database if exists mysqltest2
|
||||
master-bin.000001 # Query 1 # drop database if exists mysqltest3
|
||||
|
@ -8,27 +8,27 @@ CREATE TABLE t1 (a INT, b INT);
|
||||
CREATE TABLE t2 (a INT, b INT) ENGINE=Merge;
|
||||
CREATE TABLE t3 (a INT, b INT) CHARSET=utf8;
|
||||
CREATE TABLE t4 (a INT, b INT) ENGINE=Merge CHARSET=utf8;
|
||||
SHOW BINLOG EVENTS FROM 212;
|
||||
SHOW BINLOG EVENTS FROM 215;
|
||||
Log_name #
|
||||
Pos 212
|
||||
Pos 215
|
||||
Event_type Query
|
||||
Server_id #
|
||||
End_log_pos #
|
||||
Info use `test`; CREATE TABLE t1 (a INT, b INT)
|
||||
Log_name #
|
||||
Pos 305
|
||||
Pos 308
|
||||
Event_type Query
|
||||
Server_id #
|
||||
End_log_pos #
|
||||
Info use `test`; CREATE TABLE t2 (a INT, b INT) ENGINE=Merge
|
||||
Log_name #
|
||||
Pos 411
|
||||
Pos 414
|
||||
Event_type Query
|
||||
Server_id #
|
||||
End_log_pos #
|
||||
Info use `test`; CREATE TABLE t3 (a INT, b INT) CHARSET=utf8
|
||||
Log_name #
|
||||
Pos 517
|
||||
Pos 520
|
||||
Event_type Query
|
||||
Server_id #
|
||||
End_log_pos #
|
||||
@ -127,7 +127,7 @@ NULL 5 10
|
||||
NULL 6 12
|
||||
CREATE TABLE t7 (UNIQUE(b)) SELECT a,b FROM tt3;
|
||||
ERROR 23000: Duplicate entry '2' for key 'b'
|
||||
SHOW BINLOG EVENTS FROM 1118;
|
||||
SHOW BINLOG EVENTS FROM 959;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
CREATE TABLE t7 (a INT, b INT UNIQUE);
|
||||
INSERT INTO t7 SELECT a,b FROM tt3;
|
||||
@ -137,11 +137,11 @@ a b
|
||||
1 2
|
||||
2 4
|
||||
3 6
|
||||
SHOW BINLOG EVENTS FROM 1118;
|
||||
SHOW BINLOG EVENTS FROM 1097;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 1118 Query 1 1218 use `test`; CREATE TABLE t7 (a INT, b INT UNIQUE)
|
||||
master-bin.000001 1218 Table_map 1 1258 table_id: # (test.t7)
|
||||
master-bin.000001 1258 Write_rows 1 1314 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 1097 Query 1 1197 use `test`; CREATE TABLE t7 (a INT, b INT UNIQUE)
|
||||
master-bin.000001 1197 Table_map 1 1237 table_id: # (test.t7)
|
||||
master-bin.000001 1237 Write_rows 1 1293 table_id: # flags: STMT_END_F
|
||||
SELECT * FROM t7 ORDER BY a,b;
|
||||
a b
|
||||
1 2
|
||||
@ -154,10 +154,10 @@ INSERT INTO t7 SELECT a,b FROM tt4;
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
SHOW BINLOG EVENTS FROM 1314;
|
||||
SHOW BINLOG EVENTS FROM 1293;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 1314 Table_map 1 1354 table_id: # (test.t7)
|
||||
master-bin.000001 1354 Write_rows 1 1410 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 1293 Table_map 1 1333 table_id: # (test.t7)
|
||||
master-bin.000001 1333 Write_rows 1 1389 table_id: # flags: STMT_END_F
|
||||
SELECT * FROM t7 ORDER BY a,b;
|
||||
a b
|
||||
1 2
|
||||
@ -192,10 +192,10 @@ Create Table CREATE TABLE `t9` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW BINLOG EVENTS FROM 1410;
|
||||
SHOW BINLOG EVENTS FROM 1389;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 1410 Query 1 1496 use `test`; CREATE TABLE t8 LIKE t4
|
||||
master-bin.000001 1496 Query 1 1635 use `test`; CREATE TABLE `t9` (
|
||||
master-bin.000001 1389 Query 1 1475 use `test`; CREATE TABLE t8 LIKE t4
|
||||
master-bin.000001 1475 Query 1 1614 use `test`; CREATE TABLE `t9` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL
|
||||
)
|
||||
|
@ -5,9 +5,7 @@ reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
create table t1(a int not null primary key) engine=myisam;
|
||||
insert delayed into t1 values (1);
|
||||
insert delayed into t1 values (2);
|
||||
insert delayed into t1 values (3);
|
||||
insert delayed into t1 values (1),(2),(3);
|
||||
flush tables;
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a
|
||||
@ -16,15 +14,13 @@ a
|
||||
3
|
||||
show binlog events;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 222 use `test`; create table t1(a int not null primary key) engine=myisam
|
||||
master-bin.000001 222 Table_map 1 261 table_id: # (test.t1)
|
||||
master-bin.000001 261 Write_rows 1 295 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 295 Table_map 1 334 table_id: # (test.t1)
|
||||
master-bin.000001 334 Write_rows 1 368 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 368 Table_map 1 407 table_id: # (test.t1)
|
||||
master-bin.000001 407 Write_rows 1 441 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 441 Query 1 516 use `test`; flush tables
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 225 use `test`; create table t1(a int not null primary key) engine=myisam
|
||||
master-bin.000001 225 Table_map 1 264 table_id: # (test.t1)
|
||||
master-bin.000001 264 Write_rows 1 298 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 298 Table_map 1 337 table_id: # (test.t1)
|
||||
master-bin.000001 337 Write_rows 1 376 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 376 Query 1 451 use `test`; flush tables
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a
|
||||
1
|
||||
|
@ -43,10 +43,10 @@ t2
|
||||
DROP TABLE t1,t2;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 188 use `test`; CREATE TABLE t1 (a int)
|
||||
master-bin.000001 188 Query 1 274 use `test`; CREATE TABLE t2 (a int)
|
||||
master-bin.000001 274 Query 1 378 use `test`; DROP TABLE `t1` /* generated by server */
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 191 use `test`; CREATE TABLE t1 (a int)
|
||||
master-bin.000001 191 Query 1 277 use `test`; CREATE TABLE t2 (a int)
|
||||
master-bin.000001 277 Query 1 381 use `test`; DROP TABLE `t1` /* generated by server */
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
t2
|
||||
|
@ -12,13 +12,13 @@ create table t4 (a int);
|
||||
insert into t4 select * from t3;
|
||||
rename table t1 to t5, t2 to t1;
|
||||
flush no_write_to_binlog tables;
|
||||
SHOW BINLOG EVENTS FROM 615 ;
|
||||
SHOW BINLOG EVENTS FROM 618 ;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; rename table t1 to t5, t2 to t1
|
||||
select * from t3;
|
||||
a
|
||||
flush tables;
|
||||
SHOW BINLOG EVENTS FROM 615 ;
|
||||
SHOW BINLOG EVENTS FROM 618 ;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; rename table t1 to t5, t2 to t1
|
||||
master-bin.000001 # Query 1 # use `test`; flush tables
|
||||
|
@ -39,7 +39,7 @@ Replicate_Wild_Ignore_Table
|
||||
Last_Errno 1146
|
||||
Last_Error Error 'Table 'test.t1' doesn't exist' on opening table `test`.`t1`
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 519
|
||||
Exec_Master_Log_Pos 522
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
|
@ -26,14 +26,14 @@ master-bin.000001 # Query 1 # use `test`; drop table t1
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1 (word char(20) not null)ENGINE=MyISAM
|
||||
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
show binlog events from 102 limit 1;
|
||||
show binlog events from 105 limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=MyISAM
|
||||
show binlog events from 102 limit 2;
|
||||
show binlog events from 105 limit 2;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=MyISAM
|
||||
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
||||
show binlog events from 102 limit 2,1;
|
||||
show binlog events from 105 limit 2,1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
flush logs;
|
||||
@ -67,13 +67,13 @@ master-bin.000002 # Table_map 1 # table_id: # (test.t2)
|
||||
master-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
master-bin.000001 1256
|
||||
master-bin.000002 373
|
||||
master-bin.000001 1259
|
||||
master-bin.000002 376
|
||||
start slave;
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
slave-bin.000001 1354
|
||||
slave-bin.000002 274
|
||||
slave-bin.000001 1357
|
||||
slave-bin.000002 277
|
||||
show binlog events in 'slave-bin.000001' from 4;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000001 # Format_desc 2 # Server ver: VERSION, Binlog ver: 4
|
||||
@ -94,7 +94,7 @@ slave-bin.000002 # Table_map 1 # table_id: # (test.t2)
|
||||
slave-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 373 # # master-bin.000002 Yes Yes # 0 0 373 # None 0 No #
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 376 # # master-bin.000002 Yes Yes # 0 0 376 # None 0 No #
|
||||
show binlog events in 'slave-bin.000005' from 4;
|
||||
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
|
||||
DROP TABLE t1;
|
||||
|
@ -28,14 +28,14 @@ master-bin.000001 # Query 1 # use `test`; create table t1 (word char(20) not nul
|
||||
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid 1 # COMMIT /* XID */
|
||||
show binlog events from 102 limit 1;
|
||||
show binlog events from 105 limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
|
||||
show binlog events from 102 limit 2;
|
||||
show binlog events from 105 limit 2;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
|
||||
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
||||
show binlog events from 102 limit 2,1;
|
||||
show binlog events from 105 limit 2,1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
flush logs;
|
||||
@ -72,13 +72,13 @@ master-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
master-bin.000002 # Xid 1 # COMMIT /* XID */
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
master-bin.000001 1310
|
||||
master-bin.000002 400
|
||||
master-bin.000001 1313
|
||||
master-bin.000002 403
|
||||
start slave;
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
slave-bin.000001 1408
|
||||
slave-bin.000002 301
|
||||
slave-bin.000001 1411
|
||||
slave-bin.000002 304
|
||||
show binlog events in 'slave-bin.000001' from 4;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000001 # Format_desc 2 # Server ver: VERSION, Binlog ver: 4
|
||||
@ -102,7 +102,7 @@ slave-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
slave-bin.000002 # Xid 1 # COMMIT /* XID */
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 400 # # master-bin.000002 Yes Yes # 0 0 400 # None 0 No #
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 403 # # master-bin.000002 Yes Yes # 0 0 403 # None 0 No #
|
||||
show binlog events in 'slave-bin.000005' from 4;
|
||||
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
|
||||
DROP TABLE t1;
|
||||
|
@ -30,7 +30,7 @@ Master_User root
|
||||
Master_Port MASTER_PORT
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos 58664
|
||||
Read_Master_Log_Pos 58667
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
@ -45,7 +45,7 @@ Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 58664
|
||||
Exec_Master_Log_Pos 58667
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
@ -73,7 +73,7 @@ Master_User root
|
||||
Master_Port MASTER_PORT
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos 58664
|
||||
Read_Master_Log_Pos 58667
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
@ -88,7 +88,7 @@ Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 58664
|
||||
Exec_Master_Log_Pos 58667
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
@ -116,7 +116,7 @@ Master_User root
|
||||
Master_Port MASTER_PORT
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos 58664
|
||||
Read_Master_Log_Pos 58667
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
@ -131,7 +131,7 @@ Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 58664
|
||||
Exec_Master_Log_Pos 58667
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
@ -197,7 +197,7 @@ Master_User root
|
||||
Master_Port MASTER_PORT
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos 58750
|
||||
Read_Master_Log_Pos 58753
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
@ -212,7 +212,7 @@ Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 58750
|
||||
Exec_Master_Log_Pos 58753
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
@ -236,7 +236,7 @@ Master_User root
|
||||
Master_Port MASTER_PORT
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos 58826
|
||||
Read_Master_Log_Pos 58829
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
@ -251,7 +251,7 @@ Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 58826
|
||||
Exec_Master_Log_Pos 58829
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
@ -266,7 +266,7 @@ Seconds_Behind_Master #
|
||||
flush logs;
|
||||
show master status;
|
||||
File master-bin.000002
|
||||
Position 102
|
||||
Position 105
|
||||
Binlog_Do_DB <Binlog_Ignore_DB>
|
||||
Binlog_Ignore_DB
|
||||
set global max_binlog_size= @my_max_binlog_size;
|
||||
|
@ -6,12 +6,12 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 102 # # master-bin.000001 Yes Yes # 0 0 102 # None 0 No #
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 105 # # master-bin.000001 Yes Yes # 0 0 105 # None 0 No #
|
||||
stop slave;
|
||||
change master to master_user='test';
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 test MASTER_PORT 1 master-bin.000001 102 # # master-bin.000001 No No # 0 0 102 # None 0 No #
|
||||
# 127.0.0.1 test MASTER_PORT 1 master-bin.000001 105 # # master-bin.000001 No No # 0 0 105 # None 0 No #
|
||||
reset slave;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
@ -19,7 +19,7 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File
|
||||
start slave;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 102 # # master-bin.000001 Yes Yes # 0 0 102 # None 0 No #
|
||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 105 # # master-bin.000001 Yes Yes # 0 0 105 # None 0 No #
|
||||
stop slave;
|
||||
reset slave;
|
||||
start slave;
|
||||
|
@ -21,7 +21,7 @@ n
|
||||
4
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 740 slave-relay-bin.000004 # master-bin.000001 # No 0 0 311 # Master master-bin.000001 311 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 743 slave-relay-bin.000004 # master-bin.000001 # No 0 0 314 # Master master-bin.000001 311 No #
|
||||
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
|
||||
select * from t1;
|
||||
n
|
||||
@ -31,7 +31,7 @@ n
|
||||
4
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 740 slave-relay-bin.000004 # master-bin.000001 # No 0 0 311 # Master master-no-such-bin.000001 291 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 743 slave-relay-bin.000004 # master-bin.000001 # No 0 0 314 # Master master-no-such-bin.000001 291 No #
|
||||
start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=728;
|
||||
select * from t2;
|
||||
n
|
||||
@ -39,13 +39,13 @@ n
|
||||
2
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 740 slave-relay-bin.000004 # master-bin.000001 # No 0 0 586 # Relay slave-relay-bin.000004 728 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 743 slave-relay-bin.000004 # master-bin.000001 # No 0 0 589 # Relay slave-relay-bin.000004 728 No #
|
||||
start slave;
|
||||
stop slave;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 740 slave-relay-bin.000004 # master-bin.000001 Yes No 0 0 740 # Master master-bin.000001 740 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 743 slave-relay-bin.000004 # master-bin.000001 Yes No 0 0 743 # Master master-bin.000001 740 No #
|
||||
start slave until master_log_file='master-bin', master_log_pos=561;
|
||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
|
||||
|
@ -10,7 +10,7 @@ stop slave;
|
||||
change master to master_port=SLAVE_PORT;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # # 0 0 0 102 None 0 No NULL
|
||||
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # # 0 0 0 105 None 0 No NULL
|
||||
start slave;
|
||||
insert into t1 values (1);
|
||||
show status like "slave_running";
|
||||
|
@ -10,7 +10,7 @@ stop slave;
|
||||
change master to master_port=SLAVE_PORT;
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # 0 0 0 102 None 0 No NULL
|
||||
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # 0 0 0 105 None 0 No NULL
|
||||
start slave;
|
||||
insert into t1 values (1);
|
||||
select * from t1;
|
||||
|
@ -404,7 +404,7 @@ CREATE TABLE t12 (data LONG);
|
||||
LOCK TABLES t12 WRITE;
|
||||
INSERT INTO t12 VALUES(UUID());
|
||||
UNLOCK TABLES;
|
||||
show binlog events from 102;
|
||||
show binlog events from 105;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # drop database if exists mysqltest1
|
||||
master-bin.000001 # Query 1 # create database mysqltest1
|
||||
@ -714,7 +714,7 @@ master-bin.000001 # Query 1 # use `mysqltest1`; DROP TABLE IF EXISTS t12
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE TABLE t12 (data LONG)
|
||||
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t12)
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
show binlog events from 102;
|
||||
show binlog events from 105;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # drop database if exists mysqltest1
|
||||
master-bin.000001 # Query 1 # create database mysqltest1
|
||||
|
@ -31,11 +31,11 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 210 Query 1 307 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 307 Query 1 387 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 387 Query 1 463 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 213 Query 1 310 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 310 Query 1 390 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 390 Query 1 466 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=MIXED;
|
||||
SET GLOBAL BINLOG_FORMAT=MIXED;
|
||||
@ -63,11 +63,11 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 210 Query 1 307 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 307 Query 1 387 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 387 Query 1 463 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 213 Query 1 310 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 310 Query 1 390 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 390 Query 1 466 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=ROW;
|
||||
SET GLOBAL BINLOG_FORMAT=ROW;
|
||||
@ -95,12 +95,12 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 210 Table_map 1 250 table_id: # (test.t1)
|
||||
master-bin.000001 250 Write_rows 1 297 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 297 Query 1 377 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 377 Query 1 453 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 213 Table_map 1 253 table_id: # (test.t1)
|
||||
master-bin.000001 253 Write_rows 1 300 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 300 Query 1 380 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 380 Query 1 456 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=STATEMENT;
|
||||
SET GLOBAL BINLOG_FORMAT=STATEMENT;
|
||||
@ -128,11 +128,11 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 210 Query 1 307 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 307 Query 1 384 use `test`; DELETE FROM t1
|
||||
master-bin.000001 384 Query 1 460 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 213 Query 1 310 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 310 Query 1 387 use `test`; DELETE FROM t1
|
||||
master-bin.000001 387 Query 1 463 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=MIXED;
|
||||
SET GLOBAL BINLOG_FORMAT=MIXED;
|
||||
@ -160,11 +160,11 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 210 Query 1 307 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 307 Query 1 384 use `test`; DELETE FROM t1
|
||||
master-bin.000001 384 Query 1 460 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 213 Query 1 310 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 310 Query 1 387 use `test`; DELETE FROM t1
|
||||
master-bin.000001 387 Query 1 463 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=ROW;
|
||||
SET GLOBAL BINLOG_FORMAT=ROW;
|
||||
@ -193,10 +193,10 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 210 Table_map 1 250 table_id: # (test.t1)
|
||||
master-bin.000001 250 Write_rows 1 297 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 297 Table_map 1 337 table_id: # (test.t1)
|
||||
master-bin.000001 337 Delete_rows 1 384 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 384 Query 1 460 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=MyISAM
|
||||
master-bin.000001 213 Table_map 1 253 table_id: # (test.t1)
|
||||
master-bin.000001 253 Write_rows 1 300 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 300 Table_map 1 340 table_id: # (test.t1)
|
||||
master-bin.000001 340 Delete_rows 1 387 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 387 Query 1 463 use `test`; DROP TABLE t1
|
||||
|
@ -31,13 +31,13 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 210 Query 1 97 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 307 Xid 1 334 COMMIT /* xid= */
|
||||
master-bin.000001 334 Query 1 80 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 414 Xid 1 441 COMMIT /* xid= */
|
||||
master-bin.000001 441 Query 1 517 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 213 Query 1 97 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 310 Xid 1 337 COMMIT /* xid= */
|
||||
master-bin.000001 337 Query 1 80 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 417 Xid 1 444 COMMIT /* xid= */
|
||||
master-bin.000001 444 Query 1 520 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=MIXED;
|
||||
SET GLOBAL BINLOG_FORMAT=MIXED;
|
||||
@ -65,13 +65,13 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 210 Query 1 97 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 307 Xid 1 334 COMMIT /* xid= */
|
||||
master-bin.000001 334 Query 1 80 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 414 Xid 1 441 COMMIT /* xid= */
|
||||
master-bin.000001 441 Query 1 517 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 213 Query 1 97 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 310 Xid 1 337 COMMIT /* xid= */
|
||||
master-bin.000001 337 Query 1 80 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 417 Xid 1 444 COMMIT /* xid= */
|
||||
master-bin.000001 444 Query 1 520 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=ROW;
|
||||
SET GLOBAL BINLOG_FORMAT=ROW;
|
||||
@ -99,14 +99,14 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 210 Table_map 1 40 table_id: # (test.t1)
|
||||
master-bin.000001 250 Write_rows 1 87 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 297 Xid 1 324 COMMIT /* xid= */
|
||||
master-bin.000001 324 Query 1 80 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 404 Xid 1 431 COMMIT /* xid= */
|
||||
master-bin.000001 431 Query 1 507 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 213 Table_map 1 40 table_id: # (test.t1)
|
||||
master-bin.000001 253 Write_rows 1 87 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 300 Xid 1 327 COMMIT /* xid= */
|
||||
master-bin.000001 327 Query 1 80 use `test`; TRUNCATE TABLE t1
|
||||
master-bin.000001 407 Xid 1 434 COMMIT /* xid= */
|
||||
master-bin.000001 434 Query 1 510 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=STATEMENT;
|
||||
SET GLOBAL BINLOG_FORMAT=STATEMENT;
|
||||
@ -134,13 +134,13 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 210 Query 1 97 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 307 Xid 1 334 COMMIT /* xid= */
|
||||
master-bin.000001 334 Query 1 77 use `test`; DELETE FROM t1
|
||||
master-bin.000001 411 Xid 1 438 COMMIT /* xid= */
|
||||
master-bin.000001 438 Query 1 514 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 213 Query 1 97 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 310 Xid 1 337 COMMIT /* xid= */
|
||||
master-bin.000001 337 Query 1 77 use `test`; DELETE FROM t1
|
||||
master-bin.000001 414 Xid 1 441 COMMIT /* xid= */
|
||||
master-bin.000001 441 Query 1 517 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=MIXED;
|
||||
SET GLOBAL BINLOG_FORMAT=MIXED;
|
||||
@ -168,13 +168,13 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 210 Query 1 97 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 307 Xid 1 334 COMMIT /* xid= */
|
||||
master-bin.000001 334 Query 1 77 use `test`; DELETE FROM t1
|
||||
master-bin.000001 411 Xid 1 438 COMMIT /* xid= */
|
||||
master-bin.000001 438 Query 1 514 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 213 Query 1 97 use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
||||
master-bin.000001 310 Xid 1 337 COMMIT /* xid= */
|
||||
master-bin.000001 337 Query 1 77 use `test`; DELETE FROM t1
|
||||
master-bin.000001 414 Xid 1 441 COMMIT /* xid= */
|
||||
master-bin.000001 441 Query 1 517 use `test`; DROP TABLE t1
|
||||
**** On Master ****
|
||||
SET SESSION BINLOG_FORMAT=ROW;
|
||||
SET GLOBAL BINLOG_FORMAT=ROW;
|
||||
@ -203,12 +203,12 @@ a b
|
||||
DROP TABLE t1;
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 102 Query 1 210 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 210 Table_map 1 40 table_id: # (test.t1)
|
||||
master-bin.000001 250 Write_rows 1 87 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 297 Xid 1 324 COMMIT /* xid= */
|
||||
master-bin.000001 324 Table_map 1 40 table_id: # (test.t1)
|
||||
master-bin.000001 364 Delete_rows 1 87 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 411 Xid 1 438 COMMIT /* xid= */
|
||||
master-bin.000001 438 Query 1 514 use `test`; DROP TABLE t1
|
||||
master-bin.000001 4 Format_desc 1 105 Server ver: SERVER_VERSION, Binlog ver: 4
|
||||
master-bin.000001 105 Query 1 213 use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=InnoDB
|
||||
master-bin.000001 213 Table_map 1 40 table_id: # (test.t1)
|
||||
master-bin.000001 253 Write_rows 1 87 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 300 Xid 1 327 COMMIT /* xid= */
|
||||
master-bin.000001 327 Table_map 1 40 table_id: # (test.t1)
|
||||
master-bin.000001 367 Delete_rows 1 87 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 414 Xid 1 441 COMMIT /* xid= */
|
||||
master-bin.000001 441 Query 1 517 use `test`; DROP TABLE t1
|
||||
|
@ -22,7 +22,7 @@ sync_with_master;
|
||||
select count(*) from test.t1; # check that LOAD was replicated
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 102; # should be nothing
|
||||
show binlog events from 105; # should be nothing
|
||||
|
||||
# Cleanup
|
||||
connection master;
|
||||
|
@ -49,7 +49,7 @@ insert into t1 values (1),(2),(3);
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
stop slave;
|
||||
change master to master_log_pos=102;
|
||||
change master to master_log_pos=105;
|
||||
start slave;
|
||||
sync_with_master;
|
||||
select * from t1 ORDER BY n;
|
||||
|
@ -1 +1,2 @@
|
||||
--binlog_ignore_db=test_ignore
|
||||
--binlog_ignore_db=test_ignore --innodb
|
||||
|
||||
|
1
mysql-test/t/rpl_row_basic_11bugs-slave.opt
Normal file
1
mysql-test/t/rpl_row_basic_11bugs-slave.opt
Normal file
@ -0,0 +1 @@
|
||||
--innodb
|
@ -25,7 +25,7 @@ CREATE TABLE t2 (a INT, b INT);
|
||||
SHOW TABLES;
|
||||
INSERT INTO t2 VALUES (3,3), (4,4);
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
SHOW BINLOG EVENTS FROM 102;
|
||||
SHOW BINLOG EVENTS FROM 105;
|
||||
sync_slave_with_master;
|
||||
--echo **** On Slave ****
|
||||
SHOW DATABASES;
|
||||
@ -113,3 +113,71 @@ UPDATE t1 SET a=0 WHERE b=2;
|
||||
SELECT HEX(a),b FROM t1;
|
||||
sync_slave_with_master;
|
||||
SELECT HEX(a),b FROM t1;
|
||||
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
sync_slave_with_master;
|
||||
|
||||
# BUG#22583: RBR between MyISAM and non-MyISAM tables containing a BIT
|
||||
# field does not work
|
||||
|
||||
--echo ================ Test for BUG#22583 ================
|
||||
--disable_query_log
|
||||
--source include/master-slave-reset.inc
|
||||
--enable_query_log
|
||||
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
CREATE TABLE t1_myisam (k INT, a BIT(1), b BIT(9)) ENGINE=MYISAM;
|
||||
CREATE TABLE t1_innodb (k INT, a BIT(1), b BIT(9)) ENGINE=INNODB;
|
||||
CREATE TABLE t2_myisam (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=MYISAM;
|
||||
CREATE TABLE t2_innodb (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=INNODB;
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
ALTER TABLE t1_myisam ENGINE=INNODB;
|
||||
ALTER TABLE t1_innodb ENGINE=MYISAM;
|
||||
ALTER TABLE t2_myisam ENGINE=INNODB;
|
||||
ALTER TABLE t2_innodb ENGINE=MYISAM;
|
||||
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
INSERT INTO t1_myisam VALUES(1, b'0', 257);
|
||||
INSERT INTO t1_myisam VALUES(2, b'1', 256);
|
||||
INSERT INTO t1_innodb VALUES(1, b'0', 257);
|
||||
INSERT INTO t1_innodb VALUES(2, b'1', 256);
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
||||
INSERT INTO t2_myisam VALUES(1, b'0', 9);
|
||||
INSERT INTO t2_myisam VALUES(2, b'1', 8);
|
||||
INSERT INTO t2_innodb VALUES(1, b'0', 9);
|
||||
INSERT INTO t2_innodb VALUES(2, b'1', 8);
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
||||
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
UPDATE t1_myisam SET a=0 WHERE k=2;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
||||
UPDATE t1_innodb SET a=0 WHERE k=2;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
||||
UPDATE t2_myisam SET a=0 WHERE k=2;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
||||
UPDATE t2_innodb SET a=0 WHERE k=2;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
||||
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
||||
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
||||
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS t1_myisam, t1_innodb, t2_myisam, t2_innodb;
|
||||
sync_slave_with_master;
|
||||
|
@ -36,7 +36,7 @@ CREATE TABLE t3 (a INT, b INT) CHARSET=utf8;
|
||||
CREATE TABLE t4 (a INT, b INT) ENGINE=Merge CHARSET=utf8;
|
||||
--replace_column 1 # 4 # 5 #
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
--query_vertical SHOW BINLOG EVENTS FROM 212
|
||||
--query_vertical SHOW BINLOG EVENTS FROM 215
|
||||
--echo **** On Master ****
|
||||
--query_vertical SHOW CREATE TABLE t1
|
||||
--query_vertical SHOW CREATE TABLE t2
|
||||
@ -71,7 +71,7 @@ connection master;
|
||||
CREATE TABLE t7 (UNIQUE(b)) SELECT a,b FROM tt3;
|
||||
# Shouldn't be written to the binary log
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
SHOW BINLOG EVENTS FROM 1118;
|
||||
SHOW BINLOG EVENTS FROM 959;
|
||||
|
||||
# Test that INSERT-SELECT works the same way as for SBR.
|
||||
CREATE TABLE t7 (a INT, b INT UNIQUE);
|
||||
@ -80,7 +80,7 @@ INSERT INTO t7 SELECT a,b FROM tt3;
|
||||
SELECT * FROM t7 ORDER BY a,b;
|
||||
# Should be written to the binary log
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
SHOW BINLOG EVENTS FROM 1118;
|
||||
SHOW BINLOG EVENTS FROM 1097;
|
||||
sync_slave_with_master;
|
||||
SELECT * FROM t7 ORDER BY a,b;
|
||||
|
||||
@ -91,7 +91,7 @@ BEGIN;
|
||||
INSERT INTO t7 SELECT a,b FROM tt4;
|
||||
ROLLBACK;
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
SHOW BINLOG EVENTS FROM 1314;
|
||||
SHOW BINLOG EVENTS FROM 1293;
|
||||
SELECT * FROM t7 ORDER BY a,b;
|
||||
sync_slave_with_master;
|
||||
SELECT * FROM t7 ORDER BY a,b;
|
||||
@ -106,7 +106,7 @@ CREATE TEMPORARY TABLE tt7 SELECT 1;
|
||||
--query_vertical SHOW CREATE TABLE t8
|
||||
--query_vertical SHOW CREATE TABLE t9
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
SHOW BINLOG EVENTS FROM 1410;
|
||||
SHOW BINLOG EVENTS FROM 1389;
|
||||
sync_slave_with_master;
|
||||
--echo **** On Slave ****
|
||||
--query_vertical SHOW CREATE TABLE t8
|
||||
|
@ -1,7 +1,7 @@
|
||||
# depends on the binlog output
|
||||
-- source include/have_binlog_format_row.inc
|
||||
|
||||
let $rename_event_pos= 615;
|
||||
let $rename_event_pos= 618;
|
||||
|
||||
# Bug#18326: Do not lock table for writing during prepare of statement
|
||||
# The use of the ps protocol causes extra table maps in the binlog, so
|
||||
|
@ -167,7 +167,7 @@ connection master;
|
||||
select "--- Test 2 position test --" as "";
|
||||
--enable_query_log
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=412 $MYSQLTEST_VARDIR/log/master-bin.000001
|
||||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=415 $MYSQLTEST_VARDIR/log/master-bin.000001
|
||||
|
||||
# These are tests for remote binlog.
|
||||
# They should return the same as previous test.
|
||||
@ -263,7 +263,7 @@ select "--- Test 6 reading stdin --" as "";
|
||||
select "--- Test 7 reading stdin w/position --" as "";
|
||||
--enable_query_log
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--exec $MYSQL_BINLOG --short-form --position=412 - < $MYSQLTEST_VARDIR/log/master-bin.000001
|
||||
--exec $MYSQL_BINLOG --short-form --position=415 - < $MYSQLTEST_VARDIR/log/master-bin.000001
|
||||
|
||||
# Bug#16217 (mysql client did not know how not switch its internal charset)
|
||||
--disable_query_log
|
||||
|
@ -519,7 +519,7 @@ UNLOCK TABLES;
|
||||
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 102;
|
||||
show binlog events from 105;
|
||||
sync_slave_with_master;
|
||||
|
||||
# as we're using UUID we don't SELECT but use "diff" like in rpl_row_UUID
|
||||
@ -536,7 +536,7 @@ sync_slave_with_master;
|
||||
connection master;
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 102;
|
||||
show binlog events from 105;
|
||||
|
||||
# Now test that mysqlbinlog works fine on a binlog generated by the
|
||||
# mixed mode
|
||||
|
@ -15,7 +15,7 @@ SET @var2=char(ascii('a'));
|
||||
insert into t1 values (@var1),(@var2);
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 102;
|
||||
show binlog events from 105;
|
||||
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
|
||||
# absolutely need variables names to be quoted and strings to be
|
||||
# escaped).
|
||||
|
125
sql/log_event.cc
125
sql/log_event.cc
@ -1014,7 +1014,8 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len,
|
||||
ev = new Execute_load_query_log_event(buf, event_len, description_event);
|
||||
break;
|
||||
default:
|
||||
DBUG_PRINT("error",("Unknown evernt code: %d",(int) buf[EVENT_TYPE_OFFSET]));
|
||||
DBUG_PRINT("error",("Unknown event code: %d",
|
||||
(int) buf[EVENT_TYPE_OFFSET]));
|
||||
ev= NULL;
|
||||
break;
|
||||
}
|
||||
@ -5564,10 +5565,10 @@ int Rows_log_event::do_add_row_data(byte *const row_data,
|
||||
row_end Pointer to variable that will hold the value of the
|
||||
one-after-end position for the row
|
||||
master_reclength
|
||||
Pointer to variable that will be set to the length of the
|
||||
record on the master side
|
||||
rw_set Pointer to bitmap that holds either the read_set or the
|
||||
write_set of the table
|
||||
Pointer to variable that will be set to the length of the
|
||||
record on the master side
|
||||
rw_set Pointer to bitmap that holds either the read_set or the
|
||||
write_set of the table
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
@ -5595,68 +5596,77 @@ int Rows_log_event::do_add_row_data(byte *const row_data,
|
||||
static int
|
||||
unpack_row(RELAY_LOG_INFO *rli,
|
||||
TABLE *table, uint const colcnt,
|
||||
char const *row, MY_BITMAP const *cols,
|
||||
char const **row_end, ulong *master_reclength,
|
||||
char const *const row_data, MY_BITMAP const *cols,
|
||||
char const **const row_end, ulong *const master_reclength,
|
||||
MY_BITMAP* const rw_set, Log_event_type const event_type)
|
||||
{
|
||||
byte *const record= table->record[0];
|
||||
DBUG_ENTER("unpack_row");
|
||||
DBUG_ASSERT(record && row);
|
||||
DBUG_PRINT("enter", ("row: 0x%lx table->record[0]: 0x%lx", (long) row, (long) record));
|
||||
my_size_t master_null_bytes= table->s->null_bytes;
|
||||
|
||||
if (colcnt != table->s->fields)
|
||||
{
|
||||
Field **fptr= &table->field[colcnt-1];
|
||||
do
|
||||
master_null_bytes= (*fptr)->last_null_byte();
|
||||
while (master_null_bytes == Field::LAST_NULL_BYTE_UNDEF &&
|
||||
fptr-- > table->field);
|
||||
|
||||
/*
|
||||
If master_null_bytes is LAST_NULL_BYTE_UNDEF (0) at this time,
|
||||
there were no nullable fields nor BIT fields at all in the
|
||||
columns that are common to the master and the slave. In that
|
||||
case, there is only one null byte holding the X bit.
|
||||
|
||||
OBSERVE! There might still be nullable columns following the
|
||||
common columns, so table->s->null_bytes might be greater than 1.
|
||||
*/
|
||||
if (master_null_bytes == Field::LAST_NULL_BYTE_UNDEF)
|
||||
master_null_bytes= 1;
|
||||
}
|
||||
|
||||
DBUG_ASSERT(master_null_bytes <= table->s->null_bytes);
|
||||
memcpy(record, row, master_null_bytes); // [1]
|
||||
DBUG_ASSERT(record && row_data);
|
||||
my_ptrdiff_t const offset= record - (byte*) table->record[0];
|
||||
my_size_t const master_null_byte_count= (bitmap_bits_set(cols) + 7) / 8;
|
||||
int error= 0;
|
||||
|
||||
bitmap_set_all(rw_set);
|
||||
char const *null_ptr= row_data;
|
||||
char const *pack_ptr= row_data + master_null_byte_count;
|
||||
|
||||
bitmap_clear_all(rw_set);
|
||||
|
||||
memcpy(record, table->s->default_values, table->s->null_bytes);
|
||||
|
||||
Field **const begin_ptr = table->field;
|
||||
Field **field_ptr;
|
||||
char const *ptr= row + master_null_bytes;
|
||||
Field **const end_ptr= begin_ptr + colcnt;
|
||||
|
||||
DBUG_ASSERT(null_ptr < row_data + master_null_byte_count);
|
||||
|
||||
// Mask to mask out the correct bit among the null bits
|
||||
unsigned int null_mask= 1U;
|
||||
// The "current" null bits
|
||||
unsigned int null_bits= *null_ptr++;
|
||||
for (field_ptr= begin_ptr ; field_ptr < end_ptr ; ++field_ptr)
|
||||
{
|
||||
Field *const f= *field_ptr;
|
||||
|
||||
if (bitmap_is_set(cols, field_ptr - begin_ptr))
|
||||
{
|
||||
DBUG_ASSERT((const char *)table->record[0] <= f->ptr);
|
||||
DBUG_ASSERT(f->ptr < ((const char *)table->record[0] + table->s->reclength +
|
||||
(f->pack_length_in_rec() == 0)));
|
||||
if ((null_mask & 0xFF) == 0)
|
||||
{
|
||||
DBUG_ASSERT(null_ptr < row_data + master_null_byte_count);
|
||||
null_mask= 1U;
|
||||
null_bits= *null_ptr++;
|
||||
}
|
||||
|
||||
DBUG_ASSERT(null_mask & 0xFF); // One of the 8 LSB should be set
|
||||
|
||||
DBUG_PRINT("info", ("unpacking column '%s' to 0x%lx", f->field_name,
|
||||
(long) f->ptr));
|
||||
ptr= f->unpack(f->ptr, ptr);
|
||||
/* Field...::unpack() cannot return 0 */
|
||||
DBUG_ASSERT(ptr != NULL);
|
||||
DBUG_ASSERT(pack_ptr != NULL);
|
||||
|
||||
if ((null_bits & null_mask) && f->maybe_null())
|
||||
f->set_null(offset);
|
||||
else
|
||||
{
|
||||
f->set_notnull(offset);
|
||||
|
||||
/*
|
||||
We only unpack the field if it was non-null
|
||||
*/
|
||||
f->move_field_offset(offset);
|
||||
pack_ptr= f->unpack(f->ptr, pack_ptr);
|
||||
f->move_field_offset(-offset);
|
||||
}
|
||||
|
||||
bitmap_set_bit(rw_set, field_ptr - begin_ptr);
|
||||
null_mask <<= 1;
|
||||
}
|
||||
else
|
||||
bitmap_clear_bit(rw_set, field_ptr - begin_ptr);
|
||||
}
|
||||
|
||||
*row_end = ptr;
|
||||
/*
|
||||
We should now have read all the null bytes, otherwise something is
|
||||
really wrong.
|
||||
*/
|
||||
DBUG_ASSERT(null_ptr == row_data + master_null_byte_count);
|
||||
|
||||
*row_end = pack_ptr;
|
||||
if (master_reclength)
|
||||
{
|
||||
if (*field_ptr)
|
||||
@ -5681,9 +5691,8 @@ unpack_row(RELAY_LOG_INFO *rli,
|
||||
uint32 const mask= NOT_NULL_FLAG | NO_DEFAULT_VALUE_FLAG;
|
||||
Field *const f= *field_ptr;
|
||||
|
||||
DBUG_PRINT("info", ("processing column '%s' @ 0x%lx", f->field_name,
|
||||
(long) f->ptr));
|
||||
if (event_type == WRITE_ROWS_EVENT && (f->flags & mask) == mask)
|
||||
if (event_type == WRITE_ROWS_EVENT &&
|
||||
((*field_ptr)->flags & mask) == mask)
|
||||
{
|
||||
slave_print_msg(ERROR_LEVEL, rli, ER_NO_DEFAULT_FOR_FIELD,
|
||||
"Field `%s` of table `%s`.`%s` "
|
||||
@ -6883,6 +6892,8 @@ static int find_and_fetch_row(TABLE *table, byte *key)
|
||||
|
||||
DBUG_ASSERT(table->in_use != NULL);
|
||||
|
||||
DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
|
||||
|
||||
if ((table->file->ha_table_flags() & HA_PRIMARY_KEY_REQUIRED_FOR_POSITION) &&
|
||||
table->s->primary_key < MAX_KEY)
|
||||
{
|
||||
@ -7017,16 +7028,18 @@ static int find_and_fetch_row(TABLE *table, byte *key)
|
||||
/* Continue until we find the right record or have made a full loop */
|
||||
do
|
||||
{
|
||||
error= table->file->rnd_next(table->record[1]);
|
||||
|
||||
/*
|
||||
We need to set the null bytes to ensure that the filler bit
|
||||
are all set when returning. There are storage engines that
|
||||
just set the necessary bits on the bytes and don't set the
|
||||
filler bits correctly.
|
||||
Patching the returned record since some storage engines do
|
||||
not set the filler bits correctly.
|
||||
*/
|
||||
my_ptrdiff_t const pos=
|
||||
table->s->null_bytes > 0 ? table->s->null_bytes - 1 : 0;
|
||||
table->record[1][pos]= 0xFF;
|
||||
error= table->file->rnd_next(table->record[1]);
|
||||
table->record[1][pos]|= 256U - (1U << table->s->last_null_bit_pos);
|
||||
|
||||
DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
|
||||
DBUG_DUMP("record[1]", table->record[1], table->s->reclength);
|
||||
|
||||
switch (error)
|
||||
{
|
||||
|
@ -467,10 +467,23 @@ enum Log_event_type
|
||||
XID_EVENT= 16,
|
||||
BEGIN_LOAD_QUERY_EVENT= 17,
|
||||
EXECUTE_LOAD_QUERY_EVENT= 18,
|
||||
|
||||
TABLE_MAP_EVENT = 19,
|
||||
WRITE_ROWS_EVENT = 20,
|
||||
UPDATE_ROWS_EVENT = 21,
|
||||
DELETE_ROWS_EVENT = 22,
|
||||
|
||||
/*
|
||||
These event numbers were used for 5.1.0 to 5.1.15 and are
|
||||
therefore obsolete.
|
||||
*/
|
||||
PRE_GA_WRITE_ROWS_EVENT = 20,
|
||||
PRE_GA_UPDATE_ROWS_EVENT = 21,
|
||||
PRE_GA_DELETE_ROWS_EVENT = 22,
|
||||
|
||||
/*
|
||||
These event numbers are used from 5.1.16 and forward
|
||||
*/
|
||||
WRITE_ROWS_EVENT = 23,
|
||||
UPDATE_ROWS_EVENT = 24,
|
||||
DELETE_ROWS_EVENT = 25,
|
||||
|
||||
/*
|
||||
Add new events here - right above this comment!
|
||||
|
113
sql/sql_class.cc
113
sql/sql_class.cc
@ -2493,30 +2493,113 @@ my_size_t THD::max_row_length_blob(TABLE *table, const byte *data) const
|
||||
}
|
||||
|
||||
|
||||
my_size_t THD::pack_row(TABLE *table, MY_BITMAP const* cols, byte *row_data,
|
||||
const byte *record) const
|
||||
/*
|
||||
Pack a record of data for a table into a format suitable for
|
||||
transfer via the binary log.
|
||||
|
||||
SYNOPSIS
|
||||
THD::pack_row()
|
||||
table Table describing the format of the record
|
||||
cols Bitmap with a set bit for each column that should be
|
||||
stored in the row
|
||||
row_data Pointer to memory where row will be written
|
||||
record Pointer to record that should be packed. It is assumed
|
||||
that the pointer refers to either record[0] or
|
||||
record[1], but no such check is made since the code does
|
||||
not rely on that.
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
The format for a row in transfer with N fields is the following:
|
||||
|
||||
ceil(N/8) null bytes:
|
||||
One null bit for every column *regardless of whether it can be
|
||||
null or not*. This simplifies the decoding. Observe that the
|
||||
number of null bits is equal to the number of set bits in the
|
||||
'cols' bitmap. The number of null bytes is the smallest number
|
||||
of bytes necessary to store the null bits.
|
||||
|
||||
Padding bits are 1.
|
||||
|
||||
N packets:
|
||||
Each field is stored in packed format.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
|
||||
The number of bytes written at 'row_data'.
|
||||
*/
|
||||
my_size_t
|
||||
THD::pack_row(TABLE *table, MY_BITMAP const* cols,
|
||||
byte *const row_data, const byte *record) const
|
||||
{
|
||||
Field **p_field= table->field, *field;
|
||||
int n_null_bytes= table->s->null_bytes;
|
||||
byte *ptr;
|
||||
uint i;
|
||||
int const null_byte_count= (bitmap_bits_set(cols) + 7) / 8;
|
||||
byte *pack_ptr = row_data + null_byte_count;
|
||||
byte *null_ptr = row_data;
|
||||
my_ptrdiff_t const rec_offset= record - table->record[0];
|
||||
my_ptrdiff_t const def_offset= table->s->default_values - table->record[0];
|
||||
memcpy(row_data, record, n_null_bytes);
|
||||
ptr= row_data+n_null_bytes;
|
||||
|
||||
for (i= 0 ; (field= *p_field) ; i++, p_field++)
|
||||
/*
|
||||
We write the null bits and the packed records using one pass
|
||||
through all the fields. The null bytes are written little-endian,
|
||||
i.e., the first fields are in the first byte.
|
||||
*/
|
||||
unsigned int null_bits= (1U << 8) - 1;
|
||||
// Mask to mask out the correct but among the null bits
|
||||
unsigned int null_mask= 1U;
|
||||
for ( ; (field= *p_field) ; p_field++)
|
||||
{
|
||||
if (bitmap_is_set(cols,i))
|
||||
DBUG_PRINT("debug", ("null_mask=%d; null_ptr=%p; row_data=%p; null_byte_count=%d",
|
||||
null_mask, null_ptr, row_data, null_byte_count));
|
||||
if (bitmap_is_set(cols, p_field - table->field))
|
||||
{
|
||||
my_ptrdiff_t const offset=
|
||||
field->is_null(rec_offset) ? def_offset : rec_offset;
|
||||
field->move_field_offset(offset);
|
||||
ptr= (byte*)field->pack((char *) ptr, field->ptr);
|
||||
field->move_field_offset(-offset);
|
||||
my_ptrdiff_t offset;
|
||||
if (field->is_null(rec_offset))
|
||||
{
|
||||
offset= def_offset;
|
||||
null_bits |= null_mask;
|
||||
}
|
||||
else
|
||||
{
|
||||
offset= rec_offset;
|
||||
null_bits &= ~null_mask;
|
||||
|
||||
/*
|
||||
We only store the data of the field if it is non-null
|
||||
*/
|
||||
field->move_field_offset(offset);
|
||||
pack_ptr= (byte*)field->pack((char *) pack_ptr, field->ptr);
|
||||
field->move_field_offset(-offset);
|
||||
}
|
||||
|
||||
null_mask <<= 1;
|
||||
if ((null_mask & 0xFF) == 0)
|
||||
{
|
||||
DBUG_ASSERT(null_ptr < row_data + null_byte_count);
|
||||
null_mask = 1U;
|
||||
*null_ptr++ = null_bits;
|
||||
null_bits= (1U << 8) - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (static_cast<my_size_t>(ptr - row_data));
|
||||
|
||||
/*
|
||||
Write the last (partial) byte, if there is one
|
||||
*/
|
||||
if ((null_mask & 0xFF) > 1)
|
||||
{
|
||||
DBUG_ASSERT(null_ptr < row_data + null_byte_count);
|
||||
*null_ptr++ = null_bits;
|
||||
}
|
||||
|
||||
/*
|
||||
The null pointer should now point to the first byte of the
|
||||
packed data. If it doesn't, something is very wrong.
|
||||
*/
|
||||
DBUG_ASSERT(null_ptr == row_data + null_byte_count);
|
||||
|
||||
return static_cast<my_size_t>(pack_ptr - row_data);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user