mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Bug#20616: drop_temp_table test fails on Windows platform
sql/sql_table.cc: Check for FN_DEVCHAR in the table name just before file creation. This allows for temporary tables to contain FN_DEVCHAR in the name. sql/table.cc: Removed the check for FN_DEVCHAR is done at this level because it prevents Windows from creating any table with FN_DEVCHAR in the name.
This commit is contained in:
parent
357755fc1f
commit
a4c1111af2
2 changed files with 16 additions and 9 deletions
|
@ -1657,7 +1657,22 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||
create_info->table_options|=HA_CREATE_DELAY_KEY_WRITE;
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef FN_DEVCHAR
|
||||
/* check if the table name contains FN_DEVCHAR when defined */
|
||||
const char *start= alias;
|
||||
while (*start != '\0')
|
||||
{
|
||||
if (*start == FN_DEVCHAR)
|
||||
{
|
||||
my_error(ER_WRONG_TABLE_NAME, MYF(0), alias);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
start++;
|
||||
}
|
||||
#endif
|
||||
build_table_path(path, sizeof(path), db, alias, reg_ext);
|
||||
}
|
||||
|
||||
/* Check if table already exists */
|
||||
if ((create_info->options & HA_LEX_CREATE_TMP_TABLE)
|
||||
|
|
|
@ -1614,10 +1614,6 @@ bool check_db_name(char *name)
|
|||
if (*name == '/' || *name == '\\' || *name == FN_LIBCHAR ||
|
||||
*name == FN_EXTCHAR)
|
||||
return 1;
|
||||
#ifdef FN_DEVCHAR
|
||||
if (*name == FN_DEVCHAR)
|
||||
return 1;
|
||||
#endif
|
||||
name++;
|
||||
}
|
||||
return last_char_is_space || (uint) (name - start) > NAME_LEN;
|
||||
|
@ -1660,10 +1656,6 @@ bool check_table_name(const char *name, uint length)
|
|||
#endif
|
||||
if (*name == '/' || *name == '\\' || *name == FN_EXTCHAR)
|
||||
return 1;
|
||||
#ifdef FN_DEVCHAR
|
||||
if (*name == FN_DEVCHAR)
|
||||
return 1;
|
||||
#endif
|
||||
name++;
|
||||
}
|
||||
#if defined(USE_MB) && defined(USE_MB_IDENT)
|
||||
|
|
Loading…
Reference in a new issue