Objavljen je izdaj SQLite 3.51, lagan DBMS, oblikovan kao dinamička biblioteka. Kod SQLite je dostupan kao javno vlasništvo (public domain), što znači da se može koristiti bez ograničenja i besplatno u bilo koje svrhe. Finansijsku podršku za razvojnike SQLite pruža poseban konzorcijum.
Glavne spremembe:
- Dodate su nove JSON funkcije jsonb_each() i jsonb_tree(), koje se razlikuju od ranije dostupnih funkcija json_each() i json_tree() po tome što vraćaju JSONB vrednosti za podatke tipa niz ili objekat.
- Kod ekstenzija carray i percentile premješten je u osnovnu datoteku „sqlite3.c“ sa ugrađenim kodom SQLite. Po defaultu su podaci ovih dodataka onemogućeni i zahtevaju da se prilikom izgradnje navedu parametri „-DSQLITE_ENABLE_CARRAY“ i „-DSQLITE_ENABLE_PERCENTILE“.
- Poboljšan je interfejs za korišćenje SQLite u skriptama na jeziku Tcl. U komandu „eval“ dodat je flag „-asdict“ za prikazivanje stringova koristeći tip „dict“ umesto „array“. Dodana je mogućnost prekida korisničkih funkcija radi vraćanja NULL vrednosti.
- Izmene u interfejsu komandne linije:
- Tačnost komande „.timer“ povećana je na mikrosekunde;
- U režimima formatiranja „box“ i „column“ implementirana je podrška za simbole sa dvostrukom širinom;
- Komanda „.imposter“ sada može pružiti samo-readable imposter-tabele (omogućavaju pristup podacima u indeksu kao tabeli), koje rade sa operacijom VACUUM i ne zahtevaju pokretanje sa flagom „—unsafe-testing“;
- U utilitu sqlite i komandu „.open“ dodana je opcija „—ifexists“.
- Maksimalna širina stringa postavljena komandnom „.width“ ograničena je na 30,000 karaktera.
- Uvedene su optimizacije performansi:
- Smanjena je opterećenost CPU-a prilikom fiksiranja transakcija ograničenih pristupom za čitanje;
- Poboljšano je određivanje operacija spajanja (JOIN) koje ne vraćaju redove zbog toga što jedna ili više tabela ne sadrži redove;
- Isključeno je izvršavanje skalarnih podupita koji ne utiču na rezultat;
- Ubrzana je obrada prozorskih funkcija u upitima sa izrazom „BETWEEN 😡 FOLLOWING AND :y FOLLOWING“ i veoma visokom vrednošću „:y“.
- Dodata je pragma „PRAGMA wal_checkpoint=NOOP“ i API funkcija sqlite3_wal_checkpoint() za fiksiranje promena u WAL logu.
- U API su dodane funkcije sqlite3_set_errmsg() i sqlite3_db_status64().
- U JavaScript/WASM verziji SQLite implementirana je podrška za kompilaciju u WebAssembly sa 64-bitnim pokazivačima.
- Povečana odpornost na poškodbe Baze podatkov v aplikacijah, ki odstranjujejo POSIX-zaključke prek klica close().
- Izboljšana podpora za platformo VxWorks.
Izvor: opennet.ru
