SQLite 3.35 шығарылымы

SQLite 3.35 шығарылымы, қосылатын модуль кітапханасы ретінде жасалған жеңіл ДҚБЖ жарияланды. SQLite коды жалпыға ортақ доменде таратылады, яғни. кез келген мақсатта шектеусіз және тегін пайдалануға болады. SQLite әзірлеушілеріне қаржылық қолдау Adobe, Oracle, Mozilla, Bentley және Bloomberg сияқты компанияларды қамтитын арнайы құрылған консорциуммен қамтамасыз етіледі.

Негізгі өзгерістер:

  • SQL тілінде пайдалануға болатын кірістірілген математикалық функциялар (log2(), cos(), tg(), exp(), ln(), pow(), т.б.) қосылды. Кірістірілген функцияларды қосу үшін "-DSQLITE_ENABLE_MATH_FUNCTIONS" опциясымен құру қажет.
  • Кестеден бағандарды жою және берілген бағанда бұрын сақталған деректерді өшіру үшін «КЕСТЕНІ ТҮСІРУ БАҒАНЫН ӨЗГЕРТУ» өрнегі үшін іске асырылған қолдау.
  • UPSERT (қосу немесе өзгерту) операциясының жүзеге асырылуы кеңейтілді, ол «INSERT ... ON CONFICT ON CONFICT» сияқты өрнектер арқылы қатені елемеуге немесе қосу мүмкін болмаса кірістірудің орнына жаңартуды орындауға мүмкіндік береді. деректерді «INSERT» арқылы (мысалы, жазба бұрыннан бар болса, INSERT орнына ЖАҢАЛЫҚТАУ) жасай аласыз. Жаңа нұсқа ретімен өңделетін бірнеше ON CONFLICT блоктарын көрсетуге мүмкіндік береді. Соңғы "ҚАЙТЫЛЫСТА" блогы "ЖАҢАЛЫҚТАУ" функциясын пайдалану үшін қайшылықты анықтау параметрін алып тастауға мүмкіндік береді.
  • DELETE, INSERT және UPDATE операциялары жойылған, кірістірілген немесе өзгертілген жазбаның мазмұнын көрсету үшін пайдаланылуы мүмкін RETURNING өрнегін қолдайды. Мысалы, «...қайтару идентификаторына кірістіру» өрнегі қосылған жолдың идентификаторын қайтарады және «жаңарту ... бағаны орнату = баға * 1.10 қайтарылатын баға» өзгертілген баға мәнін қайтарады.
  • WITH операторы арқылы көрсетілген уақытша атаулы нәтижелер жиынын пайдалануға мүмкіндік беретін Жалпы кесте өрнектері (CTE) үшін «MATERIALIZED» және «NOT MATERIALIZE» режимдерін таңдауға рұқсат етіледі. «МАТЕРИАЛДАНДЫРЫЛҒАН» бөлек физикалық кестеде көріністе көрсетілген сұрауды кэштеуді, содан кейін осы кестеден деректерді алуды білдіреді және «МАТЕРИАЛДАНҒАН ЕМЕС» қайталанатын сұраулар көрініске қатынасқан сайын орындалады. SQLite бастапқыда әдепкі бойынша "MATERIALIZED ЕМЕС" күйіне қойылды, бірақ қазір бірнеше рет пайдаланылған CTE үшін "MATERIALIZED" болып өзгерді.
  • Өте үлкен МӘТІН немесе BLOB мәндерін қамтитын дерекқорларда VACUUM әрекетін орындау кезінде жад тұтынуы азайтылды.
  • Оңтайландырушы мен сұрауды жоспарлаушының өнімділігін арттыру бойынша жұмыстар жүргізілді:
    • «IN» өрнегі бар min және max функцияларын пайдалану кезінде оңтайландырулар қосылды.
    • EXISTS мәлімдемесін орындау жеделдетілді.
    • JOIN бөлігі ретінде пайдаланылатын UNION ALL өрнектерінен ішкі сұрауларды кеңейту жүзеге асырылды.
    • Индекс IS NOT NULL өрнектері үшін пайдаланылады.
    • "x IS NULL" және "x IS NOT NULL" "NULL NO" төлсипаты бар бағандар үшін FALSE немесе TRUE мәніне түрлендірілгенін қамтамасыз етеді.
    • Егер операция сыртқы кілтпен байланыстырылған бағандарды өзгертпесе, UPDATE ішінде сыртқы кілттерді тексеруді өткізіп жіберіңіз.
    • WHERE блогының бөліктерін терезе функцияларын қамтитын ішкі сұрауларға жылжытуға рұқсат етіледі, тек бұл бөліктер терезе функцияларында қолданылатын PARTITION BY блоктарынан тұрақтылармен және өрнектердің көшірмелерімен жұмыс істеумен шектелген.
  • Пәрмен жолы интерфейсіндегі өзгерістер:
    • ".filectrl data_version" пәрмені қосылды.
    • ".once" және ".output" пәрмендері енді атаусыз құбырларды ("|") пайдаланып шақырылған өңдеушіге шығыс беруді қолдайды.
    • Өрнектер мен виртуалды машина есептегіштеріндегі статистиканы көрсету үшін «.stats» пәрменіне «stmt» және «vmstep» аргументтері қосылды.

Ақпарат көзі: opennet.ru

пікір қалдыру