Zusammenfassung

  • Die offizielle Release-Geschichte nennt für 2.0-alpha-2 vom 20. September 2001 vier Schritte: SQLus als Namen verwerfen, Pager und B-Tree als einziges Backend zurückholen, die Dbbe-Abstraktion samt GDBM- und Speichertreiber entfernen und das Urheberrecht am Code aufgeben.
  • Laut SQLite-Dokumentation der Versionsnummern nutzten 1.0 bis 1.0.32 GDBM und 2.0.0 bis 2.8.17 einen eigenen B-Tree. Die erste Ziffer stand damals für das Datenbank-Dateiformat.

Ein großer Rechtsraum, ein enger Produktpfad

Die Public Domain ist eine Aussage darüber, was andere mit dem Code tun dürfen. Die heutige Urheberrechtsseite von SQLite erlaubt Kopieren, Ändern, Übersetzen in Binärform, Verkaufen und Weitergeben der ausgelieferten Bibliothek. Sie verpflichtet das Projekt nicht, verschiedene Speicher-Engines zu pflegen. Das Release-Protokoll führt beide Entscheidungen am selben Tag auf. Einen ursächlichen Zusammenhang behauptet es nicht.

Für Anwendungen war die technische Entscheidung sofort greifbar. In der 1.x-Reihe lag unter der SQL-Oberfläche GDBM. Am 4. April 2001 brachte 1.0.28 eingeschränkte Transaktionen mit Tabellensperren. Rollback und atomarer Commit fehlten noch. Ein Befehl konnte „Transaktion“ heißen, ohne bei einem Ausfall dieselben Eigenschaften zu liefern, die ein Entwickler mit dem Wort verband. Am 15. April kam ein Pager hinzu, laut Protokoll zunächst ungenutzt.

Im Juli schlug das Pendel in eine andere Richtung aus. Die Version 1.0.32 entfernte Pager und B-Tree; vorgesehen waren sie für eine spätere SQL-Server-Bibliothek namens SQLus. Zwei Monate später verschwand dieser Plan aus der Produktlinie: SQLite behielt seinen Namen, bekam die Komponenten zurück und machte sie zum einzigen Backend. Mit Dbbe verschwand die Umschaltstelle, mit GDBM und dem Speichertreiber verschwanden die Alternativen. Die Quelle zeigt keine Gespräche hinter den Kulissen. Sie zeigt, was die ausgelieferte Software tatsächlich enthielt.

Warum die Zwei in 2.0 zählte

Die Versionsdokumentation erklärt die damalige erste Ziffer als Kennzeichen des Dateiformats. Ein Sprung von 1 auf 2 bedeutete damit mehr als eine neue Verpackung. Der B-Tree von 2.x speicherte Textschlüssel und Textdaten; die umfassende Unterstützung für Binärdaten und Unicode gehört erst zur späteren 3.x-Generation. Wer heutige Fähigkeiten in den September 2001 zurückprojiziert, übersieht die Grenzen der damaligen Migration.

Auch der Zeitplan widerspricht einer glatten Gründungserzählung. Am 20. September erschien alpha-2. Die alpha-3 vom 27. September korrigierte Rollback und Sperrverhalten und kehrte beim Dateiformat zur ersten Alpha zurück. Erst der Eintrag vom 28. September nennt 2.0.0 und automatisch gebaute Linux- und Windows-Binärdateien für die Website. Die rechtliche Öffnung war ein Zeitpunkt; ein verlässlich installierbares Produkt brauchte weitere Arbeit.

Wer den Code nahm, konnte eine eigene Speicherlösung bauen. Das ist ein mächtiges Recht. Es ist nicht dasselbe wie ein Anspruch darauf, dass SQLite für alle Nutzer mehrere Treiber entwickelt und prüft. Das Projekt öffnete den Zugang zum Werk und konzentrierte zugleich die offizielle Wartung auf eine Implementierung. Beide Seiten gehören in die Geschichte dieses Releases.