हाँ, यह एक ज्ञात समस्या है।
PL/pgSQL (SQL
को छोड़कर, किसी भी अन्य फ़ंक्शन की तरह) ) PostgreSQL के लिए एक "ब्लैक बॉक्स" है, इसलिए रनटाइम के अलावा त्रुटियों का पता लगाना वास्तव में संभव नहीं है।
आप कई काम कर सकते हैं:
- अपने फ़ंक्शन को
SQL
कॉल करके रैप करेंBEGIN
. में क्वेरीज़ /कमिट
त्रुटियों पर बेहतर नियंत्रण रखने के लिए कथन; - जोड़ें अपवाद ब्लॉक त्रुटियों को पकड़ने और ट्रैक करने के लिए अपने कोड में। ध्यान दें, हालांकि, यह कार्य प्रदर्शन को प्रभावित करेगा;
plpgsql_check
का उपयोग करें विस्तार , Pavel Stěhule द्वारा विकसित, जो PL/pgSQL विकास में मुख्य योगदानकर्ताओं में से एक है। मुझे लगता है कि अंततः यह एक्सटेंशन इसे PostgreSQL के मूल में बना देगा, लेकिन इसमें कुछ समय लगेगा (अब हम 9.4beta3 स्थिति में हैं);- आप इस संबंधित प्रश्न पर भी गौर कर सकते हैं:क्वेरी चलाए बिना पोस्टग्रेस्क्ल सिंटैक्स जांच
और ऐसा लगता है कि आपको एक इकाई परीक्षण ढांचे की बहुत आवश्यकता है।