diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-05-05 20:33:10 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-05-05 20:33:10 +0300 |
commit | 2c3c851d2cba73825f81cd06220138b15c17ae4d (patch) | |
tree | 4130cf52868c41beb3c242ad229031cca73d7e1c /sql/sql_table.cc | |
parent | 474290540a829edcc6a74be8c354053f330bf5de (diff) | |
parent | 8648b9bed86e9f52c027daec760d6ab5ce52e889 (diff) | |
download | mariadb-git-2c3c851d2cba73825f81cd06220138b15c17ae4d.tar.gz |
Merge 10.3 into 10.4
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 5d3906dc644..49834847dc2 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -9772,7 +9772,7 @@ do_continue:; */ if (!(alter_info->flags & ~(ALTER_RENAME | ALTER_KEYS_ONOFF)) && alter_info->partition_flags == 0 && - alter_info->requested_algorithm != + alter_info->algorithm(thd) != Alter_info::ALTER_TABLE_ALGORITHM_COPY) // No need to touch frm. { bool res; @@ -9849,7 +9849,7 @@ do_continue:; "LOCK=DEFAULT"); DBUG_RETURN(true); } - else if (alter_info->requested_algorithm != + else if (alter_info->algorithm(thd) != Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT) { my_error(ER_ALTER_OPERATION_NOT_SUPPORTED_REASON, MYF(0), @@ -9889,20 +9889,21 @@ do_continue:; using in-place API. */ if ((thd->variables.alter_algorithm == Alter_info::ALTER_TABLE_ALGORITHM_COPY && - alter_info->requested_algorithm != + alter_info->algorithm(thd) != Alter_info::ALTER_TABLE_ALGORITHM_INPLACE) || is_inplace_alter_impossible(table, create_info, alter_info) || IF_PARTITIONING((partition_changed && !(table->s->db_type()->partition_flags() & HA_USE_AUTO_PARTITION)), 0)) { - if (alter_info->requested_algorithm == + if (alter_info->algorithm(thd) == Alter_info::ALTER_TABLE_ALGORITHM_INPLACE) { my_error(ER_ALTER_OPERATION_NOT_SUPPORTED, MYF(0), "ALGORITHM=INPLACE", "ALGORITHM=COPY"); DBUG_RETURN(true); } - alter_info->requested_algorithm= Alter_info::ALTER_TABLE_ALGORITHM_COPY; + alter_info->set_requested_algorithm( + Alter_info::ALTER_TABLE_ALGORITHM_COPY); } /* @@ -10018,7 +10019,7 @@ do_continue:; /* Remember that we have not created table in storage engine yet. */ bool no_ha_table= true; - if (alter_info->requested_algorithm != Alter_info::ALTER_TABLE_ALGORITHM_COPY) + if (alter_info->algorithm(thd) != Alter_info::ALTER_TABLE_ALGORITHM_COPY) { Alter_inplace_info ha_alter_info(create_info, alter_info, key_info, key_count, @@ -10108,7 +10109,7 @@ do_continue:; // If SHARED lock and no particular algorithm was requested, use COPY. if (inplace_supported == HA_ALTER_INPLACE_EXCLUSIVE_LOCK && alter_info->requested_lock == Alter_info::ALTER_TABLE_LOCK_SHARED && - alter_info->requested_algorithm == + alter_info->algorithm(thd) == Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT && thd->variables.alter_algorithm == Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT) @@ -10963,7 +10964,8 @@ bool mysql_recreate_table(THD *thd, TABLE_LIST *table_list, bool table_copy) alter_info.flags= (ALTER_CHANGE_COLUMN | ALTER_RECREATE); if (table_copy) - alter_info.requested_algorithm= Alter_info::ALTER_TABLE_ALGORITHM_COPY; + alter_info.set_requested_algorithm( + Alter_info::ALTER_TABLE_ALGORITHM_COPY); bool res= mysql_alter_table(thd, &null_clex_str, &null_clex_str, &create_info, table_list, &alter_info, 0, |