Byl zveřejněn release SQLite 3.53, lehkého RDBMS, dodávaného jako dynamická knihovna. Verze 3.52 byla zrušena. Kód SQLite je vyvíjen jako veřejné vlastnictví, což znamená, že může být používán bez omezení a zdarma pro jakékoli účely. Finanční podporu vývojářů SQLite poskytuje speciálně vytvořený konsorcium.
Hlavní změny:
- Byl opraven problém, který vedl k poškození databáze. Problém byl přítomen od verze SQLite 3.7.0 (2010), týkal se databází v režimu WAL (Write-Ahead Logging) a projevoval se kvůli stavu závodu při současném otevírání dvou nebo více připojení k databázi, které se pokoušely zapisovat nebo potvrzovat transakce ve stejném instanci databáze. Tvrdí se, že k selhání vedoucí události se vyskytuje velmi zřídka a podařilo se jej zopakovat pouze ve speciálně vytvořeném testovacím scénáři.
- V příkazu „ALTER TABLE“ je nyní povoleno odstraňovat kontroly „NOT NULL“ a „CHECK“.
- Byl přidán příkaz „REINDEX EXPRESSIONS“ pro přestavění indexů na základě výrazů, kde jako prvek indexu se používá funkce na sloupci nebo operace na sloupcích. Příkaz lze použít pro obnovu neplatných indexů.
- Uvnitř dočasných triggerů, vytvářených příkazem „CREATE TEMP TRIGGER“ a aplikovaných na tabulky v jiných databázích, je povolena změna tabulek nebo dotazy na data z tabulek.
- V příkazu „VACUUM INTO“ při zadávání cílového souboru prostřednictvím URL bylo implementováno použití parametru „reserve=N“ pro určení počtu vytvářených záložních kopií databáze.
- Byly implementovány nové SQL funkce json_array_insert() a jsonb_array_insert() pro vkládání prvků do JSON polí.
- Byla přidána a aktivována v utility příkazového řádku knihovna QRF (Query Result Formatter) pro formátování výsledků vykonávání SQL dotazů do čitelného formátu.
- Změny v utility příkazového řádku:
- Příkaz „.mode“ byl výrazně rozšířen.
- Bylo vylepšeno generování výstupu, například byla výchozí zobrazení ohraničení zahrnuta a číselné hodnoty se nyní zarovnávají doprava při tabulkovém výstupu.
- Zajištěno ignorování znaků „;“ po příkazech.
- Obsah zadaných souborů v příkazovém řádku s příponami *.sql a *.txt se nyní čte a interpretuje jako sady SQL výrazu a dot příkazů.
- Do týmu „.timer“ byla přidána podpora hodnoty „once“ pro použití časovače pouze pro následující SQL výraz.
- Do příkazu „.progress“ byla přidána volba „—timeout S“ pro vynucené přerušení SQL výrazu po uplynutí časového limitu.
- Ve příkazu „.indexes“ bylo změněno chování šablon, které se nyní aplikují na názvy indexů, nikoli na názvy indexovaných tabulek.
- Byly provedeny optimalizace v plánovači dotazů, které urychlily práci se slučováním tabulek a operacemi EXCEPT, INTERSECT a UNION.
- Byla zvýšena výkonnost funkcí pro převod čísel s plovoucí desetinnou čárkou do textového formátu.
- Do implementace, kompilované do prostředního kódu WebAssembly, byla přidána VFS „opfs-wl“, která je shodná s VFS „opfs“, ale využívá rozhraní Web Locks pro práci se zámky.
- Do utility sqlite3_rsync byla přidána volba „-p|—port“.
- Podpora platformy Windows RT byla ukončena.
Zdroj: opennet.ru
