summaryrefslogtreecommitdiff
path: root/mysql-test/t/rpl_delete_all.test
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2004-06-09 16:07:01 +0200
committerunknown <guilhem@mysql.com>2004-06-09 16:07:01 +0200
commit43489240ad0293721c58a2b872f745b62027ca07 (patch)
tree1003fd9ceb90dc1ddeb6db7ff4e98d8da2cc51c4 /mysql-test/t/rpl_delete_all.test
parentee401045be84b32ef930092ede1974117cde4b85 (diff)
downloadmariadb-git-43489240ad0293721c58a2b872f745b62027ca07.tar.gz
Making DROP TABLE IF EXISTS, DROP DATABASE IF EXISTS, DELETE FROM, UPDATE be logged to
binlog even if they changed nothing, and a test for this. This is useful when users use these commands to clean up their master and slave by issuing one command on master (assume master and slave have slightly different data for some reason and you want to clean up both). Note that I have not changed multi-table DELETE and multi-table UPDATE because their error-reporting mechanism is more complicated. mysql-test/r/mysqlbinlog.result: result update mysql-test/r/rpl_charset.result: result update mysql-test/r/rpl_flush_log_loop.result: result update mysql-test/r/rpl_replicate_do.result: result update mysql-test/r/rpl_temporary.result: result update mysql-test/t/mysqlbinlog.test: moving SET TIMESTAMP up as DROP shows up in binlog sql/sql_db.cc: DROP DATABASE IF EXISTS is now always logged to binlog, even if db did not exist sql/sql_delete.cc: DELETE FROM t is now always logged to binlog even if no rows deleted (but in this case, only if really no error). sql/sql_table.cc: DROP TABLE IF EXISTS is now always logged to binlog even if table did not exist sql/sql_update.cc: UPDATE is now always logged to binlog even if no rows updated (but in this case, only if really no error).
Diffstat (limited to 'mysql-test/t/rpl_delete_all.test')
-rw-r--r--mysql-test/t/rpl_delete_all.test40
1 files changed, 40 insertions, 0 deletions
diff --git a/mysql-test/t/rpl_delete_all.test b/mysql-test/t/rpl_delete_all.test
new file mode 100644
index 00000000000..cb6da3674da
--- /dev/null
+++ b/mysql-test/t/rpl_delete_all.test
@@ -0,0 +1,40 @@
+source include/master-slave.inc;
+
+connection slave;
+create database test1;
+connection master;
+drop database if exists test1;
+sync_slave_with_master;
+# can't read dir
+error 12;
+show tables from test1;
+
+connection slave;
+create table t1 (a int);
+connection master;
+drop table if exists t1;
+sync_slave_with_master;
+# table does not exist
+error 1146;
+select * from t1;
+
+connection master;
+create table t1 (a int);
+sync_slave_with_master;
+insert into t1 values(1);
+connection master;
+delete from t1;
+sync_slave_with_master;
+select * from t1;
+
+insert into t1 values(1);
+connection master;
+insert into t1 values(2);
+update t1 set a=2;
+sync_slave_with_master;
+select * from t1;
+
+# cleanup
+connection master;
+drop table t1;
+sync_slave_with_master;