Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

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

 — 

Оценочная стоимость выполнения (в единицах cpu_operator_cost); если значение proretset равно true, определяет стоимость выдачи одной строки

prorows

float4

 — 

Примерное число возвращаемых строк (0, если признак proretset не установлен)

provariadic

oid

pg_type.oid

Тип данных элементов переменного массива параметров или 0, если функция не принимает переменное число параметров

protransform

regproc

pg_proc.oid

Вызовы этой функции можно упростить с помощью заданной функции

proisagg

boolean

 — 

Функция является агрегатной функцией

proiswindow

boolean

 — 

Функция является оконной функцией

prosecdef

boolean

 — 

Функция определяет контекст безопасности (например, функция setuid())

proleakproof

boolean

 — 

Функция не имеет побочных эффектов. Никакая информация об аргументах не передается, кроме как через возвращаемое значение. Любая функция, которая может выдать ошибку в зависимости от значений своих аргументов, не является герметичной

proisstrict

boolean

 — 

Функция возвращает NULL, если любой из аргументов при вызове NULL. В этом случае функция фактически не будет вызвана. Функции, которые не являются "строгими", должны быть готовы обрабатывать входные значения NULL

proretset

boolean

 — 

Функция возвращает множество (несколько значений указанного типа данных)

provolatile

char

 — 

Указывает, зависит ли результат функции только от ее входных аргументов или на него влияют внешние факторы:

  • i — IMMUTABLE (всегда возвращает одинаковый результат для одних и тех же входных данных).

  • s — STABLE (для фиксированных входных данных результат не меняется в рамках одного сканирования).

  • v — VOLATILE (результат может меняться в любое время или функции с побочными эффектами).

pronargs

int2

 — 

Количество входных аргументов

pronargdefaults

int2

 — 

Количество аргументов, для которых определены значения по умолчанию

prorettype

oid

pg_type.oid

Тип данных возвращаемого значения

proargtypes

oidvector

pg_type.oid

Массив с типами данных аргументов функции. Сюда входят только входные аргументы (включая аргументы INOUT и VARIADIC), и таким образом он представляет сигнатуру вызова функции

proallargtypes

oid[]

pg_type.oid

Массив с типами данных аргументов функции. Сюда входят все аргументы (включая аргументы OUT и INOUT); однако если все аргументы имеют режим IN, это поле будет NULL. Обратите внимание, что индексация начинается с 1, тогда как по историческим причинам proargtypes индексируется с 0

proargmodes

char[]

 — 

Массив с режимами аргументов функций:

  • i — IN.

  • o — OUT.

  • b — INOUT.

  • v — VARIADIC.

Если все аргументы — аргументы IN, это поле будет NULL. Обратите внимание: индексы соответствуют позициям в proallargtypes, а не в proargtypes

proargnames

text[]

 — 

Массив с именами аргументов функции. Аргументы без имени задаются в массиве пустыми строками. Если ни один из аргументов не имеет имени, это поле будет NULL. Обратите внимание, что индексы соответствуют позициям в proallargtypes, а не в proargtypes

proargdefaults

pg_node_tree

 — 

Деревья выражений (в представлении nodeToString()) для значений аргументов по умолчанию. Этот список содержит pronargdefaults элементов, которые соответствуют последним N входным аргументам — последним N позициям в proargtypes. Если ни у одного из аргументов нет значений по умолчанию, это поле будет NULL

prosrc

text

 — 

Указывает обработчику функций, как вызывать функцию. Это может быть исходный код функции для интерпретируемых языков, объектный символ, имя файла или что-то другое, в зависимости от языка реализации/соглашения о вызовах

probin

text

 — 

Дополнительная информация о том, как вызывать функцию. Интерпретация этого значения так же зависит от языка

proconfig

text[]

 — 

Локальные настройки функции для параметров конфигурации времени выполнения

proacl

aclitem[]

 — 

Права доступа к функции, предоставленные с помощью GRANT/REVOKE

prodataaccess

char

 — 

Подсказка о типе SQL-выражений, включенных в функцию:

  • n — не содержит SQL.

  • c — содержит SQL.

  • r — содержит SQL, читающий данные.

  • m — содержит SQL, изменяющий данные.

proexeclocation

char

 — 

Где выполняется функция при ее вызове:

  • m — только на мастере.

  • a — на любом экземпляре сегмента.

  • s — на всех экземплярах сегментов.

  • i — InitPlan.