Bolo vydané vydanie SQLite 3.35 a v tomto novom vydaní tohto správcu databáz sú zvýraznené dodatky k matematickým funkciám, ako aj podpora výrazu ALTER TABLE DROP COLUMN na vypúšťanie stĺpcov z tabuľky, vylepšené operácie a ďalšie.
Pre tých, ktorí balík SQLite nepoznajú je to odľahčený DBMS, navrhnutý ako knižnica doplnkov. Kód SQLite je distribuovaný ako public domain, to znamená, že ho možno použiť bez obmedzení a bezplatne na akýkoľvek účel.
Hlavné nové funkcie programu SQLite 3.35
Ako už bolo spomenuté na začiatku, v tejto novej verzii pridané zabudované matematické funkcie (log2 (), cos (), tg (), exp (), ln (), pow () atď.) ktoré môžu byť použité v SQL. Na povolenie vstavaných funkcií je potrebné zostavenie s voľbou „-DSQLITE_ENABLE_MATH_FUNCTIONS“.
Výraz „ALTER TABLE DROP COLUMN“ teraz podporuje vypúšťanie stĺpcov z tabuľky a odstráňte údaje predtým uložené v tomto stĺpci.
Implementácia operácie UPSERT (pridať alebo upraviť), čo vám umožňuje používať výrazy ako „INSERT ON CONFLICT DO NIC / UPDATE“ na ignorovanie chyby alebo vykonanie aktualizácie namiesto vkladania, ak to nie je možné, pridania údajov pomocou „INSERT“ (napríklad ak je záznam, UPDATE je možné vykonať namiesto VLOŽIŤ).
V novej verzii je dovolené určiť niekoľko blokov «V KONFLIKTE«, Ktoré budú spracované v poriadku. V poslednom bloku „ON CONFLICT“ je povolené nešpecifikovať parameter definície konfliktu, aby sa mohol použiť „DO UPDATE“.
Operácie DELETE, INSERT a UPDATE podporujú výraz RETURNING, ktoré sa dajú použiť na zobrazenie obsahu vymazaného, vloženého alebo upraveného záznamu. Napríklad „vložiť do ... vracajúce sa ID“ vráti identifikátor pridaného riadku a „aktualizovať ... nastaviť cenu = cena * 1.10 vrátená cena“ vráti hodnotu aktualizovanej ceny.
Pre zovšeobecnené tabuľkové výrazy (Common Table Expression, CTE), ktoré umožňujú použitie časovo pomenovaných výsledkových sád, pomocou WITH požiadal operátora, schválil výber režimov «MATERIALIZOVANÉ» a «NIE MATERIÁLIZOVANÉ».
- „MATERIALIZOVANÉ“ znamená ukladanie do pamäti dotazu špecifikovaného v zobrazení v samostatnej fyzickej tabuľke s následným načítaním údajov z tejto tabuľky.
- A pri nastavení „NIE JE MATERIÁLNE“ sa budú pri každom prístupe k zobrazeniu vykonávať opakované dotazy. Spočiatku bola pre SQLite predvolená hodnota „NOT MATERIALIZED“, ale teraz bola zmenená na „MATERIALIZED“ pre CTE používané viac ako raz.
Z ďalších zmien ktoré vyčnievajú z tejto novej verzie:
- Znížená spotreba pamäte pri vykonávaní VAKUOVÝCH operácií pre databázy, ktoré obsahujú veľmi veľké hodnoty s typmi TEXT alebo BLOB.
- Pracovalo sa na zvýšení výkonu optimalizátora a plánovača dotazov.
- Optimalizácie boli pridané pri použití funkcií min a max s výrazom „IN“.
- Vykonanie príkazu EXISTUvalo sa zrýchlené.
- Je implementované rozšírenie poddotazov výrazov UNION ALL použitých v JOIN.
- Index používaný pre výrazy NIE JE NULL.
- Pre stĺpce s príznakom „NIE JE NULL“ bola poskytnutá konverzia „x IS NULL“ a „x IS NOT NULL“ na FALSE alebo TRUE.
- Kontrola cudzím kľúčom v UPDATE sa preskočí, ak operácia nezmení stĺpce spojené s cudzím kľúčom.
- Presun častí klauzuly WHERE do poddotazov obsahujúcich funkcie okna je povolený, ak sú tieto časti obmedzené na prácu s konštantami a kópiami výrazov klauzuly „PARTITION BY“ použitých vo funkciách okna.
Zmeny v rozhraní príkazového riadku:
- Pridaný príkaz „.filectrl data_version“.
- Príkazy „.once“ a „.output“ pridali podporu pre prenos výstupu do volaného radiča pomocou nepomenovaných rúrok („|“).
- Príkaz ".stats" pridal argumenty "stmt" a "vmstep" na zobrazenie štatistík na počítadlách a výrazoch virtuálneho počítača.
Konečne ak máte záujem dozvedieť sa o tom viac o tejto novej verzii servera SQLite môžete skontrolovať podrobnosti prechodom na nasledujúci odkaz.