## SQLite 3.53 : Corrections de bugs clés et nouvelles fonctions SQL
SQLite 3.53 est sorti — un moteur de base de données C compact et embarquable dans le domaine public. La bibliothèque est parfaite pour l'intégration dans des applications sans restrictions de licence. La version précédente, 3.51, remonte à novembre 2025, et la version 3.52 a été annulée. Le consortium finance son développement.
Cette version se concentre sur la stabilité du mode WAL, les améliorations d'ALTER TABLE et les outils JSON. Les optimisations de requêtes boostent les performances pour les fusions de tables et les opérations UNION/INTERSECT/EXCEPT.
Correction critique pour la corruption de base de données en WAL
Un bug provoquant la corruption de la base de données en mode Write-Ahead Logging a été corrigé. Le problème remontait à 2010 (SQLite 3.7.0) et se manifestait lors de conditions de course : plusieurs connexions ouvrant la base de données simultanément et essayant d'écrire/valider des transactions sur le même fichier. L'échec était rare, reproductible uniquement dans des scénarios de test.
Cette correction est critique pour les applications multithreadées utilisant WAL, où l'accès concurrent est la norme. Les développeurs de niveau intermédiaire et senior apprécieront l'élimination de cette vulnérabilité latente sans régressions.
Améliorations DDL : ALTER TABLE et REINDEX EXPRESSIONS
La commande ALTER TABLE supporte désormais la suppression des contraintes NOT NULL et CHECK. Pratique pour l'évolution du schéma sans reconstruction complète des tables.
La nouvelle commande REINDEX EXPRESSIONS reconstruit les index sur des expressions (fonctions sur colonnes ou opérations). Elle est utilisée pour restaurer les index obsolètes après des changements de données.
Scénario d'exemple :
- Un index sur UPPER(column) se dégrade lors des mises à jour.
- REINDEX EXPRESSIONS(name) restaure l'intégrité.
Les triggers temporaires (CREATE TEMP TRIGGER) sur des tables d'autres bases de données peuvent désormais modifier des tables ou lire des données.
Fonctions JSON et améliorations VACUUM
Ajout de json_array_insert() et jsonb_array_insert() pour insérer des éléments dans des tableaux JSON tout en préservant l'ordre et les types.
VACUUM INTO avec des cibles URL supporte désormais reserve=N pour définir le nombre de copies de sauvegarde de la base de données.
Liste des nouvelles fonctionnalités JSON :
- json_array_insert(json, path, value) : insertion par chemin.
- jsonb_array_insert(jsonb, path, value) : variante binaire pour les performances.
- Support pour l'insertion positionnelle et nommée.
Améliorations de l'utilitaire CLI sqlite3
La bibliothèque QRF (Query Result Formatter) est intégrée pour un affichage lisible des résultats de requêtes.
Changements de commandes :
.modeétendu avec de nouveaux formats (tableaux encadrés par défaut).- Les nombres alignés à droite dans la sortie de table.
- Point-virgule
;ignoré après les dot-commands. - Les fichiers .sql/.txt depuis la ligne de commande sont exécutés comme SQL + dot-commands.
.timer once— chronométrage seulement pour la requête suivante..progress -timeout S— interruption en cas de timeout..indexesapplique les motifs aux noms d'index, pas aux tables.
Ces fonctionnalités accélèrent le débogage et l'analyse dans le terminal.
Optimisations et changements de plateformes
Le planificateur de requêtes est optimisé pour les fusions de tables et EXCEPT/INTERSECT/UNION — gains de performance sur de grands ensembles de données.
La conversion float-vers-texte est plus rapide (opérations de type sprintf).
Build WebAssembly : nouveau VFS opfs-wl utilise l'API Web Locks pour le verrouillage, similaire à opfs.
sqlite3_rsync : option -p/--port pour rsync réseau.
Support Windows RT abandonné.
Performances de float-vers-texte améliorées via vectorisation dans les chemins chauds.
Points clés
- Correction d'une condition de course WAL rare mais fatale avec accès multi-connexion.
- ALTER TABLE supprime NOT NULL/CHECK ; REINDEX EXPRESS pour les index basés sur expressions.
- json_array_insert() et CLI avec QRF pour JSON/débogage.
- Optimisations pour UNION/EXCEPT et formatage float.
- WebAssembly : VFS opfs-wl avec Web Locks.
— Editorial Team
Aucun commentaire pour le moment.