mirror of
https://github.com/MariaDB/server.git
synced 2025-11-21 06:21:35 +03:00
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.
24 lines
745 B
Plaintext
24 lines
745 B
Plaintext
CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM|
|
|
CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB|
|
|
insert into t2 values (1,1)|
|
|
create function bug23333()
|
|
RETURNS int(11)
|
|
DETERMINISTIC
|
|
begin
|
|
insert into t1 values (null);
|
|
select count(*) from t1 into @a;
|
|
return @a;
|
|
end|
|
|
reset master|
|
|
insert into t2 values (bug23333(),1)|
|
|
ERROR 23000: Duplicate entry '1' for key 1
|
|
show binlog events from 98 /* with fixes for #23333 will show there are 2 queries */|
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # #
|
|
master-bin.000001 # Query 1 # #
|
|
master-bin.000001 # Query 1 # #
|
|
select count(*),@a from t1 /* must be 1,1 */|
|
|
count(*) @a
|
|
1 1
|
|
drop table t1, t2|
|