Vydání SQLite 3.53

Byl vydán SQLite 3.53, odlehčený systém pro správu databází implementovaný jako pluginní knihovna. Verze 3.52 byla zrušena. Kód SQLite je distribuován ve veřejné doméně, což znamená, že jej lze používat bez omezení a bez poplatků k jakémukoli účelu. Speciálně vytvořené konsorcium poskytuje finanční podporu vývojářům SQLite.

Hlavní změny:

  • Byl opraven problém s poškozením databáze. Problém, který se vyskytoval od verze SQLite 3.7.0 (2010), ovlivňoval databáze v režimu WAL (Write-Ahead Logging) a vyskytoval se kvůli konfliktu závodu, ke kterému docházelo při současném otevření dvou nebo více databázových připojení, která se pokoušela zapisovat nebo potvrzovat transakce do jedné instance databáze. Výsledný pád je údajně extrémně vzácný a bylo možné jej reprodukovat pouze pomocí speciálně vytvořeného testovacího scénáře.
  • V příkazu ALTER TABLE je povoleno odstranit kontroly NOT NULL a CHECK.
  • Byl přidán příkaz „REINDEX EXPRESSIONS“ pro opětovné sestavení indexů na základě výrazů, které jako prvek indexu používají sloupcovou funkci nebo sloupcové operace. Tento příkaz lze použít k opravě poškozených indexů.
  • Dočasné spouštěče vytvořené příkazem CREATE TEMP TRIGGER a aplikované na tabulky v jiných databázích umožňují úpravu tabulek nebo dotazování dat z tabulek.
  • V příkazu „VACUUM INTO“ se při zadávání cílového souboru pomocí URL nyní používá parametr „reserve=N“ k určení počtu záloh databáze, které se mají vytvořit.
  • Implementovány nové SQL funkce json_array_insert() a jsonb_array_insert() pro vkládání prvků do JSON polí.
  • Byla přidána knihovna QRF (Query Result Formatter), která se používá v příkazovém řádku k formátování výsledků SQL dotazů do čitelné formy.
  • Změny v nástroji příkazového řádku:
    • Příkaz „mode“ byl výrazně rozšířen.
    • Generování výstupu bylo vylepšeno, například vykreslování okrajů je ve výchozím nastavení povoleno a číselné hodnoty jsou nyní v tabulkovém výstupu zarovnány vpravo.
    • Zajištěno, aby symboly ";" za příkazy byly ignorovány.
    • Obsah souborů s příponami *.sql a *.txt zadanými na příkazovém řádku je nyní čten a interpretován jako sady výrazů SQL a tečkových příkazů.
    • Příkaz „.timer“ nyní podporuje hodnotu „once“, aby se časovač aplikoval pouze na další příkaz SQL.
    • Do příkazu „.progress“ byla přidána volba „--timeout S“, která vynutí ukončení příkazu SQL po uplynutí časového limitu.
    • Chování vzorů v příkazu „.indexes“ se změnilo tak, že se nyní používají pro názvy indexů, nikoli pro názvy indexovaných tabulek.
  • V plánovači dotazů byly provedeny optimalizace, které zrychlily slučování tabulek a operace EXCEPT, INTERSECT a UNION.
  • Vylepšený výkon funkcí pro převod čísel s plovoucí desetinnou čárkou do textové reprezentace.
  • Implementace zkompilovaná do mezikódu WebAssembly byla aktualizována o VFS „opfs-wl“, který je identický s VFS „opfs“, ale pro zpracování zámků používá rozhraní Web Locks API.
  • Do utility sqlite3_rsync byla přidána volba „-p|--port“.
  • Podpora platformy Windows RT skončila.

Zdroj: opennet.ru

Přidat komentář