From a175314c3e5827eb193872241446f2f8f5c9d33c Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 20:07:14 +0200 Subject: Adding upstream version 1:10.5.12. Signed-off-by: Daniel Baumann --- plugin/func_test/CMakeLists.txt | 17 +++++ .../mysql-test/func_test/func_test.result | 28 +++++++ .../func_test/mysql-test/func_test/func_test.test | 23 ++++++ plugin/func_test/mysql-test/func_test/suite.opt | 1 + plugin/func_test/mysql-test/func_test/suite.pm | 9 +++ plugin/func_test/plugin.cc | 87 ++++++++++++++++++++++ 6 files changed, 165 insertions(+) create mode 100644 plugin/func_test/CMakeLists.txt create mode 100644 plugin/func_test/mysql-test/func_test/func_test.result create mode 100644 plugin/func_test/mysql-test/func_test/func_test.test create mode 100644 plugin/func_test/mysql-test/func_test/suite.opt create mode 100644 plugin/func_test/mysql-test/func_test/suite.pm create mode 100644 plugin/func_test/plugin.cc (limited to 'plugin/func_test') diff --git a/plugin/func_test/CMakeLists.txt b/plugin/func_test/CMakeLists.txt new file mode 100644 index 00000000..38ce82d3 --- /dev/null +++ b/plugin/func_test/CMakeLists.txt @@ -0,0 +1,17 @@ +# Copyright (c) 2019, MariaDB corporation. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +MYSQL_ADD_PLUGIN(func_test plugin.cc RECOMPILE_FOR_EMBEDDED + MODULE_ONLY COMPONENT Test) diff --git a/plugin/func_test/mysql-test/func_test/func_test.result b/plugin/func_test/mysql-test/func_test/func_test.result new file mode 100644 index 00000000..92d03fbd --- /dev/null +++ b/plugin/func_test/mysql-test/func_test/func_test.result @@ -0,0 +1,28 @@ +SELECT +PLUGIN_NAME, +PLUGIN_VERSION, +PLUGIN_STATUS, +PLUGIN_TYPE, +PLUGIN_AUTHOR, +PLUGIN_DESCRIPTION, +PLUGIN_LICENSE, +PLUGIN_MATURITY, +PLUGIN_AUTH_VERSION +FROM INFORMATION_SCHEMA.PLUGINS +WHERE PLUGIN_TYPE='FUNCTION' + AND PLUGIN_NAME='sysconst_test'; +PLUGIN_NAME sysconst_test +PLUGIN_VERSION 1.0 +PLUGIN_STATUS ACTIVE +PLUGIN_TYPE FUNCTION +PLUGIN_AUTHOR MariaDB Corporation +PLUGIN_DESCRIPTION Function SYSCONST_TEST() +PLUGIN_LICENSE GPL +PLUGIN_MATURITY Experimental +PLUGIN_AUTH_VERSION 1.0 +SELECT sysconst_test(); +sysconst_test() +sysconst_test +SELECT sysconst_test(); +sysconst_test() +sysconst_test diff --git a/plugin/func_test/mysql-test/func_test/func_test.test b/plugin/func_test/mysql-test/func_test/func_test.test new file mode 100644 index 00000000..d5e6a604 --- /dev/null +++ b/plugin/func_test/mysql-test/func_test/func_test.test @@ -0,0 +1,23 @@ +#--echo # +#--echo # +#--echo # + +--vertical_results +SELECT + PLUGIN_NAME, + PLUGIN_VERSION, + PLUGIN_STATUS, + PLUGIN_TYPE, + PLUGIN_AUTHOR, + PLUGIN_DESCRIPTION, + PLUGIN_LICENSE, + PLUGIN_MATURITY, + PLUGIN_AUTH_VERSION +FROM INFORMATION_SCHEMA.PLUGINS +WHERE PLUGIN_TYPE='FUNCTION' + AND PLUGIN_NAME='sysconst_test'; +--horizontal_results + + +SELECT sysconst_test(); +SELECT sysconst_test(); diff --git a/plugin/func_test/mysql-test/func_test/suite.opt b/plugin/func_test/mysql-test/func_test/suite.opt new file mode 100644 index 00000000..8c8bfe0f --- /dev/null +++ b/plugin/func_test/mysql-test/func_test/suite.opt @@ -0,0 +1 @@ +--plugin-load-add=$FUNC_TEST_SO diff --git a/plugin/func_test/mysql-test/func_test/suite.pm b/plugin/func_test/mysql-test/func_test/suite.pm new file mode 100644 index 00000000..ddaa6b55 --- /dev/null +++ b/plugin/func_test/mysql-test/func_test/suite.pm @@ -0,0 +1,9 @@ +package My::Suite::Func_test; + +@ISA = qw(My::Suite); + +return "No FUNC_TEST plugin" unless $ENV{FUNC_TEST_SO}; + +sub is_default { 1 } + +bless { }; diff --git a/plugin/func_test/plugin.cc b/plugin/func_test/plugin.cc new file mode 100644 index 00000000..81118977 --- /dev/null +++ b/plugin/func_test/plugin.cc @@ -0,0 +1,87 @@ +/* + Copyright (c) 2019, MariaDB Corporation + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#define MYSQL_SERVER + +#include +#include +#include + +class Item_func_sysconst_test :public Item_func_sysconst +{ +public: + Item_func_sysconst_test(THD *thd): Item_func_sysconst(thd) {} + String *val_str(String *str) + { + null_value= str->copy(STRING_WITH_LEN("sysconst_test"), system_charset_info); + return null_value ? NULL : str; + } + bool fix_length_and_dec() + { + max_length= MAX_FIELD_NAME * system_charset_info->mbmaxlen; + maybe_null= true; + return false; + } + const char *func_name() const { return "sysconst_test"; } + const char *fully_qualified_func_name() const { return "sysconst_test()"; } + Item *get_copy(THD *thd) + { return get_item_copy(thd, this); } +}; + + +class Create_func_sysconst_test : public Create_func_arg0 +{ +public: + Item *create_builder(THD *thd) override; + static Create_func_sysconst_test s_singleton; +protected: + Create_func_sysconst_test() {} +}; + + +Create_func_sysconst_test Create_func_sysconst_test::s_singleton; + +Item* Create_func_sysconst_test::create_builder(THD *thd) +{ + return new (thd->mem_root) Item_func_sysconst_test(thd); +} + + +#define BUILDER(F) & F::s_singleton + + +static Plugin_function + plugin_descriptor_function_sysconst_test(BUILDER(Create_func_sysconst_test)); + +/*************************************************************************/ + +maria_declare_plugin(type_test) +{ + MariaDB_FUNCTION_PLUGIN, // the plugin type (see include/mysql/plugin.h) + &plugin_descriptor_function_sysconst_test, // pointer to type-specific plugin descriptor + "sysconst_test", // plugin name + "MariaDB Corporation", // plugin author + "Function SYSCONST_TEST()", // the plugin description + PLUGIN_LICENSE_GPL, // the plugin license (see include/mysql/plugin.h) + 0, // Pointer to plugin initialization function + 0, // Pointer to plugin deinitialization function + 0x0100, // Numeric version 0xAABB means AA.BB version + NULL, // Status variables + NULL, // System variables + "1.0", // String version representation + MariaDB_PLUGIN_MATURITY_EXPERIMENTAL // Maturity(see include/mysql/plugin.h)*/ +} +maria_declare_plugin_end; -- cgit v1.2.3