mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Fix for bug#50946: fast index creation still seems to copy the table
Problem: ALTER TABLE ADD INDEX may lead to table copying if there's
numeric field(s) with non-default display width modificator specified.
Fix: compare numeric field's storage lenghts when we decide whether
they can be considered 'equal' for table alteration purposes.
mysql-test/r/error_simulation.result:
Fix for bug#50946: fast index creation still seems to copy the table
- test result.
mysql-test/t/error_simulation.test:
Fix for bug#50946: fast index creation still seems to copy the table
- test case.
sql/field.cc:
Fix for bug#50946: fast index creation still seems to copy the table
- check numeric field's pack lengths instead of it's display lenghts
comparing fields equality for table alteration purposes.
sql/sql_table.cc:
Fix for bug#50946: fast index creation still seems to copy the table
- check compare_tables() result for testing purposes.
This commit is contained in:
@@ -6922,6 +6922,13 @@ view_err:
|
||||
&candidate_key_count))
|
||||
goto err;
|
||||
|
||||
DBUG_EXECUTE_IF("alter_table_only_metadata_change", {
|
||||
if (need_copy_table_res != ALTER_TABLE_METADATA_ONLY)
|
||||
goto err; });
|
||||
DBUG_EXECUTE_IF("alter_table_only_index_change", {
|
||||
if (need_copy_table_res != ALTER_TABLE_INDEX_CHANGED)
|
||||
goto err; });
|
||||
|
||||
if (need_copy_table == ALTER_TABLE_METADATA_ONLY)
|
||||
need_copy_table= need_copy_table_res;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user