Lëshimi i DBMS SQLite 3.42 dhe DuckDB 0.8.0. CG/SQL me implementimin e procedurave të ruajtura për SQLite

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

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