49.59. pg_cursors
Thepg_cursors
view lists the cursors that are currently available. Cursors can be defined in several ways:
via theDECLARE statement in SQL
via the Bind message in the frontend/backend protocol, as described inSection 50.2.3
via the Server Programming Interface (SPI), as described inSection 44.1
Thepg_cursors
view displays cursors created by any of these means. Cursors only exist for the duration of the transaction that defines them, unless they have been declaredWITH HOLD
. Therefore non-holdable cursors are only present in the view until the end of their creating transaction.
Note
Cursors are used internally to implement some of the components ofPostgres Pro, such as procedural languages. Therefore, thepg_cursors
view might include cursors that have not been explicitly created by the user.
Table 49.60. pg_cursors
Columns
Name | Type | Description |
---|---|---|
name | text | The name of the cursor |
statement | text | The verbatim query string submitted to declare this cursor |
is_holdable | boolean | true if the cursor is holdable (that is, it can be accessed after the transaction that declared the cursor has committed);false otherwise |
is_binary | boolean | true if the cursor was declaredBINARY ;false otherwise |
is_scrollable | boolean | true if the cursor is scrollable (that is, it allows rows to be retrieved in a nonsequential manner);false otherwise |
creation_time | timestamptz | The time at which the cursor was declared |
Thepg_cursors
view is read only.