Commit d0c69a82 authored by unknown's avatar unknown

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

a table" with main tree.


mysql-test/r/trigger.result:
  Temporalily disable part of test which exposes bug #11554 (work on which is in
  progress).
mysql-test/t/sp-error.test:
  After merge fix.
    Fixed wrong delimiter command.
mysql-test/t/trigger.test:
  Temporalily disable part of test which exposes bug #11554 (work on which is in
  progress).
sql/sp.cc:
  After merge fix.
    Item_arena was renamed to Query_arena.
sql/sp.h:
  After merge fix.
    Item_arena was renamed to Query_arena.
sql/sql_lex.cc:
  After merge fix.
    LEX::spfuns/spprocs hashes were replaces with one LEX::sroutines hash.
parent eef5f17b
...@@ -573,12 +573,3 @@ i k ts ...@@ -573,12 +573,3 @@ i k ts
1 1 0000-00-00 00:00:00 1 1 0000-00-00 00:00:00
2 2 0000-00-00 00:00:00 2 2 0000-00-00 00:00:00
drop table t1, t2; 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| ...@@ -1025,7 +1025,7 @@ end|
--error 1424 --error 1424
call bug11394(2, 1)| call bug11394(2, 1)|
drop procedure bug11394| drop procedure bug11394|
delimiter |; delimiter ;|
# #
# Bug#11834 "Re-execution of prepared statement with dropped function # Bug#11834 "Re-execution of prepared statement with dropped function
......
...@@ -578,14 +578,15 @@ drop table t1, t2; ...@@ -578,14 +578,15 @@ drop table t1, t2;
# Test for bug #5893 "Triggers with dropped functions cause crashes" # Test for bug #5893 "Triggers with dropped functions cause crashes"
# Appropriate error should be reported instead of crash. # Appropriate error should be reported instead of crash.
--disable_warnings # Had to disable this test until bug #11554 will be fixed.
drop function if exists bug5893; #--disable_warnings
--enable_warnings #drop function if exists bug5893;
create table t1 (col1 int, col2 int); #--enable_warnings
insert into t1 values (1, 2); #create table t1 (col1 int, col2 int);
create function bug5893 () returns int return 5; #insert into t1 values (1, 2);
create trigger t1_bu before update on t1 for each row set new.col1= bug5893(); #create function bug5893 () returns int return 5;
drop function bug5893; #create trigger t1_bu before update on t1 for each row set new.col1= bug5893();
--error 1305 #drop function bug5893;
update t1 set col2 = 4; #--error 1305
drop table t1; #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) ...@@ -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). 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) const LEX_STRING *key)
{ {
if (!hash_search(&lex->sroutines, (byte *)key->str, key->length)) if (!hash_search(&lex->sroutines, (byte *)key->str, key->length))
...@@ -1173,7 +1173,7 @@ static bool add_used_routine(LEX *lex, Item_arena *arena, ...@@ -1173,7 +1173,7 @@ static bool add_used_routine(LEX *lex, Item_arena *arena,
persistent arena as second argument. 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) sp_name *rt, char rt_type)
{ {
rt->set_routine_type(rt_type); rt->set_routine_type(rt_type);
......
...@@ -82,7 +82,7 @@ sp_function_exists(THD *thd, sp_name *name); ...@@ -82,7 +82,7 @@ sp_function_exists(THD *thd, sp_name *name);
Procedures for pre-caching of stored routines and building table list Procedures for pre-caching of stored routines and building table list
for prelocking. 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); sp_name *rt, char rt_type);
void sp_update_sp_used_routines(HASH *dst, HASH *src); void sp_update_sp_used_routines(HASH *dst, HASH *src);
bool sp_cache_routines_and_add_tables(THD *thd, LEX *lex); bool sp_cache_routines_and_add_tables(THD *thd, LEX *lex);
......
...@@ -1997,10 +1997,8 @@ void st_lex::cleanup_after_one_table_open() ...@@ -1997,10 +1997,8 @@ void st_lex::cleanup_after_one_table_open()
select_lex.cut_subtree(); select_lex.cut_subtree();
} }
time_zone_tables_used= 0; time_zone_tables_used= 0;
if (spfuns.records) if (sroutines.records)
my_hash_reset(&spfuns); my_hash_reset(&sroutines);
if (spprocs.records)
my_hash_reset(&spprocs);
} }
......
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