Question interessante! Réponse courte: non .
Réponse longue: il ne semble pas exister de moyen existant pour obtenir une liste de points de sauvegarde définis. Pire encore, il ne semble pas possible de créer une extension PostgreSQL qui vous permettrait de faire ceci: en regardant src / backend / access / transam / xact.c , vous pouvez voir que des fonctions comme RollbackToSavepoint (qui est l'endroit où "aucune savepoint "du message d’erreur dont vous avez parlé provient de la variable CurrentTransactionState, qui est déclarée statique pour xact.c, c’est-à-dire qui ne serait pas visible globalement au code d’extension.
Maintenant, si vous osiez et que vous vouliez désespérément générer une liste de points de sauvegarde définis du côté serveur (au lieu de simplement vous souvenir de votre client ...), vous pourriez ajouter une fonction d'aide à xact.c qui afficherait ceci informations pour vous. En fait, voici juste un tel patch . C'est un correctif très approximatif à des fins d'illustration uniquement, et ne fait qu'éloger les noms des points de sauvegarde, il devrait vraiment renvoyer ces noms sous forme de texte.
Quant à savoir pourquoi cette fonctionnalité est manquante, je suppose qu'il n'y a tout simplement pas de cas d'utilisation plausible pour un client ayant besoin de récupérer une liste de points de sauvegarde définis sur le serveur. Que ferait le client avec cette liste - il suffit d'en choisir une au hasard et ROLLBACK
pour elle? ROLLBACK
au dernier aveuglément? Les points de sauvegarde AFAICT ne sont utiles que si un client se souvient des points de sauvegarde qu'il a définis et où ils se trouvaient pour pouvoir les utiliser.