From 54bf811adaf9c6a82a1cc9509874b4b59da58144 Mon Sep 17 00:00:00 2001 From: "lars@mysql.com" <> Date: Fri, 27 May 2005 04:17:33 +0200 Subject: [PATCH 1/6] BUG#6883: Added implicit commit for CREATE TABLE, TRUNCATE TABLE and DROP/CREATE DATABASE --- mysql-test/include/rpl_stmt_seq.inc | 155 +++ mysql-test/r/innodb.result | 7 +- mysql-test/r/innodb_cache.result | 2 +- mysql-test/r/rpl_ddl.result | 1394 +++++++++++++++++++++++++++ mysql-test/t/innodb.test | 1 - mysql-test/t/rpl_ddl.test | 268 +++++ sql/sql_parse.cc | 20 + 7 files changed, 1841 insertions(+), 6 deletions(-) create mode 100644 mysql-test/include/rpl_stmt_seq.inc create mode 100644 mysql-test/r/rpl_ddl.result create mode 100644 mysql-test/t/rpl_ddl.test diff --git a/mysql-test/include/rpl_stmt_seq.inc b/mysql-test/include/rpl_stmt_seq.inc new file mode 100644 index 00000000000..cd05cd5c06c --- /dev/null +++ b/mysql-test/include/rpl_stmt_seq.inc @@ -0,0 +1,155 @@ +# include/rpl_stmt_seq.inc +# +# Please be very careful when editing this routine, because the handling of +# the $variables is extreme sensitive. +# + +######## The typical test sequence +# 1. INSERT without commit +# check table content of master and slave +# 2. EXECUTE the statement +# check table content of master and slave +# 3. ROLLBACK +# check table content of master and slave +# 4. flush the logs + +let $VERSION=`select version()`; + +--disable_query_log +# SELECT '######## new test sequence ########' as ""; +eval SELECT CONCAT('######## ','$my_stmt',' ########') as ""; +--enable_query_log + + +### Predict the number of the current log +# Disable the logging of the log number computation. +--disable_query_log +# $_log_num_n should contain the number of the current binlog in numeric style. +# If this routine is called for the first time, $_log_num will not initialized +# and contain the value '' instead of '1'. So we will correct it here. +# +eval set @aux= IF('$_log_num_n' = '', '1', '$_log_num_n'); +let $_log_num_n= `SELECT @aux`; +eval set @aux= LPAD('$_log_num_n',6,'0'); +# SELECT @aux AS "@aux is"; +# +# $_log_num_s should contain the number of the current binlog in string style. +let $_log_num_s= `select @aux`; +# eval SELECT '$log_num' ; +--enable_query_log + +# INSERT + command to be tested + ROLLBACK +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +# Maybe it would be smarter to use a table with autoincrement column. +let $MAX= `SELECT MAX(f1) FROM t1` ; +eval INSERT INTO t1 SET f1= $MAX + 1; +# results before DDL(to be tested) +SELECT MAX(f1) FROM t1; +--replace_result $VERSION VERSION +eval SHOW BINLOG EVENTS IN 'master-bin.$_log_num_s'; +sync_slave_with_master; + +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +# results before DDL(to be tested) +SELECT MAX(f1) FROM t1; +--replace_result $VERSION VERSION +eval SHOW BINLOG EVENTS IN 'slave-bin.$_log_num_s'; + +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +eval $my_stmt; +# Devaluate $my_stmt, to detect script bugs +let $my_stmt= ERROR: YOU FORGOT TO FILL IN THE STATEMENT; +# results after DDL(to be tested) +SELECT MAX(f1) FROM t1; +--replace_result $VERSION VERSION +eval SHOW BINLOG EVENTS IN 'master-bin.$_log_num_s'; +sync_slave_with_master; + +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +# results after DDL(to be tested) +SELECT MAX(f1) FROM t1; +--replace_result $VERSION VERSION +eval SHOW BINLOG EVENTS IN 'slave-bin.$_log_num_s'; + +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +ROLLBACK; +# results after final ROLLBACK +SELECT MAX(f1) FROM t1; +# Try to detect if the DDL command caused that the INSERT is committed +# $MAX holds the highest/last value just before the insert of MAX + 1 +--disable_query_log +eval SELECT CONCAT('TEST-INFO: MASTER: The INSERT is ', + IF(MAX(f1) = $MAX + 1, 'committed', 'not committed')) AS "" +FROM d1.t1; +--enable_query_log +--replace_result $VERSION VERSION +eval SHOW BINLOG EVENTS IN 'master-bin.$_log_num_s'; +sync_slave_with_master; + +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +# results after final ROLLBACK +SELECT MAX(f1) FROM t1; +--disable_query_log +eval SELECT CONCAT('TEST-INFO: SLAVE: The INSERT is ', + IF(MAX(f1) = $MAX + 1, 'committed', 'not committed')) AS "" +FROM d1.t1; +--enable_query_log +--replace_result $VERSION VERSION +eval SHOW BINLOG EVENTS IN 'slave-bin.$_log_num_s'; + +#let $manipulate= 0; +let $manipulate= 1; +while ($manipulate) +{ +#### Manipulate the binary logs, +# so that the output of SHOW BINLOG EVENTS IN +# contains only commands of the current test sequence. +# - flush the master and the slave log +# ---> both start to write into new logs with incremented number +# - increment $_log_num_n +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +flush logs; +# sleep 1; +# eval SHOW BINLOG EVENTS IN 'master-bin.$_log_num_s'; +sync_slave_with_master; + +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +# the final content of the binary log +flush logs; +# The next sleep is urgent needed. +# Without this sleep the slaves crashes often, when the SHOW BINLOG +# is executed. :-( +# sleep 1; +# eval SHOW BINLOG EVENTS IN 'slave-bin.$_log_num_s'; +inc $_log_num_n; +let $manipulate= 0; +} + +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index 4c983014d4b..0d998a09da3 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -875,7 +875,6 @@ set autocommit=0; create table t1 (a int not null) engine= innodb; insert into t1 values(1),(2); truncate table t1; -ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction commit; truncate table t1; truncate table t1; @@ -1598,14 +1597,14 @@ t2 CREATE TABLE `t2` ( drop table t2, t1; show status like "binlog_cache_use"; Variable_name Value -Binlog_cache_use 24 +Binlog_cache_use 25 show status like "binlog_cache_disk_use"; Variable_name Value Binlog_cache_disk_use 0 create table t1 (a int) engine=innodb; show status like "binlog_cache_use"; Variable_name Value -Binlog_cache_use 25 +Binlog_cache_use 26 show status like "binlog_cache_disk_use"; Variable_name Value Binlog_cache_disk_use 1 @@ -1614,7 +1613,7 @@ delete from t1; commit; show status like "binlog_cache_use"; Variable_name Value -Binlog_cache_use 26 +Binlog_cache_use 27 show status like "binlog_cache_disk_use"; Variable_name Value Binlog_cache_disk_use 1 diff --git a/mysql-test/r/innodb_cache.result b/mysql-test/r/innodb_cache.result index ec43cbe10b2..5e8611655a2 100644 --- a/mysql-test/r/innodb_cache.result +++ b/mysql-test/r/innodb_cache.result @@ -24,7 +24,7 @@ a 3 show status like "Qcache_queries_in_cache"; Variable_name Value -Qcache_queries_in_cache 0 +Qcache_queries_in_cache 1 drop table t1; commit; create table t1 (a int not null) engine=innodb; diff --git a/mysql-test/r/rpl_ddl.result b/mysql-test/r/rpl_ddl.result new file mode 100644 index 00000000000..7e544a609e8 --- /dev/null +++ b/mysql-test/r/rpl_ddl.result @@ -0,0 +1,1394 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +SET AUTOCOMMIT = 1; +DROP DATABASE IF EXISTS d1; +DROP DATABASE IF EXISTS d2; +DROP DATABASE IF EXISTS d3; +CREATE DATABASE d1; +CREATE DATABASE d2; +CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB"; +INSERT INTO d1.t1 SET f1= 0; +CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE INDEX my_idx6 ON d1.t6(f1); +CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB"; +INSERT INTO d1.t7 SET f1= 0; +CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB"; +COMMIT; +SET AUTOCOMMIT = 0; +use d1; + +-------- switch to slave -------- +SET AUTOCOMMIT = 1; +use d1; + +-------- switch to master ------- + +######## COMMIT ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 0 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +1 +SHOW BINLOG EVENTS IN 'master-bin.000001'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3 +master-bin.000001 79 Query 1 79 DROP DATABASE IF EXISTS d1 +master-bin.000001 138 Query 1 138 DROP DATABASE IF EXISTS d2 +master-bin.000001 197 Query 1 197 DROP DATABASE IF EXISTS d3 +master-bin.000001 256 Query 1 256 CREATE DATABASE d1 +master-bin.000001 307 Query 1 307 CREATE DATABASE d2 +master-bin.000001 358 Query 1 358 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 440 Query 1 440 use `test`; INSERT INTO d1.t1 SET f1= 0 +master-bin.000001 502 Query 1 502 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 912 Query 1 912 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) +master-bin.000001 980 Query 1 980 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1062 Query 1 1062 use `test`; INSERT INTO d1.t7 SET f1= 0 +master-bin.000001 1124 Query 1 1124 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1371 Query 1 1371 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1454 Query 1 1454 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1537 Query 1 1537 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1620 Query 1 1620 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1703 Query 1 1703 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1786 Query 1 1786 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1869 Query 1 1869 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1952 Query 1 1952 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 2035 Query 1 2035 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +0 +SHOW BINLOG EVENTS IN 'slave-bin.000001'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000001 4 Start 2 4 Server ver: VERSION, Binlog ver: 3 +slave-bin.000001 79 Query 2 79 use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 +slave-bin.000001 161 Query 1 161 DROP DATABASE IF EXISTS d1 +slave-bin.000001 220 Query 1 220 DROP DATABASE IF EXISTS d2 +slave-bin.000001 279 Query 1 279 DROP DATABASE IF EXISTS d3 +slave-bin.000001 338 Query 1 338 CREATE DATABASE d1 +slave-bin.000001 389 Query 1 389 CREATE DATABASE d2 +slave-bin.000001 440 Query 1 440 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 522 Query 1 522 use `test`; INSERT INTO d1.t1 SET f1= 0 +slave-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 912 Query 1 912 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 994 Query 1 994 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) +slave-bin.000001 1062 Query 1 1062 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1144 Query 1 1144 use `test`; INSERT INTO d1.t7 SET f1= 0 +slave-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1370 Query 1 1370 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1453 Query 1 1453 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1536 Query 1 1536 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1619 Query 1 1619 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1702 Query 1 1702 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1785 Query 1 1785 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1868 Query 1 1868 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1951 Query 1 1951 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 2034 Query 1 2034 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 2117 Query 1 2117 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" + +-------- switch to master ------- +COMMIT; +SELECT MAX(f1) FROM t1; +MAX(f1) +1 +SHOW BINLOG EVENTS IN 'master-bin.000001'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3 +master-bin.000001 79 Query 1 79 DROP DATABASE IF EXISTS d1 +master-bin.000001 138 Query 1 138 DROP DATABASE IF EXISTS d2 +master-bin.000001 197 Query 1 197 DROP DATABASE IF EXISTS d3 +master-bin.000001 256 Query 1 256 CREATE DATABASE d1 +master-bin.000001 307 Query 1 307 CREATE DATABASE d2 +master-bin.000001 358 Query 1 358 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 440 Query 1 440 use `test`; INSERT INTO d1.t1 SET f1= 0 +master-bin.000001 502 Query 1 502 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 912 Query 1 912 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) +master-bin.000001 980 Query 1 980 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1062 Query 1 1062 use `test`; INSERT INTO d1.t7 SET f1= 0 +master-bin.000001 1124 Query 1 1124 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1371 Query 1 1371 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1454 Query 1 1454 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1537 Query 1 1537 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1620 Query 1 1620 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1703 Query 1 1703 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1786 Query 1 1786 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1869 Query 1 1869 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1952 Query 1 1952 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 2035 Query 1 2035 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 2118 Query 1 2118 use `d1`; BEGIN +master-bin.000001 2156 Query 1 2118 use `d1`; INSERT INTO t1 SET f1= 0 + 1 +master-bin.000001 2217 Query 1 2217 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +1 +SHOW BINLOG EVENTS IN 'slave-bin.000001'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000001 4 Start 2 4 Server ver: VERSION, Binlog ver: 3 +slave-bin.000001 79 Query 2 79 use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 +slave-bin.000001 161 Query 1 161 DROP DATABASE IF EXISTS d1 +slave-bin.000001 220 Query 1 220 DROP DATABASE IF EXISTS d2 +slave-bin.000001 279 Query 1 279 DROP DATABASE IF EXISTS d3 +slave-bin.000001 338 Query 1 338 CREATE DATABASE d1 +slave-bin.000001 389 Query 1 389 CREATE DATABASE d2 +slave-bin.000001 440 Query 1 440 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 522 Query 1 522 use `test`; INSERT INTO d1.t1 SET f1= 0 +slave-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 912 Query 1 912 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 994 Query 1 994 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) +slave-bin.000001 1062 Query 1 1062 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1144 Query 1 1144 use `test`; INSERT INTO d1.t7 SET f1= 0 +slave-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1370 Query 1 1370 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1453 Query 1 1453 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1536 Query 1 1536 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1619 Query 1 1619 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1702 Query 1 1702 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1785 Query 1 1785 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1868 Query 1 1868 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1951 Query 1 1951 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 2034 Query 1 2034 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 2117 Query 1 2117 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 2200 Query 1 2200 use `d1`; INSERT INTO t1 SET f1= 0 + 1 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +1 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000001'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3 +master-bin.000001 79 Query 1 79 DROP DATABASE IF EXISTS d1 +master-bin.000001 138 Query 1 138 DROP DATABASE IF EXISTS d2 +master-bin.000001 197 Query 1 197 DROP DATABASE IF EXISTS d3 +master-bin.000001 256 Query 1 256 CREATE DATABASE d1 +master-bin.000001 307 Query 1 307 CREATE DATABASE d2 +master-bin.000001 358 Query 1 358 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 440 Query 1 440 use `test`; INSERT INTO d1.t1 SET f1= 0 +master-bin.000001 502 Query 1 502 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 912 Query 1 912 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) +master-bin.000001 980 Query 1 980 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1062 Query 1 1062 use `test`; INSERT INTO d1.t7 SET f1= 0 +master-bin.000001 1124 Query 1 1124 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1371 Query 1 1371 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1454 Query 1 1454 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1537 Query 1 1537 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1620 Query 1 1620 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1703 Query 1 1703 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1786 Query 1 1786 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1869 Query 1 1869 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 1952 Query 1 1952 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 2035 Query 1 2035 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 2118 Query 1 2118 use `d1`; BEGIN +master-bin.000001 2156 Query 1 2118 use `d1`; INSERT INTO t1 SET f1= 0 + 1 +master-bin.000001 2217 Query 1 2217 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +1 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000001'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000001 4 Start 2 4 Server ver: VERSION, Binlog ver: 3 +slave-bin.000001 79 Query 2 79 use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 +slave-bin.000001 161 Query 1 161 DROP DATABASE IF EXISTS d1 +slave-bin.000001 220 Query 1 220 DROP DATABASE IF EXISTS d2 +slave-bin.000001 279 Query 1 279 DROP DATABASE IF EXISTS d3 +slave-bin.000001 338 Query 1 338 CREATE DATABASE d1 +slave-bin.000001 389 Query 1 389 CREATE DATABASE d2 +slave-bin.000001 440 Query 1 440 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 522 Query 1 522 use `test`; INSERT INTO d1.t1 SET f1= 0 +slave-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 912 Query 1 912 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 994 Query 1 994 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) +slave-bin.000001 1062 Query 1 1062 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1144 Query 1 1144 use `test`; INSERT INTO d1.t7 SET f1= 0 +slave-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1370 Query 1 1370 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1453 Query 1 1453 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1536 Query 1 1536 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1619 Query 1 1619 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1702 Query 1 1702 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1785 Query 1 1785 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1868 Query 1 1868 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 1951 Query 1 1951 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 2034 Query 1 2034 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 2117 Query 1 2117 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 2200 Query 1 2200 use `d1`; INSERT INTO t1 SET f1= 0 + 1 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- + +######## ROLLBACK ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 1 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +2 +SHOW BINLOG EVENTS IN 'master-bin.000002'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +1 +SHOW BINLOG EVENTS IN 'slave-bin.000002'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +1 +SHOW BINLOG EVENTS IN 'master-bin.000002'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +1 +SHOW BINLOG EVENTS IN 'slave-bin.000002'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +1 + +TEST-INFO: MASTER: The INSERT is not committed +SHOW BINLOG EVENTS IN 'master-bin.000002'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +1 + +TEST-INFO: SLAVE: The INSERT is not committed +SHOW BINLOG EVENTS IN 'slave-bin.000002'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- + +######## SET AUTOCOMMIT=1 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 1 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +2 +SHOW BINLOG EVENTS IN 'master-bin.000003'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +1 +SHOW BINLOG EVENTS IN 'slave-bin.000003'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +SET AUTOCOMMIT=1; +SELECT MAX(f1) FROM t1; +MAX(f1) +2 +SHOW BINLOG EVENTS IN 'master-bin.000003'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000003 4 Query 1 4 use `d1`; BEGIN +master-bin.000003 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 1 + 1 +master-bin.000003 103 Query 1 103 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +2 +SHOW BINLOG EVENTS IN 'slave-bin.000003'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000003 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 1 + 1 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +2 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000003'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000003 4 Query 1 4 use `d1`; BEGIN +master-bin.000003 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 1 + 1 +master-bin.000003 103 Query 1 103 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +2 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000003'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000003 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 1 + 1 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SET AUTOCOMMIT=0; + +######## START TRANSACTION ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 2 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +3 +SHOW BINLOG EVENTS IN 'master-bin.000004'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +2 +SHOW BINLOG EVENTS IN 'slave-bin.000004'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +START TRANSACTION; +SELECT MAX(f1) FROM t1; +MAX(f1) +3 +SHOW BINLOG EVENTS IN 'master-bin.000004'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000004 4 Query 1 4 use `d1`; BEGIN +master-bin.000004 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 2 + 1 +master-bin.000004 103 Query 1 103 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +3 +SHOW BINLOG EVENTS IN 'slave-bin.000004'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000004 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 2 + 1 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +3 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000004'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000004 4 Query 1 4 use `d1`; BEGIN +master-bin.000004 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 2 + 1 +master-bin.000004 103 Query 1 103 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +3 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000004'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000004 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 2 + 1 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- + +######## BEGIN ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 3 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +4 +SHOW BINLOG EVENTS IN 'master-bin.000005'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +3 +SHOW BINLOG EVENTS IN 'slave-bin.000005'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +BEGIN; +SELECT MAX(f1) FROM t1; +MAX(f1) +4 +SHOW BINLOG EVENTS IN 'master-bin.000005'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000005 4 Query 1 4 use `d1`; BEGIN +master-bin.000005 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 3 + 1 +master-bin.000005 103 Query 1 103 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +4 +SHOW BINLOG EVENTS IN 'slave-bin.000005'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000005 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 3 + 1 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +4 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000005'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000005 4 Query 1 4 use `d1`; BEGIN +master-bin.000005 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 3 + 1 +master-bin.000005 103 Query 1 103 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +4 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000005'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000005 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 3 + 1 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- + +######## DROP TABLE d1.t2 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 4 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +5 +SHOW BINLOG EVENTS IN 'master-bin.000006'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +4 +SHOW BINLOG EVENTS IN 'slave-bin.000006'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +DROP TABLE d1.t2; +SELECT MAX(f1) FROM t1; +MAX(f1) +5 +SHOW BINLOG EVENTS IN 'master-bin.000006'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000006 4 Query 1 4 use `d1`; BEGIN +master-bin.000006 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 4 + 1 +master-bin.000006 103 Query 1 103 use `d1`; COMMIT +master-bin.000006 142 Query 1 142 use `d1`; DROP TABLE d1.t2 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +5 +SHOW BINLOG EVENTS IN 'slave-bin.000006'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000006 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 4 + 1 +slave-bin.000006 65 Query 1 65 use `d1`; DROP TABLE d1.t2 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +5 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000006'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000006 4 Query 1 4 use `d1`; BEGIN +master-bin.000006 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 4 + 1 +master-bin.000006 103 Query 1 103 use `d1`; COMMIT +master-bin.000006 142 Query 1 142 use `d1`; DROP TABLE d1.t2 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +5 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000006'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000006 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 4 + 1 +slave-bin.000006 65 Query 1 65 use `d1`; DROP TABLE d1.t2 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SHOW TABLES LIKE 't2'; +Tables_in_d1 (t2) + +-------- switch to slave -------- +SHOW TABLES LIKE 't2'; +Tables_in_d1 (t2) + +-------- switch to master ------- + +######## RENAME TABLE d1.t3 to d1.t20 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 5 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +6 +SHOW BINLOG EVENTS IN 'master-bin.000007'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +5 +SHOW BINLOG EVENTS IN 'slave-bin.000007'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +RENAME TABLE d1.t3 to d1.t20; +SELECT MAX(f1) FROM t1; +MAX(f1) +6 +SHOW BINLOG EVENTS IN 'master-bin.000007'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000007 4 Query 1 4 use `d1`; BEGIN +master-bin.000007 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 5 + 1 +master-bin.000007 103 Query 1 103 use `d1`; COMMIT +master-bin.000007 142 Query 1 142 use `d1`; RENAME TABLE d1.t3 to d1.t20 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +6 +SHOW BINLOG EVENTS IN 'slave-bin.000007'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000007 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 5 + 1 +slave-bin.000007 65 Query 1 65 use `d1`; RENAME TABLE d1.t3 to d1.t20 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +6 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000007'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000007 4 Query 1 4 use `d1`; BEGIN +master-bin.000007 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 5 + 1 +master-bin.000007 103 Query 1 103 use `d1`; COMMIT +master-bin.000007 142 Query 1 142 use `d1`; RENAME TABLE d1.t3 to d1.t20 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +6 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000007'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000007 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 5 + 1 +slave-bin.000007 65 Query 1 65 use `d1`; RENAME TABLE d1.t3 to d1.t20 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SHOW TABLES LIKE 't20'; +Tables_in_d1 (t20) +t20 + +-------- switch to slave -------- +SHOW TABLES LIKE 't20'; +Tables_in_d1 (t20) +t20 + +-------- switch to master ------- + +######## ALTER TABLE d1.t4 ADD column f2 BIGINT ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 6 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +7 +SHOW BINLOG EVENTS IN 'master-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +6 +SHOW BINLOG EVENTS IN 'slave-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +ALTER TABLE d1.t4 ADD column f2 BIGINT; +SELECT MAX(f1) FROM t1; +MAX(f1) +7 +SHOW BINLOG EVENTS IN 'master-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000008 4 Query 1 4 use `d1`; BEGIN +master-bin.000008 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 6 + 1 +master-bin.000008 103 Query 1 103 use `d1`; COMMIT +master-bin.000008 142 Query 1 142 use `d1`; ALTER TABLE d1.t4 ADD column f2 BIGINT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +7 +SHOW BINLOG EVENTS IN 'slave-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000008 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 6 + 1 +slave-bin.000008 65 Query 1 65 use `d1`; ALTER TABLE d1.t4 ADD column f2 BIGINT + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +7 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000008 4 Query 1 4 use `d1`; BEGIN +master-bin.000008 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 6 + 1 +master-bin.000008 103 Query 1 103 use `d1`; COMMIT +master-bin.000008 142 Query 1 142 use `d1`; ALTER TABLE d1.t4 ADD column f2 BIGINT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +7 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000008 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 6 + 1 +slave-bin.000008 65 Query 1 65 use `d1`; ALTER TABLE d1.t4 ADD column f2 BIGINT + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +describe d1.t4; +Field Type Null Key Default Extra +f1 bigint(20) YES NULL +f2 bigint(20) YES NULL + +-------- switch to slave -------- +describe d1.t4; +Field Type Null Key Default Extra +f1 bigint(20) YES NULL +f2 bigint(20) YES NULL + +-------- switch to master ------- + +######## CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 7 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +8 +SHOW BINLOG EVENTS IN 'master-bin.000009'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +7 +SHOW BINLOG EVENTS IN 'slave-bin.000009'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB"; +SELECT MAX(f1) FROM t1; +MAX(f1) +8 +SHOW BINLOG EVENTS IN 'master-bin.000009'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000009 4 Query 1 4 use `d1`; BEGIN +master-bin.000009 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 7 + 1 +master-bin.000009 103 Query 1 103 use `d1`; COMMIT +master-bin.000009 142 Query 1 142 use `d1`; CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +8 +SHOW BINLOG EVENTS IN 'slave-bin.000009'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000009 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 7 + 1 +slave-bin.000009 65 Query 1 65 use `d1`; CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +8 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000009'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000009 4 Query 1 4 use `d1`; BEGIN +master-bin.000009 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 7 + 1 +master-bin.000009 103 Query 1 103 use `d1`; COMMIT +master-bin.000009 142 Query 1 142 use `d1`; CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +8 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000009'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000009 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 7 + 1 +slave-bin.000009 65 Query 1 65 use `d1`; CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- + +######## TRUNCATE TABLE d1.t7 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 8 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +9 +SHOW BINLOG EVENTS IN 'master-bin.000010'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +8 +SHOW BINLOG EVENTS IN 'slave-bin.000010'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +TRUNCATE TABLE d1.t7; +SELECT MAX(f1) FROM t1; +MAX(f1) +9 +SHOW BINLOG EVENTS IN 'master-bin.000010'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000010 4 Query 1 4 use `d1`; BEGIN +master-bin.000010 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 8 + 1 +master-bin.000010 103 Query 1 103 use `d1`; COMMIT +master-bin.000010 142 Query 1 142 use `d1`; TRUNCATE TABLE d1.t7 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +9 +SHOW BINLOG EVENTS IN 'slave-bin.000010'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000010 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 8 + 1 +slave-bin.000010 65 Query 1 65 use `d1`; TRUNCATE TABLE d1.t7 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +9 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000010'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000010 4 Query 1 4 use `d1`; BEGIN +master-bin.000010 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 8 + 1 +master-bin.000010 103 Query 1 103 use `d1`; COMMIT +master-bin.000010 142 Query 1 142 use `d1`; TRUNCATE TABLE d1.t7 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +9 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000010'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000010 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 8 + 1 +slave-bin.000010 65 Query 1 65 use `d1`; TRUNCATE TABLE d1.t7 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SELECT * FROM d1.t7; +f1 + +-------- switch to slave -------- +SELECT * FROM d1.t7; +f1 + +-------- switch to master ------- + +######## LOCK TABLES d1.t1 WRITE, d1.t8 READ ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 9 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'master-bin.000011'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +9 +SHOW BINLOG EVENTS IN 'slave-bin.000011'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +LOCK TABLES d1.t1 WRITE, d1.t8 READ; +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'master-bin.000011'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000011 4 Query 1 4 use `d1`; BEGIN +master-bin.000011 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 9 + 1 +master-bin.000011 103 Query 1 103 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'slave-bin.000011'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000011 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 9 + 1 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +10 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000011'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000011 4 Query 1 4 use `d1`; BEGIN +master-bin.000011 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 9 + 1 +master-bin.000011 103 Query 1 103 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000011'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000011 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 9 + 1 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +UNLOCK TABLES; +LOCK TABLES d1.t1 WRITE, d1.t8 READ; + +######## UNLOCK TABLES ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 10 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +11 +SHOW BINLOG EVENTS IN 'master-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'slave-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +UNLOCK TABLES; +SELECT MAX(f1) FROM t1; +MAX(f1) +11 +SHOW BINLOG EVENTS IN 'master-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000012 4 Query 1 4 use `d1`; BEGIN +master-bin.000012 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 10 + 1 +master-bin.000012 104 Query 1 104 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +11 +SHOW BINLOG EVENTS IN 'slave-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000012 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 10 + 1 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +11 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000012 4 Query 1 4 use `d1`; BEGIN +master-bin.000012 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 10 + 1 +master-bin.000012 104 Query 1 104 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +11 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000012 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 10 + 1 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- + +######## DROP INDEX my_idx6 ON d1.t6 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 11 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +12 +SHOW BINLOG EVENTS IN 'master-bin.000013'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +11 +SHOW BINLOG EVENTS IN 'slave-bin.000013'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +DROP INDEX my_idx6 ON d1.t6; +SELECT MAX(f1) FROM t1; +MAX(f1) +12 +SHOW BINLOG EVENTS IN 'master-bin.000013'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000013 4 Query 1 4 use `d1`; BEGIN +master-bin.000013 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 11 + 1 +master-bin.000013 104 Query 1 104 use `d1`; COMMIT +master-bin.000013 143 Query 1 143 use `d1`; DROP INDEX my_idx6 ON d1.t6 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +12 +SHOW BINLOG EVENTS IN 'slave-bin.000013'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000013 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 11 + 1 +slave-bin.000013 66 Query 1 66 use `d1`; DROP INDEX my_idx6 ON d1.t6 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +12 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000013'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000013 4 Query 1 4 use `d1`; BEGIN +master-bin.000013 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 11 + 1 +master-bin.000013 104 Query 1 104 use `d1`; COMMIT +master-bin.000013 143 Query 1 143 use `d1`; DROP INDEX my_idx6 ON d1.t6 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +12 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000013'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000013 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 11 + 1 +slave-bin.000013 66 Query 1 66 use `d1`; DROP INDEX my_idx6 ON d1.t6 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SHOW INDEX FROM d1.t6; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment + +-------- switch to slave -------- +SHOW INDEX FROM d1.t6; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment + +-------- switch to master ------- + +######## CREATE INDEX my_idx5 ON d1.t5(f1) ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 12 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +13 +SHOW BINLOG EVENTS IN 'master-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +12 +SHOW BINLOG EVENTS IN 'slave-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +CREATE INDEX my_idx5 ON d1.t5(f1); +SELECT MAX(f1) FROM t1; +MAX(f1) +13 +SHOW BINLOG EVENTS IN 'master-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000014 4 Query 1 4 use `d1`; BEGIN +master-bin.000014 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 12 + 1 +master-bin.000014 104 Query 1 104 use `d1`; COMMIT +master-bin.000014 143 Query 1 143 use `d1`; CREATE INDEX my_idx5 ON d1.t5(f1) + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +13 +SHOW BINLOG EVENTS IN 'slave-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000014 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 12 + 1 +slave-bin.000014 66 Query 1 66 use `d1`; CREATE INDEX my_idx5 ON d1.t5(f1) + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +13 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000014 4 Query 1 4 use `d1`; BEGIN +master-bin.000014 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 12 + 1 +master-bin.000014 104 Query 1 104 use `d1`; COMMIT +master-bin.000014 143 Query 1 143 use `d1`; CREATE INDEX my_idx5 ON d1.t5(f1) + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +13 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000014 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 12 + 1 +slave-bin.000014 66 Query 1 66 use `d1`; CREATE INDEX my_idx5 ON d1.t5(f1) + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SHOW INDEX FROM d1.t5; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t5 1 my_idx5 1 f1 A 0 NULL NULL YES BTREE + +-------- switch to slave -------- +SHOW INDEX FROM d1.t5; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t5 1 my_idx5 1 f1 A NULL NULL NULL YES BTREE + +-------- switch to master ------- + +######## DROP DATABASE d2 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 13 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +14 +SHOW BINLOG EVENTS IN 'master-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +13 +SHOW BINLOG EVENTS IN 'slave-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +DROP DATABASE d2; +SELECT MAX(f1) FROM t1; +MAX(f1) +14 +SHOW BINLOG EVENTS IN 'master-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000015 4 Query 1 4 use `d1`; BEGIN +master-bin.000015 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 13 + 1 +master-bin.000015 104 Query 1 104 use `d1`; COMMIT +master-bin.000015 143 Query 1 143 DROP DATABASE d2 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +14 +SHOW BINLOG EVENTS IN 'slave-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000015 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 13 + 1 +slave-bin.000015 66 Query 1 66 DROP DATABASE d2 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +14 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000015 4 Query 1 4 use `d1`; BEGIN +master-bin.000015 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 13 + 1 +master-bin.000015 104 Query 1 104 use `d1`; COMMIT +master-bin.000015 143 Query 1 143 DROP DATABASE d2 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +14 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000015 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 13 + 1 +slave-bin.000015 66 Query 1 66 DROP DATABASE d2 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SHOW DATABASES LIKE "d2"; +Database (d2) + +-------- switch to slave -------- +SHOW DATABASES LIKE "d2"; +Database (d2) + +-------- switch to master ------- + +######## CREATE DATABASE d3 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 14 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +15 +SHOW BINLOG EVENTS IN 'master-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +14 +SHOW BINLOG EVENTS IN 'slave-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +CREATE DATABASE d3; +SELECT MAX(f1) FROM t1; +MAX(f1) +15 +SHOW BINLOG EVENTS IN 'master-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000016 4 Query 1 4 use `d1`; BEGIN +master-bin.000016 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 14 + 1 +master-bin.000016 104 Query 1 104 use `d1`; COMMIT +master-bin.000016 143 Query 1 143 CREATE DATABASE d3 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +15 +SHOW BINLOG EVENTS IN 'slave-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000016 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 14 + 1 +slave-bin.000016 66 Query 1 66 CREATE DATABASE d3 + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +15 + +TEST-INFO: MASTER: The INSERT is committed +SHOW BINLOG EVENTS IN 'master-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000016 4 Query 1 4 use `d1`; BEGIN +master-bin.000016 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 14 + 1 +master-bin.000016 104 Query 1 104 use `d1`; COMMIT +master-bin.000016 143 Query 1 143 CREATE DATABASE d3 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +15 + +TEST-INFO: SLAVE: The INSERT is committed +SHOW BINLOG EVENTS IN 'slave-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000016 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 14 + 1 +slave-bin.000016 66 Query 1 66 CREATE DATABASE d3 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SHOW DATABASES LIKE "d3"; +Database (d3) +d3 + +-------- switch to slave -------- +SHOW DATABASES LIKE "d3"; +Database (d3) +d3 + +-------- switch to master ------- +DROP DATABASE IF EXISTS d1; +DROP DATABASE IF EXISTS d2; +DROP DATABASE IF EXISTS d3; diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test index 201489c0ddb..20b72004f5c 100644 --- a/mysql-test/t/innodb.test +++ b/mysql-test/t/innodb.test @@ -570,7 +570,6 @@ show tables from mysqltest; set autocommit=0; create table t1 (a int not null) engine= innodb; insert into t1 values(1),(2); ---error 1192 truncate table t1; commit; truncate table t1; diff --git a/mysql-test/t/rpl_ddl.test b/mysql-test/t/rpl_ddl.test new file mode 100644 index 00000000000..a99a71a841b --- /dev/null +++ b/mysql-test/t/rpl_ddl.test @@ -0,0 +1,268 @@ +######################## rpl-ddl.test ######################## +# # +# DDL statements (sometimes with implicit COMMIT) executed # +# by the master and it's propagation into the slave # +# # +############################################################## + +# +# NOTE, PLEASE BE CAREFUL, WHEN MODIFYING THE TESTS !! +# +# 1. !All! objects to be dropped, renamed, altered ... must be created +# in AUTOCOMMIT= 1 mode before AUTOCOMMIT is set to 0 and the test +# sequences start. +# +# 2. Never use a test object, which was direct or indirect affected by a +# preceeding test sequence again. +# Except table d1.t1 where ONLY DML is allowed. +# +# If one preceeding test sequence hits a (sometimes not good visible, +# because the sql error code of the statement might be 0) bug +# and these rules are ignored, a following test sequence might earn ugly +# effects like failing 'sync_slave_with_master', crashes of the slave or +# abort of the test case etc.. +# +# 3. The assignment of the DDL command to be tested to $my_stmt can +# be a bit difficult. "'" must be avoided, because the test +# routine "include/rpl_stmt_seq.inc" performs a +# eval SELECT CONCAT('######## ','$my_stmt',' ########') as ""; +# + +######## tested DDL commands +# +# let $my_stmt= COMMIT; +# let $my_stmt= ROLLBACK; +# let $my_stmt= SET AUTOCOMMIT=1; +# let $my_stmt= START TRANSACTION; +# let $my_stmt= BEGIN; +# let $my_stmt= DROP TABLE d1.t2; +# let $my_stmt= RENAME TABLE d1.t3 to d1.t20; <- wrong syntax !! +# let $my_stmt= ALTER TABLE d1.t4 ADD column f2 BIGINT; +# let $my_stmt= CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB"; +# let $my_stmt= TRUNCATE TABLE d1.t7; +# let $my_stmt= LOCK TABLES d1.t1 WRITE, d1.t8 READ; +# let $my_stmt= UNLOCK TABLES; +# let $my_stmt= DROP INDEX my_idx6 ON d1.t6; +# let $my_stmt= CREATE INDEX my_idx5 ON d1.t5(f1); +# let $my_stmt= DROP DATABASE d2; +# let $my_stmt= CREATE DATABASE d3; +# +# FIXME: @code{LOAD MASTER DATA} is not tested +# +############################################# + +--source include/have_innodb.inc +source include/master-slave.inc; + + +######## some preparations +# +SET AUTOCOMMIT = 1; +# +# 1. DROP all objects, which probably already exist, but must be created here +# +--disable_warnings +DROP DATABASE IF EXISTS d1; +DROP DATABASE IF EXISTS d2; +DROP DATABASE IF EXISTS d3; +--enable_warnings +# +# 2. CREATE all objects needed +# working database is d1 +# working (transactional!) is d1.t1 +# +CREATE DATABASE d1; +CREATE DATABASE d2; +CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB"; +INSERT INTO d1.t1 SET f1= 0; +CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE INDEX my_idx6 ON d1.t6(f1); +CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB"; +INSERT INTO d1.t7 SET f1= 0; +CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB"; +# +COMMIT; # Just to be sure +# +# 3. master sessions: never do AUTOCOMMIT +# slave sessions: do AUTOCOMMIT, because we want to see fresh values +# every time +# default database is d1 +SET AUTOCOMMIT = 0; +use d1; +sync_slave_with_master; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SET AUTOCOMMIT = 1; +use d1; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log + + +# We don't want to abort the whole test if one statement sent +# to the server gets an error, because the following test +# sequences are nearly independend of the previous statements. +--disable_abort_on_error + +###### banal case: (explicit) COMMIT and ROLLBACK +# just for checking if the test sequence is usable +let $my_stmt= COMMIT; +--source include/rpl_stmt_seq.inc +let $my_stmt= ROLLBACK; +--source include/rpl_stmt_seq.inc + +###### cases with commands very similar to COMMIT +let $my_stmt= SET AUTOCOMMIT=1; +--source include/rpl_stmt_seq.inc +SET AUTOCOMMIT=0; +# +let $my_stmt= START TRANSACTION; +--source include/rpl_stmt_seq.inc +# +let $my_stmt= BEGIN; +--source include/rpl_stmt_seq.inc + +###### cases with commands, which create or drop objects +#### (BASE) TABLES and (UPDATABLE) VIEWs +let $my_stmt= DROP TABLE d1.t2; +--source include/rpl_stmt_seq.inc +SHOW TABLES LIKE 't2'; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW TABLES LIKE 't2'; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +# +let $my_stmt= RENAME TABLE d1.t3 to d1.t20; +--source include/rpl_stmt_seq.inc +SHOW TABLES LIKE 't20'; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW TABLES LIKE 't20'; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +# +let $my_stmt= ALTER TABLE d1.t4 ADD column f2 BIGINT; +--source include/rpl_stmt_seq.inc +describe d1.t4; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +describe d1.t4; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +# +let $my_stmt= CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB"; +--source include/rpl_stmt_seq.inc +# +let $my_stmt= TRUNCATE TABLE d1.t7; +--source include/rpl_stmt_seq.inc +SELECT * FROM d1.t7; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SELECT * FROM d1.t7; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +# +# MySQL insists in locking d1.t1, because rpl_stmt_seq performs an INSERT into +# this table. +let $my_stmt= LOCK TABLES d1.t1 WRITE, d1.t8 READ; +--source include/rpl_stmt_seq.inc +UNLOCK TABLES; +# +LOCK TABLES d1.t1 WRITE, d1.t8 READ; +let $my_stmt= UNLOCK TABLES; +--source include/rpl_stmt_seq.inc +# +#### INDEXES +let $my_stmt= DROP INDEX my_idx6 ON d1.t6; +--source include/rpl_stmt_seq.inc +SHOW INDEX FROM d1.t6; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW INDEX FROM d1.t6; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +# +let $my_stmt= CREATE INDEX my_idx5 ON d1.t5(f1); +--source include/rpl_stmt_seq.inc +SHOW INDEX FROM d1.t5; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW INDEX FROM d1.t5; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log + +#### DATABASES +let $my_stmt= DROP DATABASE d2; +--source include/rpl_stmt_seq.inc +SHOW DATABASES LIKE "d2"; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW DATABASES LIKE "d2"; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log +# +let $my_stmt= CREATE DATABASE d3; +--source include/rpl_stmt_seq.inc +SHOW DATABASES LIKE "d3"; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW DATABASES LIKE "d3"; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log + +--disable_warnings +DROP DATABASE IF EXISTS d1; +DROP DATABASE IF EXISTS d2; +DROP DATABASE IF EXISTS d3; +--enable_warnings diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 80c68dad247..ce0c43f7296 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2409,6 +2409,11 @@ mysql_execute_command(THD *thd) case SQLCOM_CREATE_TABLE: { + /* If CREATE TABLE of non-temporary table, do implicit commit */ + if (!(lex->create_info.options & HA_LEX_CREATE_TMP_TABLE) && + end_active_trans(thd)) + res= -1; + /* Skip first table, which is the table we are creating */ TABLE_LIST *create_table, *create_table_local; tables= lex->unlink_first_table(tables, &create_table, @@ -2855,6 +2860,11 @@ unsent_create_error: break; } case SQLCOM_TRUNCATE: + if (end_active_trans(thd)) + { + res= -1; + break; + } if (check_one_table_access(thd, DELETE_ACL, tables)) goto error; /* @@ -3213,6 +3223,11 @@ purposes internal to the MySQL server", MYF(0)); break; case SQLCOM_CREATE_DB: { + if (end_active_trans(thd)) + { + res= -1; + break; + } char *alias; if (!(alias=thd->strdup(lex->name)) || check_db_name(lex->name)) { @@ -3243,6 +3258,11 @@ purposes internal to the MySQL server", MYF(0)); } case SQLCOM_DROP_DB: { + if (end_active_trans(thd)) + { + res= -1; + break; + } char *alias; if (!(alias=thd->strdup(lex->name)) || check_db_name(lex->name)) { From 2b3c8b9dc5fc0a3d607c2026af6fb2fdc594291e Mon Sep 17 00:00:00 2001 From: "lars@mysql.com" <> Date: Wed, 1 Jun 2005 15:52:32 +0200 Subject: [PATCH 2/6] BUG#6883: Added tests for create/drop temporary table, UNLOCK TABLES If a create table can not do implicit commit, the stmt now fails CREATE/DROP TEMPORARY TABLE is now flushed to binlog --- mysql-test/include/rpl_stmt_seq.inc | 41 +- mysql-test/r/rpl_ddl.result | 1252 ++++++++++++++++----------- mysql-test/t/rpl_ddl.test | 342 +++++--- sql/sql_parse.cc | 20 +- 4 files changed, 1018 insertions(+), 637 deletions(-) diff --git a/mysql-test/include/rpl_stmt_seq.inc b/mysql-test/include/rpl_stmt_seq.inc index cd05cd5c06c..6f207e66156 100644 --- a/mysql-test/include/rpl_stmt_seq.inc +++ b/mysql-test/include/rpl_stmt_seq.inc @@ -21,7 +21,9 @@ eval SELECT CONCAT('######## ','$my_stmt',' ########') as ""; --enable_query_log -### Predict the number of the current log +############################################################### +# Predict the number of the current log +############################################################### # Disable the logging of the log number computation. --disable_query_log # $_log_num_n should contain the number of the current binlog in numeric style. @@ -38,7 +40,9 @@ let $_log_num_s= `select @aux`; # eval SELECT '$log_num' ; --enable_query_log -# INSERT + command to be tested + ROLLBACK +############################################################### +# INSERT +############################################################### connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; @@ -49,6 +53,7 @@ eval INSERT INTO t1 SET f1= $MAX + 1; # results before DDL(to be tested) SELECT MAX(f1) FROM t1; --replace_result $VERSION VERSION +--replace_column 2 # 5 # eval SHOW BINLOG EVENTS IN 'master-bin.$_log_num_s'; sync_slave_with_master; @@ -59,8 +64,12 @@ SELECT '-------- switch to slave --------' as ""; # results before DDL(to be tested) SELECT MAX(f1) FROM t1; --replace_result $VERSION VERSION +--replace_column 2 # 5 # eval SHOW BINLOG EVENTS IN 'slave-bin.$_log_num_s'; +############################################################### +# command to be tested +############################################################### connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; @@ -71,6 +80,7 @@ let $my_stmt= ERROR: YOU FORGOT TO FILL IN THE STATEMENT; # results after DDL(to be tested) SELECT MAX(f1) FROM t1; --replace_result $VERSION VERSION +--replace_column 2 # 5 # eval SHOW BINLOG EVENTS IN 'master-bin.$_log_num_s'; sync_slave_with_master; @@ -81,8 +91,12 @@ SELECT '-------- switch to slave --------' as ""; # results after DDL(to be tested) SELECT MAX(f1) FROM t1; --replace_result $VERSION VERSION +--replace_column 2 # 5 # eval SHOW BINLOG EVENTS IN 'slave-bin.$_log_num_s'; +############################################################### +# ROLLBACK +############################################################### connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; @@ -93,11 +107,15 @@ SELECT MAX(f1) FROM t1; # Try to detect if the DDL command caused that the INSERT is committed # $MAX holds the highest/last value just before the insert of MAX + 1 --disable_query_log -eval SELECT CONCAT('TEST-INFO: MASTER: The INSERT is ', - IF(MAX(f1) = $MAX + 1, 'committed', 'not committed')) AS "" -FROM d1.t1; +eval SELECT CONCAT(CONCAT('TEST-INFO: MASTER: The INSERT is ', + IF(MAX(f1) = $MAX + 1, 'committed', 'not committed')), + IF((MAX(f1) = $MAX + 1) XOR NOT $my_master_commit, + ' (Succeeded)', + ' (Failed)')) AS "" + FROM mysqltest1.t1; --enable_query_log --replace_result $VERSION VERSION +--replace_column 2 # 5 # eval SHOW BINLOG EVENTS IN 'master-bin.$_log_num_s'; sync_slave_with_master; @@ -108,13 +126,20 @@ SELECT '-------- switch to slave --------' as ""; # results after final ROLLBACK SELECT MAX(f1) FROM t1; --disable_query_log -eval SELECT CONCAT('TEST-INFO: SLAVE: The INSERT is ', - IF(MAX(f1) = $MAX + 1, 'committed', 'not committed')) AS "" -FROM d1.t1; +eval SELECT CONCAT(CONCAT('TEST-INFO: SLAVE: The INSERT is ', + IF(MAX(f1) = $MAX + 1, 'committed', 'not committed')), + IF((MAX(f1) = $MAX + 1) XOR NOT $my_slave_commit, + ' (Succeeded)', + ' (Failed)')) AS "" + FROM mysqltest1.t1; --enable_query_log --replace_result $VERSION VERSION +--replace_column 2 # 5 # eval SHOW BINLOG EVENTS IN 'slave-bin.$_log_num_s'; +############################################################### +# Manipulate binlog +############################################################### #let $manipulate= 0; let $manipulate= 1; while ($manipulate) diff --git a/mysql-test/r/rpl_ddl.result b/mysql-test/r/rpl_ddl.result index 7e544a609e8..9e3f76fe0bb 100644 --- a/mysql-test/r/rpl_ddl.result +++ b/mysql-test/r/rpl_ddl.result @@ -5,40 +5,40 @@ reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; SET AUTOCOMMIT = 1; -DROP DATABASE IF EXISTS d1; -DROP DATABASE IF EXISTS d2; -DROP DATABASE IF EXISTS d3; -CREATE DATABASE d1; -CREATE DATABASE d2; -CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB"; -INSERT INTO d1.t1 SET f1= 0; -CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE INDEX my_idx6 ON d1.t6(f1); -CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB"; -INSERT INTO d1.t7 SET f1= 0; -CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB"; -COMMIT; +DROP DATABASE IF EXISTS mysqltest1; +DROP DATABASE IF EXISTS mysqltest2; +DROP DATABASE IF EXISTS mysqltest3; +CREATE DATABASE mysqltest1; +CREATE DATABASE mysqltest2; +CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB"; +INSERT INTO mysqltest1.t1 SET f1= 0; +CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE INDEX my_idx6 ON mysqltest1.t6(f1); +CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB"; +INSERT INTO mysqltest1.t7 SET f1= 0; +CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT); SET AUTOCOMMIT = 0; -use d1; +use mysqltest1; -------- switch to slave -------- -SET AUTOCOMMIT = 1; -use d1; +SET AUTOCOMMIT = 0; +use mysqltest1; -------- switch to master ------- @@ -51,34 +51,35 @@ MAX(f1) 1 SHOW BINLOG EVENTS IN 'master-bin.000001'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3 -master-bin.000001 79 Query 1 79 DROP DATABASE IF EXISTS d1 -master-bin.000001 138 Query 1 138 DROP DATABASE IF EXISTS d2 -master-bin.000001 197 Query 1 197 DROP DATABASE IF EXISTS d3 -master-bin.000001 256 Query 1 256 CREATE DATABASE d1 -master-bin.000001 307 Query 1 307 CREATE DATABASE d2 -master-bin.000001 358 Query 1 358 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 440 Query 1 440 use `test`; INSERT INTO d1.t1 SET f1= 0 -master-bin.000001 502 Query 1 502 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 912 Query 1 912 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) -master-bin.000001 980 Query 1 980 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1062 Query 1 1062 use `test`; INSERT INTO d1.t7 SET f1= 0 -master-bin.000001 1124 Query 1 1124 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1371 Query 1 1371 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1454 Query 1 1454 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1537 Query 1 1537 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1620 Query 1 1620 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1703 Query 1 1703 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1786 Query 1 1786 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1869 Query 1 1869 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1952 Query 1 1952 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 2035 Query 1 2035 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Start 1 # Server ver: VERSION, Binlog ver: 3 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest1 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest2 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest3 +master-bin.000001 # Query 1 # CREATE DATABASE mysqltest1 +master-bin.000001 # Query 1 # CREATE DATABASE mysqltest2 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t1 SET f1= 0 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE INDEX my_idx6 ON mysqltest1.t6(f1) +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t7 SET f1= 0 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT) -------- switch to slave -------- SELECT MAX(f1) FROM t1; @@ -86,35 +87,36 @@ MAX(f1) 0 SHOW BINLOG EVENTS IN 'slave-bin.000001'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000001 4 Start 2 4 Server ver: VERSION, Binlog ver: 3 -slave-bin.000001 79 Query 2 79 use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 -slave-bin.000001 161 Query 1 161 DROP DATABASE IF EXISTS d1 -slave-bin.000001 220 Query 1 220 DROP DATABASE IF EXISTS d2 -slave-bin.000001 279 Query 1 279 DROP DATABASE IF EXISTS d3 -slave-bin.000001 338 Query 1 338 CREATE DATABASE d1 -slave-bin.000001 389 Query 1 389 CREATE DATABASE d2 -slave-bin.000001 440 Query 1 440 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 522 Query 1 522 use `test`; INSERT INTO d1.t1 SET f1= 0 -slave-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 912 Query 1 912 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 994 Query 1 994 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) -slave-bin.000001 1062 Query 1 1062 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1144 Query 1 1144 use `test`; INSERT INTO d1.t7 SET f1= 0 -slave-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1370 Query 1 1370 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1453 Query 1 1453 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1536 Query 1 1536 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1619 Query 1 1619 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1702 Query 1 1702 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1785 Query 1 1785 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1868 Query 1 1868 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1951 Query 1 1951 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 2034 Query 1 2034 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 2117 Query 1 2117 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Start 2 # Server ver: VERSION, Binlog ver: 3 +slave-bin.000001 # Query 2 # use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest1 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest2 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest3 +slave-bin.000001 # Query 1 # CREATE DATABASE mysqltest1 +slave-bin.000001 # Query 1 # CREATE DATABASE mysqltest2 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t1 SET f1= 0 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE INDEX my_idx6 ON mysqltest1.t6(f1) +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t7 SET f1= 0 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT) -------- switch to master ------- COMMIT; @@ -123,37 +125,38 @@ MAX(f1) 1 SHOW BINLOG EVENTS IN 'master-bin.000001'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3 -master-bin.000001 79 Query 1 79 DROP DATABASE IF EXISTS d1 -master-bin.000001 138 Query 1 138 DROP DATABASE IF EXISTS d2 -master-bin.000001 197 Query 1 197 DROP DATABASE IF EXISTS d3 -master-bin.000001 256 Query 1 256 CREATE DATABASE d1 -master-bin.000001 307 Query 1 307 CREATE DATABASE d2 -master-bin.000001 358 Query 1 358 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 440 Query 1 440 use `test`; INSERT INTO d1.t1 SET f1= 0 -master-bin.000001 502 Query 1 502 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 912 Query 1 912 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) -master-bin.000001 980 Query 1 980 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1062 Query 1 1062 use `test`; INSERT INTO d1.t7 SET f1= 0 -master-bin.000001 1124 Query 1 1124 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1371 Query 1 1371 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1454 Query 1 1454 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1537 Query 1 1537 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1620 Query 1 1620 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1703 Query 1 1703 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1786 Query 1 1786 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1869 Query 1 1869 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1952 Query 1 1952 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 2035 Query 1 2035 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 2118 Query 1 2118 use `d1`; BEGIN -master-bin.000001 2156 Query 1 2118 use `d1`; INSERT INTO t1 SET f1= 0 + 1 -master-bin.000001 2217 Query 1 2217 use `d1`; COMMIT +master-bin.000001 # Start 1 # Server ver: VERSION, Binlog ver: 3 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest1 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest2 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest3 +master-bin.000001 # Query 1 # CREATE DATABASE mysqltest1 +master-bin.000001 # Query 1 # CREATE DATABASE mysqltest2 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t1 SET f1= 0 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE INDEX my_idx6 ON mysqltest1.t6(f1) +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t7 SET f1= 0 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT) +master-bin.000001 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000001 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 0 + 1 +master-bin.000001 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; @@ -161,36 +164,37 @@ MAX(f1) 1 SHOW BINLOG EVENTS IN 'slave-bin.000001'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000001 4 Start 2 4 Server ver: VERSION, Binlog ver: 3 -slave-bin.000001 79 Query 2 79 use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 -slave-bin.000001 161 Query 1 161 DROP DATABASE IF EXISTS d1 -slave-bin.000001 220 Query 1 220 DROP DATABASE IF EXISTS d2 -slave-bin.000001 279 Query 1 279 DROP DATABASE IF EXISTS d3 -slave-bin.000001 338 Query 1 338 CREATE DATABASE d1 -slave-bin.000001 389 Query 1 389 CREATE DATABASE d2 -slave-bin.000001 440 Query 1 440 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 522 Query 1 522 use `test`; INSERT INTO d1.t1 SET f1= 0 -slave-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 912 Query 1 912 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 994 Query 1 994 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) -slave-bin.000001 1062 Query 1 1062 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1144 Query 1 1144 use `test`; INSERT INTO d1.t7 SET f1= 0 -slave-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1370 Query 1 1370 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1453 Query 1 1453 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1536 Query 1 1536 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1619 Query 1 1619 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1702 Query 1 1702 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1785 Query 1 1785 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1868 Query 1 1868 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1951 Query 1 1951 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 2034 Query 1 2034 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 2117 Query 1 2117 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 2200 Query 1 2200 use `d1`; INSERT INTO t1 SET f1= 0 + 1 +slave-bin.000001 # Start 2 # Server ver: VERSION, Binlog ver: 3 +slave-bin.000001 # Query 2 # use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest1 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest2 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest3 +slave-bin.000001 # Query 1 # CREATE DATABASE mysqltest1 +slave-bin.000001 # Query 1 # CREATE DATABASE mysqltest2 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t1 SET f1= 0 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE INDEX my_idx6 ON mysqltest1.t6(f1) +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t7 SET f1= 0 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT) +slave-bin.000001 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 0 + 1 -------- switch to master ------- ROLLBACK; @@ -198,79 +202,81 @@ SELECT MAX(f1) FROM t1; MAX(f1) 1 -TEST-INFO: MASTER: The INSERT is committed +TEST-INFO: MASTER: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'master-bin.000001'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3 -master-bin.000001 79 Query 1 79 DROP DATABASE IF EXISTS d1 -master-bin.000001 138 Query 1 138 DROP DATABASE IF EXISTS d2 -master-bin.000001 197 Query 1 197 DROP DATABASE IF EXISTS d3 -master-bin.000001 256 Query 1 256 CREATE DATABASE d1 -master-bin.000001 307 Query 1 307 CREATE DATABASE d2 -master-bin.000001 358 Query 1 358 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 440 Query 1 440 use `test`; INSERT INTO d1.t1 SET f1= 0 -master-bin.000001 502 Query 1 502 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 912 Query 1 912 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) -master-bin.000001 980 Query 1 980 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1062 Query 1 1062 use `test`; INSERT INTO d1.t7 SET f1= 0 -master-bin.000001 1124 Query 1 1124 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1371 Query 1 1371 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1454 Query 1 1454 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1537 Query 1 1537 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1620 Query 1 1620 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1703 Query 1 1703 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1786 Query 1 1786 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1869 Query 1 1869 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 1952 Query 1 1952 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 2035 Query 1 2035 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" -master-bin.000001 2118 Query 1 2118 use `d1`; BEGIN -master-bin.000001 2156 Query 1 2118 use `d1`; INSERT INTO t1 SET f1= 0 + 1 -master-bin.000001 2217 Query 1 2217 use `d1`; COMMIT +master-bin.000001 # Start 1 # Server ver: VERSION, Binlog ver: 3 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest1 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest2 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest3 +master-bin.000001 # Query 1 # CREATE DATABASE mysqltest1 +master-bin.000001 # Query 1 # CREATE DATABASE mysqltest2 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t1 SET f1= 0 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE INDEX my_idx6 ON mysqltest1.t6(f1) +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t7 SET f1= 0 +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000001 # Query 1 # use `test`; CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT) +master-bin.000001 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000001 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 0 + 1 +master-bin.000001 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 1 -TEST-INFO: SLAVE: The INSERT is committed +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'slave-bin.000001'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000001 4 Start 2 4 Server ver: VERSION, Binlog ver: 3 -slave-bin.000001 79 Query 2 79 use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 -slave-bin.000001 161 Query 1 161 DROP DATABASE IF EXISTS d1 -slave-bin.000001 220 Query 1 220 DROP DATABASE IF EXISTS d2 -slave-bin.000001 279 Query 1 279 DROP DATABASE IF EXISTS d3 -slave-bin.000001 338 Query 1 338 CREATE DATABASE d1 -slave-bin.000001 389 Query 1 389 CREATE DATABASE d2 -slave-bin.000001 440 Query 1 440 use `test`; CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 522 Query 1 522 use `test`; INSERT INTO d1.t1 SET f1= 0 -slave-bin.000001 584 Query 1 584 use `test`; CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 666 Query 1 666 use `test`; CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 748 Query 1 748 use `test`; CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 830 Query 1 830 use `test`; CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 912 Query 1 912 use `test`; CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 994 Query 1 994 use `test`; CREATE INDEX my_idx6 ON d1.t6(f1) -slave-bin.000001 1062 Query 1 1062 use `test`; CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1144 Query 1 1144 use `test`; INSERT INTO d1.t7 SET f1= 0 -slave-bin.000001 1206 Query 1 1206 use `test`; CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1288 Query 1 1288 use `test`; CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1370 Query 1 1370 use `test`; CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1453 Query 1 1453 use `test`; CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1536 Query 1 1536 use `test`; CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1619 Query 1 1619 use `test`; CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1702 Query 1 1702 use `test`; CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1785 Query 1 1785 use `test`; CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1868 Query 1 1868 use `test`; CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 1951 Query 1 1951 use `test`; CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 2034 Query 1 2034 use `test`; CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 2117 Query 1 2117 use `test`; CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB" -slave-bin.000001 2200 Query 1 2200 use `d1`; INSERT INTO t1 SET f1= 0 + 1 +slave-bin.000001 # Start 2 # Server ver: VERSION, Binlog ver: 3 +slave-bin.000001 # Query 2 # use `test`; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest1 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest2 +slave-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest3 +slave-bin.000001 # Query 1 # CREATE DATABASE mysqltest1 +slave-bin.000001 # Query 1 # CREATE DATABASE mysqltest2 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t1 SET f1= 0 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE INDEX my_idx6 ON mysqltest1.t6(f1) +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; INSERT INTO mysqltest1.t7 SET f1= 0 +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000001 # Query 1 # use `test`; CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT) +slave-bin.000001 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 0 + 1 -------- switch to master ------- flush logs; @@ -318,7 +324,7 @@ SELECT MAX(f1) FROM t1; MAX(f1) 1 -TEST-INFO: MASTER: The INSERT is not committed +TEST-INFO: MASTER: The INSERT is not committed (Succeeded) SHOW BINLOG EVENTS IN 'master-bin.000002'; Log_name Pos Event_type Server_id Orig_log_pos Info @@ -327,7 +333,7 @@ SELECT MAX(f1) FROM t1; MAX(f1) 1 -TEST-INFO: SLAVE: The INSERT is not committed +TEST-INFO: SLAVE: The INSERT is not committed (Succeeded) SHOW BINLOG EVENTS IN 'slave-bin.000002'; Log_name Pos Event_type Server_id Orig_log_pos Info @@ -363,9 +369,9 @@ MAX(f1) 2 SHOW BINLOG EVENTS IN 'master-bin.000003'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000003 4 Query 1 4 use `d1`; BEGIN -master-bin.000003 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 1 + 1 -master-bin.000003 103 Query 1 103 use `d1`; COMMIT +master-bin.000003 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000003 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 1 + 1 +master-bin.000003 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; @@ -373,7 +379,7 @@ MAX(f1) 2 SHOW BINLOG EVENTS IN 'slave-bin.000003'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000003 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 1 + 1 +slave-bin.000003 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 1 + 1 -------- switch to master ------- ROLLBACK; @@ -381,22 +387,22 @@ SELECT MAX(f1) FROM t1; MAX(f1) 2 -TEST-INFO: MASTER: The INSERT is committed +TEST-INFO: MASTER: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'master-bin.000003'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000003 4 Query 1 4 use `d1`; BEGIN -master-bin.000003 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 1 + 1 -master-bin.000003 103 Query 1 103 use `d1`; COMMIT +master-bin.000003 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000003 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 1 + 1 +master-bin.000003 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 2 -TEST-INFO: SLAVE: The INSERT is committed +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'slave-bin.000003'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000003 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 1 + 1 +slave-bin.000003 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 1 + 1 -------- switch to master ------- flush logs; @@ -431,9 +437,9 @@ MAX(f1) 3 SHOW BINLOG EVENTS IN 'master-bin.000004'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000004 4 Query 1 4 use `d1`; BEGIN -master-bin.000004 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 2 + 1 -master-bin.000004 103 Query 1 103 use `d1`; COMMIT +master-bin.000004 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000004 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 2 + 1 +master-bin.000004 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; @@ -441,7 +447,7 @@ MAX(f1) 3 SHOW BINLOG EVENTS IN 'slave-bin.000004'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000004 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 2 + 1 +slave-bin.000004 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 2 + 1 -------- switch to master ------- ROLLBACK; @@ -449,22 +455,22 @@ SELECT MAX(f1) FROM t1; MAX(f1) 3 -TEST-INFO: MASTER: The INSERT is committed +TEST-INFO: MASTER: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'master-bin.000004'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000004 4 Query 1 4 use `d1`; BEGIN -master-bin.000004 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 2 + 1 -master-bin.000004 103 Query 1 103 use `d1`; COMMIT +master-bin.000004 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000004 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 2 + 1 +master-bin.000004 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 3 -TEST-INFO: SLAVE: The INSERT is committed +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'slave-bin.000004'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000004 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 2 + 1 +slave-bin.000004 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 2 + 1 -------- switch to master ------- flush logs; @@ -498,9 +504,9 @@ MAX(f1) 4 SHOW BINLOG EVENTS IN 'master-bin.000005'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000005 4 Query 1 4 use `d1`; BEGIN -master-bin.000005 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 3 + 1 -master-bin.000005 103 Query 1 103 use `d1`; COMMIT +master-bin.000005 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000005 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 3 + 1 +master-bin.000005 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; @@ -508,7 +514,7 @@ MAX(f1) 4 SHOW BINLOG EVENTS IN 'slave-bin.000005'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000005 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 3 + 1 +slave-bin.000005 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 3 + 1 -------- switch to master ------- ROLLBACK; @@ -516,22 +522,22 @@ SELECT MAX(f1) FROM t1; MAX(f1) 4 -TEST-INFO: MASTER: The INSERT is committed +TEST-INFO: MASTER: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'master-bin.000005'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000005 4 Query 1 4 use `d1`; BEGIN -master-bin.000005 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 3 + 1 -master-bin.000005 103 Query 1 103 use `d1`; COMMIT +master-bin.000005 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000005 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 3 + 1 +master-bin.000005 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 4 -TEST-INFO: SLAVE: The INSERT is committed +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'slave-bin.000005'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000005 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 3 + 1 +slave-bin.000005 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 3 + 1 -------- switch to master ------- flush logs; @@ -541,7 +547,7 @@ flush logs; -------- switch to master ------- -######## DROP TABLE d1.t2 ######## +######## DROP TABLE mysqltest1.t2 ######## -------- switch to master ------- INSERT INTO t1 SET f1= 4 + 1; @@ -559,16 +565,16 @@ SHOW BINLOG EVENTS IN 'slave-bin.000006'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -DROP TABLE d1.t2; +DROP TABLE mysqltest1.t2; SELECT MAX(f1) FROM t1; MAX(f1) 5 SHOW BINLOG EVENTS IN 'master-bin.000006'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000006 4 Query 1 4 use `d1`; BEGIN -master-bin.000006 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 4 + 1 -master-bin.000006 103 Query 1 103 use `d1`; COMMIT -master-bin.000006 142 Query 1 142 use `d1`; DROP TABLE d1.t2 +master-bin.000006 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000006 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 4 + 1 +master-bin.000006 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000006 # Query 1 # use `mysqltest1`; DROP TABLE mysqltest1.t2 -------- switch to slave -------- SELECT MAX(f1) FROM t1; @@ -576,8 +582,8 @@ MAX(f1) 5 SHOW BINLOG EVENTS IN 'slave-bin.000006'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000006 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 4 + 1 -slave-bin.000006 65 Query 1 65 use `d1`; DROP TABLE d1.t2 +slave-bin.000006 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 4 + 1 +slave-bin.000006 # Query 1 # use `mysqltest1`; DROP TABLE mysqltest1.t2 -------- switch to master ------- ROLLBACK; @@ -585,24 +591,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 5 -TEST-INFO: MASTER: The INSERT is committed +TEST-INFO: MASTER: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'master-bin.000006'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000006 4 Query 1 4 use `d1`; BEGIN -master-bin.000006 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 4 + 1 -master-bin.000006 103 Query 1 103 use `d1`; COMMIT -master-bin.000006 142 Query 1 142 use `d1`; DROP TABLE d1.t2 +master-bin.000006 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000006 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 4 + 1 +master-bin.000006 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000006 # Query 1 # use `mysqltest1`; DROP TABLE mysqltest1.t2 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 5 -TEST-INFO: SLAVE: The INSERT is committed +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'slave-bin.000006'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000006 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 4 + 1 -slave-bin.000006 65 Query 1 65 use `d1`; DROP TABLE d1.t2 +slave-bin.000006 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 4 + 1 +slave-bin.000006 # Query 1 # use `mysqltest1`; DROP TABLE mysqltest1.t2 -------- switch to master ------- flush logs; @@ -612,15 +618,15 @@ flush logs; -------- switch to master ------- SHOW TABLES LIKE 't2'; -Tables_in_d1 (t2) +Tables_in_mysqltest1 (t2) -------- switch to slave -------- SHOW TABLES LIKE 't2'; -Tables_in_d1 (t2) +Tables_in_mysqltest1 (t2) -------- switch to master ------- -######## RENAME TABLE d1.t3 to d1.t20 ######## +######## DROP TEMPORARY TABLE mysqltest1.t23 ######## -------- switch to master ------- INSERT INTO t1 SET f1= 5 + 1; @@ -638,25 +644,100 @@ SHOW BINLOG EVENTS IN 'slave-bin.000007'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -RENAME TABLE d1.t3 to d1.t20; +DROP TEMPORARY TABLE mysqltest1.t23; SELECT MAX(f1) FROM t1; MAX(f1) 6 SHOW BINLOG EVENTS IN 'master-bin.000007'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000007 4 Query 1 4 use `d1`; BEGIN -master-bin.000007 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 5 + 1 -master-bin.000007 103 Query 1 103 use `d1`; COMMIT -master-bin.000007 142 Query 1 142 use `d1`; RENAME TABLE d1.t3 to d1.t20 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +5 +SHOW BINLOG EVENTS IN 'slave-bin.000007'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +SELECT MAX(f1) FROM t1; +MAX(f1) +5 + +TEST-INFO: MASTER: The INSERT is not committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000007'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000007 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000007 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 5 + 1 +master-bin.000007 # Query 1 # use `mysqltest1`; DROP TEMPORARY TABLE mysqltest1.t23 +master-bin.000007 # Query 1 # use `mysqltest1`; ROLLBACK -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 6 + +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) SHOW BINLOG EVENTS IN 'slave-bin.000007'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000007 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 5 + 1 -slave-bin.000007 65 Query 1 65 use `d1`; RENAME TABLE d1.t3 to d1.t20 +slave-bin.000007 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 5 + 1 +slave-bin.000007 # Query 1 # use `mysqltest1`; DROP TEMPORARY TABLE mysqltest1.t23 + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +SHOW TABLES LIKE 't23'; +Tables_in_mysqltest1 (t23) + +-------- switch to slave -------- +SHOW TABLES LIKE 't23'; +Tables_in_mysqltest1 (t23) + +-------- switch to master ------- + +######## RENAME TABLE mysqltest1.t3 to mysqltest1.t20 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 5 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +6 +SHOW BINLOG EVENTS IN 'master-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +6 +SHOW BINLOG EVENTS IN 'slave-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +RENAME TABLE mysqltest1.t3 to mysqltest1.t20; +SELECT MAX(f1) FROM t1; +MAX(f1) +6 +SHOW BINLOG EVENTS IN 'master-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000008 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000008 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 5 + 1 +master-bin.000008 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000008 # Query 1 # use `mysqltest1`; RENAME TABLE mysqltest1.t3 to mysqltest1.t20 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +6 +SHOW BINLOG EVENTS IN 'slave-bin.000008'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000008 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 5 + 1 +slave-bin.000008 # Query 1 # use `mysqltest1`; RENAME TABLE mysqltest1.t3 to mysqltest1.t20 -------- switch to master ------- ROLLBACK; @@ -664,24 +745,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 6 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000007'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000008'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000007 4 Query 1 4 use `d1`; BEGIN -master-bin.000007 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 5 + 1 -master-bin.000007 103 Query 1 103 use `d1`; COMMIT -master-bin.000007 142 Query 1 142 use `d1`; RENAME TABLE d1.t3 to d1.t20 +master-bin.000008 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000008 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 5 + 1 +master-bin.000008 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000008 # Query 1 # use `mysqltest1`; RENAME TABLE mysqltest1.t3 to mysqltest1.t20 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 6 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000007'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000008'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000007 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 5 + 1 -slave-bin.000007 65 Query 1 65 use `d1`; RENAME TABLE d1.t3 to d1.t20 +slave-bin.000008 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 5 + 1 +slave-bin.000008 # Query 1 # use `mysqltest1`; RENAME TABLE mysqltest1.t3 to mysqltest1.t20 -------- switch to master ------- flush logs; @@ -691,53 +772,53 @@ flush logs; -------- switch to master ------- SHOW TABLES LIKE 't20'; -Tables_in_d1 (t20) +Tables_in_mysqltest1 (t20) t20 -------- switch to slave -------- SHOW TABLES LIKE 't20'; -Tables_in_d1 (t20) +Tables_in_mysqltest1 (t20) t20 -------- switch to master ------- -######## ALTER TABLE d1.t4 ADD column f2 BIGINT ######## +######## ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT ######## -------- switch to master ------- INSERT INTO t1 SET f1= 6 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 7 -SHOW BINLOG EVENTS IN 'master-bin.000008'; +SHOW BINLOG EVENTS IN 'master-bin.000009'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 6 -SHOW BINLOG EVENTS IN 'slave-bin.000008'; +SHOW BINLOG EVENTS IN 'slave-bin.000009'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -ALTER TABLE d1.t4 ADD column f2 BIGINT; +ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT; SELECT MAX(f1) FROM t1; MAX(f1) 7 -SHOW BINLOG EVENTS IN 'master-bin.000008'; +SHOW BINLOG EVENTS IN 'master-bin.000009'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000008 4 Query 1 4 use `d1`; BEGIN -master-bin.000008 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 6 + 1 -master-bin.000008 103 Query 1 103 use `d1`; COMMIT -master-bin.000008 142 Query 1 142 use `d1`; ALTER TABLE d1.t4 ADD column f2 BIGINT +master-bin.000009 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000009 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 6 + 1 +master-bin.000009 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000009 # Query 1 # use `mysqltest1`; ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 7 -SHOW BINLOG EVENTS IN 'slave-bin.000008'; +SHOW BINLOG EVENTS IN 'slave-bin.000009'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000008 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 6 + 1 -slave-bin.000008 65 Query 1 65 use `d1`; ALTER TABLE d1.t4 ADD column f2 BIGINT +slave-bin.000009 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 6 + 1 +slave-bin.000009 # Query 1 # use `mysqltest1`; ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT -------- switch to master ------- ROLLBACK; @@ -745,24 +826,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 7 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000008'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000009'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000008 4 Query 1 4 use `d1`; BEGIN -master-bin.000008 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 6 + 1 -master-bin.000008 103 Query 1 103 use `d1`; COMMIT -master-bin.000008 142 Query 1 142 use `d1`; ALTER TABLE d1.t4 ADD column f2 BIGINT +master-bin.000009 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000009 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 6 + 1 +master-bin.000009 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000009 # Query 1 # use `mysqltest1`; ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 7 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000008'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000009'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000008 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 6 + 1 -slave-bin.000008 65 Query 1 65 use `d1`; ALTER TABLE d1.t4 ADD column f2 BIGINT +slave-bin.000009 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 6 + 1 +slave-bin.000009 # Query 1 # use `mysqltest1`; ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT -------- switch to master ------- flush logs; @@ -771,56 +852,56 @@ flush logs; flush logs; -------- switch to master ------- -describe d1.t4; +describe mysqltest1.t4; Field Type Null Key Default Extra f1 bigint(20) YES NULL f2 bigint(20) YES NULL -------- switch to slave -------- -describe d1.t4; +describe mysqltest1.t4; Field Type Null Key Default Extra f1 bigint(20) YES NULL f2 bigint(20) YES NULL -------- switch to master ------- -######## CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" ######## +######## CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB" ######## -------- switch to master ------- INSERT INTO t1 SET f1= 7 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 8 -SHOW BINLOG EVENTS IN 'master-bin.000009'; +SHOW BINLOG EVENTS IN 'master-bin.000010'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 7 -SHOW BINLOG EVENTS IN 'slave-bin.000009'; +SHOW BINLOG EVENTS IN 'slave-bin.000010'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB"; SELECT MAX(f1) FROM t1; MAX(f1) 8 -SHOW BINLOG EVENTS IN 'master-bin.000009'; +SHOW BINLOG EVENTS IN 'master-bin.000010'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000009 4 Query 1 4 use `d1`; BEGIN -master-bin.000009 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 7 + 1 -master-bin.000009 103 Query 1 103 use `d1`; COMMIT -master-bin.000009 142 Query 1 142 use `d1`; CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000010 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000010 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 7 + 1 +master-bin.000010 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000010 # Query 1 # use `mysqltest1`; CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB" -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 8 -SHOW BINLOG EVENTS IN 'slave-bin.000009'; +SHOW BINLOG EVENTS IN 'slave-bin.000010'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000009 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 7 + 1 -slave-bin.000009 65 Query 1 65 use `d1`; CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000010 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 7 + 1 +slave-bin.000010 # Query 1 # use `mysqltest1`; CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB" -------- switch to master ------- ROLLBACK; @@ -828,24 +909,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 8 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000009'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000010'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000009 4 Query 1 4 use `d1`; BEGIN -master-bin.000009 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 7 + 1 -master-bin.000009 103 Query 1 103 use `d1`; COMMIT -master-bin.000009 142 Query 1 142 use `d1`; CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" +master-bin.000010 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000010 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 7 + 1 +master-bin.000010 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000010 # Query 1 # use `mysqltest1`; CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB" -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 8 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000009'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000010'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000009 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 7 + 1 -slave-bin.000009 65 Query 1 65 use `d1`; CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB" +slave-bin.000010 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 7 + 1 +slave-bin.000010 # Query 1 # use `mysqltest1`; CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB" -------- switch to master ------- flush logs; @@ -855,43 +936,110 @@ flush logs; -------- switch to master ------- -######## TRUNCATE TABLE d1.t7 ######## +######## CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT) ######## -------- switch to master ------- INSERT INTO t1 SET f1= 8 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 9 -SHOW BINLOG EVENTS IN 'master-bin.000010'; +SHOW BINLOG EVENTS IN 'master-bin.000011'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 8 -SHOW BINLOG EVENTS IN 'slave-bin.000010'; +SHOW BINLOG EVENTS IN 'slave-bin.000011'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -TRUNCATE TABLE d1.t7; +CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT); SELECT MAX(f1) FROM t1; MAX(f1) 9 -SHOW BINLOG EVENTS IN 'master-bin.000010'; +SHOW BINLOG EVENTS IN 'master-bin.000011'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000010 4 Query 1 4 use `d1`; BEGIN -master-bin.000010 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 8 + 1 -master-bin.000010 103 Query 1 103 use `d1`; COMMIT -master-bin.000010 142 Query 1 142 use `d1`; TRUNCATE TABLE d1.t7 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +8 +SHOW BINLOG EVENTS IN 'slave-bin.000011'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +SELECT MAX(f1) FROM t1; +MAX(f1) +8 + +TEST-INFO: MASTER: The INSERT is not committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000011'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000011 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000011 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 8 + 1 +master-bin.000011 # Query 1 # use `mysqltest1`; CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT) +master-bin.000011 # Query 1 # use `mysqltest1`; ROLLBACK -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 9 -SHOW BINLOG EVENTS IN 'slave-bin.000010'; + +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000011'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000010 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 8 + 1 -slave-bin.000010 65 Query 1 65 use `d1`; TRUNCATE TABLE d1.t7 +slave-bin.000011 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 8 + 1 +slave-bin.000011 # Query 1 # use `mysqltest1`; CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT) + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- + +######## TRUNCATE TABLE mysqltest1.t7 ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 8 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +9 +SHOW BINLOG EVENTS IN 'master-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +9 +SHOW BINLOG EVENTS IN 'slave-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +TRUNCATE TABLE mysqltest1.t7; +SELECT MAX(f1) FROM t1; +MAX(f1) +9 +SHOW BINLOG EVENTS IN 'master-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000012 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000012 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 8 + 1 +master-bin.000012 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000012 # Query 1 # use `mysqltest1`; TRUNCATE TABLE mysqltest1.t7 + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +9 +SHOW BINLOG EVENTS IN 'slave-bin.000012'; +Log_name Pos Event_type Server_id Orig_log_pos Info +slave-bin.000012 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 8 + 1 +slave-bin.000012 # Query 1 # use `mysqltest1`; TRUNCATE TABLE mysqltest1.t7 -------- switch to master ------- ROLLBACK; @@ -899,24 +1047,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 9 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000010'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000012'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000010 4 Query 1 4 use `d1`; BEGIN -master-bin.000010 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 8 + 1 -master-bin.000010 103 Query 1 103 use `d1`; COMMIT -master-bin.000010 142 Query 1 142 use `d1`; TRUNCATE TABLE d1.t7 +master-bin.000012 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000012 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 8 + 1 +master-bin.000012 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000012 # Query 1 # use `mysqltest1`; TRUNCATE TABLE mysqltest1.t7 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 9 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000010'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000012'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000010 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 8 + 1 -slave-bin.000010 65 Query 1 65 use `d1`; TRUNCATE TABLE d1.t7 +slave-bin.000012 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 8 + 1 +slave-bin.000012 # Query 1 # use `mysqltest1`; TRUNCATE TABLE mysqltest1.t7 -------- switch to master ------- flush logs; @@ -925,50 +1073,50 @@ flush logs; flush logs; -------- switch to master ------- -SELECT * FROM d1.t7; +SELECT * FROM mysqltest1.t7; f1 -------- switch to slave -------- -SELECT * FROM d1.t7; +SELECT * FROM mysqltest1.t7; f1 -------- switch to master ------- -######## LOCK TABLES d1.t1 WRITE, d1.t8 READ ######## +######## LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ ######## -------- switch to master ------- INSERT INTO t1 SET f1= 9 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 10 -SHOW BINLOG EVENTS IN 'master-bin.000011'; +SHOW BINLOG EVENTS IN 'master-bin.000013'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 9 -SHOW BINLOG EVENTS IN 'slave-bin.000011'; +SHOW BINLOG EVENTS IN 'slave-bin.000013'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -LOCK TABLES d1.t1 WRITE, d1.t8 READ; +LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ; SELECT MAX(f1) FROM t1; MAX(f1) 10 -SHOW BINLOG EVENTS IN 'master-bin.000011'; +SHOW BINLOG EVENTS IN 'master-bin.000013'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000011 4 Query 1 4 use `d1`; BEGIN -master-bin.000011 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 9 + 1 -master-bin.000011 103 Query 1 103 use `d1`; COMMIT +master-bin.000013 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000013 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 9 + 1 +master-bin.000013 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 10 -SHOW BINLOG EVENTS IN 'slave-bin.000011'; +SHOW BINLOG EVENTS IN 'slave-bin.000013'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000011 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 9 + 1 +slave-bin.000013 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 9 + 1 -------- switch to master ------- ROLLBACK; @@ -976,22 +1124,22 @@ SELECT MAX(f1) FROM t1; MAX(f1) 10 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000011'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000013'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000011 4 Query 1 4 use `d1`; BEGIN -master-bin.000011 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 9 + 1 -master-bin.000011 103 Query 1 103 use `d1`; COMMIT +master-bin.000013 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000013 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 9 + 1 +master-bin.000013 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 10 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000011'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000013'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000011 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 9 + 1 +slave-bin.000013 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 9 + 1 -------- switch to master ------- flush logs; @@ -1001,7 +1149,6 @@ flush logs; -------- switch to master ------- UNLOCK TABLES; -LOCK TABLES d1.t1 WRITE, d1.t8 READ; ######## UNLOCK TABLES ######## @@ -1010,14 +1157,14 @@ INSERT INTO t1 SET f1= 10 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 11 -SHOW BINLOG EVENTS IN 'master-bin.000012'; +SHOW BINLOG EVENTS IN 'master-bin.000014'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 10 -SHOW BINLOG EVENTS IN 'slave-bin.000012'; +SHOW BINLOG EVENTS IN 'slave-bin.000014'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- @@ -1025,19 +1172,140 @@ UNLOCK TABLES; SELECT MAX(f1) FROM t1; MAX(f1) 11 -SHOW BINLOG EVENTS IN 'master-bin.000012'; +SHOW BINLOG EVENTS IN 'master-bin.000014'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000012 4 Query 1 4 use `d1`; BEGIN -master-bin.000012 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 10 + 1 -master-bin.000012 104 Query 1 104 use `d1`; COMMIT + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'slave-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +10 + +TEST-INFO: MASTER: The INSERT is not committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 + +TEST-INFO: SLAVE: The INSERT is not committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000014'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +LOCK TABLES mysqltest1.t1 READ; + +######## UNLOCK TABLES ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 10 + 1; +ERROR HY000: Table 't1' was locked with a READ lock and can't be updated +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'master-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'slave-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +UNLOCK TABLES; +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'master-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'slave-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +ROLLBACK; +SELECT MAX(f1) FROM t1; +MAX(f1) +10 + +TEST-INFO: MASTER: The INSERT is not committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 + +TEST-INFO: SLAVE: The INSERT is not committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000015'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +flush logs; + +-------- switch to slave -------- +flush logs; + +-------- switch to master ------- +LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ; + +######## UNLOCK TABLES ######## + +-------- switch to master ------- +INSERT INTO t1 SET f1= 10 + 1; +SELECT MAX(f1) FROM t1; +MAX(f1) +11 +SHOW BINLOG EVENTS IN 'master-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to slave -------- +SELECT MAX(f1) FROM t1; +MAX(f1) +10 +SHOW BINLOG EVENTS IN 'slave-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info + +-------- switch to master ------- +UNLOCK TABLES; +SELECT MAX(f1) FROM t1; +MAX(f1) +11 +SHOW BINLOG EVENTS IN 'master-bin.000016'; +Log_name Pos Event_type Server_id Orig_log_pos Info +master-bin.000016 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000016 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 10 + 1 +master-bin.000016 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 11 -SHOW BINLOG EVENTS IN 'slave-bin.000012'; +SHOW BINLOG EVENTS IN 'slave-bin.000016'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000012 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 10 + 1 +slave-bin.000016 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 10 + 1 -------- switch to master ------- ROLLBACK; @@ -1045,22 +1313,22 @@ SELECT MAX(f1) FROM t1; MAX(f1) 11 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000012'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000016'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000012 4 Query 1 4 use `d1`; BEGIN -master-bin.000012 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 10 + 1 -master-bin.000012 104 Query 1 104 use `d1`; COMMIT +master-bin.000016 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000016 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 10 + 1 +master-bin.000016 # Query 1 # use `mysqltest1`; COMMIT -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 11 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000012'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000016'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000012 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 10 + 1 +slave-bin.000016 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 10 + 1 -------- switch to master ------- flush logs; @@ -1070,43 +1338,43 @@ flush logs; -------- switch to master ------- -######## DROP INDEX my_idx6 ON d1.t6 ######## +######## DROP INDEX my_idx6 ON mysqltest1.t6 ######## -------- switch to master ------- INSERT INTO t1 SET f1= 11 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 12 -SHOW BINLOG EVENTS IN 'master-bin.000013'; +SHOW BINLOG EVENTS IN 'master-bin.000017'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 11 -SHOW BINLOG EVENTS IN 'slave-bin.000013'; +SHOW BINLOG EVENTS IN 'slave-bin.000017'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -DROP INDEX my_idx6 ON d1.t6; +DROP INDEX my_idx6 ON mysqltest1.t6; SELECT MAX(f1) FROM t1; MAX(f1) 12 -SHOW BINLOG EVENTS IN 'master-bin.000013'; +SHOW BINLOG EVENTS IN 'master-bin.000017'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000013 4 Query 1 4 use `d1`; BEGIN -master-bin.000013 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 11 + 1 -master-bin.000013 104 Query 1 104 use `d1`; COMMIT -master-bin.000013 143 Query 1 143 use `d1`; DROP INDEX my_idx6 ON d1.t6 +master-bin.000017 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000017 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 11 + 1 +master-bin.000017 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000017 # Query 1 # use `mysqltest1`; DROP INDEX my_idx6 ON mysqltest1.t6 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 12 -SHOW BINLOG EVENTS IN 'slave-bin.000013'; +SHOW BINLOG EVENTS IN 'slave-bin.000017'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000013 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 11 + 1 -slave-bin.000013 66 Query 1 66 use `d1`; DROP INDEX my_idx6 ON d1.t6 +slave-bin.000017 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 11 + 1 +slave-bin.000017 # Query 1 # use `mysqltest1`; DROP INDEX my_idx6 ON mysqltest1.t6 -------- switch to master ------- ROLLBACK; @@ -1114,24 +1382,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 12 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000013'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000017'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000013 4 Query 1 4 use `d1`; BEGIN -master-bin.000013 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 11 + 1 -master-bin.000013 104 Query 1 104 use `d1`; COMMIT -master-bin.000013 143 Query 1 143 use `d1`; DROP INDEX my_idx6 ON d1.t6 +master-bin.000017 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000017 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 11 + 1 +master-bin.000017 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000017 # Query 1 # use `mysqltest1`; DROP INDEX my_idx6 ON mysqltest1.t6 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 12 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000013'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000017'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000013 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 11 + 1 -slave-bin.000013 66 Query 1 66 use `d1`; DROP INDEX my_idx6 ON d1.t6 +slave-bin.000017 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 11 + 1 +slave-bin.000017 # Query 1 # use `mysqltest1`; DROP INDEX my_idx6 ON mysqltest1.t6 -------- switch to master ------- flush logs; @@ -1140,52 +1408,52 @@ flush logs; flush logs; -------- switch to master ------- -SHOW INDEX FROM d1.t6; +SHOW INDEX FROM mysqltest1.t6; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment -------- switch to slave -------- -SHOW INDEX FROM d1.t6; +SHOW INDEX FROM mysqltest1.t6; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment -------- switch to master ------- -######## CREATE INDEX my_idx5 ON d1.t5(f1) ######## +######## CREATE INDEX my_idx5 ON mysqltest1.t5(f1) ######## -------- switch to master ------- INSERT INTO t1 SET f1= 12 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 13 -SHOW BINLOG EVENTS IN 'master-bin.000014'; +SHOW BINLOG EVENTS IN 'master-bin.000018'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 12 -SHOW BINLOG EVENTS IN 'slave-bin.000014'; +SHOW BINLOG EVENTS IN 'slave-bin.000018'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -CREATE INDEX my_idx5 ON d1.t5(f1); +CREATE INDEX my_idx5 ON mysqltest1.t5(f1); SELECT MAX(f1) FROM t1; MAX(f1) 13 -SHOW BINLOG EVENTS IN 'master-bin.000014'; +SHOW BINLOG EVENTS IN 'master-bin.000018'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000014 4 Query 1 4 use `d1`; BEGIN -master-bin.000014 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 12 + 1 -master-bin.000014 104 Query 1 104 use `d1`; COMMIT -master-bin.000014 143 Query 1 143 use `d1`; CREATE INDEX my_idx5 ON d1.t5(f1) +master-bin.000018 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000018 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 12 + 1 +master-bin.000018 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000018 # Query 1 # use `mysqltest1`; CREATE INDEX my_idx5 ON mysqltest1.t5(f1) -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 13 -SHOW BINLOG EVENTS IN 'slave-bin.000014'; +SHOW BINLOG EVENTS IN 'slave-bin.000018'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000014 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 12 + 1 -slave-bin.000014 66 Query 1 66 use `d1`; CREATE INDEX my_idx5 ON d1.t5(f1) +slave-bin.000018 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 12 + 1 +slave-bin.000018 # Query 1 # use `mysqltest1`; CREATE INDEX my_idx5 ON mysqltest1.t5(f1) -------- switch to master ------- ROLLBACK; @@ -1193,24 +1461,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 13 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000014'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000018'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000014 4 Query 1 4 use `d1`; BEGIN -master-bin.000014 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 12 + 1 -master-bin.000014 104 Query 1 104 use `d1`; COMMIT -master-bin.000014 143 Query 1 143 use `d1`; CREATE INDEX my_idx5 ON d1.t5(f1) +master-bin.000018 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000018 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 12 + 1 +master-bin.000018 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000018 # Query 1 # use `mysqltest1`; CREATE INDEX my_idx5 ON mysqltest1.t5(f1) -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 13 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000014'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000018'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000014 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 12 + 1 -slave-bin.000014 66 Query 1 66 use `d1`; CREATE INDEX my_idx5 ON d1.t5(f1) +slave-bin.000018 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 12 + 1 +slave-bin.000018 # Query 1 # use `mysqltest1`; CREATE INDEX my_idx5 ON mysqltest1.t5(f1) -------- switch to master ------- flush logs; @@ -1219,54 +1487,54 @@ flush logs; flush logs; -------- switch to master ------- -SHOW INDEX FROM d1.t5; +SHOW INDEX FROM mysqltest1.t5; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment t5 1 my_idx5 1 f1 A 0 NULL NULL YES BTREE -------- switch to slave -------- -SHOW INDEX FROM d1.t5; +SHOW INDEX FROM mysqltest1.t5; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment t5 1 my_idx5 1 f1 A NULL NULL NULL YES BTREE -------- switch to master ------- -######## DROP DATABASE d2 ######## +######## DROP DATABASE mysqltest2 ######## -------- switch to master ------- INSERT INTO t1 SET f1= 13 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 14 -SHOW BINLOG EVENTS IN 'master-bin.000015'; +SHOW BINLOG EVENTS IN 'master-bin.000019'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 13 -SHOW BINLOG EVENTS IN 'slave-bin.000015'; +SHOW BINLOG EVENTS IN 'slave-bin.000019'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -DROP DATABASE d2; +DROP DATABASE mysqltest2; SELECT MAX(f1) FROM t1; MAX(f1) 14 -SHOW BINLOG EVENTS IN 'master-bin.000015'; +SHOW BINLOG EVENTS IN 'master-bin.000019'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000015 4 Query 1 4 use `d1`; BEGIN -master-bin.000015 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 13 + 1 -master-bin.000015 104 Query 1 104 use `d1`; COMMIT -master-bin.000015 143 Query 1 143 DROP DATABASE d2 +master-bin.000019 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000019 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 13 + 1 +master-bin.000019 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000019 # Query 1 # DROP DATABASE mysqltest2 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 14 -SHOW BINLOG EVENTS IN 'slave-bin.000015'; +SHOW BINLOG EVENTS IN 'slave-bin.000019'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000015 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 13 + 1 -slave-bin.000015 66 Query 1 66 DROP DATABASE d2 +slave-bin.000019 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 13 + 1 +slave-bin.000019 # Query 1 # DROP DATABASE mysqltest2 -------- switch to master ------- ROLLBACK; @@ -1274,24 +1542,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 14 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000015'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000019'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000015 4 Query 1 4 use `d1`; BEGIN -master-bin.000015 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 13 + 1 -master-bin.000015 104 Query 1 104 use `d1`; COMMIT -master-bin.000015 143 Query 1 143 DROP DATABASE d2 +master-bin.000019 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000019 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 13 + 1 +master-bin.000019 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000019 # Query 1 # DROP DATABASE mysqltest2 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 14 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000015'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000019'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000015 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 13 + 1 -slave-bin.000015 66 Query 1 66 DROP DATABASE d2 +slave-bin.000019 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 13 + 1 +slave-bin.000019 # Query 1 # DROP DATABASE mysqltest2 -------- switch to master ------- flush logs; @@ -1300,52 +1568,52 @@ flush logs; flush logs; -------- switch to master ------- -SHOW DATABASES LIKE "d2"; -Database (d2) +SHOW DATABASES LIKE "mysqltest2"; +Database (mysqltest2) -------- switch to slave -------- -SHOW DATABASES LIKE "d2"; -Database (d2) +SHOW DATABASES LIKE "mysqltest2"; +Database (mysqltest2) -------- switch to master ------- -######## CREATE DATABASE d3 ######## +######## CREATE DATABASE mysqltest3 ######## -------- switch to master ------- INSERT INTO t1 SET f1= 14 + 1; SELECT MAX(f1) FROM t1; MAX(f1) 15 -SHOW BINLOG EVENTS IN 'master-bin.000016'; +SHOW BINLOG EVENTS IN 'master-bin.000020'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 14 -SHOW BINLOG EVENTS IN 'slave-bin.000016'; +SHOW BINLOG EVENTS IN 'slave-bin.000020'; Log_name Pos Event_type Server_id Orig_log_pos Info -------- switch to master ------- -CREATE DATABASE d3; +CREATE DATABASE mysqltest3; SELECT MAX(f1) FROM t1; MAX(f1) 15 -SHOW BINLOG EVENTS IN 'master-bin.000016'; +SHOW BINLOG EVENTS IN 'master-bin.000020'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000016 4 Query 1 4 use `d1`; BEGIN -master-bin.000016 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 14 + 1 -master-bin.000016 104 Query 1 104 use `d1`; COMMIT -master-bin.000016 143 Query 1 143 CREATE DATABASE d3 +master-bin.000020 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000020 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 14 + 1 +master-bin.000020 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000020 # Query 1 # CREATE DATABASE mysqltest3 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 15 -SHOW BINLOG EVENTS IN 'slave-bin.000016'; +SHOW BINLOG EVENTS IN 'slave-bin.000020'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000016 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 14 + 1 -slave-bin.000016 66 Query 1 66 CREATE DATABASE d3 +slave-bin.000020 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 14 + 1 +slave-bin.000020 # Query 1 # CREATE DATABASE mysqltest3 -------- switch to master ------- ROLLBACK; @@ -1353,24 +1621,24 @@ SELECT MAX(f1) FROM t1; MAX(f1) 15 -TEST-INFO: MASTER: The INSERT is committed -SHOW BINLOG EVENTS IN 'master-bin.000016'; +TEST-INFO: MASTER: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'master-bin.000020'; Log_name Pos Event_type Server_id Orig_log_pos Info -master-bin.000016 4 Query 1 4 use `d1`; BEGIN -master-bin.000016 42 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 14 + 1 -master-bin.000016 104 Query 1 104 use `d1`; COMMIT -master-bin.000016 143 Query 1 143 CREATE DATABASE d3 +master-bin.000020 # Query 1 # use `mysqltest1`; BEGIN +master-bin.000020 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 14 + 1 +master-bin.000020 # Query 1 # use `mysqltest1`; COMMIT +master-bin.000020 # Query 1 # CREATE DATABASE mysqltest3 -------- switch to slave -------- SELECT MAX(f1) FROM t1; MAX(f1) 15 -TEST-INFO: SLAVE: The INSERT is committed -SHOW BINLOG EVENTS IN 'slave-bin.000016'; +TEST-INFO: SLAVE: The INSERT is committed (Succeeded) +SHOW BINLOG EVENTS IN 'slave-bin.000020'; Log_name Pos Event_type Server_id Orig_log_pos Info -slave-bin.000016 4 Query 1 4 use `d1`; INSERT INTO t1 SET f1= 14 + 1 -slave-bin.000016 66 Query 1 66 CREATE DATABASE d3 +slave-bin.000020 # Query 1 # use `mysqltest1`; INSERT INTO t1 SET f1= 14 + 1 +slave-bin.000020 # Query 1 # CREATE DATABASE mysqltest3 -------- switch to master ------- flush logs; @@ -1379,16 +1647,16 @@ flush logs; flush logs; -------- switch to master ------- -SHOW DATABASES LIKE "d3"; -Database (d3) -d3 +SHOW DATABASES LIKE "mysqltest3"; +Database (mysqltest3) +mysqltest3 -------- switch to slave -------- -SHOW DATABASES LIKE "d3"; -Database (d3) -d3 +SHOW DATABASES LIKE "mysqltest3"; +Database (mysqltest3) +mysqltest3 -------- switch to master ------- -DROP DATABASE IF EXISTS d1; -DROP DATABASE IF EXISTS d2; -DROP DATABASE IF EXISTS d3; +DROP DATABASE IF EXISTS mysqltest1; +DROP DATABASE IF EXISTS mysqltest2; +DROP DATABASE IF EXISTS mysqltest3; diff --git a/mysql-test/t/rpl_ddl.test b/mysql-test/t/rpl_ddl.test index a99a71a841b..d9b09d397b5 100644 --- a/mysql-test/t/rpl_ddl.test +++ b/mysql-test/t/rpl_ddl.test @@ -1,4 +1,4 @@ -######################## rpl-ddl.test ######################## +######################## rpl_ddl.test ######################## # # # DDL statements (sometimes with implicit COMMIT) executed # # by the master and it's propagation into the slave # @@ -28,89 +28,65 @@ # eval SELECT CONCAT('######## ','$my_stmt',' ########') as ""; # -######## tested DDL commands -# -# let $my_stmt= COMMIT; -# let $my_stmt= ROLLBACK; -# let $my_stmt= SET AUTOCOMMIT=1; -# let $my_stmt= START TRANSACTION; -# let $my_stmt= BEGIN; -# let $my_stmt= DROP TABLE d1.t2; -# let $my_stmt= RENAME TABLE d1.t3 to d1.t20; <- wrong syntax !! -# let $my_stmt= ALTER TABLE d1.t4 ADD column f2 BIGINT; -# let $my_stmt= CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB"; -# let $my_stmt= TRUNCATE TABLE d1.t7; -# let $my_stmt= LOCK TABLES d1.t1 WRITE, d1.t8 READ; -# let $my_stmt= UNLOCK TABLES; -# let $my_stmt= DROP INDEX my_idx6 ON d1.t6; -# let $my_stmt= CREATE INDEX my_idx5 ON d1.t5(f1); -# let $my_stmt= DROP DATABASE d2; -# let $my_stmt= CREATE DATABASE d3; -# -# FIXME: @code{LOAD MASTER DATA} is not tested -# -############################################# - --source include/have_innodb.inc -source include/master-slave.inc; +--source include/master-slave.inc - -######## some preparations -# +############################################################### +# Some preparations +############################################################### SET AUTOCOMMIT = 1; # # 1. DROP all objects, which probably already exist, but must be created here # --disable_warnings -DROP DATABASE IF EXISTS d1; -DROP DATABASE IF EXISTS d2; -DROP DATABASE IF EXISTS d3; +DROP DATABASE IF EXISTS mysqltest1; +DROP DATABASE IF EXISTS mysqltest2; +DROP DATABASE IF EXISTS mysqltest3; --enable_warnings # # 2. CREATE all objects needed -# working database is d1 -# working (transactional!) is d1.t1 +# working database is mysqltest1 +# working (transactional!) is mysqltest1.t1 # -CREATE DATABASE d1; -CREATE DATABASE d2; -CREATE TABLE d1.t1 (f1 BIGINT) ENGINE= "InnoDB"; -INSERT INTO d1.t1 SET f1= 0; -CREATE TABLE d1.t2 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t3 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t4 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t5 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t6 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE INDEX my_idx6 ON d1.t6(f1); -CREATE TABLE d1.t7 (f1 BIGINT) ENGINE= "InnoDB"; -INSERT INTO d1.t7 SET f1= 0; -CREATE TABLE d1.t8 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t9 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t10 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t11 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t12 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t13 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t14 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t15 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t16 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t17 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t18 (f1 BIGINT) ENGINE= "InnoDB"; -CREATE TABLE d1.t19 (f1 BIGINT) ENGINE= "InnoDB"; -# -COMMIT; # Just to be sure +CREATE DATABASE mysqltest1; +CREATE DATABASE mysqltest2; +CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB"; +INSERT INTO mysqltest1.t1 SET f1= 0; +CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE INDEX my_idx6 ON mysqltest1.t6(f1); +CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB"; +INSERT INTO mysqltest1.t7 SET f1= 0; +CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB"; +CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT); + # # 3. master sessions: never do AUTOCOMMIT -# slave sessions: do AUTOCOMMIT, because we want to see fresh values -# every time -# default database is d1 +# slave sessions: never do AUTOCOMMIT +# SET AUTOCOMMIT = 0; -use d1; +use mysqltest1; sync_slave_with_master; connection slave; --disable_query_log SELECT '-------- switch to slave --------' as ""; --enable_query_log -SET AUTOCOMMIT = 1; -use d1; +SET AUTOCOMMIT = 0; +use mysqltest1; connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; @@ -122,27 +98,48 @@ SELECT '-------- switch to master -------' as ""; # sequences are nearly independend of the previous statements. --disable_abort_on_error -###### banal case: (explicit) COMMIT and ROLLBACK -# just for checking if the test sequence is usable +############################################################### +# Banal case: (explicit) COMMIT and ROLLBACK +# Just for checking if the test sequence is usable +############################################################### + let $my_stmt= COMMIT; ---source include/rpl_stmt_seq.inc -let $my_stmt= ROLLBACK; +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc -###### cases with commands very similar to COMMIT +let $my_stmt= ROLLBACK; +let $my_master_commit= false; +let $my_slave_commit= false; +--source include/rpl_stmt_seq.inc + +############################################################### +# Cases with commands very similar to COMMIT +############################################################### + let $my_stmt= SET AUTOCOMMIT=1; +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc SET AUTOCOMMIT=0; -# + let $my_stmt= START TRANSACTION; ---source include/rpl_stmt_seq.inc -# -let $my_stmt= BEGIN; +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc -###### cases with commands, which create or drop objects -#### (BASE) TABLES and (UPDATABLE) VIEWs -let $my_stmt= DROP TABLE d1.t2; +let $my_stmt= BEGIN; +let $my_master_commit= true; +let $my_slave_commit= true; +--source include/rpl_stmt_seq.inc + +############################################################### +# Cases with (BASE) TABLES and (UPDATABLE) VIEWs +############################################################### + +let $my_stmt= DROP TABLE mysqltest1.t2; +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc SHOW TABLES LIKE 't2'; connection slave; @@ -154,8 +151,31 @@ connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; --enable_query_log -# -let $my_stmt= RENAME TABLE d1.t3 to d1.t20; + +# Note: Since this test is executed with a skip-innodb slave, the +# slave incorrectly commits the insert. One can *not* have InnoDB on +# master and MyISAM on slave and expect that a transactional rollback +# after a CREATE TEMPORARY TABLE should work correctly on the slave. +# For this to work properly the handler on the slave must be able to +# handle transactions (e.g. InnoDB or NDB). +let $my_stmt= DROP TEMPORARY TABLE mysqltest1.t23; +let $my_master_commit= false; +let $my_slave_commit= true; +--source include/rpl_stmt_seq.inc +SHOW TABLES LIKE 't23'; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW TABLES LIKE 't23'; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log + +let $my_stmt= RENAME TABLE mysqltest1.t3 to mysqltest1.t20; +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc SHOW TABLES LIKE 't20'; connection slave; @@ -167,102 +187,158 @@ connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; --enable_query_log -# -let $my_stmt= ALTER TABLE d1.t4 ADD column f2 BIGINT; + +let $my_stmt= ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT; +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc -describe d1.t4; +describe mysqltest1.t4; connection slave; --disable_query_log SELECT '-------- switch to slave --------' as ""; --enable_query_log -describe d1.t4; +describe mysqltest1.t4; connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; --enable_query_log -# -let $my_stmt= CREATE TABLE d1.t21 (f1 BIGINT) ENGINE= "InnoDB"; + +let $my_stmt= CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB"; +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc -# -let $my_stmt= TRUNCATE TABLE d1.t7; + +# Note: Since this test is executed with a skip-innodb slave, the +# slave incorrectly commits the insert. One can *not* have InnoDB on +# master and MyISAM on slave and expect that a transactional rollback +# after a CREATE TEMPORARY TABLE should work correctly on the slave. +# For this to work properly the handler on the slave must be able to +# handle transactions (e.g. InnoDB or NDB). +let $my_stmt= CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT); +let $my_master_commit= false; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc -SELECT * FROM d1.t7; + +let $my_stmt= TRUNCATE TABLE mysqltest1.t7; +let $my_master_commit= true; +let $my_slave_commit= true; +--source include/rpl_stmt_seq.inc +SELECT * FROM mysqltest1.t7; connection slave; --disable_query_log SELECT '-------- switch to slave --------' as ""; --enable_query_log -SELECT * FROM d1.t7; +SELECT * FROM mysqltest1.t7; connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; --enable_query_log -# -# MySQL insists in locking d1.t1, because rpl_stmt_seq performs an INSERT into -# this table. -let $my_stmt= LOCK TABLES d1.t1 WRITE, d1.t8 READ; + +############################################################### +# Cases with LOCK/UNLOCK +############################################################### + +# MySQL insists in locking mysqltest1.t1, because rpl_stmt_seq performs an +# INSERT into this table. +let $my_stmt= LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ; +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc UNLOCK TABLES; -# -LOCK TABLES d1.t1 WRITE, d1.t8 READ; + +# No prior locking let $my_stmt= UNLOCK TABLES; +let $my_master_commit= false; +let $my_slave_commit= false; --source include/rpl_stmt_seq.inc -# -#### INDEXES -let $my_stmt= DROP INDEX my_idx6 ON d1.t6; + +# With prior read locking +LOCK TABLES mysqltest1.t1 READ; +let $my_stmt= UNLOCK TABLES; +let $my_master_commit= false; +let $my_slave_commit= false; --source include/rpl_stmt_seq.inc -SHOW INDEX FROM d1.t6; + +# With prior write locking +LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ; +let $my_stmt= UNLOCK TABLES; +let $my_master_commit= true; +let $my_slave_commit= true; +--source include/rpl_stmt_seq.inc + +############################################################### +# Cases with INDEXES +############################################################### + +let $my_stmt= DROP INDEX my_idx6 ON mysqltest1.t6; +let $my_master_commit= true; +let $my_slave_commit= true; +--source include/rpl_stmt_seq.inc +SHOW INDEX FROM mysqltest1.t6; connection slave; --disable_query_log SELECT '-------- switch to slave --------' as ""; --enable_query_log -SHOW INDEX FROM d1.t6; -connection master; ---disable_query_log -SELECT '-------- switch to master -------' as ""; ---enable_query_log -# -let $my_stmt= CREATE INDEX my_idx5 ON d1.t5(f1); ---source include/rpl_stmt_seq.inc -SHOW INDEX FROM d1.t5; -connection slave; ---disable_query_log -SELECT '-------- switch to slave --------' as ""; ---enable_query_log -SHOW INDEX FROM d1.t5; +SHOW INDEX FROM mysqltest1.t6; connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; --enable_query_log -#### DATABASES -let $my_stmt= DROP DATABASE d2; +let $my_stmt= CREATE INDEX my_idx5 ON mysqltest1.t5(f1); +let $my_master_commit= true; +let $my_slave_commit= true; --source include/rpl_stmt_seq.inc -SHOW DATABASES LIKE "d2"; +SHOW INDEX FROM mysqltest1.t5; connection slave; --disable_query_log SELECT '-------- switch to slave --------' as ""; --enable_query_log -SHOW DATABASES LIKE "d2"; -connection master; ---disable_query_log -SELECT '-------- switch to master -------' as ""; ---enable_query_log -# -let $my_stmt= CREATE DATABASE d3; ---source include/rpl_stmt_seq.inc -SHOW DATABASES LIKE "d3"; -connection slave; ---disable_query_log -SELECT '-------- switch to slave --------' as ""; ---enable_query_log -SHOW DATABASES LIKE "d3"; +SHOW INDEX FROM mysqltest1.t5; connection master; --disable_query_log SELECT '-------- switch to master -------' as ""; --enable_query_log +############################################################### +# Cases with DATABASE +############################################################### + +let $my_stmt= DROP DATABASE mysqltest2; +let $my_master_commit= true; +let $my_slave_commit= true; +--source include/rpl_stmt_seq.inc +SHOW DATABASES LIKE "mysqltest2"; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW DATABASES LIKE "mysqltest2"; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log + +let $my_stmt= CREATE DATABASE mysqltest3; +let $my_master_commit= true; +let $my_slave_commit= true; +--source include/rpl_stmt_seq.inc +SHOW DATABASES LIKE "mysqltest3"; +connection slave; +--disable_query_log +SELECT '-------- switch to slave --------' as ""; +--enable_query_log +SHOW DATABASES LIKE "mysqltest3"; +connection master; +--disable_query_log +SELECT '-------- switch to master -------' as ""; +--enable_query_log + +############################################################### +# Cleanup +############################################################### --disable_warnings -DROP DATABASE IF EXISTS d1; -DROP DATABASE IF EXISTS d2; -DROP DATABASE IF EXISTS d3; +DROP DATABASE IF EXISTS mysqltest1; +DROP DATABASE IF EXISTS mysqltest2; +DROP DATABASE IF EXISTS mysqltest3; --enable_warnings diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ce0c43f7296..d49da56f113 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2410,10 +2410,19 @@ mysql_execute_command(THD *thd) case SQLCOM_CREATE_TABLE: { /* If CREATE TABLE of non-temporary table, do implicit commit */ - if (!(lex->create_info.options & HA_LEX_CREATE_TMP_TABLE) && - end_active_trans(thd)) - res= -1; - + if (!(lex->create_info.options & HA_LEX_CREATE_TMP_TABLE)) + { + if (end_active_trans(thd)) + { + res= -1; + break; + } + } + else + { + /* So that CREATE TEMPORARY TABLE gets flushed to binlog */ + thd->options|= (OPTION_STATUS_NO_TRANS_UPDATE); + } /* Skip first table, which is the table we are creating */ TABLE_LIST *create_table, *create_table_local; tables= lex->unlink_first_table(tables, &create_table, @@ -2979,6 +2988,9 @@ unsent_create_error: */ if (thd->slave_thread) lex->drop_if_exists= 1; + + /* So that DROP TEMPORARY TABLE gets flushed to binlog */ + thd->options|= (OPTION_STATUS_NO_TRANS_UPDATE); } res= mysql_rm_table(thd,tables,lex->drop_if_exists, lex->drop_temporary); } From b906f31388b5c7c5a7cbd38b9a2f7b2f38b4b0c2 Mon Sep 17 00:00:00 2001 From: "elliot@mysql.com" <> Date: Mon, 6 Jun 2005 22:17:16 -0400 Subject: [PATCH 3/6] BUG#7967 Fix mysqlhotcopy --record-log-position --- .bzrignore | 1 + scripts/mysqlhotcopy.sh | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.bzrignore b/.bzrignore index c9f9f140366..174fc6020f2 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1052,3 +1052,4 @@ vio/test-ssl vio/test-sslclient vio/test-sslserver vio/viotest-ssl +scripts/mysqlhotcopy.sh.rej diff --git a/scripts/mysqlhotcopy.sh b/scripts/mysqlhotcopy.sh index 632174dc41a..1c5cd6a4faf 100644 --- a/scripts/mysqlhotcopy.sh +++ b/scripts/mysqlhotcopy.sh @@ -746,9 +746,15 @@ sub record_log_pos { my ($file,$position) = get_row( $dbh, "show master status" ); die "master status is undefined" if !defined $file || !defined $position; - my ($master_host, undef, undef, undef, $log_file, $log_pos ) - = get_row( $dbh, "show slave status" ); - + my $row_hash = get_row_hash( $dbh, "show slave status" ); + my ($master_host, $log_file, $log_pos ); + if ( $dbh->{mysql_serverinfo} =~ /^3\.23/ ) { + ($master_host, $log_file, $log_pos ) + = @{$row_hash}{ qw / Master_Host Log_File Pos / }; + } else { + ($master_host, $log_file, $log_pos ) + = @{$row_hash}{ qw / Master_Host Master_Log_File Read_Master_Log_Pos / }; + } my $hostname = hostname(); $dbh->do( qq{ replace into $table_name @@ -773,6 +779,14 @@ sub get_row { return $sth->fetchrow_array(); } +sub get_row_hash { + my ( $dbh, $sql ) = @_; + + my $sth = $dbh->prepare($sql); + $sth->execute; + return $sth->fetchrow_hashref(); +} + sub scan_raid_dir { my ( $r_db_files, $data_dir, @raid_dir ) = @_; From 093573b6b722b17bf550bebb2058fa8cac33c110 Mon Sep 17 00:00:00 2001 From: "bar@mysql.com" <> Date: Tue, 7 Jun 2005 13:56:42 +0500 Subject: [PATCH 4/6] Bug#10253: compound index length and utf8 char set produces invalid query results mi_key.c: well_formed_length should be executed before space trimming, not after. ctype_utf8.test: ctype_utf8.result: adding test. --- myisam/mi_key.c | 6 +++--- mysql-test/r/ctype_utf8.result | 11 +++++++++++ mysql-test/t/ctype_utf8.test | 14 ++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/myisam/mi_key.c b/myisam/mi_key.c index b7240f34538..6a8d88f1117 100644 --- a/myisam/mi_key.c +++ b/myisam/mi_key.c @@ -84,7 +84,8 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key, pos= (byte*) record+keyseg->start; if (keyseg->flag & HA_SPACE_PACK) { - end=pos+length; + FIX_LENGTH(cs, pos, length, char_length); + end= pos + char_length; if (type != HA_KEYTYPE_NUM) { while (end > pos && end[-1] == ' ') @@ -95,8 +96,7 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key, while (pos < end && pos[0] == ' ') pos++; } - length=(uint) (end-pos); - FIX_LENGTH(cs, pos, length, char_length); + char_length= (uint) (end - pos); store_key_length_inc(key,char_length); memcpy((byte*) key,(byte*) pos,(size_t) char_length); key+=char_length; diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index b7aa7c68b67..ac421ea1717 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -891,3 +891,14 @@ string create table t1 (a varchar(255)) default character set utf8; insert into t1 values (1.0); drop table t1; +create table t1 ( +id int not null, +city varchar(20) not null, +key (city(7),id) +) character set=utf8; +insert into t1 values (1,'Durban North'); +insert into t1 values (2,'Durban'); +select * from t1 where city = 'Durban'; +id city +2 Durban +drop table t1; diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test index bac6e60c302..a281558e5a1 100644 --- a/mysql-test/t/ctype_utf8.test +++ b/mysql-test/t/ctype_utf8.test @@ -731,3 +731,17 @@ select ifnull(NULL, _utf8'string'); create table t1 (a varchar(255)) default character set utf8; insert into t1 values (1.0); drop table t1; + +# +# Bug#10253 compound index length and utf8 char set +# produces invalid query results +# +create table t1 ( + id int not null, + city varchar(20) not null, + key (city(7),id) +) character set=utf8; +insert into t1 values (1,'Durban North'); +insert into t1 values (2,'Durban'); +select * from t1 where city = 'Durban'; +drop table t1; From 2a1f5c074842ee44d7c7289917311468ea18d464 Mon Sep 17 00:00:00 2001 From: "elliot@mysql.com" <> Date: Tue, 7 Jun 2005 05:10:18 -0400 Subject: [PATCH 5/6] Accepted openlogging --- BitKeeper/etc/logging_ok | 1 + 1 file changed, 1 insertion(+) diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index ce1e179789e..343fb26c83a 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -47,6 +47,7 @@ dlenev@build.mysql.com dlenev@jabberwock.localdomain dlenev@mysql.com ejonore@mc03.ndb.mysql.com +elliot@mysql.com evgen@moonbone.(none) evgen@moonbone.local gbichot@bk-internal.mysql.com From cd2fbb01c490e10073a032271c96dc12eabd634b Mon Sep 17 00:00:00 2001 From: "lars@mysql.com" <> Date: Tue, 7 Jun 2005 11:47:59 +0200 Subject: [PATCH 6/6] BUG#6883: Changed comment, style --- sql/sql_parse.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index d49da56f113..9d27fd9712b 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2420,8 +2420,8 @@ mysql_execute_command(THD *thd) } else { - /* So that CREATE TEMPORARY TABLE gets flushed to binlog */ - thd->options|= (OPTION_STATUS_NO_TRANS_UPDATE); + /* So that CREATE TEMPORARY TABLE gets to binlog at commit/rollback */ + thd->options|= OPTION_STATUS_NO_TRANS_UPDATE; } /* Skip first table, which is the table we are creating */ TABLE_LIST *create_table, *create_table_local; @@ -2989,8 +2989,8 @@ unsent_create_error: if (thd->slave_thread) lex->drop_if_exists= 1; - /* So that DROP TEMPORARY TABLE gets flushed to binlog */ - thd->options|= (OPTION_STATUS_NO_TRANS_UPDATE); + /* So that DROP TEMPORARY TABLE gets to binlog at commit/rollback */ + thd->options|= OPTION_STATUS_NO_TRANS_UPDATE; } res= mysql_rm_table(thd,tables,lex->drop_if_exists, lex->drop_temporary); }