Utgivelsen av SQLite 3.31 med støtte for genererte kolonner

Published versjon SQLite 3.31.0, en lettvekts DB, utformet som et tilleggsbibliotek. Koden til SQLite distribueres som offentlig eiendom, dvs. den kan brukes fritt og gratis til alle formål. Utviklerne av SQLite får økonomisk støtte fra et spesielt opprettet konsortium som inkluderer selskaper som Adobe, Oracle, Mozilla, Bentley og Bloomberg.

Viktige endringer:

  • Støtte lagt til genererte kolonner (beregnede kolonner), som gjør at man ved opprettelse av tabellen kan definere en kolonne, hvor verdien automatisk beregnes basert på innholdet i en annen kolonne. Genererte kolonner kan være både virtuelle (som genereres på stedet ved hvert kall) og lagret i databasen (som lagres ved oppdatering av relaterte kolonner). Innholdet i genererte kolonner er kun tilgjengelig i lesemodus (endrelse skjer kun ved modifikasjon av verdien i en annen kolonne som er involvert i beregningen). For eksempel:

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

  • PRAGMA er lagt til trusted_schema, konfigurasjon SQLITE_DBCONFIG_TRUSTED_SCHEMA og byggalternativet «-DSQLITE_TRUSTED_SCHEMA», som muliggjør styring av aktivering av beskyttelse mot angrep gjennom modifikasjon av datamodellen i databasen. Når beskyttelsen er aktiv, begrenses bruken av SQL-funksjoner (som ikke er merket som SQLITE_INNOCUOUS) i triggere, visninger, CHECK-uttrykk og DEFAULT, indekser og genererte kolonner. Bruken av virtuelle tabeller i triggere og visninger deaktiveres også, med mindre den virtuelle tabellen er eksplisitt erklært med flagget SQLITE_VTAB_INNOCUOUS.
  • Muligheten for å tildele visse funksjoner i SQL-applikasjoner egenskaper har blitt implementert SQLITE_INNOCUOUS (ufarlige funksjoner som ikke er avhengige av eksterne parametere og ikke kan brukes til å utføre skadelige handlinger) og SQLITE_DIRECTONLY (kun direkte kald i SQL-spørsmål, uten mulighet for bruk i triggere, visninger og datamodeller);
  • Modul lagt til uuid implementering av funksjoner for håndtering av UUID (RFC-4122);
  • PRAGMA er lagt til hard_heap_limit og funksjonen sqlite3_hard_heap_limit64() for å håndtere maksimal størrelse på heap-en;
  • I PRAGMA function_list er det lagt til utdata om typen, egenskapene og antallet argumenter for hver funksjon;
  • I den virtuelle tabellen DBSTAT er lagt til data aggregasjonsmodus;
  • I sqlite3_open_v2() er det implementert et alternativ SQLITE_OPEN_NOFOLLOW, som forhindrer åpning av symbolske lenker;
  • For argumentet PATH, som blir sendt til JSON-funksjonen, er støtte for array-notasjonen «#-N» lagt til;
  • I minnehåndteringssystemet lookaside det er implementert støtte for to separate minnepuljer, hver av dem kan brukes til å tildele blokker av forskjellig størrelse (deling gjør det mulig å utvide bruken av lookaside-systemet, samtidig som størrelsen på bufferen som tildeles hver forbindelse reduseres fra 120 til 48 KB);
  • Støtte for PRAGMA er avsluttet legacy_file_format, som var inkompatibel med VACUUM, genererte kolonner og synkende indekser (støtten for det utdaterte formatet kan gjenopprettes via flagget SQLITE_DBCONFIG_LEGACY_FILE_FORMAT i sqlite3_db_config()).

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster