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

23.3.2.2. Вызывающие последовательности UDF для Агрегатных функций

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

xxx() функция для совокупного UDF должна быть объявлена тем же самым путем что касается несовокупного UDF. См. Раздел 23.3.2.1, "Вызывающие последовательности UDF для Простых Функций".

Для совокупного UDF MySQL вызывает xxx() функция после всех строк в группе была обработана. Никогда недопустимо обычно получать доступ к UDF_ARGS параметр здесь, но вместо этого возвращает значение, основанное на Ваших внутренних сводных переменных.

Обработка возвращаемого значения в xxx() должен быть сделан тот же самый путь что касается несовокупного UDF. См. Раздел 23.3.2.4, "Возвращаемые значения UDF и Обработка ошибок".

xxx_reset() и xxx_add() функции обрабатывают их UDF_ARGS параметр тот же самый путь как функции для несовокупного UDFs. См. Раздел 23.3.2.3, "Обработка Параметра UDF".

Параметры указателя is_null и error то же самое для всех звонков xxx_reset(), xxx_clear(), xxx_add() и xxx(). Можно использовать это, чтобы помнить, что Вы получили ошибку или ли xxx() функция должна возвратиться NULL. Недопустимо сохранить строку в *error! error точки к однобайтовой переменной, не к строковому буферу.

*is_null сбрасывается для каждой группы (прежде, чем вызов xxx_clear()). *error никогда не сбрасывается.

Если *is_null или *error устанавливаются когда xxx() возвраты, возвраты MySQL NULL как результат для групповой функции.