ĂshtĂ« publikuar versioni SQLite 3.42, njĂ« DBMS i lehtĂ«, i dizenjuar si njĂ« bibliotekĂ« e integrueshme. Kodi i SQLite shpĂ«rndahet si pronĂ« publike, domethĂ«nĂ« mund tĂ« pĂ«rdoret pa kufizime dhe falas pĂ«r çfarĂ«do qĂ«llimi. MbĂ«shtetje financiare pĂ«r zhvilluesit e SQLite ofron njĂ« konsorcium tĂ« krijuar posaçërisht, qĂ« pĂ«rfshin kompani si Adobe, Oracle, Mozilla, Bentley dhe Bloomberg.
Ndryshimet kryesore:
- Për indeksat tekstualë FTS5 është zbatuar komanda secure-delete, që kryen pastrimin e plotë të të dhënave të mbetura pas fshirjes.
- Në funksionet për përpunimin e të dhënave në formatin JSON është zbatuar mbështetje për zgjerimet JSON5.
- Planifikuesi i pyetjeve Ă«shtĂ« pĂ«rmirĂ«suar. Optimizimi 'count-of-view' Ă«shtĂ« aktivizuar si parazgjedhje. PĂ«rjashtohet pĂ«rpunimi i kolonave tĂ« papĂ«rdorura nĂ« nĂ«npyetje. ĂshtĂ« pĂ«rmirĂ«suar implementimi i optimizimit push-down.
- NĂ« ndĂ«rfaqen e komandave Ă«shtĂ« shtuar opsioni '--unsafe-testing', qĂ« lejon pĂ«rdorimin e disa komandave tĂ« rrezikshme, si '.testctrl', tĂ« destinuara pĂ«r pĂ«rdorim gjatĂ« testimit. NĂ« modin e sigurt ('--safe') lejohet pĂ«rdorimi i komandave '.log on' dhe '.log off'. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r ndarĂ«sin '--', pĂ«r argumentet pas tĂ« cilave pĂ«rjashtohet pĂ«rpunimi i opsioneve. JanĂ« shtuar parametrat ':inf' dhe ':nan', lidhur me vlerat e pafundĂ«sisĂ« dhe NaN.
- Në emrat e funksioneve SQL të përcaktuara në anën e aplikacionit, është lejuar ndërthurja me fjalët kyçe CROSS, FULL, INNER, LEFT, NATURAL, OUTER dhe RIGHT.
- Kapacitetet e PRAGMA integrity_check janĂ« zgjeruar. ĂshtĂ« shtuar kontrolli pĂ«r shĂ«nimin e vlerĂ«s NaN nĂ« kolonat me kusht NOT NULL. ĂshtĂ« pĂ«rmirĂ«suar informueshmĂ«ria e mesazheve tĂ« gabimeve.
- Në shtesën session është e mundur të kapen ndryshimet nga tabelat pa ROWID.
- Në funksionet për punën me kohën dhe datat është shtuar modifikatori 'subsec' për përdorimin e sekonda të pjesshme.
- Thellësia e rekursivitetit për array dhe objekte JSON është ulur nga 2000 në 1000 si parazgjedhje.
Përveç kësaj, është formuar lirimi i DBMS DuckDB 0.8.0, një variant i zhvilluar i SQLite, i zgjeruar me mundësi dhe optimizime për kryerjen e pyetjeve analitike, duke përfshirë një pjesë të madhe të të dhënave të ruajtura, për shembull, që ekzekutojnë agregimin e gjithë 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 shtesë për përpunimin e pyetjeve shumë komplekse dhe të gjata, si dhe mbështetje për lloje komplekse (array, struktura, unione), ekzekutimin paralel të disa pyetjeve dhe ekzekutimin e pyetjeve drejtpërdrejt nga skedarë në formate CSV, JSON dhe Parquet. Ka mundësi importi nga DBMS PostgreSQL.
Përveç kodit të shell-it nga SQLite, projekti përdor një parser të veçuar nga PostgreSQL, komponentin Date Math nga MonetDB, implementimin e tij të funksioneve dritare (bazuar në algoritmin Segment Tree Aggregation), trajtuesin e shprehjeve të rregullta të bazuar në bibliotekën RE2, optimizuesin e tij të pyetjeve, mekanizmin MVCC për menaxhimin e ekzekutimeve paralele (Multi-Version Concurrency Control), si dhe një motor të optimizuar të ekzekutimit të pyetjeve bazuar në algoritmin Hyper-Pipelining Query Execution, që lejon përpunimin e grupeve të mëdha të vlerave në një operacion. Kodi i projektit shpërndahet nën licencën MIT.
Në versionin e ri të DuckDB:
- Jane shtuar shprehjet e reja 'PIVOT' dhe 'UNPIVOT' për transformimin e rreshtave në kolona dhe anasjelltas.
- ĂshtĂ« pĂ«rmirĂ«suar paralelizmi gjatĂ« importit dhe eksportit tĂ« tĂ« dhĂ«nave. Si parazgjedhje, Ă«shtĂ« zbatuar leximi nga skedarĂ«t nĂ« formatin CSV nĂ« disa threasa dhe shkrimi me shumĂ« threasa kur pĂ«rdoren formatet Parquet, CSV dhe JSON.
- ĂshtĂ« shtuar operatori '**' pĂ«r iterimin rekursiv tĂ« dosjeve 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ën e serive të përkohshme (shkurtimet e vlerave të parametrave nëpër intervale të caktuara kohore), ku si kriter për bashkimin e dokumenteve përdoret një përputhje jo të saktë, por të afërt të vlerave në fushën e kohës (për shembull, mund të bashkohen dokumentet që koha e tyre ndryshon jo më shumë se 1 minutë).
- ĂshtĂ« zbatuar ngarkimi i vonuar i metadatat e DB, duke lejuar pĂ«rshpejtimin e dhjetĂ«ra herĂ« tĂ« nisjes sĂ« DBMS.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r lidhjen e funksioneve tĂ« pĂ«rdoruesve nĂ« gjuhĂ«n Python.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r API ADBC (Arrow Database Connectivity) pĂ«r transferimin e tĂ« dhĂ«nave pĂ«rmes Apache Arrow.
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r integrimin me kodin nĂ« gjuhĂ«n Swift.
- ĂshtĂ« ndĂ«rruar sjellja e operatorit tĂ« ndarjes ('/'), i cili tani kryen llogaritjet me numra tĂ« shtuar automatikisht pĂ«rveç operacioneve tĂ« numrave tĂ« plotĂ«. PĂ«r ndarjen e numrave tĂ« plotĂ« Ă«shtĂ« propozuar njĂ« operator i ri '//'. Sjellja e vjetĂ«r mund tĂ« rikthehet me konfigurimin 'SET integer_division=true;'.
- Metoda e llogarisĂ« sĂ« rĂ«ndĂ«sishme pĂ«r renditjen e vlerave NULL Ă«shtĂ« ndryshuar nga «NULLS FIRST» nĂ« «NULLS LAST», dmth. vlerat NULL tani do tĂ« shfaqen nĂ« fund, jo nĂ« fillim tĂ« listĂ«s. Sjellja e vjetĂ«r mund tĂ« rikthehet duke vendosur «SET default_null_order=ânulls_firstâ;».
Shtesë, mund të përmendet 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ërshkrimin e procedurave të ruajtura në një dialekt të veçantë T-SQL (Transact-SQL), i cili lejon thirrjen e funksioneve të bibliotekës standarde C dhe qasjen në të dhënat në SQLite. Procedurat e ruajtura të krijuara kompilohen në kod në gjuhën C, që përdor SQLite C API për të kryer veprimet e caktuara dhe për të përpunuar pyetje të komplikuara. Procedurat e komiluara mund të lidhen 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
