diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2023-01-27 10:40:07 +0200 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2023-01-27 10:40:07 +0200 |
commit | 49ee18eb422d7c2bc3b349eef4be9134816b066a (patch) | |
tree | 29452ee7be7294116ebb9267076761d422b9a36a | |
parent | 696562ce5528faa60653aa31058bf42f26d71dc4 (diff) | |
download | mariadb-git-49ee18eb422d7c2bc3b349eef4be9134816b066a.tar.gz |
MDEV-30473 : Do not allow GET_LOCK() / RELEASE_LOCK() in cluster
In 10.5 If WSREP_ON=ON do not allow RELEASE_ALL_LOCKS function.
Instead print clear error message.
-rw-r--r-- | mysql-test/suite/galera/r/galera_locks_funcs.result | 5 | ||||
-rw-r--r-- | mysql-test/suite/galera/t/galera_locks_funcs.test | 4 | ||||
-rw-r--r-- | sql/item_create.cc | 7 |
3 files changed, 16 insertions, 0 deletions
diff --git a/mysql-test/suite/galera/r/galera_locks_funcs.result b/mysql-test/suite/galera/r/galera_locks_funcs.result index 378067aa461..25d3bbe28f5 100644 --- a/mysql-test/suite/galera/r/galera_locks_funcs.result +++ b/mysql-test/suite/galera/r/galera_locks_funcs.result @@ -15,5 +15,10 @@ ERROR 42000: This version of MariaDB doesn't yet support 'RELEASE_LOCK in cluste SHOW WARNINGS; Level Code Message Error 1235 This version of MariaDB doesn't yet support 'RELEASE_LOCK in cluster (WSREP_ON=ON)' +SELECT RELEASE_ALL_LOCKS(); +ERROR 42000: This version of MariaDB doesn't yet support 'RELEASE_ALL_LOCKS in cluster (WSREP_ON=ON)' +SHOW WARNINGS; +Level Code Message +Error 1235 This version of MariaDB doesn't yet support 'RELEASE_ALL_LOCKS in cluster (WSREP_ON=ON)' COMMIT; DROP TABLE t; diff --git a/mysql-test/suite/galera/t/galera_locks_funcs.test b/mysql-test/suite/galera/t/galera_locks_funcs.test index 68737f2daab..42838e9585c 100644 --- a/mysql-test/suite/galera/t/galera_locks_funcs.test +++ b/mysql-test/suite/galera/t/galera_locks_funcs.test @@ -9,6 +9,10 @@ SELECT * FROM t; --error ER_NOT_SUPPORTED_YET SELECT RELEASE_LOCK('a'); SHOW WARNINGS; +# New in 10.5 +--error ER_NOT_SUPPORTED_YET +SELECT RELEASE_ALL_LOCKS(); +SHOW WARNINGS; COMMIT; DROP TABLE t; diff --git a/sql/item_create.cc b/sql/item_create.cc index 81621253cd5..5363a3407ab 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -4843,6 +4843,13 @@ Create_func_release_all_locks Create_func_release_all_locks::s_singleton; Item* Create_func_release_all_locks::create_builder(THD *thd) { +#ifdef WITH_WSREP + if (WSREP_ON && WSREP(thd)) + { + my_error(ER_NOT_SUPPORTED_YET, MYF(0), "RELEASE_ALL_LOCKS in cluster (WSREP_ON=ON)"); + return NULL; + } +#endif /* WITH_WSREP */ thd->lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT); return new (thd->mem_root) Item_func_release_all_locks(thd); |