Как стать автором
Обновить

Комментарии 7

Пользовались аналогичным функционалом в Interbase/Firebird.
Удивительно.
Даже PL/php есть.
kill it with fire!
Интересно, а по производительности не сравнивали функции на plpgsql и на C?
Сравнивал, тест в конце статьи. Но это очень синтетический тест, в СУБД редко делаются массивные математические расчёты.
Пробовал заменить встроенную сборку строки ('str' || float || 'str' || float || 'str') на С-процедуру. Вместо 0.010мс в pgplsql получил 0.019мс с вызовом на Си. Т.е. переключение контекста + извлечение параметров + работа с параметрами как со структурами данных + возврат результата вышло дороже plpgsql-конкатенации.
В хранимые функции на C стоит выносить тяжелые операции или те, которые не родственны СУБД, к примеру, работы с файлами, сетью, сложные расчёты.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории