Byl vydán SQLite 3.46, lehká databázová SŘBD, která je k dispozici jako připojitelná knihovna. Kód SQLite je distribuován jako veřejné vlastnictví (public domain), což znamená, že může být používán bez jakýchkoliv omezení a bezplatně k jakýmkoliv účelům. Finanční podporu vývojářům SQLite zajišťuje speciálně vytvořený konsorcium.
Hlavní změny:
- Byla přidána možnost použití oddělovače „_“ v číslech pro přehlednější zobrazení číselných literálů (např. 1_234_567).
- Byla přidána SQL funkce json_pretty() pro generování čitelnějšího výstupu ve formátu JSON, formátovaného s použitím odsazení bloků.
- Rozšířeny možnosti operace „PRAGMA optimize“, která provádí optimalizaci databáze a všech datových schémat pro dosažení nejlepší výkonnosti dotazů. Byl zaveden automaticky aplikovaný limit na dobu analýzy databáze, který vylučuje příliš dlouhou dobu zpracování velkých databází. Přidána nová bitová maska „PRAGMA optimize(0x10000)“ pro samostatnou kontrolu aktualizací ve všech tabulkách. Zajištěna automatická opakovaná analýza tabulek, ve kterých chybí záznamy sqlite_stat1.
- Do SQL funkce strftime() byla přidána podpora pro substituce %G, %g, %U a %V.
- Do SQL funkcí pro práci s daty a časem byly přidány nové modifikátory ceiling a floor pro řízení zpracování nejednoznačných dat, které vznikají při operacích posunu dat o určité množství měsíců nebo let. Zajištěno ignorování modifikátorů utc a localtime, pokud má SQLite informace o tom, že čas je již v zobrazení UTC nebo localtime.
- Byly provedeny optimalizace ve vyhledávači dotazů. Pro výrazy INSERT obsahující tisíce hodnot v sekci VALUES je standardně povolena optimalizace „VALUES-as-coroutine“, která zrychluje analýzu těchto výrazů přibližně dvakrát a v polovině snižuje spotřebu paměti. Pro dotazy ve formátu „SELECT count(DISTINCT col) FROM …“ je povoleno použití indexů, i když velikost záznamů v indexu není menší než záznamy v tabulce. Zlepšena logika určení situací, kdy jsou v argumentech SQL funkcí uvedeny konstanty. Zajištěna aplikace optimalizace push-down pro výrazy WHERE obsahující nesouvisející poddotazy.
- Změněna logika zpracování přetečení zásobníku – při zjištění nedostatku paměti pro zásobník parser nyní zkouší alokovat další paměť z haldy místo vypsání chyby „přetečení zásobníku parseru“.
- V JSON je povoleno zadávání řídicích znaků v řetězcích JSON5. Změněna logika operátorů „->“ a „>>“, když pravá část obsahuje pouze číslice (podobně jako v PostgreSQL, tyto operandy jsou nyní zpracovávány jako řetězec).
- V hodnotě DEFAULT ve sloupcích tabulek je povoleno zadávání velkých hexadecimálních literálů.
Zdroj: opennet.ru
