Lëshimi i DB SQLite 3.42 dhe DuckDB 0.8.0. CG/SQL me zbatim të procedurave të ruajtura për SQLite

Ë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

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster