La version 3.28 de SQLite est disponible avec de nouvelles fonctionnalités et des améliorations de performances,
notamment pour les fonctions Window

SQLite est un moteur de base de données relationnelle léger accessible par le langage SQL. Contrairement aux serveurs de bases de données traditionnels, comme MySQL ou PostgreSQL, sa particularité est de ne pas reproduire le schéma habituel client-serveur, mais d'être directement intégrée aux programmes. L'intégralité de la base de données (déclarations, tables, index et données) est en effet stockée dans un fichier indépendant de la plateforme. Grâce à son extrême légèreté, entre autres, il est utilisé dans de nombreux logiciels grand public, et est également très populaire sur les systèmes embarqués, notamment sur la plupart des smartphones modernes.

La sorte de sa version 3.25 remonte à septembre 2018. Dans la version 3.25, SQLite a apporté un support pour les fonctions Window, quelques améliorations sur la commande ALTER TABLE et sur l’optimiseur de requêtes, ainsi que plusieurs autres nouveautés. À partir de cette version, SQLite a ajouté un support pour renommer des colonnes dans une table en utilisant ALTER TABLE table RENAME COLUMN oldname TO newname. Le nom de la colonne est modifié à la fois dans la définition de la table elle-même et dans tous les index, déclencheurs et vues qui font référence à la colonne. Si le changement de nom de colonne entraîne une ambiguïté sémantique dans un déclencheur ou une vue, alors RENAME COLUMN échoue avec une erreur et aucune modification n'est appliquée.

Nom : sqlite-sgbd-500px.png
Affichages : 4222
Taille : 16,5 Ko

La nouvelle version de SQLite, la version 3.28 apporte également son lot de nouvelles fonctionnalités et d’améliorations. Les nouveautés les plus notables concernent les améliorations apportées aux fonctions Window, des améliorations sur l’interface TCL, l’ajout de nouvelles API, une gestion plus robuste des fichiers de base de données corrompus, et diverses autres améliorations. Les améliorations apportées aux fonctions Window concernent essentiellement des ajouts de nouvelles clauses et de nouveaux supports. On note l’ajout d’une nouvelle clause facultative “EXCLUDE” qui dispose de quatre variantes à savoir :

  • EXCLUDE NO OTHERS : c'est la valeur par défaut. Dans ce cas, aucune ligne n'est exclue du cadre de la fonction Window comme défini par ses limites de début et de fin ;
  • EXCLUDE CURRENT ROW : dans ce cas, la ligne actuelle est exclue du cadre de la fonction. Les pairs de la ligne actuelle restent dans la trame pour les types de trames GROUPS et RANGE ;
  • EXCLUDE GROUPE : dans ce cas, la ligne actuelle et toutes les autres lignes qui sont des homologues de la ligne actuelle sont exclues du cadre. Lors du traitement d'une clause EXCLUDE, toutes les lignes ayant les mêmes valeurs ORDER BY ou toutes les lignes de la partition en l'absence de clause ORDER BY sont considérées comme des pairs, même si le type de trame est ROWS ;
  • EXCLUDE TIES : dans ce dernier cas, la ligne actuelle fait partie du cadre, mais ses homologues sont exclus.

Toujours au niveau des fonctions Window, il y a l’ajout d’un support pour le chaînage des fenêtres, l’ajout d’un support pour les cardes GROUPS, l’ajout d’un support pour les limites “<expr> PRECEDING” et “<expr> FOLLOWING” dans les cadres RANGE, l’ajout d’une nouvelle interface sqlite3_stmt_isexplain pour déterminer si une instruction préparée est une EXPLAIN ou non et l’amélioration de VACUUM INTO afin qu'il fonctionne pour les bases de données en lecture seule. Du côté de l’interface TCL, il y a eu l’ajout de l’option -returntype à la méthode function et l’ajout d’une nouvelle méthode bind_fallback.

Les améliorations apportées à la CLI sont nombreuses. À ce niveau on note l’ajout de l'API sqlite3_value_frombind() pour déterminer si l'argument d'une fonction SQL provient d'un paramètre lié, l’ajout d’un support pour les paramètres liés et la commande .parameter, la correction de la fonction writefile() de sorte que, lorsqu'elle crée de nouveaux répertoires le long du chemin d'un nouveau fichier, elle leur octroie des autorisations umask plutôt que les mêmes autorisations que le fichier, l’ajout de l'extension fossildelta.c permettant de créer, d'appliquer et de déconstruire le format delta de fichier DVCS Fossil utilisé par l'extension RBU et quelques autres améliorations. Pour SQLite 3.28, on note également les efforts fournis pour rendre les requêtes encore plus rapides. La gestion des fichiers de base de données corrompus a été revue pour garantir plus de robustesse et les performances du moteur de base de données ont également fait l’objet d’améliorations.

Source : SQLite

Et vous ?

Que pensez-vous des nouveautés et améliorations de SQLite 3.28 ? Lesquelles estimez-vous les plus utiles ?

Voir aussi

SQLite 3.25 est disponible, le moteur de base de données léger apporte le support des fonctions Window, un meilleur optimiseur de requêtes et plus

SQLite est 35 % plus rapide que le système de fichiers, selon les tests des développeurs du moteur de base de données

La version 3.18 de SQLite est disponible, avec un nouvel identifiant utilisant le hachage SHA3-256 et l'ajout de la commande PRAGMA optimize

Le moteur de base de données SQLite est disponible en version 3.17, avec des améliorations de performance à plusieurs niveaux et trois correctifs

Microsoft : SQLite intègre les fonctionnalités système de Windows 10, pour améliorer l'accès aux données