mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-25 18:38:00 +03:00 
			
		
		
		
	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
		
			
				
	
	
		
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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;
 |