П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180590 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 79041 раз(а).

Учебник HTML.
Просмотров 75806 раз(а).

Руководство по PHP5.
Просмотров 46850 раз(а).

Хостинг через призму DNS.
Просмотров 54312 раз(а).

Подборка текстов стандартных документов.
Просмотров 46682 раз(а).

Учебник PHP - Самоучитель
Просмотров 52891 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53498 раз(а).

Внешние атаки...
Просмотров 43249 раз(а).

Учебник PHP.
Просмотров 38777 раз(а).

SSI в примерах.
Просмотров 28689 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Администрирование пакета MySQL

Добавление функций в MySQL

Если Вы понимаете C++, и Yacc, то относительно просто добавить функцию к СУБД MySQL. Если не понимаете, то дело хуже.

Сначала добавьте строку в файл sql_lex.cc с именем функции в массив sql_functions.

Затем добавьте две строки в файл sql_yacc.y. Первая определяет символ препроцессора yacc. Вы должны добавить это к началу файла. Затем определите параметры функции, и создайте 'item' с этими параметрами.

В файле item_func.h объявляют класс, который наследуется из Item_num_func или Item_str_func, в зависимости от того, возвращает ли ваша функция число или строку.

В intem_func.cc добавьте:

double *Item_func_newname::val()

если Вы определяете числовую функцию, или

String *Item_func_newname::Str(String *str)

если Вы определяете строковую функцию.

Для строковой функции вы должны также определить следующую функцию:

void Item_func_newname::fix_length_and_dec()

Она должна по крайней мере вычислить 'max_length' основанный на полученных параметрах. max_length - максимальное число символов, которое функция может вернуть (максимальная длина возвращаемого значения).

Если функция не может возвращать null, Вы должны также установить 'maybe_null=0'.

Для строковых функций параметр 'String *str', предоставляет буфер для хранения результата. Строковая функция должна вернуть строку, которая хранит результат.

Все строковые функции должны избегать выделения памяти больше, чем им абсолютно необходимо! Системные ресурсы не бесконечны...

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru