| 
|  | Реализация для PostgreSQL некоторых популярных функций из состава MySQL (доп. ссылка 1) | Автор: Pavel Stěhule 
[комментарии] |  |  | Реализация MySQL функции field для PostgreSQL, позволяющей организовать условную сортировку вывода: ...
 [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
 
 |  |  |  |  |  | 
| 
|  | Создание глобальных переменных в pl/perl процедурах в PostgreSQL (доп. ссылка 1) | Автор: Олег Бартунов 
[комментарии] |  |  | CREATE OR REPLACE FUNCTION reset_counter() RETURNS INT AS $$
$_SHARED{counter} = 0;
return 0;
$$ LANGUAGE plperl;
CREATE OR REPLACE FUNCTION counter() RETURNS INT AS $$
return $_SHARED{counter}++;
$$ LANGUAGE plperl;
 |  |  |  |  |  | 
| 
|  | Как в PosgreSQL кешировать результат работы функции внутри запроса | [обсудить] |  |  | CREATE FUNCTION ... LANGUAGE 'SQL' IMMUTABLE;
Для старых версий: CREATE FUNCTION ... LANGUAGE 'SQL' WITH (ISCACHABLE); 
 |  |  |  |  |  | 
| 
|  | Pl/Perl для PostgreSQL | Автор: Yuri A. Kabaenkov 
[обсудить] |  |  | Функции написанные на pl/perl и даже pl/pgsql будут работать только в том
случае если у вас установлен данный язык к вашей базе.
Посмотреть какие языки установлены можно командой
'select * from pg_language;`
Обычно стоят только 
С,SQL и internal(что такое объяснять не буду).
Для установке pl/perl вам нужно выполнить  следующую команду.
createlang plperl <dbname>
Если же вы хотите чтоб pl/perl или pl/pgsql устанавливался автоматически на все
создаваемые базы, то
cratelang plperl template1
 |  |  |  |  |  | 
| 
|  | Как написать встроенную SQL функцию на Perl и экранировать одинарные кавычки | [комментарии] |  |  | CREATE FUNCTION totalcomp(integer, integer) RETURNS integer
    AS '
    my $a = ''test''; # ''- Экранирование кавычки.
    return $_[0] + $_[1];
    '
LANGUAGE 'plperl';
 |  |  |  |  |  | 
| 
|  | Как создать свою функцию для PostgreSQL. | [обсудить] |  |  | CREATE FUNCTION login2contract(varchar)
   RETURNS int4               
   AS 'select contract_id from profile where login = $1'                             
   LANGUAGE 'SQL';
CREATE FUNCTION time_minus_int(timestamp, integer)                         
   RETURNS timestamp                    
   AS 'select $1 - interval ($2) AS RESULT'                                           
   LANGUAGE 'SQL';
 |  |  |  |  |  |