Udgivelsen af SQLite 3.31 med understøttelse af genererede kolonner

Publiceret udgivelse SQLite 3.31.0, en letvægts databasesystem, der er udformet som et tilslutningsbibliotek. Koden til SQLite distribueres som offentlig domæne (public domain), det vil sige, at den kan bruges uden begrænsninger og gratis til enhver form for formål. Den finansielle støtte til SQLite-udviklerne ydes af et konsortium, som er oprettet specielt til dette formål og omfatter virksomheder som Adobe, Oracle, Mozilla, Bentley og Bloomberg.

Vigtige Optimeringer:

  • Tilføjet support for genererede kolonner (beregnede kolonner), der ved oprettelse af tabellen definerer en kolonne, hvis værdi automatisk beregnes baseret på indholdet af en anden kolonne. Genererede kolonner kan være både virtuelle (som dannes on-the-fly ved hver forespørgsel) og gemte i databasen (gemmes ved hver opdatering af relaterede kolonner). Indholdet af de genererede kolonner er kun tilgængeligt i læsetilstand (ændringer foretages kun ved at modificere værdien i en anden kolonne, der er involveret 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
    );

  • Tilføjet PRAGMA trusted_schema, indstilling SQLITE_DBCONFIG_TRUSTED_SCHEMA og samlingsmulighed "-DSQLITE_TRUSTED_SCHEMA", der muliggør styring af aktivering af beskyttelse mod angreb gennem ændring af dataskemaet i databasen. Med aktiv beskyttelse begrænses brugen af SQL-funktioner (ikke markeret som SQLITE_INNOCUOUS) i triggers, views, CHECK- og DEFAULT-udtryk, indekser og genererede kolonner. Brugen af virtuelle tabeller i triggers og views deaktiveres også, medmindre den virtuelle tabel klart er erklæret med flagget SQLITE_VTAB_INNOCUOUS.
  • Mulighed for at tildele visse SQL-funktioner i applikationer egenskaber SQLITE_INNOCUOUS (harmløse funktioner, som ikke afhænger af eksterne parametre og ikke kan bruges til at udføre skadelige handlinger) og SQLITE_DIRECTONLY (kun direkte kald i SQL-forespørgsler, uden mulighed for brug i triggers, views og dataskemaer);
  • Tilføjet modul uuid med implementering af funktioner til behandling af UUID (RFC-4122);
  • Tilføjet PRAGMA hard_heap_limit og funktion sqlite3_hard_heap_limit64() til styring af den maksimale størrelsen af hukommelsen;
  • I PRAGMA function_list tilføjet output af type, egenskaber og antal argumenter for hver funktion;
  • I den virtuelle tabel DBSTAT tilføjet tilstand for datagruppemuligheder;
  • I sqlite3_open_v2() implementeret mulighed SQLITE_OPEN_NOFOLLOW, der forhindrer åbning af symbolske links;
  • For argumentet PATH, der sendes til JSON-funktionen, tilføjet støtte til arraynotation "#-N";
  • I hukommelsesfordelingssystemet lookaside Der er implementeret understøttelse af to separate hukommelsespuljer, hver af dem kan anvendes til at tildele blokke af forskellige størrelser (adskillelsen muliggør en bredere anvendelse af lookaside-systemet, samtidig med at størrelsen på bufferen, der tildeles hver forbindelse, reduceres fra 120 til 48 KB);
  • Understøttelse af PRAGMA er ophørt legacy_file_format, som var uforenelig med VACUUM, genererede kolonner og betalingsindekser (understøttelsen af det forældede format kan genoprettes via flaget SQLITE_DBCONFIG_LEGACY_FILE_FORMAT i sqlite3_db_config()).

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster