summaryrefslogtreecommitdiff
path: root/sql/item_create.cc
diff options
context:
space:
mode:
authorDaniel-Solo <dansolo@mail.ru>2020-01-15 15:08:42 +0300
committerSergey Vojtovich <svoj@mariadb.org>2020-02-27 14:37:19 +0400
commit127fee998f7275485aeca91ad82030e6f796d809 (patch)
treeaca553e1416a10111f0bb68218d3573b3980ddfe /sql/item_create.cc
parent98adcffe460447c43a86afdf6588e31379b7f52d (diff)
downloadmariadb-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.cc22
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)},