Zurück zur Startseite

SQLite 3.53: WAL-Behebung und neue Funktionen

SQLite 3.53 behebt kritischen Datenbank-Korruptionsfehler im WAL-Modus bei parallelen Verbindungen. Hinzugefügt: REINDEX EXPRESSIONS, json_array_insert und CLI-Verbesserungen mit QRF. Optimierte UNION/EXCEPT-Abfragen und Float-Konvertierungen.

SQLite 3.53 ist da: WAL-Bug behoben, JSON verbessert
Advertisement 728x90

SQLite 3.53: Wichtige Fehlerbehebungen und neue SQL-Funktionen

SQLite 3.53 ist erschienen – eine kompakte, einbettbare Datenbank-Engine in C im Public Domain. Die Bibliothek eignet sich ideal zur Integration in Anwendungen ohne Lizenzbeschränkungen. Die vorherige Version 3.51 stammt aus November 2025, Version 3.52 wurde gestrichen. Das Konsortium finanziert die Entwicklung.

Diese Version konzentriert sich auf Stabilität im WAL-Modus, Erweiterungen für ALTER TABLE und JSON-Tools. Query-Optimierungen steigern die Leistung bei Table-Merges sowie UNION/INTERSECT/EXCEPT-Operationen.

Kritische Behebung für Datenbankkorruption im WAL

Ein Fehler, der zu Datenbankkorruption im Write-Ahead-Logging-Modus führte, wurde behoben. Das Problem bestand seit 2010 (SQLite 3.7.0) und trat bei Race Conditions auf: mehrere Verbindungen öffnen die Datenbank gleichzeitig und versuchen, Transaktionen in dieselbe Datei zu schreiben oder zu committen. Der Fehler war selten und nur in Testszenarien reproduzierbar.

Google AdInline article slot

Diese Korrektur ist entscheidend für mehrthreadige Anwendungen mit WAL, bei denen paralleler Zugriff üblich ist. Mittel- und Senior-Entwickler werden es zu schätzen wissen, diese latente Schwachstelle ohne Regressionsfehler zu beseitigen.

DDL-Erweiterungen: ALTER TABLE und REINDEX EXPRESSIONS

Der ALTER TABLE-Befehl unterstützt nun das Entfernen von NOT NULL- und CHECK-Constraints. Nützlich für die schrittweise Weiterentwicklung des Schemas ohne Neuerstellung der gesamten Tabelle.

Der neue REINDEX EXPRESSIONS-Befehl baut Indizes auf Ausdrücken (Funktionen über Spalten oder Operationen) neu auf. Er dient der Wiederherstellung veralteter Indizes nach Datenänderungen.

Google AdInline article slot

Beispielszenario:

  • Ein Index auf UPPER(column) verschlechtert sich bei Updates.
  • REINDEX EXPRESSIONS(name) stellt die Integrität wieder her.

Temporäre Trigger (CREATE TEMP TRIGGER) auf Tabellen aus anderen Datenbanken können nun Tabellen modifizieren oder Daten lesen.

JSON-Funktionen und VACUUM-Verbesserungen

Neue Funktionen json_array_insert() und jsonb_array_insert() zum Einfügen von Elementen in JSON-Arrays unter Erhalt von Reihenfolge und Typen.

Google AdInline article slot

VACUUM INTO mit URL-Zielen unterstützt nun reserve=N zur Festlegung der Anzahl von Backup-Kopien der Datenbank.

Liste neuer JSON-Features:

  • json_array_insert(json, path, value): Einfügen per Pfad.
  • jsonb_array_insert(jsonb, path, value): binäre Variante für bessere Performance.
  • Unterstützung für positions- und namensbasiertes Einfügen.

Verbesserungen am sqlite3 CLI-Utility

Die QRF (Query Result Formatter)-Bibliothek ist integriert für übersichtliche Query-Result-Ausgaben.

Befehlsänderungen:

  • .mode erweitert um neue Formate (gerahmte Tabellen standardmäßig).
  • Zahlen rechtsbündig in Tabellenausgaben.
  • Semikolon ; nach Dot-Commands ignoriert.
  • .sql/.txt-Dateien von der Kommandozeile werden als SQL + Dot-Commands ausgeführt.
  • .timer once — Timing nur für die nächste Query.
  • .progress -timeout S — Unterbrechung bei Timeout.
  • .indexes wendet Muster auf Indexnamen an, nicht auf Tabellen.

Diese Features beschleunigen Debugging und Analyse im Terminal.

Optimierungen und Plattformänderungen

Der Query Planner ist für Table-Merges und EXCEPT/INTERSECT/UNION optimiert – Leistungsgewinne bei großen Datensätzen.

Float-zu-Text-Konvertierung ist schneller (sprintf-ähnliche Operationen).

WebAssembly-Build: neues VFS opfs-wl nutzt Web Locks API für Locking, ähnlich wie opfs.

sqlite3_rsync: -p/--port-Option für Netzwerk-Rsync.

Windows RT-Unterstützung eingestellt.

Float-zu-Text-Performance durch Vektorisierung in Hot Paths verbessert.

Wichtige Punkte

  • Seltener, aber fataler WAL-Race bei Multi-Connection-Zugriff behoben.
  • ALTER TABLE entfernt NOT NULL/CHECK; REINDEX EXPRESS für ausdrucksbasierte Indizes.
  • json_array_insert() und CLI mit QRF für JSON/Debugging.
  • Optimierungen für UNION/EXCEPT und Float-Formatierung.
  • WebAssembly: opfs-wl VFS mit Web Locks.

— Editorial Team

Advertisement 728x90

Weiterlesen