Izdanje SQLite 3.40

Objavljeno je izdanje SQLite 3.40, laganog DBMS-a dizajniranog kao plug-in biblioteka. SQLite kod se distribuira u javnom domenu, tj. može se koristiti bez ograničenja i besplatno u bilo koju svrhu. Finansijsku podršku za SQLite programere pruža posebno kreiran konzorcij, koji uključuje kompanije kao što su Adobe, Oracle, Mozilla, Bentley i Bloomberg.

Glavne promjene:

  • Implementirana eksperimentalna mogućnost kompajliranja SQLite-a u srednji WebAssembly kod koji se može pokrenuti u web pretraživaču i pogodan je za organizaciju rada sa bazom podataka iz web aplikacija na JavaScript jeziku. Web programeri imaju objektno orijentirano sučelje visokog nivoa za rad sa podacima u stilu sql.js ili Node.js, preklapanje preko C API niskog nivoa i API zasnovan na mehanizmu Web Worker koji vam omogućava da kreirate asinkrone rukovaoce koji rade na odvojenim nitima. Podaci koje web aplikacije pohranjuju u WASM verziji SQLite-a mogu se pohraniti na strani klijenta koristeći OPFS (Origin-Private FileSystem) ili window.localStorage API.
  • Dodata je ekstenzija za oporavak, dizajnirana za oporavak podataka iz oštećenih datoteka iz baze podataka. Interfejs komandne linije koristi naredbu ".recover" za vraćanje.
  • Poboljšane performanse planera upita. Uklonjena su ograničenja kada se koriste indeksi sa tabelama sa više od 63 kolone (ranije se indeksiranje nije primenjivalo za operacije sa kolonama čiji je redni broj veći od 63). Poboljšano indeksiranje vrijednosti koje se koriste u izrazima. Zaustavljeno učitavanje velikih stringova i blobova sa diska prilikom obrade NOT NULL i IS NULL operatora. Isključena materijalizacija pogleda za koje se potpuno skeniranje izvodi samo jednom.
  • U bazi koda, umjesto korištenja tipa "char *", koristi se poseban tip sqlite3_filename za predstavljanje naziva datoteka.
  • Dodata interna funkcija sqlite3_value_encoding().
  • Dodan način rada SQLITE_DBCONFIG_DEFENSIVE, koji zabranjuje promjenu verzije sheme skladištenja.
  • Dodatne provjere su dodane implementaciji parametra "PRAGMA integrity_check". Na primjer, tabele bez atributa STRICT ne smiju sadržavati numeričke vrijednosti u TEXT stupcima i vrijednosti niza sa brojevima u NUMERIC kolonama. Dodata je i provjera ispravnosti redoslijeda redova u tabelama sa atributom "WITHOUT ROWID".
  • Izraz "VACUUM INTO" poštuje postavke "PRAGMA synchronous".
  • Dodata opcija izgradnje SQLITE_MAX_ALLOCATION_SIZE za ograničenje veličine bloka prilikom dodjele memorije.
  • Algoritam za generiranje pseudo-slučajnih brojeva ugrađen u SQLite je premješten sa upotrebe RC4 stream šifre na Chacha20.
  • Dozvoljeno je korištenje indeksa s istim imenom u različitim shemama podataka.
  • Optimizacije performansi su napravljene kako bi se smanjilo opterećenje CPU-a za oko 1% tokom tipične aktivnosti.

izvor: opennet.ru

Dodajte komentar