SQLite 3.22 kann ZIP-Dateien lesen und schreiben

Die schlanke Datenbank baut eine virtuelle Tabelle aus dem Inhalt von ZIP-Archiven auf. Neu ist zudem die Möglichkeit, Datenbanken an ausführbare Dateien anzuhängen, die sie direkt verarbeiten können.

In Pocket speichern vorlesen Druckansicht 34 Kommentare lesen
SQLite 3.22 kann ZIP-Dateien lesen und schreiben
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Die eingebettete Datenbank SQLite bringt in Version 3.22 einige interessante Neuerungen. Unter anderem haben die Macher die Befehle für die Kommandozeile um Funktionen erweitert: .schema zeigt die Struktur einer virtuellen Tabelle an, und SQL-Archive lassen sich mit dem .archive-Befehl auslesen. Der .expert-Befehl, der Vorschläge zu passenden Indizes für Abfragen liefert, ist derzeit als experimentell gekennzeichnet.

Bei den Erweiterungen ist vor allem das Zipfile-Modul zu nennen, mit dem sich ZIP-Archive wahlweise als virtuelle Tabelle zum Lesen und Scheiben oder über eine Table-valued-Funktion nur zum Lesen öffnen lassen. Die Archive müssen mit dem deflate-Algorithmus gepackt sein und dürfen nicht mehrere Dateien umspannen. Mit ZIP64 arbeitet SQLite derzeit nicht zusammen. Die virtuelle Tabelle enthält neben den Namen, Zeit- und Größenangaben der einzelnen Dateien jeweils die rohen (gepackten) und die entpackten Daten.

Die Macher haben zudem die fileio.c-Extension zum Lesen und schreiben von Dateien um die Funktion fsdir() erweitert, die ein Verzeichnis als Table-valued-Funktion erstellt. Append VFS ist eine Erweiterung für die Zugriffsschicht zum Betriebssystem, das Virtual File System (VFS), und ermöglicht das Anhängen von Datenbanken an andere Dateien. So können Entwickler beispielsweise eine Datenbank mit einer ausführbaren Datei verbinden, und diese kann anschließend auf die angehängten Daten zugreifen.

Zu den weitere Neuerungen gehört ein überarbeitet Tracing mit sqlite3_trace_v2(), das die vorhandenen Interfaces sqlite3_tracee() und sqlite3_profile() ersetzen soll, die beide als überholt (deprecated) gekennzeichnet sind. Für R-Baum-Indexstrukturen kommt der Befehl rtreecheck() hinzu, der einen Integritäts-Check durchführt. Ebenfalls neu ist, dass Datenbanken im Write-Ahead-Logging-Modus sich auch dann lesen lassen, wenn die Anwendung keine Schreibgenehmigung für das Verzeichnis beziehungsweise die Datei mit den Daten hat. Voraussetzung ist, dass die zugehörigen -shm- und -wal-Dateien bereits existieren.

Weitere Details lassen sich den Release Notes entnehmen. SQLite ist eine relationale Datenbank, die als Softwarebibliothek umgesetzt ist. Vor allem durch den Verzicht auf einen eigenen Serverprozess ist sie schlanker als andere Datenbanksysteme. Sie greift direkt lesend und schreibend auf Dateien zu. Auf der Downloadseite stehen neben dem Sourcecode vorkompilierte Binaries unter anderem für Windows, Linux, macOS und Android bereit. (rme)