A fost publicat release-ul SQLite 3.51, o bază de date ușoară, disponibilă ca bibliotecă de legătură. Codul SQLite este distribuit ca domeniu public, adică poate fi utilizat fără restricții și gratuit în orice scop. Sprijinul financiar pentru dezvoltatorii SQLite este asigurat de un consorțiu creat special.
Modificări principale:
- Au fost adăugate noi funcții JSON jsonb_each() și jsonb_tree(), care se deosebesc de funcțiile anterioare json_each() și json_tree() prin faptul că returnează valori JSONB pentru date de tip array sau obiect.
- Codul extensiilor carray și percentile a fost mutat în fișierul de bază „sqlite3.c” cu cod încorporat SQLite. Prin default, aceste extensii sunt dezactivate și necesită specificarea în parametrii de construcție „-DSQLITE_ENABLE_CARRAY” și „-DSQLITE_ENABLE_PERCENTILE”.
- Interfața pentru utilizarea SQLite în scripturi Tcl a fost îmbunătățită. La comanda „eval” a fost adăugat un flag „-asdict” pentru a returna șiruri de caractere folosind tipul „dict” în loc de „array”. A fost adăugată opțiunea de a întrerupe funcțiile utilizator pentru a returna o valoare NULL.
- Modificări în interfața liniei de comandă:
- Precizia comenzii „.timer” a fost crescută până la microsecunde;
- În regimurile de format „box” și „column” a fost implementată suportul pentru caractere cu lățime dublă;
- Comanda „.imposter” poate acum să ofere în modul de citire doar tabele imposter (ce permit accesul la date în index ca la o tabelă), care funcționează cu operația VACUUM și nu necesită un flag „—unsafe-testing”;
- Utilitarul sqlite și comanda „.open” au fost adăugate opțiunea „—ifexists”.
- Lățimea maximă a șirului setată prin comanda „.width” este limitată la 30000 de caractere.
- Au fost efectuate optimizări de performanță:
- S-a redus încărcătura pe CPU în timpul finalizării tranzacțiilor, restricționate de accesul în citire;
- A fost îmbunătățită determinarea operațiunilor de îmbinare (JOIN) care nu returnează rânduri din cauza absenței unor rânduri în una sau mai multe tabele;
- Execuția subinterogărilor scalaire, care nu influențează rezultatul, a fost exclusă;
- Funcțiile de fereastră au fost accelerate în interogările cu expresia „BETWEEN 😡 FOLLOWING AND :y FOLLOWING” și cu o valoare foarte mare pentru „:y”.
- A fost adăugată pragma „PRAGMA wal_checkpoint=NOOP” și funcția API sqlite3_wal_checkpoint() pentru a finaliza modificările în jurnalul WAL.
- În API au fost adăugate funcțiile sqlite3_set_errmsg() și sqlite3_db_status64().
- În versiunea JavaScript/WASM a SQLite a fost implementat suportul pentru construirea unui view WebAssembly cu pointere pe 64 de biți.
- Rezistența la deteriorarea bazelor de date în aplicațiile care elimină blocările POSIX prin apelul close() a fost gratuită.
- Îmbunătățită suportul pentru platforma VxWorks.
Sursa: opennet.ro
