Ето три опции за изброяване на всички функции в PostgreSQL база данни.
information_schema.routines Преглед
Този изглед съдържа всички функции и процедури в текущата база данни, до които текущият потребител има достъп (като е собственик или има някакви привилегии).
Ето пример за връщане на списък с функции:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
В този пример функционира само с public схемата се връщат. Чувствайте се свободни да включите още колони, ако е необходимо.
pg_proc Каталог
pg_catalog.pg_proc каталог съхранява информация за функции, процедури, агрегатни функции и функции на прозореца.
Можем да се присъединим към това с pg_catalog.pg_namespace каталог за филтриране на резултатите само до процедури с public пространство от имена:
SELECT
n.nspname,
p.proname
FROM
pg_catalog.pg_namespace n
JOIN
pg_catalog.pg_proc p ON
p.pronamespace = n.oid
WHERE
p.prokind = 'f'
AND
n.nspname = 'public';
Филтрирахме до prokind на f за да ограничите резултатите само до нормални функции.
Възможните стойности са f за нормална функция, p за процедура, a за агрегатна функция или w за функция на прозореца.
\df Команда
Когато използваме psql, можем да използваме \df команда:
\df
По подразбиране това връща само създадени от потребителя обекти. Като алтернатива можете да предоставите шаблон или S модификатор за включване на системни обекти.
Ето пример за предоставяне на шаблон:
\df *key*
Този пример стеснява резултатите само до тези функции/процедури с текст key на тяхно име.
Имайте предвид, че тази команда връща и съхранени процедури. Типът на рутинната програма (напр. func , proc ) е посочен в type колона в изхода.