Ishte publikuar rilis SQLite 3.42, një DBMS e lehtë, e cila është e konceptuar si një bibliotekë e integruar. Kodi SQLite shpërndahet si pronë publike (public domain), domethënë mund të përdoret pa kufizime dhe falas për çdo qëllim. Mbështetje financiare për zhvilluesit e SQLite ofron një konsorcium i krijuar posaçërisht, në të cilin përfshihen kompani si Adobe, Oracle, Mozilla, Bentley dhe Bloomberg.
Ndryshimet kryesore:
- Për indekset e plotë FTS5 është implementuar komanda secure-delete, e cila kryen pastrimin e plotë të të dhënave mbetëse pas fshirjes.
- Në funksionet për përpunimin e të dhënave në formatin JSON është implementuar mbështetje për zgjerime JSON5.
- Planifikuesi i kĂ«rkesave Ă«shtĂ« pĂ«rmirĂ«suar. Optimizimi âcount-of-viewâ Ă«shtĂ« activizuar si parazgjedhje. Procesimi i kolonave tĂ« papĂ«rdorura nĂ« nĂ«nkĂ«rkesa Ă«shtĂ« anuluar. Implementimi i optimizimit push-down Ă«shtĂ« pĂ«rmirĂ«suar.
- NĂ« ndĂ«rfaqen e linjĂ«s sĂ« komandĂ«s Ă«shtĂ« shtuar opsioni ââunsafe-testingâ, i cili lejon pĂ«rdorimin e disa komandave tĂ« rrezikshme, si â.testctrlâ, tĂ« destinuara pĂ«r pĂ«rdorim gjatĂ« testimit. NĂ« modalitetin e sigurt (ââsafeâ) Ă«shtĂ« lejuar pĂ«rdorimi i komandave â.log onâ dhe â.log offâ. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r ndarĂ«sin âââ, pas sĂ« cilĂ«s fshihet pĂ«rpunimi i opsioneve. JanĂ« shtuar parametrat â:infâ dhe â:nanâ, qĂ« lidhen me vlerat Infinity dhe NaN.
- Në emrat e funksioneve SQL të përcaktuara nga aplikacioni është lejuar kryqëzimi me fjalët kyçe CROSS, FULL, INNER, LEFT, NATURAL, OUTER dhe RIGHT.
- Kapasitetet e PRAGMA integrity_check janĂ« zgjeruar. ĂshtĂ« shtuar kontrolli i pĂ«rcaktimit tĂ« vlerĂ«s NaN nĂ« kolonat me kusht NOT NULL. Informatat e mesazheve tĂ« gabimeve janĂ« pĂ«rmirĂ«suar.
- Në plotësimin e sesionit është lejuar kapja e ndryshimeve nga tabelat pa ROWID.
- NĂ« funksionin pĂ«r punĂ«n me kohĂ«n dhe datat Ă«shtĂ« shtuar modifikatori âsubsecâ pĂ«r pĂ«rdorimin e pjesĂ«ve tĂ« sekondĂ«s.
- Thellësia e rekursionit për array dhe objekte JSON është zvogëluar nga 2000 në 1000 si parazgjedhje.
Përveç kësaj, është formuar versioni i DBMS DuckDB 0.8.0, i cili zhvillon një variant të SQLite, të zgjeruar me mundësi dhe optimizime për ekzekutimin e pyetjeve analitike, që mbulojnë një pjesë të konsiderueshme të të dhënave të ruajta, për shembull, duke realizuar agregimin e përmbajtjes së tabelave ose bashkimin e disa tabelave të mëdha. Ofron një dialekt të zgjeruar të gjuhës SQL, duke përfshirë mundësi të tjera për përpunimin e pyetjeve shumë komplekse dhe të zgjatura, si dhe mbështetje për lloje të komplikuara (masiv, struktura, bashkime), ekzekutimin e shumë pyetjeve njëkohësisht dhe ekzekutimin e pyetjeve direkt nga skedarët në formatet CSV, JSON dhe Parquet. Ka mundësi për importimin nga DBMS PostgreSQL.
Përveç kodit të shell-it nga SQLite, projekti përdor një parser të nxjerrë në një bibliotekë të veçantë nga PostgreSQL, komponentin Date Math nga MonetDB, implementimin e vet të funksioneve finesh (bazuar në algoritmin Segment Tree Aggregation), një përpunues të shprehjeve të rregullta të bazuar në bibliotekën RE2, optimizuesin e tij të pyetjeve, mekanizmin MVCC për menaxhimin e ekzekutimit të shumëfishtë të detyrave (Kontrolli i Konkurencës me Versione të Shumta), si dhe një motor të vektorizuar për ekzekutimin e pyetjeve mbi bazën e algoritmit Hyper-Pipelining Query Execution, i cili lejon për një operacion të vetme të përpunojë grupe të mëdha vlerash. Kodi i projektit shpërndahet nën licencën MIT.
Në versionin e ri të DuckDB:
- Janë shtuar shprehjet e reja «PIVOT» dhe «UNPIVOT» për transformimin e rreshtave në kolona dhe anasjelltas.
- Janë përmirësuar paralelizmi gjatë importit dhe eksportit të të dhënave. Nga java përfundim, lexohet nga skedarët në formatin CSV në disa kanale dhe shkruhen në shumë kanale kur përdoren formatet Parquet, CSV dhe JSON.
- JanĂ« shtuar operatori «**» pĂ«r kalimin rekurziv tĂ« direktorĂ«ve gjatĂ« pĂ«rcaktimit tĂ« rrugĂ«ve tĂ« skedarĂ«ve (pĂ«r shembull, FROM «âdata/glob/crawl/stackoverflow/**/*.csvâ;»).
- Janë shtuar mbështetje për operacionet e bashkimit (JOIN) për të dhënat në formë të serive temporale (prerjet e vlerave të parametrave në intervale të caktuara kohore), në të cilat si kriter për bashkimin e regjistrimeve përdoret një përputhje e afërt e vlerave në fushën e kohës (për shembull, mund të bashkohen regjistrimet, koha e të cilave ndryshon jo më shumë se 1 minutë).
- është realizuar ngarkimi i vonuar i metadatave të DB, i cili ka lejuar përshpejtimin e kthimit të DBMS deri në dhjetëra herë.
- Shtesa e mbështetjes për lidhjen e funksioneve të personalizuara në gjuhën Python.
- Shtesa e mbështetjes për API ADBC (Arrow Database Connectivity) për kalimin e të dhënave duke përdorur Apache Arrow.
- Krijimi i nyjës për integrimin me kodin në gjuhën Swift.
- Ndryshimi i sjelljes së operatorit të ndarjes ("/") i cili tani kryen llogaritje me pikë të lëngshme si parazgjedhje në vend të operacioneve të numrave të plotë. Një operator i ri "//" është propozuar për ndarjen e numrave të plotë. Sjellja e vjetër mund të rikthehet me konfigurimin "SET integer_division=true;".
- Metoda e mbajtjes parasysh të regjistrimeve NULL gjatë renditjes është ndryshuar nga "NULLS FIRST" në "NULLS LAST", që do të thotë se vlerat NULL tani do të shfaqen në fund të listës, jo në fillim. Sjellja e vjetër mund të rikthehet me konfigurimin "SET default_null_order='nulls_first';".
Gjithashtu mund të shënohet projekti CG/SQL i zhvilluar nga kompania Facebook, i cili ofron një gjenerator kodi për përdorimin e procedurave të ruajtura me SQLite. CG/SQL lejon përgatitjen e procedurave të ruajtura në një dialekt të veçantë T-SQL (Transact-SQL), që lejon thirrjen e funksioneve të bibliotekës standarde C dhe qasjen në të dhëna në SQLite. Procedurat e ruajtura të krijuara kompilohen në kod në gjuhën C, që përdor SQLite C API për ekzekutimin e veprimeve të caktuara dhe trajtimin e pyetjeve të komplikuara. Procedurat e kompiluar mund të lidheshin me programe në gjuhët C, Java dhe Objective-C. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën MIT.
Burimi: opennet.ru
