drop table if exists t1;
SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
connect  a,localhost,root,,;
connect  b,localhost,root,,;
SET GLOBAL log_bin_trust_function_creators = 1;
create table t1 (col1 integer primary key, col2 integer) engine=innodb;
insert t1 values (1,100);
create function f1 () returns integer begin
declare var1 int;
select col2 into var1 from t1 where col1=1 for update;
return var1;
end|
start transaction;
select f1();
f1()
100
connection b;
update t1 set col2=0 where col1=1;
connection default;
select * from t1;
col1	col2
1	100
connection a;
rollback;
connection b;
rollback;
connection a;
disconnect a;
connection b;
disconnect b;
connection default;
drop table t1;
drop function f1;
SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;