Bug#11577 'show procedure/function status' doesn't work for user with limited access

changed 'SHOW PROCEDURE' behavoiur to be like INFORMATION_SCHEMA.routines
This commit is contained in:
gluh@eagle.intranet.mysql.r18.ru 2005-07-19 13:49:43 +05:00
parent d2814fb1b5
commit d59ff2764c
3 changed files with 11 additions and 4 deletions

View file

@ -298,6 +298,9 @@ show create function sub2;
Function sql_mode Create Function
sub2 CREATE FUNCTION `test`.`sub2`(i int) RETURNS int(11)
return i+1
show function status like "sub2";
Db Name Type Definer Modified Created Security_type Comment
test sub2 FUNCTION mysqltest_1@localhost # # DEFINER
drop function sub2;
show create procedure sel2;
Procedure sql_mode Create Procedure

View file

@ -157,6 +157,8 @@ select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
show create procedure sel2;
show create function sub1;
show create function sub2;
--replace_column 5 # 6 #
show function status like "sub2";
connection default;
disconnect user1;
drop function sub2;

View file

@ -2386,10 +2386,12 @@ mysql_execute_command(THD *thd)
select_result *result=lex->result;
if (all_tables)
{
res= check_table_access(thd,
lex->exchange ? SELECT_ACL | FILE_ACL :
SELECT_ACL,
all_tables, 0);
if (lex->orig_sql_command != SQLCOM_SHOW_STATUS_PROC &&
lex->orig_sql_command != SQLCOM_SHOW_STATUS_FUNC)
res= check_table_access(thd,
lex->exchange ? SELECT_ACL | FILE_ACL :
SELECT_ACL,
all_tables, 0);
}
else
res= check_access(thd,