mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
b5d95f021f
Now, every transaction (including autocommit transactions) start with a BEGIN and end with a COMMIT/ROLLBACK in the binlog. Added a test case, and updated lots of test case result files. mysql-test/t/rpl_transaction-master.opt: BitKeeper file /home/sven/bk/b26395-autocommit-xa/5.0-rpl/mysql-test/t/rpl_transaction-master.opt mysql-test/t/rpl_transaction-slave.opt: BitKeeper file /home/sven/bk/b26395-autocommit-xa/5.0-rpl/mysql-test/t/rpl_transaction-slave.opt mysql-test/r/mix_innodb_myisam_binlog.result: Updated result file mysql-test/r/multi_update.result: Updated result file mysql-test/r/rpl_transaction.result: New result file for new test case. mysql-test/r/sp_trans_log.result: Updated result file mysql-test/r/variables-big.result: Updated result file mysql-test/t/rpl_transaction.test: New test case. sql/log.cc: - Always write BEGIN and COMMIT around statements, even in autocommit mode. - Added comments for binlog_commit and binlog_rollback. sql/log_event.cc: Added debug trigger to avoid writing xid events to the binlog.
95 lines
1.9 KiB
Text
95 lines
1.9 KiB
Text
stop slave;
|
|
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;
|
|
CREATE TABLE tmyisam (a int) ENGINE = MYISAM;
|
|
CREATE TABLE tinnodb (a int) ENGINE = INNODB;
|
|
SHOW CREATE TABLE tmyisam;
|
|
Table Create Table
|
|
tmyisam CREATE TABLE `tmyisam` (
|
|
`a` int(11) default NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
SHOW CREATE TABLE tinnodb;
|
|
Table Create Table
|
|
tinnodb CREATE TABLE `tinnodb` (
|
|
`a` int(11) default NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
|
==== Test 1: Non-XA Engines ====
|
|
--- on master ---
|
|
SET AUTOCOMMIT = 1;
|
|
INSERT INTO tmyisam VALUES (1);
|
|
BEGIN;
|
|
INSERT INTO tmyisam VALUES (2);
|
|
INSERT INTO tmyisam VALUES (3);
|
|
COMMIT;
|
|
BEGIN;
|
|
INSERT INTO tmyisam VALUES (5);
|
|
INSERT INTO tmyisam VALUES (6);
|
|
ROLLBACK;
|
|
Warnings:
|
|
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
|
SELECT * FROM tmyisam ORDER BY a;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
5
|
|
6
|
|
--- on slave ---
|
|
SELECT * FROM tmyisam ORDER BY a;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
5
|
|
6
|
|
==== Test 2: Master crash before writing XID event on XA engine ====
|
|
--- on master ---
|
|
INSERT INTO tinnodb VALUES (1);
|
|
SELECT * FROM tinnodb ORDER BY a;
|
|
a
|
|
1
|
|
--- on slave ---
|
|
STOP SLAVE;
|
|
SHOW SLAVE STATUS;
|
|
Slave_IO_State
|
|
Master_Host 127.0.0.1
|
|
Master_User root
|
|
Master_Port #
|
|
Connect_Retry 1
|
|
Master_Log_File master-bin.000001
|
|
Read_Master_Log_Pos #
|
|
Relay_Log_File #
|
|
Relay_Log_Pos #
|
|
Relay_Master_Log_File master-bin.000001
|
|
Slave_IO_Running No
|
|
Slave_SQL_Running No
|
|
Replicate_Do_DB
|
|
Replicate_Ignore_DB
|
|
Replicate_Do_Table
|
|
Replicate_Ignore_Table #
|
|
Replicate_Wild_Do_Table
|
|
Replicate_Wild_Ignore_Table
|
|
Last_Errno 0
|
|
Last_Error
|
|
Skip_Counter 0
|
|
Exec_Master_Log_Pos #
|
|
Relay_Log_Space #
|
|
Until_Condition None
|
|
Until_Log_File
|
|
Until_Log_Pos 0
|
|
Master_SSL_Allowed No
|
|
Master_SSL_CA_File
|
|
Master_SSL_CA_Path
|
|
Master_SSL_Cert
|
|
Master_SSL_Cipher
|
|
Master_SSL_Key
|
|
Seconds_Behind_Master #
|
|
SELECT * FROM tinnodb ORDER BY a;
|
|
a
|
|
DROP TABLE tmyisam;
|
|
DROP TABLE tinnodb;
|
|
DROP TABLE tmyisam;
|
|
DROP TABLE tinnodb;
|