Die Version SQLite 3.38 wurde veröffentlicht, eine leichte Datenbank, die als dynamische Bibliothek bereitgestellt wird. Der Code von SQLite wird als Public Domain bereitgestellt, d. h. er kann ohne Einschränkungen und kostenlos für beliebige Zwecke verwendet werden. Die finanzielle Unterstützung der SQLite-Entwickler erfolgt durch ein speziell gegründetes Konsortium, zu dem Unternehmen wie Adobe, Oracle, Mozilla, Bentley und Bloomberg gehören.
Wesentliche Änderungen:
- Unterstützung der Operatoren -> und ->>, die das Extrahieren von Daten im JSON-Format vereinfachen. Die Syntax der neuen Operatoren ist mit MySQL und PostgreSQL kompatibel.
- Im Hauptumfang sind Funktionen zur Verarbeitung von Daten im JSON-Format enthalten, für die zuvor die Kompilierungsoption „-DSQLITE_ENABLE_JSON1“ erforderlich war. Um die JSON-Unterstützung abzuschalten, wurde der Flag „-DSQLITE_OMIT_JSON“ hinzugefügt.
- Die Funktion unixepoch() wurde hinzugefügt, die die Unix-Zeit (Anzahl der Sekunden seit dem 1. Januar 1970) zurückgibt.
- Für die Zeitfunktionen wurden die Modifikatoren „auto“ und „julianday“ implementiert.
- Die SQL-Funktion printf() wurde in format() umbenannt, um die Kompatibilität mit anderen Datenbanksystemen zu verbessern (der alte Name bleibt erhalten).
- Die Funktion sqlite3_error_offset() wurde hinzugefügt, um die Lokalisierung von Fehlern in Abfragen zu erleichtern.
- Neue Programmierschnittstellen wurden in die Implementierung virtueller Tabellen aufgenommen: sqlite3_vtab_distinct(), sqlite3_vtab_rhs_value() und sqlite3_vtab_in(), sowie neue Operator-Typen SQLITE_INDEX_CONSTRAINT_LIMIT und SQLITE_INDEX_CONSTRAINT_OFFSET.
- In der Befehlszeilenschnittstelle wurde die korrekte Verarbeitung von Tabulator- und Zeilenumbruchzeichen im Text sichergestellt, der im Mehrspaltenmodus ausgegeben wird. Unterstützung für die Optionen „—wrap N“, „—wordwrap on“ und „—quote“ wurde beim Mehrspaltenausdruck hinzugefügt. In dem Befehl .import wurde die Korrektur der Spaltennamen sichergestellt.
- Im Abfrageplaner wird zur Beschleunigung der Ausführung großer analytischer Abfragen eine probabilistische Datenstruktur, der Bloom-Filter, verwendet, um die Existenz eines Elements in einer Menge festzustellen. Zur Optimierung der Verarbeitung von UNION und UNION ALL, die SELECT-Ausdrücke mit ORDER BY-Segmenten umfassen, wurde ein balancierter Verschmelzbaum implementiert.
Zusätzlich wird die Veröffentlichung der Version des Pakets sqlite-utils 3.24 hervorgehoben, die Programme und Bibliotheken zur Manipulation von SQLite-Datenbankdateien umfasst. Unterstützt werden Operationen wie das direkte Laden von Daten im JSON-, CSV- oder TSV-Format in die Datenbankdatei mit automatischer Erstellung des erforderlichen Speicherplans, die Ausführung von SQL-Abfragen über CSV-, TSV- und JSON-Dateien, die Durchführung von Volltextsuche in der Datenbank, die Umwandlung von Daten und Speicherplänen in Situationen, in denen ALTER TABLE nicht anwendbar ist (z. B. zur Änderung von Datentypen von Spalten) und das Extrahieren von Spalten in separate Tabellen.
Quelle: opennet.ru
