La sortie de SQLite 3.38 a été publiée, un SGBD léger 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 à des fins diverses. Le financement des développeurs de SQLite est assuré par un consortium spécialement créé, incluant des entreprises telles qu'Adobe, Oracle, Mozilla, Bentley et Bloomberg.
Principales modifications :
- La prise en charge des opérateurs -> et ->>, facilitant l'extraction de données au format JSON, a été ajoutée. La syntaxe des nouveaux opérateurs est compatible avec MySQL et PostgreSQL.
- Des fonctions pour travailler avec des données au format JSON ont été intégrées dans la version principale, pour lesquelles une compilation avec le drapeau « -DSQLITE_ENABLE_JSON1 » était auparavant requise. Un drapeau « -DSQLITE_OMIT_JSON » a été ajouté pour désactiver le support JSON.
- La fonction unixepoch() a été ajoutée, retournant le temps epoch (le nombre de secondes depuis le 1er janvier 1970).
- Des modificateurs « auto » et « julianday » ont été mis en œuvre pour des fonctions de gestion du temps.
- La fonction SQL printf() a été renommée en format() pour améliorer la compatibilité avec d'autres SGBDs (le nom précédent est toujours pris en charge).
- Une interface sqlite3_error_offset() a été ajoutée pour faciliter la localisation des erreurs dans une requête.
- De nouvelles interfaces de programmation ont été ajoutées à l'implémentation des tables virtuelles : sqlite3_vtab_distinct(), sqlite3_vtab_rhs_value() et sqlite3_vtab_in(), ainsi que de nouveaux types d'opérateurs SQLITE_INDEX_CONSTRAINT_LIMIT et SQLITE_INDEX_CONSTRAINT_OFFSET.
- L'interface de ligne de commande garantit un traitement correct des caractères de tabulation et de retour à la ligne dans le texte affiché en modes multicolonnes. La prise en charge des options « —wrap N », « —wordwrap on » et « —quote » pour l'affichage en plusieurs colonnes a été ajoutée. Dans la commande .import, le réglage des noms de colonnes a été assuré.
- Dans le planificateur de requêtes, une structure probabiliste de filtre de Bloom a été mise en œuvre pour accélérer l'exécution de grandes requêtes analytiques, utilisée pour déterminer la présence d'un élément dans un ensemble. Un arbre d'équilibrage a été utilisé pour optimiser le traitement des blocs UNION et UNION ALL couvrant des expressions SELECT avec des sections ORDER BY.
On peut également noter la publication de la version 3.24 de sqlite-utils, qui comprend des utilitaires et une bibliothèque pour manipuler des fichiers de base de données SQLite. Des opérations telles que le chargement direct de données JSON, CSV ou TSV dans un fichier de base de données avec création automatique du schéma de stockage nécessaire, l'exécution de requêtes SQL sur des fichiers CSV, TSV et JSON, la recherche en texte intégral dans la base de données, la transformation des données et du schéma de stockage dans des situations où ALTER TABLE ne peut pas être appliqué (par exemple, pour changer le type de colonnes), et l'extraction de colonnes dans des tables séparées sont prises en charge.
Source : opennet.ru
