mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Fix tests for new behaviour: an error is thrown if a NON DETERMINISTIC stored function (SF) is called during statement-based replication (SBR).
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
 | 
						|
 | 
						|
# save status
 | 
						|
 | 
						|
let $oblf=`select @@SESSION.BINLOG_FORMAT`;
 | 
						|
let $otfc=`select @@log_bin_trust_function_creators`;
 | 
						|
 | 
						|
set global log_bin_trust_function_creators=0;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# fail *on definition*
 | 
						|
 | 
						|
set binlog_format=STATEMENT;
 | 
						|
 | 
						|
delimiter |;
 | 
						|
--error ER_BINLOG_UNSAFE_ROUTINE
 | 
						|
create function fn16456()
 | 
						|
       returns int
 | 
						|
begin
 | 
						|
       return unix_timestamp();
 | 
						|
end|
 | 
						|
delimiter ;|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# force in definition, so we can see whether we fail on call
 | 
						|
 | 
						|
set global log_bin_trust_function_creators=1;
 | 
						|
 | 
						|
delimiter |;
 | 
						|
create function fn16456()
 | 
						|
       returns int
 | 
						|
begin
 | 
						|
       return unix_timestamp();
 | 
						|
end|
 | 
						|
delimiter ;|
 | 
						|
 | 
						|
set global log_bin_trust_function_creators=0;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# allow funcall in RBR
 | 
						|
 | 
						|
set binlog_format=ROW;
 | 
						|
 | 
						|
--replace_column 1 timestamp
 | 
						|
select fn16456();
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# fail funcall in SBR
 | 
						|
 | 
						|
set binlog_format=STATEMENT;
 | 
						|
 | 
						|
--error ER_BINLOG_ROW_RBR_TO_SBR
 | 
						|
select fn16456();
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# restore status
 | 
						|
 | 
						|
drop function fn16456;
 | 
						|
 | 
						|
--disable_query_log
 | 
						|
eval set binlog_format=$oblf;
 | 
						|
eval set global log_bin_trust_function_creators=$otfc;
 | 
						|
--enable_query_log
 |