Die Veröffentlichung von SQLite 3.53, einer leichtgewichtigen Datenbank, die als Plug-in-Bibliothek bereitgestellt wird, wurde bekannt gegeben. Die Version 3.52 wurde abgesagt. Der Code von SQLite ist als Public Domain lizenziert, was bedeutet, dass er ohne Einschränkungen und kostenlos für alle Zwecke verwendet werden kann. Die finanzielle Unterstützung für die Entwickler von SQLite wird durch ein eigens gegründetes Konsortium bereitgestellt.
Wesentliche Änderungen:
- Ein Fehler, der zur Beschädigung von Datenbanken führte, wurde behoben. Dieses Problem trat seit der Version SQLite 3.7.0 (2010) auf und betraf Datenbanken im WAL-Modus (Write-Ahead Logging). Es trat aufgrund von Rennbedingungen auf, wenn zwei oder mehr Verbindungen gleichzeitig zu einer Datenbank geöffnet wurden, die versuchten, Transaktionen in einem Datenbankexemplar zu schreiben oder zu sperren. Es wird behauptet, dass die Bedingungen, die zum Absturz führen, sehr selten auftreten und nur in speziell erstellten Testsszenarien reproduziert werden konnten.
- Im Befehl „ALTER TABLE“ ist es zulässig, die Überprüfungen „NOT NULL“ und „CHECK“ zu entfernen.
- Der Befehl «REINDEX EXPRESSIONS» wurde hinzugefügt, um Indizes basierend auf Ausdrücken, die Funktionen über Spalten oder Operationen zwischen Spalten verwenden, neu aufzubauen. Der Befehl kann zur Wiederherstellung von veralteten Indizes eingesetzt werden.
- Innerhalb der temporären Trigger, die durch den Befehl «CREATE TEMP TRIGGER» erstellt werden und auf Tabellen in anderen Datenbanken angewendet werden, ist die Modifikation von Tabellen oder Abfragen von Daten aus diesen Tabellen erlaubt.
- Im Befehl «VACUUM INTO» wurde die Verwendung des Parameters «reserve=N» implementiert, um die Anzahl der zu erstellenden Datenbanksicherungen zu definieren, wenn eine Zieldatei über URL angegeben wird.
- Neue SQL-Funktionen json_array_insert() und jsonb_array_insert() wurden implementiert, um Elemente in JSON-Arrays einzufügen.
- Die Bibliothek QRF (Query Result Formatter) wurde hinzugefügt und in das Befehlszeilenwerkzeug integriert, um die Ergebnisse von SQL-Abfragen in ein leserliches Format zu bringen.
- Änderungen im Befehlszeilenwerkzeug:
- Der Befehl «.mode» wurde erheblich erweitert.
- Die Ausgabeformatierung wurde verbessert; zum Beispiel ist die Rahmenzeichnung jetzt standardmäßig aktiviert, und numerische Werte werden bei tabellarischer Ausgabe rechtsbündig ausgerichtet.
- Die Zeichen ";" werden nach den Befehlen ignoriert.
- Der Inhalt der im Befehlszeilen angegebenen Dateien mit den Erweiterungen *.sql und *.txt wird jetzt als SQL-Ausdrücke und dot-Befehle gelesen und interpretiert.
- Der Befehl „.timer“ unterstützt jetzt den Wert „once“, um den Timer nur auf den nächsten SQL-Ausdruck anzuwenden.
- Der Befehl „.progress“ hat die Option „—timeout S“ erhalten, um die SQL-Ausdrücke nach Ablauf des Zeitlimits zwangsweise zu unterbrechen.
- Das Verhalten der Vorlagen im Befehl „.indexes“ wurde geändert, sodass sie jetzt auf die Namen der Indizes anstelle der Namen der indizierten Tabellen angewendet werden.
- Optimierungen im Abfrageplaner beschleunigen nun das Merging von Tabellen sowie die Operationen EXCEPT, INTERSECT und UNION.
- Die Leistung der Funktionen zur Umwandlung von Fließkommazahlen in eine textuelle Darstellung wurde verbessert.
- In die kompilierte WebAssembly-Implementierung wurde das VFS „opfs-wl“ hinzugefügt, das identisch mit dem VFS „opfs“ ist, jedoch die Web Locks API zur Handhabung von Sperren verwendet.
- Der Dienst sqlite3_rsync hat die Option „-p|—port“ erhalten.
- Die Unterstützung für die Plattform Windows RT wurde eingestellt.
Quelle: opennet.ru
