mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
sp.test:
test case for the fix for bug #2614 sp_head.cc: A fix for a crashing bug in stored procedures with INSERT ... SELECT ... (Bug #2514) sql/sp_head.cc: A fix for a crashing bug in stored procedures with INSERT ... SELECT ... (Bug #2514) mysql-test/t/sp.test: test case for the fix for bug #2614
This commit is contained in:
@@ -1299,7 +1299,20 @@ show create procedure bar|
|
||||
--replace_column 4 '0000-00-00 00:00:00' 5 '0000-00-00 00:00:00'
|
||||
show procedure status like 'bar'|
|
||||
drop procedure bar|
|
||||
|
||||
delimiter ;|
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
delimiter |
|
||||
drop procedure if exists crash|
|
||||
create procedure crash()
|
||||
begin
|
||||
drop table if exists t1;
|
||||
create table t1 (id int default '0' not null);
|
||||
insert into t1 select 12;
|
||||
insert into t1 select * from t1;
|
||||
end|
|
||||
delimiter ;
|
||||
call crash();
|
||||
call crash();
|
||||
drop table t1;
|
||||
drop procedure if exists crash;
|
||||
|
@@ -852,6 +852,11 @@ sp_instr_stmt::exec_stmt(THD *thd, LEX *lex)
|
||||
{
|
||||
TABLE_LIST *tabs;
|
||||
|
||||
if (lex->sql_command == SQLCOM_CREATE_TABLE ||
|
||||
lex->sql_command == SQLCOM_INSERT_SELECT)
|
||||
{ // Restore sl->table_list.first
|
||||
sl->table_list.first= sl->table_list_first_copy;
|
||||
}
|
||||
// We have closed all tables, get rid of pointers to them
|
||||
for (tabs=(TABLE_LIST *)sl->table_list.first ;
|
||||
tabs ;
|
||||
@@ -859,11 +864,6 @@ sp_instr_stmt::exec_stmt(THD *thd, LEX *lex)
|
||||
{
|
||||
tabs->table= NULL;
|
||||
}
|
||||
if (lex->sql_command == SQLCOM_CREATE_TABLE ||
|
||||
lex->sql_command == SQLCOM_INSERT_SELECT)
|
||||
{ // Restore sl->table_list.first
|
||||
sl->table_list.first= sl->table_list_first_copy;
|
||||
}
|
||||
for (ORDER *order= (ORDER *)sl->order_list.first ;
|
||||
order ;
|
||||
order= order->next)
|
||||
|
Reference in New Issue
Block a user