Bylo zveřejněno vydání SQLite 3.40, lehkého DBMS navrženého jako zásuvná knihovna. Kód SQLite je distribuován ve veřejné doméně, tzn. lze používat bez omezení a zdarma pro jakýkoli účel. Finanční podporu pro vývojáře SQLite zajišťuje speciálně vytvořené konsorcium, které zahrnuje společnosti jako Adobe, Oracle, Mozilla, Bentley a Bloomberg.
Hlavní změny:
- Byla implementována experimentální funkce pro kompilaci SQLite do mezikódu WebAssembly, který lze spustit ve webovém prohlížeči a je vhodný pro práci s databází z webových aplikací v JavaScriptu. Weboví vývojáři mají k dispozici vysokoúrovňové objektově orientované rozhraní pro práci s daty ve stylu sql.js nebo Node.js, obal kolem nízkoúrovňového C API a API založené na mechanismu Web Worker, které umožňuje vytváření asynchronních procesorů běžících v samostatných vláknech. Data uložená webovými aplikacemi ve verzi SQLite WASM lze ukládat na straně klienta pomocí OPFS (Origin-Private FileSystem) nebo window.localStorage API.
- Bylo přidáno rozšíření pro obnovu dat z poškozených databázových souborů. Příkaz „recover“ se používá pro obnovu v rozhraní příkazového řádku.
- Výkon plánovače dotazů byl vylepšen. Byla odstraněna omezení pro používání indexů s tabulkami s více než 63 sloupci (dříve se indexování nepoužívalo na operace se sloupci s pořadovými čísly většími než 63). Bylo vylepšeno indexování hodnot použitých ve výrazech. Bylo zastaveno načítání velkých řádků a blobů z disku při zpracování operátorů NOT NULL a IS NULL. Byla odstraněna materializace pohledů, pro které se úplné skenování provádí pouze jednou.
- V kódové základně se místo typu „char *“ používá samostatný typ sqlite3_filename pro reprezentaci názvů souborů.
- Přidána interní funkce sqlite3_value_encoding().
- Přidán režim SQLITE_DBCONFIG_DEFENSIVE, který zakazuje změnu verze schématu úložiště dat.
- Do implementace parametru „PRAGMA integrity_check“ byly přidány další kontroly. Například tabulky bez příznaku STRICT nesmí obsahovat číselné hodnoty ve sloupcích TEXT ani řetězcové hodnoty s čísly ve sloupcích NUMERIC. Pro tabulky s příznakem „WITHOUT ROWID“ byla také přidána kontrola správného pořadí řádků.
- Příkaz „VACUUM INTO“ zohledňuje nastavení „PRAGMA synchronní“.
- Přidána volba sestavení SQLITE_MAX_ALLOCATION_SIZE, která umožňuje omezit velikost bloků při alokaci paměti.
- Vestavěný algoritmus generování pseudonáhodných čísel v SQLite byl migrován z používání proudové šifry RC4 na Chacha20.
- Je povoleno používat indexy se stejnými názvy v různých datových schématech.
- Byly provedeny optimalizace výkonu, které snižují zatížení CPU přibližně o 1 % během typické činnosti.
Zdroj: opennet.ru
