Spec-Zone .ru
спецификации, руководства, описания, API
|
Есть три способа добавить новые функции к MySQL:
Можно добавить функции через определяемую пользователем функцию (UDF) интерфейс.
Определяемые пользователем функции компилируются как объектные файлы и затем добавляются к и удаляются
из сервера, динамически используя CREATE
FUNCTION
и DROP
FUNCTION
операторы. См. Раздел
13.7.3.1,"CREATE FUNCTION
Синтаксис для Определяемых пользователем
Функций".
Можно добавить функции, поскольку собственный (встроенный) MySQL функционирует. Собственные функции компилируются в mysqld сервер и становятся доступными на постоянной основе.
Другой способ добавить функции, создавая сохраненные функции. Они пишутся, используя SQL-операторы, а не компилируя объектный код. Синтаксис для того, чтобы записать сохраненные функции не покрывается здесь. См. Раздел 19.2, "Используя Сохраненные Подпрограммы (Процедуры и Функции)".
У каждого метода создания скомпилированных функций есть преимущества и недостатки:
Если Вы пишете определяемые пользователем функции, следует установить объектные файлы в дополнение к серверу непосредственно. Если Вы компилируете свою функцию в сервер, Вы не должны сделать этого.
Собственные функции требуют, чтобы Вы изменили исходное распределение. UDFs не делают. Можно добавить UDFs к двоичному распределению MySQL. Никакой доступ к источнику MySQL не необходим.
Если Вы обновляете свое распределение MySQL, можно продолжать использовать свой ранее установленный UDFs, если Вы не обновляете до более новой версии, для которой UDF соединяют интерфейсом с изменениями. Для собственных функций следует повторить свои модификации каждый раз, когда Вы обновляете.
Какой бы ни метод, который Вы используете, чтобы добавить новые функции, они могут быть вызваны в SQL-операторах
точно так же как собственные функции такой как ABS()
или SOUNDEX()
.
См. Раздел 9.2.4, "Парсинг имени функции и Разрешение", для правил, описывающих, как сервер интерпретирует ссылки на различные виды функций.
Следующие разделы описывают функции интерфейса UDF, обеспечивают инструкции для того, чтобы они записали UDFs, обсуждают предосторожности безопасности, которые MySQL берет, чтобы предотвратить неправильное употребление UDF, и описать, как добавить собственные функции MySQL.
Например исходный код, который иллюстрирует, как записать UDFs, смотреть на sql/udf_example.c
файл, который обеспечивается в исходных дистрибутивах MySQL.