34.8. ÐнÑÑÑенние ÑÑнкÑии
ÐнÑÑÑенние ÑÑнкÑии â ÑÑо ÑÑнкÑии, напиÑаннÑе на ÑзÑке C, и ÑÑаÑиÑеÑки ÑкомпонованнÑе в иÑполнÑемÑй код ÑеÑвеÑа Postgres Pro. Р«Ñеле» опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑÑнкÑии задаÑÑÑÑ Ð¸Ð¼Ñ ÑÑнкÑии на ÑÑовне 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;(ÐолÑÑинÑÑво внÑÑÑÐµÐ½Ð½Ð¸Ñ ÑÑнкÑий Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¾Ð±ÑÑвлÑÑÑÑÑ ÐºÐ°Ðº «strict».)
ÐÑимеÑание
Ðе вÑе «пÑедопÑеделÑннÑе» ÑÑнкÑии ÑвлÑÑÑÑÑ Â«Ð²Ð½ÑÑÑенними» в вÑÑеопиÑанном ÑмÑÑле. ÐекоÑоÑÑе пÑедопÑеделÑннÑе ÑÑнкÑии напиÑÐ°Ð½Ñ Ð½Ð° SQL.