Commit ca564999 authored by unknown's avatar unknown
Browse files

Bug #27076 Cluster does not honor SQL_LOG_BIN flag

- both for data schema operations
- also make sure schema events vet the right server id when injected into the binlog
- use same mechanism to signal server_id in bug#17095, and reserve some "id's" for flagging special conditions on the event, in this case do not log it
- enable printing of server ids in the testcases to show that we cot it right

parent b895ed4c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
--let $binlog_start=106
--replace_result $binlog_start <binlog_start>
--replace_column 2 # 4 # 5 #
--replace_column 2 # 5 #
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
--eval show binlog events from $binlog_start
+55 −55
Original line number Diff line number Diff line
@@ -10,30 +10,30 @@ create table t1 (a int primary key) engine=ndb;
create table t2 (a int primary key) engine=ndb;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	create database mysqltest
master-bin1.000001	#	Query	#	#	use `mysqltest`; create table t1 (a int primary key) engine=ndb
master-bin1.000001	#	Query	#	#	use `test`; create table t2 (a int primary key) engine=ndb
master-bin1.000001	#	Query	1	#	create database mysqltest
master-bin1.000001	#	Query	1	#	use `mysqltest`; create table t1 (a int primary key) engine=ndb
master-bin1.000001	#	Query	102	#	use `test`; create table t2 (a int primary key) engine=ndb
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	create database mysqltest
master-bin.000001	#	Query	#	#	use `mysqltest`; create table t1 (a int primary key) engine=ndb
master-bin.000001	#	Query	#	#	use `test`; create table t2 (a int primary key) engine=ndb
master-bin.000001	#	Query	1	#	create database mysqltest
master-bin.000001	#	Query	1	#	use `mysqltest`; create table t1 (a int primary key) engine=ndb
master-bin.000001	#	Query	102	#	use `test`; create table t2 (a int primary key) engine=ndb
reset master;
reset master;
alter table t2 add column (b int);
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	use `test`; alter table t2 add column (b int)
master-bin.000001	#	Query	102	#	use `test`; alter table t2 add column (b int)
reset master;
reset master;
ALTER DATABASE mysqltest CHARACTER SET latin1;
drop table mysqltest.t1;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	ALTER DATABASE mysqltest CHARACTER SET latin1
master-bin.000001	#	Query	102	#	ALTER DATABASE mysqltest CHARACTER SET latin1
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	ALTER DATABASE mysqltest CHARACTER SET latin1
master-bin.000001	#	Query	102	#	ALTER DATABASE mysqltest CHARACTER SET latin1
reset master;
reset master;
use test;
@@ -42,14 +42,14 @@ drop database mysqltest;
create table t1 (a int primary key) engine=ndb;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	BEGIN
master-bin1.000001	#	Table_map	#	#	table_id: # (test.t2)
master-bin1.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	#	#	COMMIT
master-bin1.000001	#	Query	#	#	drop database mysqltest
master-bin1.000001	#	Query	#	#	use `test`; create table t1 (a int primary key) engine=ndb
master-bin1.000001	#	Query	102	#	BEGIN
master-bin1.000001	#	Table_map	102	#	table_id: # (test.t2)
master-bin1.000001	#	Table_map	102	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	102	#	COMMIT
master-bin1.000001	#	Query	1	#	drop database mysqltest
master-bin1.000001	#	Query	1	#	use `test`; create table t1 (a int primary key) engine=ndb
drop table t2;
reset master;
reset master;
@@ -83,63 +83,63 @@ DROP LOGFILE GROUP lg1
ENGINE =NDB;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	CREATE LOGFILE GROUP lg1
master-bin1.000001	#	Query	1	#	CREATE LOGFILE GROUP lg1
ADD UNDOFILE 'undofile.dat'
INITIAL_SIZE 16M
UNDO_BUFFER_SIZE = 1M
ENGINE=NDB
master-bin1.000001	#	Query	#	#	ALTER LOGFILE GROUP lg1
master-bin1.000001	#	Query	1	#	ALTER LOGFILE GROUP lg1
ADD UNDOFILE 'undofile02.dat'
INITIAL_SIZE = 4M 
ENGINE=NDB
master-bin1.000001	#	Query	#	#	CREATE TABLESPACE ts1
master-bin1.000001	#	Query	1	#	CREATE TABLESPACE ts1
ADD DATAFILE 'datafile.dat'
USE LOGFILE GROUP lg1
INITIAL_SIZE 12M
ENGINE NDB
master-bin1.000001	#	Query	#	#	ALTER TABLESPACE ts1
master-bin1.000001	#	Query	1	#	ALTER TABLESPACE ts1
ADD DATAFILE 'datafile02.dat'
INITIAL_SIZE = 4M 
ENGINE=NDB
master-bin1.000001	#	Query	#	#	ALTER TABLESPACE ts1 
master-bin1.000001	#	Query	1	#	ALTER TABLESPACE ts1 
DROP DATAFILE 'datafile.dat' 
ENGINE = NDB
master-bin1.000001	#	Query	#	#	ALTER TABLESPACE ts1 
master-bin1.000001	#	Query	1	#	ALTER TABLESPACE ts1 
DROP DATAFILE 'datafile02.dat' 
ENGINE = NDB
master-bin1.000001	#	Query	#	#	DROP TABLESPACE ts1 
master-bin1.000001	#	Query	1	#	DROP TABLESPACE ts1 
ENGINE = NDB
master-bin1.000001	#	Query	#	#	DROP LOGFILE GROUP lg1 
master-bin1.000001	#	Query	1	#	DROP LOGFILE GROUP lg1 
ENGINE =NDB
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	CREATE LOGFILE GROUP lg1
master-bin1.000001	#	Query	1	#	CREATE LOGFILE GROUP lg1
ADD UNDOFILE 'undofile.dat'
INITIAL_SIZE 16M
UNDO_BUFFER_SIZE = 1M
ENGINE=NDB
master-bin1.000001	#	Query	#	#	ALTER LOGFILE GROUP lg1
master-bin1.000001	#	Query	1	#	ALTER LOGFILE GROUP lg1
ADD UNDOFILE 'undofile02.dat'
INITIAL_SIZE = 4M 
ENGINE=NDB
master-bin1.000001	#	Query	#	#	CREATE TABLESPACE ts1
master-bin1.000001	#	Query	1	#	CREATE TABLESPACE ts1
ADD DATAFILE 'datafile.dat'
USE LOGFILE GROUP lg1
INITIAL_SIZE 12M
ENGINE NDB
master-bin1.000001	#	Query	#	#	ALTER TABLESPACE ts1
master-bin1.000001	#	Query	1	#	ALTER TABLESPACE ts1
ADD DATAFILE 'datafile02.dat'
INITIAL_SIZE = 4M 
ENGINE=NDB
master-bin1.000001	#	Query	#	#	ALTER TABLESPACE ts1 
master-bin1.000001	#	Query	1	#	ALTER TABLESPACE ts1 
DROP DATAFILE 'datafile.dat' 
ENGINE = NDB
master-bin1.000001	#	Query	#	#	ALTER TABLESPACE ts1 
master-bin1.000001	#	Query	1	#	ALTER TABLESPACE ts1 
DROP DATAFILE 'datafile02.dat' 
ENGINE = NDB
master-bin1.000001	#	Query	#	#	DROP TABLESPACE ts1 
master-bin1.000001	#	Query	1	#	DROP TABLESPACE ts1 
ENGINE = NDB
master-bin1.000001	#	Query	#	#	DROP LOGFILE GROUP lg1 
master-bin1.000001	#	Query	1	#	DROP LOGFILE GROUP lg1 
ENGINE =NDB
drop table t1;
reset master;
@@ -154,13 +154,13 @@ create table t3 (a int key) engine=ndb;
rename table t3 to t4, t2 to t3, t1 to t2, t4 to t1;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	use `test`; create table t1 (a int key) engine=ndb
master-bin1.000001	#	Query	#	#	use `test`; create table t2 (a int key) engine=ndb
master-bin1.000001	#	Query	#	#	use `test`; create table t3 (a int key) engine=ndb
master-bin1.000001	#	Query	#	#	use `test`; rename table `test.t3` to `test.t4`
master-bin1.000001	#	Query	#	#	use `test`; rename table `test.t2` to `test.t3`
master-bin1.000001	#	Query	#	#	use `test`; rename table `test.t1` to `test.t2`
master-bin1.000001	#	Query	#	#	use `test`; rename table `test.t4` to `test.t1`
master-bin1.000001	#	Query	1	#	use `test`; create table t1 (a int key) engine=ndb
master-bin1.000001	#	Query	1	#	use `test`; create table t2 (a int key) engine=ndb
master-bin1.000001	#	Query	1	#	use `test`; create table t3 (a int key) engine=ndb
master-bin1.000001	#	Query	1	#	use `test`; rename table `test.t3` to `test.t4`
master-bin1.000001	#	Query	1	#	use `test`; rename table `test.t2` to `test.t3`
master-bin1.000001	#	Query	1	#	use `test`; rename table `test.t1` to `test.t2`
master-bin1.000001	#	Query	1	#	use `test`; rename table `test.t4` to `test.t1`
drop table t1;
drop table t2;
drop table t3;
@@ -177,18 +177,18 @@ insert into t2 values(2);
drop table t2;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	use `test`; create table t1 (a int key) engine=ndb
master-bin1.000001	#	Query	#	#	BEGIN
master-bin1.000001	#	Table_map	#	#	table_id: # (test.t1)
master-bin1.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	#	#	COMMIT
master-bin1.000001	#	Query	#	#	use `test`; rename table `test.t1` to `test.t2`
master-bin1.000001	#	Query	#	#	BEGIN
master-bin1.000001	#	Table_map	#	#	table_id: # (test.t2)
master-bin1.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	#	#	COMMIT
master-bin1.000001	#	Query	#	#	use `test`; drop table t2
master-bin1.000001	#	Query	1	#	use `test`; create table t1 (a int key) engine=ndb
master-bin1.000001	#	Query	102	#	BEGIN
master-bin1.000001	#	Table_map	102	#	table_id: # (test.t1)
master-bin1.000001	#	Table_map	102	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	102	#	COMMIT
master-bin1.000001	#	Query	1	#	use `test`; rename table `test.t1` to `test.t2`
master-bin1.000001	#	Query	102	#	BEGIN
master-bin1.000001	#	Table_map	102	#	table_id: # (test.t2)
master-bin1.000001	#	Table_map	102	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	102	#	COMMIT
master-bin1.000001	#	Query	102	#	use `test`; drop table t2
+8 −8
Original line number Diff line number Diff line
@@ -3,15 +3,15 @@ create table t1 (a int key) engine=ndb;
reset master;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Incident	#	#	#1 (LOST_EVENTS)
master-bin.000001	#	Rotate	#	#	master-bin.000002;pos=4
master-bin.000001	#	Incident	1	#	#1 (LOST_EVENTS)
master-bin.000001	#	Rotate	1	#	master-bin.000002;pos=4
PURGE MASTER LOGS TO 'master-bin.000002';
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000002	#	Query	#	#	BEGIN
master-bin.000002	#	Table_map	#	#	table_id: # (test.t1)
master-bin.000002	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
master-bin.000002	#	Write_rows	#	#	table_id: #
master-bin.000002	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin.000002	#	Query	#	#	COMMIT
master-bin.000002	#	Query	1	#	BEGIN
master-bin.000002	#	Table_map	1	#	table_id: # (test.t1)
master-bin.000002	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
master-bin.000002	#	Write_rows	1	#	table_id: #
master-bin.000002	#	Write_rows	1	#	table_id: # flags: STMT_END_F
master-bin.000002	#	Query	1	#	COMMIT
drop table t1;
+1 −1
Original line number Diff line number Diff line
@@ -7,5 +7,5 @@ create table t1 (a int primary key, b int) engine=ndb;
insert into t1 values (1, 1);
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	use `test`; drop table if exists t1
master-bin.000001	#	Query	1	#	use `test`; drop table if exists t1
drop database mysqltest;
+34 −34
Original line number Diff line number Diff line
@@ -8,14 +8,14 @@ CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB;
INSERT INTO t2 VALUES (1,1),(2,2);
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB
master-bin1.000001	#	Query	#	#	BEGIN
master-bin1.000001	#	Table_map	#	#	table_id: # (test.t2)
master-bin1.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	#	#	COMMIT
master-bin1.000001	#	Query	102	#	use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB
master-bin1.000001	#	Query	102	#	BEGIN
master-bin1.000001	#	Table_map	102	#	table_id: # (test.t2)
master-bin1.000001	#	Table_map	102	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	102	#	COMMIT
select * from t2 order by a;
a	b
1	1
@@ -31,15 +31,15 @@ a b
DROP TABLE t2;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB
master-bin.000001	#	Query	#	#	BEGIN
master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
master-bin.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
master-bin.000001	#	Write_rows	#	#	table_id: #
master-bin.000001	#	Write_rows	#	#	table_id: #
master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Query	#	#	COMMIT
master-bin.000001	#	Query	#	#	use `test`; DROP TABLE t2
master-bin.000001	#	Query	102	#	use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Table_map	1	#	table_id: # (test.t2)
master-bin.000001	#	Table_map	1	#	table_id: # (mysql.ndb_apply_status)
master-bin.000001	#	Write_rows	1	#	table_id: #
master-bin.000001	#	Write_rows	1	#	table_id: #
master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Query	1	#	COMMIT
master-bin.000001	#	Query	1	#	use `test`; DROP TABLE t2
SELECT inserts,updates,deletes,schemaops FROM 
mysql.ndb_binlog_index WHERE epoch=<the_epoch>;
inserts	updates	deletes	schemaops
@@ -50,14 +50,14 @@ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB;
INSERT INTO t1 VALUES (1),(2);
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB
master-bin1.000001	#	Query	#	#	BEGIN
master-bin1.000001	#	Table_map	#	#	table_id: # (test.t1)
master-bin1.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	#	#	COMMIT
master-bin1.000001	#	Query	102	#	use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB
master-bin1.000001	#	Query	102	#	BEGIN
master-bin1.000001	#	Table_map	102	#	table_id: # (test.t1)
master-bin1.000001	#	Table_map	102	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	102	#	COMMIT
SELECT @the_epoch2:=epoch,inserts,updates,deletes,schemaops FROM 
mysql.ndb_binlog_index ORDER BY epoch DESC LIMIT 1;
@the_epoch2:=epoch	inserts	updates	deletes	schemaops
@@ -69,15 +69,15 @@ inserts updates deletes schemaops
drop table t1;
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin1.000001	#	Query	#	#	use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB
master-bin1.000001	#	Query	#	#	BEGIN
master-bin1.000001	#	Table_map	#	#	table_id: # (test.t1)
master-bin1.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: #
master-bin1.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	#	#	COMMIT
master-bin1.000001	#	Query	#	#	use `test`; drop table t1
master-bin1.000001	#	Query	102	#	use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB
master-bin1.000001	#	Query	102	#	BEGIN
master-bin1.000001	#	Table_map	102	#	table_id: # (test.t1)
master-bin1.000001	#	Table_map	102	#	table_id: # (mysql.ndb_apply_status)
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: #
master-bin1.000001	#	Write_rows	102	#	table_id: # flags: STMT_END_F
master-bin1.000001	#	Query	102	#	COMMIT
master-bin1.000001	#	Query	102	#	use `test`; drop table t1
SELECT inserts,updates,deletes,schemaops FROM
mysql.ndb_binlog_index WHERE epoch > <the_epoch> AND epoch <= <the_epoch2>;
inserts	updates	deletes	schemaops
Loading