diff options
author | Sergei Golubchik <serg@mariadb.org> | 2019-02-03 19:56:41 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2019-02-05 01:34:17 +0100 |
commit | b57ae8b58cbfff020ab91f6844fc174f536af43f (patch) | |
tree | f86f2b2cdeba0c6d9fbc94ac98d286b303f1641d /sql | |
parent | db8f0daeb4f86dd5fab1fba292b6682fa4413e8b (diff) | |
download | mariadb-git-b57ae8b58cbfff020ab91f6844fc174f536af43f.tar.gz |
MDEV-18239 ASAN use-after-poison in process_str_arg / ... / mark_unsupported_func or unexpected ER_BAD_FIELD_ERROR upon ALTER TABLE
renaming columns in a CHECK constraint during ALTER TABLE
taints the original TABLE and requires m_need_reopen=1.
In this case, though, renaming was redundant, so just don't do it.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_table.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 4f9adc3338c..f27b61092d2 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -8123,7 +8123,12 @@ mysql_prepare_alter_table(THD *thd, TABLE *table, } if (!drop) { - check->expr->walk(&Item::rename_fields_processor, 1, &column_rename_param); + if (alter_info->flags & Alter_info::ALTER_RENAME_COLUMN) + { + check->expr->walk(&Item::rename_fields_processor, 1, + &column_rename_param); + table->m_needs_reopen= 1; // because new column name is on thd->mem_root + } new_constraint_list.push_back(check, thd->mem_root); } } |