DBMS SQLite 3.42 ja DuckDB 0.8.0 väljalase. CG/SQL koos SQLite'i salvestatud protseduuride rakendamisega

Avaldatud on SQLite 3.42, kerge DBMS-i väljaanne, mis on loodud pistikprogrammide raamatukoguna. SQLite kood levitatakse avalikus omandis, st. saab kasutada piiranguteta ja tasuta igal eesmärgil. SQLite'i arendajatele pakub rahalist tuge spetsiaalselt loodud konsortsium, kuhu kuuluvad sellised ettevõtted nagu Adobe, Oracle, Mozilla, Bentley ja Bloomberg.

Peamised muudatused:

  • FTS5 täistekstiindeksite puhul on rakendatud käsk turvaline kustutamine, mis puhastab pärast kustutamist täielikult kõik jääkandmed.
  • Funktsioonid andmete töötlemiseks JSON-vormingus toetavad nüüd JSON5 laiendusi.
  • Täiustatud päringuplaneerija. Vaatamiste arvu optimeerimine on vaikimisi lubatud. Alampäringute kasutamata veergude käsitlemine on kõrvaldatud. Täiustatud allapoole suunatud optimeerimise rakendamine.
  • CLI-le lisati valik "--unsafe-testing", et lubada testimisel kasutada mõnda ohtlikku käsku, näiteks ".testctrl". Turvarežiimis ("--safe") on käsud ".log on" ja ".log off" lubatud. Lisatud on eraldaja "—" tugi argumentide jaoks, mille järel suvandite töötlemine on keelatud. Lisatud ":inf" ja ":nan" parameetrid, mis on seotud lõpmatuse ja NaN väärtustega.
  • Rakenduse määratletud SQL-i funktsioonide nimed võivad ristuda märksõnadega CROSS, FULL, INNER, LEFT, NATURAL, OUTER ja RIGHT.
  • Laiendatud PRAGMA terviklikkuse kontrollimise võimalused. Lisati kontroll NaN väärtuse määramiseks veergudes tingimusega NOT NULL. Täiustatud veateadete infosisu.
  • Seansi lisamine võimaldab muudatuste pealtkuulamist ilma ROWID-deta tabelitest.
  • Kellaaja ja kuupäevadega töötamise funktsioonidele on lisatud modifikaator "subsec", et kasutada sekundite murdosasid.
  • Massiivide ja JSON-objektide rekursiooni vaikesügavus on vähendatud 2000-lt 1000-le.

Lisaks on moodustatud DuckDB 0.8.0 DBMS-i väljalase, mis arendab SQLite'i varianti, mida on täiustatud funktsioonide ja optimeeringutega analüütiliste päringute tegemiseks, mis hõlmavad olulist osa salvestatud andmetest, näiteks koondades kogu tabelite sisu või ühendades mitu suured lauad. Pakutakse SQL-keele laiendatud dialekti, sealhulgas lisavõimalusi väga keeruliste ja kauakestvate päringute käsitlemiseks, samuti keeruliste tüüpide (massiivid, struktuurid, ühendused), mitme päringu samaaegset täitmist ja päringute täitmist otse päringutest. failid CSV-, JSON- ja Parquet-vormingus. PostgreSQL DBMS-ist on võimalik importida.

Lisaks SQLite'i shellkoodile kasutab projekt eraldi teeki teisaldatud PostgreSQL-i parserit, MonetDB-st Date Math komponenti, oma aknafunktsioonide juurutamist (segmendipuu liitmisalgoritmi alusel), regulaaravaldise protsessorit. põhineb RE2 teegil, oma päringu optimeerijal, MVCC juhtimismehhanismil ülesannete samaaegseks täitmiseks (Multi-Version Concurrency Control), samuti vektoriseeritud päringu täitmismootoril, mis põhineb Hyper-Pipelining Query Execution algoritmil, mis võimaldab töödelda suuri failide komplekte. väärtused korraga ühe operatsiooniga. Projekti koodi levitatakse MIT litsentsi all.

DuckDB uues versioonis:

  • Lisatud uued väljendid "PIVOT" ja "UNPIVOT", et muuta read veergudeks ja vastupidi.
  • Täiustatud paralleelsus andmete importimisel ja eksportimisel. Vaikimisi rakendatakse Parketi-, CSV- ja JSON-vormingute kasutamisel CSV-vormingus failidest mitmesse voogu lugemine ja mitme lõimega kirjutamine.
  • Lisatud operaator "**", mis võimaldab failiteede määratlemisel rekursiivselt katalooge itereerida (nt FROM "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Lisatud andmete liitmistoimingute (JOIN) tugi aegridade kujul (parameetrite väärtuste lõigud kindlaksmääratud ajavahemike järel), mille puhul kirjete liitmise kriteerium ei ole täpne, vaid ligikaudne väärtuste sobivus. väljal ajaga (näiteks saate kombineerida rekordeid, mille aeg ei erine rohkem kui 1 minut).
  • Rakendatud on andmebaasi metaandmete edasilükatud laadimine, mis võimaldas kiirendada DBMS-i käivitamist kümneid kordi.
  • Lisatud tugi kohandatud funktsioonide ühendamiseks Pythonis.
  • Lisati tugi ADBC (Arrow Database Connectivity) API-le andmete edastamiseks Apache Arrow abil.
  • Rakendatud sidumine Swifti koodiga integreerimiseks.
  • Muutis jagamise ("/") operaatori käitumist, mis nüüd teeb täisarvuliste toimingute asemel vaikimisi ujukoma arvutusi. Täisarvude jagamiseks on pakutud uus operaator "//". Vana käitumise saab tagastada määrates "SET integer_division=true;".
  • Nullkirjete arvestusmeetod sortimisel on muudetud "NULLS FIRST" asemel "NULLS LAST", st. NULL väärtused kuvatakse nüüd loendi alguses, mitte lõpus. Vana käitumise saab taastada määrates "SET default_null_order='nulls_first';".

Lisaks võib märkida Facebooki poolt välja töötatud CG/SQL projekti, mis pakub koodigeneraatorit salvestatud protseduuride kasutamiseks SQLite'iga. CG/SQL võimaldab kujundada salvestatud protseduure T-SQL-i spetsiaalses dialektis (Transact-SQL), mis võimaldab kutsuda standardse C-teegi funktsioone ja pääseda juurde SQLite'i andmetele. Loodud salvestatud protseduurid kompileeritakse C-koodiks, mis kasutab SQLite C API-d määratud toimingute tegemiseks ja keeruliste päringute töötlemiseks. Koostatud salvestatud protseduure saab siduda C, Java ja Objective-C programmidega. Projekti kood on kirjutatud C-keeles ja seda levitatakse MIT-i litsentsi all.

Allikas: opennet.ru

Lisa kommentaar