36.40. routines
Представление routines показывает все функции в текущей базе данных. В нём показываются только функции, к которым имеет доступ текущий пользователь (являясь владельцем или имея некоторые права).
Таблица 36.38. Столбцы routines
| Имя | Тип данных | Описание | 
|---|---|---|
| specific_catalog | sql_identifier | Имя базы данных, содержащей функцию (всегда текущая база) | 
| specific_schema | sql_identifier | Имя схемы, содержащей функцию | 
| specific_name | sql_identifier | «Однозначное имя» функции. Это имя однозначным образом идентифицирует функцию в схеме, даже если реальное имя функции перегружено. Формат однозначных имён не определён, так что его следует использовать только для сравнения с другими экземплярами однозначных имён подпрограмм. | 
| routine_catalog | sql_identifier | Имя базы данных, содержащей функцию (всегда текущая база) | 
| routine_schema | sql_identifier | Имя схемы, содержащей функцию | 
| routine_name | sql_identifier | Имя функции (может дублироваться в случае перегрузки) | 
| routine_type | character_data | Всегда FUNCTION(в будущем могут появиться и другие типы подпрограмм.) | 
| module_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| module_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| module_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| udt_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| udt_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| udt_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| data_type | character_data | Тип данных результата функции, если это встроенный тип, либо ARRAY, если это массив (в этом случае обратитесь к представлениюelement_types), иначе —USER-DEFINED(в этом случае тип определяется вtype_udt_nameи связанных столбцах). | 
| character_maximum_length | cardinal_number | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| character_octet_length | cardinal_number | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| character_set_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| character_set_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| character_set_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| collation_catalog | sql_identifier | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| collation_schema | sql_identifier | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| collation_name | sql_identifier | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| numeric_precision | cardinal_number | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| numeric_precision_radix | cardinal_number | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| numeric_scale | cardinal_number | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| datetime_precision | cardinal_number | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| interval_type | character_data | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| interval_precision | cardinal_number | Всегда NULL, так как эта информация неприменима к типам результатов в PostgreSQL | 
| type_udt_catalog | sql_identifier | Имя базы данных, в которой определён тип данных результата функции (всегда текущая база) | 
| type_udt_schema | sql_identifier | Имя схемы, в которой определён тип данных результата функции | 
| type_udt_name | sql_identifier | Имя типа данных результата функции | 
| scope_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| scope_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| scope_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| maximum_cardinality | cardinal_number | Всегда NULL, так как массивы имеют неограниченную максимальную ёмкость в PostgreSQL | 
| dtd_identifier | sql_identifier | Идентификатор дескриптора типа данных результата функции, уникальный среди всех дескрипторов типов, относящихся к функции. Он в основном полезен для соединения с другими экземплярами таких идентификаторов. (Конкретный формат идентификатора не определён и не гарантируется, что он останется неизменным в будущих версиях.) | 
| routine_body | character_data | Если функция написана на SQL, это поле содержит SQL, иначеEXTERNAL. | 
| routine_definition | character_data | Исходный текст функции (NULL, если функция не принадлежит текущей активной роли). (Согласно стандарту SQL, этот столбец актуален, только если в routine_bodyуказаноSQL, но в PostgreSQL он будет содержать любой исходный текст, заданный при создании функции.) | 
| external_name | character_data | Если это функция на C, этот столбец содержит внешнее имя (объектный символ) функции, иначе — NULL. (Это будет то же значение, что содержит столбец routine_definition.) | 
| external_language | character_data | Язык, на котором написана функция | 
| parameter_style | character_data | Всегда GENERAL(В стандарте SQL определены и другие стили параметров, но в PostgreSQL они отсутствуют.) | 
| is_deterministic | yes_or_no | Если функция объявлена как постоянная (IMMUTABLE) (в стандарте SQL она называется детерминированной), этот столбец содержит YES, иначе —NO. (Получить другие уровни переменности функций, имеющиеся в PostgreSQL, через информационную схему нельзя.) | 
| sql_data_access | character_data | Всегда MODIFIES, что означает, что функция может модифицировать данные SQL. Для PostgreSQL эта информация бесполезна. | 
| is_null_call | yes_or_no | Если функция автоматически возвращает NULL, когда один из аргументов NULL, этот столбец содержит YES, иначе —NO. | 
| sql_path | character_data | Относится к функциональности, отсутствующей в PostgreSQL | 
| schema_level_routine | yes_or_no | Всегда YES(Другое значение было бы у методов пользовательских типов, но в PostgreSQL их нет.) | 
| max_dynamic_result_sets | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL | 
| is_user_defined_cast | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL | 
| is_implicitly_invocable | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL | 
| security_type | character_data | Если функция выполняется с правами вызывающего пользователя, этот столбец содержит INVOKER, а если с правами пользователя, создавшего её, то —DEFINER. | 
| to_sql_specific_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| to_sql_specific_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| to_sql_specific_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| as_locator | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL | 
| created | time_stamp | Относится к функциональности, отсутствующей в PostgreSQL | 
| last_altered | time_stamp | Относится к функциональности, отсутствующей в PostgreSQL | 
| new_savepoint_level | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL | 
| is_udt_dependent | yes_or_no | В настоящее время всегда NO. Альтернативное значениеYESсвязано с возможностями, отсутствующими в PostgreSQL. | 
| result_cast_from_data_type | character_data | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_as_locator | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_char_max_length | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_char_octet_length | character_data | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_char_set_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_char_set_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_char_set_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_collation_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_collation_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_collation_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_numeric_precision | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_numeric_precision_radix | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_numeric_scale | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_datetime_precision | character_data | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_interval_type | character_data | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_interval_precision | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_type_udt_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_type_udt_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_type_udt_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_scope_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_scope_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_scope_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_maximum_cardinality | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL | 
| result_cast_dtd_identifier | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL |