diff options
author | Daniel-Solo <dansolo@mail.ru> | 2020-01-15 15:08:42 +0300 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2020-02-27 14:37:19 +0400 |
commit | 127fee998f7275485aeca91ad82030e6f796d809 (patch) | |
tree | aca553e1416a10111f0bb68218d3573b3980ddfe /sql/item_create.cc | |
parent | 98adcffe460447c43a86afdf6588e31379b7f52d (diff) | |
download | mariadb-git-127fee998f7275485aeca91ad82030e6f796d809.tar.gz |
MDEV-10569: Add RELEASE_ALL_LOCKS function. Implementing the SQL
function to release all named locks
Diffstat (limited to 'sql/item_create.cc')
-rw-r--r-- | sql/item_create.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc index 486f4fc591e..57e402999ea 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -1765,6 +1765,15 @@ protected: }; +class Create_func_release_all_locks : public Create_func_arg0 +{ +public: + virtual Item *create_builder(THD *thd); + + static Create_func_release_all_locks s_singleton; +}; + + class Create_func_release_lock : public Create_func_arg1 { public: @@ -4762,6 +4771,17 @@ Create_func_rand::create_native(THD *thd, LEX_CSTRING *name, } +Create_func_release_all_locks Create_func_release_all_locks::s_singleton; + +Item* +Create_func_release_all_locks::create_builder(THD *thd) +{ + 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); +} + + Create_func_release_lock Create_func_release_lock::s_singleton; Item* @@ -5525,6 +5545,8 @@ static Native_func_registry func_array[] = { { STRING_WITH_LEN("REGEXP_SUBSTR") }, BUILDER(Create_func_regexp_substr)}, { { STRING_WITH_LEN("RADIANS") }, BUILDER(Create_func_radians)}, { { STRING_WITH_LEN("RAND") }, BUILDER(Create_func_rand)}, + { { STRING_WITH_LEN("RELEASE_ALL_LOCKS") }, + BUILDER(Create_func_release_all_locks)}, { { STRING_WITH_LEN("RELEASE_LOCK") }, BUILDER(Create_func_release_lock)}, { { STRING_WITH_LEN("REPLACE_ORACLE") }, BUILDER(Create_func_replace_oracle)}, |