mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	 0db5b4d202
			
		
	
	0db5b4d202
	
	
	
		
			
			Fix for BUG#4971 "CREATE TABLE ... TYPE=HEAP SELECT ... stops slave (wrong DELETE in binlog)": replacing the no_log argument of mysql_create_table() by some safer method (temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table is opened by mysql_create_table().
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # You must run this test with --manager.
 | |
| 
 | |
| require_manager;
 | |
| 
 | |
| # Don't know why, but using TCP/IP connections makes this test fail
 | |
| # with "Lost connection to MySQL server during query" when we
 | |
| # issue a query after the server restart.
 | |
| # Maybe this is something awkward in mysqltest or in the manager?
 | |
| # So we use sockets.
 | |
| connect (master,localhost,root,,test,0,master.sock);
 | |
| connect (slave,localhost,root,,test,0,slave.sock);
 | |
| 
 | |
| connection master;
 | |
| reset master;
 | |
| drop table if exists t1;
 | |
| # we use CREATE SELECT to verify that DELETE does not get into binlog
 | |
| # before CREATE SELECT
 | |
| create table t1 type=HEAP select 10 as a;
 | |
| insert into t1 values(11);
 | |
| save_master_pos;
 | |
| show binlog events from 79;
 | |
| connection slave;
 | |
| reset slave;
 | |
| start slave;
 | |
| sync_with_master;
 | |
| show create table t1;
 | |
| select * from t1; # should be one row
 | |
| 
 | |
| server_stop master;
 | |
| server_start master;
 | |
| 
 | |
| connection master;
 | |
| select * from t1;
 | |
| # to check that DELETE is not written twice
 | |
| # (the LIMIT is to not use the query cache)
 | |
| select * from t1 limit 10;
 | |
| save_master_pos;
 | |
| show binlog events in 'master-bin.002' from 79;
 | |
| 
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| select * from t1; # should be empty
 | |
| 
 | |
| # clean up
 | |
| connection master;
 | |
| drop table t1;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 |