Byla vydána verze SQLite 3.51, lehké DBMS, která je nádherná jako připojitelná knihovna. Kód SQLite je šířen jako veřejná doména, t. j. může být používán bez omezení a bezúplatně pro jakékoli účely. Finanční podporu vývojářům SQLite zajišťuje speciálně založený konzorcium.
Hlavní změny:
- Byly přidány nové JSON funkce jsonb_each() a jsonb_tree(), které se od dříve dostupných funkcí json_each() a json_tree() liší tím, že vrací hodnotu JSONB pro data s typem pole nebo objekt.
- Kód rozšíření carray a percentile byl přesunut do základního souboru „sqlite3.c“ se zabudovaným kódem SQLite. Ve výchozím nastavení jsou tato rozšíření vypnuta a vyžadují specifikaci při sestavení parametrů „-DSQLITE_ENABLE_CARRAY“ a „-DSQLITE_ENABLE_PERCENTILE“.
- Bylo vylepšeno rozhraní pro použití SQLite ve skriptech v jazyce Tcl. Do příkazu „eval“ byla přidána volba „-asdict“ pro výstup řetězců s použitím typu „dict“ místo „array“. Byla přidána možnost přerušení uživatelských funkcí pro vracení hodnoty NULL.
- Změny v rozhraní příkazového řádku:
- Přesnost příkazu „.timer“ byla zvýšena na mikrosekundy;
- V režimech formátování „box“ a „column“ byla implementována podpora znaků s dvojitou šířkou;
- Příkaz „.imposter“ nyní může poskytovat imposter tabulky v režimu pouze pro čtení (umožňující přístup k datům v indexu jako k tabulce), pracující s operací VACUUM a nevyžadující spuštění s příznakem „—unsafe-testing“;
- Do utility sqlite a příkazu „.open“ byla přidána volba „—ifexists“.
- Maximální šířka řetězce nastavená pomocí příkazu „.width“ je omezena na 30000 znaků.
- Byly provedeny optimalizace výkonu:
- Byla snížena zátěž na CPU při fixaci transakcí omezených přístupem pro čtení;
- Bylo vylepšeno určení operací spojení (JOIN), které nevracejí řádky, protože jedna nebo více tabulek neobsahuje žádné řádky;
- Bylo vyloučeno provádění skalárních poddotazů, které nemají vliv na výsledek;
- Byla zrychlena práce okénkových funkcí v dotazech s výrazem „BETWEEN 😡 FOLLOWING AND :y FOLLOWING“ a velmi vysokou hodnotou „:y“.
- Byla přidána pragma „PRAGMA wal_checkpoint=NOOP“ a funkce API sqlite3_wal_checkpoint() pro fixaci změn v WAL logu.
- Do API byly přidány funkce sqlite3_set_errmsg() a sqlite3_db_status64().
- Ve verzi SQLite pro JavaScript/WASM byla implementována podpora pro sestavení do formátu WebAssembly s 64bitovými ukazateli.
- Zvýšena odolnost proti poškození databáze v aplikacích, které odstraňují POSIX zámky pomocí volání close().
- Zlepšena podpora platformy VxWorks.
Zdroj: opennet.ru
