A fost publicată lansarea SQLite 3.40, un SGBD ușor conceput ca o bibliotecă de plug-in. Codul SQLite este distribuit în domeniul public, adică. poate fi folosit fără restricții și gratuit pentru orice scop. Sprijinul financiar pentru dezvoltatorii SQLite este oferit de un consorțiu special creat, care include companii precum Adobe, Oracle, Mozilla, Bentley și Bloomberg.
Principalele modificări:
- A fost implementată o caracteristică experimentală pentru a compila SQLite în codul intermediar WebAssembly, capabil să ruleze într-un browser web și potrivit pentru organizarea lucrului cu baza de date din aplicații web în JavaScript. Dezvoltatorii web sunt furnizați cu o interfață de nivel înalt orientată pe obiecte pentru lucrul cu date în stilul sql.js sau Node.js, o legare peste API-ul C de nivel scăzut și un API bazat pe mecanismul Web Worker, care permite pentru a crea handlere asincrone executate în fire separate. Datele pe care aplicațiile web le stochează în versiunea WASM a SQLite pot fi stocate pe partea clientului folosind OPFS (Origin-Private FileSystem) sau API-ul window.localStorage.
- S-a adăugat extensia de recuperare, concepută pentru a recupera datele din fișierele deteriorate din baza de date. În interfața liniei de comandă, comanda „.recover” este utilizată pentru recuperare.
- Performanță îmbunătățită a planificatorului de interogări. Restricțiile au fost eliminate la utilizarea indicilor cu tabele cu mai mult de 63 de coloane (anterior, indexarea nu se aplica la operațiuni cu coloane al căror număr ordinal depășește 63). Indexare îmbunătățită a valorilor utilizate în expresii. S-a oprit încărcarea șirurilor și blob-urilor mari de pe disc la procesarea operatorilor NOT NULL și IS NULL. Materializarea vederilor pentru care se efectuează o scanare completă o singură dată este exclusă.
- În baza de cod, în loc de tipul „char *”, este folosit un tip separat sqlite3_filename pentru a reprezenta numele fișierelor.
- S-a adăugat funcția internă sqlite3_value_encoding().
- S-a adăugat modul SQLITE_DBCONFIG_DEFENSIVE, care interzice modificarea versiunii schemei de stocare a datelor.
- Au fost adăugate verificări suplimentare la implementarea parametrului „PRAGMA integrity_check”. De exemplu, tabelele fără atributul STRICT nu trebuie să conțină valori numerice în coloane de tip TEXT și valori de șir cu numere în coloane de tip NUMERIC. De asemenea, este adăugată o verificare pentru ordinea corectă a rândurilor în tabele cu atributul „FĂRĂ RÂND”.
- Expresia „VACUUM INTO” ia în considerare setările „PRAGMA synchronous”.
- A fost adăugată opțiunea de asamblare SQLITE_MAX_ALLOCATION_SIZE, care vă permite să limitați dimensiunea blocurilor atunci când alocați memorie.
- Algoritmul de generare a numerelor pseudoaleatoare încorporat din SQLite a fost mutat de la utilizarea cifrului de flux RC4 la Chacha20.
- Este permisă utilizarea indecșilor cu aceleași nume în diferite scheme de date.
- Au fost făcute optimizări de performanță pentru a reduce încărcarea procesorului cu aproximativ 1% în timpul activității obișnuite.
Sursa: opennet.ru
