# SQLite 3.53: klíčové opravy chyb a nové SQL funkce
Vyšla verze SQLite 3.53 — kompaktní vestavitelné databázové jádro napsané v C v public domain. Knihovna je vhodná pro integraci do aplikací bez licenčních omezení. Předchozí vydání 3.51 pochází z listopadu 2025, verze 3.52 byla zrušena. Konzorcium zajišťuje financování vývoje.
Tato verze se zaměřuje na stabilitu WAL režimu, rozšíření ALTER TABLE a nástrojů pro JSON. Optimalizace dotazů zvyšují výkon slučování tabulek a operací UNION/INTERSECT/EXCEPT.
Kritická oprava poškození databáze v WAL
Byla opravena chyba, která vedla k poškození databáze v režimu Write-Ahead Logging. Problém existoval od roku 2010 (SQLite 3.7.0) a projevoval se při závodní podmínce: několik připojení současně otevře databázi a pokusí se zapsat/komitovat transakce do jednoho souboru. Selhání se reprodukovalo zřídka, pouze v testovacím scénáři.
Tato oprava je kritická pro vícevláknové aplikace s WAL, kde je paralelní přístup standardem. Vývojáři střední a vyšší úrovně ocení odstranění skryté zranitelnosti bez regrese.
Rozšíření DDL: ALTER TABLE a REINDEX EXPRESSIONS
Příkaz ALTER TABLE nyní podporuje odstranění omezení NOT NULL a CHECK. Užitečné při evoluci schématu bez úplné přestavby tabulek.
Nový příkaz REINDEX EXPRESSIONS přestavuje indexy na výrazech (funkce nad sloupci nebo operace). Používá se k obnovení zastaralých indexů po změnách dat.
Příklad scénáře:
- Index na UPPER(column) degraduje při aktualizacích.
- REINDEX EXPRESSIONS(name) obnoví integritu.
Dočasné triggery (CREATE TEMP TRIGGER) na tabulkách z jiných databází nyní mohou modifikovat tabulky nebo číst data.
JSON funkce a vylepšení VACUUM
Byly přidány json_array_insert() a jsonb_array_insert() pro vkládání prvků do JSON polí s zachováním pořadí a typů.
VACUUM INTO s URL cílem podporuje reserve=N — určuje počet záložních kopií databáze.
Seznam nových možností JSON:
- json_array_insert(json, path, value): vkládání podle cesty.
- jsonb_array_insert(jsonb, path, value): binární varianta pro výkon.
- Podpora pozičního a pojmenovaného vkládání.
Vylepšení CLI nástroje sqlite3
Knihovna QRF (Query Result Formatter) je integrována pro čitelný výstup výsledků dotazů.
Změny v příkazech:
.moderozšířena o nové formáty (tabulky s rámečky jako výchozí).- Čísla se zarovnávají doprava v tabulkovém výstupu.
- Ignorování
;po dot-příkazech. - Soubory .sql/.txt z příkazové řádky se spouštějí jako SQL + dot-příkazy.
.timer once— měření času pouze pro následující dotaz..progress -timeout S— přerušení podle timeoutu..indexesaplikuje vzory na názvy indexů, ne tabulek.
Tyto funkce urychlují ladění a analýzu v terminálu.
Optimalizace a změny pro platformy
Plánovač dotazů je optimalizován pro slučování tabulek a EXCEPT/INTERSECT/UNION — růst výkonu na velkých datových sadách.
Zrychleno převádění float na text (operace podobné sprintf).
WebAssembly sestavení: nový VFS opfs-wl používá Web Locks API pro blokování, podobně jako opfs.
sqlite3_rsync: volba -p/--port pro síťový rsync.
Ukončena podpora Windows RT.
Výkon float-to-text vzrostl díky vektorizaci v horkých cestách.
Co je důležité
- Opravena vzácná, ale fatální závodní podmínka v WAL s vícepřipojení přístupem.
- ALTER TABLE odstraňuje NOT NULL/CHECK; REINDEX EXPRESS pro indexy založené na výrazech.
- json_array_insert() a CLI s QRF pro JSON/ladění.
- Optimalizace UNION/EXCEPT a formátování floatů.
- WebAssembly: opfs-wl VFS s Web Locks.
— Editorial Team
Zatím žádné komentáře.