Написание плагинов для MariaDB
Общие сведения
В целом, написание плагинов для MariaDB очень похоже на написание плагинов для MySQL.
Плагины аутентификации
Плагины движков хранения данных
Движки хранения данных могут расширить синтаксис CREATE TABLE с необязательными атрибутами индексов, полей и таблиц. Дополнительную информацию см. в разделе Расширение CREATE TABLE.
См. Разработка движков хранения данных.
Плагины схемы информации
Плагины схемы информации могут иметь собственные инструкции FLUSH и SHOW. См. FLUSH и SHOW для плагинов схемы информации.
Плагины шифрования
Плагины шифрования в MariaDB используются для функции шифрования данных в состоянии покоя. Они отвечают как за управление ключами, так и за фактическое шифрование и дешифрование данных.
Структура объявления плагинов
Объявление плагинов MariaDB отличается от объявления плагинов MySQL следующим образом:
- в нём отсутствует бесполезное поле «зарезервировано» (самое последнее поле в объявлении плагина MySQL)
- в нём есть объявление «зрелости»
- в нём есть поле для текстового представления поля версии
MariaDB может загружать плагины, которые содержат только объявление плагина MySQL, но PLUGIN_MATURITY и PLUGIN_AUTH_VERSION будут отображаться как «Неизвестно» в таблице INFORMATION_SCHEMA.PLUGINS.
Для скомпилированных (не динамически загружаемых) плагинов наличие объявления плагина MariaDB обязательно.
Пример объявления плагина
Объявление плагина MariaDB выглядит следующим образом:
/* MariaDB plugin declaration */
maria_declare_plugin(example)
{
MYSQL_STORAGE_ENGINE_PLUGIN, /* the plugin type (see include/mysql/plugin.h) */
&example_storage_engine_info, /* pointer to type-specific plugin descriptor */
"EXAMPLEDB", /* plugin name */
"John Smith", /* plugin author */
"Example of plugin interface", /* the plugin description */
PLUGIN_LICENSE_GPL, /* the plugin license (see include/mysql/plugin.h) */
example_init_func, /* Pointer to plugin initialization function */
example_deinit_func, /* Pointer to plugin deinitialization function */
0x0001 /* Numeric version 0xAABB means AA.BB version */,
example_status_variables, /* Status variables */
example_system_variables, /* System variables */
"0.1 example", /* String version representation */
MariaDB_PLUGIN_MATURITY_EXPERIMENTAL /* Maturity (see include/mysql/plugin.h)*/
}
maria_declare_plugin_end;
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/development-writing-plugins-for-mariadb/