Objavljen je izdanja SQLite 3.40, lagane SGBD, postojeće kao dinamička biblioteka. Kod SQLite-a 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 programerima SQLite-a pruža posebno stvoren konzorcijum, koji uključuje takve kompanije kao što su Adobe, Oracle, Mozilla, Bentley i Bloomberg.
Glavne spremembe:
- Implementirana je eksperimentalna funkcionalnost za kompilaciju SQLite-a u intermedijarni WebAssembly kod, koji se može pokretati u web-pretraživaču i pogodovati organizaciji rada s bazama podataka iz web-aplikacija na jeziku JavaScript. Web programerima se pruža visoko nivo objektno-orijentisanog interfejsa za rad s podacima u stilu sql.js ili Node.js, omotač oko niskonivo C API-ja i API-ja zasnovanog na mehanizmu Web Worker, omogućavajući kreiranje asinhronih obradnika koji se izvršavaju u posebnim nitima. Podaci koje web-aplikacije čuvaju u WASM verziji SQLite-a mogu se sačuvati na strani klijenta pomoću OPFS (Origin-Private FileSystem) ili API-ja window.localStorage.
- Dodato je proširenje recovery, namenjeno oporavku podataka iz oštećenih datoteka s bazom podataka. U komandnom interfejsu za oporavak koristi se komanda ".recover".
- Poboljšan je rad planera zahteva. Uklonjena su ograničenja pri korišćenju indeksa s tabelama koje imaju više od 63 kolone (ranije, pri operacijama sa kolonama čiji redni broj premašuje 63, indeksiranje nije bilo primenjeno). Poboljšano je indeksiranje vrednosti koje se koriste u izrazima. Prekinuto je učitavanje velikih nizova i blobova s diska prilikom obrade operatora NOT NULL i IS NULL. Isključena je materijalizacija prikaza za koje se potpuno skeniranje vrši samo jednom.
- U kodnoj bazi, umesto tipa "char *" za predstavljanje imena datoteka, koristi se posebno tip sqlite3_filename.
- Dodana je interna funkcija sqlite3_value_encoding().
- Dodata je opcija SQLITE_DBCONFIG_DEFENSIVE, koja zabranjuje promenu verzije šeme skladištenja podataka.
- Parametra „PRAGMA integrity_check“ je dodan dodatnim proverama. Na primer, tabele bez oznake STRICT ne bi trebalo da sadrže numeričke vrednosti u kolonama tipa TEXT i string vrednosti s brojevima u kolonama tipa NUMERIC. Takođe je dodata provera ispravnosti redosleda redova u tabelama sa oznakom „WITHOUT ROWID“.
- U izrazu „VACUUM INTO“ uzete su u obzir postavke „PRAGMA synchronous“.
- Dodata je opcija gradnje SQLITE_MAX_ALLOCATION_SIZE, koja omogućava ograničavanje veličine blokova prilikom raspodele memorije.
- Ugrađeni u SQLite algoritam za generisanje pseudonamernih brojeva prebačen je sa korišćenja strim šifri RC4 na Chacha20.
- Dozvoljena je upotreba indeksâ sa istim imenima u različitim shemama podataka.
- Optimizovane su performanse, što je omogućilo smanjenje opterećenja na CPU za oko 1% tokom tipične aktivnosti.
Izvor: opennet.ru
