SQLite 3.33.0 est disponible avec la prise en charge de « UPDATE FROM » suivant la syntaxe de PostgreSQL,
améliore l'extension ieee754 pour la prise en charge des numéros binary64 de l'IEEE 754
Le paquet SQLite est une bibliothèque logicielle développée en C qui met en œuvre un moteur de base de données SQL autonome, sans serveur, transactionnel et sans configuration. C’est un progiciel qui est connu pour sa construction et son fonctionnement à l'aide d'une plateforme LFS-10.0. Une nouvelle version vient d’être publiée, SQLite 3.33.0, avec de nouvelles fonctionnalités, comme la prise en charge de la commande UPDATE FROM suivant la syntaxe de PostgreSQL, etc., et la taille maximale des fichiers de bases de données a été augmentée à 281 To.
Prise en charge de UPDATE FROM suivant la syntaxe PostgreSQL
Selon l'équipe de SQLite, l'idée de UPDATE FROM est une extension de SQL qui permet à une instruction UPDATE d'être pilotée par d'autres tables de la base de données. La table “cible” est la table spécifique qui est mise à jour. Avec UPDATE FROM, vous pouvez comparer la table cible à d'autres tables de la base de données afin de déterminer quelles lignes doivent être mises à jour et quelles doivent être les nouvelles valeurs de ces lignes. À partir de la version 3.33.0, la commande UPDATE FROM est maintenant prise en charge dans SQLite.
D'autres moteurs de bases de données relationnelles implémentent aussi UPDATE FROM, mais comme la construction ne fait pas partie des normes SQL, chaque produit implémente UPDATE FROM différemment. L'implémentation SQLite s'efforce d'être compatible avec PostgreSQL. Les implémentations SQL Server et MySQL de la même idée fonctionnent un peu différemment.
Extension de l’instruction PRAGMA integrity_check
PRAGMA integrity_check effectue un formatage de bas niveau et un contrôle de cohérence de la base de données. Il recherche les entrées de table ou d'index qui sont hors séquence, les erreurs pour les contraintes CHECK, UNIQUE et NOT NULL, l’intégrité de freelist et les entrées d'index manquantes ou excédentaires, les pages manquantes et les documents mal formatés. Si PRAGMA integrity_check trouve des problèmes, des chaînes de caractères sont renvoyées (sous la forme de lignes multiples avec une seule colonne par ligne) qui décrivent les problèmes.
PRAGMA integrity_check retournera au maximum N erreurs avant que l'analyse ne s'arrête, la valeur de N est de 100 par défaut. Si PRAGMA integrity_check ne trouve aucune erreur, une seule ligne avec la valeur “OK” est retournée. Le cas habituel est que l'ensemble du fichier de la base de données est vérifié. Si l'argument est TABLENAME, la vérification n'est effectuée dans ce cas que pour la table nommée et ses index associés. C'est ce qu'on appelle un “contrôle d'intégrité partiel” . De même, un seul sous-ensemble de la base de données est contrôlé.
Ainsi, les erreurs telles que les sections non utilisées du fichier ou l'utilisation d'une même section du fichier en double par deux ou plusieurs tables ne peuvent être détectées. Lors d'un contrôle d'intégrité partiel, freelists n'est vérifiée que si TABLENAME est sqlite_schema ou l'un de ses alias. La prise en charge des contrôles d'intégrité partiels a été ajoutée avec la version 3.33.0.
Ajout de l’extension décimale pour faire de l’arithmétique décimale de précision arbitraire
L'extension décimale ne fait pas (actuellement) partie de la fusion de SQLite, mais elle est incluse dans le CLI et trois fonctions mathématiques sont disponibles, dont decimal_add(A,B), decimal_sub(A,B) et la fonction decimal_mul(A,B). Ces trois fonctions ajoutent, soustraient et multiplient respectivement leurs arguments et renvoient une nouvelle chaîne de texte qui est la représentation décimale du résultat. Il n'y a pas d'opérateur de division pour le moment. Il est possible d’utiliser decimal_cmp(A,B) pour comparer deux valeurs décimales.
Le résultat sera négatif, nul ou positif si A est inférieur, égal ou supérieur à B, respectivement. La fonction decimal_sum(X) est un agrégat, comme la fonction agrégat built-in sum(), sauf que decimal_sum() calcule son résultat avec une précision arbitraire et est donc précise. Pour finir, l'extension décimale fournit les séquences de collationnement “décimales” qui comparent les chaînes de texte décimales dans l'ordre numérique.
Améliorations de l'extension ieee754 dans le but de travailler avec les numéros binary64 de l'IEEE 754
Le texte produit par la forme à un argument de la fonction ieee754() est lisible pour l'homme, mais il est difficile à utiliser dans le cadre d'une expression plus large. C'est pourquoi les routines ieee754_mantissa() et ieee754_exponent() ont été ajoutées afin de renvoyer les valeurs M et E correspondant à la valeur F de leur argument unique.
Amélioration de la CLI
- ajout de quatre nouveaux modes de sortie : “box”, "json", "markdown", et "table" ;
- le mode de sortie "colonne" développe automatiquement les colonnes pour contenir la ligne de sortie la plus longue et active automatiquement ".header" s'il n'a pas été défini auparavant ;
- le mode de sortie "quote" respecte le ".separator" ;
- l'extension décimale et l'extension ieee754 sont intégrées à la CLI.
Source : SQLite 3.33.0
Et vous ?
Qu'en pensez-vous ?
Voir aussi
SQLite 3.32.0 est disponible et apporte la prise en charge de l'analyse approximative à l'aide de la commande PRAGMA analysis_limit
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 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
Partager