इस प्रोजेक्ट के बारे में

SQLGlot एक निर्भरता-मुक्त SQL पार्सर प्रदान करता है जो विभिन्न SQL इनपुट पढ़ सकता है और लक्ष्य डायलेक्ट्स में वाक्य-रचनात्मक और अर्थ-संबंधी सही SQL उत्पन्न कर सकता है। इसमें DuckDB, Presto/Trino, Spark/Databricks, Snowflake, BigQuery और कई अन्य जैसे डायलेक्ट्स के बीच क्वेरीज़ को परिवर्तित करने के लिए एक ट्रांसपाइलर शामिल है। लाइब्रेरी एक ऑप्टिमाइज़र प्रदान करती है जो क्वेरीज़ को कैनोनिकल AST में फिर से लिखता है, AST निरीक्षण, डिफिंग और SQL एक्सप्रेशन के प्रोग्रामेटिक निर्माण या संशोधन के लिए उपयोगिताएँ। उपयोगकर्ता कॉलम और टेबल जैसे मेटाडेटा निकाल सकते हैं, विस्तृत त्रुटि संदेशों के साथ सिंटैक्स त्रुटियों का पता लगा सकते हैं, और कॉन्फ़िगर करने योग्य चेतावनी या त्रुटि स्तरों के माध्यम से असमर्थित सुविधाओं को संभाल सकते हैं। SQLGlot में Python शब्दकोशों के विरुद्ध SQL का मूल्यांकन करने के लिए एक हल्का निष्पादक भी शामिल है, जो परीक्षण और प्रोटोटाइप के लिए उपयोगी है। Dialect क्लास को उपवर्गीकृत करके कस्टम डायलेक्ट्स जोड़े जा सकते हैं, और प्लगइन डायलेक्ट्स को एंट्री पॉइंट्स के माध्यम से वितरित किया जा सकता है। प्रदर्शन बेंचमार्क दिखाते हैं कि शुद्ध-Python संस्करण प्रतिस्पर्धी है, जबकि mypyc-संकलित संस्करण लगभग 3-5× गति सुधार प्रदान करता है। यह परियोजना SQLMesh, Apache Superset, Dagster, Ibis और dlt जैसे उपकरणों द्वारा उपयोग की जाती है, और व्यापक दस्तावेज़ीकरण, एक परीक्षण सूट और अंतराल सरलीकरण के लिए dateutil जैसी वैकल्पिक निर्भरताएँ प्रदान करती है।