50.39. pg_proc#
50.39. pg_proc
#
Каталог pg_proc
хранит информацию о функциях, процедурах,агрегатных функциях и оконных функциях (вместе также известных как процедуры). См. CREATE FUNCTION , CREATE PROCEDURE и Раздел 35.3 для получения дополнительной информации.
Если prokind
указывает, что запись относится к агрегатной функции, должна быть соответствующая строка в pg_aggregate
.
Таблица 50.39. pg_proc
Колонки
Тип столбца Описание |
---|
Идентификатор строки |
Имя функции |
OID пространства имен, которое содержит эту функцию |
Владелец функции |
Язык реализации или интерфейс вызова этой функции |
Оценочная стоимость выполнения (в единицах
cpu_operator_cost); если |
Оценочное количество строк результатов (ноль, если |
Тип данных элементов параметра вариативного массива, или ноль, если функция не имеет вариативного параметра |
Опорная функция планировщика для этой функции (см. Раздел 35.10), или ноль, если таковой отсутствует. |
|
Функция является определителем безопасности (т.е. функцией “setuid”) |
Функция не имеет побочных эффектов. Информация о аргументах не передается, кроме как через возвращаемое значение. Любая функция, которая может вызвать ошибку в зависимости от значений своих аргументов, не является защищенной от утечек. |
Функция возвращает null, если хотя бы один из аргументов вызова является null. В этом случае функция на самом деле не будет вызвана вообще. Функции, которые не являются "строгими", должны быть готовы обрабатывать null-входы. |
Функция возвращает набор (т.е. несколько значений указанного типа данных) |
|
|
Количество входных аргументов |
Количество аргументов, у которых есть значения по умолчанию |
Тип данных возвращаемого значения |
Массив типов данных аргументов функции. Включает только входные аргументы (включая аргументы |
Массив типов данных аргументов функции. Включает все аргументы (включая аргументы |
Массив режимов аргументов функции, закодированных как |
Массив имен аргументов функции.
Аргументы без имени устанавливаются в пустые строки в массиве.
Если ни один из аргументов не имеет имени, это поле будет равно null.
Обратите внимание, что индексы соответствуют позициям
|
Деревья выражений (в представлении |
Массив типов данных аргумента/результата, для которых применяются
преобразования (из предложения функции |
Это указывает обработчику функций, как вызывать функцию. Это может быть фактический исходный код функции для интерпретируемых языков, символ ссылки, имя файла или что угодно еще, в зависимости от языка реализации/конвенции вызова. |
Дополнительная информация о том, как вызвать функцию. Опять же, интерпретация зависит от конкретного языка. |
Предварительно разобранный тело SQL-функции. Используется для функций на языке SQL, когда тело задано в стандартной нотации SQL, а не в виде строкового литерала. В других случаях значение равно NULL. |
Локальные настройки функции для переменных конфигурации времени выполнения |
Права доступа; см. Раздел 5.7 для получения подробной информации |
Для скомпилированных функций, как встроенных, так и динамически загружаемых, prosrc
содержит имя функции на языке C (символ ссылки).
Для функций на языке SQL, prosrc
содержит исходный текст функции, если он указан как строковый литерал; но если тело функции указано в стиле стандарта SQL, prosrc
не используется (обычно это пустая строка), а prosqlbody
содержит предварительно разобранное определение.
Для всех остальных известных в настоящее время типов языков prosrc
содержит исходный текст функции. probin
равно null, за исключением динамически загружаемых функций на языке C, для которых он содержит имя файла общей библиотеки, содержащей функцию.