summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <malff/marcsql@weblab.(none)>2007-06-15 11:36:31 -0600
committerunknown <malff/marcsql@weblab.(none)>2007-06-15 11:36:31 -0600
commita43723673faedfefc73d35c64bf895c9f3adec2e (patch)
treee69d0f413364d2123ae31e0f8e09637140cf95ef /sql/sql_parse.cc
parent7ad570210d4ad20201ea916c8114fd2abf8f8531 (diff)
parentf6a7490c387c5752df6b10007efe19f993f64e43 (diff)
downloadmariadb-git-a43723673faedfefc73d35c64bf895c9f3adec2e.tar.gz
Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge mysql-test/r/trigger.result: Auto merged mysql-test/t/trigger.test: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/handler.cc: Auto merged sql/item.h: Auto merged sql/log.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sql_class.h: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_partition.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index cbe3c4363cf..102351451c8 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -1818,6 +1818,7 @@ mysql_execute_command(THD *thd)
case SQLCOM_SHOW_VARIABLES:
case SQLCOM_SHOW_CHARSETS:
case SQLCOM_SHOW_COLLATIONS:
+ case SQLCOM_SHOW_STORAGE_ENGINES:
case SQLCOM_SELECT:
thd->status_var.last_query_cost= 0.0;
if (all_tables)
@@ -2920,9 +2921,6 @@ end_with_restore_list:
thd->security_ctx->priv_user),
lex->verbose);
break;
- case SQLCOM_SHOW_STORAGE_ENGINES:
- res= mysqld_show_storage_engines(thd);
- break;
case SQLCOM_SHOW_AUTHORS:
res= mysqld_show_authors(thd);
break;
@@ -4610,7 +4608,17 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv,
Security_context *sctx= thd->security_ctx;
#ifndef NO_EMBEDDED_ACCESS_CHECKS
ulong db_access;
- bool db_is_pattern= test(want_access & GRANT_ACL);
+ /*
+ GRANT command:
+ In case of database level grant the database name may be a pattern,
+ in case of table|column level grant the database name can not be a pattern.
+ We use 'dont_check_global_grants' as a flag to determine
+ if it's database level grant command
+ (see SQLCOM_GRANT case, mysql_execute_command() function) and
+ set db_is_pattern according to 'dont_check_global_grants' value.
+ */
+ bool db_is_pattern= (test(want_access & GRANT_ACL) &&
+ dont_check_global_grants);
#endif
ulong dummy;
DBUG_ENTER("check_access");