diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 65a76538c73..e0b205c40c6 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -3997,7 +3997,7 @@ end_with_restore_list: strmov(db_name.str, lex->name.str); if (check_db_name(&db_name)) { - my_error(ER_WRONG_DB_NAME, MYF(0), db_name); + my_error(ER_WRONG_DB_NAME, MYF(0), db_name.str); break; } res= mysqld_show_create_db(thd, &db_name, &lex->name, &lex->create_info); diff --git a/sql/table.cc b/sql/table.cc index 20343a108f6..210a9246a16 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -3468,11 +3468,15 @@ bool check_db_name(LEX_STRING *org_name) return 1; if (lower_case_table_names == 1 && name != any_db) - org_name->length= my_casedn_str(files_charset_info, name); + { + org_name->length= name_length= my_casedn_str(files_charset_info, name); + if (check_for_path_chars) + org_name->length+= MYSQL50_TABLE_NAME_PREFIX_LENGTH; + } if (db_name_is_in_ignore_db_dirs_list(name)) return 1; - return check_table_name(name, org_name->length, check_for_path_chars); + return check_table_name(name, name_length, check_for_path_chars); }