SQLite 3.53.0

SQLite 3.53.0 SQLite 3.53.0

Le 9 avril, la version 3.53.0 de la base de données embarquée multiplateforme a été publiée. SQLite. Le code du projet est écrit en C et est distribué comme domaine public.

Modifications :

  • Correction d'un bogue de corruption de la base de données WAL-reset. Voir la news précédente SQLite 3.51.3 avec correction d'un possible endommagement de la base de données en mode WAL.
  • Ajout d'une bibliothèque de mise en forme des résultats des requêtes SQL Query Result Formatter (QRF) pour assurer une lecture aisée à l'écran avec une police à largeur fixe.
  • Méthode ajoutée format sur interface TCL pour accéder à QRF depuis TCL.
    • QRF est maintenant utilisé dans l'outil console sqlite pour le formatage des résultats des requêtes, ce qui améliore leur affichage.
  • Nouvelles fonctionnalités du langage SQL :
    • Améliorations des capacités de la commande ALTER TABLE pour permettre l'ajout et la suppression de contraintes NOT NULL et CHECK.
    • Opérateur REINDEX EXPRESSIONS effectue la réindexation des index d'expressions. Utile pour la récupération des index d'expressions obsolètes..
    • Maintenant les déclencheurs TEMP peuvent modifier et/ou interroger des données provenant des tables du schéma principal.
    • Amélioration de la commande VACUUM INTO: lorsqu'un nom de fichier au format URI est utilisé comme adresse de destination, contenant le paramètre de requête reserve=N (où N est un nombre entre 0 et 255), le volume de réservation pour la copie de la base de données créée est défini sur N.
  • Nouvelles fonctions SQL ajoutées :
  • Mises à jour dans l'outil console:
    • Améliorations significatives de la commande .mode.
    • Grâce à pour l'extension QRF amélioration de la mise en forme des résultats. Par exemple, les nombres sont désormais alignés à droite par défaut en mode de sortie tabulaire..
    • Par défaut, QRF est maintenant utilisé lors de l'utilisation interactive de l'outil console pour afficher les résultats des requêtes dans des blocs formés à l'aide de caractères Unicode de dessin de blocs, ce qui a amélioré la lisibilité. Le format de sortie obsolète est utilisé lors de l'exécution par lots pour garantir la compatibilité.
    • Les points virgules simples (non entourés de guillemets) à la fin des commandes avec un point sont ignorés sans avertissement. C'est une possible incompatibilité !
    • Les commandes .testcase et .check ont été corrigées. Elles fonctionnent maintenant correctement et sont utilisées dans les scripts faisant partie de l'ensemble de tests standard de SQLite inclus dans les sources.
    • Les arguments de ligne de commande correspondant aux modèles *.sql ou *.txt et représentant des noms de fichiers non vides sont lus et interprétés comme des scripts contenant des opérateurs SQL et/ou des [commandes à point]((https://sqlite.org/cli.html#dotcmd).
    • Désormais, l'argument de la commande .timer peut être défini sur once pour que le minuteur ne déclenche que lors de l'exécution de la prochaine requête SQL.
    • Le nouveau paramètre —timeout S de la commande .progress interrompt l'exécution des requêtes SQL après S secondes.
    • La commande .indexes a été modifiée pour que l'argument PATTERN corresponde désormais au nom de l'index, et non au nom de la table indexée (ce qui rend l'argument PATTERN véritablement utile). De plus, plusieurs nouvelles options ont été ajoutées à la commande .indexes.
  • Améliorations de l'API C :
  • Améliorations du planificateur de requêtes :
    • Pour EXCEPT, INTERSECT et UNION, l'algorithme de tri et de fusion est toujours utilisé, car il fonctionne presque toujours plus rapidement que l'utilisation de tables de hachage.
    • Améliorations du mécanisme de sélection de l'ordre des jointures lors de l'exécution de grandes jointures multi-tiers dans un schéma en étoile.
    • Optimisation améliorée de la transformation d'EXISTS en JOIN, de sorte que les conditions JOIN insérées ne doivent pas nécessairement être dans des boucles internes, à condition que toutes les dépendances pour les boucles de transformation d'EXISTS en JOIN soient dans des boucles externes.
    • Optimisation améliorée de omit-noop-join, permettant d'omettre une chaîne de jointures qui n'affectent pas le résultat.
    • Optimisation des requêtes utilisant GROUP BY e1 ORDER BY e2, où e1 et e2 sont identiques, à l'exception de l'ordre de tri ASC/DESC, à l'aide d'un seul index.
    • Optimisation de l'opérateur DISTINCT dans les tables virtuelles dans les cas où le jeu de résultats de la requête ne correspond pas entièrement à la condition ORDER BY.
  • Dans extension de session des nouvelles interfaces ont été ajoutées, permettant à l'application d'ajouter des modifications une par une dans l'objet sqlite3_changegroup :
  • Améliorations dans la conversion entre les nombres à virgule flottante ↔ texte.
    • Le code a été entièrement réécrit pour améliorer les performances.
    • L'arrondi se fait désormais par défaut à 17 chiffres significatifs au lieu de 15, comme c'était le cas dans toutes les versions précédentes. Si nécessaire, cette valeur peut être modifiée en utilisant la fonction sqlite3_db_config avec l'option SQLITE_DBCONFIG_FP_DIGITS (voir point 6g ci-dessus).
  • Ajout de la possibilité récupération automatique de l'index pour résoudre le problème des index d'expressions obsolètes..
  • Dans l'utilitaire console sqlite3_rsync une option -p|—port a été ajoutée.
  • Le support de Windows RT.
  • JavaScript/WASM
    • VFS opfs-wl a été ajoutée, fonctionnellement identique à opfs, mais utilisant pour les verrouillages Web Locks, permettant une distribution des verrouillages plus équitable qu'avec le protocole opfs. opfs-wl requiert la fonction Atomics.waitAsync(), donc des versions plus récentes des navigateurs sont nécessaires pour son fonctionnement par rapport à opfs.

Source : linux.org.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster