pg_cursors
   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 53.2.3
via the Server Programming Interface (SPI), as described in Section 47.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.
   
     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 52.69. 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 | trueif the cursor is holdable (that is, it
       can be accessed after the transaction that declared the cursor
       has committed);falseotherwise | 
| is_binary | boolean | trueif the cursor was declaredBINARY;falseotherwise | 
| is_scrollable | boolean | trueif the cursor is scrollable (that is, it
       allows rows to be retrieved in a nonsequential manner);falseotherwise | 
| creation_time | timestamptz | The time at which the cursor was declared | 
   The pg_cursors view is read only.