La version 3.54 de SQLite a été publiée, une base de données légère proposée sous forme de bibliothèque dynamique. Le code SQLite est distribué dans le domaine public, c'est-à-dire qu'il peut être utilisé sans restrictions et gratuitement à toutes fins. Le soutien financier aux développeurs de SQLite est assuré par un consortium spécialement créé.
Principales modifications :
- Des optimisations ont été effectuées, permettant d'accélérer le test speedtest1 d'environ 4 % par rapport à la version précédente et de 7,5 % par rapport à la version 3.51 d'il y a un an. Les résultats peuvent varier en fonction du type de charge, des options de compilation, du CPU, du compilateur et du système d'exploitation.
- Dans l'utilitaire sqlite, la possibilité d'utiliser des séquences d'échappement a été mise en œuvre pour afficher des informations supplémentaires sur l'état dans l'invite de commande, par exemple, «/x» pour des informations sur la transaction ouverte, «/r» pour une base de données en mode lecture seule, «/m» pour une base de données stockée uniquement en mémoire vive, «/f» pour insérer le nom du fichier de la base de données, «/v» pour afficher la version de SQLite, «/:» et «/;» pour construire des expressions conditionnelles, «/u» et «/h» pour insérer le nom d'utilisateur et le nom d'hôte. La configuration du modèle d'invite de commande est réalisée via les variables d'environnement SQLITE_PS1 et SQLITE_PS2.
- Dans l'utilitaire sqlite, la commande «.mode» a été enrichie des options «—ifmt», «—rowcount on» et «—titles always» pour ajuster le format des nombres à virgule flottante et gérer l'affichage du compteur de lignes et du titre. Le gestionnaire de la commande «.diskused» a été remplacé. Par défaut, le titre avec les noms de colonnes est conservé si la requête ne renvoie aucune ligne, et le nettoyage des octets nuls lors de l'affichage des blobs dans les systèmes Unix est désactivé.
- Dans le planificateur de requêtes, l'exécution des opérations UPDATE a été accélérée dans les situations où il existe des index sur des expressions, mais où la valeur indexée ne change pas. L'exécution des opérations «expr OR TRUE» et «expr OR FALSE» a été optimisée. L'expression DISTINCT dans les sous-requêtes SELECT à droite de l'opérateur «IN» est maintenant ignorée. Le traitement a été accéléré et la consommation de mémoire réduite lors de l'utilisation d'une expression «LIMIT 1» dans les requêtes UNION.
- Dans la commande ALTER TABLE, un message d'erreur est désormais renvoyé pour toute tentative d'ajout, de suppression ou de renommer des colonnes avec des noms réservés «ROWID», «_ROWID_» et «OID».
- Une fonction SQL diskused() a été ajoutée pour évaluer l'espace que les tables et les index occupent sur le support.
- Dans les fonctions SQL printf() et format(), des substitutions « %J » et « %j » ont été ajoutées pour l'affichage au format JSON.
- Des modificateurs « weekday -N » et « end of » ont été ajoutés à la fonction de gestion des dates et heures.
- Sur les systèmes prenant en charge le drapeau O_TMPFILE dans la fonction open(), ce mode est activé lors de la création de fichiers temporaires.
- Le support des anciennes versions de Windows, y compris Windows CE et Windows XP, a été supprimé. La version minimale requise est Windows Vista.
Source : opennet.ru
