Commit a334e87d authored by Michael Widenius's avatar Michael Widenius

Remember original table row pack type for ALTER TABLE if table is not copied.

parent b31909ff
...@@ -4124,7 +4124,8 @@ bool mysql_create_table_no_lock(THD *thd, ...@@ -4124,7 +4124,8 @@ bool mysql_create_table_no_lock(THD *thd,
set_table_default_charset(thd, create_info, (char*) db); set_table_default_charset(thd, create_info, (char*) db);
db_options= create_info->table_options; db_options= create_info->table_options;
if (create_info->row_type != ROW_TYPE_FIXED && if (!create_info->frm_only &&
create_info->row_type != ROW_TYPE_FIXED &&
create_info->row_type != ROW_TYPE_DEFAULT) create_info->row_type != ROW_TYPE_DEFAULT)
db_options|= HA_OPTION_PACK_RECORD; db_options|= HA_OPTION_PACK_RECORD;
alias= table_case_name(create_info, table_name); alias= table_case_name(create_info, table_name);
...@@ -6670,9 +6671,19 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -6670,9 +6671,19 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
my_sleep(100000);); my_sleep(100000););
/* /*
Create a table with a temporary name. Create a table with a temporary name.
With create_info->frm_only == 1 this creates a .frm file only. With create_info->frm_only == 1 this creates a .frm file only and
we keep the original row format.
We don't log the statement, it will be logged later. We don't log the statement, it will be logged later.
*/ */
if (need_copy_table == ALTER_TABLE_METADATA_ONLY)
{
DBUG_ASSERT(create_info->frm_only);
/* Ensure we keep the original table format */
create_info->table_options= ((create_info->table_options &
~HA_OPTION_PACK_RECORD) |
(table->s->db_create_options &
HA_OPTION_PACK_RECORD));
}
tmp_disable_binlog(thd); tmp_disable_binlog(thd);
error= mysql_create_table_no_lock(thd, new_db, tmp_name, error= mysql_create_table_no_lock(thd, new_db, tmp_name,
create_info, create_info,
......
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