pg_proc
Системная таблица pg_proc хранит информацию о функциях: встроенных или созданных с помощью CREATE FUNCTION.
Таблица также содержит данные об агрегатных и оконных функциях.
Если proisagg равен true, в pg_aggregate должна быть соответствующая строка.
Для скомпилированных функций, как встроенных, так и динамически загружаемых, prosrc содержит имя функции на языке C (объектный символ).
Для всех остальных известных в настоящее время типов языков prosrc содержит исходный текст функции.
Поле probin используется только для динамически загружаемых функций на C, для которых оно задает имя разделяемой библиотеки, содержащей эти функции.
| Столбец | Тип | Ссылки | Описание |
|---|---|---|---|
oid |
oid |
— |
Идентификатор строки (скрытый атрибут; должен быть явно выбран) |
proname |
name |
— |
Имя функции |
pronamespace |
oid |
pg_namespace.oid |
OID пространства имен, содержащего эту функцию |
proowner |
oid |
pg_authid.oid |
Владелец функции |
prolang |
oid |
pg_language.oid |
Язык реализации или интерфейс вызова для данной функции |
procost |
float4 |
— |
Оценочная стоимость выполнения (в единицах |
prorows |
float4 |
— |
Примерное число возвращаемых строк ( |
provariadic |
oid |
pg_type.oid |
Тип данных элементов переменного массива параметров или |
protransform |
regproc |
pg_proc.oid |
Вызовы этой функции можно упростить с помощью заданной функции |
proisagg |
boolean |
— |
Функция является агрегатной функцией |
proiswindow |
boolean |
— |
Функция является оконной функцией |
prosecdef |
boolean |
— |
Функция определяет контекст безопасности (например, функция |
proleakproof |
boolean |
— |
Функция не имеет побочных эффектов. Никакая информация об аргументах не передается, кроме как через возвращаемое значение. Любая функция, которая может выдать ошибку в зависимости от значений своих аргументов, не является герметичной |
proisstrict |
boolean |
— |
Функция возвращает |
proretset |
boolean |
— |
Функция возвращает множество (несколько значений указанного типа данных) |
provolatile |
char |
— |
Указывает, зависит ли результат функции только от ее входных аргументов или на него влияют внешние факторы:
|
pronargs |
int2 |
— |
Количество входных аргументов |
pronargdefaults |
int2 |
— |
Количество аргументов, для которых определены значения по умолчанию |
prorettype |
oid |
pg_type.oid |
Тип данных возвращаемого значения |
proargtypes |
oidvector |
pg_type.oid |
Массив с типами данных аргументов функции.
Сюда входят только входные аргументы (включая аргументы |
proallargtypes |
oid[] |
pg_type.oid |
Массив с типами данных аргументов функции.
Сюда входят все аргументы (включая аргументы |
proargmodes |
char[] |
— |
Массив с режимами аргументов функций:
Если все аргументы — аргументы |
proargnames |
text[] |
— |
Массив с именами аргументов функции.
Аргументы без имени задаются в массиве пустыми строками.
Если ни один из аргументов не имеет имени, это поле будет |
proargdefaults |
pg_node_tree |
— |
Деревья выражений (в представлении |
prosrc |
text |
— |
Указывает обработчику функций, как вызывать функцию. Это может быть исходный код функции для интерпретируемых языков, объектный символ, имя файла или что-то другое, в зависимости от языка реализации/соглашения о вызовах |
probin |
text |
— |
Дополнительная информация о том, как вызывать функцию. Интерпретация этого значения так же зависит от языка |
proconfig |
text[] |
— |
Локальные настройки функции для параметров конфигурации времени выполнения |
proacl |
aclitem[] |
— |
Права доступа к функции, предоставленные с помощью |
prodataaccess |
char |
— |
Подсказка о типе SQL-выражений, включенных в функцию:
|
proexeclocation |
char |
— |
Где выполняется функция при ее вызове:
|