The pg_cursors view lists the cursors that are currently available. Cursors can be defined in several ways:
via the DECLARE statement in SQL
via the Bind message in the frontend/backend protocol, as described in Section 48.2.3
via the Server Programming Interface (SPI), as described in Section 44.1
The pg_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 declared WITH 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 of PostgreSQL, such as procedural languages. Therefore, the pg_cursors view might include cursors that have not been explicitly created by the user.
Table 47-57. pg_cursors Columns
|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 declared BINARY; 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|
The pg_cursors view is read only.
Please use this form to add your own comments regarding your experience with particular features of PostgreSQL, clarifications of the documentation, or hints for other users. Please note, this is not a support forum, and your IP address will be logged. If you have a question or need help, please see the faq, try a mailing list, or join us on IRC. Note that submissions containing URLs or other keywords commonly found in 'spam' comments may be silently discarded. Please contact the webmaster if you think this is happening to you in error.
Proceed to the comment form.