mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
4cead8c8a5
and fixing it another way (per Monty; a simpler solution which does not increase the number of binlog events is to always execute DROP TEMPORARY TABLE IF EXISTS on slave). A new test rpl_drop_temp. 2) fixing BUG#8436 "Multiple "stacked" SQL statements cause replication to stop" by setting thd->query_length to the length of the query being executed, not counting the next queries if this is a multi-query. Should also improve display of SHOW PROCESSLIST. A new test rpl_multi_query. mysql-test/r/drop_temp_table.result: back to one single DROP sql/sql_base.cc: undoing the fix I had made some days ago: we are back to one single DROP TEMPORARY TABLE for all temp tables. sql/sql_parse.cc: 1) set thd->query_length to the length of the query being executed, excluding the other next queries if this is a multi-query. The setting happens ASAP, ie. just after we know it's a multi-query, ie. just after yyparse(). Don't include the ';' in thd->query_length, because this is not good for storage in binlog. 2) always execute a DROP TEMPORARY TABLE IF EXISTS on slave, don't skip it even if --replicate-ignore-table
32 lines
1.1 KiB
Text
32 lines
1.1 KiB
Text
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;
|
|
drop database if exists mysqltest;
|
|
create database mysqltest;
|
|
create table mysqltest.t1 ( n int);
|
|
insert into mysqltest.t1 values(1)/
|
|
insert into mysqltest.t1 values(2);
|
|
insert into mysqltest.t1 values(3);
|
|
insert into mysqltest.t1 values(4);
|
|
insert into mysqltest.t1 values(5)/
|
|
select * from mysqltest.t1;
|
|
n
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
show binlog events from 79;
|
|
Log_name Pos Event_type Server_id Orig_log_pos Info
|
|
master-bin.000001 # Query 1 # drop database if exists mysqltest
|
|
master-bin.000001 # Query 1 # create database mysqltest
|
|
master-bin.000001 # Query 1 # use `test`; create table mysqltest.t1 ( n int)
|
|
master-bin.000001 # Query 1 # use `test`; insert into mysqltest.t1 values(1)
|
|
master-bin.000001 # Query 1 # use `test`; insert into mysqltest.t1 values(2)
|
|
master-bin.000001 # Query 1 # use `test`; insert into mysqltest.t1 values(3)
|
|
master-bin.000001 # Query 1 # use `test`; insert into mysqltest.t1 values(4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into mysqltest.t1 values(5)
|
|
drop database mysqltest;
|