mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
This commit is contained in:
180
mysql-test/r/mix_innodb_myisam_binlog.result
Normal file
180
mysql-test/r/mix_innodb_myisam_binlog.result
Normal file
@ -0,0 +1,180 @@
|
||||
drop table if exists ti, tm;
|
||||
create table ti (a int) type=innodb;
|
||||
create table tm (a int) type=myisam;
|
||||
reset master;
|
||||
begin;
|
||||
insert into ti values(1);
|
||||
insert into tm select * from ti;
|
||||
commit;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(1)
|
||||
master-bin.001 178 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 244 Query 1 244 use test; COMMIT
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
begin;
|
||||
insert into ti values(2);
|
||||
insert into tm select * from ti;
|
||||
rollback;
|
||||
Warning: Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(2)
|
||||
master-bin.001 178 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 244 Query 1 244 use test; ROLLBACK
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
begin;
|
||||
insert into ti values(3);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(4);
|
||||
insert into tm select * from ti;
|
||||
rollback to savepoint my_savepoint;
|
||||
Warning: Some non-transactional changed tables couldn't be rolled back
|
||||
commit;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(3)
|
||||
master-bin.001 178 Query 1 79 use test; savepoint my_savepoint
|
||||
master-bin.001 235 Query 1 79 use test; insert into ti values(4)
|
||||
master-bin.001 294 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 360 Query 1 79 use test; rollback to savepoint my_savepoint
|
||||
master-bin.001 429 Query 1 429 use test; COMMIT
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
begin;
|
||||
insert into ti values(5);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(6);
|
||||
insert into tm select * from ti;
|
||||
rollback to savepoint my_savepoint;
|
||||
Warning: Some non-transactional changed tables couldn't be rolled back
|
||||
insert into ti values(7);
|
||||
commit;
|
||||
select a from ti order by a;
|
||||
a
|
||||
5
|
||||
7
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(5)
|
||||
master-bin.001 178 Query 1 79 use test; savepoint my_savepoint
|
||||
master-bin.001 235 Query 1 79 use test; insert into ti values(6)
|
||||
master-bin.001 294 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 360 Query 1 79 use test; rollback to savepoint my_savepoint
|
||||
master-bin.001 429 Query 1 79 use test; insert into ti values(7)
|
||||
master-bin.001 488 Query 1 488 use test; COMMIT
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
begin;
|
||||
insert into ti values(8);
|
||||
insert into tm select * from ti;
|
||||
select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(8)
|
||||
master-bin.001 178 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 244 Query 1 244 use test; ROLLBACK
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
insert into ti values(9);
|
||||
insert into tm select * from ti;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; insert into ti values(9)
|
||||
master-bin.001 138 Query 1 138 use test; insert into tm select * from ti
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
insert into ti values(10);
|
||||
begin;
|
||||
insert into tm select * from ti;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; insert into ti values(10)
|
||||
master-bin.001 139 Query 1 139 use test; insert into tm select * from ti
|
||||
insert into ti values(11);
|
||||
commit;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; insert into ti values(10)
|
||||
master-bin.001 139 Query 1 139 use test; insert into tm select * from ti
|
||||
master-bin.001 205 Query 1 205 use test; BEGIN
|
||||
master-bin.001 245 Query 1 205 use test; insert into ti values(11)
|
||||
master-bin.001 305 Query 1 305 use test; COMMIT
|
||||
alter table tm type=INNODB;
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
begin;
|
||||
insert into ti values(12);
|
||||
insert into tm select * from ti;
|
||||
commit;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(12)
|
||||
master-bin.001 179 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 245 Query 1 245 use test; COMMIT
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
begin;
|
||||
insert into ti values(13);
|
||||
insert into tm select * from ti;
|
||||
rollback;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
begin;
|
||||
insert into ti values(14);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(15);
|
||||
insert into tm select * from ti;
|
||||
rollback to savepoint my_savepoint;
|
||||
commit;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(14)
|
||||
master-bin.001 179 Query 1 179 use test; COMMIT
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
begin;
|
||||
insert into ti values(16);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(17);
|
||||
insert into tm select * from ti;
|
||||
rollback to savepoint my_savepoint;
|
||||
insert into ti values(18);
|
||||
commit;
|
||||
select a from ti order by a;
|
||||
a
|
||||
16
|
||||
18
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(16)
|
||||
master-bin.001 179 Query 1 79 use test; insert into ti values(18)
|
||||
master-bin.001 239 Query 1 239 use test; COMMIT
|
||||
drop table ti,tm;
|
@ -20,9 +20,9 @@ day id category name
|
||||
2003-02-22 2461 b a a a @ % ' " a
|
||||
2003-03-22 2161 c asdf
|
||||
2003-04-22 2416 a bbbbb
|
||||
show binlog events from 898;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
slave-bin.001 898 Query 1 898 use test; insert into t3 select * from t2
|
||||
show master status;
|
||||
File Position Binlog_do_db Binlog_ignore_db
|
||||
slave-bin.001 964
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
|
175
mysql-test/t/mix_innodb_myisam_binlog.test
Normal file
175
mysql-test/t/mix_innodb_myisam_binlog.test
Normal file
@ -0,0 +1,175 @@
|
||||
# Check that binlog is ok when a transaction mixes updates to InnoDB and
|
||||
# MyISAM. It would be nice to make this a replication test, but in 4.0 the slave
|
||||
# is always with --skip-innodb in the testsuite. I (Guilhem) however did some
|
||||
# tests manually on a slave; tables are replicated fine and Exec_master_log_pos
|
||||
# advances as expected.
|
||||
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
|
||||
drop table if exists ti, tm;
|
||||
create table ti (a int) type=innodb;
|
||||
create table tm (a int) type=myisam;
|
||||
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(1);
|
||||
insert into tm select * from ti;
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(2);
|
||||
insert into tm select * from ti;
|
||||
# should say some changes to non-transactional tables couldn't be rolled back
|
||||
--error 1196
|
||||
rollback;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(3);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(4);
|
||||
insert into tm select * from ti;
|
||||
--error 1196
|
||||
rollback to savepoint my_savepoint;
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(5);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(6);
|
||||
insert into tm select * from ti;
|
||||
--error 1196
|
||||
rollback to savepoint my_savepoint;
|
||||
insert into ti values(7);
|
||||
commit;
|
||||
select a from ti order by a; # check that savepoints work :)
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
# and when ROLLBACK is not explicit?
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
select get_lock("a",10);
|
||||
begin;
|
||||
insert into ti values(8);
|
||||
insert into tm select * from ti;
|
||||
disconnect con1;
|
||||
|
||||
connection con2;
|
||||
# We want to SHOW BINLOG EVENTS, to know what was logged. But there is no
|
||||
# guarantee that logging of the terminated con1 has been done yet (it may not
|
||||
# even be started, so con1 may have not even attempted to lock the binlog yet;
|
||||
# so SHOW BINLOG EVENTS may come before con1 does the loggin. To be sure that
|
||||
# logging has been done, we use a user lock.
|
||||
select get_lock("a",10);
|
||||
show binlog events from 79;
|
||||
|
||||
# and when not in a transaction?
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
insert into ti values(9);
|
||||
insert into tm select * from ti;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
# Check that when the query updating the MyISAM table is the first in the
|
||||
# transaction, we log it immediately.
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
insert into ti values(10); # first make ti non-empty
|
||||
begin;
|
||||
insert into tm select * from ti;
|
||||
show binlog events from 79;
|
||||
insert into ti values(11);
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
|
||||
# Check that things work like before this BEGIN/ROLLBACK code was added, when tm
|
||||
# is INNODB
|
||||
|
||||
alter table tm type=INNODB;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(12);
|
||||
insert into tm select * from ti;
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(13);
|
||||
insert into tm select * from ti;
|
||||
rollback;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(14);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(15);
|
||||
insert into tm select * from ti;
|
||||
rollback to savepoint my_savepoint;
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(16);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(17);
|
||||
insert into tm select * from ti;
|
||||
rollback to savepoint my_savepoint;
|
||||
insert into ti values(18);
|
||||
commit;
|
||||
select a from ti order by a; # check that savepoints work :)
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
drop table ti,tm;
|
@ -32,15 +32,13 @@ sync_with_master;
|
||||
select * from t1;
|
||||
select * from t3;
|
||||
# We want to be sure that LOAD DATA is in the slave's binlog.
|
||||
# But we can't simply read this binlog, because the file_id is uncertain (would
|
||||
# cause test failures). So instead, we test if the binlog looks long enough to
|
||||
# But we can't simply read this binlog, because as the slave has not been
|
||||
# restarted for this test, the file_id is uncertain (would cause test
|
||||
# failures). So instead, we test if the binlog looks long enough to
|
||||
# contain LOAD DATA. That is, I (Guilhem) have done SHOW BINLOG EVENTS on my
|
||||
# machine, saw that the last event is 'create table t3' and is at position 898
|
||||
# when things go fine. If LOAD DATA was not logged, the binlog would be shorter
|
||||
# than 898 bytes and there would be an error in SHOW BINLOG EVENTS. Of course,
|
||||
# if someone changes the content of '../../std_data/rpl_loaddata2.dat', 898 will
|
||||
# have to be changed too.
|
||||
show binlog events from 898;
|
||||
# machine, saw that the binlog is of size 964 when things go fine.
|
||||
# If LOAD DATA was not logged, the binlog would be shorter.
|
||||
show master status;
|
||||
|
||||
connection master;
|
||||
|
||||
|
Reference in New Issue
Block a user