Bol vydaný release SQLite 3.40, ľahkého DBMS, ktorý je dodávaný ako pripojiteľná knižnica. Kód SQLite je k dispozícii ako verejné vlastníctvo (public domain), t.j. môže byť používaný bez obmedzení a bezplatne na akékoľvek účely. Finančnú podporu pre vývojárov SQLite poskytuje osobitne vytvorený konzorcium, do ktorého patria také spoločnosti ako Adobe, Oracle, Mozilla, Bentley a Bloomberg.
Hlavné zmeny:
- Implementovaná experimentálna možnosť kompilácie SQLite do medzicorpového kódu WebAssembly, schopného bežať v webovom prehliadači a vhodného na prácu s databázami z webových aplikácií v jazyku JavaScript. Webovým vývojárom je poskytnutý vysokoúrovňový objektovo-orientovaný rozhranie na prácu s údajmi v štýle sql.js alebo Node.js, obal nad nízkoúrovňovým C API a API založené na mechanizme Web Worker, umožňujúce vytvárať asynchrónne spracovateľov, vykonávané v samostatných vláknach. Údaje, ktoré webové aplikácie ukladajú vo WASM-verzii SQLite, môžu byť uložené na strane klienta pomocou OPFS (Origin-Private FileSystem) alebo API window.localStorage.
- Pridané rozšírenie recovery, určené na obnovu údajov z poškodených súborov s databázami. V rozhraní príkazového riadka sa na obnovu používa príkaz „.recover“.
- Zlepšená činnosť plánovača dopytov. Odstránené obmedzenia pri používaní indexov s tabuľkami, ktoré majú viac ako 63 stĺpcov (predtým pri operáciách so stĺpcami, ktorých poradové číslo presahovalo 63, sa indexovanie neuplatňovalo). Zlepšené indexovanie hodnôt používajúcich sa vo výrazoch. Zastavené načítanie z disku veľkých reťazcov a blobov pri spracovaní operátorov NOT NULL a IS NULL. Vylúčená materializácia pohľadov, pre ktoré sa plné skenovanie vykonáva len raz.
- V kódovej základni bol namiesto typu „char *“ na reprezentáciu názvov súborov použitý samostatný typ sqlite3_filename.
- Pridaná vnútorná funkcia sqlite3_value_encoding().
- Pridaný režim SQLITE_DBCONFIG_DEFENSIVE, zakazujúci zmenu verzie schémy ukladania údajov.
- Do realizácie parametra „PRAGMA integrity_check“ boli pridané ďalšie kontroly. Napríklad tabuľky bez znaku STRICT by nemali obsahovať číselné hodnoty v stĺpcoch s typom TEXT a reťazcové hodnoty s číslami v stĺpcoch s typom NUMERIC. Takisto bola pridaná kontrola správnosti poradia riadkov v tabuľkách so znakom „WITHOUT ROWID“.
- Vo výraze „VACUUM INTO“ boli zohľadnené nastavenia „PRAGMA synchronous“.
- Pridaná možnosť skladania SQLITE_MAX_ALLOCATION_SIZE, ktorá umožňuje obmedziť veľkosť blokov pri distribúcii pamäte.
- Vstavaný algoritmus generovania pseudonáhodných čísel v SQLite bol prebiehnutý z používania prúdového šifrovacieho algoritmu RC4 na Chacha20.
- Bola povolená použitie indexov s rovnakými menami v rôznych schémach údajov.
- Boli implementované optimalizácie výkonnosti, ktoré znížili záťaž procesora približne o 1% pri typickej aktivite.
Zdroj: opennet.ru
