35.9. Внутренние функции#
35.9. Внутренние функции #
Внутренние функции - это функции, написанные на языке C, которые были статически связаны с сервером Tantor BE. “Тело” определения функции указывает имя функции на языке C, которое не обязательно совпадает с именем, объявленным для использования в SQL. (Из-за обратной совместимости пустое тело принимается как означающее, что имя функции на языке C совпадает с именем SQL).
Обычно все внутренние функции, присутствующие в сервере, объявляются во время инициализации кластера базы данных (см. Раздел 17.2), но пользователь может использовать CREATE FUNCTION
для создания дополнительных псевдонимов для внутренней функции. Внутренние функции объявляются в CREATE FUNCTION
с именем языка internal
. Например, для создания псевдонима для функции sqrt
:
CREATE FUNCTION square_root(double precision) RETURNS double precision AS 'dsqrt' LANGUAGE internal STRICT;
(Большинство внутренних функций ожидают, что они будут объявлены “строгими”).
Примечание
Не все “предопределенные” функции являются “внутренними” в вышеуказанном смысле. Некоторые предопределенные функции написаны на SQL.