Die Veröffentlichung von SQLite 3.38, einer leichtgewichtigen Datenbank, die als einbinden Bibliothek gestaltet ist, wurde veröffentlicht. Der Code von SQLite wird als gemeinfreies Werk (public domain) verbreitet, d.h. er kann ohne Einschränkungen und kostenlos für beliebige Zwecke verwendet werden. Die finanzielle Unterstützung für die Entwickler von SQLite erfolgt durch ein speziell eingerichtetes Konsortium, zu dem Unternehmen wie Adobe, Oracle, Mozilla, Bentley und Bloomberg gehören.
Hauptänderungen:
- Die Unterstützung für die Operatoren -> und ->>, die die Extraktion von Daten im JSON-Format vereinfachen, wurde hinzugefügt. Die Syntax der neuen Operatoren ist mit MySQL und PostgreSQL kompatibel.
- Der Hauptbestand enthält Funktionen zur Arbeit mit Daten im JSON-Format, für deren Verwendung zuvor eine Zusammenstellung mit dem Flag „-DSQLITE_ENABLE_JSON1“ erforderlich war. Um die Unterstützung für JSON zu deaktivieren, wurde das Flag „-DSQLITE_OMIT_JSON“ hinzugefügt.
- Die Funktion unixepoch() wurde hinzugefügt, die die epochale Zeit (die Anzahl der Sekunden seit dem 1. Januar 1970) zurückgibt.
- Für Zeitfunktionalitäten wurden die Modifizierer „auto“ und „julianday“ implementiert.
- Die SQL-Funktion printf() wurde in format() umbenannt, um die Kompatibilität mit anderen Datenbanken zu verbessern (der alte Name bleibt erhalten).
- Die Schnittstelle sqlite3_error_offset() wurde hinzugefügt, um die Lokalisierung von Fehlern in Abfragen zu erleichtern.
- Neue Schnittstellen für virtuelle Tabellen wurden hinzugefügt: sqlite3_vtab_distinct(), sqlite3_vtab_rhs_value() und sqlite3_vtab_in(), sowie neue Operatoren SQLITE_INDEX_CONSTRAINT_LIMIT und SQLITE_INDEX_CONSTRAINT_OFFSET.
- Die CLI-Schnittstelle gewährleistet eine korrekte Verarbeitung von Tabulator- und Zeilenumbruchzeichen im Text, der im Mehrspaltenmodus ausgegeben wird. Die Unterstützung für die Verwendung der Optionen „—wrap N“, „—wordwrap on“ und „—quote“ bei der Ausgabe in mehreren Spalten wurde hinzugefügt. In dem Befehl .import wurde eine Anpassung der Spaltennamen vorgenommen.
- Im Abfrageplaner wurde eine probabilistische Struktur namens Bloom Filter implementiert, um die Ausführung großer analytischer Abfragen zu beschleunigen, die zur Bestimmung der Präsenz eines Elements in einer Menge verwendet wird. Zur Optimierung der Verarbeitung von UNION und UNION ALL-Befehlen, die SELECT-Ausdrücke mit ORDER BY-Abschnitten umfassen, wird ein ausgewogenener Merging-Baum eingesetzt.
Zusätzlich kann die Veröffentlichung der Version des sqlite-utils-Sets 3.24 erwähnt werden, die Dienstprogramme und eine Bibliothek zur Manipulation von Dateien mit SQLite-Datenbanken umfasst. Es werden Operationen wie das direkte Hochladen von JSON-, CSV- oder TSV-Daten in eine Datenbankdatei mit automatischer Erstellung des erforderlichen Speicherschemas, die Ausführung von SQL-Abfragen auf CSV-, TSV- und JSON-Dateien, die Durchführung von Volltextsuchen in der Datenbank, die Umwandlung von Daten und Speicherschemata in Situationen, in denen ALTER TABLE nicht anwendbar ist (z. B. zur Änderung von Spaltentypen), sowie das Extrahieren von Spalten in separate Tabellen unterstützt.
Quelle: opennet.ru
