37.41. routines

Представление routines отображает все функции и процедуры в текущей базе данных. В нём показываются только те функции и процедуры, к которым имеет доступ текущий пользователь (являясь владельцем или имея некоторые права).

Таблица 37.39. Столбцы routines

ИмяТип данныхОписание
specific_catalogsql_identifierИмя базы данных, содержащей функцию (всегда текущая база)
specific_schemasql_identifierИмя схемы, содержащей функцию
specific_namesql_identifier«Однозначное имя» функции. Это имя однозначным образом идентифицирует функцию в схеме, даже если реальное имя функции перегружено. Формат однозначных имён не определён, так что его следует использовать только для сравнения с другими экземплярами однозначных имён подпрограмм.
routine_catalogsql_identifierИмя базы данных, содержащей функцию (всегда текущая база)
routine_schemasql_identifierИмя схемы, содержащей функцию
routine_namesql_identifierИмя функции (может дублироваться в случае перегрузки)
routine_typecharacter_dataFUNCTION для функций, PROCEDURE для процедур
module_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
module_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
module_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
udt_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
udt_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
udt_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
тип_данныхcharacter_dataТип данных результата функции, если это встроенный тип, либо ARRAY, если это массив (в этом случае обратитесь к представлению element_types), иначе — USER-DEFINED (в этом случае тип определяется в type_udt_name и связанных столбцах). Для процедуры данное поле содержит NULL.
character_maximum_lengthcardinal_numberВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
character_octet_lengthcardinal_numberВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
character_set_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
character_set_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
character_set_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
collation_catalogsql_identifierВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
collation_schemasql_identifierВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
collation_namesql_identifierВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
numeric_precisioncardinal_numberВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
numeric_precision_radixcardinal_numberВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
numeric_scalecardinal_numberВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
datetime_precisioncardinal_numberВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
interval_typecharacter_dataВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
interval_precisioncardinal_numberВсегда NULL, так как эта информация неприменима к типам результатов в Postgres Pro
type_udt_catalogsql_identifierИмя базы данных, в которой определён тип данных результата функции (всегда текущая база). Для процедуры данное поле содержит NULL.
type_udt_schemasql_identifierИмя схемы, в которой определён тип данных результата функции. Для процедуры данное поле содержит NULL.
type_udt_namesql_identifierИмя типа данных результата функции. Для процедуры данное поле содержит NULL.
scope_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
scope_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
scope_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
maximum_cardinalitycardinal_numberВсегда NULL, так как массивы имеют неограниченную максимальную ёмкость в Postgres Pro
dtd_identifiersql_identifierИдентификатор дескриптора типа данных результата функции, уникальный среди всех дескрипторов типов, относящихся к функции. Он в основном полезен для соединения с другими экземплярами таких идентификаторов. (Конкретный формат идентификатора не определён и не гарантируется, что он останется неизменным в будущих версиях.)
routine_bodycharacter_dataЕсли функция написана на SQL, это поле содержит SQL, иначе EXTERNAL.
routine_definitioncharacter_dataИсходный текст функции (NULL, если функция не принадлежит текущей активной роли). (Согласно стандарту SQL, этот столбец актуален, только если в routine_body указано SQL, но в Postgres Pro он будет содержать любой исходный текст, заданный при создании функции.)
external_namecharacter_dataЕсли это функция на C, этот столбец содержит внешнее имя (объектный символ) функции, иначе — NULL. (Это будет то же значение, что содержит столбец routine_definition.)
external_languagecharacter_dataЯзык, на котором написана функция
parameter_stylecharacter_dataВсегда GENERAL (В стандарте SQL определены и другие стили параметров, но в Postgres Pro они отсутствуют.)
is_deterministicyes_or_noЕсли функция объявлена как постоянная (IMMUTABLE) (в стандарте SQL она называется детерминированной), этот столбец содержит YES, иначе — NO. (Получить другие уровни переменности функций, имеющиеся в Postgres Pro, через информационную схему нельзя.)
sql_data_accesscharacter_dataВсегда MODIFIES, что означает, что функция может модифицировать данные SQL. Для Postgres Pro эта информация бесполезна.
is_null_callyes_or_noЕсли функция автоматически возвращает NULL, когда один из аргументов NULL, этот столбец содержит YES, иначе — NO. Для процедуры он содержит NULL.
sql_pathcharacter_dataОтносится к функциональности, отсутствующей в Postgres Pro
schema_level_routineyes_or_noВсегда YES (Другое значение было бы у методов пользовательских типов, но в Postgres Pro их нет.)
max_dynamic_result_setscardinal_numberОтносится к функциональности, отсутствующей в Postgres Pro
is_user_defined_castyes_or_noОтносится к функциональности, отсутствующей в Postgres Pro
is_implicitly_invocableyes_or_noОтносится к функциональности, отсутствующей в Postgres Pro
security_typecharacter_dataЕсли функция выполняется с правами вызывающего пользователя, этот столбец содержит INVOKER, а если с правами пользователя, создавшего её, то — DEFINER.
to_sql_specific_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
to_sql_specific_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
to_sql_specific_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
as_locatoryes_or_noОтносится к функциональности, отсутствующей в Postgres Pro
createdtime_stampОтносится к функциональности, отсутствующей в Postgres Pro
last_alteredtime_stampОтносится к функциональности, отсутствующей в Postgres Pro
new_savepoint_levelyes_or_noОтносится к функциональности, отсутствующей в Postgres Pro
is_udt_dependentyes_or_noВ настоящее время всегда NO. Альтернативное значение YES связано с возможностями, отсутствующими в Postgres Pro.
result_cast_from_data_typecharacter_dataОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_as_locatoryes_or_noОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_char_max_lengthcardinal_numberОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_char_octet_lengthcharacter_dataОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_char_set_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_char_set_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_char_set_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_collation_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_collation_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_collation_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_numeric_precisioncardinal_numberОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_numeric_precision_radixcardinal_numberОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_numeric_scalecardinal_numberОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_datetime_precisioncharacter_dataОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_interval_typecharacter_dataОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_interval_precisioncardinal_numberОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_type_udt_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_type_udt_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_type_udt_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_scope_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_scope_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_scope_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_maximum_cardinalitycardinal_numberОтносится к функциональности, отсутствующей в Postgres Pro
result_cast_dtd_identifiersql_identifierОтносится к функциональности, отсутствующей в Postgres Pro