Izdaja DBMS SQLite 3.31 s podporo za generirane stolpce

Objavljeno sprostitev SQLite 3.31.0, lahek DBMS, zasnovan kot knjižnica vtičnikov. Koda SQLite se distribuira kot javna domena, tj. se lahko uporablja brez omejitev in brezplačno za kateri koli namen. Finančno podporo razvijalcem SQLite zagotavlja posebej ustvarjen konzorcij, ki vključuje podjetja, kot so Adobe, Oracle, Mozilla, Bentley in Bloomberg.

Glavni Spremembe:

  • Dodana podpora ustvarjenih stolpcev (izračunani stolpci), ki vam omogočajo, da definirate stolpec, ko ustvarite tabelo, katere vrednost se samodejno izračuna na podlagi vsebine drugega stolpca. Ustvarjeni stolpci so lahko navidezni (generirani sproti z vsakim dostopom) ali shranjeni v zbirki podatkov (shranjeni ob vsaki posodobitvi povezanih stolpcev). Vsebina ustvarjenih stolpcev je na voljo samo v načinu branja (spremembe se izvedejo le s spremembo vrednosti v drugem stolpcu, vključenem v izračun). Na primer:

    USTVARI TABELO t1(
    CELO ŠTEVILO PRIMARNI KLJUČ,
    b INT,
    c BESEDILO,
    d INT GENERIRANO VEDNO KOT (a*abs(b)) VIRTUALNO,
    e BESEDILO, USTVARJENO VEDNO KOT (substr(c,b,b+1)) SHRANJENO
    );

  • Dodana PRAGMA zaupanja vredna_shema, nastavitev SQLITE_DBCONFIG_TRUSTED_SCHEMA in možnost sestavljanja “-DSQLITE_TRUSTED_SCHEMA”, ki vam omogoča nadzor nad vključitvijo zaščite pred napadi s spremembo podatkovne sheme v bazi podatkov. Aktivna zaščita omejuje uporabo funkcij SQL (ki niso označene kot SQLITE_INNOCUOUS) v sprožilcih, pogledih, stavkih CHECK in DEFAULT, indeksih in generiranih stolpcih. Uporaba navideznih tabel v sprožilcih in pogledih je tudi onemogočena, razen če je navidezna tabela izrecno deklarirana z zastavico SQLITE_VTAB_INNOCUOUS.
  • Implementirana možnost dodeljevanja lastnosti funkcijam SQL, definiranim v aplikacijah SQLITE_INNOCUOUS (neškodljive funkcije, ki niso odvisne od zunanjih parametrov in jih ni mogoče uporabiti za izvajanje zlonamernih dejanj) in SQLITE_DIRECTONLY (samo neposredni klic v SQL poizvedbah, brez možnosti uporabe v prožilcih, pogledih in diagramih strukture podatkov);
  • Dodan modul uuid z implementacijo funkcij za obdelavo UUID (RFC-4122);
  • Dodana PRAGMA hard_heap_limit in funkcijo sqlite3_hard_heap_limit64() za nadzor največje velikosti kopice;
  • V PRAGMI seznam_funkcij dodan izpis tipa, lastnosti in števila argumentov vsake funkcije;
  • V virtualno tabelo DBSTAT dodano način združevanja podatkov;
  • sqlite3_open_v2() implementira možnost SQLITE_OPEN_NOFOLLOW, ki omogoča onemogočanje odpiranja simbolnih povezav;
  • Za argument POT, posredovan funkcijam JSON, dodana podpora za matrični zapis »#-N«;
  • V sistemu distribucije pomnilnika lookaside implementirana je bila podpora za dve ločeni pomnilniški področji, od katerih je vsako mogoče uporabiti za dodeljevanje blokov različnih velikosti (ločevanje vam omogoča, da razširite uporabo sistema lookaside, hkrati pa zmanjšate velikost medpomnilnika, dodeljenega vsaki povezavi, s 120 na 48 KB);
  • Podpora PRAGMA je bila ukinjena podedovani_format_datoteke, ki je bil nezdružljiv z VACUUM, generiranimi stolpci in padajočimi indeksi (podporo za stari format je mogoče vrniti prek zastavice SQLITE_DBCONFIG_LEGACY_FILE_FORMAT v sqlite3_db_config()).

Vir: opennet.ru

Dodaj komentar