diff options
author | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2009-10-23 11:56:30 +0500 |
---|---|---|
committer | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2009-10-23 11:56:30 +0500 |
commit | 974549877845ec776dae5f1776486e8de7cc7210 (patch) | |
tree | 7e02dd81dfe49896e3df0a499baf25f13afad0b0 /sql/sql_parse.cc | |
parent | 1ad9d1f1df99e81b5dc68c3f619e2a4d3b867366 (diff) | |
download | mariadb-git-974549877845ec776dae5f1776486e8de7cc7210.tar.gz |
Bug#24062 Incorrect error msg after execute DROP TABLE IF EXISTS on information_schema
backport to Betony
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r-- | sql/sql_parse.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 3b67fc79b02..92ccaa3e4ec 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -6338,7 +6338,19 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd, if (!ptr->derived && !my_strcasecmp(system_charset_info, ptr->db, INFORMATION_SCHEMA_NAME.str)) { - ST_SCHEMA_TABLE *schema_table= find_schema_table(thd, ptr->table_name); + ST_SCHEMA_TABLE *schema_table; + if (ptr->updating && + /* Special cases which are processed by commands itself */ + lex->sql_command != SQLCOM_CHECK && + lex->sql_command != SQLCOM_CHECKSUM) + { + my_error(ER_DBACCESS_DENIED_ERROR, MYF(0), + thd->security_ctx->priv_user, + thd->security_ctx->priv_host, + INFORMATION_SCHEMA_NAME.str); + DBUG_RETURN(0); + } + schema_table= find_schema_table(thd, ptr->table_name); if (!schema_table || (schema_table->hidden && ((sql_command_flags[lex->sql_command] & CF_STATUS_COMMAND) == 0 || |