Digital Q.DataBase поддерживает четыре вида функций:
функции на языке запросов (функции, написанные на SQL) (Раздел 5.1.5)
функции на процедурных языках (функции, написанные, например, на PL/pgSQL или PL/Tcl) (Раздел 5.1.8)
внутренние функции (Раздел 5.1.9)
функции на языке C (Раздел 5.1.10)
Функции любого вида могут принимать в качестве аргументов (параметров) базовые типы данных, составные типы или их сочетания. Кроме того, функции любого вида могут возвращать базовый тип данных или составной тип. Также функции могут быть определены для возврата наборов значений базовых или составных типов.
Многие виды функций могут принимать или возвращать определенные псевдотипы (например, полиморфные типы), но доступный функционал может варьироваться. Для получения дополнительной информации обратитесь к описанию конкретного вида функций.
Проще всего определить SQL функции, поэтому мы начнем с их рассмотрения. Большинство концепций, изложенных для SQL функций, будут применимы и к другим типам функций.
В процессе изучения данной главы полезно обращаться к справочной странице команды
CREATE FUNCTION, чтобы
лучше понять приведенные примеры. Некоторые примеры из этой главы
можно найти в файлах funcs.sql и
funcs.c в src/tutorial
в составе Digital Q.DataBase дистрибутива
исходных текстов.