分享bug:
表象:
ERROR:2027 (HY000): Malformed packet
操作内容:
存储过程:
CREATE DEFINER=`root`@`%` PROCEDURE `DELETED_TASK_NUMBER`()
BEGIN
declare nowDate char(35);
declare phonenumber char(25);
declare phonesum int(15);
declare DONE char(5);
declare continue handler for not found set DONE = FALSE;
SET SQL_SAFE_UPDATES = 0;
set nowDate = concat('crm_task_number_',date_format(now(),'%Y%m'));
select count(*) into phonesum from a where task_id in (select task_id from b where is_deleted = 1) ;
select phonesum;
set @create_number_table = CONCAT('create table if not exists ',nowDate,' like a');
prepare create_table from @create_number_table;
execute create_table;
deallocate prepare create_table;
while (phonesum >=0 ) DO
set @insert_number_table = CONCAT('insert into ',nowDate,' (select * from a where task_id in (select task_id from a where is_deleted = 1) order by number_id limit 100000)');
prepare insert_table from @insert_number_table;
execute insert_table;
deallocate prepare insert_table;
select sleep(5);
delete from crm_task_number where task_id in (select task_id from a where is_deleted = 1) order by number_id limit 100000;
set phonesum=phonesum -100000;
end while;
END
涉及到的函数:
#init_rr_cache:临时文件初始化缓存
static int init_rr_cache(THD *thd, READ_RECORD *info)
{
uint rec_cache_size;
DBUG_ENTER("init_rr_cache");