जनरेट किए गए कॉलमों के समर्थन के साथ DBMS SQLite 3.31 का विमोचन

प्रकाशित релиз एसक्यूलाइट 3.31.0, एक हल्का DBMS जिसे प्लग-इन लाइब्रेरी के रूप में डिज़ाइन किया गया है। SQLite कोड को सार्वजनिक डोमेन के रूप में वितरित किया जाता है, अर्थात। किसी भी उद्देश्य के लिए बिना किसी प्रतिबंध के और नि:शुल्क उपयोग किया जा सकता है। SQLite डेवलपर्स के लिए वित्तीय सहायता एक विशेष रूप से बनाए गए कंसोर्टियम द्वारा प्रदान की जाती है, जिसमें Adobe, Oracle, Mozilla, Bentley और Bloomberg जैसी कंपनियां शामिल हैं।

मुख्य परिवर्तन:

  • समर्थन जोड़ा गया उत्पन्न कॉलम (गणना किए गए कॉलम), जो आपको एक तालिका बनाते समय एक कॉलम को परिभाषित करने की अनुमति देता है जिसका मूल्य स्वचालित रूप से दूसरे कॉलम की सामग्री के आधार पर गणना की जाती है। जेनरेट किए गए कॉलम या तो वर्चुअल हो सकते हैं (प्रत्येक एक्सेस के साथ तुरंत जेनरेट किए जाते हैं) या डेटाबेस में संग्रहीत किए जाते हैं (प्रत्येक बार संबंधित कॉलम अपडेट होने पर सहेजे जाते हैं)। जेनरेट किए गए कॉलम की सामग्री केवल रीड मोड में उपलब्ध है (परिवर्तन केवल गणना में शामिल किसी अन्य कॉलम में मान के संशोधन के माध्यम से किए जाते हैं)। उदाहरण के लिए:

    तालिका t1 बनाएं(
    एक पूर्णांक प्राथमिक कुंजी,
    बी आईएनटी,
    सी पाठ,
    d int हमेशा (a*abs(b)) वर्चुअल के रूप में उत्पन्न होता है,
    ई पाठ हमेशा (substr(c,b,b+1)) संग्रहीत के रूप में उत्पन्न होता है
    );

  • प्राग्मा जोड़ा गया Trusted_schema, सेटिंग SQLITE_DBCONFIG_TRUSTED_SCHEMA और असेंबली विकल्प "-DSQLITE_TRUSTED_SCHEMA", जो आपको सुरक्षा के समावेशन को नियंत्रित करने की अनुमति देता है आक्रमण डेटाबेस में डेटा स्कीमा के संशोधन के माध्यम से। सक्रिय सुरक्षा ट्रिगर, व्यू, चेक और डिफॉल्ट स्टेटमेंट, इंडेक्स और जेनरेट किए गए कॉलम में SQL फ़ंक्शंस (SQLITE_INNOCUOUS के रूप में चिह्नित नहीं) के उपयोग को प्रतिबंधित करती है। ट्रिगर्स और व्यू में वर्चुअल टेबल का उपयोग भी अक्षम है जब तक कि वर्चुअल टेबल को SQLITE_VTAB_INNOCUOUS ध्वज के साथ स्पष्ट रूप से घोषित नहीं किया जाता है।
  • अनुप्रयोगों में परिभाषित SQL फ़ंक्शंस के लिए गुण निर्दिष्ट करने की क्षमता लागू की गई SQLITE_INNOCUOUS (हानिरहित कार्य जो बाहरी मापदंडों पर निर्भर नहीं होते हैं और जिनका उपयोग दुर्भावनापूर्ण कार्यों को करने के लिए नहीं किया जा सकता है) और SQLITE_DIRECTONLY (केवल SQL प्रश्नों में सीधी कॉल, ट्रिगर, दृश्य और डेटा संरचना आरेख में उपयोग की संभावना के बिना);
  • जोड़ा गया मॉड्यूल यूयूआईडी यूयूआईडी (आरएफसी-4122) प्रसंस्करण के लिए कार्यों के कार्यान्वयन के साथ;
  • प्राग्मा जोड़ा गया हार्ड_हीप_लिमिट और कार्य करते हैं sqlite3_hard_heap_limit64() अधिकतम ढेर आकार को नियंत्रित करने के लिए;
  • प्राग्मा में function_list प्रत्येक फ़ंक्शन के प्रकार, गुणों और तर्कों की संख्या का जोड़ा गया आउटपुट;
  • वर्चुअल टेबल DBSTAT के लिए जोड़ा डेटा एकत्रीकरण मोड;
  • sqlite3_open_v2() SQLITE_OPEN_NOFOLLOW विकल्प लागू करता है, जो आपको प्रतीकात्मक लिंक खोलने को अक्षम करने की अनुमति देता है;
  • तर्क के लिए पथ, JSON फ़ंक्शंस को पारित किया गया, "#-N" सरणी नोटेशन के लिए समर्थन जोड़ा गया;
  • स्मृति वितरण प्रणाली में बगल में देखिये दो अलग-अलग मेमोरी पूल के लिए समर्थन लागू किया गया है, जिनमें से प्रत्येक का उपयोग विभिन्न आकारों के ब्लॉक आवंटित करने के लिए किया जा सकता है (पृथक्करण आपको लुकसाइड सिस्टम के उपयोग का विस्तार करने की अनुमति देता है, जबकि प्रत्येक कनेक्शन के लिए आवंटित बफर के आकार को 120 से 48 तक कम करता है) केबी);
  • PRAGMA समर्थन बंद कर दिया गया है विरासत_फ़ाइल_प्रारूप, जो VACUUM, जेनरेट किए गए कॉलम और अवरोही इंडेक्स के साथ असंगत था (विरासत प्रारूप समर्थन sqlite3_db_config() में SQLITE_DBCONFIG_LEGACY_FILE_FORMAT ध्वज के माध्यम से वापस किया जा सकता है)।

स्रोत: opennet.ru

एक टिप्पणी जोड़ें