summaryrefslogtreecommitdiff
path: root/mysql-test/t/rpl000009.test
diff options
context:
space:
mode:
authorunknown <monty@narttu.mysql.fi>2003-10-07 15:42:26 +0300
committerunknown <monty@narttu.mysql.fi>2003-10-07 15:42:26 +0300
commitf16887c59c7e896c6504008f6cbea337a5cb3fff (patch)
treed89c080ef636608e316f1166b1628cd1d902deec /mysql-test/t/rpl000009.test
parentdf02cd390d461b50ab5bdf3492aae1071db7da05 (diff)
parentbc4a57f01ace40255de2f8d7307254fd1d1d5bfa (diff)
downloadmariadb-git-f16887c59c7e896c6504008f6cbea337a5cb3fff.tar.gz
Merge with 4.0.16
BitKeeper/etc/ignore: auto-union BitKeeper/etc/logging_ok: auto-union BitKeeper/deleted/.del-mysqldump.result: Delete: mysql-test/r/mysqldump.result BitKeeper/deleted/.del-mysqldump.test: Delete: mysql-test/t/mysqldump.test BitKeeper/deleted/.del-compile-netware-max: Delete: netware/BUILD/compile-netware-max BitKeeper/deleted/.del-compile-netware-max-debug: Delete: netware/BUILD/compile-netware-max-debug BitKeeper/deleted/.del-compile-netware-src: Delete: netware/BUILD/compile-netware-src BitKeeper/deleted/.del-knetware.imp: Delete: netware/BUILD/knetware.imp BUILD/compile-pentium-valgrind-max: Auto merged BitKeeper/deleted/.del-mini_client.cc~8677895ec8169183: Auto merged BitKeeper/deleted/.del-mysql_fix_privilege_tables.sql: Auto merged BitKeeper/deleted/.del-openssl.imp: Delete: netware/BUILD/openssl.imp acinclude.m4: Auto merged SSL/cacert.pem: Auto merged SSL/client-cert.pem: Auto merged SSL/server-cert.pem: Auto merged client/mysqlbinlog.cc: Auto merged extra/resolveip.c: Auto merged heap/hp_test2.c: Auto merged include/my_global.h: Auto merged innobase/row/row0mysql.c: Auto merged innobase/row/row0sel.c: Auto merged libmysql/libmysql.def: Auto merged libmysqld/examples/Makefile.am: Auto merged myisam/mi_check.c: Auto merged myisam/mi_test2.c: Auto merged myisam/myisamdef.h: Auto merged mysql-test/r/fulltext_multi.result: Auto merged mysql-test/r/fulltext_order_by.result: Auto merged mysql-test/r/select.result: Auto merged mysql-test/r/user_var.result: Auto merged mysql-test/std_data/rpl_loaddata2.dat: Auto merged mysql-test/t/rpl_loaddata.test: Auto merged mysql-test/t/select.test: Auto merged mysql-test/t/user_var.test: Auto merged mysys/mf_dirname.c: Auto merged scripts/make_win_src_distribution.sh: Auto merged sql/des_key_file.cc: Auto merged sql/log.cc: Auto merged sql/mysqld.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/slave.h: Auto merged sql-bench/crash-me.sh: Auto merged sql-bench/server-cfg.sh: Auto merged sql-bench/test-insert.sh: Auto merged sql-bench/test-transactions.sh: Auto merged sql/sql_base.cc: Auto merged sql/sql_load.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged support-files/mysql.server.sh: Auto merged client/mysqltest.c: Merge with 4.0.16 Changed version number to '2.0' to avoid confusion with version numbering in 3.23 mysql-test/r/distinct.result: Updated results for merge mysql-test/r/insert.result: Updated results for merge mysql-test/r/insert_select.result: Updated results for merge mysql-test/r/join_outer.result: Updated results for merge mysql-test/r/mix_innodb_myisam_binlog.result: Updated results for merge mysql-test/r/order_by.result: Updated results for merge mysql-test/r/rpl000009.result: Updated results for merge mysql-test/r/rpl_loaddata.result: Updated results for merge mysql-test/r/rpl_log.result: Updated results for merge mysql-test/r/select_safe.result: Updated results for merge scripts/mysql_install_db.sh: Change -eq to = BitKeeper/deleted/.del-ins000001.test~2428ee5c9b1bc483: dummy
Diffstat (limited to 'mysql-test/t/rpl000009.test')
-rw-r--r--mysql-test/t/rpl000009.test57
1 files changed, 55 insertions, 2 deletions
diff --git a/mysql-test/t/rpl000009.test b/mysql-test/t/rpl000009.test
index ffec20c793e..4db62540e7b 100644
--- a/mysql-test/t/rpl000009.test
+++ b/mysql-test/t/rpl000009.test
@@ -60,16 +60,45 @@ sync_with_master;
# This should show that the slave is empty at this point
show databases;
+# Create foo and foo2 on slave; we expect that LOAD DATA FROM MASTER will
+# neither touch database foo nor foo2.
+create database foo;
+create table foo.t1(n int, s char(20));
+insert into foo.t1 values (1, 'original foo.t1');
+create table foo.t3(n int, s char(20));
+insert into foo.t3 values (1, 'original foo.t3');
+create database foo2;
+create table foo2.t1(n int, s char(20));
+insert into foo2.t1 values (1, 'original foo2.t1');
+# Create bar, and bar.t1, to check that it gets replaced,
+# and bar.t3 to check that it is not touched (there is no bar.t3 on master)
+create database bar;
+create table bar.t1(n int, s char(20));
+insert into bar.t1 values (1, 'original bar.t1');
+create table bar.t3(n int, s char(20));
+insert into bar.t3 values (1, 'original bar.t3');
+
load data from master;
# Now let's check if we have the right tables and the right data in them
show databases;
use mysqltest2;
-show tables;
+# LOAD DATA FROM MASTER uses only replicate_*_db rules to decide which databases
+# have to be copied. So it thinks "foo" has to be copied. Before 4.0.16 it would
+# first drop "foo", then create "foo". This "drop" is a bug; in that case t3
+# would disappear.
+# So here the effect of this bug (BUG#1248) would be to leave an empty "foo" on
+# the slave.
+show tables; # should be t1 & t3
+select * from t1; # should be slave's original
+use foo2;
+show tables; # should be t1
+select * from t1; # should be slave's original
use mysqltest;
-show tables;
+show tables; # should contain master's copied t1&t2, slave's original t3
select * from mysqltest.t1;
select * from mysqltest.t2;
+select * from mysqltest.t3;
# Now let's see if replication works
connection master;
@@ -79,6 +108,28 @@ connection slave;
sync_with_master;
select * from mysqltest.t1;
+# Check that LOAD DATA FROM MASTER reports the error if it can't drop a
+# table to be overwritten.
+# DISABLED FOR NOW AS chmod IS NOT PORTABLE ON NON-UNIX
+# insert into bar.t1 values(10, 'should be there');
+# flush tables;
+# system chmod 500 var/slave-data/bar/;
+# --error 6
+# load data from master; # should fail (errno 13)
+# system chmod 700 var/slave-data/bar/;
+# select * from bar.t1; # should contain the row (10, ...)
+
+
+# Check that LOAD TABLE FROM MASTER fails if the table exists on slave
+--error 1050
+load table bar.t1 from master;
+drop table bar.t1;
+load table bar.t1 from master;
+
+# as LOAD DATA FROM MASTER failed it did not restart slave threads
+# DISABLED FOR NOW
+# start slave;
+
# Now time for cleanup
connection master;
drop database mysqltest;
@@ -86,3 +137,5 @@ drop database mysqltest2;
save_master_pos;
connection slave;
sync_with_master;
+drop database mysqltest;
+drop database mysqltest2;