Résumé

  • Le journal officiel des versions date du 20 septembre 2001, dans l'entrée 2.0-alpha-2, l'abandon du nom SQLus, le retour du pager et du B-tree comme seul moteur disponible, la suppression de Dbbe et des pilotes GDBM et mémoire, puis la renonciation au droit d'auteur sur le code.
  • Selon l'histoire des numéros de version de SQLite, les versions 1.0 à 1.0.32 utilisaient GDBM ; la branche 2.x reposait sur un B-tree maison limité aux clés et données textuelles. Le premier chiffre désignait alors le format des fichiers.

Une porte juridique grande ouverte

La formule « domaine public » fait facilement oublier la mécanique. La page actuelle de SQLite sur le droit d'auteur décrit la possibilité de copier, modifier, compiler, vendre et redistribuer la bibliothèque livrable. Elle parle des droits d'un utilisateur sur le code. Elle ne promet ni plusieurs moteurs de stockage maintenus, ni la continuité du format d'un fichier. L'entrée du 20 septembre met précisément ces deux questions côte à côte, sans dire que l'une a causé l'autre.

Avant ce virage, SQLite 1.x s'appuyait sur GDBM. Le 4 avril 2001, la version 1.0.28 a ajouté une prise en charge limitée des transactions : verrouillage des tables avec ce moteur, mais pas encore de retour arrière ni de validation atomique. Le mot « transaction » pouvait figurer dans l'interface SQL alors que les garanties que l'on attend d'une transaction restaient tributaires du stockage. Un développeur qui ne lisait que la syntaxe risquait de croire que la promesse était complète.

Le 15 avril, un pager a fait son apparition, explicitement sans être utilisé. Le 23 juillet, la version 1.0.32 a retiré pager et B-tree pour un projet de serveur SQL baptisé SQLus. En septembre, ce plan a été défait : le nom SQLus a disparu, SQLite est resté SQLite, et les deux composants sont revenus comme unique voie de stockage. Dbbe, l'abstraction des moteurs, ainsi que les pilotes GDBM et mémoire ont quitté le produit. Le journal ne livre pas les discussions internes ; il montre un changement de route vérifiable dans les composants publiés.

Le numéro 2 ne changeait pas seulement l'étiquette

Le document sur les versions rappelle qu'à l'époque le premier chiffre correspondait au format de fichier. Passer de 1 à 2 signifiait donc que les données et le logiciel chargé de les lire changeaient de régime. Le B-tree de la série 2 travaillait avec des clés et données textuelles ; les capacités de la série 3 en matière de données binaires et d'Unicode appartiennent à une étape ultérieure. Les attribuer à septembre 2001 enjoliverait l'histoire.

L'alpha du 20 septembre n'était pas encore le produit numéroté 2.0.0. L'entrée du 27 septembre note des corrections de verrouillage et de retour arrière, ainsi qu'un retour du format de fichier à celui de la première alpha. Celle du 28 septembre annonce la construction automatique de binaires Linux et Windows mis en ligne. Entre une annonce de droits et un fichier utilisable, il y avait encore du travail sur le comportement et la distribution.

On pouvait désormais reprendre le code et créer sa propre variante. Mais reprendre n'est pas obtenir du projet qu'il entretienne à nouveau l'ancien choix de moteurs. La décision centrale de 2001 était double : réduire l'obstacle juridique à la copie et concentrer l'ingénierie du produit officiel. La première décision ouvrait des possibilités aux autres ; la seconde fixait le chemin qu'ils trouveraient en téléchargeant SQLite.