Server IP : 104.21.38.3 / Your IP : 172.71.81.230 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/plugin/udf_services/ |
Upload File : |
/* Copyright (c) 2016, 2023, Oracle and/or its affiliates. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2.0, as published by the Free Software Foundation. This program is also distributed with certain software (including but not limited to OpenSSL) that is licensed under separate terms, as designated in a particular file or component or in included license documentation. The authors of MySQL hereby grant you an additional permission to link the program and your derivative works with the separately licensed software that they have included with MySQL. 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, version 2.0, 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 */ #include <my_global.h> #include <mysql_version.h> #include <mysql/plugin.h> #include <mysql_com.h> /** @file test_udf_services.cc This is a test suite plugin to verify that plugins can co-exist with UDFs. The file defines one DAEMON plugin @ref test_udf_services_plugin and one UDF function: @ref test_udf_services_udf. The test then checks if the plugin can be unloaded and loaded while the UDF is defined. No user-facing functionality in this plugin. Just test material ! */ static struct st_mysql_daemon test_udf_services_plugin= { MYSQL_DAEMON_INTERFACE_VERSION }; mysql_declare_plugin(test_udf_services) { MYSQL_DAEMON_PLUGIN, &test_udf_services_plugin, "test_udf_services", "Georgi Kodinov", "MySQL mtr test framework", PLUGIN_LICENSE_GPL, NULL, /* Plugin Init */ NULL, /* Plugin Deinit */ 0x0100, /* Plugin version: 1.0 */ NULL, /* status variables */ NULL, /* system variables */ NULL, /* config options */ 0, /* flags */ } mysql_declare_plugin_end; #ifdef WIN32 #define PLUGIN_EXPORT extern "C" __declspec(dllexport) #else #define PLUGIN_EXPORT extern "C" #endif /** Initialization function for @ref test_udf_services_udf Must be present otherwise the server refuses to load @param initrd Return value from xxxx_init @param args Array of arguments @param[out] message Error message in case of error. @retval FALSE success @retval TRUE Failure. Error in the message argument */ PLUGIN_EXPORT my_bool test_udf_services_udf_init(UDF_INIT *initid MY_ATTRIBUTE((unused)), UDF_ARGS *args MY_ATTRIBUTE((unused)), char *message MY_ATTRIBUTE((unused))) { return FALSE; } /** A UDF function returning 0. @param initrd Return value from xxxx_init @param args Array of arguments @param[out] is_null If the result is null, store 1 here @param[out] error On error store 1 here */ PLUGIN_EXPORT longlong test_udf_services_udf(UDF_INIT *initid MY_ATTRIBUTE((unused)), UDF_ARGS *args MY_ATTRIBUTE((unused)), char *is_null MY_ATTRIBUTE((unused)), char *error MY_ATTRIBUTE((unused))) { char buffer[10]; *is_null= 0; *error= 0; /* use a plugin service function */ my_snprintf(buffer, sizeof(buffer), "test"); return 0; }