Maria WL#61
Interface for maria extensions. Alternative plugin interface with additional info (maturity and string version). CMakeLists.txt: Maria plugin interface used. config/ac-macros/plugins.m4: Maria plugin interface used. configure.in: Maria plugin interface used. include/mysql/plugin.h: Maria plugin interface added. include/mysql/plugin_auth.h.pp: Maria plugin interface added. plugin/auth/auth_socket.c: Maria plugin interface added. plugin/auth/dialog.c: Maria plugin interface added. plugin/daemon_example/daemon_example.cc: Maria plugin interface added. plugin/fulltext/plugin_example.c: Maria plugin interface added. sql/ha_ndbcluster.cc: Maria plugin interface added. sql/ha_partition.cc: Maria plugin interface added. sql/log.cc: Maria plugin interface added. sql/sql_acl.cc: Maria plugin interface added. sql/sql_builtin.cc.in: Maria plugin interface used. sql/sql_plugin.cc: Maria plugin interface added. sql/sql_plugin.h: Maria plugin interface used. sql/sql_show.cc: Maria plugin interface added. storage/archive/ha_archive.cc: Maria plugin interface added. storage/blackhole/ha_blackhole.cc: Maria plugin interface added. storage/csv/ha_tina.cc: Maria plugin interface added. storage/example/ha_example.cc: Maria plugin interface added. storage/federated/ha_federated.cc: Maria plugin interface added. storage/federatedx/ha_federatedx.cc: Maria plugin interface added. storage/heap/ha_heap.cc: Maria plugin interface added. storage/ibmdb2i/ha_ibmdb2i.cc: Maria plugin interface added. storage/innobase/handler/ha_innodb.cc: Maria plugin interface added. storage/innodb_plugin/handler/i_s.cc: Maria plugin interface added. storage/maria/ha_maria.cc: Maria plugin interface added. storage/myisam/ha_myisam.cc: Maria plugin interface added. storage/myisammrg/ha_myisammrg.cc: Maria plugin interface added. storage/pbxt/src/ha_pbxt.cc: Maria plugin interface added. storage/xtradb/handler/ha_innodb.cc: Maria plugin interface added. storage/xtradb/handler/i_s.cc: Maria plugin interface added. storage/xtradb/handler/i_s.h: Maria plugin interface added.
This commit is contained in:
parent
8a7f2559bc
commit
20739646d7
@ -260,7 +260,7 @@ FOREACH(SUBDIR ${STORAGE_SUBDIRS})
|
||||
ENDIF(WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
|
||||
|
||||
IF (ENGINE_BUILD_TYPE STREQUAL "STATIC")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_${PLUGIN_NAME}_plugin")
|
||||
SET (maria_plugin_defs "${maria_plugin_defs},builtin_maria_${PLUGIN_NAME}_plugin")
|
||||
SET (MYSQLD_STATIC_ENGINE_LIBS ${MYSQLD_STATIC_ENGINE_LIBS} ${PLUGIN_NAME})
|
||||
SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} -DWITH_${ENGINE}_STORAGE_ENGINE")
|
||||
SET (WITH_${ENGINE}_STORAGE_ENGINE TRUE)
|
||||
@ -279,7 +279,7 @@ ENDFOREACH(SUBDIR ${STORAGE_SUBDIRS})
|
||||
# Special handling for partition(not really pluggable)
|
||||
IF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
|
||||
SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} -DWITH_PARTITION_STORAGE_ENGINE")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_partition_plugin")
|
||||
SET (maria_plugin_defs "${maria_plugin_defs},builtin_maria_partition_plugin")
|
||||
ENDIF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
|
||||
|
||||
# Special handling for tmp tables with the maria engine
|
||||
|
@ -460,7 +460,7 @@ dnl Although this is "pretty", it breaks libmysqld build
|
||||
])
|
||||
])
|
||||
])
|
||||
mysql_plugin_defs="$mysql_plugin_defs, [builtin_]$2[_plugin]"
|
||||
maria_plugin_defs="$maria_plugin_defs, [builtin_maria_]$2[_plugin]"
|
||||
[with_plugin_]$2=yes
|
||||
AC_MSG_RESULT([yes])
|
||||
m4_ifdef([$11], [
|
||||
|
@ -2872,7 +2872,7 @@ AC_SUBST(server_scripts)
|
||||
|
||||
AC_SUBST(mysql_plugin_dirs)
|
||||
AC_SUBST(mysql_plugin_libs)
|
||||
AC_SUBST(mysql_plugin_defs)
|
||||
AC_SUBST(maria_plugin_defs)
|
||||
|
||||
|
||||
# Now that sql_client_dirs and sql_server_dirs are stable, determine the union.
|
||||
|
@ -57,7 +57,10 @@ typedef struct st_mysql_xid MYSQL_XID;
|
||||
Plugin API. Common for all plugin types.
|
||||
*/
|
||||
|
||||
/* MySQL plugin interface version */
|
||||
#define MYSQL_PLUGIN_INTERFACE_VERSION 0x0101
|
||||
/* MariaDB plugin interface version */
|
||||
#define MARIA_PLUGIN_INTERFACE_VERSION 0x0100
|
||||
|
||||
/*
|
||||
The allowable types of plugins
|
||||
@ -81,6 +84,14 @@ typedef struct st_mysql_xid MYSQL_XID;
|
||||
#define PLUGIN_LICENSE_GPL_STRING "GPL"
|
||||
#define PLUGIN_LICENSE_BSD_STRING "BSD"
|
||||
|
||||
/* definitions of code maturity for plugins */
|
||||
#define MariaDB_PLUGIN_MATURITY_UNKNOWN 0
|
||||
#define MariaDB_PLUGIN_MATURITY_EXPERIMENTAL 1
|
||||
#define MariaDB_PLUGIN_MATURITY_ALPHA 2
|
||||
#define MariaDB_PLUGIN_MATURITY_BETA 3
|
||||
#define MariaDB_PLUGIN_MATURITY_GAMMA 4
|
||||
#define MariaDB_PLUGIN_MATURITY_STABLE 5
|
||||
|
||||
/*
|
||||
Macros for beginning and ending plugin declarations. Between
|
||||
mysql_declare_plugin and mysql_declare_plugin_end there should
|
||||
@ -93,11 +104,24 @@ typedef struct st_mysql_xid MYSQL_XID;
|
||||
int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
||||
int PSIZE= sizeof(struct st_mysql_plugin); \
|
||||
struct st_mysql_plugin DECLS[]= {
|
||||
|
||||
#define MARIA_DECLARE_PLUGIN__(NAME, VERSION, PSIZE, DECLS) \
|
||||
int VERSION= MARIA_PLUGIN_INTERFACE_VERSION; \
|
||||
int PSIZE= sizeof(struct st_maria_plugin); \
|
||||
struct st_maria_plugin DECLS[]= {
|
||||
|
||||
#else
|
||||
|
||||
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
||||
MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
||||
MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \
|
||||
MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]= {
|
||||
|
||||
#define MARIA_DECLARE_PLUGIN__(NAME, VERSION, PSIZE, DECLS) \
|
||||
MYSQL_PLUGIN_EXPORT int _maria_plugin_interface_version_= MARIA_PLUGIN_INTERFACE_VERSION; \
|
||||
MYSQL_PLUGIN_EXPORT int _maria_sizeof_struct_st_plugin_= sizeof(struct st_maria_plugin); \
|
||||
MYSQL_PLUGIN_EXPORT struct st_maria_plugin _maria_plugin_declarations_[]= {
|
||||
|
||||
#endif
|
||||
|
||||
#define mysql_declare_plugin(NAME) \
|
||||
@ -106,7 +130,14 @@ __MYSQL_DECLARE_PLUGIN(NAME, \
|
||||
builtin_ ## NAME ## _sizeof_struct_st_plugin, \
|
||||
builtin_ ## NAME ## _plugin)
|
||||
|
||||
#define maria_declare_plugin(NAME) \
|
||||
MARIA_DECLARE_PLUGIN__(NAME, \
|
||||
builtin_maria_ ## NAME ## _plugin_interface_version, \
|
||||
builtin_maria_ ## NAME ## _sizeof_struct_st_plugin, \
|
||||
builtin_maria_ ## NAME ## _plugin)
|
||||
|
||||
#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0,0}}
|
||||
#define maria_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0,0,0}}
|
||||
|
||||
/*
|
||||
declarations for SHOW STATUS support in plugins
|
||||
@ -403,6 +434,30 @@ struct st_mysql_plugin
|
||||
void * __reserved1; /* reserved for dependency checking */
|
||||
};
|
||||
|
||||
/*
|
||||
MariaDB extension for plugins declaration structure.
|
||||
|
||||
It also copy current MySQL plugin fields to have more independency
|
||||
in plugins extension
|
||||
*/
|
||||
|
||||
struct st_maria_plugin
|
||||
{
|
||||
int type; /* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
void *info; /* pointer to type-specific plugin descriptor */
|
||||
const char *name; /* plugin name */
|
||||
const char *author; /* plugin author (for SHOW PLUGINS) */
|
||||
const char *descr; /* general descriptive text (for SHOW PLUGINS ) */
|
||||
int license; /* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
int (*init)(void *); /* the function to invoke when plugin is loaded */
|
||||
int (*deinit)(void *);/* the function to invoke when plugin is unloaded */
|
||||
unsigned int version; /* plugin version (for SHOW PLUGINS) */
|
||||
struct st_mysql_show_var *status_vars;
|
||||
struct st_mysql_sys_var **system_vars;
|
||||
const char *version_info; /* plugin version string */
|
||||
int maturity; /* MariaDB_PLUGIN_MATURITY_XXX */
|
||||
};
|
||||
|
||||
/*************************************************************************
|
||||
API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN)
|
||||
*/
|
||||
|
@ -77,6 +77,22 @@ struct st_mysql_plugin
|
||||
struct st_mysql_sys_var **system_vars;
|
||||
void * __reserved1;
|
||||
};
|
||||
struct st_maria_plugin
|
||||
{
|
||||
int type;
|
||||
void *info;
|
||||
const char *name;
|
||||
const char *author;
|
||||
const char *descr;
|
||||
int license;
|
||||
int (*init)(void *);
|
||||
int (*deinit)(void *);
|
||||
unsigned int version;
|
||||
struct st_mysql_show_var *status_vars;
|
||||
struct st_mysql_sys_var **system_vars;
|
||||
const char *version_info;
|
||||
int maturity;
|
||||
};
|
||||
enum enum_ftparser_mode
|
||||
{
|
||||
MYSQL_FTPARSER_SIMPLE_MODE= 0,
|
||||
|
@ -99,4 +99,21 @@ mysql_declare_plugin(socket_auth)
|
||||
NULL
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(socket_auth)
|
||||
{
|
||||
MYSQL_AUTHENTICATION_PLUGIN,
|
||||
&socket_auth_handler,
|
||||
"socket_peercred",
|
||||
"Sergei Golubchik",
|
||||
"Unix Socket based authentication",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
NULL,
|
||||
NULL,
|
||||
0x0100,
|
||||
NULL,
|
||||
NULL,
|
||||
"1.0",
|
||||
MariaDB_PLUGIN_MATURITY_BETA
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
|
@ -171,6 +171,38 @@ mysql_declare_plugin(dialog)
|
||||
NULL
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(dialog)
|
||||
{
|
||||
MYSQL_AUTHENTICATION_PLUGIN,
|
||||
&two_handler,
|
||||
"two_questions",
|
||||
"Sergei Golubchik",
|
||||
"Dialog plugin demo 1",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
NULL,
|
||||
NULL,
|
||||
0x0100,
|
||||
NULL,
|
||||
NULL,
|
||||
"1.0",
|
||||
MariaDB_PLUGIN_MATURITY_BETA
|
||||
},
|
||||
{
|
||||
MYSQL_AUTHENTICATION_PLUGIN,
|
||||
&three_handler,
|
||||
"three_attempts",
|
||||
"Sergei Golubchik",
|
||||
"Dialog plugin demo 2",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
NULL,
|
||||
NULL,
|
||||
0x0100,
|
||||
NULL,
|
||||
NULL,
|
||||
"1.0",
|
||||
MariaDB_PLUGIN_MATURITY_BETA
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
||||
/********************* CLIENT SIDE ***************************************/
|
||||
/*
|
||||
|
@ -200,3 +200,20 @@ mysql_declare_plugin(daemon_example)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(daemon_example)
|
||||
{
|
||||
MYSQL_DAEMON_PLUGIN,
|
||||
&daemon_example_plugin,
|
||||
"daemon_example",
|
||||
"Brian Aker",
|
||||
"Daemon example, creates a heartbeat beat file in mysql-heartbeat.log",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
daemon_example_plugin_init, /* Plugin Init */
|
||||
daemon_example_plugin_deinit, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_EXPERIMENTAL /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -270,4 +270,21 @@ mysql_declare_plugin(ftexample)
|
||||
NULL
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(ftexample)
|
||||
{
|
||||
MYSQL_FTPARSER_PLUGIN, /* type */
|
||||
&simple_parser_descriptor, /* descriptor */
|
||||
"simple_parser", /* name */
|
||||
"MySQL AB", /* author */
|
||||
"Simple Full-Text Parser", /* description */
|
||||
PLUGIN_LICENSE_GPL,
|
||||
simple_parser_plugin_init, /* init function (when loaded) */
|
||||
simple_parser_plugin_deinit,/* deinit function (when unloaded) */
|
||||
0x0001, /* version */
|
||||
simple_status, /* status variables */
|
||||
simple_system_variables, /* system variables */
|
||||
"0.01", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_EXPERIMENTAL /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
||||
|
@ -10564,6 +10564,23 @@ mysql_declare_plugin(ndbcluster)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(ndbcluster)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&ndbcluster_storage_engine,
|
||||
ndbcluster_hton_name,
|
||||
"MySQL AB",
|
||||
"Clustered, fault-tolerant tables",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
ndbcluster_init, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
ndb_status_variables_export,/* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_GAMMA /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
||||
#else
|
||||
int Sun_ar_require_a_symbol_here= 0;
|
||||
|
@ -6715,5 +6715,22 @@ mysql_declare_plugin(partition)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(partition)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&partition_storage_engine,
|
||||
"partition",
|
||||
"Mikael Ronstrom, MySQL AB",
|
||||
"Partition Storage Engine Helper",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
partition_initialize, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100, /* 1.0 */
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
||||
#endif
|
||||
|
17
sql/log.cc
17
sql/log.cc
@ -6036,3 +6036,20 @@ mysql_declare_plugin(binlog)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(binlog)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&binlog_storage_engine,
|
||||
"binlog",
|
||||
"MySQL AB",
|
||||
"This is a pseudo storage engine to represent the binlog in a transaction",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
binlog_init, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -8260,3 +8260,35 @@ mysql_declare_plugin(mysql_password)
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
maria_declare_plugin(mysql_password)
|
||||
{
|
||||
MYSQL_AUTHENTICATION_PLUGIN, /* type constant */
|
||||
&native_password_handler, /* type descriptor */
|
||||
native_password_plugin_name.str, /* Name */
|
||||
"R.J.Silk, Sergei Golubchik", /* Author */
|
||||
"Native MySQL authentication", /* Description */
|
||||
PLUGIN_LICENSE_GPL, /* License */
|
||||
NULL, /* Init function */
|
||||
NULL, /* Deinit function */
|
||||
0x0100, /* Version (1.0) */
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* String version */
|
||||
MariaDB_PLUGIN_MATURITY_BETA /* Maturity */
|
||||
},
|
||||
{
|
||||
MYSQL_AUTHENTICATION_PLUGIN, /* type constant */
|
||||
&old_password_handler, /* type descriptor */
|
||||
old_password_plugin_name.str, /* Name */
|
||||
"R.J.Silk, Sergei Golubchik", /* Author */
|
||||
"Old MySQL-4.0 authentication", /* Description */
|
||||
PLUGIN_LICENSE_GPL, /* License */
|
||||
NULL, /* Init function */
|
||||
NULL, /* Deinit function */
|
||||
0x0100, /* Version (1.0) */
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* String version */
|
||||
MariaDB_PLUGIN_MATURITY_BETA /* Maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -16,13 +16,12 @@
|
||||
#include <my_global.h>
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
typedef struct st_mysql_plugin builtin_plugin[];
|
||||
typedef struct st_maria_plugin builtin_maria_plugin[];
|
||||
|
||||
extern builtin_plugin
|
||||
builtin_binlog_plugin, builtin_mysql_password_plugin@mysql_plugin_defs@;
|
||||
extern builtin_maria_plugin
|
||||
builtin_maria_binlog_plugin, builtin_maria_mysql_password_plugin@maria_plugin_defs@;
|
||||
|
||||
struct st_mysql_plugin *mysqld_builtins[]=
|
||||
struct st_maria_plugin *mariadb_builtins[]=
|
||||
{
|
||||
builtin_binlog_plugin, builtin_mysql_password_plugin@mysql_plugin_defs@,(struct st_mysql_plugin *)0
|
||||
builtin_maria_binlog_plugin, builtin_maria_mysql_password_plugin@maria_plugin_defs@,(struct st_maria_plugin *)0
|
||||
};
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
#define REPORT_TO_LOG 1
|
||||
#define REPORT_TO_USER 2
|
||||
|
||||
extern struct st_mysql_plugin *mysqld_builtins[];
|
||||
extern struct st_maria_plugin *mariadb_builtins[];
|
||||
|
||||
/**
|
||||
@note The order of the enumeration is critical.
|
||||
@ -78,6 +78,14 @@ static const char *sizeof_st_plugin_sym=
|
||||
"_mysql_sizeof_struct_st_plugin_";
|
||||
static const char *plugin_declarations_sym= "_mysql_plugin_declarations_";
|
||||
static int min_plugin_interface_version= MYSQL_PLUGIN_INTERFACE_VERSION & ~0xFF;
|
||||
static const char *maria_plugin_interface_version_sym=
|
||||
"_maria_plugin_interface_version_";
|
||||
static const char *maria_sizeof_st_plugin_sym=
|
||||
"_maria_sizeof_struct_st_plugin_";
|
||||
static const char *maria_plugin_declarations_sym=
|
||||
"_maria_plugin_declarations_";
|
||||
static int min_maria_plugin_interface_version=
|
||||
MARIA_PLUGIN_INTERFACE_VERSION & ~0xFF;
|
||||
#endif
|
||||
|
||||
/* Note that 'int version' must be the first field of every plugin
|
||||
@ -211,7 +219,7 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, int *argc, char **argv,
|
||||
const char *list);
|
||||
static int test_plugin_options(MEM_ROOT *, struct st_plugin_int *,
|
||||
int *, char **);
|
||||
static bool register_builtin(struct st_mysql_plugin *, struct st_plugin_int *,
|
||||
static bool register_builtin(struct st_maria_plugin *, struct st_plugin_int *,
|
||||
struct st_plugin_int **);
|
||||
static void unlock_variables(THD *thd, struct system_variables *vars);
|
||||
static void cleanup_variables(THD *thd, struct system_variables *vars);
|
||||
@ -368,6 +376,223 @@ static inline void free_plugin_mem(struct st_plugin_dl *p)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Reads data from mysql plugin interface
|
||||
|
||||
@param plugin_dl Structure where the data should be put
|
||||
@param sym Reverence on version info
|
||||
@param dlpath Path to the module
|
||||
@param report What errors should be reported
|
||||
|
||||
@retval FALSE OK
|
||||
@retval TRUE ERROR
|
||||
*/
|
||||
|
||||
static my_bool read_mysql_plugin_info(struct st_plugin_dl *plugin_dl,
|
||||
void *sym, char *dlpath,
|
||||
int report)
|
||||
{
|
||||
DBUG_ENTER("read_maria_plugin_info");
|
||||
/* Determine interface version */
|
||||
if (!sym)
|
||||
{
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_CANT_FIND_DL_ENTRY, plugin_interface_version_sym);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
plugin_dl->mariaversion= 0;
|
||||
plugin_dl->mysqlversion= *(int *)sym;
|
||||
/* Versioning */
|
||||
if (plugin_dl->mysqlversion < min_plugin_interface_version ||
|
||||
(plugin_dl->mysqlversion >> 8) > (MYSQL_PLUGIN_INTERFACE_VERSION >> 8))
|
||||
{
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_CANT_OPEN_LIBRARY, dlpath, 0,
|
||||
"plugin interface version mismatch");
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
/* Find plugin declarations */
|
||||
if (!(sym= dlsym(plugin_dl->handle, plugin_declarations_sym)))
|
||||
{
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_CANT_FIND_DL_ENTRY, plugin_declarations_sym);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
||||
/* convert mysql declaration to maria one */
|
||||
{
|
||||
int i;
|
||||
uint sizeof_st_plugin;
|
||||
struct st_mysql_plugin *old;
|
||||
struct st_maria_plugin *cur;
|
||||
char *ptr= (char *)sym;
|
||||
|
||||
if ((sym= dlsym(plugin_dl->handle, sizeof_st_plugin_sym)))
|
||||
sizeof_st_plugin= *(int *)sym;
|
||||
else
|
||||
{
|
||||
DBUG_ASSERT(min_plugin_interface_version == 0);
|
||||
sizeof_st_plugin= (int)offsetof(struct st_mysql_plugin, version);
|
||||
}
|
||||
|
||||
for (i= 0;
|
||||
((struct st_mysql_plugin *)(ptr + i * sizeof_st_plugin))->info;
|
||||
i++)
|
||||
/* no op */;
|
||||
|
||||
cur= (struct st_maria_plugin*)
|
||||
my_malloc((i + 1) * sizeof(struct st_maria_plugin),
|
||||
MYF(MY_ZEROFILL|MY_WME));
|
||||
if (!cur)
|
||||
{
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_OUTOFMEMORY, plugin_dl->dl.length);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
/*
|
||||
All st_plugin fields not initialized in the plugin explicitly, are
|
||||
set to 0. It matches C standard behaviour for struct initializers that
|
||||
have less values than the struct definition.
|
||||
*/
|
||||
for (i=0;
|
||||
(old= (struct st_mysql_plugin *)(ptr + i * sizeof_st_plugin))->info;
|
||||
i++)
|
||||
{
|
||||
|
||||
cur->type= old->type;
|
||||
cur->info= old->info;
|
||||
cur->name= old->name;
|
||||
cur->author= old->author;
|
||||
cur->descr= old->descr;
|
||||
cur->license= old->license;
|
||||
cur->init= old->init;
|
||||
cur->deinit= old->deinit;
|
||||
cur->version= old->version;
|
||||
cur->status_vars= old->status_vars;
|
||||
cur->system_vars= old->system_vars;
|
||||
/*
|
||||
Something like this should be added to process
|
||||
new mysql plugin versions:
|
||||
if (plugin_dl->mysqlversion > 0x0101)
|
||||
{
|
||||
cur->newfield= CONSTANT_MEANS_UNKNOWN;
|
||||
}
|
||||
else
|
||||
{
|
||||
cur->newfield= old->newfield;
|
||||
}
|
||||
*/
|
||||
/* Maria only fields */
|
||||
cur->version_info= "Unknown";
|
||||
cur->maturity= MariaDB_PLUGIN_MATURITY_UNKNOWN;
|
||||
}
|
||||
plugin_dl->allocated= true;
|
||||
plugin_dl->plugins= (struct st_maria_plugin *)cur;
|
||||
}
|
||||
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Reads data from maria plugin interface
|
||||
|
||||
@param plugin_dl Structure where the data should be put
|
||||
@param sym Reverence on version info
|
||||
@param dlpath Path to the module
|
||||
@param report what errors should be reported
|
||||
|
||||
@retval FALSE OK
|
||||
@retval TRUE ERROR
|
||||
*/
|
||||
|
||||
static my_bool read_maria_plugin_info(struct st_plugin_dl *plugin_dl,
|
||||
void *sym, char *dlpath,
|
||||
int report)
|
||||
{
|
||||
DBUG_ENTER("read_maria_plugin_info");
|
||||
|
||||
/* Determine interface version */
|
||||
if (!(sym))
|
||||
{
|
||||
/*
|
||||
Actually this branch impossible because in case of absence of maria
|
||||
version we try mysql version.
|
||||
*/
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_CANT_FIND_DL_ENTRY,
|
||||
maria_plugin_interface_version_sym);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
plugin_dl->mariaversion= *(int *)sym;
|
||||
plugin_dl->mysqlversion= 0;
|
||||
/* Versioning */
|
||||
if (plugin_dl->mariaversion < min_maria_plugin_interface_version ||
|
||||
(plugin_dl->mariaversion >> 8) > (MARIA_PLUGIN_INTERFACE_VERSION >> 8))
|
||||
{
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_CANT_OPEN_LIBRARY, dlpath, 0,
|
||||
"plugin interface version mismatch");
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
/* Find plugin declarations */
|
||||
if (!(sym= dlsym(plugin_dl->handle, maria_plugin_declarations_sym)))
|
||||
{
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_CANT_FIND_DL_ENTRY, maria_plugin_declarations_sym);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
if (plugin_dl->mariaversion != MARIA_PLUGIN_INTERFACE_VERSION)
|
||||
{
|
||||
uint sizeof_st_plugin;
|
||||
struct st_maria_plugin *old, *cur;
|
||||
char *ptr= (char *)sym;
|
||||
|
||||
if ((sym= dlsym(plugin_dl->handle, maria_sizeof_st_plugin_sym)))
|
||||
sizeof_st_plugin= *(int *)sym;
|
||||
else
|
||||
{
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_CANT_FIND_DL_ENTRY, maria_sizeof_st_plugin_sym);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
||||
if (sizeof_st_plugin != sizeof(st_mysql_plugin))
|
||||
{
|
||||
int i;
|
||||
for (i= 0;
|
||||
((struct st_maria_plugin *)(ptr + i * sizeof_st_plugin))->info;
|
||||
i++)
|
||||
/* no op */;
|
||||
|
||||
cur= (struct st_maria_plugin*)
|
||||
my_malloc((i + 1) * sizeof(struct st_maria_plugin),
|
||||
MYF(MY_ZEROFILL|MY_WME));
|
||||
if (!cur)
|
||||
{
|
||||
free_plugin_mem(plugin_dl);
|
||||
report_error(report, ER_OUTOFMEMORY, plugin_dl->dl.length);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
/*
|
||||
All st_plugin fields not initialized in the plugin explicitly, are
|
||||
set to 0. It matches C standard behaviour for struct initializers that
|
||||
have less values than the struct definition.
|
||||
*/
|
||||
for (i=0;
|
||||
(old= (struct st_maria_plugin *)(ptr + i * sizeof_st_plugin))->info;
|
||||
i++)
|
||||
memcpy(cur + i, old, min(sizeof(cur[i]), sizeof_st_plugin));
|
||||
|
||||
sym= cur;
|
||||
plugin_dl->allocated= true;
|
||||
}
|
||||
}
|
||||
plugin_dl->plugins= (struct st_maria_plugin *)sym;
|
||||
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
|
||||
static st_plugin_dl *plugin_dl_add(const LEX_STRING *dl, int report)
|
||||
{
|
||||
#ifdef HAVE_DLOPEN
|
||||
@ -415,22 +640,21 @@ static st_plugin_dl *plugin_dl_add(const LEX_STRING *dl, int report)
|
||||
report_error(report, ER_CANT_OPEN_LIBRARY, dlpath, errno, errmsg);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
/* Determine interface version */
|
||||
if (!(sym= dlsym(plugin_dl.handle, plugin_interface_version_sym)))
|
||||
|
||||
/* Checks which plugin interface present and reads info */
|
||||
if (!(sym= dlsym(plugin_dl.handle, maria_plugin_interface_version_sym)))
|
||||
{
|
||||
free_plugin_mem(&plugin_dl);
|
||||
report_error(report, ER_CANT_FIND_DL_ENTRY, plugin_interface_version_sym);
|
||||
DBUG_RETURN(0);
|
||||
if (read_mysql_plugin_info(&plugin_dl,
|
||||
dlsym(plugin_dl.handle,
|
||||
plugin_interface_version_sym),
|
||||
dlpath,
|
||||
report))
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
plugin_dl.version= *(int *)sym;
|
||||
/* Versioning */
|
||||
if (plugin_dl.version < min_plugin_interface_version ||
|
||||
(plugin_dl.version >> 8) > (MYSQL_PLUGIN_INTERFACE_VERSION >> 8))
|
||||
else
|
||||
{
|
||||
free_plugin_mem(&plugin_dl);
|
||||
report_error(report, ER_CANT_OPEN_LIBRARY, dlpath, 0,
|
||||
"plugin interface version mismatch");
|
||||
DBUG_RETURN(0);
|
||||
if (read_maria_plugin_info(&plugin_dl, sym, dlpath, report))
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
/* link the services in */
|
||||
@ -438,7 +662,7 @@ static st_plugin_dl *plugin_dl_add(const LEX_STRING *dl, int report)
|
||||
{
|
||||
if ((sym= dlsym(plugin_dl.handle, list_of_services[i].name)))
|
||||
{
|
||||
uint ver= (uint)(intptr)*(void**)sym;
|
||||
uint ver= (uint)(intptr) *(void **)sym;
|
||||
if (ver > list_of_services[i].version ||
|
||||
(ver >> 8) < (list_of_services[i].version >> 8))
|
||||
{
|
||||
@ -449,73 +673,10 @@ static st_plugin_dl *plugin_dl_add(const LEX_STRING *dl, int report)
|
||||
report_error(report, ER_CANT_OPEN_LIBRARY, dlpath, 0, buf);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
*(void**)sym= list_of_services[i].service;
|
||||
*(void **)sym= list_of_services[i].service;
|
||||
}
|
||||
}
|
||||
|
||||
/* Find plugin declarations */
|
||||
if (!(sym= dlsym(plugin_dl.handle, plugin_declarations_sym)))
|
||||
{
|
||||
free_plugin_mem(&plugin_dl);
|
||||
report_error(report, ER_CANT_FIND_DL_ENTRY, plugin_declarations_sym);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
if (plugin_dl.version != MYSQL_PLUGIN_INTERFACE_VERSION)
|
||||
{
|
||||
uint sizeof_st_plugin;
|
||||
struct st_mysql_plugin *old, *cur;
|
||||
char *ptr= (char *)sym;
|
||||
|
||||
if ((sym= dlsym(plugin_dl.handle, sizeof_st_plugin_sym)))
|
||||
sizeof_st_plugin= *(int *)sym;
|
||||
else
|
||||
{
|
||||
#ifdef ERROR_ON_NO_SIZEOF_PLUGIN_SYMBOL
|
||||
free_plugin_mem(&plugin_dl);
|
||||
report_error(report, ER_CANT_FIND_DL_ENTRY, sizeof_st_plugin_sym);
|
||||
DBUG_RETURN(0);
|
||||
#else
|
||||
/*
|
||||
When the following assert starts failing, we'll have to switch
|
||||
to the upper branch of the #ifdef
|
||||
*/
|
||||
DBUG_ASSERT(min_plugin_interface_version == 0);
|
||||
sizeof_st_plugin= (int)offsetof(struct st_mysql_plugin, version);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (sizeof_st_plugin != sizeof(st_mysql_plugin))
|
||||
{
|
||||
for (i= 0;
|
||||
((struct st_mysql_plugin *)(ptr+i*sizeof_st_plugin))->info;
|
||||
i++)
|
||||
/* no op */;
|
||||
|
||||
cur= (struct st_mysql_plugin*)
|
||||
my_malloc((i+1)*sizeof(struct st_mysql_plugin), MYF(MY_ZEROFILL|MY_WME));
|
||||
if (!cur)
|
||||
{
|
||||
free_plugin_mem(&plugin_dl);
|
||||
report_error(report, ER_OUTOFMEMORY, plugin_dl.dl.length);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
/*
|
||||
All st_plugin fields not initialized in the plugin explicitly, are
|
||||
set to 0. It matches C standard behaviour for struct initializers that
|
||||
have less values than the struct definition.
|
||||
*/
|
||||
for (i=0;
|
||||
(old=(struct st_mysql_plugin *)(ptr+i*sizeof_st_plugin))->info;
|
||||
i++)
|
||||
memcpy(cur+i, old, min(sizeof(cur[i]), sizeof_st_plugin));
|
||||
|
||||
sym= cur;
|
||||
plugin_dl.allocated= true;
|
||||
}
|
||||
}
|
||||
plugin_dl.plugins= (struct st_mysql_plugin *)sym;
|
||||
|
||||
/* Duplicate and convert dll name */
|
||||
plugin_dl.dl.length= dl->length * files_charset_info->mbmaxlen + 1;
|
||||
if (! (plugin_dl.dl.str= (char*) my_malloc(plugin_dl.dl.length, MYF(0))))
|
||||
@ -756,7 +917,7 @@ static bool plugin_add(MEM_ROOT *tmp_root,
|
||||
int *argc, char **argv, int report)
|
||||
{
|
||||
struct st_plugin_int tmp;
|
||||
struct st_mysql_plugin *plugin;
|
||||
struct st_maria_plugin *plugin;
|
||||
DBUG_ENTER("plugin_add");
|
||||
if (plugin_find_internal(name, MYSQL_ANY_PLUGIN))
|
||||
{
|
||||
@ -1161,8 +1322,8 @@ int plugin_init(int *argc, char **argv, int flags)
|
||||
{
|
||||
uint i;
|
||||
bool is_myisam;
|
||||
struct st_mysql_plugin **builtins;
|
||||
struct st_mysql_plugin *plugin;
|
||||
struct st_maria_plugin **builtins;
|
||||
struct st_maria_plugin *plugin;
|
||||
struct st_plugin_int tmp, *plugin_ptr, **reap;
|
||||
MEM_ROOT tmp_root;
|
||||
bool reaped_mandatory_plugin= FALSE;
|
||||
@ -1201,7 +1362,7 @@ int plugin_init(int *argc, char **argv, int flags)
|
||||
/*
|
||||
First we register builtin plugins
|
||||
*/
|
||||
for (builtins= mysqld_builtins; *builtins; builtins++)
|
||||
for (builtins= mariadb_builtins; *builtins; builtins++)
|
||||
{
|
||||
for (plugin= *builtins; plugin->info; plugin++)
|
||||
{
|
||||
@ -1316,7 +1477,7 @@ err:
|
||||
}
|
||||
|
||||
|
||||
static bool register_builtin(struct st_mysql_plugin *plugin,
|
||||
static bool register_builtin(struct st_maria_plugin *plugin,
|
||||
struct st_plugin_int *tmp,
|
||||
struct st_plugin_int **ptr)
|
||||
{
|
||||
@ -1352,7 +1513,7 @@ static bool register_builtin(struct st_mysql_plugin *plugin,
|
||||
RETURN
|
||||
false - plugin registered successfully
|
||||
*/
|
||||
bool plugin_register_builtin(THD *thd, struct st_mysql_plugin *plugin)
|
||||
bool plugin_register_builtin(THD *thd, struct st_maria_plugin *plugin)
|
||||
{
|
||||
struct st_plugin_int tmp, *ptr;
|
||||
bool result= true;
|
||||
@ -1481,7 +1642,7 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, int *argc, char **argv,
|
||||
char buffer[FN_REFLEN];
|
||||
LEX_STRING name= {buffer, 0}, dl= {NULL, 0}, *str= &name;
|
||||
struct st_plugin_dl *plugin_dl;
|
||||
struct st_mysql_plugin *plugin;
|
||||
struct st_maria_plugin *plugin;
|
||||
char *p= buffer;
|
||||
DBUG_ENTER("plugin_load_list");
|
||||
while (list)
|
||||
|
@ -52,8 +52,9 @@ struct st_plugin_dl
|
||||
{
|
||||
LEX_STRING dl;
|
||||
void *handle;
|
||||
struct st_mysql_plugin *plugins;
|
||||
int version;
|
||||
struct st_maria_plugin *plugins;
|
||||
int mysqlversion;
|
||||
int mariaversion;
|
||||
bool allocated;
|
||||
uint ref_count; /* number of plugins loaded from the library */
|
||||
};
|
||||
@ -63,7 +64,7 @@ struct st_plugin_dl
|
||||
struct st_plugin_int
|
||||
{
|
||||
LEX_STRING name;
|
||||
struct st_mysql_plugin *plugin;
|
||||
struct st_maria_plugin *plugin;
|
||||
struct st_plugin_dl *plugin_dl;
|
||||
uint state;
|
||||
uint ref_count; /* number of threads using the plugin */
|
||||
|
@ -94,11 +94,21 @@ static int make_version_string(char *buf, int buf_length, uint version)
|
||||
return my_snprintf(buf, buf_length, "%d.%d", version>>8,version&0xff);
|
||||
}
|
||||
|
||||
|
||||
static const LEX_STRING maturity_name[]={
|
||||
{ C_STRING_WITH_LEN("Unknown") },
|
||||
{ C_STRING_WITH_LEN("Experimental") },
|
||||
{ C_STRING_WITH_LEN("Alpha") },
|
||||
{ C_STRING_WITH_LEN("Beta") },
|
||||
{ C_STRING_WITH_LEN("Gamma") },
|
||||
{ C_STRING_WITH_LEN("Stable") }};
|
||||
|
||||
|
||||
static my_bool show_plugins(THD *thd, plugin_ref plugin,
|
||||
void *arg)
|
||||
{
|
||||
TABLE *table= (TABLE*) arg;
|
||||
struct st_mysql_plugin *plug= plugin_decl(plugin);
|
||||
struct st_maria_plugin *plug= plugin_decl(plugin);
|
||||
struct st_plugin_dl *plugin_dl= plugin_dlib(plugin);
|
||||
CHARSET_INFO *cs= system_charset_info;
|
||||
char version_buf[20];
|
||||
@ -143,7 +153,7 @@ static my_bool show_plugins(THD *thd, plugin_ref plugin,
|
||||
table->field[5]->set_notnull();
|
||||
table->field[6]->store(version_buf,
|
||||
make_version_string(version_buf, sizeof(version_buf),
|
||||
plugin_dl->version),
|
||||
plugin_dl->mariaversion),
|
||||
cs);
|
||||
table->field[6]->set_notnull();
|
||||
}
|
||||
@ -186,6 +196,26 @@ static my_bool show_plugins(THD *thd, plugin_ref plugin,
|
||||
}
|
||||
table->field[9]->set_notnull();
|
||||
|
||||
if ((uint) plug->maturity <= MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
table->field[10]->store(maturity_name[plug->maturity].str,
|
||||
maturity_name[plug->maturity].length,
|
||||
cs);
|
||||
else
|
||||
{
|
||||
DBUG_ASSERT(0);
|
||||
table->field[10]->store("Unknown", 7, cs);
|
||||
}
|
||||
table->field[10]->set_notnull();
|
||||
|
||||
if (plug->version_info)
|
||||
{
|
||||
table->field[11]->store(plug->version_info,
|
||||
strlen(plug->version_info), cs);
|
||||
table->field[11]->set_notnull();
|
||||
}
|
||||
else
|
||||
table->field[11]->set_null();
|
||||
|
||||
return schema_table_store_record(thd, table);
|
||||
}
|
||||
|
||||
@ -4398,7 +4428,7 @@ static my_bool iter_schema_engines(THD *thd, plugin_ref plugin,
|
||||
if (plugin_state(plugin) != PLUGIN_IS_READY)
|
||||
{
|
||||
|
||||
struct st_mysql_plugin *plug= plugin_decl(plugin);
|
||||
struct st_maria_plugin *plug= plugin_decl(plugin);
|
||||
if (!(wild && wild[0] &&
|
||||
wild_case_compare(scs, plug->name,wild)))
|
||||
{
|
||||
@ -7095,6 +7125,8 @@ ST_FIELD_INFO plugin_fields_info[]=
|
||||
{"PLUGIN_AUTHOR", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
|
||||
{"PLUGIN_DESCRIPTION", 65535, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
|
||||
{"PLUGIN_LICENSE", 80, MYSQL_TYPE_STRING, 0, 1, "License", SKIP_OPEN_TABLE},
|
||||
{"PLUGIN_MATURITY", 12, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
|
||||
{"PLUGIN_AUTH_VERSION", 80, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
|
||||
{0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
|
||||
};
|
||||
|
||||
|
@ -1655,4 +1655,21 @@ mysql_declare_plugin(archive)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(archive)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&archive_storage_engine,
|
||||
"ARCHIVE",
|
||||
"Brian Aker, MySQL AB",
|
||||
"Archive storage engine",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
archive_db_init, /* Plugin Init */
|
||||
archive_db_done, /* Plugin Deinit */
|
||||
0x0300 /* 3.0 */,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
||||
|
@ -369,3 +369,20 @@ mysql_declare_plugin(blackhole)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(blackhole)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&blackhole_storage_engine,
|
||||
"BLACKHOLE",
|
||||
"MySQL AB",
|
||||
"/dev/null storage engine (anything you write to it disappears)",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
blackhole_init, /* Plugin Init */
|
||||
blackhole_fini, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -1636,4 +1636,20 @@ mysql_declare_plugin(csv)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
maria_declare_plugin(csv)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&csv_storage_engine,
|
||||
"CSV",
|
||||
"Brian Aker, MySQL AB",
|
||||
"CSV storage engine",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
tina_init_func, /* Plugin Init */
|
||||
tina_done_func, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -924,3 +924,20 @@ mysql_declare_plugin(example)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(example)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&example_storage_engine,
|
||||
"EXAMPLE",
|
||||
"Brian Aker, MySQL AB",
|
||||
"Example storage engine",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
example_init_func, /* Plugin Init */
|
||||
example_done_func, /* Plugin Deinit */
|
||||
0x0001 /* 0.1 */,
|
||||
func_status, /* status variables */
|
||||
example_system_variables, /* system variables */
|
||||
"0.1", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_EXPERIMENTAL /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -3379,3 +3379,20 @@ mysql_declare_plugin(federated)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(federated)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&federated_storage_engine,
|
||||
"FEDERATED",
|
||||
"Patrick Galbraith and Brian Aker, MySQL AB",
|
||||
"Federated MySQL storage engine",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
federated_db_init, /* Plugin Init */
|
||||
federated_done, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_BETA /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -3505,9 +3505,26 @@ mysql_declare_plugin(federated)
|
||||
PLUGIN_LICENSE_GPL,
|
||||
federatedx_db_init, /* Plugin Init */
|
||||
federatedx_done, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
0x0200 /* 2.0 */,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(federated)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&federatedx_storage_engine,
|
||||
"FEDERATED",
|
||||
"Patrick Galbraith",
|
||||
"FederatedX pluggable storage engine",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
federatedx_db_init, /* Plugin Init */
|
||||
federatedx_done, /* Plugin Deinit */
|
||||
0x0200 /* 2.0 */,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"2.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_BETA /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -767,3 +767,20 @@ mysql_declare_plugin(heap)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(heap)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&heap_storage_engine,
|
||||
"MEMORY",
|
||||
"MySQL AB",
|
||||
"Hash based, stored in memory, useful for temporary tables",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
heap_init,
|
||||
NULL,
|
||||
0x0100, /* 1.0 */
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -3357,3 +3357,20 @@ mysql_declare_plugin(ibmdb2i)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(ibmdb2i)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&ibmdb2i_storage_engine,
|
||||
"IBMDB2I",
|
||||
"The IBM development team in Rochester, Minnesota",
|
||||
"IBM DB2 for i Storage Engine",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
ibmdb2i_init_func, /* Plugin Init */
|
||||
ibmdb2i_done_func, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
NULL, /* status variables */
|
||||
ibmdb2i_system_variables, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_UNKNOWN /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -8930,6 +8930,23 @@ mysql_declare_plugin(innobase)
|
||||
NULL /* reserved */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(innobase)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&innobase_storage_engine,
|
||||
innobase_hton_name,
|
||||
"Innobase OY",
|
||||
"Supports transactions, row-level locking, and foreign keys",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
innobase_init, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
innodb_status_variables_export, /* status variables */
|
||||
innobase_system_variables, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE, /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
||||
/** @brief Initialize the default value of innodb_commit_concurrency.
|
||||
|
||||
|
@ -455,6 +455,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_trx =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_trx_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_TRX"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB transactions"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, innodb_trx_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/* Fields of the dynamic table INFORMATION_SCHEMA.innodb_locks */
|
||||
static ST_FIELD_INFO innodb_locks_fields_info[] =
|
||||
{
|
||||
@ -730,6 +783,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_locks =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_locks_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_LOCKS"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB conflicting locks"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, innodb_locks_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/* Fields of the dynamic table INFORMATION_SCHEMA.innodb_lock_waits */
|
||||
static ST_FIELD_INFO innodb_lock_waits_fields_info[] =
|
||||
{
|
||||
@ -913,6 +1019,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_lock_waits =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_lock_waits_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_LOCK_WAITS"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, "Innobase Oy"),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB which lock is blocking which"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, innodb_lock_waits_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/*******************************************************************//**
|
||||
Common function to fill any of the dynamic tables:
|
||||
INFORMATION_SCHEMA.innodb_trx
|
||||
@ -1245,6 +1404,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmp =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmp_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_CMP"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Statistics for the InnoDB compression"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_cmp_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmp_reset =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
@ -1295,6 +1507,60 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmp_reset =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_cmp_reset_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_CMP_RESET"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Statistics for the InnoDB compression;"
|
||||
" reset cumulated counts"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_cmp_reset_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/* Fields of the dynamic table information_schema.innodb_cmpmem. */
|
||||
static ST_FIELD_INFO i_s_cmpmem_fields_info[] =
|
||||
{
|
||||
@ -1511,6 +1777,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmpmem =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_cmpmem_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_CMPMEM"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Statistics for the InnoDB compressed buffer pool"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_cmpmem_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmpmem_reset =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
@ -1561,6 +1880,60 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmpmem_reset =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_cmpmem_reset_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_CMPMEM_RESET"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Statistics for the InnoDB compressed buffer pool;"
|
||||
" reset cumulated counts"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_cmpmem_reset_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/*******************************************************************//**
|
||||
Unbind a dynamic INFORMATION_SCHEMA table.
|
||||
@return 0 on success */
|
||||
|
@ -3471,9 +3471,26 @@ mysql_declare_plugin(maria)
|
||||
PLUGIN_LICENSE_GPL,
|
||||
ha_maria_init, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100, /* 1.0 */
|
||||
0x0105, /* 1.5 */
|
||||
status_variables, /* status variables */
|
||||
system_variables, /* system variables */
|
||||
NULL
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(maria)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&maria_storage_engine,
|
||||
"MARIA",
|
||||
"MySQL AB",
|
||||
"Crash-safe tables with MyISAM heritage",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
ha_maria_init, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0105, /* 1.5 */
|
||||
status_variables, /* status variables */
|
||||
system_variables, /* system variables */
|
||||
"1.5", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_GAMMA /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -2174,6 +2174,23 @@ mysql_declare_plugin(myisam)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(myisam)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&myisam_storage_engine,
|
||||
"MyISAM",
|
||||
"MySQL AB",
|
||||
"Default engine as of MySQL 3.23 with great performance",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
myisam_init, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100, /* 1.0 */
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
||||
|
||||
#ifdef HAVE_QUERY_CACHE
|
||||
|
@ -1289,3 +1289,20 @@ mysql_declare_plugin(myisammrg)
|
||||
NULL /* config options */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(myisammrg)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&myisammrg_storage_engine,
|
||||
"MRG_MYISAM",
|
||||
"MySQL AB",
|
||||
"Collection of identical MyISAM tables",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
myisammrg_init, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100, /* 1.0 */
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
@ -5919,6 +5919,40 @@ mysql_declare_plugin(pbxt)
|
||||
drizzle_declare_plugin_end;
|
||||
#else
|
||||
mysql_declare_plugin_end;
|
||||
#ifdef MARIADB_BASE_VERSION
|
||||
maria_declare_plugin(pbxt)
|
||||
{ /* PBXT */
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&pbxt_storage_engine,
|
||||
"PBXT",
|
||||
"Paul McCullagh, PrimeBase Technologies GmbH",
|
||||
"High performance, multi-versioning transactional engine",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
pbxt_init, /* Plugin Init */
|
||||
pbxt_end, /* Plugin Deinit */
|
||||
0x0001 /* 0.1 */,
|
||||
NULL, /* status variables */
|
||||
pbxt_system_variables, /* system variables */
|
||||
"1.0.09g RC3", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_GAMMA /* maturity */
|
||||
},
|
||||
{ /* PBXT_STATISTICS */
|
||||
MYSQL_INFORMATION_SCHEMA_PLUGIN,
|
||||
&pbxt_statitics,
|
||||
"PBXT_STATISTICS",
|
||||
"Paul McCullagh, PrimeBase Technologies GmbH",
|
||||
"PBXT internal system statitics",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
pbxt_init_statistics, /* plugin init */
|
||||
pbxt_exit_statistics, /* plugin deinit */
|
||||
0x0005,
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
"1.0.09g RC3", /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_GAMMA /* maturity */
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(XT_WIN) && defined(XT_COREDUMP)
|
||||
|
@ -10818,6 +10818,39 @@ i_s_innodb_index_stats,
|
||||
i_s_innodb_admin_command,
|
||||
i_s_innodb_patches
|
||||
mysql_declare_plugin_end;
|
||||
maria_declare_plugin(innobase)
|
||||
{ /* InnoDB */
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&innobase_storage_engine,
|
||||
innobase_hton_name,
|
||||
"Innobase Oy",
|
||||
"Supports transactions, row-level locking, and foreign keys",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
innobase_init, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
INNODB_VERSION_SHORT,
|
||||
innodb_status_variables_export,/* status variables */
|
||||
innobase_system_variables, /* system variables */
|
||||
INNODB_VERSION_STR, /* string version */
|
||||
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
|
||||
},
|
||||
i_s_innodb_rseg_maria,
|
||||
i_s_innodb_buffer_pool_pages_maria,
|
||||
i_s_innodb_buffer_pool_pages_index_maria,
|
||||
i_s_innodb_buffer_pool_pages_blob_maria,
|
||||
i_s_innodb_trx_maria,
|
||||
i_s_innodb_locks_maria,
|
||||
i_s_innodb_lock_waits_maria,
|
||||
i_s_innodb_cmp_maria,
|
||||
i_s_innodb_cmp_reset_maria,
|
||||
i_s_innodb_cmpmem_maria,
|
||||
i_s_innodb_cmpmem_reset_maria,
|
||||
i_s_innodb_table_stats_maria,
|
||||
i_s_innodb_index_stats_maria,
|
||||
i_s_innodb_admin_command_maria,
|
||||
i_s_innodb_patches_maria
|
||||
maria_declare_plugin_end;
|
||||
|
||||
|
||||
/** @brief Initialize the default value of innodb_commit_concurrency.
|
||||
|
||||
|
@ -393,6 +393,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_patches =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_patches_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "XTRADB_ENHANCEMENTS"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, "Percona"),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Enhancements applied to InnoDB plugin"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, innodb_patches_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
|
||||
static ST_FIELD_INFO i_s_innodb_buffer_pool_pages_fields_info[] =
|
||||
{
|
||||
@ -1040,6 +1093,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_buffer_pool_pages =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_buffer_pool_pages_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_BUFFER_POOL_PAGES"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB buffer pool pages"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_innodb_buffer_pool_pages_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, 0x0100 /* 1.0 */),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_mysql_plugin i_s_innodb_buffer_pool_pages_index =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
@ -1089,6 +1195,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_buffer_pool_pages_index =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_buffer_pool_pages_index_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_BUFFER_POOL_PAGES_INDEX"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB buffer pool index pages"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_innodb_buffer_pool_pages_index_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, 0x0100 /* 1.0 */),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_mysql_plugin i_s_innodb_buffer_pool_pages_blob =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
@ -1138,6 +1297,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_buffer_pool_pages_blob =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_buffer_pool_pages_blob_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_BUFFER_POOL_PAGES_BLOB"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB buffer pool blob pages"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_innodb_buffer_pool_pages_blob_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, 0x0100 /* 1.0 */),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
|
||||
/* Fields of the dynamic table INFORMATION_SCHEMA.innodb_trx */
|
||||
static ST_FIELD_INFO innodb_trx_fields_info[] =
|
||||
@ -1373,6 +1585,60 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_trx =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_trx_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_TRX"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB transactions"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, innodb_trx_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/* Fields of the dynamic table INFORMATION_SCHEMA.innodb_locks */
|
||||
static ST_FIELD_INFO innodb_locks_fields_info[] =
|
||||
{
|
||||
@ -1648,6 +1914,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_locks =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_locks_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_LOCKS"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB conflicting locks"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, innodb_locks_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/* Fields of the dynamic table INFORMATION_SCHEMA.innodb_lock_waits */
|
||||
static ST_FIELD_INFO innodb_lock_waits_fields_info[] =
|
||||
{
|
||||
@ -1831,6 +2150,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_lock_waits =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_lock_waits_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_LOCK_WAITS"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, "Innobase Oy"),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB which lock is blocking which"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, innodb_lock_waits_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/*******************************************************************//**
|
||||
Common function to fill any of the dynamic tables:
|
||||
INFORMATION_SCHEMA.innodb_trx
|
||||
@ -2163,6 +2535,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmp =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_cmp_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_CMP"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Statistics for the InnoDB compression"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_cmp_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmp_reset =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
@ -2213,6 +2638,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmp_reset =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_cmp_reset_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_CMP_RESET"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Statistics for the InnoDB compression;"
|
||||
" reset cumulated counts"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_cmp_reset_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
/* Fields of the dynamic table information_schema.innodb_cmpmem. */
|
||||
static ST_FIELD_INFO i_s_cmpmem_fields_info[] =
|
||||
{
|
||||
@ -2431,6 +2909,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmpmem =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_cmpmem_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_CMPMEM"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Statistics for the InnoDB compressed buffer pool"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_cmpmem_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmpmem_reset =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
@ -2481,6 +3012,60 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_cmpmem_reset =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_cmpmem_reset_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_CMPMEM_RESET"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "Statistics for the InnoDB compressed buffer pool;"
|
||||
" reset cumulated counts"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_cmpmem_reset_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, INNODB_VERSION_SHORT),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/*******************************************************************//**
|
||||
Unbind a dynamic INFORMATION_SCHEMA table.
|
||||
@return 0 on success */
|
||||
@ -2660,6 +3245,59 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_rseg =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_rseg_maria =
|
||||
{
|
||||
/* the plugin type (a MYSQL_XXX_PLUGIN value) */
|
||||
/* int */
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
|
||||
/* pointer to type-specific plugin descriptor */
|
||||
/* void* */
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
|
||||
/* plugin name */
|
||||
/* const char* */
|
||||
STRUCT_FLD(name, "INNODB_RSEG"),
|
||||
|
||||
/* plugin author (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
|
||||
/* general descriptive text (for SHOW PLUGINS) */
|
||||
/* const char* */
|
||||
STRUCT_FLD(descr, "InnoDB rollback segment information"),
|
||||
|
||||
/* the plugin license (PLUGIN_LICENSE_XXX) */
|
||||
/* int */
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
|
||||
/* the function to invoke when plugin is loaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(init, i_s_innodb_rseg_init),
|
||||
|
||||
/* the function to invoke when plugin is unloaded */
|
||||
/* int (*)(void*); */
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
|
||||
/* plugin version (for SHOW PLUGINS) */
|
||||
/* unsigned int */
|
||||
STRUCT_FLD(version, 0x0100 /* 1.0 */),
|
||||
|
||||
/* struct st_mysql_show_var* */
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
|
||||
/* struct st_mysql_sys_var** */
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
|
||||
/* string version */
|
||||
/* const char * */
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
|
||||
/* Maturity */
|
||||
/* int */
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
*/
|
||||
static ST_FIELD_INFO i_s_innodb_table_stats_info[] =
|
||||
@ -2940,6 +3578,23 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_table_stats =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_table_stats_maria =
|
||||
{
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
STRUCT_FLD(name, "INNODB_TABLE_STATS"),
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
STRUCT_FLD(descr, "InnoDB table statistics in memory"),
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
STRUCT_FLD(init, i_s_innodb_table_stats_init),
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
STRUCT_FLD(version, 0x0100 /* 1.0 */),
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_mysql_plugin i_s_innodb_index_stats =
|
||||
{
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
@ -2956,6 +3611,23 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_index_stats =
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_index_stats_maria =
|
||||
{
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
STRUCT_FLD(name, "INNODB_INDEX_STATS"),
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
STRUCT_FLD(descr, "InnoDB index statistics in memory"),
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
STRUCT_FLD(init, i_s_innodb_index_stats_init),
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
STRUCT_FLD(version, 0x0100 /* 1.0 */),
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
*/
|
||||
static ST_FIELD_INFO i_s_innodb_admin_command_info[] =
|
||||
@ -3121,3 +3793,20 @@ UNIV_INTERN struct st_mysql_plugin i_s_innodb_admin_command =
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
STRUCT_FLD(__reserved1, NULL)
|
||||
};
|
||||
|
||||
UNIV_INTERN struct st_maria_plugin i_s_innodb_admin_command_maria =
|
||||
{
|
||||
STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN),
|
||||
STRUCT_FLD(info, &i_s_info),
|
||||
STRUCT_FLD(name, "XTRADB_ADMIN_COMMAND"),
|
||||
STRUCT_FLD(author, plugin_author),
|
||||
STRUCT_FLD(descr, "XtraDB specific command acceptor"),
|
||||
STRUCT_FLD(license, PLUGIN_LICENSE_GPL),
|
||||
STRUCT_FLD(init, i_s_innodb_admin_command_init),
|
||||
STRUCT_FLD(deinit, i_s_common_deinit),
|
||||
STRUCT_FLD(version, 0x0100 /* 1.0 */),
|
||||
STRUCT_FLD(status_vars, NULL),
|
||||
STRUCT_FLD(system_vars, NULL),
|
||||
STRUCT_FLD(version_info, "1.0"),
|
||||
STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE)
|
||||
};
|
||||
|
@ -42,4 +42,20 @@ extern struct st_mysql_plugin i_s_innodb_table_stats;
|
||||
extern struct st_mysql_plugin i_s_innodb_index_stats;
|
||||
extern struct st_mysql_plugin i_s_innodb_admin_command;
|
||||
|
||||
extern struct st_maria_plugin i_s_innodb_buffer_pool_pages_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_buffer_pool_pages_index_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_buffer_pool_pages_blob_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_trx_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_locks_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_lock_waits_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_cmp_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_cmp_reset_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_cmpmem_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_cmpmem_reset_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_patches_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_rseg_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_table_stats_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_index_stats_maria;
|
||||
extern struct st_maria_plugin i_s_innodb_admin_command_maria;
|
||||
|
||||
#endif /* i_s_h */
|
||||
|
Loading…
x
Reference in New Issue
Block a user