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

zveřejněno uvolnění SQLite 3.31.0, lehký DBMS navržený jako zásuvná knihovna. Kód SQLite je distribuován jako veřejná doména, tzn. lze používat bez omezení a bezplatně pro jakýkoli účel. Finanční podporu pro vývojáře SQLite zajišťuje speciálně vytvořené konsorcium, které zahrnuje společnosti jako Adobe, Oracle, Mozilla, Bentley a Bloomberg.

hlavní změny:

  • Přidána podpora generované sloupce (vypočítané sloupce), které umožňují definovat sloupec při vytváření tabulky, jejíž hodnota se automaticky vypočítá na základě obsahu jiného sloupce. Vygenerované sloupce mohou být buď virtuální (generované za běhu při každém přístupu) nebo uložené v databázi (uložené při každé aktualizaci souvisejících sloupců). Obsah vygenerovaných sloupců je dostupný pouze v režimu čtení (změny se provádějí pouze úpravou hodnoty v jiném sloupci zahrnutém do výpočtu). Například:

    VYTVOŘIT TABULKU t1(
    PRIMÁRNÍ KLÍČ INTEGER,
    b INT,
    c TEXT,
    d INT GENEROVANÝ VŽDY JAKO (a*abs(b)) VIRTUÁLNÍ,
    e TEXT GENEROVÁN VŽDY JAKO (substr(c,b,b+1)) ULOŽENO
    );

  • Přidáno PRAGMA důvěryhodné_schéma, nastavení SQLITE_DBCONFIG_TRUSTED_SCHEMA a možnost sestavení „-DSQLITE_TRUSTED_SCHEMA“, která vám umožní řídit zahrnutí ochrany proti útoky úpravou datového schématu v databázi. Aktivní ochrana omezuje použití funkcí SQL (neoznačených SQLITE_INNOCUOUS) ve spouštěčích, pohledech, příkazech CHECK a DEFAULT, indexech a generovaných sloupcích. Použití virtuálních tabulek ve spouštěčích a pohledech je také zakázáno, pokud není virtuální tabulka explicitně deklarována s příznakem SQLITE_VTAB_INNOCUOUS.
  • Implementována možnost přiřadit vlastnosti funkcím SQL definovaným v aplikacích SQLITE_INNOCUOUS (neškodné funkce, které nejsou závislé na vnějších parametrech a nelze je použít k provádění škodlivých akcí) a SQLITE_DIRECTONLY (pouze přímé volání v SQL dotazech, bez možnosti použití ve triggerech, pohledech a diagramech datové struktury);
  • Přidán modul Nový s implementací funkcí pro zpracování UUID (RFC-4122);
  • Přidáno PRAGMA hard_heap_limit a funkce sqlite3_hard_heap_limit64() pro kontrolu maximální velikosti haldy;
  • V PRAGMĚ seznam funkcí přidaný výstup typu, vlastností a počtu argumentů každé funkce;
  • Do virtuální tabulky DBSTAT přidal režim agregace dat;
  • sqlite3_open_v2() implementuje volbu SQLITE_OPEN_NOFOLLOW, která umožňuje zakázat otevírání symbolických odkazů;
  • Pro argumentaci PATH, předáno funkcím JSON, přidána podpora pro zápis pole „#-N“;
  • V systému distribuce paměti rozhledna byla implementována podpora dvou samostatných paměťových fondů, z nichž každý lze použít k alokaci bloků různých velikostí (separace umožňuje rozšířit použití systému lookaside a zároveň snížit velikost vyrovnávací paměti přidělené každému připojení ze 120 na 48 KB);
  • Podpora PRAGMA byla ukončena legacy_file_format, která byla nekompatibilní s VACUUM, generované sloupce a sestupné indexy (podporu starších formátů lze vrátit pomocí příznaku SQLITE_DBCONFIG_LEGACY_FILE_FORMAT v sqlite3_db_config()).

Zdroj: opennet.ru

Přidat komentář