Vydání DBMS SQLite 3.31 s podporou generovaných sloupců

Byl zveřejněn vydání SQLite 3.31.0, lehkého databázového systému ve formě dynamické knihovny. Kód SQLite je distribuován jako veřejné vlastnictví (public domain), tedy může být používán bez omezení a bezúplatně pro jakékoli účely. Finanční podporu vývojářů SQLite poskytuje speciálně vytvořený konsorcium, do kterého patří společnosti jako Adobe, Oracle, Mozilla, Bentley a Bloomberg.

Hlavní změny:

  • Byla přidána podpora generovaných sloupců (vypočítávaných sloupců), které umožňují při vytváření tabulky určit sloupcový hodnotu, která se automaticky počítá na základě obsahu jiného sloupce. Generované sloupce mohou být jak virtuální (tvořeny za běhu při každém přístupu), tak i uloženy v databázi (uchovávány při každé aktualizaci souvisejících sloupců). Obsah generovaných sloupců je dostupný pouze v režimu čtení (změna se provádí pouze modifikací hodnoty v jiném sloupci, který se podílí na výpočtu). Například:

    VYTVOŘIT TABULKU t1 (
    a INTEGER PRIMARY KEY,
    b INT,
    c TEXT,
    d INT GENEROVÁNO VŽDY JAKO (a*abs(b)) VIRTUÁLNÍ,
    e TEXT GENEROVÁNO VŽDY JAKO (substr(c,b,b+1)) ULOŽENÉ
    );

  • Byly přidány PRAGMA trusted_schema, nastavení SQLITE_DBCONFIG_TRUSTED_SCHEMA a kompilátorová volba „-DSQLITE_TRUSTED_SCHEMA“, které umožňují řídit zahrnutí ochrany útoků prostřednictvím modifikace schématu dat v databázi. Při aktivní ochraně je omezeno používání SQL funkcí (neoznačených jako SQLITE_INNOCUOUS) v spouštích, pohledech, kontrolních výrazech a DEFAULT, indexech a generovaných sloupcích. Také je zakázáno používání virtuálních tabulek ve spouštích a pohledech, pokud virtuální tabulka není výslovně deklarována s flagem SQLITE_VTAB_INNOCUOUS.
  • Byla implementována možnost přiřazení určitým aplikacím SQL funkcím vlastností SQLITE_INNOCUOUS (neškodné funkce, které nezávisí na externích parametrech a nemohou být použity k provádění škodlivých činů) a SQLITE_DIRECTONLY (pouze přímé volání v SQL dotazech, bez možnosti použití ve spouštích, pohledech a schématech struktury dat);
  • Byl přidán modul uuid s implementací funkcí pro zpracování UUID (RFC-4122);
  • Byla přidána PRAGMA hard_heap_limit a funkce sqlite3_hard_heap_limit64() pro řízení maximální velikosti haldy;
  • V PRAGMA function_list byl přidán výstup typu, vlastností a počtu argumentů každé funkce;
  • Do virtuální tabulky DBSTAT přidán režim agregace dat;
  • Do sqlite3_open_v2() byla implementována možnost SQLITE_OPEN_NOFOLLOW, která umožňuje zakázat otevírání symbolických odkazů;
  • Pro argument cest, předávaný v JSON funkcích, byla přidána podpora notace polí „#-N“;
  • V systému distribuce paměti lookaside Byla implementována podpora dvou oddělených paměťových poolů, z nichž každý může být použit pro alokaci bloků různých velikostí (rozdělení umožňuje rozšíření použití systému lookaside a současně snižuje velikost alokovaného bufferu na každé spojení z 120 na 48 KB);
  • Podpora PRAGMA byla ukončena legacy_file_format, která byla nekompatibilní s VACUUM, generovanými sloupci a klesajícími indexy (podpora zastaralého formátu může být obnovena pomocí příznaku SQLITE_DBCONFIG_LEGACY_FILE_FORMAT v sqlite3_db_config()).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster