From b15a5f6fff8f66a3d51e483785461ab442df0e3f Mon Sep 17 00:00:00 2001 From: Aleksey Midenkov Date: Mon, 11 Oct 2021 15:28:00 +0300 Subject: [PATCH] MDEV-26767 Server crashes when rename table and alter storage engine Wrong assertion leftover removed. m_sql_cmd can be allocated by any ALTER subcommand and before allocation it is checked for NULL first. --- mysql-test/main/alter_table.result | 5 +++++ mysql-test/main/alter_table.test | 6 ++++++ sql/sql_lex.cc | 1 - 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mysql-test/main/alter_table.result b/mysql-test/main/alter_table.result index a2830b95294..bef7f393d1d 100644 --- a/mysql-test/main/alter_table.result +++ b/mysql-test/main/alter_table.result @@ -3375,3 +3375,8 @@ drop table t1; # # End of 10.5 tests # +# +# MDEV-26767 Server crashes when rename table and alter storage engine +# +alter table txxx engine=innodb, rename to tyyy; +ERROR 42S02: Table 'test.txxx' doesn't exist diff --git a/mysql-test/main/alter_table.test b/mysql-test/main/alter_table.test index d81f50e096c..4bf5eed5a43 100644 --- a/mysql-test/main/alter_table.test +++ b/mysql-test/main/alter_table.test @@ -2570,3 +2570,9 @@ drop table t1; --echo # --echo # End of 10.5 tests --echo # + +--echo # +--echo # MDEV-26767 Server crashes when rename table and alter storage engine +--echo # +--error ER_NO_SUCH_TABLE +alter table txxx engine=innodb, rename to tyyy; diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 503f750fe61..f2fa44ad9c2 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -11260,7 +11260,6 @@ bool LEX::stmt_alter_table_exchange_partition(Table_ident *table) bool LEX::stmt_alter_table(Table_ident *table) { DBUG_ASSERT(sql_command == SQLCOM_ALTER_TABLE); - DBUG_ASSERT(!m_sql_cmd); first_select_lex()->db= table->db; if (first_select_lex()->db.str == NULL && copy_db_to(&first_select_lex()->db))