1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

Merge branch '5.5' into 10.0

This commit is contained in:
Sergei Golubchik
2016-04-26 23:05:26 +02:00
109 changed files with 1309 additions and 319 deletions

View File

@@ -6029,6 +6029,7 @@ bool check_global_access(THD *thd, ulong want_access, bool no_errors)
temporary table flag)
@param alter_info [in] Initial list of columns and indexes for the
table to be created
@param create_db [in] Database of the created table
@retval
false ok.
@@ -6037,7 +6038,8 @@ bool check_global_access(THD *thd, ulong want_access, bool no_errors)
*/
bool check_fk_parent_table_access(THD *thd,
HA_CREATE_INFO *create_info,
Alter_info *alter_info)
Alter_info *alter_info,
const char* create_db)
{
Key *key;
List_iterator<Key> key_iterator(alter_info->key_list);
@@ -6077,10 +6079,28 @@ bool check_fk_parent_table_access(THD *thd,
return true;
}
}
else if (thd->lex->copy_db_to(&db_name.str, &db_name.length))
return true;
else
is_qualified_table_name= false;
{
if (!thd->db)
{
db_name.str= (char *) thd->memdup(create_db, strlen(create_db)+1);
db_name.length= strlen(create_db);
is_qualified_table_name= true;
if(create_db && check_db_name(&db_name))
{
my_error(ER_WRONG_DB_NAME, MYF(0), db_name.str);
return true;
}
}
else
{
if (thd->lex->copy_db_to(&db_name.str, &db_name.length))
return true;
else
is_qualified_table_name= false;
}
}
// if lower_case_table_names is set then convert tablename to lower case.
if (lower_case_table_names)
@@ -8200,7 +8220,7 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables,
goto err;
}
if (check_fk_parent_table_access(thd, &lex->create_info, &lex->alter_info))
if (check_fk_parent_table_access(thd, &lex->create_info, &lex->alter_info, create_table->db))
goto err;
/*