freigeben , ein leichtes DBMS, das als Plug-in-Bibliothek konzipiert ist. Der SQLite-Code wird als Public Domain verteilt, d. h. dĂŒrfen uneingeschrĂ€nkt und unentgeltlich fĂŒr jeden Zweck genutzt werden. Die finanzielle UnterstĂŒtzung fĂŒr SQLite-Entwickler erfolgt durch ein eigens gegrĂŒndetes Konsortium, dem Unternehmen wie Adobe, Oracle, Mozilla, Bentley und Bloomberg angehören.
Haupt- :
- UnterstĂŒtzung hinzugefĂŒgt (berechnete Spalten), mit denen Sie beim Erstellen einer Tabelle eine Spalte definieren können, deren Wert automatisch basierend auf dem Inhalt einer anderen Spalte berechnet wird. Die generierten Spalten können entweder virtuell (bei jedem Zugriff spontan generiert) oder in der Datenbank gespeichert (bei jeder Aktualisierung der zugehörigen Spalten gespeichert) sein. Der Inhalt der generierten Spalten ist nur im Lesemodus verfĂŒgbar (Ănderungen erfolgen nur durch Ănderung des Werts in einer anderen an der Berechnung beteiligten Spalte). Zum Beispiel:
ERSTELLEN SIE TABELLE t1(
ein ganzzahliger PrimĂ€rschlĂŒssel,
b INT,
c TEXT,
d INT IMMER ALS (a*abs(b)) VIRTUELL GENERIERT,
e TEXT WIRD IMMER ALS (substr(c,b,b+1)) GESPEICHERT GENERIERT
); - PRAGMA hinzugefĂŒgt , Einstellung und die Assembly-Option â-DSQLITE_TRUSTED_SCHEMAâ, mit der Sie die Einbeziehung des Schutzes steuern können durch Ănderung des Datenschemas in der Datenbank. Aktiver Schutz schrĂ€nkt die Verwendung von SQL-Funktionen (nicht als SQLITE_INNOCUOUS gekennzeichnet) in Triggern, Ansichten, CHECK- und DEFAULT-Anweisungen, Indizes und generierten Spalten ein. Die Verwendung virtueller Tabellen in Triggern und Ansichten ist ebenfalls deaktiviert, es sei denn, die virtuelle Tabelle wird explizit mit dem Flag SQLITE_VTAB_INNOCUOUS deklariert.
- Die Möglichkeit, Eigenschaften zu in Anwendungen definierten SQL-Funktionen zuzuweisen, wurde implementiert (harmlose Funktionen, die nicht von externen Parametern abhĂ€ngen und nicht zur DurchfĂŒhrung böswilliger Aktionen verwendet werden können) und (nur direkter Aufruf in SQL-Abfragen, ohne Möglichkeit der Verwendung in Triggern, Ansichten und Datenstrukturdiagrammen);
- Modul hinzugefĂŒgt mit Implementierung von Funktionen zur Verarbeitung von UUID (RFC-4122);
- PRAGMA hinzugefĂŒgt und Funktion um die maximale Heap-GröĂe zu steuern;
- In PRAGMA Ausgabe von Typ, Eigenschaften und Anzahl der Argumente jeder Funktion hinzugefĂŒgt;
- Zur virtuellen Tabelle DBSTAT Datenaggregationsmodus;
- sqlite3_open_v2() implementiert die Option SQLITE_OPEN_NOFOLLOW, mit der Sie das Ăffnen symbolischer Links deaktivieren können;
- Zur Argumentation , an JSON-Funktionen ĂŒbergeben, UnterstĂŒtzung fĂŒr â#-Nâ-Array-Notation hinzugefĂŒgt;
- Im Speicherverteilungssystem Es wurde UnterstĂŒtzung fĂŒr zwei separate Speicherpools implementiert, von denen jeder zum Zuweisen von Blöcken unterschiedlicher GröĂe verwendet werden kann (durch die Trennung können Sie die Verwendung des Lookaside-Systems erweitern und gleichzeitig die GröĂe des jeder Verbindung zugewiesenen Puffers von 120 auf 48 reduzieren KB);
- Der PRAGMA-Support wurde eingestellt , das mit VACUUM, generierten Spalten und absteigenden Indizes nicht kompatibel war (UnterstĂŒtzung fĂŒr Ă€ltere Formate kann ĂŒber das Flag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT in sqlite3_db_config() zurĂŒckgegeben werden).
Source: opennet.ru
