Utgivelse av DBMS SQLite 3.31 med støtte for genererte kolonner

publisert utgivelse SQLite 3.31.0, et lett DBMS designet som et plugin-bibliotek. SQLite-koden distribueres som et offentlig domene, dvs. kan brukes uten begrensninger og gratis til ethvert formål. Økonomisk støtte til SQLite-utviklere leveres av et spesiallaget konsortium, som inkluderer selskaper som Adobe, Oracle, Mozilla, Bentley og Bloomberg.

Den viktigste endringer:

  • Lagt til støtte genererte kolonner (kalkulerte kolonner), som lar deg definere en kolonne når du oppretter en tabell hvis verdi automatisk beregnes basert på innholdet i en annen kolonne. De genererte kolonnene kan enten være virtuelle (generert på farten med hver tilgang) eller lagret i databasen (lagres hver gang de relaterte kolonnene oppdateres). Innholdet i de genererte kolonnene er kun tilgjengelig i lesemodus (endringer gjøres kun gjennom endring av verdien i en annen kolonne som er involvert i beregningen). For eksempel:

    LAG TABELL t1(
    en HELTALS PRIMÆR NØKKEL,
    b INT,
    c TEXT,
    d INT GENERERT ALLTID SOM (a*abs(b)) VIRTUELL,
    e TEKST GENERERT ALLTID SOM (substr(c,b,b+1)) LAGRE
    );

  • Lagt til PRAGMA pålitelig_skjema, innstilling SQLITE_DBCONFIG_TRUSTED_SCHEMA og monteringsalternativet "-DSQLITE_TRUSTED_SCHEMA", som lar deg kontrollere inkluderingen av beskyttelse mot angrep gjennom modifikasjon av dataskjemaet i databasen. Aktiv beskyttelse begrenser bruken av SQL-funksjoner (ikke merket SQLITE_INNOCUOUS) i utløsere, visninger, CHECK- og DEFAULT-setninger, indekser og genererte kolonner. Bruken av virtuelle tabeller i triggere og visninger er også deaktivert med mindre den virtuelle tabellen er eksplisitt erklært med flagget SQLITE_VTAB_INNOCUOUS.
  • Implementerte muligheten til å tilordne egenskaper til SQL-funksjoner definert i applikasjoner SQLITE_INNOCUOUUS (ufarlige funksjoner som ikke er avhengige av eksterne parametere og ikke kan brukes til å utføre ondsinnede handlinger) og SQLITE_DIRECTONLY (kun direkte anrop i SQL-spørringer, uten mulighet for bruk i triggere, visninger og datastrukturdiagrammer);
  • Lagt til modul uuid med implementering av funksjoner for behandling av UUID (RFC-4122);
  • Lagt til PRAGMA hard_heap_limit og funksjon sqlite3_hard_heap_limit64() for å kontrollere maksimal haugstørrelse;
  • I PRAGMA funksjonsliste lagt til utdata av type, egenskaper og antall argumenter for hver funksjon;
  • Til virtuell tabell DBSTAT la til dataaggregeringsmodus;
  • sqlite3_open_v2() implementerer alternativet SQLITE_OPEN_NOFOLLOW, som lar deg deaktivere åpningen av symbolske lenker;
  • For argument PATH, sendt til JSON-funksjoner, lagt til støtte for "#-N" matrisenotasjon;
  • I minnedistribusjonssystemet se til siden støtte for to separate minnepooler er implementert, som hver kan brukes til å allokere blokker av forskjellige størrelser (separasjon lar deg utvide bruken av lookaside-systemet, mens du reduserer størrelsen på bufferen som er allokert til hver tilkobling fra 120 til 48 KB);
  • PRAGMA-støtte er avviklet legacy_file_format, som var inkompatibelt med VACUUM, genererte kolonner og synkende indekser (støtte for eldre formater kan returneres via SQLITE_DBCONFIG_LEGACY_FILE_FORMAT-flagget i sqlite3_db_config()).

Kilde: opennet.ru

Legg til en kommentar