Remember original table row pack type for ALTER TABLE if table is not copied.
This commit is contained in:
parent
b31909ffbb
commit
a334e87d65
@ -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,
|
|||||||
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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user