इस प्रोजेक्ट के बारे में
lib/pq PostgreSQL ड्राइवर का शुद्ध Go कार्यान्वयन है, जो Go के मानक database/sql पैकेज के साथ एकीकृत होता है। यह वर्तमान में समर्थित सभी PostgreSQL संस्करणों का समर्थन करता है और libpq के साथ संगत परिचित DSN प्रारूप प्रदान करता है, जो key=value और postgres:// URL-शैली दोनों कनेक्शन स्ट्रिंग स्वीकार करता है।
मुख्य विशेषताएँ:
- **प्रमाणीकरण**: यह बॉक्स से बाहर PASSWORD, MD5 और SCRAM-SHA256 का समर्थन करता है। अनावश्यक निर्भरताओं से बचने के लिए वैकल्पिक GSS/Kerberos प्रमाणीकरण एक अलग auth/kerberos मॉड्यूल के माध्यम से उपलब्ध है। इसमें pgpass फ़ाइल समर्थन भी शामिल है।
- **बल्क इम्पोर्ट**: ट्रांज़ैक्शन के भीतर कुशल बल्क डेटा लोडिंग के लिए COPY [..] FROM STDIN समर्थित है।
- **LISTEN/NOTIFY**: pq.Listener प्रकार PostgreSQL सूचनाओं को Go चैनल पर प्रदान करता है, जिससे रियल-टाइम इवेंट-संचालित पैटर्न सक्षम होते हैं।
- **त्रुटि प्रबंधन**: PostgreSQL त्रुटियाँ संरचित फ़ील्ड वाले pq.Error के रूप में लौटाई जाती हैं। pq.As हेल्पर त्रुटियों को टाइप्ड pq.Error मानों में परिवर्तित करता है, और ErrorWithDetail() डीबगिंग के लिए DETAIL और CONTEXT जानकारी शामिल करता है।
- **NOTICE प्रबंधन**: PostgreSQL से आने वाले सूचनात्मक NOTICE संदेशों को कॉन्फ़िगर करने योग्य कॉलबैक हैंडलर के माध्यम से कैप्चर किया जा सकता है।
- **रनटाइम पैरामीटर**: libpq के विपरीत, pq कनेक्शन स्ट्रिंग में सीधे search_path या work_mem जैसे रनटाइम पैरामीटर सेट करने की अनुमति देता है।
- **Config स्ट्रक्ट**: pq.Config स्ट्रक्ट प्रोग्रामेटिक कनेक्शन कॉन्फ़िगरेशन प्रदान करता है, जिसमें pq.NewConfig DSN स्ट्रिंग पार्स करता है और pq.NewConnectorConfig एक कनेक्टर बनाता है।
README में दस्तावेज़ीकृत सावधानियों में शामिल हैं: LastInsertId समर्थित नहीं है (इसके बजाय INSERT ... RETURNING का उपयोग करें), टाइमस्टैम्प प्रबंधन timestamptz के लिए सर्वर टाइमज़ोन और बिना टाइमज़ोन वाले टाइमस्टैम्प के लिए निश्चित शून्य-ऑफ़सेट ज़ोन का उपयोग करता है, और COPY के दौरान bytea एन्कोडिंग से jsonb कॉलम में समस्याएँ हो सकती हैं।
परियोजना में एक व्यापक टेस्ट सूट शामिल है जो कई PostgreSQL संस्करणों, pgbouncer और pgpool के विरुद्ध Docker Compose के माध्यम से चलाया जा सकता है। PQGO_DEBUG=1 एनवायरनमेंट वेरिएबल समस्या निवारण के लिए प्रोटोकॉल-स्तरीय डीबग आउटपुट सक्षम करता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.