mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	 226d978ae8
			
		
	
	226d978ae8
	
	
	
		
			
			Binlog lacks encoding info about DROPped temporary table. Idea of the fix is to switch temporary to system_charset_info when a temporary table is DROPped for binlog. Since that is the server, that automatically, but not the client, who generates the query the binlog should be updated on the server's encoding for the coming DROP. The `write_binlog_with_system_charset()' is introduced to replace similar problematic places in the code.
		
			
				
	
	
		
			23 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| drop database if exists `drop-temp+table-test`;
 | |
| reset master;
 | |
| create database `drop-temp+table-test`;
 | |
| use `drop-temp+table-test`;
 | |
| create temporary table shortn1 (a int);
 | |
| create temporary table `table:name` (a int);
 | |
| create temporary table shortn2 (a int);
 | |
| select get_lock("a",10);
 | |
| get_lock("a",10)
 | |
| 1
 | |
| select get_lock("a",10);
 | |
| get_lock("a",10)
 | |
| 1
 | |
| show binlog events;
 | |
| Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 | |
| master-bin.000001	#	Format_desc	1	#	Server ver: VERSION, Binlog ver: 4
 | |
| master-bin.000001	#	Query	1	#	create database `drop-temp+table-test`
 | |
| master-bin.000001	#	Query	1	#	use `drop-temp+table-test`; create temporary table shortn1 (a int)
 | |
| master-bin.000001	#	Query	1	#	use `drop-temp+table-test`; create temporary table `table:name` (a int)
 | |
| master-bin.000001	#	Query	1	#	use `drop-temp+table-test`; create temporary table shortn2 (a int)
 | |
| master-bin.000001	#	Query	1	#	use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `drop-temp+table-test`.`shortn2`,`drop-temp+table-test`.`table:name`,`drop-temp+table-test`.`shortn1`
 | |
| drop database `drop-temp+table-test`;
 |