A system and status variables demo plugin
Let's see a more complex example. This plugin shows how to create system and status variables. It has one global system variable and one status variable, both defined as long long
. When you set the global system variable, its value is copied into the status variable.
#include <stdio.h> #include <mysql/plugin.h> #include <mysql_version.h> long long system_var = 0; long long status_var = 0; struct st_mysql_show_var vars_status_var[] = { {"vars_status_var", (char *) &status_var, SHOW_LONGLONG}, {0, 0, 0} };
We have one status variable in this plugin called vars_status_var
which is bound to the status_var
variable defined near the top of this source code. We are defining this variable as long long
so we use the SHOW_LONGLONG
type.
int sysvar_check(MYSQL_THD thd, struct st_mysql_sys_var *var, void *save, struct st_mysql_value *value) {
This function is to be called before our system variable is updated. A plugin is not required to...