diff options
author | Alexander Nozdrin <alik@sun.com> | 2009-11-02 14:10:04 +0300 |
---|---|---|
committer | Alexander Nozdrin <alik@sun.com> | 2009-11-02 14:10:04 +0300 |
commit | a708ba6524f27d0f0bc3bc4b4b9952f372d38bd0 (patch) | |
tree | 52d813ba1e4f0b538b1f175a1d157d865cce8a22 /sql/sql_parse.cc | |
parent | 487bfd56d4386fe9abbd4beb80d759b0c5c95909 (diff) | |
parent | 46aa4c2672e2d0b1727dde5b80bd5039adbf96f6 (diff) | |
download | mariadb-git-a708ba6524f27d0f0bc3bc4b4b9952f372d38bd0.tar.gz |
Manual merge from mysql-next-mr.
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r-- | sql/sql_parse.cc | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 69e277659e5..b99ff1c99c5 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -301,7 +301,6 @@ void init_update_queries(void) sql_command_flags[SQLCOM_SHOW_BINLOGS]= CF_STATUS_COMMAND; sql_command_flags[SQLCOM_SHOW_SLAVE_HOSTS]= CF_STATUS_COMMAND; sql_command_flags[SQLCOM_SHOW_BINLOG_EVENTS]= CF_STATUS_COMMAND; - sql_command_flags[SQLCOM_SHOW_COLUMN_TYPES]= CF_STATUS_COMMAND; sql_command_flags[SQLCOM_SHOW_STORAGE_ENGINES]= CF_STATUS_COMMAND; sql_command_flags[SQLCOM_SHOW_AUTHORS]= CF_STATUS_COMMAND; sql_command_flags[SQLCOM_SHOW_CONTRIBUTORS]= CF_STATUS_COMMAND; @@ -3546,9 +3545,6 @@ end_with_restore_list: case SQLCOM_SHOW_PRIVILEGES: res= mysqld_show_privileges(thd); break; - case SQLCOM_SHOW_COLUMN_TYPES: - res= mysqld_show_column_types(thd); - break; case SQLCOM_SHOW_ENGINE_LOGS: #ifdef DONT_ALLOW_SHOW_COMMANDS my_message(ER_NOT_ALLOWED_COMMAND, ER(ER_NOT_ALLOWED_COMMAND), @@ -4735,10 +4731,10 @@ create_sp_error: } break; } -#ifndef DBUG_OFF case SQLCOM_SHOW_PROC_CODE: case SQLCOM_SHOW_FUNC_CODE: { +#ifndef DBUG_OFF sp_head *sp; if (lex->sql_command == SQLCOM_SHOW_PROC_CODE) @@ -4755,8 +4751,12 @@ create_sp_error: goto error; } break; - } +#else + my_error(ER_FEATURE_DISABLED, MYF(0), + "SHOW PROCEDURE|FUNCTION CODE", "--with-debug"); + goto error; #endif // ifndef DBUG_OFF + } case SQLCOM_SHOW_CREATE_TRIGGER: { if (lex->spname->m_name.length > NAME_LEN) @@ -6507,7 +6507,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 || |