Commit 55e5a72f authored by unknown's avatar unknown

Merge mysql.com:/usr/local/bk/mysql-5.0

into mysql.com:/home/pem/work/mysql-5.0
parents 271dbedc 0dcda338
...@@ -457,9 +457,9 @@ ERROR 42S22: Unknown column 'aa' in 'order clause' ...@@ -457,9 +457,9 @@ ERROR 42S22: Unknown column 'aa' in 'order clause'
drop procedure bug2653_1| drop procedure bug2653_1|
drop procedure bug2653_2| drop procedure bug2653_2|
create procedure bug4344() drop procedure bug4344| create procedure bug4344() drop procedure bug4344|
ERROR HY000: Can't drop a PROCEDURE from within another stored routine ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
create procedure bug4344() drop function bug4344| create procedure bug4344() drop function bug4344|
ERROR HY000: Can't drop a FUNCTION from within another stored routine ERROR HY000: Can't drop or alter a FUNCTION from within another stored routine
drop procedure if exists bug3294| drop procedure if exists bug3294|
create procedure bug3294() create procedure bug3294()
begin begin
...@@ -585,4 +585,13 @@ end; ...@@ -585,4 +585,13 @@ end;
end; end;
end| end|
drop procedure bug9073| drop procedure bug9073|
create procedure bug7047()
alter procedure bug7047|
ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
create function bug7047() returns int
begin
alter function bug7047;
return 0;
end|
ERROR HY000: Can't drop or alter a FUNCTION from within another stored routine
drop table t1| drop table t1|
...@@ -2958,4 +2958,13 @@ select @x| ...@@ -2958,4 +2958,13 @@ select @x|
set global query_cache_size = @qcs1| set global query_cache_size = @qcs1|
delete from t1| delete from t1|
drop function bug9902| drop function bug9902|
drop procedure if exists bug6898|
create procedure bug6898()
begin
goto label1;
label label1;
begin end;
goto label1;
end|
drop procedure bug6898|
drop table t1,t2; drop table t1,t2;
...@@ -817,6 +817,20 @@ end| ...@@ -817,6 +817,20 @@ end|
drop procedure bug9073| drop procedure bug9073|
#
# BUG#7047: Stored procedure crash if alter procedure
#
--error ER_SP_NO_DROP_SP
create procedure bug7047()
alter procedure bug7047|
--error ER_SP_NO_DROP_SP
create function bug7047() returns int
begin
alter function bug7047;
return 0;
end|
# #
# BUG#NNNN: New bug synopsis # BUG#NNNN: New bug synopsis
# #
......
...@@ -3628,6 +3628,22 @@ delete from t1| ...@@ -3628,6 +3628,22 @@ delete from t1|
drop function bug9902| drop function bug9902|
#
# BUG#6898: Stored procedure crash if GOTO statements exist
#
--disable_warnings
drop procedure if exists bug6898|
--enable_warnings
create procedure bug6898()
begin
goto label1;
label label1;
begin end;
goto label1;
end|
drop procedure bug6898|
# #
# BUG#NNNN: New bug synopsis # BUG#NNNN: New bug synopsis
# #
......
...@@ -5213,7 +5213,7 @@ ER_VIEW_INVALID ...@@ -5213,7 +5213,7 @@ ER_VIEW_INVALID
eng "View '%-.64s.%-.64s' references invalid table(s) or column(s) or function(s)" eng "View '%-.64s.%-.64s' references invalid table(s) or column(s) or function(s)"
rus "View '%-.64s.%-.64s' " rus "View '%-.64s.%-.64s' "
ER_SP_NO_DROP_SP ER_SP_NO_DROP_SP
eng "Can't drop a %s from within another stored routine" eng "Can't drop or alter a %s from within another stored routine"
ER_SP_GOTO_IN_HNDLR ER_SP_GOTO_IN_HNDLR
eng "GOTO is not allowed in a stored procedure handler" eng "GOTO is not allowed in a stored procedure handler"
ER_TRG_ALREADY_EXISTS ER_TRG_ALREADY_EXISTS
......
...@@ -1499,7 +1499,7 @@ sp_instr_jump::opt_shortcut_jump(sp_head *sp, sp_instr *start) ...@@ -1499,7 +1499,7 @@ sp_instr_jump::opt_shortcut_jump(sp_head *sp, sp_instr *start)
{ {
uint ndest; uint ndest;
if (start == i) if (start == i || this == i)
break; break;
ndest= i->opt_shortcut_jump(sp, start); ndest= i->opt_shortcut_jump(sp, start);
if (ndest == dest) if (ndest == dest)
......
...@@ -3305,6 +3305,11 @@ alter: ...@@ -3305,6 +3305,11 @@ alter:
{ {
LEX *lex= Lex; LEX *lex= Lex;
if (lex->sphead)
{
my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
YYABORT;
}
bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
} }
sp_a_chistics sp_a_chistics
...@@ -3318,6 +3323,11 @@ alter: ...@@ -3318,6 +3323,11 @@ alter:
{ {
LEX *lex= Lex; LEX *lex= Lex;
if (lex->sphead)
{
my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
YYABORT;
}
bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
} }
sp_a_chistics sp_a_chistics
......
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