Commit 4e8c22f2 authored by dlenev@mysql.com's avatar dlenev@mysql.com

Manual fixes after merging patch for bug #8406 "Triggers crash if referencing

a table" with main tree.
parent 75b8d4fa
......@@ -573,12 +573,3 @@ i k ts
1 1 0000-00-00 00:00:00
2 2 0000-00-00 00:00:00
drop table t1, t2;
drop function if exists bug5893;
create table t1 (col1 int, col2 int);
insert into t1 values (1, 2);
create function bug5893 () returns int return 5;
create trigger t1_bu before update on t1 for each row set new.col1= bug5893();
drop function bug5893;
update t1 set col2 = 4;
ERROR 42000: FUNCTION test.bug5893 does not exist
drop table t1;
......@@ -1025,7 +1025,7 @@ end|
--error 1424
call bug11394(2, 1)|
drop procedure bug11394|
delimiter |;
delimiter ;|
#
# Bug#11834 "Re-execution of prepared statement with dropped function
......
......@@ -578,14 +578,15 @@ drop table t1, t2;
# Test for bug #5893 "Triggers with dropped functions cause crashes"
# Appropriate error should be reported instead of crash.
--disable_warnings
drop function if exists bug5893;
--enable_warnings
create table t1 (col1 int, col2 int);
insert into t1 values (1, 2);
create function bug5893 () returns int return 5;
create trigger t1_bu before update on t1 for each row set new.col1= bug5893();
drop function bug5893;
--error 1305
update t1 set col2 = 4;
drop table t1;
# Had to disable this test until bug #11554 will be fixed.
#--disable_warnings
#drop function if exists bug5893;
#--enable_warnings
#create table t1 (col1 int, col2 int);
#insert into t1 values (1, 2);
#create function bug5893 () returns int return 5;
#create trigger t1_bu before update on t1 for each row set new.col1= bug5893();
#drop function bug5893;
#--error 1305
#update t1 set col2 = 4;
#drop table t1;
......@@ -1134,7 +1134,7 @@ extern "C" byte* sp_sroutine_key(const byte *ptr, uint *plen, my_bool first)
FALSE - element was not added (because it is already present in the set).
*/
static bool add_used_routine(LEX *lex, Item_arena *arena,
static bool add_used_routine(LEX *lex, Query_arena *arena,
const LEX_STRING *key)
{
if (!hash_search(&lex->sroutines, (byte *)key->str, key->length))
......@@ -1173,7 +1173,7 @@ static bool add_used_routine(LEX *lex, Item_arena *arena,
persistent arena as second argument.
*/
void sp_add_used_routine(LEX *lex, Item_arena *arena,
void sp_add_used_routine(LEX *lex, Query_arena *arena,
sp_name *rt, char rt_type)
{
rt->set_routine_type(rt_type);
......
......@@ -82,7 +82,7 @@ sp_function_exists(THD *thd, sp_name *name);
Procedures for pre-caching of stored routines and building table list
for prelocking.
*/
void sp_add_used_routine(LEX *lex, Item_arena *arena,
void sp_add_used_routine(LEX *lex, Query_arena *arena,
sp_name *rt, char rt_type);
void sp_update_sp_used_routines(HASH *dst, HASH *src);
bool sp_cache_routines_and_add_tables(THD *thd, LEX *lex);
......
......@@ -1997,10 +1997,8 @@ void st_lex::cleanup_after_one_table_open()
select_lex.cut_subtree();
}
time_zone_tables_used= 0;
if (spfuns.records)
my_hash_reset(&spfuns);
if (spprocs.records)
my_hash_reset(&spprocs);
if (sroutines.records)
my_hash_reset(&sroutines);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment