Izdanje DBMS SQLite 3.31 s podrškom za generirane stupce

Objavljeno puštanje SQLite 3.31.0, lagani DBMS dizajniran kao plug-in biblioteka. SQLite kod se distribuira kao javna domena, tj. mogu se koristiti bez ograničenja i besplatno za bilo koju svrhu. Financijsku potporu SQLite programerima pruža posebno stvoreni konzorcij koji uključuje tvrtke kao što su Adobe, Oracle, Mozilla, Bentley i Bloomberg.

Glavni promjena:

  • Dodana podrška generirani stupci (izračunati stupci), koji vam omogućuju da definirate stupac kada kreirate tablicu čija se vrijednost automatski izračunava na temelju sadržaja drugog stupca. Generirani stupci mogu biti virtualni (generirani u hodu sa svakim pristupom) ili pohranjeni u bazi podataka (spremljeni svaki put kada se povezani stupci ažuriraju). Sadržaj generiranih stupaca dostupan je samo u načinu čitanja (promjene se vrše samo kroz modifikaciju vrijednosti u drugom stupcu uključenom u izračun). Na primjer:

    KREIRAJ TABLICU t1(
    PRIMARNI CIJELI BROJ,
    b INT,
    c TEKST,
    d INT GENERIRAN UVIJEK KAO (a*abs(b)) VIRTUALNO,
    e TEKST SE UVIJEK GENERIRA KAO (substr(c,b,b+1)) POHRANJENO
    );

  • Dodana PRAGMA pouzdana_shema, postavka SQLITE_DBCONFIG_TRUSTED_SCHEMA i opciju sklapanja “-DSQLITE_TRUSTED_SCHEMA”, koja vam omogućuje kontrolu uključivanja zaštite od napad kroz izmjene sheme podataka u bazi podataka. Aktivna zaštita ograničava upotrebu SQL funkcija (koje nisu označene kao SQLITE_INNOCUOUS) u okidačima, prikazima, izjavama CHECK i DEFAULT, indeksima i generiranim stupcima. Upotreba virtualnih tablica u okidačima i pogledima također je onemogućena osim ako je virtualna tablica eksplicitno deklarirana s SQLITE_VTAB_INNOCUOUS zastavom.
  • Implementirana je mogućnost dodjele svojstava SQL funkcijama definiranim u aplikacijama SQLITE_INCOCUOUS (bezopasne funkcije koje ne ovise o vanjskim parametrima i ne mogu se koristiti za izvođenje zlonamjernih radnji) i SQLITE_DIRECTONLY (samo izravni poziv u SQL upitima, bez mogućnosti korištenja u triggerima, pregledima i dijagramima strukture podataka);
  • Dodan modul uuid s implementacijom funkcija za obradu UUID-a (RFC-4122);
  • Dodana PRAGMA hard_heap_limit i funkciju sqlite3_hard_heap_limit64() za kontrolu maksimalne veličine gomile;
  • U PRAGMI popis_funkcija dodan izlaz tipa, svojstava i broja argumenata svake funkcije;
  • U virtualnu tablicu DBSTAT dodano način prikupljanja podataka;
  • sqlite3_open_v2() implementira opciju SQLITE_OPEN_NOFOLLOW, koja vam omogućuje da onemogućite otvaranje simboličkih veza;
  • Za argument PUT, proslijeđeno JSON funkcijama, dodana podrška za "#-N" notaciju polja;
  • U sustavu distribucije memorije vidikovac implementirana je podrška za dva odvojena memorijska skupa, od kojih se svaki može koristiti za dodjelu blokova različitih veličina (odvajanje vam omogućuje da proširite korištenje lookaside sustava, dok smanjujete veličinu međuspremnika dodijeljenog svakoj vezi sa 120 na 48 KB);
  • PRAGMA podrška je ukinuta naslijeđeni_format_datoteke, koji je bio nekompatibilan s VACUUM-om, generiranim stupcima i padajućim indeksima (podrška naslijeđenog formata može se vratiti preko oznake SQLITE_DBCONFIG_LEGACY_FILE_FORMAT u sqlite3_db_config()).

Izvor: opennet.ru

Dodajte komentar