Spec-Zone.ru › MariaDB

Написание плагинов для MariaDB

Общие сведения

В целом, написание плагинов для MariaDB очень похоже на написание плагинов для MySQL.

Плагины аутентификации

См. Плагины аутентификации.

Плагины движков хранения данных

Движки хранения данных могут расширить синтаксис CREATE TABLE с необязательными атрибутами индексов, полей и таблиц. Дополнительную информацию см. в разделе Расширение CREATE TABLE.

См. Разработка движков хранения данных.

Плагины схемы информации

Плагины схемы информации могут иметь собственные инструкции FLUSH и SHOW. См. FLUSH и SHOW для плагинов схемы информации.

Плагины шифрования

Плагины шифрования в MariaDB используются для функции шифрования данных в состоянии покоя. Они отвечают как за управление ключами, так и за фактическое шифрование и дешифрование данных.

Структура объявления плагинов

Объявление плагинов MariaDB отличается от объявления плагинов MySQL следующим образом:

  1. в нём отсутствует бесполезное поле «зарезервировано» (самое последнее поле в объявлении плагина MySQL)
  2. в нём есть объявление «зрелости»
  3. в нём есть поле для текстового представления поля версии

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;
Содержание, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется заранее MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точки зрения MariaDB или любой другой стороны.

© 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API