mariadb/mysql-test/t/rpl000016.test
unknown 08fc358542 fixed alias drop bug in binlog
fixed skip counter to do the RightThing (TM) when the user messes up.
Still do RightThing when he gets it right.


mysql-test/r/rpl000016.result:
  updated test result
mysql-test/t/rpl000013.test:
  test alias bug
mysql-test/t/rpl000016.test:
  test for proper skip when the user messes up
sql/slave.cc:
  proper skip even when the user goofs up
sql/sql_base.cc:
  drop real name, not last used alias in the log
2001-11-27 18:20:24 -07:00

104 lines
2.4 KiB
Text

connect (master,localhost,root,,test,0,mysql-master.sock);
connect (slave,localhost,root,,test,0,mysql-slave.sock);
system cat /dev/null > var/slave-data/master.info;
system chmod 000 var/slave-data/master.info;
connection slave;
!slave start;
system chmod 600 var/slave-data/master.info;
!slave start;
!eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT,
master_user='root';
reset slave;
eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT,
master_user='root';
connection master;
reset master;
connection slave;
slave start;
connection master;
drop table if exists t1;
create table t1 (s text);
insert into t1 values('Could not break slave'),('Tried hard');
save_master_pos;
connection slave;
sync_with_master;
--replace_result 9306 9999 3334 9999 3335 9999
show slave status;
select * from t1;
connection master;
flush logs;
drop table if exists t2;
create table t2(m int not null auto_increment primary key);
insert into t2 values (34),(67),(123);
save_master_pos;
flush logs;
show master logs;
#now lets make some duplicate key mess and see if we can recover from it
#first insert a value on the slave
connection slave;
sync_with_master;
insert into t2 values(1234);
#same value on the master
connection master;
save_master_pos;
set insert_id=1234;
insert into t2 values(NULL);
connection slave;
sync_with_master;
#the slave may have already stopped, so we ignore the error
!slave stop;
#restart slave skipping one event
set sql_slave_skip_counter=1;
slave start;
connection master;
save_master_pos;
#let slave catch up
connection slave;
sync_with_master;
connection master;
purge master logs to 'master-bin.003';
show master logs;
insert into t2 values (65);
save_master_pos;
connection slave;
sync_with_master;
--replace_result 9306 9999 3334 9999 3335 9999
show slave status;
select * from t2;
connection master;
let $1=100;
drop table if exists t3;
create table t3 (n int);
while ($1)
{
#eval means expand $ expressions
eval insert into t3 values($1 + 4);
dec $1;
}
show master logs;
show master status;
save_master_pos;
connection slave;
slave stop;
slave start;
sync_with_master;
--replace_result 9306 9999 3334 9999 3335 9999
show slave status;
# because of concurrent insert, the table may not be up to date
# if we do not lock
lock tables t3 read;
select count(*) from t3 where n >= 4;
unlock tables;
#clean up
connection master;
drop table if exists t1,t2,t3;
save_master_pos;
connection slave;
sync_with_master;