9. apríla bol vydaný 3.53.0 kompaktný multiplatformový integrovaný DBMS. SQLite. Kód projektu je napísaný v jazyku C a je šírený ako verejný majetok (public domain).
Zmeny:
- Opravená chyba Chyba poškodenia databázy spôsobená resetovaním WAL.. Pozri predchádzajúcu správu. SQLite 3.51.3 s opravou možného poškodenia databázy v režime WAL.
- Pridaná knižnica pre formátovanie výsledkov SQL dotazov. Formátovač výsledkov dotazov (QRF) na zabezpečenie lepšej čitateľnosti na obrazovke s pevným písmom.
- Bola pridaná metóda format k rozhraniu TCL na prístup k QRF z TCL.
- QRF sa teraz používa v konzolovej utilite sqlite na formátovanie výsledkov dotazov, čo zlepšilo ich zobrazenie.
- Nové funkcie jazyka SQL:
- Vylepšené funkčnosti príkazu ALTER TABLE na umožnenie pridávania a odstraňovania obmedzení NOT NULL a CHECK.
- Operátor REINDEX EXPRESSIONS vykonáva znovuindexáciu indexov výrazov. Je užitočné na obnovenie zastaralých indexov výrazov..
- Teraz spúšťače TEMP môžu meniť a/alebo požadovať údaje z tabuliek hlavnej schémy.
- Vylepšený príkaz VACUUM INTO: pri použití ako cieľová adresa názvu súboru vo formáte URI, ktorý obsahuje parameter dotazu reserve=N (kde N je číslo od 0 do 255), sa objem rezervácie pre vytváranú kópiu databázy nastaví na N.
- Pridané nové funkcie SQL:
- Aktualizácie v konzolovej utilite.:
- Významné zlepšenia príkazu .mode.
- Vďaka rozšíreniu QRF vylepšené formátovanie výsledkov. Napríklad čísla sú teraz predvolene zarovnané doprava v režime tabuľkového výstupu..
- Predvolene sa teraz QRF používa pri interaktívnom používaní konzolovej utility na zobrazovanie výsledkov dotazov v blokoch, ktoré sú vytvorené pomocou Unicode blokových znakov, čo zvýšilo čitateľnosť. Zastaralý formát výstupu sa používa pri dávkovom vykonávaní príkazov na zabezpečenie kompatibility.
- Jednoduché (neuzavreté do úvodzoviek) bodkočiarky na konci príkazov s bodkou sú ignorované bez varovania. To je možná nekompatibilita!
- Opravené príkazy .testcase a .check. Teraz skutočne fungujú a používajú sa v skriptoch, ktoré sú súčasťou štandardného balíka testov SQLite zahrnutého v zdrojovom kóde.
- Argumenty príkazového riadku, ktoré zodpovedajú šablónam *.sql alebo *.txt a predstavujú názvy neprázdnych súborov, sa čítajú a interpretujú ako skripty obsahujúce SQL príkazy a/alebo [príkazy s bodkou](https://sqlite.org/cli.html#dotcmd).
- Teraz ako argument príkazu .timer môžete zadať once, aby sa spúšťal časovač len pri vykonaní nasledujúceho SQL dotazu.
- Nový parameter —timeout S príkazu .progress vedie k prerušenie vykonávania SQL dotazov po uplynutí S sekúnd.
- Príkaz .indexes bol upravený tak, že argument PATTERN je teraz porovnávaný s názvom indexu, nie s názvom indexovanej tabuľky (čo robí argument PATTERN naozaj užitočným). Ďalej, do príkazu .indexes bolo pridaných niekoľko nových možností.
- Vylepšenia v C API:
- sqlite3_str_truncate()
- sqlite3_str_free()
- sqlite3_carray_bind_v2()
- Do funkcie sqlite3_prepare_v3() pridaná voľba SQLITE_PREPARE_FROM_DDL, ktorá umožňuje implementáciám virtuálnych tabuliek bezpečne pripravovať SQL príkazy získané zo schémy databázy.
- Pridaná konštanta SQLITE_UTF8_ZT, ktorú môžete použiť ako parameter kódovania vo funkciách sqlite3_result_text64() alebo sqlite3_bind_text64() na označenie, že hodnota je zakódovaná v UTF-8 a končí nulou.
- Do funkcie sqlite3_limit() pridaná voľba SQLITE_LIMIT_PARSER_DEPTH.
- Do funkcie sqlite3_db_config() pridaná voľba SQLITE_DBCONFIG_FP_DIGITS. Pozrite si tiež bod 9b nižšie.
- Vylepšenia plánovača dotazov:
- Pre EXCEPT, INTERSECT a UNION sa vždy používa algoritmus triedenia a zlúčenia, pretože takmer vždy funguje rýchlejšie, ako používanie hash tabuliek.
- Vylepšenia v mechanizme výberu poradia spojenia pri vykonávaní veľkých viacsmerných spojení v hviezdicovej schéme.
- Vylepšená optimalizácia transformácie EXISTS na JOIN tak, aby vložené podmienky JOIN nemuseli byť vo vnútorných cykloch, za predpokladu, že všetky závislosti pre cykly transformácie EXISTS na JOIN sú vo vonkajších cykloch.
- Vylepšená optimalizácia omit-noop-join, aby mohla vynechať reťazec spojení, ktoré nemajú vplyv na výsledok.
- Optimalizácia dotazov, ktoré používajú GROUP BY e1 ORDER BY e2, kde e1 a e2 sú identické, s výnimkou poradia triedenia ASC/DESC, pomocou jedného indexu.
- Optimalizácia operátora DISTINCT vo virtuálnych tabuľkách v prípadoch, keď súbor výsledkov dotazu úplne nezodpovedá podmienke ORDER BY.
- V rozšírenie relácie boli pridané nové rozhrania, ktoré umožňujú aplikácii pridávať zmeny po jednom do objektu sqlite3_changegroup:
- Vylepšenia v konverzii čísel s pohyblivou desatinnou čiarkou ↔ text.
- Kód bol úplne preprogramovaný na zlepšenie výkonu.
- Teraz sa predvolene zaokrúhľovanie vykonáva na 17 presných číslic namiesto 15, ako to bolo vo všetkých predchádzajúcich verziách. Ak je to potrebné, túto hodnotu možno zmeniť pomocou funkcie sqlite3_db_config s voľbou SQLITE_DBCONFIG_FP_DIGITS (pozri bod 6g vyššie).
- Pridaná možnosť samoobnovovania indexu na vyriešenie problému zastaralých indexov výrazov..
- Do konzolovej utilitky sqlite3_rsync bola pridaná voľba -p|—port.
- Podpora bola ukončená Windows RT.
- JavaScript/WASM
- Pridaná VFS opfs-wl, funkčne identická opfs, ale využívajúca Web Locks na zamykanie, čo umožňuje spravodlivejšie rozloženie zámkov ako protokol opfs. opfs-wl vyžaduje funkciu Atomics.waitAsync(), takže pre jej fungovanie sú potrebné novšie verzie prehliadačov ako pre opfs.
Zdroj: linux.org.ru
