BUG#20397: Crash when alter table t1 engine = x;

Review fixes
parent 32ac7da6
......@@ -4993,16 +4993,19 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
old_db_type= table->s->db_type;
if (!create_info->db_type)
{
if (create_info->used_fields & HA_CREATE_USED_ENGINE)
if (table->part_info &&
create_info->used_fields & HA_CREATE_USED_ENGINE)
{
/*
This case happens when the user specified
ENGINE = x where x is a non-existing storage engine
We clear the flag and treat it the same way
as if no storage engine was specified.
We set create_info->db_type to default_engine_type
to ensure we don't change underlying engine type
due to a erroneously given engine name.
*/
create_info->used_fields^= HA_CREATE_USED_ENGINE;
create_info->db_type= table->part_info->default_engine_type;
}
else
create_info->db_type= old_db_type;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment