1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-04 06:05:05 +03:00
mariadb/mysql-test/t/rpl_loaddata.test
unknown 313ea47da4 Add new option "check-testcases" to mysql-test-run.pl
Cleanup the sideeffects from most of the  testcases with sideeffects.


mysql-test/mysql-test-run.pl:
  Add option "check-testcases" to mysql-test-run.pl
  Will execute "include/check-testcase.test" once before each tescase and record the output into "var/tmp/check-testcase.result"
  After the teastcase it will run again and this time compare the output with previously recorded file.
mysql-test/r/analyze.result:
  Drop table t1 at end of test
mysql-test/r/create_select_tmp.result:
  Drop table t1 at end of test
mysql-test/r/ctype_cp932.result:
  Drop table t1 at end of test
mysql-test/r/ctype_recoding.result:
  Drop table t1 at end of test
mysql-test/r/grant2.result:
  Drop user mysqltest_2 and mysqltest_A@'%'
mysql-test/r/join_outer.result:
  Drop view v1 to cleanup
mysql-test/r/ps_1general.result:
  Drop table t1 at end of test
mysql-test/r/query_cache.result:
  Drop function "f1"
mysql-test/r/read_only.result:
  Reset the "read_only" flag
mysql-test/r/rpl000001.result:
  Remove user "blafasel2"
mysql-test/r/rpl000017.result:
  Remove user "replicate"
mysql-test/r/rpl_failed_optimize.result:
  Drop table t1 to cleanup
mysql-test/r/rpl_flush_tables.result:
  Drop tables t3, t4, t5
mysql-test/r/rpl_ignore_revoke.result:
  Delete user "user_foo"
mysql-test/r/rpl_insert_id.result:
  Drop table t1 to cleanup
mysql-test/r/rpl_loaddata.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_loaddata_rule_m.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_loaddata_rule_s.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_misc_functions.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_multi_update3.result:
  Drop tyable t1 and t2 to cleanup
mysql-test/r/rpl_replicate_do.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_skip_error.result:
  Drop tyable t1 to cleanup
mysql-test/r/rpl_slave_status.result:
  Drop tyable t1 to cleanup
mysql-test/r/sp-prelocking.result:
  Drop view v1 and tables t1, t2, t3 and t4 to cleanup
mysql-test/r/sp-security.result:
  Delete users to cleanup
  Delete remaining traces in tables_priv and procs_priv
mysql-test/r/subselect_innodb.result:
  Drop procedure p1 to cleanup
mysql-test/r/trigger-compat.result:
  Drop trigger wl2818_trg1 and wl2818_trg2.
  Drop table t1, t2
  Drop database mysqltest_db1
  And the users "mysqltest_dfn@localhost" and "mysqltest_inv@localhost"
mysql-test/r/type_bit.result:
  Drop tables t1 and t2 to cleanup
mysql-test/r/variables.result:
  Set GLOBAL max_join_size to 10 as it originally was in variables-master.opt
mysql-test/r/view_grant.result:
  Dop user "test@localhost" to cleanup
mysql-test/t/analyze.test:
  Drop table t1 to cleanup
mysql-test/t/create_select_tmp.test:
  Drop table t1 to cleanup
mysql-test/t/ctype_cp932.test:
  Drop table t1 to cleanup
mysql-test/t/ctype_recoding.test:
  Drop table t1 to cleanup
mysql-test/t/fulltext_var.test:
  Restore the original ft_boolean_syntax
mysql-test/t/grant2.test:
  Drop users "mysqltest_2" and "mysqltest_A@'%'" to cleanup
mysql-test/t/innodb_cache.test:
  Reset query_cache_size to original value
mysql-test/t/join_outer.test:
  Drop view v1 to cleanup
mysql-test/t/ps_1general.test:
  Drop table t1 to cleanup
mysql-test/t/query_cache.test:
  Drop function "f1" to cleanup
mysql-test/t/read_only.test:
  Reset the readonly flag
mysql-test/t/rpl000001.test:
  Delete user "blafasel2" to cleanup
mysql-test/t/rpl000017.test:
  Delete user "replicate" to cleanup
mysql-test/t/rpl_failed_optimize.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_flush_tables.test:
  Droip table t3, t4 and t5 to cleanup
mysql-test/t/rpl_ignore_revoke.test:
  Delet user "user_foo" to cleanup
mysql-test/t/rpl_insert_id.test:
  drop table t1 to cleanup
mysql-test/t/rpl_loaddata.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_loaddata_rule_m.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_loaddata_rule_s.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_misc_functions.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_multi_update3.test:
  Drop table t1 and t2 to cleanup
mysql-test/t/rpl_replicate_do.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_skip_error.test:
  Drop table t1 to cleanup
mysql-test/t/rpl_slave_status.test:
  Drop table t1 to cleanup
mysql-test/t/sp-prelocking.test:
  Drop table t1, t2 t3 and t4 to cleanup
  Drop view v1
mysql-test/t/sp-security.test:
  Delete  test users from mysql.user, mysql.db, mysql.procs_priv and mysql.tables_priv
  Drop table t1 to cleanup
mysql-test/t/subselect_innodb.test:
  Drop procedure p1 to cleanup
mysql-test/t/trigger-compat.test:
  Drop trigger wl2818_trg1 and wl2818_trg2 to cleanup
  Drop table t1, t2
  Drop users
  drop database mysqltest_db1
mysql-test/t/type_bit.test:
  drop table t1 and t2 to cleanup
mysql-test/t/variables-master.opt:
  Increase max_join_size to 100.
mysql-test/t/variables.test:
  Set max_join_size to 10, which was the original value in variables-master.opt
mysql-test/t/view_grant.test:
  Drop the user "test@localhost"
mysql-test/include/check-testcase.test:
  New BitKeeper file ``mysql-test/include/check-testcase.test''
2006-01-26 17:54:34 +01:00

155 lines
4.6 KiB
Plaintext

# See if replication of a "LOAD DATA in an autoincrement column"
# Honours autoincrement values
# i.e. if the master and slave have the same sequence
#
# check replication of load data for temporary tables with additional
# parameters
#
# check if duplicate entries trigger an error (they should unless IGNORE or
# REPLACE was used on the master) (bug 571).
#
# check if START SLAVE, RESET SLAVE, CHANGE MASTER reset Last_slave_error and
# Last_slave_errno in SHOW SLAVE STATUS (1st and 3rd commands did not: bug 986)
source include/master-slave.inc;
connection slave;
reset master;
connection master;
create table t1(a int not null auto_increment, b int, primary key(a) );
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
create temporary table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60));
load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' starting by '>' ignore 1 lines;
create table t3 (day date,id int(9),category enum('a','b','c'),name varchar(60));
insert into t3 select * from t2;
save_master_pos;
connection slave;
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 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. Since 5.0.3 we assume that binlog of 1292 is ok.
# If LOAD DATA was not logged, the binlog would be shorter.
show master status;
connection master;
drop table t1;
drop table t2;
drop table t3;
create table t1(a int, b int, unique(b));
save_master_pos;
connection slave;
sync_with_master;
# See if slave stops when there's a duplicate entry for key error in LOAD DATA
insert into t1 values(1,10);
connection master;
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
save_master_pos;
connection slave;
# The SQL slave thread should be stopped now.
wait_for_slave_to_stop;
# Skip the bad event and see if error is cleared in SHOW SLAVE STATUS by START
# SLAVE, even though we are not executing any event (as sql_slave_skip_counter
# takes us directly to the end of the relay log).
set global sql_slave_skip_counter=1;
start slave;
sync_with_master;
--replace_result $MASTER_MYPORT MASTER_PORT
--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
# Trigger error again to test CHANGE MASTER
connection master;
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
save_master_pos;
connection slave;
# The SQL slave thread should be stopped now.
# Exec_Master_Log_Pos should point to the start of Execute event
# for last load data.
wait_for_slave_to_stop;
# CHANGE MASTER and see if error is cleared in SHOW SLAVE STATUS.
stop slave;
change master to master_user='test';
change master to master_user='root';
--replace_result $MASTER_MYPORT MASTER_PORT
--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
# Trigger error again to test RESET SLAVE
set global sql_slave_skip_counter=1;
start slave;
sync_with_master;
connection master;
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
save_master_pos;
connection slave;
# The SQL slave thread should be stopped now.
wait_for_slave_to_stop;
# RESET SLAVE and see if error is cleared in SHOW SLAVE STATUS.
stop slave;
reset slave;
--replace_result $MASTER_MYPORT MASTER_PORT
--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
# Finally, see if logging is done ok on master for a failing LOAD DATA INFILE
connection master;
reset master;
create table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60),
unique(day)) engine=MyISAM; # no transactions
--error 1062
load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields
terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
'\n##\n' starting by '>' ignore 1 lines;
select * from t2;
save_master_pos;
connection slave;
start slave;
sync_with_master;
select * from t2;
# verify that if no error on slave, this is an error
alter table t2 drop key day;
connection master;
delete from t2;
--error 1062
load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields
terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
'\n##\n' starting by '>' ignore 1 lines;
connection slave;
wait_for_slave_to_stop;
drop table t2;
connection master;
drop table t2;
drop table t1;
sync_with_master;
# End of 4.1 tests