release , een lichtgewicht DBMS, geïmplementeerd als een in te laden bibliotheek. De code van SQLite is openbaar domein (public domain), wat betekent dat deze zonder beperkingen en kosteloos voor alle doeleinden kan worden gebruikt. De financiële ondersteuning voor de ontwikkelaars van SQLite wordt verstrekt door een speciaal opgerichte consortium, dat bedrijven zoals Adobe, Oracle, Mozilla, Bentley en Bloomberg omvat.
Belangrijkste :
- Ondersteuning toegevoegd voor (berekende kolommen), waarmee bij het maken van een tabel een kolom kan worden gedefinieerd waarvan de waarde automatisch wordt berekend op basis van de inhoud van een andere kolom. Genereerbare kolommen kunnen zowel virtueel zijn (in real-time gevormd bij elke toegang) als opgeslagen in de database (opgeslagen bij elke update van de gerelateerde kolommen). De inhoud van genereerbare kolommen is alleen toegankelijk in leesmodus (wijzigingen worden alleen aangebracht door de waarde in een andere kolom, die betrokken is bij de berekening, te modificeren). Bijvoorbeeld:
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
); - Toegevoegd PRAGMA , instelling en de bouwoptie "-DSQLITE_TRUSTED_SCHEMA", die het mogelijk maakt om de in- of uitschakeling van bescherming tegen door het wijzigen van het datamodel in de database. Bij actieve bescherming wordt het gebruik van SQL-functies (niet gemarkeerd als SQLITE_INNOCUOUS) in triggers, views, CHECK- en DEFAULT-uitdrukkingen, indexen en genereerbare kolommen beperkt. Het gebruik van virtuele tabellen in triggers en views wordt ook uitgeschakeld, tenzij de virtuele tabel expliciet is gedeclareerd met de vlag SQLITE_VTAB_INNOCUOUS.
- Er is een mogelijkheid geĆÆmplementeerd om bepaalde SQL-functies in applicaties eigenschappen toe te kennen (ongevaarlijke functies die niet afhankelijk zijn van externe parameters en niet kunnen worden gebruikt voor schadelijke doeleinden) en (alleen directe aanroepen in SQL-queries, zonder mogelijkheid tot gebruik in triggers, views en datamodels);
- Toegevoegd module met implementatie van functies voor het verwerken van UUID (RFC-4122);
- Toegevoegd PRAGMA en functie voor het beheren van de maximale grootte van de heap;
- In PRAGMA is het type, eigenschappen en aantal argumenten van elke functie toegevoegd;
- In de virtuele tabel DBSTAT gegevensaggregatiemodus;
- In sqlite3_open_v2() is de optie SQLITE_OPEN_NOFOLLOW geĆÆmplementeerd, die het openen van symbolische links verbiedt;
- Voor het argument , doorgegeven aan JSON-functies, is ondersteuning voor de notatie van arrays "#-N" toegevoegd;
- In het geheugensysteem ondersteuning voor twee aparte geheugenv pools is gerealiseerd, waarvan elk kan worden gebruikt voor het toewijzen van blokken van verschillende grootte (de scheiding maakt een breder gebruik van het lookaside-systeem mogelijk, terwijl de grootte van de toegewezen buffer per verbinding is verlaagd van 120 naar 48 KB);
- ondersteuning voor PRAGMA is beƫindigd , die niet compatibel was met VACUUM, gegenereerde kolommen en aflopende indexen (ondersteuning voor het verouderde formaat kan worden hersteld via de vlag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT in sqlite3_db_config()).
Bron: opennet.ru
