Vydanie DBMS SQLite 3.31 s podporou generovaných stĺpcov

publikovaný uvoľnenie SQLite 3.31.0, ľahká DBMS navrhnutá ako zásuvná knižnica. Kód SQLite je distribuovaný ako verejná doména, t.j. môžu byť použité bez obmedzení a bezplatne na akýkoľvek účel. Finančnú podporu pre vývojárov SQLite poskytuje špeciálne vytvorené konzorcium, ktoré zahŕňa spoločnosti ako Adobe, Oracle, Mozilla, Bentley a Bloomberg.

Hlavné zmeny:

  • Pridaná podpora generované stĺpce (vypočítané stĺpce), ktoré umožňujú definovať stĺpec pri vytváraní tabuľky, ktorej hodnota sa automaticky vypočíta na základe obsahu iného stĺpca. Vygenerované stĺpce môžu byť buď virtuálne (generované za chodu pri každom prístupe) alebo uložené v databáze (uložené pri každej aktualizácii súvisiacich stĺpcov). Obsah vygenerovaných stĺpcov je dostupný len v režime čítania (zmeny sa vykonávajú len úpravou hodnoty v inom stĺpci zapojenom do výpočtu). Napríklad:

    VYTVORIŤ TABUĽKU t1(
    PRIMÁRNY KĽÚČ INTEGER,
    b INT,
    c TEXT,
    d INT GENEROVANÉ VŽDY AKO (a*abs(b)) VIRTUÁLNE,
    e TEXT GENEROVANÝ VŽDY AKO (substr(c,b,b+1)) ULOŽENÉ
    );

  • Pridaná PRAGMA dôveryhodná_schéma, nastavenie SQLITE_DBCONFIG_TRUSTED_SCHEMA a možnosť zostavy „-DSQLITE_TRUSTED_SCHEMA“, ktorá vám umožňuje kontrolovať zahrnutie ochrany proti útokov úpravou dátovej schémy v databáze. Aktívna ochrana obmedzuje používanie funkcií SQL (nie sú označené SQLITE_INNOCUOUS) v spúšťačoch, zobrazeniach, príkazoch CHECK a DEFAULT, indexoch a generovaných stĺpcoch. Používanie virtuálnych tabuliek v spúšťačoch a zobrazeniach je tiež zakázané, pokiaľ nie je virtuálna tabuľka explicitne deklarovaná s príznakom SQLITE_VTAB_INNOCUOUS.
  • Implementovaná schopnosť priraďovať vlastnosti SQL funkciám definovaným v aplikáciách SQLITE_INNOCUOUS (neškodné funkcie, ktoré nezávisia od vonkajších parametrov a nemožno ich použiť na vykonávanie škodlivých akcií) a SQLITE_DIRECTONLY (iba priame volanie v SQL dotazoch, bez možnosti použitia v spúšťačoch, pohľadoch a diagramoch dátovej štruktúry);
  • Pridaný modul uuid s implementáciou funkcií na spracovanie UUID (RFC-4122);
  • Pridaná PRAGMA hard_heap_limit a funkciu sqlite3_hard_heap_limit64() kontrolovať maximálnu veľkosť haldy;
  • V PRAGME zoznam funkcií pridaný výstup typu, vlastností a počtu argumentov každej funkcie;
  • Do virtuálnej tabuľky DBSTAT dodal režim agregácie údajov;
  • sqlite3_open_v2() implementuje voľbu SQLITE_OPEN_NOFOLLOW, ktorá vám umožňuje zakázať otváranie symbolických odkazov;
  • Na argumentáciu PATH, odovzdané funkciám JSON, pridaná podpora pre zápis poľa „#-N“;
  • V systéme distribúcie pamäte hľadisko bola implementovaná podpora dvoch oddelených pamäťových oblastí, z ktorých každý môže byť použitý na prideľovanie blokov rôznych veľkostí (separácia umožňuje rozšíriť využitie systému lookaside a zároveň znížiť veľkosť vyrovnávacej pamäte pridelenej každému pripojeniu zo 120 na 48 KB);
  • Podpora PRAGMY bola ukončená legacy_file_format, ktorý bol nekompatibilný s VACUUM, generované stĺpce a zostupné indexy (podporu starého formátu možno vrátiť pomocou príznaku SQLITE_DBCONFIG_LEGACY_FILE_FORMAT v sqlite3_db_config()).

Zdroj: opennet.ru

Pridať komentár