pg_cursors
В представлении pg_cursors
перечислены курсоры, которые доступны в данный момент. Курсоры могут быть определены несколькими способами:
- с помощью оператора
DECLARE
в SQL; - через сообщение Bind в протоколе frontend/backend, как описано в разделе «Поток сообщений»;
- через интерфейс программирования сервера (SPI).
Представление pg_cursors
отображает курсоры, созданные любым из этих способов. Курсоры существуют только в течение времени транзакции, которая их определяет, если только они не были объявлены WITH HOLD. Поэтому курсоры без возможности удержания присутствуют в представлении только до конца создавшей их транзакции.
Примечание:
Курсоры используются внутри для реализации некоторых компонентов PostgreSQL, таких как процедурные языки. Таким образом, представление
pg_cursors
может включать курсоры, которые не были явно созданы пользователем
Столбец | Тип данных | Описание |
---|---|---|
name | text | Имя курсора |
statement | text | Строка дословного запроса, отправленная для объявления этого курсора |
is_holdable | bool | true, если курсор является удерживаемым (то есть к нему можно получить доступ после того, как транзакция, которая объявила курсор, зафиксирована); false в противном случае |
is_binary | bool | true, если курсор был объявлен BINARY; false в противном случае |
is_scrocable | bool | true, если курсор можно прокрутить (то есть он позволяет извлекать строки беспоследовательным образом); false в противном случае |
creation_time | timestamptz | Время объявления курсора |
Представление pg_cursors
доступно только для чтения