Publication de la base de données SQLite 3.35

La version 3.35 de SQLite a Ă©tĂ© publiĂ©e, une base de donnĂ©es lĂ©gĂšre sous forme de bibliothĂšque dynamique. Le code de SQLite est distribuĂ© dans le domaine public, c’est-Ă -dire qu'il peut ĂȘtre utilisĂ© sans restrictions et gratuitement Ă  toutes fins. Le soutien financier des dĂ©veloppeurs de SQLite est assurĂ© par un consortium spĂ©cialement créé, composĂ© d’entreprises telles qu’Adobe, Oracle, Mozilla, Bentley et Bloomberg.

Principales modifications :

  • Des fonctions mathĂ©matiques intĂ©grĂ©es (log2(), cos(), tg(), exp(), ln(), pow(), etc.) ont Ă©tĂ© ajoutĂ©es, pouvant ĂȘtre utilisĂ©es dans SQL. Pour activer ces fonctions intĂ©grĂ©es, une compilation avec l’option « -DSQLITE_ENABLE_MATH_FUNCTIONS » est requise.
  • La prise en charge de l'expression « ALTER TABLE DROP COLUMN » a Ă©tĂ© implĂ©mentĂ©e pour la suppression de colonnes d’une table et la suppression des donnĂ©es prĂ©cĂ©demment stockĂ©es dans cette colonne.
  • L’implĂ©mentation de l’opĂ©ration UPSERT (ajouter ou modifier) a Ă©tĂ© Ă©tendue, permettant, Ă  travers des expressions telles que « INSERT 
 ON CONFLICT DO NOTHING/UPDATE », d’ignorer une erreur ou de mettre Ă  jour au lieu d’insĂ©rer en cas de dĂ©faut d'ajout de donnĂ©es via « INSERT » (par exemple, si l’enregistrement existe dĂ©jĂ , on peut effectuer un UPDATE au lieu de INSERT). Dans la nouvelle version, il est autorisĂ© de spĂ©cifier plusieurs blocs « ON CONFLICT », qui seront traitĂ©s dans l’ordre d’apparition. Dans le dernier bloc « ON CONFLICT », il est permis de ne pas indiquer le paramĂštre de dĂ©finition de conflit pour utiliser « DO UPDATE ».
  • Pour les opĂ©rations DELETE, INSERT et UPDATE, la prise en charge de l'expression RETURNING a Ă©tĂ© ajoutĂ©e, permettant d'afficher le contenu de l'enregistrement supprimĂ©, insĂ©rĂ© ou modifiĂ©. Par exemple, l’expression « insert into 
 returning id » renverra l’identifiant de la ligne ajoutĂ©e, tandis que « update 
 set price = price * 1.10 returning price » renverra la valeur modifiĂ©e du prix.
  • Pour les expressions de table gĂ©nĂ©rales (Common Table Expression, CTE), qui permettent d’utiliser des ensembles de rĂ©sultats nommĂ©s temporaires dĂ©finis par l’opĂ©rateur WITH, le choix entre les modes « MATERIALIZED » et « NOT MATERIALIZED » est maintenant autorisĂ©. « MATERIALIZED » implique la mise en cache de la requĂȘte dĂ©finie dans la vue dans une table physique distincte, suivie de l'extraction des donnĂ©es de cette table, tandis qu'avec « NOT MATERIALIZED », chaque accĂšs Ă  la vue entraĂźnera des requĂȘtes rĂ©pĂ©tĂ©es. Au dĂ©part, SQLite utilisait par dĂ©faut le mode « NOT MATERIALIZED », mais dĂ©sormais pour les CTE utilisĂ©s plusieurs fois, il a Ă©tĂ© modifiĂ© en « MATERIALIZED ».
  • RĂ©duction de la consommation de mĂ©moire lors de l'exĂ©cution de l'opĂ©ration VACUUM pour les bases de donnĂ©es contenant de trĂšs grandes valeurs avec les types TEXT ou BLOB.
  • Des efforts ont Ă©tĂ© dĂ©ployĂ©s pour amĂ©liorer les performances de l'optimiseur et du planificateur de requĂȘtes :
    • Des optimisations ont Ă©tĂ© ajoutĂ©es lors de l'utilisation des fonctions min et max avec l'expression « IN ».
    • L'exĂ©cution de l'opĂ©rateur EXISTS a Ă©tĂ© accĂ©lĂ©rĂ©e.
    • La mise en Ɠuvre des sous-requĂȘtes Ă  partir des expressions UNION ALL utilisĂ©es dans le cadre des JOIN a Ă©tĂ© rĂ©alisĂ©e.
    • Un index a Ă©tĂ© utilisĂ© pour les expressions IS NOT NULL.
    • La conversion de « x IS NULL » et « x IS NOT NULL » en FALSE ou TRUE a Ă©tĂ© assurĂ©e pour les colonnes ayant la caractĂ©ristique « NOT NULL ».
    • La vĂ©rification des clĂ©s Ă©trangĂšres a Ă©tĂ© omise dans UPDATE si l'opĂ©ration ne modifie pas les colonnes liĂ©es Ă  la clĂ© Ă©trangĂšre.
    • Le dĂ©placement de parties du bloc WHERE dans des sous-requĂȘtes contenant des fonctions de fenĂȘtres a Ă©tĂ© autorisĂ©, si ces parties sont limitĂ©es Ă  travailler avec des constantes et des copies d'expressions des blocs « PARTITION BY » utilisĂ©s dans les fonctions de fenĂȘtres.
  • Modifications de l'interface de ligne de commande :
    • La commande « .filectrl data_version » a Ă©tĂ© ajoutĂ©e.
    • Les commandes « .once » et « .output » ont Ă©tĂ© mises Ă  jour pour supporter la transmission de la sortie Ă  un gestionnaire appelĂ© via des canaux anonymes (« | »).
    • Les arguments « stmt » et « vmstep » ont Ă©tĂ© ajoutĂ©s Ă  la commande « .stats » pour afficher des statistiques sur les expressions et les compteurs de la machine virtuelle.

Source : opennet.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