mariadb/mysql-test/t/rpl000013.test
aelkin/elkin@andrepl.dsl.inet.fi 7be4bc4e55 Changes made according to HLD/LLD.
The following is an excerption from the WL.
      
   1. Change so that MIXED is default format
      1.1 to change the default for command line --binlog-format
      1.2 to alter global_system_variables.binlog_format calculation
          basing on command line --binlog-format parameter and 
          its default.
   2. Change test suite so that more testing is done by MIXED format.
      2.1 to check if there are test cases requiring --binlog-foramt=statement via
          `source include/have_binlog_format_statement.inc' and affected by 
          altering the latter to be "mixed".
      2.2 to check the content of such vulnerable cases to find if
          extending to the mixed does not modify results. In that case simply
          substitute source arguments as explained.
      2.3 if a test in mixed mode deals with features triggering
          row-binlogging then if necessary we can switch explicitly
          to statement mode or create another test to run with 
          non-recommended STATEMENT mode
   
          Particullarily, extracting INSERT DELAYED 
          binlogging subtest for statement mode is performed, and 
          the snippet is moved into a separate test file.
          Note that since now all three modes verify this use case
          through 3 different tests.
   
   No changes in item 3 of HLD appeared to be needed.
2006-08-30 10:22:43 +03:00

53 lines
1.4 KiB
Text

# This test is to verify that DROP TEMPORARY TABLE
# is automatically binlogged and sent to slave
# when a temp table is dropped by disconnection
# of a master's conection.
# So it does not apply to row-based, where we neither need
# nor do this automatic binlogging. And if we run this test
# in row-based, it hangs waiting for an offset which is never
# reached (the "sync_with_master 1"), logically.
--source include/have_binlog_format_mixed_or_statement.inc
source include/master-slave.inc;
save_master_pos;
connection slave;
sync_with_master;
connection master;
create table t2(n int);
create temporary table t1 (n int);
insert into t1 values(1),(2),(3);
insert into t2 select * from t1;
connection master1;
create temporary table t1 (n int);
insert into t1 values (4),(5);
insert into t2 select * from t1 as t10;
save_master_pos;
disconnect master;
connection slave;
#add 1 to catch drop table
sync_with_master 1;
connection master1;
insert into t2 values(6);
save_master_pos;
disconnect master1;
connection slave;
# same trick to go one more event
sync_with_master 1;
select * from t2;
show status like 'Slave_open_temp_tables';
#
# Clean up
#
connect (master2,localhost,root,,);
connection master2;
# We will get a warning for t1 as this is a temporary table that doesn't
# exist in this connection.
drop table if exists t1,t2;
save_master_pos;
connection slave;
sync_with_master;
# End of 4.1 tests