Izdanje SQLite baze podataka 3.31 s podrškom za generirane stupce

Objavljeno izdanje SQLite 3.31.0, lagani DBMS predstavljen kao dinamička biblioteka. Kod SQLite je dostupan kao javna domena (public domain), tj. može se koristiti bez ograničenja i besplatno u bilo koje svrhe. Financijsku podršku programerima SQLite pruža posebno formirani konzorcij koji uključuje tvrtke poput Adobe, Oracle, Mozilla, Bentley i Bloomberg.

Glavne promjene:

  • Dodana podrška generirane kolone (izračunatih stupaca) koji omogućuju određivanje stupca prilikom stvaranja tablice čija se vrijednost automatski izračunava na temelju sadržaja drugog stupca. Generirani stupci mogu biti virtualni (formiraju se u hodu pri svakom pristupu) ili pohranjeni u bazi podataka (pohranjuju se pri svakoj promjeni povezanih stupaca). Sadržaj generiranih stupaca dostupan je samo za čitanje (promjena se vrši samo izmjenom vrijednosti u drugom stupcu uključenom u izračun). Na primjer:

    CREATE TABLE t1(
    a INTEGER PRIMARY KEY,
    b INT,
    c TEXT,
    d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
    e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
    );

  • Dodani su PRAGMA trusted_schema, postavka SQLITE_DBCONFIG_TRUSTED_SCHEMA i opcija pregradnje „-DSQLITE_TRUSTED_SCHEMA“ koja omogućava upravljanje uključivanjem zaštite od napada kroz izmjenu sheme podataka u bazi podataka. Kada je zaštita aktivna, ograničava se korištenje SQL funkcija (koje nisu označene kao SQLITE_INNOCUOUS) u okidačima, prikazima, CHECK i DEFAULT izrazima, indeksima i generiranim stupcima. Također, onemogućava se korištenje virtualnih tablica u okidačima i prikazima, osim ako virtualna tablica nije izričito označena s flagom SQLITE_VTAB_INNOCUOUS.
  • Implementirana je mogućnost dodjeljivanja određenim SQL funkcijama svojstava SQLITE_INNOCUOUS (bezopasne funkcije koje ne ovise o vanjskim parametrima i ne mogu se koristiti za izvršenje zlonamjernih radnji) i SQLITE_DIRECTONLY (samo izravni pozivi u SQL upitima, bez mogućnosti primjene u okidačima, prikazima i shemama strukture podataka);
  • Dodan je modul uuid s implementacijom funkcija za obradu UUID-a (RFC-4122);
  • Dodana je PRAGMA hard_heap_limit i funkcija sqlite3_hard_heap_limit64() za upravljanje maksimalnom veličinom hrpe;
  • U PRAGMA function_list dodano je ispisivanje tipa, svojstava i broja argumenata svake funkcije;
  • U virtualnu tablicu DBSTAT dodana je način agregacije podataka;
  • U sqlite3_open_v2() implementirana je opcija SQLITE_OPEN_NOFOLLOW koja omogućava zabranu otvaranja simboličkih linkova;
  • Za argument PATH, proslijeđen u JSON funkcije, dodana je podrška za notaciju nizova „#-N“;
  • U sustavu raspodjele memorije lookaside Implementirana je podrška za dva odvojena bazena memorije, od kojih svaki može koristiti blokove različitih veličina (razdvajanje omogućava šire korištenje lookaside sustava, istovremeno smanjujući veličinu dodijeljenog bafera po povezanosti s 120 na 48 KB);
  • Prekid podrške za PRAGMA legacy_file_format, koja je bila nekompatibilna s VACUUM-om, generiranim kolonama i opadajućim indeksima (podršku za zastarjeli format moguće je obnoviti putem zastavice SQLITE_DBCONFIG_LEGACY_FILE_FORMAT u sqlite3_db_config()).

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster