49.59. pg_cursors
В представлении pg_cursors
перечисляются курсоры, доступные в данный момент. Курсоры могут быть созданы несколькими способами:
через оператор DECLARE в SQL
через сообщение Bind в клиент-серверном протоколе, как описано в Подразделе 50.2.3
через интерфейс программирования сервера (SPI, Server Programming Interface), как описано в Разделе 44.1
В представлении pg_cursors
показываются курсоры, полученные любым способом. Курсор существует только на протяжении транзакции, в которой он определён, если только он не был объявлен с указанием WITH HOLD
. Поэтому не удерживаемые курсоры показываются в этом представлении только пока не завершится создавшая их транзакция.
Примечание
Курсоры используются внутри системы для реализации некоторых компонентов Postgres Pro, таких как процедурные языки. Таким образом, в представлении pg_cursors
могут быть курсоры, которые пользователи не создавали явно.
Таблица 49.60. Столбцы pg_cursors
Имя | Тип | Описание |
---|---|---|
name | text | Имя курсора |
statement | text | Дословная строка запроса, создавшего данный курсор |
is_holdable | boolean | True , если курсор удерживаемый (то есть, к нему можно обращаться после того, как будет зафиксирована транзакция, в которой он объявлен); в противном случае — false |
is_binary | boolean | True , если курсор был объявлен с указанием BINARY ; в противном случае — false |
is_scrollable | boolean | True , если курсор прокручиваемый (то есть, позволяет получать строки непоследовательным образом); в противном случае — false |
creation_time | timestamptz | Время, в которое был объявлен курсор |
Представление pg_cursors
доступно только для чтения.