From 25cb2b373c84b09a7b1720704e85c64d3df90f16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Tue, 28 Apr 2020 16:20:24 +0300 Subject: [PATCH] MDEV-22128 : Server with wsrep_on crashes in do_rename upon RENAME TABLE on a view We need to make sure that hton is not same as view_pseudo_hton that is not NULL but not usable. --- mysql-test/suite/galera/r/galera_view.result | 5 +++++ mysql-test/suite/galera/t/galera_view.test | 7 +++++++ sql/sql_rename.cc | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 mysql-test/suite/galera/r/galera_view.result create mode 100644 mysql-test/suite/galera/t/galera_view.test diff --git a/mysql-test/suite/galera/r/galera_view.result b/mysql-test/suite/galera/r/galera_view.result new file mode 100644 index 00000000000..c9a827c6390 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_view.result @@ -0,0 +1,5 @@ +connection node_2; +connection node_1; +CREATE VIEW v AS SELECT 1; +RENAME TABLE v TO v2; +DROP VIEW v2; diff --git a/mysql-test/suite/galera/t/galera_view.test b/mysql-test/suite/galera/t/galera_view.test new file mode 100644 index 00000000000..2bfeb3027a7 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_view.test @@ -0,0 +1,7 @@ +--source include/galera_cluster.inc + +CREATE VIEW v AS SELECT 1; +RENAME TABLE v TO v2; + +# Cleanup +DROP VIEW v2; diff --git a/sql/sql_rename.cc b/sql/sql_rename.cc index 5fafd9fa28a..0ac97bbeafd 100644 --- a/sql/sql_rename.cc +++ b/sql/sql_rename.cc @@ -323,7 +323,7 @@ do_rename(THD *thd, TABLE_LIST *ren_table, const LEX_CSTRING *new_db, DBUG_ASSERT(!thd->locked_tables_mode); #ifdef WITH_WSREP - if (WSREP(thd) && hton && + if (WSREP(thd) && hton && hton != view_pseudo_hton && !wsrep_should_replicate_ddl(thd, hton->db_type)) DBUG_RETURN(1); #endif