Objavljen je SQLite 3.40, lagani DBMS u obliku priključne biblioteke. SQLite kod je dostupno kao javno vlasništvo (public domain), što znači da se može koristiti bez ograničenja i besplatno u bilo koje svrhe. Financijsku podršku programerima SQLite pruža posebno osnovani konzorcij koji uključuje tvrtke poput Adobe, Oracle, Mozilla, Bentley i Bloomberg.
Glavne promjene:
- Implementirana je eksperimentalna mogućnost kompilacije SQLite u međukod WebAssembly, sposoban za pokretanje u web pregledniku i prikladan za rad s bazama podataka iz web aplikacija na jeziku JavaScript. Web programerima je dostupan visokouzorni objektno-orijentirani interfejs za rad s podacima u stilu sql.js ili Node.js, obavijeni nad nisko razine C API i API temeljen na mehanizmu Web Worker, koji omogućuje stvaranje asinkronih obrađivača koji se izvršavaju u odvojenim nitima. Podaci koje web aplikacije pohranjuju u WASM verziji SQLite mogu se spremati na strani klijenta pomoću OPFS (Origin-Private FileSystem) ili API window.localStorage.
- Dodano je proširenje recovery, namijenjeno oporavku podataka iz oštećenih datoteka s bazom podataka. U sučelju naredbenog retka za oporavak se koristi naredba „.recover”.
- Poboljšan je rad planera upita. Uklonjena su ograničenja pri korištenju indeksa s tablicama koje imaju više od 63 stupca (ranije se kod operacija sa stupcima čiji redni broj premašuje 63, indeksiranje nije primjenjivano). Poboljšano je indeksiranje vrijednosti korištenih u izrazima. Prekinuto je učitavanje velikih nizova i blobova s diska pri obradi operatora NOT NULL i IS NULL. Isključena je materializacija prikaza za koje se potpuno skeniranje izvršava samo jednom.
- U kodnoj bazi umjesto tipa „char *” za predstavljanje imena datoteka korišten je zaseban tip sqlite3_filename.
- Dodana je unutarnja funkcija sqlite3_value_encoding().
- Dodana je opcija SQLITE_DBCONFIG_DEFENSIVE, koja zabranjuje promjenu verzije sheme pohrane podataka.
- U provedbi parametra „PRAGMA integrity_check“ dodane su dodatne provjere. Na primjer, u tablicama bez oznake STRICT ne bi trebali biti numerički podaci u stupcima tipa TEXT i string vrijednosti s brojevima u stupcima tipa NUMERIC. Također, dodana je provjera ispravnosti redoslijeda redaka u tablicama s oznakom „WITHOUT ROWID“.
- U izrazu „VACUUM INTO“ uzete su u obzir postavke „PRAGMA synchronous“.
- Dodana je opcija sastavljanja SQLITE_MAX_ALLOCATION_SIZE koja omogućava ograničavanje veličine blokova prilikom dodjele memorije.
- Ugrađeni algoritam za generiranje pseudo-slučajnih brojeva u SQLite promijenjen je s korištenja strujnog šifriranja RC4 na Chacha20.
- Dozvoljeno je korištenje indeksa s istim imenima u različitim shemama podataka.
- Vrši se optimizacija performansi koja je omogućila smanjenje opterećenja CPU-a za otprilike 1% pri tipičnoj aktivnosti.
Izvor: opennet.ru
