Commit 87e742c1 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 ce02a55c db40f4a5
...@@ -2844,4 +2844,10 @@ drop procedure bug6900| ...@@ -2844,4 +2844,10 @@ drop procedure bug6900|
drop procedure bug9074| drop procedure bug9074|
drop procedure bug6900_9074| drop procedure bug6900_9074|
drop table t3| drop table t3|
drop procedure if exists avg|
create procedure avg ()
begin
end|
call avg ()|
drop procedure avg|
drop table t1,t2; drop table t1,t2;
...@@ -3481,6 +3481,20 @@ drop procedure bug6900_9074| ...@@ -3481,6 +3481,20 @@ drop procedure bug6900_9074|
drop table t3| drop table t3|
#
# BUG#7185: Stored procedure crash if identifier is AVG
#
--disable_warnings
drop procedure if exists avg|
--enable_warnings
create procedure avg ()
begin
end|
call avg ()|
drop procedure avg|
# #
# BUG#NNNN: New bug synopsis # BUG#NNNN: New bug synopsis
# #
......
...@@ -4128,7 +4128,15 @@ mysql_execute_command(THD *thd) ...@@ -4128,7 +4128,15 @@ mysql_execute_command(THD *thd)
sp= sp_find_function(thd, lex->spname); sp= sp_find_function(thd, lex->spname);
mysql_reset_errors(thd, 0); mysql_reset_errors(thd, 0);
if (! sp) if (! sp)
result= SP_KEY_NOT_FOUND; {
if (lex->spname->m_db.str)
result= SP_KEY_NOT_FOUND;
else
{
my_message(ER_NO_DB_ERROR, ER(ER_NO_DB_ERROR), MYF(0));
goto error;
}
}
else else
{ {
if (check_procedure_access(thd, ALTER_PROC_ACL, sp->m_db.str, if (check_procedure_access(thd, ALTER_PROC_ACL, sp->m_db.str,
...@@ -4207,7 +4215,13 @@ mysql_execute_command(THD *thd) ...@@ -4207,7 +4215,13 @@ mysql_execute_command(THD *thd)
} }
} }
#endif #endif
result= SP_KEY_NOT_FOUND; if (lex->spname->m_db.str)
result= SP_KEY_NOT_FOUND;
else
{
my_message(ER_NO_DB_ERROR, ER(ER_NO_DB_ERROR), MYF(0));
goto error;
}
} }
res= result; res= result;
switch (result) switch (result)
......
...@@ -1328,12 +1328,12 @@ clear_privileges: ...@@ -1328,12 +1328,12 @@ clear_privileges:
; ;
sp_name: sp_name:
IDENT_sys '.' IDENT_sys ident '.' ident
{ {
$$= new sp_name($1, $3); $$= new sp_name($1, $3);
$$->init_qname(YYTHD); $$->init_qname(YYTHD);
} }
| IDENT_sys | ident
{ {
$$= sp_name_current_db_new(YYTHD, $1); $$= sp_name_current_db_new(YYTHD, $1);
} }
......
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