जवाबों:
दिलचस्प सवाल! संक्षिप्त उत्तर: नहीं ।
लंबा उत्तर: परिभाषित किए गए बचत बिंदुओं की सूची प्राप्त करने का कोई मौजूदा तरीका प्रतीत नहीं होता है। इससे भी बदतर, एक PostgreSQL एक्सटेंशन बनाना संभव नहीं लगता है जो आपको ऐसा करने देगा: src / backend / access / transam / xact.c को देखते हुए , आप देख सकते हैं कि RollbackToSavepoint (जैसे कि जहां "" savepoint "त्रुटि संदेश जिसका आपने उल्लेख किया है) चर पर भरोसा करें CurrentTransactionState, जिसे xact.c को स्थिर घोषित किया गया है, अर्थात विश्व स्तर पर विस्तार कोड में दिखाई नहीं देगा।
अब, यदि आप सर्वर-साइड से परिभाषित सेवपॉइंट की सूची बनाने के लिए साहसी और काफी हताश थे (जैसा कि आपके ग्राहक को याद है ...) के विपरीत, आप xact.c में एक सहायक फ़ंक्शन में जोड़ सकते हैं जो इसे प्रदर्शित करेगा आपके लिए जानकारी। वास्तव में, यहाँ सिर्फ इस तरह के एक पैच है । यह केवल दृष्टांत उद्देश्यों के लिए एक बहुत ही कठिन पैच है, और सिर्फ सेवपॉइंट नामों को इंगित करता है, यह वास्तव में सेटऑफ टेक्स्ट के रूप में उन नामों को वापस करना चाहिए।
जैसा कि यह सुविधा याद आ रही है, मुझे लगता है कि सर्वर से परिभाषित बचतकर्ताओं की सूची लाने के लिए आवश्यक ग्राहक के लिए बस कोई उपयोग करने योग्य मामला नहीं है। ग्राहक इस सूची के साथ क्या करेगा - बस एक यादृच्छिक और ROLLBACKइसे चुनें? ROLLBACKपिछले एक आँख बंद करके? AFAICT सेवप्वाइंट्स केवल तभी उपयोगी होते हैं जब कोई क्लाइंट यह याद रखे कि उसने क्या सेविंग पॉइंट्स परिभाषित किए हैं और वे कहां उपयोग करने में सक्षम होने के लिए थे।