用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.1 KiB

3 months ago
#
# Bug#20262654 INNODB: MYSQL IS TRYING TO PERFORM A CONSISTENT READ
# BUT THE READ VIEW IS NOT AS
#
set sql_mode="";
create table t1(a int)engine=innodb;
create table t2(b int)engine=innodb;
create procedure p1()
begin
declare counter integer default 0;
declare continue handler for sqlexception begin set counter = counter + 10;end;
repeat
if rand()>0.5 then start transaction; end if;
if rand()>0.5 then
select var_samp(1), exists(select 1 from t1 lock in share mode)
from t1 into @a,@b;
end if;
if rand()>0.5 then
select var_samp(1), exists(select 1 from t1 for update)
from t1 into @a,@b;
end if;
if rand()>0.5 then insert ignore into t1 values (); end if;
if rand()>0.5 then insert ignore into t2 values (); end if;
if rand()>0.5 then delete from t1; end if;
if rand()>0.5 then delete from t2; end if;
if rand()>0.5 then commit; end if;
set counter = counter + 1;
until counter >= 100 end repeat;
end $
connect con1, localhost, root;
call p1(); # run this in two connections!;
connection default;
call p1();
connection con1;
reap
reap done
disconnect con1;
connection default;
drop procedure p1;
drop table t1,t2;
set sql_mode=default;