Postgresql वास्तव में एक ही कमांड से कई परिणाम सेट वापस करने का समर्थन नहीं करता है। अगर आप इस इनपुट को psql में पास करते हैं:
BEGIN;
SELECT ...;
END;
यह क्लाइंट-साइड को विभाजित कर देगा और वास्तव में तीन कथन निष्पादित करेगा, जिनमें से केवल दूसरा परिणाम सेट देता है।
"BEGIN" और "END" लेन-देन शुरू/समाप्त करने के लिए SQL-स्तरीय कमांड हैं। (ऐसा करने के लिए निचले स्तर का प्रोटोकॉल हो सकता है लेकिन मुझे याद नहीं है)। आप शायद उन्हें सीधे जारी नहीं करना चाहते हैं, बल्कि अपने ड्राइवर (psycopg2) को इसे संभालना चाहते हैं। उदाहरण के लिए, पर्ल के डीबीआई के साथ कनेक्ट करते समय मैं AutoCommit => 0 निर्दिष्ट करता हूं और यह मेरे पहले आदेश से पहले "BEGIN" को स्पष्ट रूप से जारी करता है; और फिर "END" (या "COMMIT" आदि) जब मैं स्पष्ट रूप से $dbh->commit; मुझे लगता है कि पाइथन का डीबी-एपीआई इस तरह काम करता है, क्योंकि जेडीबीसी जैसे अन्य सिस्टम भी करते हैं...