Udgivelse af DBMS SQLite 3.31 med understøttelse af genererede kolonner

offentliggjort релиз SQLite 3.31.0, et letvægts DBMS designet som et plug-in bibliotek. SQLite-koden distribueres som et offentligt domæne, dvs. kan bruges uden begrænsninger og gratis til ethvert formål. Økonomisk støtte til SQLite-udviklere leveres af et specielt oprettet konsortium, som omfatter virksomheder som Adobe, Oracle, Mozilla, Bentley og Bloomberg.

The main ændringer:

  • Tilføjet support genererede kolonner (beregnede kolonner), som giver dig mulighed for at definere en kolonne, når du opretter en tabel, hvis værdi automatisk beregnes ud fra indholdet af en anden kolonne. De genererede kolonner kan enten være virtuelle (genereret på farten med hver adgang) eller gemt i databasen (gemt hver gang de relaterede kolonner opdateres). Indholdet af de genererede kolonner er kun tilgængeligt i læsetilstand (ændringer foretages kun gennem ændring af værdien i en anden kolonne involveret i beregningen). For eksempel:

    OPRET TABEL t1(
    en HELTAL PRIMÆR NØGLE,
    b INT,
    c TEKST,
    d INT GENERERET ALTID SOM (a*abs(b)) VIRTUEL,
    e TEKST GENERERET ALTID SOM (substr(c,b,b+1)) LAGRING
    );

  • Tilføjet PRAGMA betroet_skema, indstilling SQLITE_DBCONFIG_TRUSTED_SCHEMA og samlingsmuligheden "-DSQLITE_TRUSTED_SCHEMA", som giver dig mulighed for at kontrollere medtagelsen af ​​beskyttelse mod angreb gennem ændring af dataskemaet i databasen. Aktiv beskyttelse begrænser brugen af ​​SQL-funktioner (ikke markeret SQLITE_INNOCUOUS) i triggere, visninger, CHECK- og DEFAULT-sætninger, indekser og genererede kolonner. Brugen af ​​virtuelle tabeller i triggere og visninger er også deaktiveret, medmindre den virtuelle tabel er eksplicit erklæret med flaget SQLITE_VTAB_INNOCUOUS.
  • Implementeret evnen til at tildele egenskaber til SQL-funktioner defineret i applikationer SQLITE_INNOCUOUS (harmløse funktioner, der ikke afhænger af eksterne parametre og ikke kan bruges til at udføre ondsindede handlinger) og SQLITE_DIRECTONLY (kun direkte kald i SQL-forespørgsler, uden mulighed for at bruge i triggere, visninger og datastrukturdiagrammer);
  • Tilføjet modul ny med implementering af funktioner til behandling af UUID (RFC-4122);
  • Tilføjet PRAGMA hard_heap_limit og funktion sqlite3_hard_heap_limit64() at kontrollere den maksimale bunkestørrelse;
  • I PRAGMA funktionsliste tilføjet output af type, egenskaber og antal argumenter for hver funktion;
  • Til virtuel tabel DBSTAT tilføjet dataaggregeringstilstand;
  • sqlite3_open_v2() implementerer indstillingen SQLITE_OPEN_NOFOLLOW, som giver dig mulighed for at deaktivere åbningen af ​​symbolske links;
  • Til argumentation PATH, videregivet til JSON-funktioner, tilføjet understøttelse af "#-N" array notation;
  • I hukommelsesdistributionssystemet kig til siden understøttelse af to separate hukommelsespuljer er blevet implementeret, som hver kan bruges til at allokere blokke af forskellig størrelse (separation giver dig mulighed for at udvide brugen af ​​lookaside-systemet, samtidig med at størrelsen af ​​bufferen allokeret til hver forbindelse reduceres fra 120 til 48 KB);
  • PRAGMA-support er afbrudt legacy_file_format, som var inkompatibelt med VACUUM, genererede kolonner og faldende indekser (understøttelse af ældre formater kan returneres via flaget SQLITE_DBCONFIG_LEGACY_FILE_FORMAT i sqlite3_db_config()).

Kilde: opennet.ru

Tilføj en kommentar