Avaldatud on SQLite 3.42, kergekaaluline andmebaasitarkvara, mis on kujundatud kui ĂŒhendatav teek. SQLite kood on jagatud avaliku omandi (public domain) alusel, st seda saab kasutada piiranguteta ja tasuta igasugustel eesmĂ€rkidel. SQLite arendajate rahastamist toetab spetsiaalselt loodud konsortsium, kuhu kuuluvad sellised ettevĂ”tted nagu Adobe, Oracle, Mozilla, Bentley ja Bloomberg.
Peamised muudatused:
- FTS5 tÀisteksti indeksite jaoks on rakendatud kÀsk secure-delete, mis teostab tÀieliku puhastamise pÀrast kustutamist jÀÀnud andmetest.
- JSON formaadi andmete töötlemise funktsioonides on rakendatud JSON5 laienduste tugi.
- KĂŒsimuste ajakava on parendatud. Vaikimisi on sisse lĂŒlitatud optimeerimine "count-of-view". AlampĂ€ringutes on vĂ€listatud kasutamata veergude töötlemine. Push-down optimeerimise rakendust on parendatud.
- KĂ€skude rea liidesesse on lisatud valik "âunsafe-testing", mis vĂ”imaldab kasutada mĂ”ningaid ohtlikke kĂ€ske, nagu " .testctrl", mida kasutatakse testimise kĂ€igus. TurvareĆŸiimis ("âsafe") on lubatud kĂ€sud " .log on" ja " .log off". Lisatud on eraldaja "â", mille jĂ€rel keelatakse argumentide valiku töötlemine. Lisatud on parameetrid ":inf" ja ":nan", mis on seotud vÀÀrtustega lĂ”pmatus ja NaN.
- Rakenduse poolsetes SQL-funktsioonide nimedes on lubatud ristumine vÔtmesÔnadega CROSS, FULL, INNER, LEFT, NATURAL, OUTER ja RIGHT.
- PRAGMA integrity_check'i funktsionaalsust on laiendatud. Lisatud on kontroll, et veergudes, millel on tingimus NOT NULL, vÔib esineda NaN vÀÀrtus. Veateadete informatiivsust on parendatud.
- Sessioni lisandis on lubatud tabellide ROWID muutuste interceptimine.
- Aja ja kuupÀeva töötlemise funktsioonidesse on lisatud modifikaator "subsec" sekundiosade kasutamiseks.
- JSON-massiivide ja objektide rekursioonide sĂŒgavus on vaikimisi vĂ€hendatud 2000-lt 1000-le.
Lisaks on vĂ€lja antud DuckDB 0.8.0, mis on arendatud SQLite'i versioon, millel on laienenud vĂ”imalused ja optimeerimised analĂŒĂŒtiliste pĂ€ringute tĂ€itmiseks, katab mĂ€rkimisvÀÀrse osa salvestatud andmetest, nĂ€iteks tuvastades kogu tabelite sisu agregatsiooni vĂ”i ĂŒhendades mitu suurt tabelit. Pakutakse laiendatud SQL keele dialekti, mis sisaldab tĂ€iendavaid vĂ”imalusi vĂ€ga keerukate ja pikaajaliste pĂ€ringute töötlemiseks, toetab keerulisi tĂŒĂŒpe (massive, struktuurid, ĂŒhendused), vĂ”imaldab mitme pĂ€ringu samaaegset tĂ€itmist ja pĂ€ringute tĂ€itmist otse CSV, JSON ja Parquet formaadisfailidest. Toetatakse andmete importimist PostgreSQL andmebaasidest.
Lisaks SQLite kestakoodile kasutab projekt eraldi teeki eraldatud PostgreSQL-i parserit, MonetDB Date Math komponenti, enda rakendust aknafunktsioonide jaoks (Segment Tree Aggregation algoritmi pĂ”hjal), RE2 teegi pĂ”hjal pĂ”hinevat regulaaravaldiste töötlejat, enda pĂ€ringute optimeerijat, MVCC-mehhanismi samaaegse töö juhtimiseks (Multi-Version Concurrency Control) ning vektoreeritud pĂ€ringute tĂ€itmise mootori Hyper-Pipelining Query Execution algoritmi pĂ”hjal, vĂ”imaldades ĂŒhe operatsiooni kĂ€igus töödelda suuri vÀÀrtuste kogumeid. Projekti kood on litsentseeritud MIT litsentsi alusel.
Uues DuckDB versioonis:
- Lisatud uued vĂ€ljendid âPIVOTâ ja âUNPIVOTâ ridade muutmiseks veergudeks ja vastupidi.
- Parandatud on paralleelsust andmete importimisel ja eksportimisel. Vaikimisi rakendatakse CSV-formaatidest failide lugemist mitmes keerus ja mitme keerulise kirjutamise korral Parquet, CSV ja JSON formaatide kasutamisel.
- Lisatud operaator â**â failiteede mÀÀramisel kataloogide rekursiivseks lĂ€bimiseks (nĂ€iteks, FROM ââdata/glob/crawl/stackoverflow/**/*.csvâ;â).
- Lisatud tugi ĂŒhendamise (JOIN) operatsioonidele ajarealise andmete puhul (parameetrite vÀÀrtuste lĂ”iked mÀÀratud aja jooksul), kus ĂŒhendamise kriteeriumiks on mitte tĂ€pne, vaid umbkaudne vaste aja valikuvĂ€ljas (nĂ€iteks saab ĂŒhendada kirjeid, mille ajavahemik erineb mitte rohkem kui 1 minut).
- Teostati andmebaasi metaandmete viivitatud laadimine, mis kiirendas DBMS-i kĂ€ivitamist kĂŒmneid kordi.
- Lisatud tugi kasutajafunktsioonide ĂŒhendamiseks Pythonis.
- Lisatud tugi ADBC (Arrow Database Connectivity) API-le andmete edastamiseks Apache Arrow'i abil.
- Tehtud sidumine Swift keele koodiga integreerimiseks.
- Muudetud jagamisoperaatori (â/â) kĂ€itumist, mis nĂŒĂŒd vaikimisi teostab arvutusi ujuva koma formaatides, mitte tĂ€isarvude operatsioonides. TĂ€isarvude jagamiseks on soovitatud uus operaator â//â. Vana kĂ€itumist saab tagastada seadistusega âSET integer_division=true;â.
- Null vÀÀrtuste sorteerimise meetod on muudetud, nii et nĂŒĂŒd kuvatakse NULL-vÀÀrtused nimekirja lĂ”pus, mitte alguses. Vanale kĂ€itumisele saab tagasi minna seades "SET default_null_order='nulls_first';".
Lisaks vÔib mÀrkida Facebooki arendatavat projekti CG/SQL, mis pakub koodi generaatorit salvestatud protseduuride kasutamiseks SQLite'iga. CG/SQL vÔimaldab luua salvestatud protseduure spetsiaalses T-SQL (Transact-SQL) dialektis, mis vÔimaldab kasutada C standardteeki funktsioone ja pÀÀseda SQLite andmetele. Loomise jÀrel kompileeritud salvestatud protseduurid genereeritakse C keeles, kasutades SQLite C API-d mÀÀratud toimingute tÀitmiseks ja keerukate pÀringute töötlemiseks. Kompileeritud salvestatud protseduurid saavad liituda C, Java ja Objective-C programmidega. Projekti kood on kirjutatud C keeles ja jagatakse MIT-licentsi alusel.
Allikas: opennet.ru
