Commit d0c69a82 authored by unknown's avatar unknown
Browse files

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
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -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
+12 −11
Original line number Diff line number Diff line
@@ -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;
+2 −2
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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);
Loading