mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
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.
This commit is contained in:
@ -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|
|
|||||||
--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;
|
|||||||
|
|
||||||
# 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)
|
|||||||
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,
|
|||||||
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);
|
||||||
|
2
sql/sp.h
2
sql/sp.h
@ -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()
|
|||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user