Spec-Zone .ru
спецификации, руководства, описания, API
|
INFORMATION_SCHEMA
ПлагиныЧтобы создать сменную библиотеку, следует предоставить запрошенную информацию дескриптора, которая указывает на то, какие плагины файл библиотеки содержит, и запишите функции интерфейса для каждого плагина.
У каждого плагина сервера должен быть общий дескриптор, который предоставляет информацию сменному API, и
специфичный для типа дескриптор, который предоставляет информацию о сменном интерфейсе для данного типа плагина.
Структура общего дескриптора является тем же самым для всех сменных типов. Структура специфичного для типа
дескриптора изменяется среди сменных типов и определяется требованиями того, что должен сделать плагин.
Интерфейс плагина сервера также позволяет плагинам представить системные переменные и состояние. Эти переменные
становятся видимыми через SHOW STATUS
и SHOW VARIABLES
операторы и соответствие INFORMATION_SCHEMA
таблицы.
Для клиентских плагинов несколько отличается архитектура. У каждого плагина должен быть дескриптор, но нет никакого подразделения на отдельные общие и специфичные для типа дескрипторы. Вместо этого дескриптор начинается с фиксированного набора элементов, характерных для всех клиентских типов плагина, и общие элементы сопровождаются любыми дополнительными элементами, требуемыми реализовывать определенный сменный тип.
Можно записать плагины в C или C++ (или другой язык, который может использовать соглашения о вызовах C). Плагины загружаются и разгружаются динамически, таким образом, Ваша операционная система должна поддерживать динамическую загрузку, и Вы, должно быть, скомпилировали вызывающее приложение динамически (не статически). Для плагинов сервера это означает, что mysqld должен быть скомпилирован динамически.
Плагин сервера содержит код, который становится частью рабочего сервера, так, когда Вы пишете плагин, Вы
связываетесь любым и всеми ограничениями, которые иначе применяются к записи серверного кода. Например, у Вас
могут быть проблемы, если Вы пытаетесь использовать функции от libstdc++
библиотека. Эти ограничения могут измениться в будущих версиях сервера, таким образом, возможно, что обновления
сервера потребуют версий плагинов, первоначально записанных для более старых серверов. Для получения информации
об этих ограничениях см. Раздел 2.9.4, "MySQL
Source-Configuration Options", и Раздел
2.9.5, "Контакт с проблемным MySQL Compiling".
Клиентские писатели плагина должны избежать зависимостей от того, какие символы вызывающее приложение имеет, потому что невозможно убедиться, какие приложения используют плагин.