mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	slave The stored-routine code took the contents of the (lowest) parser and copied it directly to the binlog, which causes problems if there is a special case of interpretation at the parser level -- which there is, in the "/*!VER */" comments. The trailing "*/" caused errors on the slave, naturally. Now, since by that point we have /properly/ created parse-tree (as the rest of the server should do!) for the stored-routine CREATE, we can construct a perfect statement from that information, instead of writing uncertain information from an unknown parser state. Fortunately, there's already a function nearby that does exactly that. --- Update for Bug#36570. Qualify routine names with db name when writing to the binlog ONLY if the source text is qualified.
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
show status like "binlog_cache_use";
 | 
						|
Variable_name	Value
 | 
						|
Binlog_cache_use	0
 | 
						|
show status like "binlog_cache_disk_use";
 | 
						|
Variable_name	Value
 | 
						|
Binlog_cache_disk_use	0
 | 
						|
create table t1 (a int) engine=innodb;
 | 
						|
show status like "binlog_cache_use";
 | 
						|
Variable_name	Value
 | 
						|
Binlog_cache_use	1
 | 
						|
show status like "binlog_cache_disk_use";
 | 
						|
Variable_name	Value
 | 
						|
Binlog_cache_disk_use	1
 | 
						|
begin;
 | 
						|
delete from t1;
 | 
						|
commit;
 | 
						|
show status like "binlog_cache_use";
 | 
						|
Variable_name	Value
 | 
						|
Binlog_cache_use	2
 | 
						|
show status like "binlog_cache_disk_use";
 | 
						|
Variable_name	Value
 | 
						|
Binlog_cache_disk_use	1
 | 
						|
drop table t1;
 | 
						|
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=MyISAM;
 | 
						|
CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
 | 
						|
CREATE FUNCTION bug23333() 
 | 
						|
RETURNS int(11)
 | 
						|
DETERMINISTIC
 | 
						|
BEGIN
 | 
						|
INSERT INTO t1 VALUES (NULL);
 | 
						|
SELECT COUNT(*) FROM t1 INTO @a;
 | 
						|
RETURN @a;
 | 
						|
END|
 | 
						|
INSERT INTO t2 VALUES (2),(10+bug23333());
 | 
						|
SHOW MASTER STATUS;
 | 
						|
File	Position	Binlog_Do_DB	Binlog_Ignore_DB
 | 
						|
#	184141		
 | 
						|
DROP FUNCTION bug23333;
 | 
						|
DROP TABLE t1, t2;
 |