Перейти к основному содержимому

pg_cursors

В представлении pg_cursors перечислены курсоры, которые доступны в данный момент. Курсоры могут быть определены несколькими способами:

  • с помощью оператора DECLARE в SQL;
  • через сообщение Bind в протоколе frontend/backend, как описано в разделе «Поток сообщений»;
  • через интерфейс программирования сервера (SPI).

Представление pg_cursors отображает курсоры, созданные любым из этих способов. Курсоры существуют только в течение времени транзакции, которая их определяет, если только они не были объявлены WITH HOLD. Поэтому курсоры без возможности удержания присутствуют в представлении только до конца создавшей их транзакции.

Примечание:

Курсоры используются внутри для реализации некоторых компонентов PostgreSQL, таких как процедурные языки. Таким образом, представление pg_cursors может включать курсоры, которые не были явно созданы пользователем

СтолбецТип данныхОписание
nametextИмя курсора
statementtextСтрока дословного запроса, отправленная для объявления этого курсора
is_holdablebooltrue, если курсор является удерживаемым (то есть к нему можно получить доступ после того, как транзакция, которая объявила курсор, зафиксирована); false в противном случае
is_binarybooltrue, если курсор был объявлен BINARY; false в противном случае
is_scrocablebooltrue, если курсор можно прокрутить (то есть он позволяет извлекать строки беспоследовательным образом); false в противном случае
creation_timetimestamptzВремя объявления курсора

Представление pg_cursors доступно только для чтения