Version SQLite 3.40

La version de SQLite 3.40, un SGBD léger conçu comme une bibliothèque de plug-ins, a été publiée. Le code SQLite est distribué dans le domaine public, c'est-à-dire peut être utilisé sans restrictions et gratuitement à toutes fins. Le soutien financier aux développeurs SQLite est fourni par un consortium spécialement créé, qui comprend des sociétés telles qu'Adobe, Oracle, Mozilla, Bentley et Bloomberg.

Les principaux changements:

  • Une fonctionnalité expérimentale a été implémentée pour compiler SQLite en code intermédiaire WebAssembly, capable de s'exécuter dans un navigateur Web et adapté à l'organisation du travail avec la base de données à partir d'applications Web en JavaScript. Les développeurs Web disposent d'une interface orientée objet de haut niveau pour travailler avec des données dans le style de sql.js ou Node.js, d'une liaison sur l'API C de bas niveau et d'une API basée sur le mécanisme Web Worker, qui permet vous devez créer des gestionnaires asynchrones exécutés dans des threads séparés. Les données que les applications Web stockent dans la version WASM de SQLite peuvent être stockées côté client à l'aide d'OPFS (Origin-Private FileSystem) ou de l'API window.localStorage.
  • Ajout d'une extension de récupération, conçue pour récupérer les données des fichiers endommagés de la base de données. Dans l'interface de ligne de commande, la commande « .recover » est utilisée pour la récupération.
  • Amélioration des performances du planificateur de requêtes. Les restrictions ont été supprimées lors de l'utilisation d'index avec des tables de plus de 63 colonnes (auparavant, l'indexation n'était pas appliquée lors d'opérations avec des colonnes dont le nombre ordinal dépasse 63). Indexation améliorée des valeurs utilisées dans les expressions. Arrêt du chargement des grandes chaînes et des blobs à partir du disque lors du traitement des opérateurs NOT NULL et IS NULL. La matérialisation de vues pour lesquelles un scan complet n'est effectué qu'une seule fois est exclue.
  • Dans la base de code, au lieu du type « char * », un type distinct sqlite3_filename est utilisé pour représenter les noms de fichiers.
  • Ajout de la fonction interne sqlite3_value_encoding().
  • Ajout du mode SQLITE_DBCONFIG_DEFENSIVE, qui interdit de modifier la version du schéma de stockage des données.
  • Des contrôles supplémentaires ont été ajoutés à l'implémentation du paramètre « PRAGMA Integrity_check ». Par exemple, les tables sans l'attribut STRICT ne doivent pas contenir de valeurs numériques dans des colonnes de type TEXT et de valeurs de chaîne avec des nombres dans des colonnes de type NUMERIC. Une vérification de l'ordre correct des lignes dans les tableaux avec l'attribut « SANS ROWID » est également ajoutée.
  • L'expression "VACUUM INTO" prend en compte les paramètres "PRAGMA synchrone".
  • Ajout de l'option d'assemblage SQLITE_MAX_ALLOCATION_SIZE, qui vous permet de limiter la taille des blocs lors de l'allocation de mémoire.
  • L'algorithme de génération de nombres pseudo-aléatoires intégré de SQLite a été déplacé du chiffrement de flux RC4 vers Chacha20.
  • Il est permis d'utiliser des index portant les mêmes noms dans différents schémas de données.
  • Des optimisations des performances ont été apportées pour réduire la charge du processeur d'environ 1 % pendant une activité typique.

Source: opennet.ru

Ajouter un commentaire