Release av DBMS SQLite 3.31 med stöd för genererade kolumner

publiceras släpp SQLite 3.31.0, ett lätt DBMS designat som ett plugin-bibliotek. SQLite-koden distribueras som en offentlig domän, d.v.s. kan användas utan begränsningar och kostnadsfritt för alla ändamål. Ekonomiskt stöd till SQLite-utvecklare tillhandahålls av ett speciellt skapat konsortium, som inkluderar företag som Adobe, Oracle, Mozilla, Bentley och Bloomberg.

Den huvudsakliga förändringar:

  • Lagt till stöd genererade kolumner (beräknade kolumner), som låter dig definiera en kolumn när du skapar en tabell vars värde automatiskt beräknas baserat på innehållet i en annan kolumn. De genererade kolumnerna kan antingen vara virtuella (genereras i farten med varje åtkomst) eller lagras i databasen (sparas varje gång de relaterade kolumnerna uppdateras). Innehållet i de genererade kolumnerna är endast tillgängligt i läsläge (ändringar görs endast genom modifiering av värdet i en annan kolumn som är involverad i beräkningen). Till exempel:

    SKAPA TABELL t1(
    en PRIMÄR HELTALSNYCKEL,
    b INT,
    c TEXT,
    d INT GENERERAS ALLTID SOM (a*abs(b)) VIRTUELL,
    e TEXT GENERADES ALLTID SOM (substr(c,b,b+1)) LAGRADE
    );

  • Lade till PRAGMA betrodd_schema, inställning SQLITE_DBCONFIG_TRUSTED_SCHEMA och monteringsalternativet "-DSQLITE_TRUSTED_SCHEMA", som låter dig kontrollera införandet av skydd mot attacker genom modifiering av dataschemat i databasen. Aktivt skydd begränsar användningen av SQL-funktioner (ej märkta SQLITE_INNOCUOUS) i triggers, vyer, CHECK- och DEFAULT-satser, index och genererade kolumner. Användningen av virtuella tabeller i triggers och vyer är också inaktiverad om inte den virtuella tabellen uttryckligen deklareras med flaggan SQLITE_VTAB_INNOCUOUS.
  • Implementerade möjligheten att tilldela egenskaper till SQL-funktioner definierade i applikationer SQLITE_INNOCUOUUS (ofarliga funktioner som inte är beroende av externa parametrar och inte kan användas för att utföra skadliga åtgärder) och SQLITE_DIRECTONLY (endast direktanrop i SQL-frågor, utan möjlighet att använda i triggers, vyer och datastrukturdiagram);
  • Tillagd modul uuid med implementering av funktioner för bearbetning av UUID (RFC-4122);
  • Lade till PRAGMA hard_heap_limit och funktion sqlite3_hard_heap_limit64() för att kontrollera den maximala högstorleken;
  • I PRAGMA function_list tillagd utdata av typ, egenskaper och antal argument för varje funktion;
  • Till virtuell tabell DBSTAT Lagt till dataaggregationsläge;
  • sqlite3_open_v2() implementerar alternativet SQLITE_OPEN_NOFOLLOW, som låter dig inaktivera öppningen av symboliska länkar;
  • För argument VÄG, skickade till JSON-funktioner, lade till stöd för "#-N" arraynotation;
  • I minnesdistributionssystemet titta åt sidan stöd för två separata minnespooler har implementerats, som var och en kan användas för att allokera block av olika storlekar (separation gör att du kan utöka användningen av lookaside-systemet, samtidigt som du minskar storleken på bufferten som allokeras till varje anslutning från 120 till 48 KB);
  • PRAGMA-stödet har upphört legacy_file_format, som var inkompatibelt med VACUUM, genererade kolumner och fallande index (stöd för äldre format kan returneras via flaggan SQLITE_DBCONFIG_LEGACY_FILE_FORMAT i sqlite3_db_config()).

Källa: opennet.ru

Lägg en kommentar