SQLite 3.54: Shell zeigt Spaltenköpfe, Windows XP fällt weg
SQLite 3.54.0 erschien am 9. Oktober 2026. Die Release-Notes nennen rund 4 Prozent mehr Geschwindigkeit, Spaltenköpfe auch bei leeren Ergebnissen, das neue Kommando .diskused anstelle von sqlite3_analyzer und das Ende der Unterstützung für Windows XP. Für Admins zählen vor allem die Verhaltensänderungen der Shell in Backup- und Wartungsskripten, weniger die Leistungsdaten.

SQLite 3.54.0 ist seit dem 9. Oktober 2026 draußen und bringt keine Sicherheitslücke, aber mehrere Verhaltensänderungen im Kommandozeilenwerkzeug. Spaltenköpfe erscheinen in tabellarischen Ausgaben jetzt auch bei leeren Ergebnissen, der Abschluss von SQL-Befehlen mit einer Zeile „go“ oder „/“ entfällt, und das Hilfsprogramm sqlite3_analyzer gilt als veraltet. Für die Engine selbst nennt das Projekt rund 4 Prozent mehr Geschwindigkeit.
Betroffen sind Admins, die SQLite nicht nur als eingebettete Bibliothek nutzen, sondern per sqlite3-Shell in Backup-, Monitoring- und Wartungsskripten arbeiten. Wer nur Anwendungen betreibt, die SQLite mitbringen, muss nichts tun. Ein Update ist kein Notfall, aber Skripte mit Textauswertung sollten vor dem nächsten Distributions- oder Werkzeug-Update getestet werden.
Was ist passiert?
Laut Release-Log auf sqlite.org erschien Version 3.54.0 am 9. Oktober 2026, die Quellcode-Kennung nennt 15:46 Uhr UTC. Die Vorgängerversion 3.53.4 stammt vom 24. Juli 2026. Die Fachpresse berichtete am 10. Oktober, unter anderem Linuxiac. Die Release-Notes gliedern die Änderungen in CLI, Abfrageplaner, SQL-Funktionen, Windows und Schnittstellen.
Der Abfrageplaner überspringt bei einem UPDATE auf Tabellen mit Ausdrucksindizes die Indexänderung, wenn sich der indizierte Wert nicht ändert. UNION-Abfragen mit LIMIT 1 laufen schneller und mit weniger Speicher, und „expr OR TRUE“ sowie „expr OR FALSE“ werden besser optimiert. Die genannten rund 4 Prozent stammen aus dem Benchmark speedtest1 unter Valgrind auf Linux x64. Das Projekt schränkt selbst ein, dass die Ergebnisse je nach Last, Build und Hardware abweichen.
Für wen ist das relevant?
Relevant ist 3.54 für drei Gruppen. Erstens Admins mit Shell-Skripten, die Ausgaben der sqlite3-Shell parsen. Zweitens Teams, die Windows-Software mit eigener SQLite-Bibliothek ausliefern oder betreiben. Drittens Betreiber, die Datenbankdateien analysieren und dafür sqlite3_analyzer einsetzen. Linux, macOS und BSD sind von den Windows-Änderungen laut Release-Notes ausdrücklich nicht betroffen.
Wann Distributionen 3.54 ausliefern, ist offen. Dazu liegen keine belastbaren Angaben vor. Viele Anwendungen bringen zudem ihre eigene SQLite-Kopie mit, deren Version unabhängig vom System ist.
Was ändert sich in der Shell?
| Änderung | Auswirkung auf Skripte |
|---|---|
| Spaltenköpfe in Spaltenmodi erscheinen standardmäßig auch ohne Treffer ("--titles always") | Leere Abfragen liefern jetzt eine Kopfzeile statt gar keiner Ausgabe. Zeilenzähler wie wc -l können sich ändern. Altes Verhalten per "-titles on" |
| Abschluss per Zeile "go" oder "/" entfällt | Nur mit Compile-Option SQLITE_SHELL_LEGACY_COMMAND_TERMINATOR weiter möglich. Skripte für SQL-Server- oder Oracle-Stil prüfen |
| .diskused ersetzt sqlite3_analyzer | Das Analysewerkzeug ist veraltet, Aufrufe in Wartungsskripten sollten umgestellt werden |
| Neue Optionen --rowcount, --ifmt und --fpfmt für .mode | Ausgabe von Zahlen lässt sich per printf-Format steuern |
| Eingabeaufforderung per SQLITE_PS1 und SQLITE_PS2 anpassbar, NO_COLOR wird beachtet | Kosmetisch, relevant für Terminal-Umgebungen und Logs |
| Unter Unix bleiben Nullbytes bei unformatierten BLOBs erhalten | Binärausgaben werden vollständiger, Weiterverarbeitung prüfen |
Laut CLI-Dokumentation gibt .diskused als Text einen CREATE-TABLE-Befehl für eine Tabelle namens space_used aus. Die lesbare Auswertung steckt in einem Kommentar. Die Ausgabe lässt sich auch in eine separate Datenbank umleiten und dort abfragen. Der Befehl nutzt die neue SQL-Funktion diskused().
Was ändert sich bei Windows und SQL?
| Bereich | Änderung in 3.54.0 |
|---|---|
| Windows | Windows XP, Windows CE und frühere Versionen entfallen, Mindestanforderung ist Windows Vista |
| Windows, Performance | Nicht rekursive Mutexe nutzen Slim Reader/Writer Locks statt CriticalSection |
| Unix | Temporäre Dateien entstehen per O_TMPFILE, wo das System es unterstützt |
| SQL | Neue Formatierung %J und %j für JSON-Zeichenketten, neue Datumsmodifikatoren weekday -N und end of |
| ALTER TABLE | Fehler beim Hinzufügen, Löschen oder Umbenennen von Spalten namens ROWID, _ROWID_ oder OID |
| Authorizer | Der Callback gilt jetzt auch für SQL-Funktionen in DEFAULT-Klauseln von CREATE TABLE |
Wie kritisch ist das?
Die Release-Notes enthalten keine Hinweise auf Sicherheitslücken. Es gibt also keinen Handlungsdruck wie bei einem Patchday. Das Risiko liegt in stillen Verhaltensänderungen: Ein Skript, das bei leerem Ergebnis bisher nichts las, bekommt nun eine Kopfzeile und kann falsche Alarme auslösen. Bei ALTER TABLE mit den Namen ROWID, _ROWID_ oder OID droht künftig ein Fehler statt eines unklaren Verhaltens, was Migrationsskripte treffen kann.
Was sollten Admins jetzt tun?
- Installierte Versionen erfassen: sqlite3 --version auf Servern prüfen und festhalten, welche Anwendungen eine eigene SQLite-Kopie mitbringen.
- Skripte durchsuchen, die sqlite3 aufrufen, besonders solche mit Spaltenmodus und Auswertung leerer Ergebnisse.
- Aufrufe von sqlite3_analyzer durch .diskused ersetzen, sobald 3.54 im Einsatz ist.
- Migrationsskripte auf Spalten namens ROWID, _ROWID_ oder OID prüfen.
- Windows-Umgebungen mit sehr alten Clients oder Embedded-Geräten auf die Vista-Grenze prüfen, bevor 3.54 als Bibliothek eingebunden wird.
- Die neue Version zuerst in einer Testumgebung gegen echte Datenbankdateien und Backup-Skripte laufen lassen.
- Vor dem Wechsel eine konsistente Sicherung der Datenbankdateien anlegen und die Wiederherstellung testen.
- Updates über die Paketverwaltung der Distribution abwarten, wenn kein Bedarf an neuen Funktionen besteht.
Einordnung für Unternehmen
SQLite steht laut Projekt in der Public Domain und steckt in Browsern, Desktop-Anwendungen und vielen Selfhosting-Diensten. Genau deshalb sind Update-Zeitpunkte schwer zu steuern: Das Betriebssystem, die Anwendung und eingebettete Kopien können unterschiedliche Versionen tragen. Ein sauberes Inventar ist deshalb mehr wert als hektisches Aktualisieren.
Die rund 4 Prozent Mehrleistung sind kein Grund für einen Sofortwechsel. Die Verhaltensänderungen der Shell sollten aber bekannt sein, bevor sie über ein reguläres Update unbemerkt in Produktionsskripte gelangen. Die Angaben beruhen auf den Release-Notes und der CLI-Dokumentation des Projekts, ein eigener Praxistest wurde für diesen Beitrag nicht durchgeführt.
Passende Anleitungen auf S-EDV
- FreshRSS nativ auf Ubuntu mit SQLite installieren, ein Beispiel für einen Dienst mit SQLite-Datenbank.
- Vaultwarden auf der Synology sichern, passend zur Sicherung von SQLite-Dateien vor Updates.
- Python 3.15 im Überblick, für Skripte, die das sqlite3-Modul nutzen.


