Release , einer leichtgewichtigen Datenbank, die als Plug-in-Bibliothek bereitgestellt wird. Der Code von SQLite wird als Public Domain veröffentlicht, das heißt, er kann ohne Einschränkungen und kostenlos für jede Art von Verwendung genutzt werden. Die finanzielle Unterstützung der SQLite-Entwickler wird von einem speziell gegründeten Konsortium übernommen, zu dem Unternehmen wie Adobe, Oracle, Mozilla, Bentley und Bloomberg gehören.
Haupt :
- Unterstützung für (berechnete Spalten), die es ermöglichen, beim Erstellen einer Tabelle eine Spalte zu definieren, deren Wert automatisch auf der Grundlage des Inhalts einer anderen Spalte berechnet wird. Generierte Spalten können sowohl virtuell (bei jedem Zugriff dynamisch erstellt) als auch in der Datenbank gespeichert (bei jeder Aktualisierung der zugehörigen Spalten gespeichert) sein. Der Inhalt von generierten Spalten ist nur im Lese-Modus verfügbar (Änderungen erfolgen nur durch Modifikation des Wertes einer anderen Spalte, die bei der Berechnung beteiligt ist). Zum Beispiel:
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
); - PRAGMA hinzugefügt: , Einstellung und die Build-Option „-DSQLITE_TRUSTED_SCHEMA“, die es ermöglicht, den Schutz vor über die Modifikation des Datenbankschemas zu steuern. Bei aktivem Schutz wird die Nutzung von SQL-Funktionen (die nicht als SQLITE_INNOCUOUS gekennzeichnet sind) in Triggern, Sichten, CHECK- und DEFAULT-Ausdrücken, Indizes sowie in generierten Spalten eingeschränkt. Die Verwendung von virtuellen Tabellen in Triggern und Sichten wird ebenfalls deaktiviert, es sei denn, die virtuelle Tabelle wird ausdrücklich mit dem Flag SQLITE_VTAB_INNOCUOUS deklariert.
- Es wurde ermöglicht, bestimmten SQL-Funktionen in Anwendungen Eigenschaften zuzuweisen (harmless functions, die von externen Parametern unabhängig sind und nicht zur Durchführung schädlicher Aktionen verwendet werden können) und (nur direkter Aufruf in SQL-Abfragen, ohne Anwendungsmöglichkeit in Triggern, Sichten und Datenstruktur-Schemas);
- Ein Modul wurde hinzugefügt mit Implementierungen für die Verarbeitung von UUIDs (RFC-4122);
- Die PRAGMA und die Funktion wurden hinzugefügt, um die maximale Größe des Heaps zu steuern;
- In der PRAGMA wurde die Ausgabe des Typs, der Eigenschaften und der Anzahl der Argumente jeder Funktion hinzugefügt;
- In die virtuelle Tabelle DBSTAT Datenaggregierungsmodus;
- In sqlite3_open_v2() wurde die Option SQLITE_OPEN_NOFOLLOW implementiert, die das Öffnen von symbolischen Links verbietet;
- Für das Argument , das an die JSON-Funktion übergeben wird, wurde die Unterstützung für Array-Notation «#-N» hinzugefügt;
- Im Speichersystem wurde die Unterstützung für zwei separate Pools implementiert, von denen jeder zur Zuweisung von Blöcken unterschiedlicher Größe verwendet werden kann (die Trennung ermöglicht eine erweiterte Anwendung des lookaside-Systems, während die Größe des für jede Verbindung reservierten Puffers von 120 auf 48 KB reduziert wird);
- Die Unterstützung für PRAGMA , die mit VACUUM, generierten Spalten und abnehmenden Indizes nicht kompatibel war, wurde eingestellt (die Unterstützung für das veraltete Format kann über das Flag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT in sqlite3_db_config() wiederhergestellt werden).
Quelle: opennet.ru
