Izdanje DBMS SQLite 3.31 sa podrškom za generisane kolone

Objavljeno izdanje SQLite 3.31.0, lahka baza podatkov, predstavljena kot dinamična knjižnica. Koda SQLite je na voljo kot javno dobro, kar pomeni, da se lahko uporablja brez omejitev in brezplačno za vse namene. Razvoj SQLite financira posebni konzorcij, ki vključuje podjetja, kot so Adobe, Oracle, Mozilla, Bentley in Bloomberg.

Glavne spremembe:

  • Dodana je podpora za generirane stolpce (izračunatih kolona), koje omogućavaju da se prilikom kreiranja tabele definiše kolona čija se vrednost automatski izračunava na osnovu sadržaja druge kolone. Generisane kolone mogu biti virtuelne (formiraju se u trenutku svakog pristupa) ili sačuvane u bazi podataka (čuvaju se prilikom svake izmene povezanih kolona). Sadržaj generisanih kolona dostupan je samo u režimu čitanja (izmena se vrši samo putem modifikacije vrednosti u drugoj koloni koja se koristi pri izračunavanju). Na primer:

    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
    );

  • Dodate su PRAGMA trusted_schema, podešavanje SQLITE_DBCONFIG_TRUSTED_SCHEMA i opcija za kompilaciju „-DSQLITE_TRUSTED_SCHEMA“, koje omogućavaju upravljanje aktiviranjem zaštite od napadi modifikacije šeme podataka u bazi podataka. Kada je zaštita aktivna, korišćenje SQL funkcija (koje nisu označene kao SQLITE_INNOCUOUS) u okidačima, pogledima, CHECK izrazima i DEFAULT, indeksima i generisanim kolonama je ograničeno. Takođe se onemogućava korišćenje virtuelnih tabela u okidačima i pogledima, osim ako virtuelna tabela nije izričito deklarisana sa oznakom SQLITE_VTAB_INNOCUOUS.
  • Implementirana je mogućnost dodeljivanja određenim SQL funkcijama svojstava SQLITE_INNOCUOUS (neprijetne funkcije koje ne zavise od spoljašnjih parametara i ne mogu se koristiti za izvršenje malicioznih radnji) i SQLITE_DIRECTONLY (samo direktan poziv u SQL upitima, bez mogućnosti korišćenja u okidačima, pogledima i šemama strukture podataka);
  • Dodana je bila enota uuid sa implementacijom funkcija za obradu UUID (RFC-4122);
  • Dodata je PRAGMA hard_heap_limit i funkcija sqlite3_hard_heap_limit64() za upravljanje maksimalnom veličinom hrpe;
  • U PRAGMA function_list dodata su informacija o tipu, svojstvima i broju argumenata svake funkcije;
  • U virtuelnu tabelu DBSTAT dodano režim agregacije podataka;
  • U sqlite3_open_v2() implementirana je opcija SQLITE_OPEN_NOFOLLOW, koja omogućava zabranu otvaranja simboličkih linkova;
  • Za argument PATH, prosledjen u JSON funkcije, dodata je podrška za notaciju nizova „#-N“;
  • U sistemu raspodele memorije lookaside Podprta sta dva ločena skladišča pomnilnika, od katerih se vsako lahko uporabi za dodelitev blokov razdifferent sizes (razdelitev omogoča širšo uporabo sistema lookaside, hkrati pa zmanjša velikost dodeljenega požarnega zidu na vsako povezavo s 120 na 48 kB);
  • Podpora za PRAGMA je bila ukinjena legacy_file_format, ki ni bila združljiva z VACUUM, generiranimi stolpci in padajočimi indeksi (podporo zastare formata lahko vrnete s pomočjo zastavice SQLITE_DBCONFIG_LEGACY_FILE_FORMAT v sqlite3_db_config()).

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster