create procedure p1() select 1;
flush status;
show status like 'handler_read_key';
Variable_name	Value
Handler_read_key	0
call p1;
1
1
show status like 'handler_read_key';
Variable_name	Value
Handler_read_key	1
call p1;
1
1
show status like 'handler_read_key';
Variable_name	Value
Handler_read_key	1
set global stored_program_cache=0;
call p1;
1
1
show status like 'handler_read_key';
Variable_name	Value
Handler_read_key	2
call p1;
1
1
show status like 'handler_read_key';
Variable_name	Value
Handler_read_key	3
drop procedure p1;
set global stored_program_cache=default;
create procedure pr(i int) begin
create table t1 (a int, b int);
if (i = 1) then alter table t1 drop a;
else alter table t1 drop b; 
end if;
select * from t1;
drop table t1;
end |
call pr(1);
b
call pr(2);
ERROR 42S22: Unknown column 'test.t1.b' in 'field list'
drop table t1;
set global stored_program_cache=0;
call pr(1);
b
call pr(2);
a
drop procedure pr;
set global stored_program_cache=default;
