diff options
author | Sergei Golubchik <serg@mariadb.org> | 2018-04-20 10:10:33 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2018-04-20 10:24:44 +0200 |
commit | bcb36ee21e2515d17dcf03b760487e64eb780f2b (patch) | |
tree | e951c3fc19c732b9f88dac31ff06254ebffb2778 /sql/sql_truncate.cc | |
parent | 86718fda4e5363b05aa2beaac596ec614aaa7a0f (diff) | |
download | mariadb-git-bcb36ee21e2515d17dcf03b760487e64eb780f2b.tar.gz |
MDEV-15456 Server crashes upon adding or dropping a partition in ALTER under LOCK TABLE after ER_SAME_NAME_PARTITION
ALTER TABLE ... ADD PARTITION modifies the open TABLE structure,
and sets table->need_reopen=1 to reset these modifications
in case of an error.
But under LOCK TABLES the table isn't get reopened, despite need_reopen.
Fixed by reopening need_reopen tables under LOCK TABLE.
Diffstat (limited to 'sql/sql_truncate.cc')
-rw-r--r-- | sql/sql_truncate.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/sql_truncate.cc b/sql/sql_truncate.cc index 05869b70c8f..ff373f2f29a 100644 --- a/sql/sql_truncate.cc +++ b/sql/sql_truncate.cc @@ -494,7 +494,7 @@ bool Sql_cmd_truncate_table::truncate_table(THD *thd, TABLE_LIST *table_ref) */ error= dd_recreate_table(thd, table_ref->db, table_ref->table_name); - if (thd->locked_tables_mode && thd->locked_tables_list.reopen_tables(thd)) + if (thd->locked_tables_mode && thd->locked_tables_list.reopen_tables(thd, false)) thd->locked_tables_list.unlink_all_closed_tables(thd, NULL, 0); /* No need to binlog a failed truncate-by-recreate. */ |