La vue pg_cursors liste les curseurs actuellement disponibles. Les curseurs peuvent être définis de plusieurs façons :
via l'instruction SQL DECLARE(7) ;
via le message Bind du protocole frontend/backend, décrit dans le Section 48.2.3, « Requête étendue » ;
via l'interface de programmation du serveur (SPI), décrite dans le Section 44.1, « Fonctions d'interface ».
La vue pg_cursors affiche les curseurs créés par tout moyen précédent. Les curseurs n'existent que pour la durée de la transaction qui les définit, sauf s'ils ont été déclarés avec WITH HOLD. De ce fait, les curseurs volatils (non-holdable) ne sont présents dans la vue que jusqu'à la fin de la transaction qui les a créés.
Les curseurs sont utilisés en interne pour coder certains composants de PostgreSQL™, comme les langages procéduraux. La vue pg_cursors peut ainsi inclure des curseurs qui n'ont pas été créés explicitement par l'utilisateur.
Tableau 47.57. Colonnes de pg_cursors
Nom | Type | Description |
---|---|---|
name | text | Le nom du curseur |
statement | text | La chaîne utilisée comme requête pour créer le curseur |
is_holdable | boolean | true si le curseur est persistant (holdable) (c'est-à-dire s'il peut être accédé après la validation de la transaction qui l'a déclaré) ; false sinon |
is_binary | boolean | true si le curseur a été déclaré binaire (BINARY) ; false sinon |
is_scrollable | boolean | true si le curseur autorise une récupération non séquentielle des lignes ; false sinon |
creation_time | timestamptz | L'heure à laquelle le curseur a été déclaré |
La vue pg_cursors est en lecture seule.