diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index cb24c7d3802..e3ce629a65a 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -4126,7 +4126,19 @@ static void dd_commit_inplace_instant(Alter_inplace_info *ha_alter_info, row_mysql_unlock_data_dictionary(trx); break; case Instant_Type::INSTANT_ADD_COLUMN: - dd_copy_private(*new_dd_tab, *old_dd_tab); + { + dd::Properties *table_options = &new_dd_tab->options(); + bool pack_record; + /* pack_record will change after add variable + length column */ + if (table_options->exists("pack_record")) { + table_options->get("pack_record", &pack_record); + } + dd_copy_private(*new_dd_tab, *old_dd_tab); + if (table_options->exists("pack_record")) { + table_options->set("pack_record", pack_record); + } + } if (!dd_table_is_partitioned(new_dd_tab->table()) || dd_part_is_first(reinterpret_cast(new_dd_tab))) {