Uitgave van DBMS SQLite 3.31 met ondersteuning voor gegenereerde kolommen

gepubliceerd релиз SQLite 3.31.0, een lichtgewicht DBMS ontworpen als een plug-inbibliotheek. De SQLite-code wordt gedistribueerd als een publiek domein, d.w.z. mag zonder beperkingen en gratis voor welk doel dan ook worden gebruikt. Financiële ondersteuning voor SQLite-ontwikkelaars wordt geleverd door een speciaal opgericht consortium, waartoe bedrijven als Adobe, Oracle, Mozilla, Bentley en Bloomberg behoren.

De belangrijkste veranderingen:

  • Ondersteuning toegevoegd gegenereerde kolommen (berekende kolommen), waarmee u een kolom kunt definiëren wanneer u een tabel maakt waarvan de waarde automatisch wordt berekend op basis van de inhoud van een andere kolom. De gegenereerde kolommen kunnen virtueel zijn (onmiddellijk gegenereerd bij elke toegang) of opgeslagen in de database (opgeslagen telkens wanneer de gerelateerde kolommen worden bijgewerkt). De inhoud van de gegenereerde kolommen is alleen beschikbaar in de leesmodus (wijzigingen worden alleen aangebracht door wijziging van de waarde in een andere kolom die bij de berekening betrokken is). Bijvoorbeeld:

    MAAK TABEL t1(
    een PRIMAIRE SLEUTEL INTEGER,
    bINT,
    c TEKST,
    d INT ALTIJD GEGENEREERD ALS (a*abs(b)) VIRTUEEL,
    e TEKST ALTIJD GEGENEREERD ALS (substr(c,b,b+1)) OPGESLAGEN
    );

  • PRAGMA toegevoegd vertrouwd_schema, instelling SQLITE_DBCONFIG_TRUSTED_SCHEMA en de assemblageoptie “-DSQLITE_TRUSTED_SCHEMA”, waarmee u de opname van bescherming tegen aanvallen door wijziging van het gegevensschema in de database. Actieve bescherming beperkt het gebruik van SQL-functies (niet gemarkeerd als SQLITE_INNOCUOUS) in triggers, weergaven, CHECK- en DEFAULT-instructies, indexen en gegenereerde kolommen. Het gebruik van virtuele tabellen in triggers en views is ook uitgeschakeld, tenzij de virtuele tabel expliciet wordt gedeclareerd met de vlag SQLITE_VTAB_INNOCUOUS.
  • De mogelijkheid geïmplementeerd om eigenschappen toe te wijzen aan SQL-functies die in applicaties zijn gedefinieerd SQLITE_INNOCUOUS (onschadelijke functies die niet afhankelijk zijn van externe parameters en niet kunnen worden gebruikt om kwaadaardige acties uit te voeren) en SQLITE_DIRECTONLY (alleen directe oproep in SQL-query's, zonder de mogelijkheid om triggers, views en datastructuurdiagrammen te gebruiken);
  • Module toegevoegd uuid met implementatie van functies voor het verwerken van UUID (RFC-4122);
  • PRAGMA toegevoegd harde_heap_limit en functie sqlite3_hard_heap_limit64() om de maximale heapgrootte te regelen;
  • In PRAGMA functie_lijst uitvoer toegevoegd van type, eigenschappen en aantal argumenten van elke functie;
  • Naar virtuele tabel DBSTAT toegevoegd gegevensaggregatiemodus;
  • sqlite3_open_v2() implementeert de optie SQLITE_OPEN_NOFOLLOW, waarmee u het openen van symbolische links kunt uitschakelen;
  • Voor argumentatie PATH, doorgegeven aan JSON-functies, ondersteuning toegevoegd voor "#-N" array-notatie;
  • In het geheugendistributiesysteem kijk opzij ondersteuning voor twee afzonderlijke geheugenpools is geïmplementeerd, die elk kunnen worden gebruikt om blokken van verschillende groottes toe te wijzen (door scheiding kunt u het gebruik van het lookaside-systeem uitbreiden, terwijl de grootte van de buffer die aan elke verbinding wordt toegewezen, wordt verkleind van 120 naar 48 KB);
  • PRAGMA-ondersteuning is stopgezet legacy_file_format, wat incompatibel was met VACUUM, gegenereerde kolommen en aflopende indexen (ondersteuning voor verouderde formaten kan worden geretourneerd via de vlag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT in sqlite3_db_config()).

Bron: opennet.ru

Voeg een reactie