Ăshte publikuar lĂ«shimi i SQLite 3.40, njĂ« DBMS e lehtĂ«, e dizajnuar si njĂ« bibliotekĂ« e lidhur. Kodi SQLite shpĂ«rndahet si pronĂ« publike (public domain), dmth. mund tĂ« pĂ«rdoret pa kufizime dhe pa pagesĂ« pĂ«r çdo qĂ«llim. MbĂ«shtetje financiare pĂ«r zhvilluesit e SQLite ofrohet nga njĂ« konsorci tĂ« krijuar veçmas, qĂ« pĂ«rfshin kompani si Adobe, Oracle, Mozilla, Bentley dhe Bloomberg.
Ndryshimet kryesore:
- ĂshtĂ« realizuar njĂ« mundĂ«si eksperimentale pĂ«r kompilim e SQLite nĂ« kod tĂ« ndĂ«rmjetĂ«m WebAssembly, i aftĂ« pĂ«r t'u ekzekutuar nĂ« shfletuesin web dhe i pĂ«rshtatshĂ«m pĂ«r organizimin e punĂ«s me DB nga aplikacione web tĂ« shkruara nĂ« gjuhĂ«n JavaScript. Zhvilluesit e web-it ofrohen njĂ« ndĂ«rfaqe objektiv-orientuar e nivelit tĂ« lartĂ« pĂ«r punĂ«n me tĂ« dhĂ«nat nĂ« stilin e sql.js ose Node.js, njĂ« mbĂ«shtetje mbi API-nĂ« e ulĂ«t C dhe API-nĂ« mbi mekanizmin Web Worker, qĂ« lejon krijimin e trajtuesve asinchron tĂ« ekzekutuar nĂ« procese tĂ« veçanta. TĂ« dhĂ«nat qĂ« aplikacionet web ruajnĂ« nĂ« versionin WASM tĂ« SQLite mund tĂ« ruhen nĂ« anĂ«n e klientit duke pĂ«rdorur OPFS (Origin-Private FileSystem) ose API-nĂ« window.localStorage.
- Shtesa recovery është shtuar, e destinuar për rikuperimin e të dhënave nga skedarët e dëmtuar nga DB. Në ndërfaqen e linjës së komandës për rikuperim, përdoret komanda " .recover ".
- ĂshtĂ« pĂ«rmirĂ«suar funksionimi i planifikuesit tĂ« kĂ«rkesave. JanĂ« hequr kufizimet gjatĂ« pĂ«rdorimit tĂ« indekseve me tabela qĂ« kanĂ« mĂ« shumĂ« se 63 kolona (mĂ« parĂ« gjatĂ« operacioneve me kolona, numri rendor i tĂ« cilave kalonte 63, indekset nuk aplikohej). ĂshtĂ« pĂ«rmirĂ«suar indeksimi i vlerave qĂ« pĂ«rdoren nĂ« shprehje. ĂshtĂ« ndaluar ngarkimi nga disku i rreshtave tĂ« mĂ«dha dhe blob-eve gjatĂ« procesimit tĂ« operatorĂ«ve NOT NULL dhe IS NULL. ĂshtĂ« pĂ«rjashtuar materializimi i pamjeve pĂ«r tĂ« cilat skanimi i plotĂ« kryhet vetĂ«m njĂ« herĂ«.
- Në bazën e kodit, në vend të tipit "char *" për paraqitjen e emrave të skedarëve përdoret një tip i veçantë sqlite3_filename.
- ĂshtĂ« shtuar funksioni i brendshĂ«m sqlite3_value_encoding().
- ĂshtĂ« shtuar mĂ«nyra SQLITE_DBCONFIG_DEFENSIVE, e cila ndalon ndryshimin e versionit tĂ« skemĂ«s sĂ« ruajtjes sĂ« tĂ« dhĂ«nave.
- Për realizimin e parametrin "PRAGMA integrity_check" janë shtuar kontrollime të tjera. Për shembull, tabelat pa shenjën STRICT nuk duhet të përmbajnë vlera numerike në kolonat me tipin TEXT dhe vlera string me numra në kolonat me tipin NUMERIC. Po ashtu, është shtuar një kontroll për korrektësinë e renditjes së rreshtave në tabelat me shenjën "WITHOUT ROWID".
- Në shprehjen "VACUUM INTO" janë marrë parasysh konfigurimet "PRAGMA synchronous".
- ĂshtĂ« shtuar opsioni i ndĂ«rtimit SQLITE_MAX_ALLOCATION_SIZE, qĂ« lejon kufizimin e madhĂ«sisĂ« sĂ« blloqeve gjatĂ« shpĂ«rndarjes sĂ« memories.
- Algoritmi i brendshëm i SQLite për gjenerimin e numrave të rastit është transferuar nga përdorimi i enkriptimit në rrjedhë RC4 në Chacha20.
- ĂshtĂ« lejuar pĂ«rdorimi i indekseve me emra tĂ« njĂ«jtĂ« nĂ« skema tĂ« ndryshme tĂ« tĂ« dhĂ«nave.
- Janë bërë optimizime të performancës, që kanë lejuar uljen e ngarkesës në CPU me rreth 1% gjatë aktivitetit të zakonshëm.
Burimi: opennet.ru
