MySQL Lists are EOL. Please join:

List:Internals« Previous MessageNext Message »
From:Lars Thalmann Date:May 27 2005 2:17am
Subject:bk commit into 4.1 tree (lars:1.2295) BUG#6883
View as plain text  
Below is the list of changes that have just been committed into a local
4.1 repository of lars. When lars does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2295 05/05/27 04:17:33 lars@stripped +7 -0
  BUG#6883: Added implicit commit for CREATE TABLE, TRUNCATE TABLE and DROP/CREATE DATABASE

  mysql-test/t/rpl_ddl.test
    1.1 05/05/27 04:17:27 lars@stripped +268 -0

  mysql-test/r/rpl_ddl.result
    1.1 05/05/27 04:17:27 lars@stripped +1394 -0

  mysql-test/t/rpl_ddl.test
    1.0 05/05/27 04:17:27 lars@stripped +0 -0
    BitKeeper file /home/bk/b6883-mysql-4.1/mysql-test/t/rpl_ddl.test

  mysql-test/r/rpl_ddl.result
    1.0 05/05/27 04:17:27 lars@stripped +0 -0
    BitKeeper file /home/bk/b6883-mysql-4.1/mysql-test/r/rpl_ddl.result

  mysql-test/include/rpl_stmt_seq.inc
    1.1 05/05/27 04:17:26 lars@stripped +155 -0

  sql/sql_parse.cc
    1.436 05/05/27 04:17:26 lars@stripped +20 -0
    Added implicit commit for temp table CREATE TABLE, TRUNCATE TABLE, CREATE/DROP DATABASE.

  mysql-test/t/innodb.test
    1.69 05/05/27 04:17:26 lars@stripped +0 -1
    Truncate table now succeed even if there is an open transaction

  mysql-test/r/innodb_cache.result
    1.12 05/05/27 04:17:26 lars@stripped +1 -1
    One query in cache

  mysql-test/r/innodb.result
    1.100 05/05/27 04:17:26 lars@stripped +3 -4
    Truncate table now work even if there is open trx

  mysql-test/include/rpl_stmt_seq.inc
    1.0 05/05/27 04:17:26 lars@stripped +0 -0
    BitKeeper file /home/bk/b6883-mysql-4.1/mysql-test/include/rpl_stmt_seq.inc

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	lars
# Host:	goldfish.site
# Root:	/home/bk/b6883-mysql-4.1

--- 1.435/sql/sql_parse.cc	2005-05-24 14:38:32 +02:00
+++ 1.436/sql/sql_parse.cc	2005-05-27 04:17:26 +02:00
@@ -2409,6 +2409,11 @@
 
   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 @@
     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 @@
     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 @@
   }
   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))
     {
--- New file ---
+++ mysql-test/include/rpl_stmt_seq.inc	05/05/27 04:17:26
# 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 <current log>
# 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

--- New file ---
+++ mysql-test/r/rpl_ddl.result	05/05/27 04:17:27
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;

--- New file ---
+++ mysql-test/t/rpl_ddl.test	05/05/27 04:17:27
######################## 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


--- 1.99/mysql-test/r/innodb.result	2005-05-14 15:24:32 +02:00
+++ 1.100/mysql-test/r/innodb.result	2005-05-27 04:17:26 +02:00
@@ -875,7 +875,6 @@
 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 @@
 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 @@
 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

--- 1.68/mysql-test/t/innodb.test	2005-05-13 22:34:05 +02:00
+++ 1.69/mysql-test/t/innodb.test	2005-05-27 04:17:26 +02:00
@@ -570,7 +570,6 @@
 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;

--- 1.11/mysql-test/r/innodb_cache.result	2004-06-26 14:21:26 +02:00
+++ 1.12/mysql-test/r/innodb_cache.result	2005-05-27 04:17:26 +02:00
@@ -24,7 +24,7 @@
 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;
Thread
bk commit into 4.1 tree (lars:1.2295) BUG#6883Lars Thalmann27 May