|
Реализация для 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';
|
|
|
|