"निर्भर करता है"।
यदि क्लाइंट नेटवर्क कनेक्शन हानि के कारण गायब हो जाता है, तो क्वेरी आमतौर पर तब तक चलेगी जब तक कि उसके नेटवर्क भेजने वाले बफर को भरने के लिए पर्याप्त पंक्तियों को पुनर्प्राप्त नहीं किया जाता है, तब रुकें और टीसीपी कनेक्शन ड्रॉप होने तक अटक जाएं, जिस बिंदु पर यह गर्भपात करेगा। यदि यह टीसीपी भेजने वाले बफर को भरने से पहले इसे पूरा कर लेता है, तो यह सफलतापूर्वक पूरा हो जाएगा, इसलिए यदि यह क्वेरी स्वतः पूर्ण हो जाएगी।
यदि क्लाइंट को इस तरह से मार दिया जाता है कि क्लाइंट का ऑपरेटिंग सिस्टम टीसीपी RST (जैसे क्लाइंट सेगफॉल्ट / क्रैश, SIGTERM, SIGKILL, आदि) के माध्यम से सर्वर को रिपोर्ट कर सकता है, तो PostgreSQL सर्वर इंटरप्ट फ्लैग सेट करेगा। अगली बार जब आप इसे निष्पादित करते हैं, तो यह ध्वज और गर्भपात को देखेगा। कभी-कभी एक क्वेरी कोड के भीतर सीपीयू-भारी काम कर रही हो सकती है जो इंटरप्ट के लिए जांच नहीं करती है - कुछ एक्सटेंशन, और पोस्टग्रेसीक्यू कोर के भीतर कुछ स्थान - जिस स्थिति में यह लंबे समय तक रुकावट को नोटिस नहीं कर सकता है और चालू रह सकता है। यह बहुत ही हमेशा रुकावट और गर्भपात को देखने से पहले पूरा करेगा और अगर यह ऑटोकॉमिट है, तो कमिटिंग।
यदि क्लाइंट को अचानक OS रिबूट की तरह कुछ द्वारा मार दिया जाता है, ताकि क्लाइंट होस्ट को अचानक टीसीपी कनेक्शन के बारे में कुछ भी पता न चले, लेकिन फिर भी नेटवर्क पर प्रतिक्रिया दे सकता है, तो संभवतः पंक्ति को लिखने के लिए क्वेरी पहली बार निरस्त हो जाएगी, जैसे जेफ ने कहा, क्योंकि क्लाइंट का होस्ट रिबूट के बाद सर्वर द्वारा भेजे गए पहले पैकेट के जवाब में एक टीसीपी आरएसटी भेजेगा। PostgreSQL द्वारा भेजे जाने वाली प्रत्येक पंक्ति में व्यवधान की जाँच करता है।
यह व्यवहार कॉन्फ़िगर करने योग्य नहीं है। जहां तक अगर ग्राहक चला गया है तो किसी भी प्रश्न को समाप्त करने के लिए PostgreSQL का संबंध है, अगर ग्राहक चला जाता है। यह बदलने के लिए कि आपको किसी प्रकार के क्वेरी पूर्ण टोकन की आवश्यकता होगी, जिसे आप क्वेरी प्रारंभ में प्राप्त कर सकते हैं, फिर बाद में अपने कनेक्शन के माध्यम से क्वेरी के बारे में सर्वर से पूछने के लिए उपयोग करें। अनिवार्य रूप से आपको अतुल्यकालिक / पृष्ठभूमि प्रश्नों को लागू करना होगा। संभवतः एक अच्छी सुविधा है, लेकिन वर्तमान में समर्थित नहीं है।
यदि क्वेरी स्वतः पूर्ण है, या यदि आपकी क्वेरी COMMIT
उस समय की उड़ान थी, जब आपने क्लाइंट को मार दिया था / कनेक्शन खो दिया था, तो लेन-देन एक अनिश्चित स्थिति में होना संभव है, जहां क्लाइंट को पता नहीं है कि या यह प्रतिबद्ध नहीं है। डेटा पर लेनदेन के प्रभावों की तलाश के अलावा, इसका कोई वास्तविक तरीका नहीं है।
जहां यह अस्वीकार्य है आप दो चरण प्रतिबद्ध और एक क्लाइंट-साइड लेनदेन प्रबंधक का उपयोग कर सकते हैं ।