35.9. Внутренние функции#

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.