Spec-Zone .ru
спецификации, руководства, описания, API

23.3.2.1. Вызывающие последовательности UDF для Простых Функций

Этот раздел описывает различные функции, которые Вы должны определить, когда Вы создаете простой UDF. Раздел 23.3.2, "Добавляя Новую Определяемую пользователем Функцию", описывает порядок, в котором MySQL вызывает эти функции.

Основное xxx() функция должна быть объявлена как показано в этом разделе. Отметьте, что тип возврата и параметры отличаются, в зависимости от того, объявляете ли Вы функцию SQL XXX() возвратиться STRING, INTEGER, или REAL в CREATE FUNCTION оператор:

Для STRING функции:

char *xxx(UDF_INIT *initid, UDF_ARGS *args,          char *result, unsigned long *length,          char *is_null, char *error);

Для INTEGER функции:

long long xxx(UDF_INIT *initid, UDF_ARGS *args,              char *is_null, char *error);

Для REAL функции:

double xxx(UDF_INIT *initid, UDF_ARGS *args,              char *is_null, char *error);

DECIMAL строковые значения возврата функций и должны быть объявлены тем же самым путем как STRING функции. ROW функции не реализуются.

Инициализация и функции deinitialization объявляются как это:

my_bool xxx_init(UDF_INIT *initid, UDF_ARGS *args, char *message);void xxx_deinit(UDF_INIT *initid);

initid параметр передают ко всем трем функциям. Это указывает на a UDF_INIT структура, которая используется, чтобы передать информацию между функциями. UDF_INIT элементы структуры следуют. Функция инициализации должна заполнить любые элементы, которые она хочет изменить. (Чтобы использовать значение по умолчанию для элемента, оставьте это неизменным.)