Функции PostgreSQL классифицируют по языку, результату и свойствам выполнения: SQL/PL/pgSQL, скалярные/наборные, IMMUTABLE/STABLE/VOLATILE. Агрегатные, оконные и триггерные функции имеют отдельные контракты.
Какие типы функций бывают в PostgreSQL?
Функции PostgreSQL классифицируют по языку, результату и свойствам выполнения: SQL/PL/pgSQL, скалярные/наборные, IMMUTABLE/STABLE/VOLATILE. Агрегатные, оконные и триггерные функции имеют отдельные контракты.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Функции PostgreSQL классифицируют по языку, результату и свойствам выполнения: SQL/PL/pgSQL, скалярные/наборные, IMMUTABLE/STABLE/VOLATILE. Агрегатные, оконные и триггерные функции имеют отдельные контракты.
Скалярная функция возвращает одно значение, RETURNS SETOF или TABLE — набор строк. IMMUTABLE обещает одинаковый результат для одинаковых аргументов, STABLE допускает зависимость от состояния в рамках запроса, VOLATILE — изменения между вызовами; неправильная маркировка опасна для оптимизации. Также различают SECURITY INVOKER и DEFINER. Процедуры вызывают CALL и не следует смешивать с функциями, используемыми в SQL-выражениях.
Источник: www.postgresql.org.