Është publikuar lëshimi i SQLite 3.46, një bazë të dhënash të lehtë, e paraqitur si një bibliotekë e integruar. Kodi i SQLite shpërndahet si pronë publike, që do të thotë se mund të përdoret pa kufizime dhe falas për çdo qëllim. Mbështetje financiare për zhvilluesit e SQLite ofrohet nga një konsorcium i krijuar posaçërisht.
Ndryshimet kryesore:
- Është dhënë mundësia e përdorimit të ndarësit «_» në numra për një prezantim më të qartë të literalëve numerikë (për shembull, 1_234_567).
- Është shtuar funksioni SQL json_pretty() për të gjeneruar një dalje më të lexueshme në formatin JSON, të formatuar duke përdorur rreshtimin e blloqeve me hyrje.
- Janë zgjeruar mundësitë e operacionit «PRAGMA optimize», që kryen optimizimin e DB dhe të gjitha skemave të dhënash për të arritur performancë maksimale të pyetjeve. Është zbatuar një kufizim automatik në kohëzgjatjen e analizës së DB, duke përjashtuar kohën e tepruar të përpunimit për DB-të e mëdha. Është shtuar një maskë e re bitore «PRAGMA optimize(0x10000)» për kontrollin e veçantë të azhurnimeve në të gjitha tabelat. Është siguruar rikthimi automatik i analizës së tabelave, ku nuk ka shënime sqlite_stat1.
- Në funksionin SQL strftime() është shtuar mbështetje për zëvendësime %G, %g, %U dhe %V.
- Në funksionet SQL për punën me data dhe kohën janë shtuar modifikatorë të rinj ceiling dhe floor për të kontrolluar përpunimin e datave të paqartë, që ndodhin gjatë operacioneve për lëvizjen e datave për një numër të caktuar muajsh ose vitesh. Është siguruar injorimi i modifikatorëve utc dhe localtime, nëse SQLite ka informacione që koha është tashmë në përfaqësimin UTC ose localtime.
- Janë bërë optimizime në planifikuesin e pyetjeve. Për shprehje INSERT që përmbajnë mijëra vlera në seksionin VALUES, optimizimi «VALUES-as-coroutine» është aktivizuar si standard, duke lejuar rreth dy herë përshpejtimin e përpunimit të këtyre shprehjeve dhe për të dyfishuar përdorimin e memories. Për pyetje si «SELECT count(DISTINCT col) FROM …» është lejuar përdorimi i indekseve, edhe nëse madhësia e shënimeve në indeks është e njëjtë ose më e madhe se shënimet në tabelë. Është përmirësuar logjika e përcaktimit të situatave, kur në argumentet e funksioneve SQL janë caktuar konstanta. Është siguruar përdorimi i optimizimit push-down për shprehjet WHERE, që përmbajnë nënpyetje të paarritshme.
- Është ndryshuar logjika e trajtimit të mbivendosjes së stack-ut — kur zbulohet një mungesë memorjeje për stack-un, parser-i tani përpiqet të alokojë memorie shtesë nga kupa, në vend të nxjerrjes së një gabimi «parser stack overflow».
- Në JSON është e lejuar përcaktimi i karaktereve të kontrollit në literalët e vargut JSON5. Është ndryshuar logjika e operatorëve «->» dhe «->>», kur në anën e djathtë operand-i i vargut përmban vetëm numra (në përputhje me PostgreSQL, këta operandë tani trajtohen si një varg).
- Në vlerën DEFAULT në kolonat e tabelave është e lejuar përcaktimi i literalëve të mëdhenj hexadecimal.
Burimi: opennet.ru
