Izdanje DBMS SQLite 3.31 s podrškom za generirane stupce

objavljeno pustiti SQLite 3.31.0, lagani DBMS dizajniran kao biblioteka dodataka. SQLite kod se distribuira kao javna domena, tj. može se koristiti bez ograničenja i besplatno u bilo koju svrhu. Finansijsku podršku za SQLite programere pruža posebno kreiran konzorcij, koji uključuje kompanije kao što su Adobe, Oracle, Mozilla, Bentley i Bloomberg.

Glavni promjena:

  • Dodata podrška generirane kolone (izračunate kolone), koji vam omogućavaju da definišete kolonu kada kreirate tabelu čija se vrednost automatski izračunava na osnovu sadržaja druge kolone. Generirane kolone mogu biti ili virtualne (generirane u hodu sa svakim pristupom) ili pohranjene u bazi podataka (spremljene svaki put kada se povezane kolone ažuriraju). Sadržaj generiranih kolona dostupan je samo u načinu čitanja (promjene se vrše samo modifikacijom vrijednosti u drugoj koloni uključenoj u proračun). Na primjer:

    KREIRAJ TABELU t1(
    CIJELI PRIMARNI KLJUČ,
    b INT,
    c TEKST,
    d INT GENERIRANO UVIJEK KAO (a*abs(b)) VIRTUALNO,
    e TEKST GENERIRAN UVIJEK KAO (substr(c,b,b+1)) SHRANI
    );

  • Dodata PRAGMA trusted_schema, postavljanje SQLITE_DBCONFIG_TRUSTED_SCHEMA i opciju sastavljanja “-DSQLITE_TRUSTED_SCHEMA”, koja vam omogućava kontrolu uključivanja zaštite od napada kroz modifikaciju šeme podataka u bazi podataka. Aktivna zaštita ograničava korištenje SQL funkcija (nije označeno kao SQLITE_INNOCUOUS) u okidačima, pogledima, CHECK i DEFAULT izrazima, indeksima i generiranim stupcima. Upotreba virtualnih tablica u okidačima i pogledima je također onemogućena osim ako virtualna tablica nije eksplicitno deklarirana sa SQLITE_VTAB_INNOCUOUS zastavicom.
  • Implementirana je mogućnost dodjele svojstava SQL funkcijama definiranim u aplikacijama SQLITE_INNOCUOUS (bezopasne funkcije koje ne ovise o vanjskim parametrima i ne mogu se koristiti za izvođenje zlonamjernih radnji) i SQLITE_DIRECTONLY (samo direktni poziv u SQL upitima, bez mogućnosti korištenja u okidačima, pogledima i dijagramima strukture podataka);
  • Dodati modul novo sa implementacijom funkcija za obradu UUID (RFC-4122);
  • Dodata PRAGMA hard_heap_limit i funkciju sqlite3_hard_heap_limit64() za kontrolu maksimalne veličine hrpe;
  • U PRAGMI funkcija_list dodan izlaz tipa, svojstava i broja argumenata svake funkcije;
  • Na virtualnu tablicu DBSTAT dodano način agregacije podataka;
  • sqlite3_open_v2() implementira opciju SQLITE_OPEN_NOFOLLOW, koja vam omogućava da onemogućite otvaranje simboličkih veza;
  • Za argument PUT, proslijeđen na JSON funkcije, dodao podršku za “#-N” zapis niza;
  • U sistemu distribucije memorije lookaside implementirana je podrška za dva odvojena memorijska spremišta, od kojih se svaki može koristiti za dodjelu blokova različitih veličina (razdvajanje vam omogućava da proširite korištenje lookaside sistema, dok smanjujete veličinu bafera koji se dodjeljuje svakoj konekciji sa 120 na 48 KB);
  • PRAGMA podrška je ukinuta legacy_file_format, koji je bio nekompatibilan sa VACUUM-om, generiranim stupcima i silažnim indeksima (podrška za naslijeđeni format može se vratiti preko SQLITE_DBCONFIG_LEGACY_FILE_FORMAT zastavice u sqlite3_db_config()).

izvor: opennet.ru

Dodajte komentar