mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
MDEV-6067: Partitioned table DML sometimes binlogged without XID event
Add test case.
This commit is contained in:
parent
68bad3c7c0
commit
a1ae8f9ba8
2 changed files with 70 additions and 0 deletions
38
mysql-test/suite/parts/r/partition_mdev6067.result
Normal file
38
mysql-test/suite/parts/r/partition_mdev6067.result
Normal file
|
@ -0,0 +1,38 @@
|
|||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
||||
PARTITION BY KEY (a) PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1,1);
|
||||
INSERT INTO t1 VALUES (2,2), (3,8);
|
||||
INSERT INTO t1 VALUES (4,16);
|
||||
show binlog events in 'master-bin.000001' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2,2), (3,8)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4,16)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
DROP TABLE t1;
|
||||
SET binlog_format='row';
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
||||
PARTITION BY KEY (a) PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1,1);
|
||||
INSERT INTO t1 VALUES (2,2), (3,8);
|
||||
INSERT INTO t1 VALUES (4,16);
|
||||
show binlog events in 'master-bin.000001' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
DROP TABLE t1;
|
32
mysql-test/suite/parts/t/partition_mdev6067.test
Normal file
32
mysql-test/suite/parts/t/partition_mdev6067.test
Normal file
|
@ -0,0 +1,32 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/have_partition.inc
|
||||
--source include/have_binlog_format_statement.inc
|
||||
|
||||
# Test binlogging of some transactions on a partitioned InnoDB table.
|
||||
# The bug was seen as one of the inserts being logged with a COMMIT query
|
||||
# event instead of the correct XID event.
|
||||
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
||||
PARTITION BY KEY (a) PARTITIONS 2;
|
||||
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
INSERT INTO t1 VALUES (1,1);
|
||||
INSERT INTO t1 VALUES (2,2), (3,8);
|
||||
INSERT INTO t1 VALUES (4,16);
|
||||
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
# Same thing in row mode.
|
||||
DROP TABLE t1;
|
||||
SET binlog_format='row';
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
||||
PARTITION BY KEY (a) PARTITIONS 2;
|
||||
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
INSERT INTO t1 VALUES (1,1);
|
||||
INSERT INTO t1 VALUES (2,2), (3,8);
|
||||
INSERT INTO t1 VALUES (4,16);
|
||||
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
DROP TABLE t1;
|
Loading…
Reference in a new issue