Bylo vydáno vydání SQLite 3.35 a v této nové verzi tohoto správce databází jsou zvýrazněny doplňky matematické funkce, stejně jako podpora výrazu ALTER TABLE DROP COLUMN pro vynechání sloupců z tabulky, vylepšené operace a další.
Pro ty, kteří neznají balíček SQLite je to lehký DBMS, navržený jako knihovna pluginů. Kód SQLite je distribuován jako public domain, to znamená, že jej lze použít bez omezení a bezplatně pro jakýkoli účel.
Hlavní nové funkce SQLite 3.35
Jak bylo uvedeno na začátku, v této nové verzi přidány integrované matematické funkce (log2 (), cos (), tg (), exp (), ln (), pow () atd.) které lze použít v SQL. Chcete-li povolit integrované funkce, je vyžadováno sestavení s možností „-DSQLITE_ENABLE_MATH_FUNCTIONS“.
Výraz „ALTER TABLE DROP COLUMN“ nyní podporuje přetažení sloupců z tabulky a odstranit data dříve uložená v tomto sloupci.
Provádění operace UPSERT (přidat nebo upravit), což vám umožní použít výrazy jako „VLOŽTE NA KONFLIKTU NIC / UPDATE“ k ignorování chyby nebo k provedení aktualizace namísto vložení, pokud není možné přidat data pomocí „VLOŽIT“ (například pokud záznam, lze provést UPDATE namísto VLOŽIT).
V nové verzi je povoleno zadat několik bloků «V KONFLIKTU«, Který bude zpracován v pořádku. V posledním bloku „ON CONFLICT“ je povoleno neurčit parametr definice konfliktu pro použití „DO UPDATE“.
Operace DELETE, INSERT a UPDATE podporují výraz RETURNING, které lze použít k zobrazení obsahu odstraněného, vloženého nebo upraveného záznamu. Například „vložit do ... vracející se ID“ vrátí přidaný identifikátor řádku a „aktualizovat ... nastavit cenu = cena * 1.10 vracející se cena“ vrátí hodnotu aktualizované ceny.
Pro zobecněné tabulkové výrazy (Common Table Expression, CTE), které umožňují použití dočasně pojmenovaných výsledkových sad, pomocí WITH požádal operátora, schválil výběr režimů «MATERIALIZED» a «NOT MATERIALIZED».
- „MATERIALIZOVÁNO“ znamená uložit do mezipaměti dotaz zadaný v zobrazení v samostatné fyzické tabulce s následným získáním dat z této tabulky.
- A při nastavení „NOT MATERIALIZED“ budou prováděny opakované dotazy při každém přístupu k zobrazení. Zpočátku byla SQLite implicitně nastavena na „NOT MATERIALIZED“, ale nyní byla změněna na „MATERIALIZED“ pro CTE používané více než jednou.
Z dalších změn které vyčnívají z této nové verze:
- Snížená spotřeba paměti při provádění operací VACUUM pro databáze, které obsahují velmi velké hodnoty s typy TEXT nebo BLOB.
- Byla provedena práce na zvýšení výkonu optimalizátoru a plánovače dotazů.
- Byly přidány optimalizace při použití funkcí min a max s výrazem „IN“.
- Provedení příkazu EXISTS bylo zrychleno.
- Je implementováno rozšíření poddotazů výrazů UNION ALL použitých v JOIN.
- Index používaný pro výrazy NENÍ NULL.
- Pro sloupce s příznakem „NOT NULL“ byla poskytnuta konverze „x IS NULL“ a „x IS NOT NULL“ na FALSE nebo TRUE.
- Kontrola cizího klíče v UPDATE je přeskočena, pokud operace nezmění sloupce spojené s cizím klíčem.
- Přesunutí částí klauzule WHERE do poddotazů obsahujících funkce okna je povoleno, pokud jsou tyto části omezeny na práci s konstantami a kopiemi výrazů klauzule "PARTITION BY" použitých ve funkcích okna.
Změny rozhraní příkazového řádku:
- Přidán příkaz „.filectrl data_version“.
- Příkazy „.once“ a „.output“ přidaly podporu pro předávání výstupu do volaného řadiče pomocí nepojmenovaných kanálů („|“).
- Příkaz ".stats" přidal argumenty "stmt" a "vmstep" pro zobrazení statistik na počítačích a výrazech virtuálních počítačů.
Konečně pokud máte zájem o tom vědět více o této nové verzi SQLite můžete zkontrolovat podrobnosti přechodem na následující odkaz.