Внутренние функции представляют собой функции на языке C, статически скомпонованные с Digital Q.DataBase сервером. В «теле» в определении функции задаёт имя функции на языке C, которое может отличаться от имени, объявляемого для использования в SQL. (В целях обратной совместимости допускается пустое тело функции: в этом случае считается, что имя функции на языке C совпадает с именем в SQL).
Как правило, все имеющиеся в сервере внутренние функции объявляются при инициализации кластера баз данных (см. Раздел 3.3.2),
однако пользователь может применить команду CREATE FUNCTION
для создания дополнительных псевдонимов внутренней функции.
Внутренние функции объявляются в команде CREATE FUNCTION
с указанием имени языка внутренние. Например, для
создания псевдонима функции sqrt function:
CREATE FUNCTION square_root(double precision) RETURNS double precision
AS 'dsqrt'
LANGUAGE internal
STRICT;
(Для большинства внутренних функций требуется объявление «strict».)
Не все «предопределённые» функции являются «внутренние» таковыми в вышеуказанном смысле. Некоторые предопределённые функции написаны на языке SQL.