> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog 2025

> Changelog de 2025

<div id="table-of-contents">
  ### Table des matières
</div>

**[Version de ClickHouse v25.12, 2025-12-18](#2512)**<br />
**[Version de ClickHouse v25.11, 2025-11-27](#2511)**<br />
**[Version de ClickHouse v25.10, 2025-10-30](#2510)**<br />
**[Version de ClickHouse v25.9, 2025-09-25](#259)**<br />
**[Version de ClickHouse v25.8 LTS, 2025-08-28](#258)**<br />
**[Version de ClickHouse v25.7, 2025-07-24](#257)**<br />
**[Version de ClickHouse v25.6, 2025-06-26](#256)**<br />
**[Version de ClickHouse v25.5, 2025-05-22](#255)**<br />
**[Version de ClickHouse v25.4, 2025-04-22](#254)**<br />
**[Version de ClickHouse v25.3 LTS, 2025-03-20](#253)**<br />
**[Version de ClickHouse v25.2, 2025-02-27](#252)**<br />
**[Version de ClickHouse v25.1, 2025-01-28](#251)**<br />
**[Changelog 2024](/fr/resources/changelogs/oss/2024)**<br />
**[Changelog 2023](/fr/resources/changelogs/oss/2023)**<br />
**[Changelog 2022](/fr/resources/changelogs/oss/2022)**<br />
**[Changelog 2021](/fr/resources/changelogs/oss/2021)**<br />
**[Changelog 2020](/fr/resources/changelogs/oss/2020)**<br />
**[Changelog 2019](/fr/resources/changelogs/oss/2019)**<br />
**[Changelog 2018](/fr/resources/changelogs/oss/2018)**<br />
**[Changelog 2017](/fr/resources/changelogs/oss/2017)**<br />

<div id="2512">
  ### Version 25.12 de ClickHouse, 2025-12-18
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* ALTER MODIFY COLUMN exige désormais un DEFAULT explicite lors de la conversion de colonnes Nullable en types non null. Auparavant, ce type d’ALTER pouvait se bloquer avec des erreurs cannot convert null to not null ; désormais, les valeurs NULL sont remplacées par l’expression par défaut de la colonne. Résout [#5985](https://github.com/ClickHouse/ClickHouse/issues/5985). [#84770](https://github.com/ClickHouse/ClickHouse/pull/84770) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Le tokenizer Ngram ne renverra plus de ngrams dont la longueur est inférieure à la valeur N avec laquelle il a été configuré. Search ne renverra aucune ligne lorsque les tokens de recherche sont vides. [#89757](https://github.com/ClickHouse/ClickHouse/pull/89757) ([George Larionov](https://github.com/george-larionov)).
* Lorsqu’une colonne est modifiée de `String` vers `Nullable(String)`, aucune mutation ne sera effectuée sur les données. En revanche, pour la fonction d’agrégation `uniq`, une structure de données différente est utilisée : pour une colonne nullable, `AggregateFunctionNull` est utilisé avec un agrégateur uniq imbriqué. `AggregateFunctionNull` sérialise un indicateur booléen supplémentaire. Cela rend le fichier de statistiques incompatible. Le correctif consiste à ajouter un indicateur pour enregistrer s’il s’agit d’une colonne nullable pendant la sérialisation. Le format des statistiques a changé, et le serveur peut échouer si des statistiques existent dans l’ancien format. Cette PR [#90904](https://github.com/ClickHouse/ClickHouse/pull/90904) corrigera le plantage et lèvera une exception lorsque les statistiques existantes utilisent l’ancien format. Pour éviter l’exception, exécutez `ALTER TABLE table MATERIALIZE STATISTICS ALL` afin de régénérer les statistiques et corriger le problème. [#90311](https://github.com/ClickHouse/ClickHouse/pull/90311) ([Han Fei](https://github.com/hanfei1991)).
* Suppression des settings `allow_not_comparable_types_in_order_by`/`allow_not_comparable_types_in_comparison_functions`. Autoriser des types non comparables dans ORDER BY ou dans des fonctions de comparaison peut entraîner des erreurs logiques et des résultats inattendus. Résout [#90028](https://github.com/ClickHouse/ClickHouse/issues/90028). [#90527](https://github.com/ClickHouse/ClickHouse/pull/90527) ([Pavel Kruglov](https://github.com/Avogar)).
* La valeur par défaut du setting `check_query_single_value_result` a été modifiée de `true` à `false`. Cela fait que `CHECK TABLE` renvoie des résultats détaillés par part au lieu d’un résultat agrégé (1 = OK, 0 = erreurs détectées). Par rapport au comportement précédent, cela correspond probablement mieux à ce que l’utilisateur souhaite. [#91009](https://github.com/ClickHouse/ClickHouse/pull/91009) ([Robert Schulze](https://github.com/rschu1ze)).
* Plusieurs corrections concernant les index implicites. Le schéma affiché ou stocké (métadonnées Keeper) n’inclura pas les index implicites, comme ceux créés par les settings `add_minmax_index_for_numeric_columns` ou `add_minmax_index_for_string_columns`. Cela peut provoquer des erreurs de métadonnées lorsqu’une table ReplicatedMergeTree est créée ou mise à jour dans une version plus récente, alors qu’une replica exécute encore une version plus ancienne. Dans ce cas, envoyez les DDL à l’ancienne replica jusqu’à ce que le cluster soit entièrement mis à niveau. [#91429](https://github.com/ClickHouse/ClickHouse/pull/91429) ([Raúl Marín](https://github.com/Algunenano)).
* Mise à jour de clickhouse-client afin qu’il renvoie un code de sortie non nul (159 - TIMEOUT\_EXCEEDED) lorsqu’une query expire à cause de `receive_timeout`. Auparavant, les timeouts renvoyaient le code de sortie 0 (succès), ce qui rendait difficile la détection des échecs dus à un timeout dans les scripts et l’automatisation. [#91432](https://github.com/ClickHouse/ClickHouse/pull/91432) ([Sav](https://github.com/sberss)).
* Il est désormais interdit de créer des tables `MergeTree` spéciales (telles que `ReplacingMergeTree`, `CollapsingMergeTree`, etc.) avec une clé `ORDER BY` vide, car le merge behavior de ces tables n’est pas défini. Si vous devez malgré tout créer une telle table, activez le setting `allow_suspicious_primary_key`. [#91569](https://github.com/ClickHouse/ClickHouse/pull/91569) ([Anton Popov](https://github.com/CurtizJ)).
* Correction des fonctions `bitShiftLeft` et `bitShiftRight` afin qu’elles renvoient 0 ou une valeur vide lorsque le shift est exactement égal à la taille du type. [#91943](https://github.com/ClickHouse/ClickHouse/pull/91943) ([Pablo Marcos](https://github.com/pamarcos)).
* Suite à [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380). Cette PR considère la désactivation des arguments positionnels dans les projections comme un changement non rétrocompatible. En outre, elle introduit le paramètre `enable_positional_arguments_for_projections` afin de permettre une mise à niveau sûre d’un cluster ClickHouse lorsque des arguments positionnels sont présents dans les projections. [#92007](https://github.com/ClickHouse/ClickHouse/pull/92007) ([Dmitry Novik](https://github.com/novikd)).
* Active par défaut les données partagées avancées pour JSON. Après ce changement, il ne sera plus possible de revenir à une version antérieure à 25.8, car ces versions ne pourront pas lire les nouvelles data parts avec une colonne JSON. Pour effectuer une mise à niveau en toute sécurité, il est recommandé de définir le paramètre `compatibility` sur la version précédente ou de définir les paramètres MergeTree `dynamic_serialization_version='v2', object_serialization_version='v2'`. [#92511](https://github.com/ClickHouse/ClickHouse/pull/92511) ([Pavel Kruglov](https://github.com/Avogar)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Les utilisateurs peuvent désormais configurer les tables S3/Azure Queue pour déplacer ou étiqueter les fichiers traités, en plus des options existantes permettant de conserver ou de supprimer les fichiers. Résout [#72944](https://github.com/ClickHouse/ClickHouse/issues/72944). [#86907](https://github.com/ClickHouse/ClickHouse/pull/86907) ([Murat Khairulin](https://github.com/mxwell)).
* Dans le stockage S3/Azure Queue, ajout du paramètre `commit_on_select` (pour définir si les données traitées doivent être validées et si l’action `after_processing` doit être appliquée). La valeur par défaut est `false` ; correction de la vérification des MV attachées lors d’un `SELECT`. [#91450](https://github.com/ClickHouse/ClickHouse/pull/91450) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d’une instrumentation à l’exécution à l’aide de XRay pour le Débogage des problèmes en production et un profilage déterministe. Résout [#74249](https://github.com/ClickHouse/ClickHouse/issues/74249). [#89173](https://github.com/ClickHouse/ClickHouse/pull/89173) ([Pablo Marcos](https://github.com/pamarcos)).
* Autorise l’utilisation de seconds arguments non constants pour `IN`. Prend également en charge un tuple comme second argument. [#77906](https://github.com/ClickHouse/ClickHouse/pull/77906) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Fonctions permettant de calculer l’aire et le périmètre du type Geometry. [#89047](https://github.com/ClickHouse/ClickHouse/pull/89047) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Implémentation de la fonction `dictGetKeys`, qui renvoie la ou les clés de dictionnaire dont l’attribut est égal à la valeur spécifiée. Elle utilise un cache de lookup inverse par requête, ajusté par le paramètre `max_reverse_dictionary_lookup_cache_size_bytes`, afin d’accélérer les lookups répétés. [#89197](https://github.com/ClickHouse/ClickHouse/pull/89197) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Ajout du paramètre `type_json_skip_invalid_typed_paths` pour désactiver les exceptions lors des insertions/conversions de type vers le type JSON lorsque le JSON d’entrée ne peut pas être converti en paths typés explicites dans le type JSON. Bascule alors sur la valeur null/zéro du path typé. [#89886](https://github.com/ClickHouse/ClickHouse/pull/89886) ([Max Justus Spransy](https://github.com/maxjustus)).
* Prise en charge de la jointure `direct` (boucle imbriquée) pour les tables MergeTree. Pour l’utiliser, spécifiez-la comme seule option dans le paramètre : `join_algorithm = 'direct'`. [#89920](https://github.com/ClickHouse/ClickHouse/pull/89920) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Prise en charge de `ORDER BY` dans l’opération `CREATE` pour Iceberg, ainsi que du tri dans `INSERT`. Résout [#89916](https://github.com/ClickHouse/ClickHouse/issues/89916). [#90141](https://github.com/ClickHouse/ClickHouse/pull/90141) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Introduction de paramètres au niveau des projections, exposés via la nouvelle clause `WITH SETTINGS` dans `ALTER TABLE ... ADD PROJECTION`. Ces paramètres permettent aux projections de surcharger certains paramètres de stockage de MergeTree (par exemple `index_granularity`, `index_granularity_bytes`) projection par projection. [#90158](https://github.com/ClickHouse/ClickHouse/pull/90158) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la fonction SQL `HMAC(algorithm, message, key)` dans le cadre de [#73900](https://github.com/ClickHouse/ClickHouse/issues/73900) et [#38775](https://github.com/ClickHouse/ClickHouse/issues/38775). [#90837](https://github.com/ClickHouse/ClickHouse/pull/90837) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajout de la prise en charge de la fonction `has` pour utiliser la clé primaire et les indexes de saut de données lorsque le premier argument est un tableau constant. Ferme [#90980](https://github.com/ClickHouse/ClickHouse/issues/90980). [#91023](https://github.com/ClickHouse/ClickHouse/pull/91023) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Implémente le nouveau format d'entrée/sortie `Buffers`. Ce format est similaire à `Native` ; toutefois, contrairement à `Native`, il ne stocke ni les noms de colonnes, ni les types de colonnes, ni aucune métadonnée supplémentaire. Résout [#84017](https://github.com/ClickHouse/ClickHouse/issues/84017). [#91156](https://github.com/ClickHouse/ClickHouse/pull/91156) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Ajoute un paramètre `max_streams_for_files_processing_in_cluster_functions` pour contrôler le nombre de streams utilisés pour la lecture parallèle de fichiers dans les fonctions de table Cluster. Résout [#90223](https://github.com/ClickHouse/ClickHouse/issues/90223). [#91323](https://github.com/ClickHouse/ClickHouse/pull/91323) ([Pavel Kruglov](https://github.com/Avogar)).
* Masquage des données pour la sécurité au niveau des lignes (uniquement disponible dans ClickHouse Cloud). Ajout d'un parseur de policy de masquage des données pour sa prise en charge dans clickhouse-client. [#90552](https://github.com/ClickHouse/ClickHouse/pull/90552) ([pufit](https://github.com/pufit)).
* Ajoute l'option `allow_reentry` à la aggregate function `windowFunnel`. Lorsqu'elle est activée avec strict\_order, elle ignore les événements qui ne respectent pas l'ordre au lieu d'interrompre l'analyse du funnel. Cela permet de gérer les parcours utilisateur avec des rafraîchissements (A->A->B) ou des retours en arrière (A->B->A->C) sans sous-estimer les taux de conversion. [#86916](https://github.com/ClickHouse/ClickHouse/pull/86916) ([Lee ChaeRok](https://github.com/LeeChaeRok)).
* Compatibilité de Keeper avec zookeeper : création avec statistiques. [#88797](https://github.com/ClickHouse/ClickHouse/pull/88797) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Prise en charge des watches persistants de ZooKeeper dans ClickHouse Keeper. Suite de la partie 2 : [https://github.com/ClickHouse/ClickHouse/pull/78207](https://github.com/ClickHouse/ClickHouse/pull/78207). [#88813](https://github.com/ClickHouse/ClickHouse/pull/88813) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Ajoute un paramètre MergeTree `alter_column_secondary_index_mode` pour contrôler ce qu'il faut faire des index pendant les mutations. Valeurs possibles : throw, drop, rebuild et compatibility. Résout [#77797](https://github.com/ClickHouse/ClickHouse/issues/77797). [#89335](https://github.com/ClickHouse/ClickHouse/pull/89335) ([Raúl Marín](https://github.com/Algunenano)).
* Comme les data types `Time` et `Time64` sont prêts pour la production, le paramètre `enable_time_time64_type` est désormais activé par défaut. [#89345](https://github.com/ClickHouse/ClickHouse/pull/89345) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Prise en charge de la lecture de DeltaLake CDF via la fonction de table `deltaLake` avec les paramètres `delta_lake_snapshot_start_version`, `delta_lake_snapshot_end_version`. Le CDF (Change Data Feed, une fonctionnalité qui permet de capturer et d'interroger automatiquement les changements de données au niveau des lignes — tels que les insertions, mises à jour et suppressions — entre les versions d'une table Delta) est activé dans DeltaLake via `delta.enableChangeDataFeed`. Les colonnes fournies avec les données sont `_change_type`, `_commit_version`, `_commit_timestamp`. [#90431](https://github.com/ClickHouse/ClickHouse/pull/90431) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge des index négatifs pour l'accès aux éléments d'un tuple (par ex. `tuple.-1`). [#91665](https://github.com/ClickHouse/ClickHouse/pull/91665) ([Amos Bird](https://github.com/amosbird)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* Introduction du format v3 de l’index textuel et passage au statut Beta.
* Une nouvelle logique permet désormais d’exécuter automatiquement les requêtes à l’aide de répliques parallèles, sous le contrôle du paramètre `automatic_parallel_replicas_mode`. Lors d’une exécution normale sur un seul nœud, ClickHouse collecte des statistiques qui seront ensuite prises en compte à l’étape de planification. Si ces statistiques indiquent que les répliques parallèles sont susceptibles d’apporter un bénéfice, ClickHouse exécutera automatiquement la requête concernée avec des répliques parallèles. L’ensemble des requêtes prises en charge reste pour l’instant assez limité. [#87541](https://github.com/ClickHouse/ClickHouse/pull/87541) ([Nikita Taranov](https://github.com/nickitat)).
* Accédez aux instances ClickHouse Cloud à l’aide des identifiants Cloud avec --login. [#89261](https://github.com/ClickHouse/ClickHouse/pull/89261) ([Krishna Mannem](https://github.com/kcmannem)).
* Ajout du paramètre de session `aggregate_function_input_format` pour améliorer les requêtes `INSERT` dans les tables comportant des colonnes `AggregateFunction`, en autorisant l’insertion de données sous forme d’état sérialisé, de valeurs brutes ou de tableaux. [#88088](https://github.com/ClickHouse/ClickHouse/pull/88088) ([Punith Nandyappa Subashchandra](https://github.com/punithns97)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Optimise les requêtes `ORDER BY...LIMIT N` en utilisant des skip indexes et un filtre à seuil dynamique afin de réduire considérablement le nombre de lignes traitées. [#89835](https://github.com/ClickHouse/ClickHouse/pull/89835) ([Shankar Iyer](https://github.com/shankar-iyer)).
* ClickHouse utilise désormais les skip indexes pour effectuer l’analyse des index sur des clauses WHERE contenant des conditions de filtre mixtes reliées par `AND` et `OR`. Auparavant, la clause WHERE devait être une conjonction (`AND`) de conditions de filtre pour tirer parti des skip indexes. Un nouveau setting `use_skip_indexes_for_disjunctions` (par défaut : activé) contrôle cette fonctionnalité. (issue [#75228](https://github.com/ClickHouse/ClickHouse/issues/75228)). [#87781](https://github.com/ClickHouse/ClickHouse/pull/87781) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Prise en charge de la conservation de la lecture dans l’ordre depuis la table de gauche dans les opérations LEFT/INNER JOIN, ce qui peut être exploité par les étapes suivantes. Peut être désactivé à l’aide du setting `query_plan_read_in_order_through_join`. Prise en charge de l’optimisation de ligne virtuelle pendant la lecture (voir le setting `read_in_order_use_virtual_row`) pour les LEFT/INNER JOIN. [#89815](https://github.com/ClickHouse/ClickHouse/pull/89815) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Améliore les performances des colonnes matérialisées à la volée avec une limite plus élevée. [#90309](https://github.com/ClickHouse/ClickHouse/pull/90309) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Les utilisateurs devraient constater une latence plus faible lors de l’analyse des index en présence de gros index `minmax` (des millions de granules). [#90428](https://github.com/ClickHouse/ClickHouse/pull/90428) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Implémente un algorithme simple de réordonnancement des jointures DPsize pour les INNER JOIN. Un nouveau setting expérimental contrôle quels algorithmes sont utilisés et dans quel ordre. Par exemple, `query_plan_optimize_join_order_algorithm='dpsize,greedy'` signifie que DPsize est essayé en premier, avec repli sur greedy. [#91002](https://github.com/ClickHouse/ClickHouse/pull/91002) ([Alexander Gololobov](https://github.com/davenger)).
* Échoue rapidement lorsque les requêtes atteignent les limites de lignes. Résout [#61872](https://github.com/ClickHouse/ClickHouse/issues/61872). [#62804](https://github.com/ClickHouse/ClickHouse/pull/62804) ([Sean Haynes](https://github.com/seandhaynes)).
* [#84477](https://github.com/clickhouse/clickhouse/pull/84477) a ajouté des contraintes concernant les requêtes SELECT pouvant être utilisées dans les requêtes `insert select from s3Cluster(...)` pour une exécution distribuée parallèle. Ce changement permet d’utiliser WHERE, ce qui n’était pas possible auparavant. [#84611](https://github.com/ClickHouse/ClickHouse/pull/84611) ([Igor Nikonov](https://github.com/devcrafter)).
* Précharge les clés pendant l’itération de la table de hachage afin de minimiser les défauts de cache. [#84708](https://github.com/ClickHouse/ClickHouse/pull/84708) ([lgbo](https://github.com/lgbo-ustc)).
* Optimise la fonction d’agrégation `histogram` en ne triant que la fin du tableau de points et en évitant le tri pour les entrées monotones, ce qui permet un gain de performances d’environ 10 %. [#85760](https://github.com/ClickHouse/ClickHouse/pull/85760) ([MakarDev](https://github.com/MakarDev)).
* Améliore les performances de filtrage pour les prédicats avec des fonctions telles que `like`, `equals`, `has` et d’autres, en s’appuyant sur un filtre préliminaire supplémentaire construit à partir de l’index de texte. Cette optimisation est activée via le setting `query_plan_text_index_add_hint`. Améliore également l’utilisation de l’index de texte pour les colonnes de type de données `Map`. [#88550](https://github.com/ClickHouse/ClickHouse/pull/88550) ([Anton Popov](https://github.com/CurtizJ)).
* Optimise les recherches inverses répétées dans le dictionnaire en effectuant des recherches plus rapides dans un ensemble précalculé de valeurs de clé possibles. Closes [#7968](https://github.com/ClickHouse/ClickHouse/issues/7968). [#88971](https://github.com/ClickHouse/ClickHouse/pull/88971) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Améliore les performances et le comportement de la fonction d’agrégation `topK`. [#90091](https://github.com/ClickHouse/ClickHouse/pull/90091) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration des performances des opérations de comparaison sur `Decimal`. Résout [#28192](https://github.com/ClickHouse/ClickHouse/issues/28192). [#90153](https://github.com/ClickHouse/ClickHouse/pull/90153) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Prise en charge du partition pruning pour les fonctions Apache Paimon, dans la continuité de [https://github.com/ClickHouse/ClickHouse/pull/84423](https://github.com/ClickHouse/ClickHouse/pull/84423). [#90253](https://github.com/ClickHouse/ClickHouse/pull/90253) ([JIaQi](https://github.com/JiaQiTang98)).
* Utilisation d'opérations SIMD avancées pour les fonctions logiques via dispatch dynamique. [#90432](https://github.com/ClickHouse/ClickHouse/pull/90432) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration des performances des fonctions JIT en évitant d'initialiser inutilement à zéro la colonne de résultat. [#90449](https://github.com/ClickHouse/ClickHouse/pull/90449) ([Raúl Marín](https://github.com/Algunenano)).
* Accélération de la décompression `T64` via dispatch dynamique. [#90610](https://github.com/ClickHouse/ClickHouse/pull/90610) ([Raúl Marín](https://github.com/Algunenano)).
* Optimisation du filtrage en place dans le lecteur MergeTree. Résout [#87119](https://github.com/ClickHouse/ClickHouse/issues/87119). [#90630](https://github.com/ClickHouse/ClickHouse/pull/90630) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Introduction d'une heuristique supplémentaire pour réduire la largeur des fusions sélectionnées. Effectuer des fusions plus étroites augmentera l'amplification des écritures, mais peut aussi aider à éviter les erreurs `TOO_MANY_PARTS`. [#91163](https://github.com/ClickHouse/ClickHouse/pull/91163) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Amélioration des performances des requêtes sur les tables S3 créées avec un glob pattern en propageant les valeurs du filtre `_path`, ce qui permet d'éviter les opérations de listage S3. Contrôlé par le paramètre `s3_path_filter_limit`. [#91165](https://github.com/ClickHouse/ClickHouse/pull/91165) ([Eduard Karacharov](https://github.com/korowa)).
* Accélération de la conversion des colonnes en bool (dans les clauses WHERE) via dispatch dynamique. [#91203](https://github.com/ClickHouse/ClickHouse/pull/91203) ([Raúl Marín](https://github.com/Algunenano)).
* Accélération du tri d'un bloc numérique unique via dispatch dynamique. [#91213](https://github.com/ClickHouse/ClickHouse/pull/91213) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout d'une optimisation pour supprimer les colonnes inutilisées dans les plans de requête. Résout [#75152](https://github.com/ClickHouse/ClickHouse/issues/75152). [#76487](https://github.com/ClickHouse/ClickHouse/pull/76487) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* La valeur par défaut de `query_plan_optimize_join_order_limit` passe à `10`. [#89312](https://github.com/ClickHouse/ClickHouse/pull/89312) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Activation par défaut du paramètre `allow_statistics_optimize`, afin que l'optimiseur de JOIN utilise les statistiques de colonnes. [#89332](https://github.com/ClickHouse/ClickHouse/pull/89332) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge des filtres runtime de JOIN pour les JOIN `ANTI`. Refactorisation également de l'implémentation des filtres runtime afin de réduire la contention sur les verrous. [#89710](https://github.com/ClickHouse/ClickHouse/pull/89710) ([Dmitry Novik](https://github.com/novikd)).
* Réduction de l'utilisation mémoire pendant les fusions dans la table `system.metric_log` (activée par défaut) en définissant `min_bytes_for_wide_part` et `vertical_merge_algorithm_min_bytes_to_activate` à 128 MB. [#89811](https://github.com/ClickHouse/ClickHouse/pull/89811) ([filimonov](https://github.com/filimonov)).
* Activation de l'utilisation de l'index inversé dans PREWHERE. Résout [#89975](https://github.com/ClickHouse/ClickHouse/issues/89975). [#89977](https://github.com/ClickHouse/ClickHouse/pull/89977) ([Peng Jian](https://github.com/fastio)).
* N'ajoutez pas de fournisseurs S3 si l'authentification OAuth de GCP est utilisée, car elle améliore les performances sur GCS. [#91706](https://github.com/ClickHouse/ClickHouse/pull/91706) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="improvement">
  #### Amélioration
</div>

* Ajout d’un nouveau paramètre `apply_row_policy_after_final` qui permet à la requête d’appliquer la policy de ligne uniquement après final, ce qui rend le comportement de ReplacingMergeTree avec des policies de ligne plus correct. Corrige [#90986](https://github.com/ClickHouse/ClickHouse/issues/90986). [#91065](https://github.com/ClickHouse/ClickHouse/pull/91065) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Dans le format `Pretty`, les tuples nommés sont désormais affichés au format Pretty JSON. Cela clôt [#65022](https://github.com/ClickHouse/ClickHouse/issues/65022). [#91779](https://github.com/ClickHouse/ClickHouse/pull/91779) ([Mostafa Mohamed Salah](https://github.com/Sasao4o)).
* Ajout des champs `last_error_time`, `last_error_message`, `last_error_query_id` et `last_error_trace` à la table `system.error_log`. [#89879](https://github.com/ClickHouse/ClickHouse/pull/89879) ([Narasimha Pakeer](https://github.com/npakeer)).
* Le client CLI peut désormais supprimer le message 'ClickHouse server version is older than ClickHouse client. It may indicate that the server is out of date and can be upgraded' en spécifiant `--no-server-client-version-message` ou `false`. [#87784](https://github.com/ClickHouse/ClickHouse/pull/87784) ([Larry Snizek](https://github.com/larry-cdn77)).
* Ajout d’un message d’erreur indiquant que la part a été dédupliquée. [#80264](https://github.com/ClickHouse/ClickHouse/pull/80264) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Ajout des colonnes `dependencies` et `missing_dependencies` à `system.kafka_consumers` pour signaler les tables cibles de vues matérialisées pour les tables Kafka. Ajout du Counter `KafkaMVNotReady`. [#85346](https://github.com/ClickHouse/ClickHouse/pull/85346) ([Ilya Golshtein](https://github.com/ilejn)).
* Désormais, les expressions par défaut de la table fonctionnent correctement avec les insertions utilisant les protocoles remote et native. Clôt [#87972](https://github.com/ClickHouse/ClickHouse/issues/87972). [#88540](https://github.com/ClickHouse/ClickHouse/pull/88540) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Permet de désactiver la collecte des métriques asynchrones `PSI_*_*`. [#88557](https://github.com/ClickHouse/ClickHouse/pull/88557) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ajout de la prise en charge de la sérialisation sparse pour les colonnes de type `Nullable`. Cela fait suite à [#44539](https://github.com/ClickHouse/ClickHouse/issues/44539). [#88999](https://github.com/ClickHouse/ClickHouse/pull/88999) ([Amos Bird](https://github.com/amosbird)).
* Le disk `plain-rewritable` dispose de sa propre implémentation et de son propre layout. Ne le basons pas sur les disks `plain` classiques. [#89807](https://github.com/ClickHouse/ClickHouse/pull/89807) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Aucune exception HTTP ne doit jamais contenir le chunk final de valeur zéro. [#89998](https://github.com/ClickHouse/ClickHouse/pull/89998) ([Kaviraj Kanagaraj](https://github.com/kavirajk)).
* Ajout d’une vérification Keeper côté serveur lors du handshake pour rejeter les clients lorsque `last_zxid_seen (provided by the client) > last_processed_zxid`. Cela évite des lectures obsolètes lorsque les clients se reconnectent à des répliques en retard. [#90016](https://github.com/ClickHouse/ClickHouse/pull/90016) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajout de `kafka_consumer_reschedule_ms` comme paramètre ajustable du table engine `Kafka` afin d’ajuster la durée d’attente des consumers avant l’arrivée de nouvelles données. Résout [#89204](https://github.com/ClickHouse/ClickHouse/issues/89204). [#90112](https://github.com/ClickHouse/ClickHouse/pull/90112) ([Jeremy Aguilon](https://github.com/JerAguilon)).
* Ajout d’une nouvelle colonne `parts_in_progress_names` à `system.mutations` pour améliorer le diagnostic. [#90155](https://github.com/ClickHouse/ClickHouse/pull/90155) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Réessayer en cas d’erreurs réseau lorsque la bibliothèque S3 analyse une réponse XML. [#90216](https://github.com/ClickHouse/ClickHouse/pull/90216) ([Sema Checherinda](https://github.com/CheSema)).
* Nous voulons exécuter les Keeper dans des processus serveur distincts et, pour éviter de surcharger Prometheus dans les grandes régions, nous devons continuer à n’exposer que les métriques liées à Keeper. [#90244](https://github.com/ClickHouse/ClickHouse/pull/90244) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajout de la prise en charge du chargement de la configuration du client ClickHouse à partir des chemins XDG Base Directory (par ex. `~/.config/clickhouse/config.xml`), en plus de l’emplacement historique `~/.clickhouse-client/`. Résout [#89882](https://github.com/ClickHouse/ClickHouse/issues/89882). [#90306](https://github.com/ClickHouse/ClickHouse/pull/90306) ([Wujun Jiang](https://github.com/rainac1)).
* Ajout d’une limite de taille en octets pour le batch des requêtes append dans Keeper. La limite est contrôlée par `keeper_server.coordination_settings.max_requests_append_bytes_size`. [#90342](https://github.com/ClickHouse/ClickHouse/pull/90342) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout d’un paramètre pour Iceberg afin d’éviter un nombre trop élevé de partitions. [#90365](https://github.com/ClickHouse/ClickHouse/pull/90365) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Mise à jour des messages d’avertissement à l’approche des limites des garde-fous : affichage des valeurs actuelles et des valeurs `throw`. [#90438](https://github.com/ClickHouse/ClickHouse/pull/90438) ([Nikita Fomichev](https://github.com/fm4v)).
* Diffusion des chunks en flux dans la table `system.filesystem_cache` au lieu de créer un seul chunk contenant tout l’état du cache. La lecture de l’état du cache du système de fichiers peut prendre beaucoup de temps pour les caches volumineux et consommer beaucoup de mémoire ; la diffusion en flux est donc indispensable pour les déploiements de grande taille. [#90508](https://github.com/ClickHouse/ClickHouse/pull/90508) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un message d’exception erroné dans le partitionnement Hive : il manquait un espace. [#90685](https://github.com/ClickHouse/ClickHouse/pull/90685) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les entrées du cache d’index de similarité vectorielle sont désormais supprimées lorsque des parties de table sont supprimées ou remplacées par des parties plus récentes. Auparavant, elles n’étaient supprimées qu’au fil de l’eau par éviction du cache. [#90750](https://github.com/ClickHouse/ClickHouse/pull/90750) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Mise à niveau de chdig (un outil de diagnostic ClickHouse en ligne de commande) vers [v25.12.1](https://github.com/azat/chdig/releases/tag/v25.12.1). [#91394](https://github.com/ClickHouse/ClickHouse/pull/91394) ([Azat Khuzhin](https://github.com/azat)).
* Les URL pré-signées fonctionnent désormais avec S3. Ferme [#65032](https://github.com/ClickHouse/ClickHouse/issues/65032). [#90827](https://github.com/ClickHouse/ClickHouse/pull/90827) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* L’index de texte fonctionne désormais avec les tables `ReplacingMergeTree`. [#90908](https://github.com/ClickHouse/ClickHouse/pull/90908) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Éviter d’exposer la version du serveur ClickHouse dans les réponses d’erreur HTTP renvoyées avant l’authentification. [#91003](https://github.com/ClickHouse/ClickHouse/pull/91003) ([filimonov](https://github.com/filimonov)).
* Désormais, l’exception `HTTP_CONNECTION_LIMIT_REACHED` est levée lorsque la `hard_limit` des connexions des clients HTTP est atteinte. Elle est définie à `20000` pour les connexions disque. [#91016](https://github.com/ClickHouse/ClickHouse/pull/91016) ([Sema Checherinda](https://github.com/CheSema)).
* Introduction de `system.background_schedule_pool{,_log}` pour améliorer l’introspection des jobs en arrière-plan. [#91157](https://github.com/ClickHouse/ClickHouse/pull/91157) ([Azat Khuzhin](https://github.com/azat)).
* Vous pouvez désormais commenter ou décommenter rapidement les lignes actuellement sélectionnées dans l’éditeur de requêtes de l’interface web à l’aide de `Ctrl+/` (ou `Cmd+/` sur Mac), ce qui permet de désactiver plus facilement certaines parties de votre requête pendant les tests. [#91160](https://github.com/ClickHouse/ClickHouse/pull/91160) ([Samuel K.](https://github.com/OpenGLShaders)).
* Ajout de `system.completions` à la liste des tables toujours accessibles. [#91166](https://github.com/ClickHouse/ClickHouse/pull/91166) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout des profile events `FailedInitialQuery` et `FailedInitialSelectQuery`. [#91172](https://github.com/ClickHouse/ClickHouse/pull/91172) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Correction d’un risque de saturation du pool de threads lors de la lecture d’échantillons de colonnes pour des colonnes JSON comportant de nombreuses sous-colonnes, en respectant le paramètre `merge_tree_use_prefixes_deserialization_thread_pool` au lieu d’utiliser systématiquement le pool de threads. [#91208](https://github.com/ClickHouse/ClickHouse/pull/91208) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Prise en charge du type `JSON` dans `tupleElement`. Clôt [#81630](https://github.com/ClickHouse/ClickHouse/issues/81630). [#91327](https://github.com/ClickHouse/ClickHouse/pull/91327) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’erreurs de memory limit intempestives lorsque le userspace page cache est activé. [#91361](https://github.com/ClickHouse/ClickHouse/pull/91361) ([Michael Kolupaev](https://github.com/al13n321)).
* Le tokenizer ngrams peut désormais être construit avec ngram\_length = 1. [#91529](https://github.com/ClickHouse/ClickHouse/pull/91529) ([George Larionov](https://github.com/george-larionov)).
* Prise en charge des paramètres de stockage à l’intérieur des fonctions dans `INSERT INTO FUNCTION`, comme c’est déjà le cas pour `SELECT`. Clôt [#89386](https://github.com/ClickHouse/ClickHouse/issues/89386). [#91707](https://github.com/ClickHouse/ClickHouse/pull/91707) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Renvoie désormais "not implemented" pour les requêtes TRUNCATE sur les data lakes au lieu de ne rien faire silencieusement. Clôt [#86604](https://github.com/ClickHouse/ClickHouse/issues/86604). [#91713](https://github.com/ClickHouse/ClickHouse/pull/91713) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Définition d’une taille maximale de message pour le lecteur Parquet v3 afin d’éviter l’erreur `DB::Exception: apache::thrift::transport::TTransportException: MaxMessageSize reached`. [#91737](https://github.com/ClickHouse/ClickHouse/pull/91737) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout du paramètre `insert_select_deduplicate`, qui clarifie la manière dont la déduplication à l’insertion est gérée avec INSERT SELECT. En général, il n’est pas possible d’effectuer une déduplication pour ce type de queries, mais si la table n’est pas modifiée et que le résultat est trié, alors une déduplication est possible en cas de retry. Nous ne pouvions pas vérifier que la source restait identique. En revanche, nous pouvions vérifier que le résultat de la requête SELECT était trié. En pratique, il s’est avéré que c’est très difficile à vérifier dans le cas général, mais que le cas simple avec `ORDER BY ALL` l’est facilement. À l’heure actuelle, cette logique est en réalité défaillante. Nous essayons de dédupliquer, mais dans la plupart des cas, les doublons entre les blocks ne sont tout simplement pas détectés, car le SELECT renvoie des données différentes. [#91830](https://github.com/ClickHouse/ClickHouse/pull/91830) ([Sema Checherinda](https://github.com/CheSema)).
* Autorisation de la conversion implicite de type lors du CAST de `Array` vers `QBit`. Les Array d’entiers et de flottants peuvent désormais être insérés directement dans des colonnes `QBit` sans CAST explicite. [#91846](https://github.com/ClickHouse/ClickHouse/pull/91846) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Ajout d’une limite de taille de message pour `CapnProto`. Elle peut être modifiée avec `format_capn_proto_max_message_size`. [#91888](https://github.com/ClickHouse/ClickHouse/pull/91888) ([Antonio Andelic](https://github.com/antonio2368)).
* Affiner les métriques du mark cache pour ne suivre que les requêtes (après [#83415](https://github.com/ClickHouse/ClickHouse/issues/83415), `MarkCacheHits`/`MarkCacheMisses` ont également été mis à jour pour les merges ; cette PR rétablit le comportement précédent). [#91910](https://github.com/ClickHouse/ClickHouse/pull/91910) ([Azat Khuzhin](https://github.com/azat)).
* Correction de `client_info.interface`, qui était défini sur `TCP` pour les connexions locales. [#91933](https://github.com/ClickHouse/ClickHouse/pull/91933) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Le paramètre `refresh_certificates_task_interval` dans la configuration du client ACME doit désormais être exprimé en secondes. [#92211](https://github.com/ClickHouse/ClickHouse/pull/92211) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Journaliser les événements de parts dans `system.part_log` pour `system.*_log`. [#92217](https://github.com/ClickHouse/ClickHouse/pull/92217) ([Azat Khuzhin](https://github.com/azat)).

#### Correction de bogue (comportement anormal visible par l’utilisateur dans une version stable officielle)

* Corrige quelques bogues de PREWHERE liés aux supertypes des types de données `Time` et `Time64`. Résout [#84544](https://github.com/ClickHouse/ClickHouse/issues/84544). [#84715](https://github.com/ClickHouse/ClickHouse/pull/84715) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Initialise `DNSResolver` avant son utilisation afin de prendre en compte les paramètres personnalisés. Corrige [#76296](https://github.com/ClickHouse/ClickHouse/issues/76296). [#81302](https://github.com/ClickHouse/ClickHouse/pull/81302) ([Zhigao Hong](https://github.com/zghong)).
* Corrige, dans certains cas, la lecture de sous-colonnes depuis une colonne dont le nom contient un point. Résout [#81261](https://github.com/ClickHouse/ClickHouse/issues/81261), [#82058](https://github.com/ClickHouse/ClickHouse/issues/82058), [#88169](https://github.com/ClickHouse/ClickHouse/issues/88169). [#87205](https://github.com/ClickHouse/ClickHouse/pull/87205) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige le plantage du moteur GenerateRandom avec des paramètres non littéraux : renvoie BAD\_ARGUMENTS avec un message clair au lieu de LOGICAL\_ERROR. [#88157](https://github.com/ClickHouse/ClickHouse/pull/88157) ([Shafi Ahmed](https://github.com/ita004)).
* Corrige la suppression de colonnes de projection inutilisées en présence de `UNION`. Corrige [#88180](https://github.com/ClickHouse/ClickHouse/issues/88180). [#88350](https://github.com/ClickHouse/ClickHouse/pull/88350) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige un sharding incorrect dans l'optimisation de `JOIN` lorsque la clé primaire est triée par ordre décroissant. Résout [#88512](https://github.com/ClickHouse/ClickHouse/issues/88512). [#88794](https://github.com/ClickHouse/ClickHouse/pull/88794) ([Amos Bird](https://github.com/amosbird)).
* Réactive s3queue\_keeper\_fault\_injection\_probablility et corrige des problèmes. [#88800](https://github.com/ClickHouse/ClickHouse/pull/88800) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige plusieurs problèmes dus à une suppression prématurée de colonnes dans TTL. Résout [#88002](https://github.com/ClickHouse/ClickHouse/issues/88002). [#88860](https://github.com/ClickHouse/ClickHouse/pull/88860) ([Amos Bird](https://github.com/amosbird)).
* Lève une exception lorsque temporary\_files\_buffer\_size est défini sur 0. Résout [#88900](https://github.com/ClickHouse/ClickHouse/issues/88900). [#88917](https://github.com/ClickHouse/ClickHouse/pull/88917) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige l'erreur `Bad get` qui se produisait lors de l'analyse d'index `Set` lorsque le prédicat contenait la constante `NULL`. Corrige [#84856](https://github.com/ClickHouse/ClickHouse/issues/84856) et [#82974](https://github.com/ClickHouse/ClickHouse/issues/82974). [#89429](https://github.com/ClickHouse/ClickHouse/pull/89429) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige `Cannot add subcolumn X.Y: column with this name already exists`. Résout [#89599](https://github.com/ClickHouse/ClickHouse/issues/89599). [#89602](https://github.com/ClickHouse/ClickHouse/pull/89602) ([Azat Khuzhin](https://github.com/azat)).
* Corrige des bogues dans les fonctions `theilsU` et `contingency` qui entraînaient des résultats incorrects. [#89760](https://github.com/ClickHouse/ClickHouse/pull/89760) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige des problèmes de stabilité des alias : correction de StrictnessLevel avec SharedDatabaseCatalog, interdiction qu'une cible soit elle aussi un alias, et implémentation d'interfaces supplémentaires (getSerializationHints, supportsReplication, getStoragePolicy, totalBytesUncompressed, lifetimeRows, lifetimeBytes, storesDataOnDisk, tryLockForShare, lockForShare). Résout [#89106](https://github.com/ClickHouse/ClickHouse/issues/89106). [#89812](https://github.com/ClickHouse/ClickHouse/pull/89812) ([Kai Zhu](https://github.com/nauu)).
* Corrige un possible crash lors d'une query distante avec `ARRAY JOIN` à l'intérieur de `IN` et le paramètre `enable_lazy_columns_replication` activé. Résout [#90361](https://github.com/ClickHouse/ClickHouse/issues/90361). [#89997](https://github.com/ClickHouse/ClickHouse/pull/89997) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige une possible erreur logique lors de l'utilisation de `analyzer_compatibility_join_using_top_level_identifier` avec plusieurs joins. [#90010](https://github.com/ClickHouse/ClickHouse/pull/90010) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige, dans certains cas, l'inférence de valeurs DateTime64 incorrectes à partir de Strings dans les text formats. Résout [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368). [#90013](https://github.com/ClickHouse/ClickHouse/pull/90013) ([Pavel Kruglov](https://github.com/Avogar)).
* Effectue des vérifications de taille lors de la désérialisation de données provenant d'aggregation states et d'autres sources. [#90031](https://github.com/ClickHouse/ClickHouse/pull/90031) ([Raúl Marín](https://github.com/Algunenano)).
* Fractionne les plages de parts selon les caractéristiques des volumes afin d'activer les merges de suppression TTL pour les volumes froids. Après ce correctif, les parts avec un TTL max \< now seront supprimées du stockage froid. L'algorithme planifiera uniquement des **suppressions d'une seule part**. [#90059](https://github.com/ClickHouse/ClickHouse/pull/90059) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Si une Kafka table a été créée avec le paramètre `kafka_handle_error_mode = 'dead_letter_queue'` et que la table `system.dead_letter_queue` n'est pas configurée, le server pouvait planter. Ce comportement est corrigé. Résout [#87573](https://github.com/ClickHouse/ClickHouse/issues/87573). [#90064](https://github.com/ClickHouse/ClickHouse/pull/90064) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige une possible erreur `Column with Array type is not represented by ColumnArray column: Replicated` lors d'une insertion utilisant `ARRAY JOIN` avec le paramètre `enable_lazy_columns_replication` activé. [#90066](https://github.com/ClickHouse/ClickHouse/pull/90066) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un crash lors de l'arrêt propre du server en raison d'un ordre de destruction incorrect. Résout [#82420](https://github.com/ClickHouse/ClickHouse/issues/82420). [#90076](https://github.com/ClickHouse/ClickHouse/pull/90076) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige une erreur logique et un bug de modulo dans la system table `numbers` lorsqu'un pas de grande taille est utilisé. Clôt [#83398](https://github.com/ClickHouse/ClickHouse/issues/83398). [#90123](https://github.com/ClickHouse/ClickHouse/pull/90123) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige le fait que l'écriture Parquet ne préserve pas l'ordre d'origine lors de l'utilisation d'une écriture monothread avec le writer natif. Annule partiellement [https://github.com/ClickHouse/ClickHouse/pull/64424/files](https://github.com/ClickHouse/ClickHouse/pull/64424/files). [#90126](https://github.com/ClickHouse/ClickHouse/pull/90126) ([Arthur Passos](https://github.com/arthurpassos)).
* N'applique pas l'optimisation des nœuds constants à l'expression LIMIT/OFFSET. Corrige [#89607](https://github.com/ClickHouse/ClickHouse/issues/89607). [#90156](https://github.com/ClickHouse/ClickHouse/pull/90156) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige une incompatibilité de partitionnement Hive qui empêchait une mise à niveau fluide vers la version 25.8 (corrige l’erreur `All hive partitioning columns must be present in the schema` pendant la mise à niveau). [#90202](https://github.com/ClickHouse/ClickHouse/pull/90202) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une Exception JSON dans une table Iceberg avec une colonne timestamp lors de l’utilisation du catalog Glue. Résout [#90210](https://github.com/ClickHouse/ClickHouse/issues/90210). [#90209](https://github.com/ClickHouse/ClickHouse/pull/90209) ([Alsu Giliazova](https://github.com/alsugiliazova)).
* Corrige un décalage du nombre de lignes dans MergeTreeReaderIndex lorsque l’unique part contient moins de lignes que `index_granularity`. Résout [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691). [#90254](https://github.com/ClickHouse/ClickHouse/pull/90254) ([Peng Jian](https://github.com/fastio)).
* Corrige une requête `WITH FILL` infinie avec `nan`/`inf`. Résout [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261). [#90255](https://github.com/ClickHouse/ClickHouse/pull/90255) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige l’erreur 'column not found' avec `query_plan_use_logical_join_step=0` et une condition résiduelle dans JOIN ON. Résout [#88635](https://github.com/ClickHouse/ClickHouse/issues/88635). [#90279](https://github.com/ClickHouse/ClickHouse/pull/90279) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige certaines requêtes avec l’optimisation des projections agrégées. [#90288](https://github.com/ClickHouse/ClickHouse/pull/90288) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige un bug lors de la lecture des sous-colonnes depuis JSON dans des compact parts, pouvant entraîner l’erreur `CANNOT_READ_ALL_DATA`. Résout [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264). [#90302](https://github.com/ClickHouse/ClickHouse/pull/90302) ([Pavel Kruglov](https://github.com/Avogar)).
* Désormais, ClickHouse n’utilisera plus l’optimisation read-in-order pour Iceberg si l’ordre de tri n’est pas indiqué dans les manifest files (ou s’il diffère de `default_sort_order` dans la table). Corrige [#89178](https://github.com/ClickHouse/ClickHouse/issues/89178). [#90304](https://github.com/ClickHouse/ClickHouse/pull/90304) ([alesapin](https://github.com/alesapin)).
* Time et Time64 respectent désormais correctement les timezones lors de la conversion depuis DateTime et DateTime64 (l’heure affichée doit correspondre à la même timezone que celle présentée à l’utilisateur pour un DateTime\[64]). Ferme [#89896](https://github.com/ClickHouse/ClickHouse/issues/89896). [#90310](https://github.com/ClickHouse/ClickHouse/pull/90310) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige un bug où `SELECT CAST(CAST(now(), 'Time'), 'Time64')` produisait un résultat incorrect. Ferme [#88349](https://github.com/ClickHouse/ClickHouse/issues/88349). [#90324](https://github.com/ClickHouse/ClickHouse/pull/90324) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige un crash dû à un overflow d’entier dans randomStringUTF8. [#90326](https://github.com/ClickHouse/ClickHouse/pull/90326) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige les mises à jour de Cluster Discovery dans les configurations multicluster avec `multicluster_root_path`, afin d’éviter les retards et les mises à jour ZooKeeper manquantes. [#90341](https://github.com/ClickHouse/ClickHouse/pull/90341) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Corrige une erreur logique possible dans prewhere sur un chemin JSON inexistant avec index\_granularity\_bytes=0. Résout [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924). [#90375](https://github.com/ClickHouse/ClickHouse/pull/90375) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un bug dans `L2DistanceTransposed` qui provoquait des plantages lorsque l’argument de précision dépassait la plage valide. Clôt [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401). [#90405](https://github.com/ClickHouse/ClickHouse/pull/90405) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige une erreur logique possible dans `arrayUnion` avec un argument `Array(Dynamic)`. Résout [#90270](https://github.com/ClickHouse/ClickHouse/issues/90270). [#90409](https://github.com/ClickHouse/ClickHouse/pull/90409) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige une erreur logique possible lors du renommage et de la modification de la même colonne Nested dans une seule instruction ALTER. Résout [#90406](https://github.com/ClickHouse/ClickHouse/issues/90406). [#90412](https://github.com/ClickHouse/ClickHouse/pull/90412) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige l’analyse des valeurs JSON/Dynamic/Variant à partir des paramètres HTTP. Résout [#88925](https://github.com/ClickHouse/ClickHouse/issues/88925). [#90430](https://github.com/ClickHouse/ClickHouse/pull/90430) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige une race condition dans le partitionnement Hive, où un `KeyValuePairExtractor` statique provoquait une corruption des données ou des plantages lors de lectures concurrentes de fichiers. [#90474](https://github.com/ClickHouse/ClickHouse/pull/90474) ([Paresh Joshi](https://github.com/pareshjoshij)).
* Corrige des calculs de distance incorrects dans `L2DistanceTransposed` lors de l’utilisation de vecteurs de référence sous forme de tableau (par défaut `Array(Float64))`) avec des colonnes `QBit` dont le type d’élément n’est pas `Float64` (`Float32`, `BFloat16`). La fonction convertit désormais automatiquement le vecteur de référence pour qu’il corresponde au type d’élément de `QBit`. Résout [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976). [#90485](https://github.com/ClickHouse/ClickHouse/pull/90485) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige un bug où `toDateTimeOrNull` renvoie NULL pour un argument négatif. [#90490](https://github.com/ClickHouse/ClickHouse/pull/90490) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige une erreur logique possible lors de la sortie de `LowCardinality(Bool/Date32)` au format `Arrow`. Résout [#83883](https://github.com/ClickHouse/ClickHouse/issues/83883). [#90505](https://github.com/ClickHouse/ClickHouse/pull/90505) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige les fonctions d’analyse IPv4 (par ex. `IPv4StringToNumOrDefault`) qui renvoyaient des valeurs erronées pour certaines entrées invalides. Résout [#90544](https://github.com/ClickHouse/ClickHouse/issues/90544). Résout [#87583](https://github.com/ClickHouse/ClickHouse/issues/87583). [#90545](https://github.com/ClickHouse/ClickHouse/pull/90545) ([Michael Kolupaev](https://github.com/al13n321)).
* Réessaie `markReplicasActive` lorsqu’il est impossible de résoudre l’adresse pendant la vérification de l’hôte local : affiche un avertissement dans le journal si une exception survient lors de la vérification de l’hôte local dans DDLTask. Dans DDLWorker::markReplicasActive, lève une exception pour réessayer si aucun hôte local n’est trouvé et qu’il existe des ID d’hôte dans les clusters. [#90556](https://github.com/ClickHouse/ClickHouse/pull/90556) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige une erreur logique causée par un cas rare dans la fonction `equals`. Clôt [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142). [#90557](https://github.com/ClickHouse/ClickHouse/pull/90557) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige, espérons-le, les crashs de Thread sanitizer dans `test_ssh/test.py::test_paramiko_password`. [#90612](https://github.com/ClickHouse/ClickHouse/pull/90612) ([Govind R Nair](https://github.com/Revertionist)).
* Corrige une erreur logique dans la fonction `concatWithSeparator` lors de l’utilisation d’une colonne constante non textuelle. Ferme [#90596](https://github.com/ClickHouse/ClickHouse/issues/90596). [#90655](https://github.com/ClickHouse/ClickHouse/pull/90655) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige le formatage de `INTO OUTFILE`. Résout [#90207](https://github.com/ClickHouse/ClickHouse/issues/90207). [#90656](https://github.com/ClickHouse/ClickHouse/pull/90656) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un crash potentiel lors de l’exécution de mutations avec des sous-requêtes et `allow_statistics_optimize=1`. Résout [#90626](https://github.com/ClickHouse/ClickHouse/issues/90626). [#90664](https://github.com/ClickHouse/ClickHouse/pull/90664) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la validation de l’analyzer pour `LIMIT BY` avec `GROUP BY`, afin de produire la bonne erreur `NOT_AN_AGGREGATE` au lieu de `NOT_FOUND_COLUMN_IN_BLOCK` lorsque `LIMIT BY` utilise des colonnes absentes de `GROUP BY`. Ferme [#89713](https://github.com/ClickHouse/ClickHouse/issues/89713). [#90665](https://github.com/ClickHouse/ClickHouse/pull/90665) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrige les erreurs de transtypage lors de l’utilisation de colonnes `LowCardinality` dans les clés de partition. Ferme [#89412](https://github.com/ClickHouse/ClickHouse/issues/89412). [#90666](https://github.com/ClickHouse/ClickHouse/pull/90666) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrige un problème où des requêtes avec des prédicats de filtre contenant des constantes préévaluées à partir de fonctions non déterministes (par ex. `shardNum()`) pouvaient utiliser à tort le cache des conditions de requête. [#90692](https://github.com/ClickHouse/ClickHouse/pull/90692) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige un segfault sur une requête avec la fonction EXISTS dans la clause JOIN ON. Désormais, la requête renvoie simplement l’erreur `INVALID_JOIN_ON_EXPRESSION`. Ferme [#90698](https://github.com/ClickHouse/ClickHouse/issues/90698). [#90719](https://github.com/ClickHouse/ClickHouse/pull/90719) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige l’erreur logique : 'Inconsistent AST formatting' pour AccessRightsElement lors de l’utilisation de la base de données `default` sans aucune table. [#90742](https://github.com/ClickHouse/ClickHouse/pull/90742) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige la validation des accès pour les requêtes `ALTER UPDATE` lorsqu’une table function `remote` est utilisée avec `localhost` comme hôte cible. [#90761](https://github.com/ClickHouse/ClickHouse/pull/90761) ([pufit](https://github.com/pufit)).
* Corrige l’affichage masqué des secrets dans les named collections pour qu’il dépende de `display_secrets_in_show_and_select` et de `format_display_secrets_in_show_and_select`. [#90765](https://github.com/ClickHouse/ClickHouse/pull/90765) ([Pablo Marcos](https://github.com/pamarcos)).
* Désactive `enable_shared_storage_snapshot_in_query` (provoque des fuites de mémoire). [#90770](https://github.com/ClickHouse/ClickHouse/pull/90770) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un problème de duplication de données dans RIGHT JOIN avec une table distribuée lorsque les répliques parallèles sont activées. [#90806](https://github.com/ClickHouse/ClickHouse/pull/90806) ([zoomxi](https://github.com/zoomxi)).
* Corrige un possible état incohérent des données partagées et des chemins dynamiques dans JSON, susceptible d’entraîner des erreurs logiques et des résultats inattendus. [#90816](https://github.com/ClickHouse/ClickHouse/pull/90816) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `ALTER MODIFY QUERY` avec `dictGet()` et le nom du dictionnaire dans la CSE pour SharedCatalog (fonctionnalité réservée au Cloud). [#90860](https://github.com/ClickHouse/ClickHouse/pull/90860) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la compatibilité de la sérialisation en mémoire de l'état d'aggregation de String. Une sérialisation différente pouvait entraîner des résultats en double si une aggregation query était exécutée sur des instances de versions différentes. La nouvelle sérialisation peut être activée avec `serialize_string_in_memory_with_zero_byte`. [#90880](https://github.com/ClickHouse/ClickHouse/pull/90880) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige le flush en arrière-plan de Buffer en cas d'`INSERT` fréquents. [#90892](https://github.com/ClickHouse/ClickHouse/pull/90892) ([Azat Khuzhin](https://github.com/azat)).
* N'affiche plus le dossier parent contrib/ dans system.licenses. [#90901](https://github.com/ClickHouse/ClickHouse/pull/90901) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige une utilisation élevée de la mémoire lors de la lecture de colonnes JSON/Dynamic/Variant. [#90907](https://github.com/ClickHouse/ClickHouse/pull/90907) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige l'allocation du buffer pour la fonction base58Decode. [#90909](https://github.com/ClickHouse/ClickHouse/pull/90909) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une possible logical error lors de la réception d'une autre read request d'une replica après l'envoi d'une réponse avec l'indicateur `finish=true`. Cela était dû à une possible race condition logique dans `MergeTreeReadPoolParallelReplicas`, bien que cela ait été très peu probable. [#90921](https://github.com/ClickHouse/ClickHouse/pull/90921) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige la vérification des grants avec caractère générique pour un revoke partiel. Ajout de tests supplémentaires. [#90922](https://github.com/ClickHouse/ClickHouse/pull/90922) ([pufit](https://github.com/pufit)).
* Corrige l'aggregation de `SummingMergeTree` pour les colonnes `Nested` `LowCardinality`. [#90927](https://github.com/ClickHouse/ClickHouse/pull/90927) ([Ivan Babrou](https://github.com/bobrik)).
* Corrige la gestion des grants globaux avec des revokes génériques. Corrige le problème où la révocation d'un grant générique pouvait accidentellement révoquer certains grants au niveau global, comme `CREATE USER`. [#90928](https://github.com/ClickHouse/ClickHouse/pull/90928) ([pufit](https://github.com/pufit)).
* Corrige une possible boucle infinie lors de la liste des blobs Azure. [#90947](https://github.com/ClickHouse/ClickHouse/pull/90947) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige des flushes excessifs de Buffer (ce qui consomme du CPU et produit des tonnes de logs). [#91000](https://github.com/ClickHouse/ClickHouse/pull/91000) ([Azat Khuzhin](https://github.com/azat)).
* ... N'autorise pas `adaptive_write_buffer_initial_size` à être défini sur 0. [#91001](https://github.com/ClickHouse/ClickHouse/pull/91001) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrige un bug dans JSON lorsqu'un path peut se trouver à la fois dans les shared data et dans les paths dynamiques lors de la lecture d'un sub-object dans des compact parts avec `write_marks_for_substreams_in_compact_parts` désactivé. [#91014](https://github.com/ClickHouse/ClickHouse/pull/91014) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `std::out_of_range` dans une CTE avec `dictGet` sans arguments. Ferme [#91027](https://github.com/ClickHouse/ClickHouse/issues/91027). [#91022](https://github.com/ClickHouse/ClickHouse/pull/91022) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la lecture des subcolumns dynamiques à partir de materialized columns dans les mutations. Ferme [#90653](https://github.com/ClickHouse/ClickHouse/issues/90653). [#91040](https://github.com/ClickHouse/ClickHouse/pull/91040) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de `arrayFilter`, qui ne fonctionnait pas avec un tableau vide et la fonction `isNull`. Clôture [#73849](https://github.com/ClickHouse/ClickHouse/issues/73849). [#91105](https://github.com/ClickHouse/ClickHouse/pull/91105) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Correction d’une erreur logique dans `ARRAY JOIN` lorsque l’une des colonnes de la table est une colonne Tuple vide. Clôture [#90801](https://github.com/ClickHouse/ClickHouse/issues/90801). [#91123](https://github.com/ClickHouse/ClickHouse/pull/91123) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Correction de la matérialisation différée d’une colonne ajoutée via alter add column dans d’anciennes parts. [#91142](https://github.com/ClickHouse/ClickHouse/pull/91142) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de la fusion des colonnes JSON dans Summing/Aggregating/Coalescing MergeTree. Auparavant, cela pouvait entraîner des paths dynamiques inattendus lors de l’écriture dans les data parts. [#91151](https://github.com/ClickHouse/ClickHouse/pull/91151) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’une structure dynamique potentiellement incohérente lors de l’écriture dans des compact parts, ce qui pouvait provoquer un segfault. [#91152](https://github.com/ClickHouse/ClickHouse/pull/91152) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de l’analyse des valeurs Float sous-normales en notation scientifique. Clôture [#78903](https://github.com/ClickHouse/ClickHouse/issues/78903). [#91162](https://github.com/ClickHouse/ClickHouse/pull/91162) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Correction d’une inférence de schéma erronée dans INSERT SELECT à partir d’une sous-requête avec une source ayant un schéma implicite. [#91204](https://github.com/ClickHouse/ClickHouse/pull/91204) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Correction de [https://github.com/clickhouse/clickhouse/issues/91206](https://github.com/clickhouse/clickhouse/issues/91206) : lorsqu’une table est créée avec des statistiques, que des données y sont écrites, puis qu’une statistique est supprimée, la lecture suivante pouvait provoquer un crash. Cela venait du fait que nous supposions que la sérialisation et la désérialisation utilisaient les mêmes types de statistiques. Avec cette correction, nous vérifions si les métadonnées actuelles contiennent les statistiques sérialisées ; sinon, nous créons de fausses statistiques et ne désérialisons que pour les ignorer. [#91227](https://github.com/ClickHouse/ClickHouse/pull/91227) ([Han Fei](https://github.com/hanfei1991)).
* Correction de l’insertion dans une colonne CoalescingMergeTree avec Tuple de JSON/Dynamic et LowCardinality. Clôture [#91215](https://github.com/ClickHouse/ClickHouse/issues/91215). [#91270](https://github.com/ClickHouse/ClickHouse/pull/91270) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de SYSTEM DROP FILESYSTEM CACHE ON CLUSTER. [#91304](https://github.com/ClickHouse/ClickHouse/pull/91304) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Correction d’une possible erreur logique "Bad cast from type DB::ColumnSparse to DB::ColumnNullable". Clôture [#91284](https://github.com/ClickHouse/ClickHouse/issues/91284). [#91309](https://github.com/ClickHouse/ClickHouse/pull/91309) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un crash lorsque des flux d’octets forgés de manière malveillante sont désérialisés en types QBit imbriqués, ce qui devrait être impossible mais pouvait être exploité pour faire planter le serveur. [#91313](https://github.com/ClickHouse/ClickHouse/pull/91313) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Correction de la table Alias avec des arguments vides dans une Replicated database. Résout [#91378](https://github.com/ClickHouse/ClickHouse/issues/91378). [#91382](https://github.com/ClickHouse/ClickHouse/pull/91382) ([Kai Zhu](https://github.com/nauu)).
* Actuellement, ce paramètre est défini sur false ; ainsi, lorsque la queue d’async insert est vidée vers un serveur distant, les inserts sont toujours synchrones, même si ce paramètre est à True pour un utilisateur. [#91386](https://github.com/ClickHouse/ClickHouse/pull/91386) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Supprime les colonnes sparse de l’en-tête dans les algorithmes de fusion. Clôt [#91377](https://github.com/ClickHouse/ClickHouse/issues/91377). [#91396](https://github.com/ClickHouse/ClickHouse/pull/91396) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un bug de partitionnement Hive dans la version 25.8, qui peut entraîner le déclenchement incorrect de l’exception `A hive partitioned file can't contain only partition columns`. [#91403](https://github.com/ClickHouse/ClickHouse/pull/91403) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un crash dans `dictGetDescendants` causé par `NULL` lorsque le type de dictionnaire prend en charge Hierarchy mais qu’aucune colonne n’est `HIERARCHICAL`. Clôt [#92026](https://github.com/ClickHouse/ClickHouse/issues/92026). Clôt [#92121](https://github.com/ClickHouse/ClickHouse/issues/92121). [#91420](https://github.com/ClickHouse/ClickHouse/pull/91420) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige un crash dans la fonction `IN` lorsque des arguments Tuple lambda et non constants sont utilisés. Clôt [#91379](https://github.com/ClickHouse/ClickHouse/issues/91379). [#91446](https://github.com/ClickHouse/ClickHouse/pull/91446) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige les écritures parallèles déclenchées par des insertions dans des MaterializedView vers des storages qui ne les prennent pas en charge. [#91449](https://github.com/ClickHouse/ClickHouse/pull/91449) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Gère les valeurs nulles pour les dictionnaires XML Ytsaurus. [#91465](https://github.com/ClickHouse/ClickHouse/pull/91465) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige le type `QBit`, qui échouait avec des query parameters comme `SET param_q=[1,2,3,4]; SELECT {q:QBit(Float32,4)}`. [#91488](https://github.com/ClickHouse/ClickHouse/pull/91488) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige LOGICAL\_ERROR lorsque `untuple` est utilisé dans une expression constante. [#91507](https://github.com/ClickHouse/ClickHouse/pull/91507) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Corrige une possible condition de concurrence dans `librdkafka`. [#91521](https://github.com/ClickHouse/ClickHouse/pull/91521) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige une erreur logique causée par l’argument astérisque dans la fonction `remote`. Clôt [#90568](https://github.com/ClickHouse/ClickHouse/issues/90568). [#91524](https://github.com/ClickHouse/ClickHouse/pull/91524) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige un overflow lors de la lecture du format ORC pour les types Date et DateTime64. Clôt [#70976](https://github.com/ClickHouse/ClickHouse/issues/70976). [#91572](https://github.com/ClickHouse/ClickHouse/pull/91572) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Interdit les ALTER pour les table engines de stockage objet. Par exemple, ALTER ADD PROJECTION pouvait empêcher le redémarrage du server, car les engines de stockage objet ne prennent pas en charge les projections. [#91573](https://github.com/ClickHouse/ClickHouse/pull/91573) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige [`L2DistanceTransposed`](/fr/reference/functions/regular-functions/distance-functions#L2DistanceTransposed), qui renvoyait des résultats incorrects lors de l’utilisation de vecteurs de référence non constants (par exemple, depuis une table). [#91517](https://github.com/ClickHouse/ClickHouse/issues/91517). [#91593](https://github.com/ClickHouse/ClickHouse/pull/91593) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige un bug affectant les JOIN sur des conditions FALSE, qui renvoyaient `LOGICAL_ERROR` pendant l’étape de distribution. Clôt [#91173](https://github.com/ClickHouse/ClickHouse/issues/91173). [#91598](https://github.com/ClickHouse/ClickHouse/pull/91598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige une augmentation de l’utilisation de la mémoire dans un JOIN avec "additional filter". Clôt [#91011](https://github.com/ClickHouse/ClickHouse/issues/91011). [#91664](https://github.com/ClickHouse/ClickHouse/pull/91664) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige les requêtes JOIN avec vue et parallélisme entre répliques activé. [#91813](https://github.com/ClickHouse/ClickHouse/pull/91813) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige le paramètre delta lake `delta_lake_snapshot_version`, qui pouvait renvoyer un résultat incorrect lorsqu’il était utilisé avec un moteur de table (et non une fonction de table) et la valeur -1 (désactivé), après qu’une snapshot version avait déjà été utilisée. Clôt [#87676](https://github.com/ClickHouse/ClickHouse/issues/87676). [#91818](https://github.com/ClickHouse/ClickHouse/pull/91818) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige LOGICAL\_ERROR dans RecursiveCTEChunkGenerator. [#91827](https://github.com/ClickHouse/ClickHouse/pull/91827) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige une incompatibilité de structure de bloc avec les requêtes utilisant FINAL et PREWHERE. [#91847](https://github.com/ClickHouse/ClickHouse/pull/91847) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une logical error avec `join_use_nulls`, plusieurs JOIN et un CROSS JOIN. [#91853](https://github.com/ClickHouse/ClickHouse/pull/91853) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ajoute un mécanisme de réparation pour le JSON avec chemin dupliqué dans les shared data et chemins dynamiques, ce qui pouvait se produire à cause du bug corrigé dans [https://github.com/ClickHouse/ClickHouse/pull/90816](https://github.com/ClickHouse/ClickHouse/pull/90816). [#91886](https://github.com/ClickHouse/ClickHouse/pull/91886) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un bug du lecteur ORC lors de la lecture de colonnes String encodées avec DICTIONARY\_V2 et ne contenant que des valeurs NULL. [#91889](https://github.com/ClickHouse/ClickHouse/pull/91889) ([Peng Jian](https://github.com/fastio)).
* Corrige une incohérence de sérialisation entre les substreams sparse et Nullable dans les colonnes Tuple, qui pouvait entraîner des parts corrompues ou des crashs pendant la lecture. Cela corrige [https://github.com/ClickHouse/ClickHouse/pull/91851](https://github.com/ClickHouse/ClickHouse/pull/91851) . @Algunenano pourriez-vous vérifier si cela peut corriger le test de stress dans le dépôt privé ? @CurtizJ pourriez-vous aussi y jeter un œil, s’il vous plaît ? Merci !. [#91932](https://github.com/ClickHouse/ClickHouse/pull/91932) ([Amos Bird](https://github.com/amosbird)).
* Corrige `Directory '{}' does not exist (LOGICAL_ERROR)` lors de la création de backups sur des disques réinscriptibles simples. [#91935](https://github.com/ClickHouse/ClickHouse/pull/91935) ([Julia Kartseva](https://github.com/jkartseva)).
* Empêche un crash lors de la connexion à MongoDB avec des named collections. [#91959](https://github.com/ClickHouse/ClickHouse/pull/91959) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l’erreur "TOO\_MANY\_MARKS", qui pouvait se produire après certaines requêtes `ALTER` sur des compact parts. [#91980](https://github.com/ClickHouse/ClickHouse/pull/91980) ([alesapin](https://github.com/alesapin)).
* Clôt [https://github.com/clickhouse/clickhouse/issues/87417](https://github.com/clickhouse/clickhouse/issues/87417) : le schéma d’écriture du format v1 comporte une erreur : le type de "added\_snapshot\_id" devrait être "long" plutôt que "null, long", car il est requis. C’est un bug, car ce n’est pas compatible avec d’autres systèmes comme Spark. Quand leurs manifest files sont mélangés, le bug se produit. [#92078](https://github.com/ClickHouse/ClickHouse/pull/92078) ([Han Fei](https://github.com/hanfei1991)).
* Corrige les noms incorrects de `readWKT` et `readWKB`, dont le style n’était pas correct dans les versions précédentes. [#92094](https://github.com/ClickHouse/ClickHouse/pull/92094) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige de nombreuses erreurs logiques, des dépassements de capacité et des bogues fonctionnels dans la fonction `midpoint`. Clôt [#91816](https://github.com/ClickHouse/ClickHouse/issues/91816). [#92102](https://github.com/ClickHouse/ClickHouse/pull/92102) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige des résultats incorrects pouvant apparaître lors de la lecture de certaines sous-colonnes (par ex. la taille des chaînes) avec un encodage sparse. [#92156](https://github.com/ClickHouse/ClickHouse/pull/92156) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige l’échec de `system.view_refreshes` avec l’erreur `No macro 'replica' in config`. [#92203](https://github.com/ClickHouse/ClickHouse/pull/92203) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige le remplacement d’UDF dans le format. [#92210](https://github.com/ClickHouse/ClickHouse/pull/92210) ([Raúl Marín](https://github.com/Algunenano)).
* Dans `ddlworker::markreplicasactive`, si aucun hôte actif n’est trouvé et que `remote_servers` contient certains host\_ids, un avertissement est consigné au lieu de lever une exception. [#92223](https://github.com/ClickHouse/ClickHouse/pull/92223) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Entoure les opérateurs `IN` et `NOT IN` de parenthèses. Corrige [#85075](https://github.com/ClickHouse/ClickHouse/issues/85075). [#92225](https://github.com/ClickHouse/ClickHouse/pull/92225) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrige la sauvegarde des tables KeeperMap et Memory. La création d’une sauvegarde de tables utilisant l’un de ces deux moteurs avec `max_compress_block_size` défini à `0` pouvait entraîner un crash. [#92237](https://github.com/ClickHouse/ClickHouse/pull/92237) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un crash lors de la lecture simultanée de données String et de la sous-colonne .size depuis le moteur Log. Corrige [#89909](https://github.com/ClickHouse/ClickHouse/issues/89909). Inclut certains commits de [#92290](https://github.com/ClickHouse/ClickHouse/issues/92290). [#92341](https://github.com/ClickHouse/ClickHouse/pull/92341) ([Amos Bird](https://github.com/amosbird)).
* Corrige une erreur logique provoquée par l’utilisation du type `Nothing` dans les arguments de la fonction `caseWithExpression`. Clôt [#85354](https://github.com/ClickHouse/ClickHouse/issues/85354). [#92351](https://github.com/ClickHouse/ClickHouse/pull/92351) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige un crash possible dans les fonctions d’agrégation après MEMORY\_LIMIT\_EXCEEDED. [#92390](https://github.com/ClickHouse/ClickHouse/pull/92390) ([Azat Khuzhin](https://github.com/azat)).

#### Amélioration de la compilation/des tests/du packaging

* Utilisation de `clang-21` en CI. [#87074](https://github.com/ClickHouse/ClickHouse/pull/87074) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Éviter les téléchargements via cmake lors de la compilation croisée. [#90506](https://github.com/ClickHouse/ClickHouse/pull/90506) ([Raúl Marín](https://github.com/Algunenano)).

<div id="2511">
  ### Version de ClickHouse 25.11, 2025-11-27
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Suppression du type `Object` obsolète. [#85718](https://github.com/ClickHouse/ClickHouse/pull/85718) ([Pavel Kruglov](https://github.com/Avogar)).
* Suppression de la fonctionnalité `LIVE VIEW` obsolète. Si vous utilisez `LIVE VIEW`, la mise à niveau vers la nouvelle version ne sera pas possible. [#88706](https://github.com/ClickHouse/ClickHouse/pull/88706) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans les versions précédentes, le type `Geometry` était un alias de `String`, mais il s’agit désormais d’un type à part entière. [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)).
* Échappement des noms de fichiers créés pour les sous-colonnes de type `Variant` dans les Wide data parts des tables MergeTree. Ce changement rompt la compatibilité avec les anciennes tables utilisant les types de données Variant/Dynamic/JSON. Il corrige le stockage des types contenant des caractères spéciaux dans Variant (par exemple, un DateTime avec un timezone spécifique contenant `\`). L’échappement peut être désactivé en modifiant le paramètre MergeTree `escape_variant_subcolumn_filenames` (pour conserver la compatibilité, désactivez ce paramètre dans la config de MergeTree ou définissez le paramètre `compatibility` sur la version précédente avant la mise à niveau). Résout [#69590](https://github.com/ClickHouse/ClickHouse/issues/69590). [#87300](https://github.com/ClickHouse/ClickHouse/pull/87300) ([Pavel Kruglov](https://github.com/Avogar)).
* Activation par défaut du format de sérialisation `with_size_stream` pour le type de données `String`. Ce changement est rétrocompatible, mais le nouveau format de sérialisation n’est pris en charge qu’à partir de la version 25.10, ce qui signifie qu’un retour à une version antérieure à 25.10 ne sera pas possible. Si vous souhaitez conserver la possibilité de revenir à la version 25.9 ou antérieure, configurez `serialization_info_version` sur `basic` et `string_serialization_version` sur `single_stream` dans la section `merge_tree` de la configuration du serveur. [#89329](https://github.com/ClickHouse/ClickHouse/pull/89329) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge du balisage des exceptions dans les réponses de résultats HTTP afin de permettre aux clients d’analyser les exceptions de manière plus fiable. Résout [#75175](https://github.com/ClickHouse/ClickHouse/issues/75175). Le paramètre `http_write_exception_in_output_format` est désactivé par défaut pour garantir la cohérence entre les formats. [#88818](https://github.com/ClickHouse/ClickHouse/pull/88818) ([Kaviraj Kanagaraj](https://github.com/kavirajk)). Bien que cela ne soit pas censé casser un comportement existant (dans le pire des cas, une chaîne étrange sera ajoutée au message d’exception), il reste pertinent d’utiliser « Backward Incompatible Change » comme catégorie du changelog par précaution (car on ne sait jamais comment certains scripts bricolés peuvent analyser le message d’exception).
* Interdiction de créer plusieurs disques `plain-rewritable` sur un même path partagé d’object storage, car cela peut entraîner un comportement indéfini en cas de collision entre différentes transactions du stockage des métadonnées. [#89038](https://github.com/ClickHouse/ClickHouse/pull/89038) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Correction de la priorité des paramètres SASL du stockage Kafka. Les paramètres SASL au niveau table spécifiés dans les requêtes CREATE TABLE remplacent désormais correctement les paramètres spécifiques au consumer/producteur provenant des fichiers de configuration. [#89401](https://github.com/ClickHouse/ClickHouse/pull/89401) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Les timestamps Parquet sans timezone (isAdjustedToUTC=false) sont désormais lus comme DateTime64(..., 'UTC') au lieu de DateTime64(...). C’est moins incorrect, car la conversion d’un tel timestamp UTC en chaîne produit une représentation correcte de l’heure locale. Utilisez `input_format_parquet_local_time_as_utc = 0` pour obtenir l’ancien comportement. Résout [#87469](https://github.com/ClickHouse/ClickHouse/issues/87469). [#87872](https://github.com/ClickHouse/ClickHouse/pull/87872) ([Michael Kolupaev](https://github.com/al13n321)).
* Petite amélioration du codec `T64` : il n’accepte plus les types de données non alignés sur la taille de l’élément de compression, ce qui déclenchait sinon un bug. Résout [#89282](https://github.com/ClickHouse/ClickHouse/issues/89282). [#89432](https://github.com/ClickHouse/ClickHouse/pull/89432) ([yanglongwei](https://github.com/ylw510)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Introduction du type `Geometry`. Prise en charge de la lecture des formats `WKB` et `WKT`. Dans les versions précédentes, le type `Geometry` était un alias de `String`, mais c'est désormais un type pleinement fonctionnel. [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)).
* Ajout de la nouvelle instruction SQL `EXECUTE AS` pour prendre en charge l'impersonation d'utilisateur. Résout [#39048](https://github.com/ClickHouse/ClickHouse/issues/39048). [#70775](https://github.com/ClickHouse/ClickHouse/pull/70775) ([Shankar](https://github.com/shiyer7474)).
* Ajout de la fonction `naiveBayesClassifier` pour classifier du texte avec Naive Bayes à partir de ngrams. [#88677](https://github.com/ClickHouse/ClickHouse/pull/88677) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Ajout de la prise en charge de `LIMIT` et `OFFSET` fractionnaires pour sélectionner une fraction d'une table. Ferme [#81892](https://github.com/ClickHouse/ClickHouse/issues/81892). [#88755](https://github.com/ClickHouse/ClickHouse/pull/88755) ([Ahmed Gouda](https://github.com/0xgouda)).
* Sous-système ClickHouse pour le catalog Microsoft OneLake. [#89366](https://github.com/ClickHouse/ClickHouse/pull/89366) ([scanhex12](https://github.com/scanhex12)).
* Ajout de la fonction `flipCoordinates`, qui déroule le nombre requis de dimensions dans un Array et échange les pointeurs dans la colonne Tuple. Résout [#79469](https://github.com/ClickHouse/ClickHouse/issues/79469). [#79634](https://github.com/ClickHouse/ClickHouse/pull/79634) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)).
* Ajout de la table `system.unicode`, qui contient une liste de caractères Unicode et de leurs propriétés. Ferme [#80055](https://github.com/ClickHouse/ClickHouse/issues/80055). [#80857](https://github.com/ClickHouse/ClickHouse/pull/80857) ([wxybear](https://github.com/wxybear)).
* Ajout d'un nouveau paramètre MergeTree `merge_max_dynamic_subcolumns_in_wide_part` pour pouvoir limiter le nombre de sous-colonnes dynamiques dans la Wide part après fusion, indépendamment des paramètres spécifiés dans le type de données. [#87646](https://github.com/ClickHouse/ClickHouse/pull/87646) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout de la prise en charge de la window function `cume_dist`. Corrige [#86920](https://github.com/ClickHouse/ClickHouse/issues/86920). [#88102](https://github.com/ClickHouse/ClickHouse/pull/88102) ([Manuel](https://github.com/raimannma)).
* L'utilisateur peut désormais ajouter un nouvel argument `preprocessor` lors de la création d'un text index. Cet argument est une expression arbitraire qui transforme chaque document avant la tokenization. [#88272](https://github.com/ClickHouse/ClickHouse/pull/88272) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Ajout d'un champ `memory_usage` à `X-ClickHouse-Progress` et `X-ClickHouse-Summary`. Il peut être utilisé pour collecter l'utilisation mémoire des queries en temps réel côté client. [#88393](https://github.com/ClickHouse/ClickHouse/pull/88393) ([Christoph Wurm](https://github.com/cwurm)).
* Ajout du paramètre `into_outfile_create_parent_directories` pour créer automatiquement les répertoires parents pour `INTO OUTFILE`, ce qui évite les erreurs lorsque les chemins de sortie n'existent pas. Cela simplifie les workflows dans lesquels des queries écrivent des résultats dans des répertoires imbriqués. Résout [#88610](https://github.com/ClickHouse/ClickHouse/issues/88610). [#88795](https://github.com/ClickHouse/ClickHouse/pull/88795) ([Saksham](https://github.com/Saksham10-11)).
* Prise en charge de la syntaxe `CREATE OR REPLACE` pour les tables temporaires. Ferme [#35888](https://github.com/ClickHouse/ClickHouse/issues/35888). [#89450](https://github.com/ClickHouse/ClickHouse/pull/89450) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Prise en charge de `arrayRemove` pour supprimer du tableau `arr` tous les éléments égaux à `elem`. Cela n’est utile que pour la compatibilité avec Postgres, car ClickHouse dispose déjà d’une fonction bien plus puissante, `arrayFilter`. Corrige [#52099](https://github.com/ClickHouse/ClickHouse/issues/52099). [#89585](https://github.com/ClickHouse/ClickHouse/pull/89585) ([tiwarysaurav](https://github.com/tiwarysaurav)).
* Introduction de la fonction scalaire `midpoint`, qui calcule la moyenne. Corrige [#89029](https://github.com/ClickHouse/ClickHouse/issues/89029). [#89679](https://github.com/ClickHouse/ClickHouse/pull/89679) ([simonmichal](https://github.com/simonmichal)).
* La web UI propose désormais un bouton de téléchargement. Il permet de télécharger le résultat complet même si l’UI n’en affiche qu’une partie. [#89768](https://github.com/ClickHouse/ClickHouse/pull/89768) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout du paramètre `arrow_flight_request_descriptor_type` pour prendre en charge Dremio et d’autres serveurs Arrow Flight qui nécessitent des descripteurs au format commande. Implémente [#89523](https://github.com/ClickHouse/ClickHouse/issues/89523). [#89826](https://github.com/ClickHouse/ClickHouse/pull/89826) ([Shreyas Ganesh](https://github.com/shreyasganesh0)).
* Nouvelles fonctions d’agrégation `argAndMin` et `argAndMax`, qui renvoient l’argument et la valeur extrême correspondante. Dans les versions précédentes, il était également possible d’obtenir ce résultat en utilisant un tuple comme argument. [#89884](https://github.com/ClickHouse/ClickHouse/pull/89884) ([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad)).
* Paramètres pour écrire et vérifier les sommes de contrôle Parquet. [#79012](https://github.com/ClickHouse/ClickHouse/pull/79012) ([Michael Kolupaev](https://github.com/al13n321)).
* Ajout du paramètre `kafka_schema_registry_skip_bytes` au Kafka table engine pour ignorer les octets d’en-tête de l’enveloppe (par ex. le préfixe de 19 octets d’AWS Glue Schema Registry) avant l’analyse de la charge utile du message. Cela permet à ClickHouse de consommer des messages provenant de schema registries qui ajoutent des en-têtes de métadonnées. [#89621](https://github.com/ClickHouse/ClickHouse/pull/89621) ([Taras Polishchuk](https://github.com/wake-up-neo)).
* Ajout de la fonction `h3PolygonToCells`, qui permet de remplir une géométrie avec des hexagones H3. Corrige [#33991](https://github.com/ClickHouse/ClickHouse/issues/33991). [#66262](https://github.com/ClickHouse/ClickHouse/pull/66262) ([Zacharias Knudsen](https://github.com/zachasme)).
* Ajout d’une nouvelle colonne virtuelle `_tags` (`Map(String, String)`) contenant tous les tags associés au blob dans S3 (remarque : si le blob n’a aucun tag, aucune requête supplémentaire ne sera effectuée). Corrige [#72945](https://github.com/ClickHouse/ClickHouse/issues/72945). [#77773](https://github.com/ClickHouse/ClickHouse/pull/77773) ([Zicong Qu](https://github.com/zicongleoqu)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* Prise en charge de la récupération de certificats TLS auprès de fournisseurs ACME, [RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555), tels que Let's Encrypt. Cela permet l'autoconfiguration de TLS sur les clusters distribués. [#66315](https://github.com/ClickHouse/ClickHouse/pull/66315) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Prise en charge partielle de la Prometheus HTTP Query API. Pour l'activer, ajoutez une règle de type `query_api` dans la section `<prometheus>` du fichier de configuration. Les gestionnaires pris en charge sont `/api/v1/query_range` et `/api/v1/query`. [#86132](https://github.com/ClickHouse/ClickHouse/pull/86132) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* La recherche en texte intégral est désormais en bêta (alors qu'elle était auparavant au stade expérimental). [#88928](https://github.com/ClickHouse/ClickHouse/pull/88928) ([Robert Schulze](https://github.com/rschu1ze)).
* `Alias` passe au stade expérimental et peut être activé avec `allow_experimental_alias_table_engine = 1`. [#89712](https://github.com/ClickHouse/ClickHouse/pull/89712) ([Kai Zhu](https://github.com/nauu)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Le lecteur Parquet v3 est activé par défaut. [#88827](https://github.com/ClickHouse/ClickHouse/pull/88827) ([Michael Kolupaev](https://github.com/al13n321)).
* Exécution distribuée : meilleure répartition des tâches par identifiants de groupes de lignes, et non par fichiers. [#87508](https://github.com/ClickHouse/ClickHouse/pull/87508) ([scanhex12](https://github.com/scanhex12)).
* Les JOIN `RIGHT` et `FULL` utilisent désormais ConcurrentHashJoin ; ces types de jointure s’exécutent donc maintenant avec un degré de parallélisme plus élevé. Améliore divers cas de JOIN RIGHT et FULL jusqu’à un facteur deux. Résout [#78027](https://github.com/ClickHouse/ClickHouse/issues/78027). [#78462](https://github.com/ClickHouse/ClickHouse/pull/78462) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Optimisation pour les grandes valeurs d’expressions constantes dans les requêtes. Ferme [#72880](https://github.com/ClickHouse/ClickHouse/issues/72880). [#81104](https://github.com/ClickHouse/ClickHouse/pull/81104) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Requêtes `SELECT` jusqu’à 8x plus rapides avec un partition pruning important sur des tables comportant plus de 10K parts. [#85535](https://github.com/ClickHouse/ClickHouse/pull/85535) ([James Morrison](https://github.com/jawm)).
* Lorsqu’une requête utilise une table de hachage fixe pour l’état d’agrégation (group by sur un petit entier), ClickHouse fusionne l’état d’agrégation en parallèle afin d’accélérer la requête. [#87366](https://github.com/ClickHouse/ClickHouse/pull/87366) ([Jianfei Hu](https://github.com/incfly)).
* Autorise l’utilisation de projections (qui utilisent SELECT de `_part_offset` et un ORDER BY différent) comme index secondaire. Lorsqu’elle est activée, certains prédicats de requête peuvent être utilisés pour lire depuis les projection parts et générer des bitmaps afin de filtrer efficacement les lignes pendant l’étape PREWHERE. Il s’agit de la troisième étape de l’implémentation de l’index de projection, après [#80343](https://github.com/ClickHouse/ClickHouse/issues/80343). [#81021](https://github.com/ClickHouse/ClickHouse/pull/81021) ([Amos Bird](https://github.com/amosbird)).
* Correction de VDSO pour de rares systèmes Aarch64 et, potentiellement, d’autres combinaisons architecture/noyau. [#86096](https://github.com/ClickHouse/ClickHouse/pull/86096) ([Tomas Hulata](https://github.com/tombokombo)).
* Améliore la vitesse de décompression LZ4 en simplifiant le code et en ajustant l’[algorithme de sélection](https://clickhouse.com/blog/lz4-compression-in-clickhouse#how-to-choose-the-best-algorithm). [#88360](https://github.com/ClickHouse/ClickHouse/pull/88360) ([Raúl Marín](https://github.com/Algunenano)).
* S3 partitionne les objets en interne en fonction des préfixes de noms de clés et s’adapte automatiquement à des taux de requêtes élevés par partition. Cette modification introduit deux nouveaux paramètres BACKUP : data\_file\_name\_generator et data\_file\_name\_prefix\_length. Lorsque data\_file\_name\_generator=checksum, les fichiers de données de sauvegarde sont nommés à l’aide d’un hash de leur contenu. Example : pour un checksum = `abcd1234ef567890abcd1234ef567890` et `data_file_name_prefix_length = 3`, le chemin obtenu sera : `abc/d1234ef567890abcd1234ef567890`. La distribution de clés qui en résulte améliore l’équilibrage de charge entre les partitions S3 et réduit le risque de throttling. [#88418](https://github.com/ClickHouse/ClickHouse/pull/88418) ([Julia Kartseva](https://github.com/jkartseva)).
* Amélioration des performances de l’index de texte grâce à la mise en cache des blocs de dictionnaire et à l’utilisation de tables de hachage pour les lookups de jetons au lieu d’une recherche binaire. [#88786](https://github.com/ClickHouse/ClickHouse/pull/88786) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Les requêtes peuvent désormais tirer parti simultanément de `optimize_read_in_order` et de `query_plan_optimize_lazy_materialization`. Résout [#88767](https://github.com/ClickHouse/ClickHouse/issues/88767). [#88866](https://github.com/ClickHouse/ClickHouse/pull/88866) ([Manuel](https://github.com/raimannma)).
* Utiliser une projection d’agrégation pour les requêtes avec `DISTINCT`. Clôt [#86925](https://github.com/ClickHouse/ClickHouse/issues/86925). [#88894](https://github.com/ClickHouse/ClickHouse/pull/88894) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Mise en cache des posting lists pour améliorer les performances lors d’exécutions consécutives. [#88912](https://github.com/ClickHouse/ClickHouse/pull/88912) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Exécuter la transformation LIMIT BY en streaming lorsque l’ordre de tri en entrée correspond aux clés LIMIT BY. [#88969](https://github.com/ClickHouse/ClickHouse/pull/88969) ([Eduard Karacharov](https://github.com/korowa)).
* Autoriser la réécriture de `ANY LEFT JOIN` ou `ANY RIGHT JOIN` en `ALL INNER JOIN` dans certains cas. [#89403](https://github.com/ClickHouse/ClickHouse/pull/89403) ([Dmitry Novik](https://github.com/novikd)).
* Réduire la surcharge de la journalisation : utiliser moins d’opérations atomiques par entrée. [#89651](https://github.com/ClickHouse/ClickHouse/pull/89651) ([Sergei Trifonov](https://github.com/serxa)).
* Lorsque les runtime filters sont activés dans une requête avec plusieurs jointures et que plusieurs runtime filters sont ajoutés, implémenter le pushdown des étapes de filtre nouvellement ajoutées sur les autres. [#89725](https://github.com/ClickHouse/ClickHouse/pull/89725) ([Alexander Gololobov](https://github.com/davenger)).
* Accélérer légèrement certaines opérations `uniqExact` en réduisant la surcharge liée à la fusion des tables de hachage. [#89727](https://github.com/ClickHouse/ClickHouse/pull/89727) ([Raúl Marín](https://github.com/Algunenano)).
* Augmenter de 10 à 100 la limite du nombre de lignes pour la matérialisation paresseuse. [#89772](https://github.com/ClickHouse/ClickHouse/pull/89772) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Activer par défaut le paramètre `allow_special_serialization_kinds_in_output_formats`. Cela réduira l’utilisation mémoire et améliorera la vitesse d’exécution des requêtes pour la sortie des colonnes Sparse/Replicated dans certains formats de sortie en lignes. [#89402](https://github.com/ClickHouse/ClickHouse/pull/89402) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout du parallélisme pour les requêtes `ALTER TABLE ... FREEZE`. [#71743](https://github.com/ClickHouse/ClickHouse/pull/71743) ([Kirill](https://github.com/kirillgarbar)).
* Ajouter un cache pour l’authentification bcrypt. [#87115](https://github.com/ClickHouse/ClickHouse/pull/87115) ([Nikolay Degterinsky](https://github.com/evillique)).
* Si un skip index utilisé dans une requête avec `FINAL` porte sur une colonne faisant partie de la clé primaire, l’étape supplémentaire consistant à vérifier l’intersection de la clé primaire dans les autres parties est inutile et n’est désormais plus effectuée. Résout [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897). [#88368](https://github.com/ClickHouse/ClickHouse/pull/88368) ([Shankar Iyer](https://github.com/shankar-iyer)).
* L’optimisation `enable_lazy_columns_replication` est désormais activée par défaut, ce qui permettra d’économiser de la mémoire dans les jointures. [#89316](https://github.com/ClickHouse/ClickHouse/pull/89316) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Introduire un cache `ColumnsDescription` par table pour les parties, afin de réduire l’utilisation mémoire lorsque les tables contiennent de nombreuses parties et colonnes. [#89352](https://github.com/ClickHouse/ClickHouse/pull/89352) ([Azat Khuzhin](https://github.com/azat)).
* Introduction d’un cache pour l’en-tête désérialisé du text index afin de réduire les E/S et d’améliorer les performances des requêtes. Le cache peut être configuré via de nouveaux paramètres serveur : - `text_index_header_cache_policy` - `text_index_header_cache_size` - `text_index_header_cache_max_entries` - `text_index_header_cache_size_ratio`. [#89513](https://github.com/ClickHouse/ClickHouse/pull/89513) ([Elmi Ahmadov](https://github.com/ahmadov)).

<div id="improvement">
  #### Amélioration
</div>

* UNION doit unifier les types avec `Variant` si nécessaire lorsque `use_variant_as_common_type` est défini. Résout [#82772](https://github.com/ClickHouse/ClickHouse/issues/82772). [#83246](https://github.com/ClickHouse/ClickHouse/pull/83246) ([Mithun p](https://github.com/mithunputhusseri)).
* Les rôles définis en SQL peuvent désormais être accordés aux utilisateurs définis dans `users.xml`. [#88139](https://github.com/ClickHouse/ClickHouse/pull/88139) ([c-end](https://github.com/c-end)).
* Journalise les requêtes internes (celles exécutées en interne par les dictionnaires, les vues matérialisées actualisables, etc.) et ajoute la nouvelle colonne `is_internal` à `system.query_log`. [#83277](https://github.com/ClickHouse/ClickHouse/pull/83277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Opérateur `IS NOT DISTINCT FROM` (`<=>`) amélioré : ajout de la prise en charge de l’inverse `IS DISTINCT FROM`, ainsi que d’opérandes numériques compatibles de types différents (par ex. `Nullable(UInt32)` et `Nullable(Int64)`). Résout [#86763](https://github.com/ClickHouse/ClickHouse/issues/86763). [#87581](https://github.com/ClickHouse/ClickHouse/pull/87581) ([yanglongwei](https://github.com/ylw510)).
* `clickhouse-client` et `clickhouse-local` en mode interactif mettront en surbrillance, dans la ligne de commande, les identifiants portant le même nom que celui actuellement sous le curseur. [#89689](https://github.com/ClickHouse/ClickHouse/pull/89689) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les paramètres liés au format de sortie n’affectent désormais plus le cache des requêtes. De plus, le cache des requêtes ignorera le paramètre `http_response_headers`. Cela est nécessaire pour permettre l’implémentation de fonctionnalités telles que le téléchargement du résultat depuis le cache dans la web UI. [#89756](https://github.com/ClickHouse/ClickHouse/pull/89756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* L’interface HTTP fournira les en-têtes `Age` et `Expires` lorsque le cache de résultats de requête est utilisé. La présence de l’en-tête `Age` indique si le résultat provient du cache, tandis que `Expires` est également défini lors de la première écriture. Introduction de nouveaux événements de profil : `QueryCacheAgeSeconds`, `QueryCacheReadRows`, `QueryCacheReadBytes`, `QueryCacheWrittenRows`, `QueryCacheWrittenBytes`. [#89759](https://github.com/ClickHouse/ClickHouse/pull/89759) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autorise les insertions dans les tables distantes et les tables de data lake lorsque `disable_insertion_and_mutation` est activé (ce qui signifie des warehouses en lecture seule dans ClickHouse Cloud). [#88549](https://github.com/ClickHouse/ClickHouse/pull/88549) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajout de la requête `SYSTEM DROP TEXT INDEX CACHES`. [#90287](https://github.com/ClickHouse/ClickHouse/pull/90287) ([Anton Popov](https://github.com/CurtizJ)).
* Active `enable_shared_storage_snapshot_in_query` par défaut pour de meilleures garanties de cohérence. Il ne devrait y avoir aucun inconvénient. [#82634](https://github.com/ClickHouse/ClickHouse/pull/82634) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout du paramètre `send_profile_events`, qui permet aux clients de réduire le trafic réseau lorsque les événements de profil ne sont pas utilisés. [#89588](https://github.com/ClickHouse/ClickHouse/pull/89588) ([Kaviraj Kanagaraj](https://github.com/kavirajk)).
* Autorise la désactivation, requête par requête, du téléchargement en arrière-plan des segments voisins. Corrige [#89524](https://github.com/ClickHouse/ClickHouse/issues/89524). [#89668](https://github.com/ClickHouse/ClickHouse/pull/89668) ([tanner-bruce](https://github.com/tanner-bruce)).
* Autorise `FETCH PARTITION` lorsqu’il y a des disques défectueux dans des tables MergeTree répliquées. [#58663](https://github.com/ClickHouse/ClickHouse/pull/58663) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige une exception non interceptée lors de la récupération du schéma d’une table MySQL dans le moteur de base de données MySQL. [#69358](https://github.com/ClickHouse/ClickHouse/pull/69358) ([Duc Canh Le](https://github.com/canhld94)).
* Toutes les requêtes DDL `ON CLUSTER` s'exécutent désormais avec le contexte utilisateur de la requête d'origine, pour une meilleure validation des accès. [#71334](https://github.com/ClickHouse/ClickHouse/pull/71334) ([pufit](https://github.com/pufit)).
* Ajout de la prise en charge de `UUID` dans `Parquet` lorsqu'il est représenté par `FixedString(16)` avec le type logique `UUID`. [#74484](https://github.com/ClickHouse/ClickHouse/pull/74484) ([alekseev-maksim](https://github.com/alekseev-maksim)).
* Désactive ThreadFuzzer par défaut dans les binaires autres que le serveur. [#89115](https://github.com/ClickHouse/ClickHouse/pull/89115) ([Raúl Marín](https://github.com/Algunenano)).
* Rend les optimisations du plan de requête visibles pour le sous-plan d'entrée de la sous-requête corrélée en retardant sa matérialisation. Fait partie de [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455) ([Dmitry Novik](https://github.com/novikd)).
* Vous pouvez désormais voir une barre de progression, des logs et des statistiques de performance pour les requêtes `CREATE OR REPLACE TABLE` avec `SELECT` dans clickhouse-client. Cette requête ne provoquera plus de timeout, même si le `SELECT` est assez long à exécuter. Résout [#38416](https://github.com/ClickHouse/ClickHouse/issues/38416). [#87247](https://github.com/ClickHouse/ClickHouse/pull/87247) ([Diskein](https://github.com/Diskein)).
* Prise en charge des types `JSON` et `Dynamic` dans les fonctions de hachage. Résout [#87734](https://github.com/ClickHouse/ClickHouse/issues/87734). [#87791](https://github.com/ClickHouse/ClickHouse/pull/87791) ([Pavel Kruglov](https://github.com/Avogar)).
* Implémente les parties manquantes du serveur ArrowFlight. [#88013](https://github.com/ClickHouse/ClickHouse/pull/88013) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajoute plusieurs métriques d’histogramme pour le serveur et Keeper afin d'instrumenter la durée des différentes étapes d'exécution des requêtes Keeper. Les métriques suivantes seront ajoutées au serveur : `keeper_client_queue_duration_milliseconds`, `keeper_client_send_duration_milliseconds`, `keeper_client_roundtrip_duration_milliseconds`. Les métriques suivantes seront ajoutées à Keeper : `keeper_server_preprocess_request_duration_milliseconds`, `keeper_server_process_request_duration_milliseconds`, `keeper_server_queue_duration_milliseconds`, `keeper_server_send_duration_milliseconds`. [#88158](https://github.com/ClickHouse/ClickHouse/pull/88158) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajoute l'option `input_headers` à la requête `EXPLAIN` pour ajouter les en-têtes d'entrée aux étapes. [#88311](https://github.com/ClickHouse/ClickHouse/pull/88311) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ajoute des profile events pour compter le nombre de requêtes S3 et AzureBlobStorage retardées par les throttlers. Corrige l'incohérence entre les profile events ThrottlerCount liés au disk et ceux qui ne le sont pas. Désormais, les requêtes HTTP DELETE vers AzureBlobStorage ne sont plus limitées. [#88535](https://github.com/ClickHouse/ClickHouse/pull/88535) ([Sergei Trifonov](https://github.com/serxa)).
* Met en cache les statistiques au niveau des tables et ajoute deux paramètres : le paramètre MergeTree `refresh_statistics_interval` définit l'intervalle de rafraîchissement du cache de statistiques, 0 signifiant qu'aucun cache ne sera créé. Le paramètre de session `use_statistics_cache` indique s'il faut utiliser les statistiques au niveau des tables dans une requête. Dans certains cas, on peut vouloir des statistiques de meilleure qualité et donc choisir de les ignorer. [#88670](https://github.com/ClickHouse/ClickHouse/pull/88670) ([Han Fei](https://github.com/hanfei1991)).
* Correction de la désérialisation binaire de `Array` et `Map`, qui utilise désormais le paramètre `max_binary_array_size` au lieu de `max_binary_string_size` lors de la validation des limites de taille. Cela garantit que les limites appropriées sont appliquées lors de la lecture au format `RowBinary`. [#88744](https://github.com/ClickHouse/ClickHouse/pull/88744) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Introduction de la classe `LockGuardWithStopWatch` et utilisation de celle-ci dans le background pool pour exécuter les merges. Si un mutex est détenu pendant une seconde, ou si un thread met plus d’une seconde à l’obtenir, un message d’avertissement sera affiché. Le code lourd a été déplacé du destructor de `MergeMutateSelectedEntry` vers la méthode `finalize` afin d’éviter de conserver le verrou trop longtemps dans l’exécuteur `MergeTreeBackground`. [#88898](https://github.com/ClickHouse/ClickHouse/pull/88898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Autorise désormais l’utilisation automatique des régions AWS opt-in pour S3 lorsque la Region n’est pas spécifiée dans l’endpoint. Référence : [opt-in AWS regions](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html). [#88930](https://github.com/ClickHouse/ClickHouse/pull/88930) ([Andrey Zvonov](https://github.com/zvonand)).
* L’utilisateur peut désormais annuler la query dans clickhouse-client en appuyant sur Ctrl-C lorsque le pager est actif. Résout [#80778](https://github.com/ClickHouse/ClickHouse/issues/80778). [#88935](https://github.com/ClickHouse/ClickHouse/pull/88935) ([Grigorii](https://github.com/GSokol)).
* La web UI affichera des barres dans la table même lorsque les values sont négatives. Elle peut ainsi afficher un chart en barres bilatéral avec des couleurs différentes pour les parties négatives et positives. [#89016](https://github.com/ClickHouse/ClickHouse/pull/89016) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Désactive `shared_merge_tree_create_per_replica_metadata_nodes` afin de réduire la quantité de metadata que `SharedMergeTree` stocke dans Keeper. [#89036](https://github.com/ClickHouse/ClickHouse/pull/89036) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Fait en sorte que `S3Queue` respecte le server setting `disable_insertion_and_mutation`. [#89048](https://github.com/ClickHouse/ClickHouse/pull/89048) ([Raúl Marín](https://github.com/Algunenano)).
* Définit `s3_retry_attempts` sur 500 par défaut pour 25.6 afin de garantir la réussite des backups lorsqu’il y a un repartitionnement S3 et que S3 renvoie des erreurs de ralentissement pendant plus de 10 minutes. [#89051](https://github.com/ClickHouse/ClickHouse/pull/89051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Les settings `kafka_compression_codec` et `kafka_compression_level` peuvent désormais être utilisés pour spécifier la compression des producteurs Kafka dans les deux Kafka engines. [#89073](https://github.com/ClickHouse/ClickHouse/pull/89073) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ajout d’une nouvelle column `statistics` dans `system.columns`, indiquant les types de statistiques construites sur cette table. Si un type de statistiques est créé automatiquement, il apparaîtra avec le suffixe (auto). [#89086](https://github.com/ClickHouse/ClickHouse/pull/89086) ([Han Fei](https://github.com/hanfei1991)).
* Améliore le message d’error lorsqu’une expansion générique est transmise à la place d’un nom de cluster à une table function `*Cluster`. [#89093](https://github.com/ClickHouse/ClickHouse/pull/89093) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* YTsaurus : autorise l’utilisation d’une replicated\_table comme data source. [#89107](https://github.com/ClickHouse/ClickHouse/pull/89107) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Les queries commençant par des espaces ne sont plus enregistrées dans l’history de la CLI. [#89116](https://github.com/ClickHouse/ClickHouse/pull/89116) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Prise en charge de Array de String en entrée des fonctions `hasAnyTokens` ou `hasAllTokens`. [#89124](https://github.com/ClickHouse/ClickHouse/pull/89124) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Modification de la manière dont les disques plain-rewritable stockent leurs metadata en mémoire, ce qui corrige de nombreux bugs liés à l’imbrication des directory et aux éléments associés. [#89125](https://github.com/ClickHouse/ClickHouse/pull/89125) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Les sous-requêtes utilisées dans des expressions IN lors de l'interrogation d'une table Iceberg seront correctement précalculées avant l'analyse d'élagage des partitions. [#89177](https://github.com/ClickHouse/ClickHouse/pull/89177) ([Daniil Ivanik](https://github.com/divanik)).
* Activer `create_table_empty_primary_key_by_default` par défaut. Cela améliore la facilité d'utilisation. [#89333](https://github.com/ClickHouse/ClickHouse/pull/89333) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d'un code incorrect dans le moteur de base de données `Backup`, qui pouvait générer une requête invalide avec `SHOW CREATE DATABASE` ou lors de l'interrogation de `engine_full` depuis `system.databases`. Clôt [#89477](https://github.com/ClickHouse/ClickHouse/issues/89477). [#89341](https://github.com/ClickHouse/ClickHouse/pull/89341) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans les versions précédentes, le paramètre `create_table_empty_primary_key_by_default` était sans effet lorsque vous ne spécifiiez pas le moteur de table dans la requête CREATE TABLE. [#89342](https://github.com/ClickHouse/ClickHouse/pull/89342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de `chdig` vers la v25.11.1 - inclut des améliorations majeures de la journalisation et diverses autres améliorations ([notes de version pour 25.11](https://github.com/azat/chdig/releases/tag/v25.11.1)). [#89957](https://github.com/ClickHouse/ClickHouse/pull/89957) ([Azat Khuzhin](https://github.com/azat)). ([notes de version pour 25.10](https://github.com/azat/chdig/releases/tag/v25.10.1)). [#89452](https://github.com/ClickHouse/ClickHouse/pull/89452) ([Azat Khuzhin](https://github.com/azat)).
* Étendre le redimensionneur de la zone de texte de requête dans la Web UI sur toute la largeur, ce qui la rend un peu plus pratique. De plus, le redimensionneur natif du navigateur n'était pas disponible dans Safari sur iPad et, après ce changement, vous pouvez au moins faire glisser le bas de la zone de texte si vous savez que c'est possible. [#89457](https://github.com/ClickHouse/ClickHouse/pull/89457) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration du suivi de la mémoire lors de la génération des résultats de hash joins. Auparavant, les allocations temporaires pendant la génération du résultat de jointure n'étaient pas correctement suivies, ce qui pouvait entraîner des dépassements de la limite de mémoire. [#89560](https://github.com/ClickHouse/ClickHouse/pull/89560) ([Azat Khuzhin](https://github.com/azat)).
* Journal du serveur asynchrone : flush plus tôt et augmentation de la taille de la file d'attente par défaut. [#89597](https://github.com/ClickHouse/ClickHouse/pull/89597) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de `FilesystemCacheBytes` erroné (et d'autres) dans `system.asynchronous_metrics`. Exécuter les requêtes `SYSTEM` sur les caches du système de fichiers une seule fois. Vue atomique pour les caches qui pointent vers le même chemin dans `system.filesystem_caches`. [#89640](https://github.com/ClickHouse/ClickHouse/pull/89640) ([Azat Khuzhin](https://github.com/azat)).
* Clarification de la description de certaines colonnes dans `system.view_refreshes`. [#89701](https://github.com/ClickHouse/ClickHouse/pull/89701) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Mettre en cache les identifiants S3 utilisés lors de l'interaction avec le point de terminaison STS afin de pouvoir les réutiliser pour différents appels de fonction. Le nombre d'identifiants mis en cache peut être contrôlé avec `s3_credentials_provider_max_cache_size`. [#89734](https://github.com/ClickHouse/ClickHouse/pull/89734) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction du pushdown du runtime filter lorsqu'il y a plusieurs étapes d'expression en dessous. [#89741](https://github.com/ClickHouse/ClickHouse/pull/89741) ([Alexander Gololobov](https://github.com/davenger)).
* Si la mémoire système est inférieure à 5GB, ne pas verrouiller l'exécutable en mémoire par défaut. [#89751](https://github.com/ClickHouse/ClickHouse/pull/89751) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les indications de type dans la Web UI ne débordent plus sur l’en-tête du tableau. L’affichage des infobulles a également été corrigé : elles ne passent plus derrière l’en-tête du tableau. [#89753](https://github.com/ClickHouse/ClickHouse/pull/89753) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Affichage des propriétés des tables dans la Web UI. Un clic sur le nombre de lignes ou d’octets affiche une requête à partir de `system.tables`. Un clic sur le moteur de table affiche `SHOW TABLES`. [#89771](https://github.com/ClickHouse/ClickHouse/pull/89771) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de `non_replicated_deduplication_window` pour les tables avec un disque qui n’implémente pas l’écriture en mode append. Résout [#87281](https://github.com/ClickHouse/ClickHouse/issues/87281). [#89796](https://github.com/ClickHouse/ClickHouse/pull/89796) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Ajout de la possibilité de définir une liste de tables à vider dans la commande `SYSTEM FLUSH ASYNC INSERT QUEUE`. [#89915](https://github.com/ClickHouse/ClickHouse/pull/89915) ([Sema Checherinda](https://github.com/CheSema)).
* Stockage des identifiants de blocs de déduplication dans `system.part_log`. [#89928](https://github.com/ClickHouse/ClickHouse/pull/89928) ([Sema Checherinda](https://github.com/CheSema)).
* La valeur par défaut du paramètre de cache du système de fichiers `keep_free_space_remove_batch` a été modifiée de 10 à 100, car c’est plus optimal. [#90030](https://github.com/ClickHouse/ClickHouse/pull/90030) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Introduction du type de fusion TTL DROP, sans mise à jour de la planification de la prochaine fusion TTL de suppression après ce type de fusions. [#90077](https://github.com/ClickHouse/ClickHouse/pull/90077) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Utilisation d’une limite de nœuds plus faible pour la requête RemoveRecursive de Keeper lors du nettoyage de S3Queue. [#90201](https://github.com/ClickHouse/ClickHouse/pull/90201) ([Antonio Andelic](https://github.com/antonio2368)).
* La requête `SYSTEM FLUSH LOGS` attend désormais la création de la table même lorsque les logs sont vides. [#89408](https://github.com/ClickHouse/ClickHouse/pull/89408) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction de `rows_before_limit_at_least` lorsqu’il y a plusieurs segments distants impliqués dans une agrégation distribuée avec fusion, ou des clauses IN avec sous-requêtes. Cela corrige [#63280](https://github.com/ClickHouse/ClickHouse/issues/63280). [#63511](https://github.com/ClickHouse/ClickHouse/pull/63511) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’apparition de `0 rows in set` après une requête `INSERT INTO ... SELECT`. Ferme [#47800](https://github.com/ClickHouse/ClickHouse/issues/47800). [#79462](https://github.com/ClickHouse/ClickHouse/pull/79462) ([Engel Danila](https://github.com/aaaengel)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Correction de bogue (comportement incorrect visible par l’utilisateur dans une version stable officielle)
</div>

* Correction de `multiIf` avec des arguments constants et l’évaluation à court-circuit. Clôt [#72714](https://github.com/ClickHouse/ClickHouse/issues/72714). [#84546](https://github.com/ClickHouse/ClickHouse/pull/84546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction d’une erreur logique lors de la sélection depuis une table avec une contrainte de sous-requête. Résout [#84190](https://github.com/ClickHouse/ClickHouse/issues/84190). [#85575](https://github.com/ClickHouse/ClickHouse/pull/85575) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Correction d’un bug pour certaines requêtes spéciales utilisant une URI avec des points d’interrogation. [#85663](https://github.com/ClickHouse/ClickHouse/pull/85663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction de colonnes parfois manquantes dans la sortie de `EXPLAIN indexes = 1`. Résout [#86696](https://github.com/ClickHouse/ClickHouse/issues/86696). [#87083](https://github.com/ClickHouse/ClickHouse/pull/87083) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction d’une possible erreur Cannot add subcolumn avec les répliques parallèles. Clôt [#84888](https://github.com/ClickHouse/ClickHouse/issues/84888). [#87514](https://github.com/ClickHouse/ClickHouse/pull/87514) ([Pavel Kruglov](https://github.com/Avogar)).
* Dans le writer Parquet, émission de la chaîne `created_by` au bon format, par ex. `ClickHouse version 25.10.1 (build 5b1dfb14925db8901a4e9202cd5d63c11ecfbb9f)` au lieu de `ClickHouse v25.9.1.1-testing`. Correction de la compatibilité du lecteur Parquet avec des fichiers incorrects écrits par d’anciennes versions de parquet-mr. [#87735](https://github.com/ClickHouse/ClickHouse/pull/87735) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction du calcul du phi carré, qui provoquait des résultats incorrects dans `cramersV`, `cramersVBiasCorrected`, `theilsU` et `contingency`. [#87831](https://github.com/ClickHouse/ClickHouse/pull/87831) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Correction de la lecture d’un Array mixte de Floats et de Bools en JSON. Auparavant, l’insertion de telles données entraînait une exception. [#88008](https://github.com/ClickHouse/ClickHouse/pull/88008) ([Pavel Kruglov](https://github.com/Avogar)).
* Utilisation de shared\_ptr pour QueryState dans TCPHandler afin de détecter si l’état est invalide dans setProgressCallback, setFileProgressCallback et setBlockMarshallingCallback. [#88201](https://github.com/ClickHouse/ClickHouse/pull/88201) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Correction d’une erreur logique dans la réorganisation des CROSS JOIN lorsque query\_plan\_optimize\_join\_order\_limit > 1. Clôt [#89409](https://github.com/ClickHouse/ClickHouse/issues/89409). [#88286](https://github.com/ClickHouse/ClickHouse/pull/88286) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction de [#88426](https://github.com/ClickHouse/ClickHouse/issues/88426) 1. Les définitions explicites de colonnes dans Alias sont désormais interdites, et les colonnes sont automatiquement chargées depuis la table cible. Cela garantit que l’alias correspond toujours au schéma de la table cible. 2. Davantage de méthodes sont relayées depuis IStorage. [#88552](https://github.com/ClickHouse/ClickHouse/pull/88552) ([Kai Zhu](https://github.com/nauu)).
* Après récupération, une réplique d’une base de données Replicated pouvait rester bloquée longtemps en affichant des messages comme `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` ; le problème est corrigé. [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction d’un possible "Context has expired" avec le nouvel analyzer et les sous-requêtes. [#88694](https://github.com/ClickHouse/ClickHouse/pull/88694) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une erreur de segmentation dans le lecteur Parquet lorsque input\_format\_parquet\_local\_file\_min\_bytes\_for\_seek est défini sur 0. Résout [#78456](https://github.com/ClickHouse/ClickHouse/issues/78456). [#88784](https://github.com/ClickHouse/ClickHouse/pull/88784) ([Animesh](https://github.com/anibilthare)).
* Correction d’un résultat min(PK)/max(PK) incorrect lorsque la PK est en ordre inversé. Cela corrige [#83619](https://github.com/ClickHouse/ClickHouse/issues/83619). [#88796](https://github.com/ClickHouse/ClickHouse/pull/88796) ([Amos Bird](https://github.com/amosbird)).
* Correction de la propagation des restrictions de taille définies par les paramètres max\_table\_size\_to\_drop et max\_partition\_size\_to\_drop lors du DROP des tables internes. [#88812](https://github.com/ClickHouse/ClickHouse/pull/88812) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de `top_k` pour qu’il respecte le paramètre de seuil lorsqu’il est appelé avec un seul argument. Clôt [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757). [#88867](https://github.com/ClickHouse/ClickHouse/pull/88867) ([Manuel](https://github.com/raimannma)).
* Les sources de point de terminaison ArrowFlight nécessitant une connexion SSL (par exemple derrière un AWS ALB) peuvent désormais demander correctement un jeu de données spécifique. [#88868](https://github.com/ClickHouse/ClickHouse/pull/88868) ([alex-shchetkov](https://github.com/alex-shchetkov)).
* Correction de la gestion des Nested(Tuple(...)) non matérialisés (ajoutés via ALTER). Corrige [#83133](https://github.com/ClickHouse/ClickHouse/issues/83133). [#88879](https://github.com/ClickHouse/ClickHouse/pull/88879) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un bug dans la fonction `reverseUTF8`. Dans les versions précédentes, elle inversait par erreur les octets des points de code UTF-8 sur 4 octets. Cela clôt [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913). [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du protocole icebergS3Cluster. Ajout de la prise en charge de l’évolution de schéma, des suppressions positionnelles et des suppressions par égalité dans la fonction iceberg cluster. Résout [#88287](https://github.com/ClickHouse/ClickHouse/issues/88287). [#88919](https://github.com/ClickHouse/ClickHouse/pull/88919) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Désactivation de parallel\_replicas\_support\_projection pour les requêtes avec répliques parallèles sur des tables distribuées. Clôt [#88899](https://github.com/ClickHouse/ClickHouse/issues/88899). [#88922](https://github.com/ClickHouse/ClickHouse/pull/88922) ([zoomxi](https://github.com/zoomxi)).
* Propagation du contexte dans les conversions de type internes. Correction de plusieurs problèmes où les paramètres de conversion de type n’étaient pas propagés. Clôt [#88873](https://github.com/ClickHouse/ClickHouse/issues/88873). Clôt [#78025](https://github.com/ClickHouse/ClickHouse/issues/78025). [#88929](https://github.com/ClickHouse/ClickHouse/pull/88929) ([Manuel](https://github.com/raimannma)).
* Correction de la détection du format de fichier à partir des globs dans la fonction file(). Résout [#88920](https://github.com/ClickHouse/ClickHouse/issues/88920). [#88947](https://github.com/ClickHouse/ClickHouse/pull/88947) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ne vérifie plus l’accès `SET DEFINER <current_user>:definer` lors de la création d’une vue avec SQL SECURITY DEFINER. [#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit)).
* Correction de `LOGICAL_ERROR` dans `L2DistanceTransposed(vec1, vec2, p)` où l’optimisation de lecture partielle de `QBit` supprimait à tort `Nullable` du type de retour lorsque `p` était `Nullable`. [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Correction d’un plantage en cas de type de catalog inconnu. Résout [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819). [#88987](https://github.com/ClickHouse/ClickHouse/pull/88987) ([scanhex12](https://github.com/scanhex12)).
* Clôt [#88081](https://github.com/ClickHouse/ClickHouse/issues/88081). [#88988](https://github.com/ClickHouse/ClickHouse/pull/88988) ([scanhex12](https://github.com/scanhex12)).
* Correction d’une baisse de performances lors de l’analyse des skipping indexes. [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’erreur ACCESS\_ENTITY\_NOT\_FOUND lors de l’exécution de clusterAllReplicas par un utilisateur ayant un rôle inexistant. Résout [#87670](https://github.com/ClickHouse/ClickHouse/issues/87670). [#89068](https://github.com/ClickHouse/ClickHouse/pull/89068) ([pufit](https://github.com/pufit)).
* Correction du traitement des colonnes sparse par la contrainte CHECK. Clôt [#88637](https://github.com/ClickHouse/ClickHouse/issues/88637). [#89076](https://github.com/ClickHouse/ClickHouse/pull/89076) ([Eduard Karacharov](https://github.com/korowa)).
* Correction d’un nombre de lignes incorrect lors du remplissage des colonnes virtuelles dans MergeTreeReaderTextIndex, provoquant un plantage avec LOGICAL\_ERROR. [#89095](https://github.com/ClickHouse/ClickHouse/pull/89095) ([Peng Jian](https://github.com/fastio)).
* Empêche les fuites du compteur de fusion TTL lorsque des exceptions surviennent pendant la préparation de la fusion. Résout [#89019](https://github.com/ClickHouse/ClickHouse/issues/89019). [#89127](https://github.com/ClickHouse/ClickHouse/pull/89127) ([save-my-heart](https://github.com/save-my-heart)).
* Correction du calcul de la taille du buffer nécessaire pour les opérations d’encodage et de décodage base32/base58. [#89133](https://github.com/ClickHouse/ClickHouse/pull/89133) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un use-after-free dans Distributed dû à une condition de concurrence entre l’arrêt et les INSERT en arrière-plan. Résout [#88640](https://github.com/ClickHouse/ClickHouse/issues/88640). [#89136](https://github.com/ClickHouse/ClickHouse/pull/89136) ([Azat Khuzhin](https://github.com/azat)).
* Évite de possibles accès concurrents dus à des exceptions mutables lors du parsing de Parquet. Corrige [#88385](https://github.com/ClickHouse/ClickHouse/issues/88385). [#89174](https://github.com/ClickHouse/ClickHouse/pull/89174) ([Azat Khuzhin](https://github.com/azat)).
* Vue matérialisée actualisable : correction d’un plantage rare du serveur si la table source était entièrement supprimée pendant une actualisation. [#89203](https://github.com/ClickHouse/ClickHouse/pull/89203) ([Michael Kolupaev](https://github.com/al13n321)).
* Vidage des buffers lors de l’envoi d’une erreur au milieu d’un flux compressé dans l’interface HTTP. [#89256](https://github.com/ClickHouse/ClickHouse/pull/89256) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Empêche l’application incorrecte des règles de masquage des requêtes aux instructions DDL. [#89272](https://github.com/ClickHouse/ClickHouse/pull/89272) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Correction d’un nombre de lignes incorrect lors du remplissage des colonnes virtuelles dans MergeTreeReaderTextIndex, provoquant un plantage avec LOGICAL\_ERROR. Rouvre [#89095](https://github.com/ClickHouse/ClickHouse/issues/89095). [#89303](https://github.com/ClickHouse/ClickHouse/pull/89303) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Correction : Statistics countmin ne prend pas en charge l’estimation pour le type de données LowCardinality(Nullable(String)) : LOGICAL\_ERROR. [#89343](https://github.com/ClickHouse/ClickHouse/pull/89343) ([Han Fei](https://github.com/hanfei1991)).
* Crash/comportement indéfini possible dans la fonction IN lorsque les types des colonnes de clé primaire diffèrent des types des colonnes du côté droit de la fonction IN. Exemple : SELECT string\_column, int\_column FROM test\_table WHERE (string\_column, int\_column) IN (SELECT '5', 'not a number'). Se produit lorsque de nombreuses lignes sont sélectionnées et que certaines contiennent des types incompatibles. [#89367](https://github.com/ClickHouse/ClickHouse/pull/89367) ([Ilya Golshtein](https://github.com/ilejn)).
* Correction de la troncature des arguments de `countIf(*)`. Clôt [#89372](https://github.com/ClickHouse/ClickHouse/issues/89372). [#89373](https://github.com/ClickHouse/ClickHouse/pull/89373) ([Manuel](https://github.com/raimannma)).
* Évite la perte des checksums uncompressed pour les statistiques sur les mutations. [#89381](https://github.com/ClickHouse/ClickHouse/pull/89381) ([Azat Khuzhin](https://github.com/azat)).
* Correction de LOGICAL\_ERROR dans L2DistanceTransposed(vec1, vec2, p), où l’optimisation de lecture partielle de QBit supprimait incorrectement Nullable du type de retour lorsque p était LowCardinality(Nullable(T)). Résout [#88362](https://github.com/ClickHouse/ClickHouse/issues/88362). [#89397](https://github.com/ClickHouse/ClickHouse/pull/89397) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Correction du chargement des tables avec une sérialisation sparse incorrecte pour le tuple lui-même (écrite par d’anciennes versions de ClickHouse). [#89405](https://github.com/ClickHouse/ClickHouse/pull/89405) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la gestion incorrecte du merge des parts vidées par TTL avec des projections non vides lors de l’utilisation de `deduplicate_merge_projection_mode='ignore'`. Résout [#89430](https://github.com/ClickHouse/ClickHouse/issues/89430). [#89458](https://github.com/ClickHouse/ClickHouse/pull/89458) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une erreur logique dans le join full\_sorting\_merge avec des colonnes dupliquées. Résout [#86957](https://github.com/ClickHouse/ClickHouse/issues/86957). [#89495](https://github.com/ClickHouse/ClickHouse/pull/89495) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction de la lecture des changelogs au démarrage de Keeper dans les cas où un changelog n’avait pas été renommé correctement pendant la rotation. [#89496](https://github.com/ClickHouse/ClickHouse/pull/89496) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de résultats de JOIN incorrects lors de l’utilisation de conditions OR avec des keys de right table uniques. Résout [#89391](https://github.com/ClickHouse/ClickHouse/issues/89391). [#89512](https://github.com/ClickHouse/ClickHouse/pull/89512) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction d’un possible "Context has expired" avec l’analyzer et PK IN (subquery) (v2). Corrige [#89433](https://github.com/ClickHouse/ClickHouse/issues/89433). [#89527](https://github.com/ClickHouse/ClickHouse/pull/89527) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la replication de MaterializedPostgreSQL pour les tables avec des noms de colonnes configurés en majuscules. Résout [#72363](https://github.com/ClickHouse/ClickHouse/issues/72363). [#89530](https://github.com/ClickHouse/ClickHouse/pull/89530) ([Danylo Osipchuk](https://github.com/Lenivaya)).
* Correction d’un crash lorsqu’un state d’une aggregate function contient une valeur sérialisée d’une colonne LowCardinality(String). [#89550](https://github.com/ClickHouse/ClickHouse/pull/89550) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un plantage lors de l’utilisation de `ARRAY JOIN` du côté droit d’un JOIN lorsque le paramètre `enable_lazy_columns_replication` est activé. [#89551](https://github.com/ClickHouse/ClickHouse/pull/89551) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige une erreur logique liée à query\_plan\_convert\_join\_to\_in. Résout [#89066](https://github.com/ClickHouse/ClickHouse/issues/89066). [#89554](https://github.com/ClickHouse/ClickHouse/pull/89554) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige une exception dans l’estimateur de statistiques lors de l’estimation de conditions avec des types de colonne et de constante incompatibles, impossibles à convertir. [#89596](https://github.com/ClickHouse/ClickHouse/pull/89596) ([Han Fei](https://github.com/hanfei1991)).
* Ajoute des filtres d’exécution uniquement pour les algorithmes de jointure pris en charge, c.-à-d. les jointures par hachage. Un filtre ne peut être construit que lorsque l’algorithme de jointure lit d’abord entièrement le côté droit, puis le côté gauche, alors que FullSortingMergeJoin, par exemple, lit les deux côtés simultanément. Corrige [#89220](https://github.com/ClickHouse/ClickHouse/issues/89220). [#89652](https://github.com/ClickHouse/ClickHouse/pull/89652) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige les exécutions concurrentes des fonctions `hasAnyTokens`, `hasAllTokens` et `tokens` avec le tokenizer `sparseGrams`. Résout [#89605](https://github.com/ClickHouse/ClickHouse/issues/89605). [#89665](https://github.com/ClickHouse/ClickHouse/pull/89665) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Corrige une erreur logique ou un plantage lié au filtre d’exécution de jointure dans certains cas. Corrige [#89062](https://github.com/ClickHouse/ClickHouse/issues/89062). [#89666](https://github.com/ClickHouse/ClickHouse/pull/89666) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige une possible erreur logique lors d’un ARRAY JOIN sur une colonne Map avec `enable_lazy_columns_replication` activé. Clôt [#89705](https://github.com/ClickHouse/ClickHouse/issues/89705). [#89717](https://github.com/ClickHouse/ClickHouse/pull/89717) ([Pavel Kruglov](https://github.com/Avogar)).
* Évite un plantage dû à une lecture sur un serveur distant après une déconnexion, dans des requêtes distantes en cours d’annulation. Résout [#89468](https://github.com/ClickHouse/ClickHouse/issues/89468). [#89740](https://github.com/ClickHouse/ClickHouse/pull/89740) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une condition de concurrence dans le chemin de lecture de l’index de projection. Résout [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497). [#89762](https://github.com/ClickHouse/ClickHouse/pull/89762) ([Peng Jian](https://github.com/fastio)).
* Corrige un bug dans la lecture de l’index de projection qui pouvait provoquer des conditions de concurrence. Résout [#89497](https://github.com/ClickHouse/ClickHouse/issues/89497). [#89775](https://github.com/ClickHouse/ClickHouse/pull/89775) ([Amos Bird](https://github.com/amosbird)).
* Corrige la gestion de la fonction de table Paimon pour les tables sans partition. Résout [#89690](https://github.com/ClickHouse/ClickHouse/issues/89690). [#89793](https://github.com/ClickHouse/ClickHouse/pull/89793) ([JIaQi](https://github.com/JiaQiTang98)).
* Corrige une possible erreur logique lors de la lecture des chemins et de leurs sous-colonnes dans la sérialisation avancée de données JSON partagées. Clôt [#89805](https://github.com/ClickHouse/ClickHouse/issues/89805). [#89819](https://github.com/ClickHouse/ClickHouse/pull/89819) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un possible débordement de pile dans la désérialisation binaire des types de données. Clôt [#88710](https://github.com/ClickHouse/ClickHouse/issues/88710). [#89822](https://github.com/ClickHouse/ClickHouse/pull/89822) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’une erreur logique avec un tuple vide dans la fonction `IN`. Closes [#88343](https://github.com/ClickHouse/ClickHouse/issues/88343). [#89850](https://github.com/ClickHouse/ClickHouse/pull/89850) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Suppression des fonctions injectives de `GROUP BY`, indépendamment de `optimize_injective_functions_in_group_by`, dans l’ancien analyseur pour des raisons de compatibilité. Resolves [#89854](https://github.com/ClickHouse/ClickHouse/issues/89854). [#89870](https://github.com/ClickHouse/ClickHouse/pull/89870) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Si la fusion était interrompue, par exemple en raison d’une limite de mémoire, l’exécuteur en arrière-plan des mutations de fusion appelait `cancel` sur la tâche de fusion sans verrou. Dans ce cas, toutefois, la part de résultat partiellement créée n’était pas supprimée (car elle n’était pas terminée et, à ce stade, n’était pas visible). Ensuite, la tâche de fusion était détruite, ce qui déclenchait la destruction de la part de résultat. Cela annulait la transaction sur disque et entraînait la suppression des données de S3. Finalement, ce nettoyage a été exécuté sous le verrou de l’exécuteur en arrière-plan des mutations de fusion. [#89875](https://github.com/ClickHouse/ClickHouse/pull/89875) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Correction d’une erreur logique avec un tuple vide dans les fonctions `reverse` et `CAST`. Closes [#89137](https://github.com/ClickHouse/ClickHouse/issues/89137). [#89908](https://github.com/ClickHouse/ClickHouse/pull/89908) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Désormais, ClickHouse affichera par défaut la base de données du catalogue Data Lake dans la requête `SHOW DATABASES`. [#89914](https://github.com/ClickHouse/ClickHouse/pull/89914) ([alesapin](https://github.com/alesapin)).
* Correction de l’utilisation de la copie native sur GCS pour les sauvegardes. En raison d’un clonage incorrect du client, la copie native GCS échouait systématiquement et utilisait une approche moins optimale, basée sur la lecture et l’écriture manuelles des données. [#89923](https://github.com/ClickHouse/ClickHouse/pull/89923) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction du calcul de la taille du tampon pour base32Encode. Le calcul de base32Encode pour une colonne de chaînes de taille inférieure à 5 pouvait provoquer des plantages. Resolves [#89911](https://github.com/ClickHouse/ClickHouse/issues/89911). [#89929](https://github.com/ClickHouse/ClickHouse/pull/89929) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un échappement incorrect pour les requêtes `SHOW COLUMNS` et `SHOW FUNCTIONS`. [#89942](https://github.com/ClickHouse/ClickHouse/pull/89942) ([alesapin](https://github.com/alesapin)).
* Correction de la validation d’URL dans le moteur MongoDB lorsque le nom d’utilisateur contient le caractère '@'. Auparavant, les noms d’utilisateur contenant '@' provoquaient une erreur en raison d’un encodage incorrect. [#89970](https://github.com/ClickHouse/ClickHouse/pull/89970) ([Kai Zhu](https://github.com/nauu)).
* Rétroporté dans [#90592](https://github.com/ClickHouse/ClickHouse/issues/90592) : correction d’un plantage possible lors d’une requête distante avec `ARRAY JOIN` dans `IN` et le paramètre `enable_lazy_columns_replication` activé. Resolves [#90361](https://github.com/ClickHouse/ClickHouse/issues/90361). [#89997](https://github.com/ClickHouse/ClickHouse/pull/89997) ([Pavel Kruglov](https://github.com/Avogar)).
* Rétroporté dans [#90448](https://github.com/ClickHouse/ClickHouse/issues/90448) : correction, dans certains cas, de l’inférence de valeurs DateTime64 incorrectes à partir de `Strings` dans les formats texte. Resolves [#89368](https://github.com/ClickHouse/ClickHouse/issues/89368). [#90013](https://github.com/ClickHouse/ClickHouse/pull/90013) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’une erreur logique provoquée par une colonne tuple vide dans `BSONEachRow` et `MsgPack`. Ferme [#89814](https://github.com/ClickHouse/ClickHouse/issues/89814). Ferme [#71536](https://github.com/ClickHouse/ClickHouse/issues/71536). [#90018](https://github.com/ClickHouse/ClickHouse/pull/90018) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Rétroporté dans [#90457](https://github.com/ClickHouse/ClickHouse/issues/90457) : ajout de vérifications de taille lors de la désérialisation de données provenant d’états d’agrégation et d’autres sources. [#90031](https://github.com/ClickHouse/ClickHouse/pull/90031) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l’erreur possible 'Invalid number of rows in Chunk' dans un JOIN avec des colonnes dupliquées. Résout [#89411](https://github.com/ClickHouse/ClickHouse/issues/89411). [#90053](https://github.com/ClickHouse/ClickHouse/pull/90053) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Rétroporté dans [#90588](https://github.com/ClickHouse/ClickHouse/issues/90588) : correction de l’erreur possible `Column with Array type is not represented by ColumnArray column: Replicated` lors d’une insertion utilisant `ARRAY JOIN` avec le paramètre `enable_lazy_columns_replication` activé. [#90066](https://github.com/ClickHouse/ClickHouse/pull/90066) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge des fichiers commençant par un point dans user\_files. Ferme [#89662](https://github.com/ClickHouse/ClickHouse/issues/89662). [#90079](https://github.com/ClickHouse/ClickHouse/pull/90079) ([Raúl Marín](https://github.com/Algunenano)).
* Rétroporté dans [#90647](https://github.com/ClickHouse/ClickHouse/issues/90647) : correction d’une erreur logique et d’un bogue de modulo dans la table système `numbers` lorsqu’une grande valeur de pas est utilisée. Ferme [#83398](https://github.com/ClickHouse/ClickHouse/issues/83398). [#90123](https://github.com/ClickHouse/ClickHouse/pull/90123) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Correction d’un débordement d’entier lors de l’analyse des arguments du dictionnaire. Ferme [#78506](https://github.com/ClickHouse/ClickHouse/issues/78506). [#90171](https://github.com/ClickHouse/ClickHouse/pull/90171) ([Raúl Marín](https://github.com/Algunenano)).
* Rétroporté dans [#90468](https://github.com/ClickHouse/ClickHouse/issues/90468) : correction d’une incompatibilité du partitionnement Hive empêchant une mise à niveau sans heurts vers la version 25.8 (corrige l’erreur `All hive partitioning columns must be present in the schema` pendant la mise à niveau). [#90202](https://github.com/ClickHouse/ClickHouse/pull/90202) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de résultats de requête potentiellement incorrects après des mises à jour légères dans des requêtes `SELECT`, lorsque le cache des conditions de requête est activé. Corrige [#90176](https://github.com/ClickHouse/ClickHouse/issues/90176). Corrige [#90054](https://github.com/ClickHouse/ClickHouse/issues/90054). [#90204](https://github.com/ClickHouse/ClickHouse/pull/90204) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un plantage dans StorageDistributed lors de l’analyse de noms de répertoire de shard mal formés. [#90243](https://github.com/ClickHouse/ClickHouse/pull/90243) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Prise en charge de la conversion implicite d’une chaîne vers un entier ou un booléen dans `LogicalExpressionOptimizerPass`. Résout [#89803](https://github.com/ClickHouse/ClickHouse/issues/89803). [#90245](https://github.com/ClickHouse/ClickHouse/pull/90245) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Correction du formatage incorrect de certains index de saut dans la définition de la table, provoquant `METADATA_MISMATCH` et empêchant la création de nouvelles répliques dans la base de données Replicated. [#90251](https://github.com/ClickHouse/ClickHouse/pull/90251) ([Nikolay Degterinsky](https://github.com/evillique)).
* Rétroporté dans [#90381](https://github.com/ClickHouse/ClickHouse/issues/90381) : corrige une incohérence du nombre de lignes dans MergeTreeReaderIndex lorsque l’unique partie contient moins de lignes que `index_granularity`. Résout [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691). [#90254](https://github.com/ClickHouse/ClickHouse/pull/90254) ([Peng Jian](https://github.com/fastio)).
* Rétroporté dans [#90608](https://github.com/ClickHouse/ClickHouse/issues/90608) : corrige un bug lors de la lecture de sous-colonnes depuis JSON dans des parties compactes, pouvant entraîner l’erreur `CANNOT_READ_ALL_DATA`. Résout [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264). [#90302](https://github.com/ClickHouse/ClickHouse/pull/90302) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige le problème empêchant les fonctions `trim`, `ltrim`, `rtrim` de fonctionner avec deux arguments. Ferme [#90170](https://github.com/ClickHouse/ClickHouse/issues/90170). [#90305](https://github.com/ClickHouse/ClickHouse/pull/90305) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Rétroporté dans [#90625](https://github.com/ClickHouse/ClickHouse/issues/90625) : corrige une possible erreur logique dans prewhere sur un chemin JSON inexistant avec `index_granularity_bytes=0`. Résout [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924). [#90375](https://github.com/ClickHouse/ClickHouse/pull/90375) ([Pavel Kruglov](https://github.com/Avogar)).
* Rétroporté dans [#90484](https://github.com/ClickHouse/ClickHouse/issues/90484) : corrige un bug dans `L2DistanceTransposed` qui provoquait des plantages lorsque l’argument precision dépassait la plage valide. Ferme [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401). [#90405](https://github.com/ClickHouse/ClickHouse/pull/90405) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Rétroporté dans [#90577](https://github.com/ClickHouse/ClickHouse/issues/90577) : corrige des calculs de distance incorrects dans `L2DistanceTransposed` lors de l’utilisation de vecteurs de référence de type tableau (qui utilisent par défaut `Array(Float64))`) avec des colonnes `QBit` dont le type d’élément n’est pas `Float64` (`Float32`, `BFloat16`). La fonction convertit désormais automatiquement le vecteur de référence pour qu’il corresponde au type d’élément du `QBit`. Résout [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976). [#90485](https://github.com/ClickHouse/ClickHouse/pull/90485) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Rétroporté dans [#90601](https://github.com/ClickHouse/ClickHouse/issues/90601) : corrige une erreur logique causée par un cas rare dans la fonction `equals`. Ferme [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142). [#90557](https://github.com/ClickHouse/ClickHouse/pull/90557) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige `CoalescingMergeTree` pour les types `Tuple`. [#88828](https://github.com/ClickHouse/ClickHouse/pull/88828) ([scanhex12](https://github.com/scanhex12)).

#### Amélioration de la compilation/des tests/du packaging

* Correction de l’erreur « Connection refused » lors de l’exécution de ClickHouse dans Docker avec des scripts SQL `initdb` et un port TCP redéfini. [#88042](https://github.com/ClickHouse/ClickHouse/pull/88042) ([Grigorii](https://github.com/GSokol)).
* Prise en charge expérimentale de e2k comme nouvelle plateforme pour ClickHouse. [#90159](https://github.com/ClickHouse/ClickHouse/pull/90159) ([Ramil Sattarov](https://github.com/r-a-sattarov)).
* Suppression des dernières utilisations de `FindPackage` dans CMake. Les builds ne doivent pas dépendre des paquets système. [#89380](https://github.com/ClickHouse/ClickHouse/pull/89380) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Utilisation du cache du compilateur dans les builds lors de la configuration de CMake (par ex. `protoc`). [#89613](https://github.com/ClickHouse/ClickHouse/pull/89613) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utilisation du sysroot de FreeBSD 13.4. [#89617](https://github.com/ClickHouse/ClickHouse/pull/89617) ([Konstantin Bogdanov](https://github.com/thevar1able)).

<div id="2510">
  ### Version de ClickHouse 25.10 du 2025-10-31
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Le paramètre `schema_inference_make_columns_nullable` est désormais activé par défaut de manière à respecter les informations de type `Nullable` des colonnes issues des métadonnées Parquet/ORC/Arrow, au lieu de tout rendre Nullable. Aucun changement pour les formats texte. [#71499](https://github.com/ClickHouse/ClickHouse/pull/71499) ([Michael Kolupaev](https://github.com/al13n321)).
* Le cache des résultats de requête ignorera le paramètre `log_comment`, de sorte qu’une modification de `log_comment` seule dans une requête ne provoquera plus de défaut de cache. Il existe une faible probabilité que certains utilisateurs aient intentionnellement segmenté leur cache en faisant varier `log_comment`. Ce changement modifie ce comportement et n’est donc pas rétrocompatible. Veuillez utiliser le paramètre `query_cache_tag` à cette fin. [#79878](https://github.com/ClickHouse/ClickHouse/pull/79878) ([filimonov](https://github.com/filimonov)).
* Dans les versions précédentes, les requêtes avec des fonctions de table portant le même nom que les fonctions d’implémentation des opérateurs étaient formatées de manière incohérente. Clôt [#81601](https://github.com/ClickHouse/ClickHouse/issues/81601). Clôt [#81977](https://github.com/ClickHouse/ClickHouse/issues/81977). Clôt [#82834](https://github.com/ClickHouse/ClickHouse/issues/82834). Clôt [#82835](https://github.com/ClickHouse/ClickHouse/issues/82835). Les requêtes EXPLAIN SYNTAX ne formateront pas toujours les opérateurs : ce nouveau comportement reflète mieux l’objectif de l’explication de la syntaxe. `clickhouse-format`, `formatQuery` et autres outils similaires ne formateront pas les fonctions comme des opérateurs si la requête les contenait sous une forme fonctionnelle. [#82825](https://github.com/ClickHouse/ClickHouse/pull/82825) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interdire l’utilisation du type `Dynamic` dans les clés de `JOIN`. Cela pouvait conduire à des résultats inattendus lorsqu’une valeur de type `Dynamic` est comparée à un type non-`Dynamic`. Il est préférable de convertir la colonne `Dynamic` vers le type requis. [#86358](https://github.com/ClickHouse/ClickHouse/pull/86358) ([Pavel Kruglov](https://github.com/Avogar)).
* L’option du serveur `storage_metadata_write_full_object_key` est désormais activée par défaut et ne peut plus être désactivée. Il s’agit d’un changement rétrocompatible. Cette information est simplement portée à votre attention. Ce changement n’est compatible en amont qu’avec les versions 25.x. Cela signifie que vous ne pourrez rétrograder que vers une version 25.x si vous devez effectuer un rollback de la nouvelle version. [#87335](https://github.com/ClickHouse/ClickHouse/pull/87335) ([Sema Checherinda](https://github.com/CheSema)).
* Réduction de `replicated_deduplication_window_seconds` d’une semaine à une heure afin de stocker moins de znodes dans ZooKeeper lorsque le taux d’insertion est faible. [#87414](https://github.com/ClickHouse/ClickHouse/pull/87414) ([Sema Checherinda](https://github.com/CheSema)).
* Renomme le paramètre `query_plan_use_new_logical_join_step` en `query_plan_use_logical_join_step`. [#87679](https://github.com/ClickHouse/ClickHouse/pull/87679) ([Vladimir Cherkasov](https://github.com/vdimir)).
* La nouvelle syntaxe permet de rendre plus expressif le paramètre de tokenizer pour l’index de texte. [#87997](https://github.com/ClickHouse/ClickHouse/pull/87997) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Les fonctions `searchAny` et `searchAll` ont été renommées en `hasAnyTokens` et `hasAllTokens` pour une meilleure cohérence avec la fonction existante `hasToken`. [#88109](https://github.com/ClickHouse/ClickHouse/pull/88109) ([Robert Schulze](https://github.com/rschu1ze)).
* Supprime `cache_hits_threshold` du cache du système de fichiers. Cette fonctionnalité a été ajoutée par un contributeur externe avant l’introduction de la cache policy SLRU, et maintenant que nous en disposons, il n’est plus pertinent de prendre en charge les deux. [#88344](https://github.com/ClickHouse/ClickHouse/pull/88344) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Deux légères modifications du fonctionnement des paramètres `min_free_disk_ratio_to_perform_insert` et `min_free_disk_bytes_to_perform_insert` : - utiliser les octets non réservés plutôt que les octets disponibles pour déterminer si une insertion doit être rejetée. Ce n’est probablement pas crucial si les réservations pour les fusions et mutations en arrière-plan sont faibles par rapport aux seuils configurés, mais cela semble plus correct. - Ne pas appliquer ces paramètres aux tables système. L’idée est que nous voulons tout de même que des tables comme `query_log` continuent d’être mises à jour. Cela aide beaucoup pour le débogage. Les données écrites dans les tables système sont généralement faibles par rapport aux données réelles ; elles devraient donc pouvoir continuer bien plus longtemps avec un seuil `min_free_disk_ratio_to_perform_insert` raisonnable. [#88468](https://github.com/ClickHouse/ClickHouse/pull/88468) ([c-end](https://github.com/c-end)).
* Activer le mode asynchrone pour la réplication interne de Keeper. Keeper conservera le même comportement qu’auparavant, avec d’éventuelles améliorations des performances. Si vous effectuez une mise à niveau depuis une version antérieure à 23.9, vous devez soit d’abord passer à la version 23.9+, puis à la version 25.10+. Vous pouvez également définir `keeper_server.coordination_settings.async_replication` sur 0 avant la mise à niveau, puis l’activer une fois celle-ci terminée. [#88515](https://github.com/ClickHouse/ClickHouse/pull/88515) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Ajout de la prise en charge de `LIMIT` négatif et de `OFFSET` négatif. Clôt [#28913](https://github.com/ClickHouse/ClickHouse/issues/28913). [#88411](https://github.com/ClickHouse/ClickHouse/pull/88411) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Le moteur `Alias` crée un proxy vers une autre table. Toutes les opérations de lecture et d’écriture sont transmises à la table cible, tandis que l’alias lui-même ne stocke aucune donnée et conserve uniquement une référence à cette table. [#87965](https://github.com/ClickHouse/ClickHouse/pull/87965) ([Kai Zhu](https://github.com/nauu)).
* Prise en charge complète de l’opérateur `IS NOT DISTINCT FROM` (`<=>`). [#88155](https://github.com/ClickHouse/ClickHouse/pull/88155) ([simonmichal](https://github.com/simonmichal)).
* Ajout de la possibilité de créer automatiquement des statistiques sur toutes les colonnes appropriées des tables `MergeTree`. Ajout du paramètre de table `auto_statistics_types`, qui stocke les types de statistiques à créer, séparés par des virgules (par ex. `auto_statistics_types = 'minmax, uniq, countmin'`). [#87241](https://github.com/ClickHouse/ClickHouse/pull/87241) ([Anton Popov](https://github.com/CurtizJ)).
* Un nouvel index de bloom filter pour le texte, `sparse_gram`. [#79985](https://github.com/ClickHouse/ClickHouse/pull/79985) ([scanhex12](https://github.com/scanhex12)).
* Nouvelle fonction `conv` pour convertir des nombres entre différentes bases, avec prise en charge actuelle des bases de `2-36`. [#83058](https://github.com/ClickHouse/ClickHouse/pull/83058) ([hp](https://github.com/hp77-creator)).
* Ajout de la prise en charge de la syntaxe `LIMIT BY ALL`. Comme `GROUP BY ALL` et `ORDER BY ALL`, `LIMIT BY ALL` s’étend automatiquement à toutes les expressions non agrégées de la clause SELECT en tant que clés LIMIT BY. Par exemple, `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL` est équivalent à `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name`. Cette fonctionnalité simplifie les requêtes lorsque vous souhaitez limiter sur toutes les colonnes non agrégées sélectionnées sans les énumérer explicitement. Clôt [#59152](https://github.com/ClickHouse/ClickHouse/issues/59152). [#84079](https://github.com/ClickHouse/ClickHouse/pull/84079) ([Surya Kant Ranjan](https://github.com/iit2009046)).
* Ajout de la prise en charge des requêtes sur Apache Paimon dans ClickHouse. Cette intégration permettra aux utilisateurs de ClickHouse d’interagir directement avec le stockage data lake de Paimon. [#84423](https://github.com/ClickHouse/ClickHouse/pull/84423) ([JIaQi](https://github.com/JiaQiTang98)).
* Ajout de la fonction d’agrégation `studentTTestOneSample`. [#85436](https://github.com/ClickHouse/ClickHouse/pull/85436) ([Dylan](https://github.com/DylanBlakemore)).
* Fonction d’agrégation `quantilePrometheusHistogram`, qui accepte comme arguments les bornes supérieures et les valeurs cumulées des buckets d’histogramme, et effectue une interpolation linéaire entre les bornes supérieure et inférieure du bucket dans lequel se trouve la position du quantile. Son comportement est similaire à celui de la fonction PromQL `histogram_quantile` sur les histogrammes classiques. [#86294](https://github.com/ClickHouse/ClickHouse/pull/86294) ([Stephen Chi](https://github.com/stephchi0)).
* Nouvelle system table pour les fichiers de métadonnées delta lake. [#87263](https://github.com/ClickHouse/ClickHouse/pull/87263) ([scanhex12](https://github.com/scanhex12)).
* Ajout de `ALTER TABLE REWRITE PARTS` — réécrit les table parts depuis zéro en utilisant tous les nouveaux paramètres (car certains, comme `use_const_adaptive_granularity`, ne s’appliquent qu’aux nouvelles parts). [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la commande `SYSTEM RECONNECT ZOOKEEPER` pour forcer la déconnexion puis la reconnexion à ZooKeeper ([https://github.com/ClickHouse/ClickHouse/issues/87317](https://github.com/ClickHouse/ClickHouse/issues/87317)). [#87318](https://github.com/ClickHouse/ClickHouse/pull/87318) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Limite le nombre de collections nommées via les paramètres `max_named_collection_num_to_warn` et `max_named_collection_num_to_throw`. Ajoute la nouvelle métrique `NamedCollection` et l'erreur `TOO_MANY_NAMED_COLLECTIONS`. [#87343](https://github.com/ClickHouse/ClickHouse/pull/87343) ([Pablo Marcos](https://github.com/pamarcos)).
* Ajoute des variantes optimisées insensibles à la casse des fonctions `startsWith` et `endsWith` : `startsWithCaseInsensitive`, `endsWithCaseInsensitive`, `startsWithCaseInsensitiveUTF8` et `endsWithCaseInsensitiveUTF8`. [#87374](https://github.com/ClickHouse/ClickHouse/pull/87374) ([Guang Zhao](https://github.com/zheguang)).
* Ajoute un moyen de définir `WORKLOAD` et `RESOURCE` en SQL à l'aide de la section de configuration du serveur "resources\_and\_workloads". [#87430](https://github.com/ClickHouse/ClickHouse/pull/87430) ([Sergei Trifonov](https://github.com/serxa)).
* Ajoute un nouveau paramètre de table `min_level_for_wide_part` qui permet de spécifier le niveau minimal à partir duquel une part est créée comme wide part. [#88179](https://github.com/ClickHouse/ClickHouse/pull/88179) ([Christoph Wurm](https://github.com/cwurm)).
* Ajoute des variantes récursives des commandes `cp`-`cpr` et `mv`-`mvr` dans le client Keeper. [#88570](https://github.com/ClickHouse/ClickHouse/pull/88570) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Ajoute un paramètre de session pour exclure une liste de skip indexes de la matérialisation lors des inserts (`exclude_materialize_skip_indexes_on_insert`). Ajoute un paramètre de table MergeTree pour exclure une liste de skip indexes de la matérialisation lors du merge (`exclude_materialize_skip_indexes_on_merge`). [#87252](https://github.com/ClickHouse/ClickHouse/pull/87252) ([George Larionov](https://github.com/george-larionov)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* Implémentation du type de données `QBit`, qui stocke les vecteurs au format bit-sliced, et de la fonction `L2DistanceTransposed`, qui permet la recherche vectorielle approximative avec un compromis entre précision et vitesse contrôlé par un paramètre. [#87922](https://github.com/ClickHouse/ClickHouse/pull/87922) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Les fonctions `searchAll` et `searchAny` fonctionnent désormais sur des ensembles de colonnes ne comportant aucune colonne de texte. Dans ce cas, elles utilisent le tokenizer par défaut. [#87722](https://github.com/ClickHouse/ClickHouse/pull/87722) ([Jimmy Aguilar Mena](https://github.com/Ergus)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Implémente la réplication différée des colonnes dans JOIN et ARRAY JOIN. Évite de convertir certaines représentations spéciales de colonnes, comme Sparse et Replicated, en colonnes complètes dans certains formats de sortie. Cela évite des copies de données inutiles en mémoire. [#88752](https://github.com/ClickHouse/ClickHouse/pull/88752) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajoute une sérialisation optionnelle de la sous-colonne `.size` pour les colonnes String de premier niveau dans les tables MergeTree afin d’améliorer la compression et de permettre un accès efficace aux sous-colonnes. Introduit de nouveaux paramètres MergeTree pour contrôler la version de sérialisation et optimiser les expressions sur les chaînes vides. [#82850](https://github.com/ClickHouse/ClickHouse/pull/82850) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge de la lecture dans l’ordre pour Iceberg. [#88454](https://github.com/ClickHouse/ClickHouse/pull/88454) ([scanhex12](https://github.com/scanhex12)).
* Accélère certaines requêtes JOIN en construisant un bloom filter à partir du sous-arbre droit à l’exécution, puis en transmettant ce filtre au scan du sous-arbre gauche. Cela peut être bénéfique pour des requêtes comme `SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'`. [#84772](https://github.com/ClickHouse/ClickHouse/pull/84772) ([Alexander Gololobov](https://github.com/davenger)).
* Améliore les performances des requêtes en remaniant l’ordre et l’intégration du Query Condition Cache (QCC) avec l’analyse des index. Le filtrage du QCC est désormais appliqué avant l’analyse de la clé primaire et des skip indexes, ce qui réduit les calculs d’index inutiles. L’analyse des index a été étendue pour prendre en charge plusieurs filtres de plage, et ses résultats sont maintenant réinjectés dans le QCC. Cela accélère considérablement les requêtes où l’analyse des index domine le temps d’exécution, en particulier celles qui s’appuient sur des skip indexes (par ex. des index vectoriels ou inversés). [#82380](https://github.com/ClickHouse/ClickHouse/pull/82380) ([Amos Bird](https://github.com/amosbird)).
* Une série de micro-optimisations pour accélérer les petites requêtes. [#83096](https://github.com/ClickHouse/ClickHouse/pull/83096) ([Raúl Marín](https://github.com/Algunenano)).
* Compresse les logs et les profile events dans le native protocol. Sur les clusters comptant plus de 100 répliques, les profile events non compressés représentent de 1 à 10 Mo/s, et la barre de progression devient peu réactive sur les connexions Internet lentes. Cela clôt [#82533](https://github.com/ClickHouse/ClickHouse/issues/82533). [#83586](https://github.com/ClickHouse/ClickHouse/pull/83586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliore les performances de la recherche de chaînes sensible à la casse (opérations telles que le filtrage, par ex. `WHERE URL LIKE '%google%'`) en s’appuyant sur la bibliothèque [StringZilla](https://github.com/ashvardanian/StringZilla) et sur les instructions SIMD du CPU lorsqu’elles sont disponibles. [#84161](https://github.com/ClickHouse/ClickHouse/pull/84161) ([Raúl Marín](https://github.com/Algunenano)).
* Réduit les allocations et les copies mémoire lors d’un select depuis une table MergeTree agrégée avec FINAL lorsque la table comporte des colonnes de type `SimpleAggregateFunction(anyLast)`. [#84428](https://github.com/ClickHouse/ClickHouse/pull/84428) ([Duc Canh Le](https://github.com/canhld94)).
* Ajoute une logique de pushdown pour les prédicats de disjonction dans JOIN. Exemple : dans TPC-H Q7, pour une condition sur 2 tables n1 et n2 comme `(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')`, nous extrayons des filtres partiels distincts pour chaque table : `n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY'` pour n1, et `n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE'` pour n2. [#84735](https://github.com/ClickHouse/ClickHouse/pull/84735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Améliore les performances de `LIKE` avec un préfixe ou un suffixe en utilisant le nouveau paramètre activé par défaut `optimize_rewrite_like_perfect_affix`. [#85920](https://github.com/ClickHouse/ClickHouse/pull/85920) ([Guang Zhao](https://github.com/zheguang)).
* Corrige la dégradation des performances causée par une clé sérialisée volumineuse lors d’un regroupement par plusieurs colonnes de type String/Number. Il s’agit du suivi de [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884). [#85924](https://github.com/ClickHouse/ClickHouse/pull/85924) ([李扬](https://github.com/taiyang-li)).
* Ajoute le nouveau paramètre `joined_block_split_single_row` pour réduire l’utilisation de la mémoire dans les hash joins avec de nombreuses correspondances par clé. Cela permet de découper les résultats de hash join en blocs, même au sein des correspondances d’une seule ligne de la table de gauche, ce qui est particulièrement utile lorsqu’une ligne de la table de gauche correspond à des milliers, voire des millions, de lignes de la table de droite. Auparavant, toutes les correspondances devaient être matérialisées en mémoire en une seule fois. Cela réduit le pic d’utilisation mémoire, mais peut augmenter l’utilisation du CPU. [#87913](https://github.com/ClickHouse/ClickHouse/pull/87913) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Améliorations de SharedMutex (amélioration des performances avec un grand nombre de requêtes concurrentes). [#87491](https://github.com/ClickHouse/ClickHouse/pull/87491) ([Raúl Marín](https://github.com/Algunenano)).
* Améliore les performances de création de l’index de texte pour les documents contenant principalement des tokens peu fréquents. [#87546](https://github.com/ClickHouse/ClickHouse/pull/87546) ([Anton Popov](https://github.com/CurtizJ)).
* Accélère le cas le plus courant du destructeur de Field (amélioration des performances avec un grand nombre de petites requêtes). [#87631](https://github.com/ClickHouse/ClickHouse/pull/87631) ([Raúl Marín](https://github.com/Algunenano)).
* Ignore le recalcul à l’exécution des statistiques de la hash table pendant l’optimisation des JOIN (améliore les performances de toutes les requêtes avec des JOIN). Ajoute les nouveaux événements de profilage `JoinOptimizeMicroseconds` et `QueryPlanOptimizeMicroseconds`. [#87683](https://github.com/ClickHouse/ClickHouse/pull/87683) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Active l’enregistrement des marks dans le cache et évite les IO directs pour le lecteur MergeTreeLazy. Cela améliore les performances des requêtes avec ORDER BY et un LIMIT faible. [#87989](https://github.com/ClickHouse/ClickHouse/pull/87989) ([Nikita Taranov](https://github.com/nickitat)).
* Une requête SELECT avec la clause `FINAL` sur une table `ReplacingMergeTree` avec la colonne `is_deleted` s’exécute désormais plus rapidement grâce à une meilleure parallélisation issue de deux optimisations existantes : 1. l’optimisation `do_not_merge_across_partitions_select_final` pour les partitions de la table qui n’ont qu’un seul `part` ; 2. la division des autres plages sélectionnées de la table en `intersecting / non-intersecting`, seules les plages intersecting devant passer par la transformation de fusion FINAL. [#88090](https://github.com/ClickHouse/ClickHouse/pull/88090) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Réduit l’impact de la non-utilisation des fail points (le chemin de code par défaut lorsque le débogage n’est pas actif). [#88196](https://github.com/ClickHouse/ClickHouse/pull/88196) ([Raúl Marín](https://github.com/Algunenano)).
* Évite un scan complet de `system.tables` avec un filtre sur `uuid` (cela peut être utile si vous ne disposez que de l’UUID provenant des logs ou du chemin ZooKeeper). [#88379](https://github.com/ClickHouse/ClickHouse/pull/88379) ([Azat Khuzhin](https://github.com/azat)).
* Améliore les performances des fonctions `tokens`, `hasAllTokens`, `hasAnyTokens`. [#88416](https://github.com/ClickHouse/ClickHouse/pull/88416) ([Anton Popov](https://github.com/CurtizJ)).
* Déclare `AddedColumns::appendFromBlock` en inline pour améliorer légèrement les performances des JOIN dans certains cas. [#88455](https://github.com/ClickHouse/ClickHouse/pull/88455) ([Nikita Taranov](https://github.com/nickitat)).
* L’autocomplétion du client est plus rapide et plus cohérente grâce à l’utilisation de `system.completions` plutôt qu’à l’exécution de plusieurs requêtes sur les tables système. [#84694](https://github.com/ClickHouse/ClickHouse/pull/84694) ([|2ustam](https://github.com/RuS2m)).
* Ajoute le nouveau paramètre d’index de texte `dictionary_block_frontcoding_compression` pour contrôler la compression du dictionnaire. Par défaut, il est activé afin d’utiliser la compression `front-coding`. [#87175](https://github.com/ClickHouse/ClickHouse/pull/87175) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Compacte les données de tous les threads avant de les insérer dans les vues matérialisées selon les paramètres `min_insert_block_size_rows_for_materialized_views` et `min_insert_block_size_bytes_for_materialized_views`. Auparavant, si `parallel_view_processing` était activé, chaque thread insérant dans une vue matérialisée spécifique compactait l’insertion indépendamment, ce qui pouvait entraîner un nombre plus élevé de parts générées. [#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajoute le paramètre `temporary_files_buffer_size` pour contrôler la taille du buffer des écrivains de fichiers temporaires. \* Optimise la consommation mémoire de l’opération `scatter` (utilisée, par exemple, dans un grace hash join) pour les colonnes `LowCardinality`. [#88237](https://github.com/ClickHouse/ClickHouse/pull/88237) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ajout de la prise en charge de la lecture directe à partir des index de texte avec des répliques parallèles. Amélioration des performances de lecture des index de texte depuis le stockage objet. [#88262](https://github.com/ClickHouse/ClickHouse/pull/88262) ([Anton Popov](https://github.com/CurtizJ)).
* Les requêtes sur des tables issues de catalogs de Data Lakes utiliseront des répliques parallèles pour le traitement distribué. [#88273](https://github.com/ClickHouse/ClickHouse/pull/88273) ([scanhex12](https://github.com/scanhex12)).
* L’heuristique interne d’ajustement de l’algorithme des fusions en arrière-plan, nommée "to\_remove\_small\_parts\_at\_right", sera exécutée avant le calcul du score de la plage de fusion. Auparavant, le sélecteur de fusion choisissait la fusion wide, puis en filtrait le suffixe. Corrige : [#85374](https://github.com/ClickHouse/ClickHouse/issues/85374). [#88736](https://github.com/ClickHouse/ClickHouse/pull/88736) ([Mikhail Artemenko](https://github.com/Michicosun)).

<div id="improvement">
  #### Amélioration
</div>

* Désormais, la fonction `generateSerialID` prend en charge un argument non constant pour le nom de la série. Clôt [#83750](https://github.com/ClickHouse/ClickHouse/issues/83750). [#88270](https://github.com/ClickHouse/ClickHouse/pull/88270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’un paramètre optionnel `start_value` à la fonction `generateSerialID` pour définir des valeurs de départ personnalisées pour les nouvelles séries. [#88085](https://github.com/ClickHouse/ClickHouse/pull/88085) ([Manuel](https://github.com/raimannma)).
* Ajout de l’option `--semicolons_inline` dans `clickhouse-format` pour formater les requêtes de sorte que les points-virgules soient placés sur la dernière ligne plutôt que sur une ligne distincte. [#88018](https://github.com/ClickHouse/ClickHouse/pull/88018) ([Jan Rada](https://github.com/ZelvaMan)).
* Permet de configurer le throttling au niveau du serveur lorsque la configuration est surchargée dans Keeper. Clôt [#73964](https://github.com/ClickHouse/ClickHouse/issues/73964). [#74066](https://github.com/ClickHouse/ClickHouse/pull/74066) ([JIaQi](https://github.com/JiaQiTang98)).
* `mannWhitneyUTest` ne lève plus d’exception lorsque les deux échantillons ne contiennent que des valeurs identiques. Renvoie désormais un résultat valide, conforme à SciPy. Clôt [#79814](https://github.com/ClickHouse/ClickHouse/issues/79814). [#80009](https://github.com/ClickHouse/ClickHouse/pull/80009) ([DeanNeaht](https://github.com/DeanNeaht)).
* La réécriture de la transaction de stockage objet sur disque supprime les blobs distants précédents si la transaction de métadonnées est validée. [#81787](https://github.com/ClickHouse/ClickHouse/pull/81787) ([Sema Checherinda](https://github.com/CheSema)).
* Correction du passage d’optimisation pour une expression d’égalité redondante lorsque la `LowCardinality` du type résultant diffère avant et après l’optimisation. [#82651](https://github.com/ClickHouse/ClickHouse/pull/82651) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Lorsque des clients HTTP définissent l’en-tête `X-ClickHouse-100-Continue: defer` en plus de `Expect: 100-continue`, ClickHouse n’envoie pas de réponse `100 Continue` au client tant que la validation du quota n’a pas abouti, ce qui évite de gaspiller de la bande passante réseau en transmettant des corps de requête qui seront de toute façon rejetés. Cela concerne les requêtes INSERT dans lesquelles la requête peut être envoyée dans la query string de l’URL et les données dans le request body. L’abandon d’une requête sans envoyer le body complet empêche la réutilisation de la connexion avec HTTP/1.1, mais la latence supplémentaire induite par l’ouverture de nouvelles connexions est généralement négligeable par rapport à la durée totale d’un INSERT sur de grands volumes de données. [#84304](https://github.com/ClickHouse/ClickHouse/pull/84304) ([c-end](https://github.com/c-end)).
* Masque les credentials S3 dans les logs lors de l’utilisation de DATABASE ENGINE = Backup avec un stockage S3. [#85336](https://github.com/ClickHouse/ClickHouse/pull/85336) ([Kenny Sun](https://github.com/hwabis)).
* Rend les optimisations du query plan visibles pour le sous-plan d’entrée de la sous-requête corrélée en retardant sa materialization. Fait partie de [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#85455](https://github.com/ClickHouse/ClickHouse/pull/85455) ([Dmitry Novik](https://github.com/novikd)).
* Changement pour SYSTEM DROP DATABASE REPLICA : - Lors de la suppression avec une database ou de la suppression de la replica complète : la replica est également supprimée pour chaque table de la database - Si 'WITH TABLES' est fourni, la replica est supprimée pour chaque storage - Sinon, la logique reste inchangée et seule la replica des databases est supprimée - Lors de la suppression d’une replica de database avec le Keeper path : - Si 'WITH TABLES' est fourni : - Restaurer la database en Atomic - Restaurer les tables RMT à partir du statement dans Keeper - Supprimer la database (les tables restaurées sont également supprimées) - Sinon, seule la replica du Keeper path fourni est supprimée. [#85637](https://github.com/ClickHouse/ClickHouse/pull/85637) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Correction du formatage incohérent de TTL lorsqu’il contient une fonction `materialize`. Clôt [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828). [#85749](https://github.com/ClickHouse/ClickHouse/pull/85749) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* L’état de la table Iceberg n’est plus stocké dans un objet de stockage. Cela devrait permettre d’utiliser Iceberg dans ClickHouse avec des requêtes concurrentes. [#86062](https://github.com/ClickHouse/ClickHouse/pull/86062) ([Daniil Ivanik](https://github.com/divanik)).
* Rend persistant le verrou de bucket en mode ordered de S3Queue, de manière similaire aux processing nodes lorsque `use_persistent_processing_nodes = 1`. Ajoute une injection de fautes Keeper dans les tests. [#86628](https://github.com/ClickHouse/ClickHouse/pull/86628) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Fournit des indications lorsqu’un utilisateur fait une faute de frappe dans le nom du format. Clôt [#86761](https://github.com/ClickHouse/ClickHouse/issues/86761). [#87092](https://github.com/ClickHouse/ClickHouse/pull/87092) ([flynn](https://github.com/ucasfl)).
* Les répliques distantes ignoreront l’analyse des index lorsqu’il n’y a pas de projections. [#87096](https://github.com/ClickHouse/ClickHouse/pull/87096) ([zoomxi](https://github.com/zoomxi)).
* Permet de désactiver l’encodage UTF8 pour la table ytsaurus. [#87150](https://github.com/ClickHouse/ClickHouse/pull/87150) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Désactive `s3_slow_all_threads_after_retryable_error` par défaut. [#87198](https://github.com/ClickHouse/ClickHouse/pull/87198) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Renomme la fonction de table `arrowflight` en `arrowFlight`. [#87249](https://github.com/ClickHouse/ClickHouse/pull/87249) ([Vitaly Baranov](https://github.com/vitlibar)).
* Mise à jour de `clickhouse-benchmark` pour accepter `-` à la place de `_` dans ses flags CLI. [#87251](https://github.com/ClickHouse/ClickHouse/pull/87251) ([Ahmed Gouda](https://github.com/0xgouda)).
* Rend synchrone l’écriture vers `system.crash_log` lors de la gestion des signaux. [#87253](https://github.com/ClickHouse/ClickHouse/pull/87253) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajoute un paramètre `inject_random_order_for_select_without_order_by` qui injecte `ORDER BY rand()` dans les requêtes `SELECT` de premier niveau sans clause `ORDER BY`. [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn)).
* Améliore le message d’erreur de `joinGet` afin d’indiquer correctement que le nombre de `join_keys` n’est pas le même que celui de `right_table_keys`. [#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara)).
* Ajoute la possibilité de vérifier les statistiques d’un nœud Keeper arbitraire pendant la transaction d’écriture. Cela peut aider à détecter les problèmes d’ABA. [#87282](https://github.com/ClickHouse/ClickHouse/pull/87282) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Redirige les requêtes ytsaurus lourdes vers des proxys lourds. [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige les rollbacks des opérations unlink/rename/removeRecursive/removeDirectory/etc., ainsi que le comptage des hardlinks dans toutes les workloads possibles pour les métadonnées des transactions sur disque, et simplifie les interfaces pour les rendre plus génériques afin de pouvoir les réutiliser dans d’autres magasins de métadonnées. [#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Ajoute le paramètre de configuration `keeper_server.tcp_nodelay`, qui permet de désactiver `TCP_NODELAY` pour Keeper. [#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot).
* Prise en charge de `--connection` dans `clickhouse-benchmarks`. Elle fonctionne comme dans `clickhouse-client` : vous pouvez spécifier des connexions prédéfinies dans le `config.xml`/`config.yaml` du client, sous le chemin `connections_credentials`, afin d'éviter d'avoir à indiquer explicitement l'utilisateur et le mot de passe dans les arguments de ligne de commande. Prise en charge également de `--accept-invalid-certificate` dans `clickhouse-benchmark`. [#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat)).
* Désormais, le paramètre `max_insert_threads` s'applique aux tables Iceberg. [#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin)).
* Ajout d'histogrammes et de métriques dimensionnelles à `PrometheusMetricsWriter`. Ainsi, le handler `PrometheusRequestHandler` disposera de toutes les métriques essentielles et pourra être utilisé pour une collecte de métriques fiable et à faible surcharge dans le cloud. [#87521](https://github.com/ClickHouse/ClickHouse/pull/87521) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* La fonction `hasToken` renvoie désormais zéro correspondance pour un token vide (alors qu'auparavant, cela déclenchait une exception). [#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Ajout de la prise en charge des index de texte pour les valeurs `Array` et `Map` (`mapKeys` et `mapValues`). Les fonctions prises en charge sont `mapContainsKey` et `has`. [#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Ajout d'une nouvelle métrique `ZooKeeperSessionExpired` qui indique le nombre de sessions ZooKeeper globales expirées. [#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Utilisation du client de stockage S3 avec des paramètres spécifiques aux sauvegardes (par exemple, backup\_slow\_all\_threads\_after\_retryable\_s3\_error) pour la copie server-side (native) vers une destination de sauvegarde. Rend s3\_slow\_all\_threads\_after\_retryable\_error obsolète. [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction de la gestion incorrecte des paramètres `max_joined_block_size_rows` et `max_joined_block_size_bytes` lors de la sérialisation du plan de requête avec `make_distributed_plan`, encore expérimental. [#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Le paramètre `enable_http_compression` est désormais activé par défaut. Cela signifie que si un client accepte la compression HTTP, le serveur l'utilisera. Cependant, ce changement présente certains inconvénients. Le client peut demander une méthode de compression coûteuse, comme `bzip2`, ce qui est déraisonnable, et cela augmentera la consommation de ressources du serveur (mais cela ne sera visible que lors du transfert de résultats volumineux). Le client peut aussi demander `gzip`, ce qui n'est pas si mauvais, mais reste sous-optimal par rapport à `zstd`. Closes [#71591](https://github.com/ClickHouse/ClickHouse/issues/71591). [#87703](https://github.com/ClickHouse/ClickHouse/pull/87703) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d'une nouvelle entrée dans `system.server_settings`, `keeper_hosts`, qui expose la liste des hôtes \[Zoo]Keeper auxquels ClickHouse peut se connecter. [#87718](https://github.com/ClickHouse/ClickHouse/pull/87718) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout des valeurs `from` et `to` aux dashboards système pour faciliter les investigations historiques. [#87823](https://github.com/ClickHouse/ClickHouse/pull/87823) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajout de davantage d'informations pour le suivi des performances dans les SELECT sur Iceberg. [#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik)).
* Amélioration du cache du système de fichiers : réutilisation de l’itérateur de priorité du cache entre les threads qui réservent simultanément de l’espace dans le cache. [#87914](https://github.com/ClickHouse/ClickHouse/pull/87914) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la possibilité de limiter les requêtes pour `Keeper` (paramètre `max_request_size`, identique à `jute.maxbuffer` pour `ZooKeeper`, désactivé par défaut pour la rétrocompatibilité, sera activé dans les prochaines versions). [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat)).
* `clickhouse-benchmark` n’inclut plus les traces de pile dans les messages d’erreur par défaut. [#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda)).
* Éviter d’utiliser le chargement asynchrone des marks via le pool de threads (`load_marks_asynchronously=1`) lorsque les marks sont dans le cache (car le pool peut être saturé et les requêtes subiront une pénalité même si les marks sont déjà dans le cache). [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat)).
* Ytsaurus : permettre de créer des tables/fonctions de table/dictionnaires avec un sous-ensemble de colonnes. [#87982](https://github.com/ClickHouse/ClickHouse/pull/87982) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Désormais, `system.zookeeper_connection_log` est activé par défaut et peut être utilisé pour obtenir des informations sur les sessions de Keeper. [#88011](https://github.com/ClickHouse/ClickHouse/pull/88011) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Uniformisation du comportement de TCP et HTTP lorsque des tables externes dupliquées sont transmises. HTTP permet de transmettre une table temporaire plusieurs fois. [#88032](https://github.com/ClickHouse/ClickHouse/pull/88032) ([Sema Checherinda](https://github.com/CheSema)).
* Suppression des MemoryPools personnalisés pour la lecture d’Arrow/ORC/Parquet. Ce composant semble inutile après [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082), car toutes les allocations sont désormais suivies dans tous les cas. [#88035](https://github.com/ClickHouse/ClickHouse/pull/88035) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Possibilité de créer une base de données `Replicated` sans arguments. [#88044](https://github.com/ClickHouse/ClickHouse/pull/88044) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* `clickhouse-keeper-client` : ajout de la prise en charge de la connexion au port TLS de clickhouse-keeper, en conservant les mêmes noms d’options que dans clickhouse-client. [#88065](https://github.com/ClickHouse/ClickHouse/pull/88065) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Ajout d’un nouvel événement de profil pour suivre le nombre de fois où une fusion en arrière-plan a été rejetée en raison d’un dépassement de la limite mémoire. [#88084](https://github.com/ClickHouse/ClickHouse/pull/88084) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Activation de l’analyseur pour la validation des expressions par défaut des colonnes dans CREATE/ALTER TABLE. [#88087](https://github.com/ClickHouse/ClickHouse/pull/88087) ([Max Justus Spransy](https://github.com/maxjustus)).
* Amélioration de la planification interne des requêtes : utilisation de JoinStepLogical pour `CROSS JOIN`. [#88151](https://github.com/ClickHouse/ClickHouse/pull/88151) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ajout des alias de fonctions `hasAnyTokens` (`hasAnyToken`) et `hasAllTokens` (`hasAllToken`). [#88162](https://github.com/ClickHouse/ClickHouse/pull/88162) ([George Larionov](https://github.com/george-larionov)).
* Activation par défaut du profiler global d’échantillonnage (y compris pour les threads du serveur non liés aux requêtes) : collecte des traces de pile de tous les threads toutes les 10 secondes de temps CPU et de temps réel. [#88209](https://github.com/ClickHouse/ClickHouse/pull/88209) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Mise à jour de l’Azure SDK pour inclure le correctif de `Content-Length` observé dans les fonctionnalités de copie et de création de conteneur. [#88278](https://github.com/ClickHouse/ClickHouse/pull/88278) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Rend la fonction `lag` insensible à la casse pour assurer la compatibilité avec MySQL. [#88322](https://github.com/ClickHouse/ClickHouse/pull/88322) ([Lonny Kapelushnik](https://github.com/lonnylot)).
* Permet à `clickhouse-local` de démarrer depuis le répertoire `clickhouse-server`. Dans les versions précédentes, cela produisait l’erreur `Cannot parse UUID: .` Vous pouvez désormais démarrer `clickhouse-local` et manipuler les bases de données du serveur sans démarrer celui-ci. [#88383](https://github.com/ClickHouse/ClickHouse/pull/88383) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute la config `keeper_server.coordination_settings.check_node_acl_on_remove`. Si elle est activée, avant chaque suppression d’un nœud, les ACL du nœud lui-même et du nœud parent sont vérifiées. Sinon, seule l’ACL du nœud parent est vérifiée. [#88513](https://github.com/ClickHouse/ClickHouse/pull/88513) ([Antonio Andelic](https://github.com/antonio2368)).
* Les colonnes `JSON` sont désormais affichées avec une mise en forme Pretty lors de l’utilisation du format `Vertical`. Ferme [#81794](https://github.com/ClickHouse/ClickHouse/issues/81794). [#88524](https://github.com/ClickHouse/ClickHouse/pull/88524) ([Frank Rosner](https://github.com/FRosner)).
* Stocke les fichiers de `clickhouse-client` (par ex. l’historique des requêtes) dans les emplacements décrits par la spécification [XDG Base Directories](https://specifications.freedesktop.org/basedir-spec/latest/index.html), au lieu de la racine du répertoire personnel. `~/.clickhouse-client-history` restera utilisé s’il existe déjà. [#88538](https://github.com/ClickHouse/ClickHouse/pull/88538) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige une fuite de mémoire due à `GLOBAL IN` ([https://github.com/ClickHouse/ClickHouse/issues/88615](https://github.com/ClickHouse/ClickHouse/issues/88615)). [#88617](https://github.com/ClickHouse/ClickHouse/pull/88617) ([pranavmehta94](https://github.com/pranavmehta94)).
* Ajoute une surcharge à hasAny/hasAllTokens pour accepter une entrée de type chaîne. [#88679](https://github.com/ClickHouse/ClickHouse/pull/88679) ([George Larionov](https://github.com/george-larionov)).
* Ajoute une étape au script de post-installation de `clickhouse-keeper` pour activer le démarrage au boot. [#88746](https://github.com/ClickHouse/ClickHouse/pull/88746) ([YenchangChan](https://github.com/YenchangChan)).
* Vérifie les informations d’authentification dans l’interface Web uniquement au collage, plutôt qu’à chaque frappe. Cela évite un problème avec des serveurs LDAP mal configurés. Ferme [#85777](https://github.com/ClickHouse/ClickHouse/issues/85777). [#88769](https://github.com/ClickHouse/ClickHouse/pull/88769) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Limite la longueur du message d’exception lorsqu’une contrainte est violée. Dans les versions précédentes, il était possible d’obtenir un message d’exception très long lorsqu’une très longue chaîne était insérée, et celui-ci finissait par être écrit dans le `query_log`. Ferme [#87032](https://github.com/ClickHouse/ClickHouse/issues/87032). [#88801](https://github.com/ClickHouse/ClickHouse/pull/88801) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la récupération de la structure d’un jeu de données depuis le serveur ArrowFlight lors de la création d’une table. [#87542](https://github.com/ClickHouse/ClickHouse/pull/87542) ([Vitaly Baranov](https://github.com/vitlibar)).

#### Correction de bogue

* Correction d’un problème dans GeoParquet provoquant des erreurs de protocole côté client. [#84020](https://github.com/ClickHouse/ClickHouse/pull/84020) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction de la résolution des fonctions dépendantes de l’hôte, comme shardNum(), dans les sous-requêtes sur le nœud initiateur. [#84409](https://github.com/ClickHouse/ClickHouse/pull/84409) ([Eduard Karacharov](https://github.com/korowa)).
* Correction de la gestion incorrecte des dates antérieures à l’epoch avec des secondes fractionnaires dans diverses fonctions liées aux dates et heures, comme `parseDateTime64BestEffort`, `change{Year,Month,Day}` et `makeDateTime64`. Auparavant, la partie sous-seconde était soustraite aux secondes au lieu d’y être ajoutée. Par exemple, `parseDateTime64BestEffort('1969-01-01 00:00:00.468')` renvoyait `1968-12-31 23:59:59.532` au lieu de `1969-01-01 00:00:00.468`. [#85396](https://github.com/ClickHouse/ClickHouse/pull/85396) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Correction de l’échec des commandes ALTER COLUMN IF EXISTS lorsque l’état d’une colonne change au sein de la même instruction ALTER. Les commandes telles que DROP COLUMN IF EXISTS, MODIFY COLUMN IF EXISTS, COMMENT COLUMN IF EXISTS et RENAME COLUMN IF EXISTS gèrent désormais correctement les cas où une colonne est supprimée par une commande précédente dans la même instruction. [#86046](https://github.com/ClickHouse/ClickHouse/pull/86046) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Correction de l’inférence de Date/DateTime/DateTime64 pour des dates en dehors de la plage prise en charge. [#86184](https://github.com/ClickHouse/ClickHouse/pull/86184) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un crash où certaines données valides soumises par l’utilisateur dans une colonne `AggregateFunction(quantileDD)` pouvaient entraîner une récursion infinie des fusions. [#86560](https://github.com/ClickHouse/ClickHouse/pull/86560) ([Raphaël Thériault](https://github.com/raphael-theriault-swi)).
* Prise en charge des types JSON/Dynamic dans les tables créées avec la fonction de table `cluster`. [#86821](https://github.com/ClickHouse/ClickHouse/pull/86821) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un résultat non déterministe pour une fonction calculée dans une CTE au sein de la requête. [#86967](https://github.com/ClickHouse/ClickHouse/pull/86967) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de LOGICAL\_ERROR dans EXPLAIN avec pointInPolygon sur les colonnes de clé primaire. [#86971](https://github.com/ClickHouse/ClickHouse/pull/86971) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction des tables de data lake dont le nom contient une séquence encodée en pourcentage. Ferme [#86626](https://github.com/ClickHouse/ClickHouse/issues/86626). [#87020](https://github.com/ClickHouse/ClickHouse/pull/87020) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Correction du comportement incorrect de `IS NULL` sur les colonnes Nullable dans `OUTER JOIN` avec `optimize_functions_to_subcolumns`, ferme [#78625](https://github.com/ClickHouse/ClickHouse/issues/78625). [#87058](https://github.com/ClickHouse/ClickHouse/pull/87058) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction de la comptabilisation incorrecte des désallocations de données temporaires dans le suivi de la limite `max_temporary_data_on_disk_size`, ferme [#87118](https://github.com/ClickHouse/ClickHouse/issues/87118). [#87140](https://github.com/ClickHouse/ClickHouse/pull/87140) ([JIaQi](https://github.com/JiaQiTang98)).
* La fonction checkHeaders valide désormais correctement les en-têtes fournis et rejette les en-têtes interdits. Auteur original : Michael Anastasakis (@michael-anastasakis). [#87172](https://github.com/ClickHouse/ClickHouse/pull/87172) ([Raúl Marín](https://github.com/Algunenano)).
* Uniformise le comportement de `toDate` et `toDate32` pour tous les types numériques. Corrige la vérification du underflow de Date32 lors d'un CAST depuis int16. [#87176](https://github.com/ClickHouse/ClickHouse/pull/87176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Corrige une logical error avec les parallel replicas pour les queries comportant plusieurs JOIN, en particulier lorsqu'un RIGHT JOIN suit un LEFT/INNER JOIN. [#87178](https://github.com/ClickHouse/ClickHouse/pull/87178) ([Igor Nikonov](https://github.com/devcrafter)).
* Respecte le paramètre `input_format_try_infer_variants` dans le cache de schema inference. [#87180](https://github.com/ClickHouse/ClickHouse/pull/87180) ([Pavel Kruglov](https://github.com/Avogar)).
* Fait en sorte que pathStartsWith ne corresponde qu'aux paths situés sous le préfixe. [#87181](https://github.com/ClickHouse/ClickHouse/pull/87181) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige des logical errors dans la colonne virtuelle `_row_number` et dans les suppressions positionnées Iceberg. [#87220](https://github.com/ClickHouse/ClickHouse/pull/87220) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige `LOGICAL_ERROR` "Too large size passed to allocator" dans `JOIN`, dû à un mélange de blocks constants et non constants. [#87231](https://github.com/ClickHouse/ClickHouse/pull/87231) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les lightweight updates avec des subqueries qui lisent depuis d'autres tables `MergeTree`. [#87285](https://github.com/ClickHouse/ClickHouse/pull/87285) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l'optimisation move-to-prewhere, qui ne fonctionnait pas en présence d'une row policy. Suite de [#85118](https://github.com/ClickHouse/ClickHouse/issues/85118). Ferme [#69777](https://github.com/ClickHouse/ClickHouse/issues/69777). Ferme [#83748](https://github.com/ClickHouse/ClickHouse/issues/83748). [#87303](https://github.com/ClickHouse/ClickHouse/pull/87303) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige l'application de Patches aux columns avec une expression par défaut absentes des data parts. [#87347](https://github.com/ClickHouse/ClickHouse/pull/87347) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un défaut de segmentation lors de l'utilisation de noms de champs de partition dupliqués dans des tables MergeTree. [#87365](https://github.com/ClickHouse/ClickHouse/pull/87365) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrige la mise à niveau d'EmbeddedRocksDB. [#87392](https://github.com/ClickHouse/ClickHouse/pull/87392) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la lecture directe depuis le text index sur object storage. [#87399](https://github.com/ClickHouse/ClickHouse/pull/87399) ([Anton Popov](https://github.com/CurtizJ)).
* Empêche la création d'un privilege avec un engine inexistant. [#87419](https://github.com/ClickHouse/ClickHouse/pull/87419) ([Jitendra](https://github.com/jitendra1411)).
* Ignore uniquement les erreurs « not found » pour `s3_plain_rewritable` (ce qui peut sinon entraîner toutes sortes de problèmes). [#87426](https://github.com/ClickHouse/ClickHouse/pull/87426) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les Dictionaries avec une source YTSaurus et des layouts \*range\_hashed. [#87490](https://github.com/ClickHouse/ClickHouse/pull/87490) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige la création d'un Array de Tuples vides. [#87520](https://github.com/ClickHouse/ClickHouse/pull/87520) ([Pavel Kruglov](https://github.com/Avogar)).
* Vérifie la présence de columns non valides lors de la création d'une temporary table. [#87524](https://github.com/ClickHouse/ClickHouse/pull/87524) ([Pavel Kruglov](https://github.com/Avogar)).
* Ne mettez jamais les colonnes de partition Hive dans l’en-tête du format. Corrige [#87515](https://github.com/ClickHouse/ClickHouse/issues/87515). [#87528](https://github.com/ClickHouse/ClickHouse/pull/87528) ([Arthur Passos](https://github.com/arthurpassos)).
* Corrige la préparation de la lecture depuis un format dans DeltaLake lorsqu’un format texte est utilisé. [#87529](https://github.com/ClickHouse/ClickHouse/pull/87529) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la validation des accès pour select et insert sur les tables Buffer. [#87545](https://github.com/ClickHouse/ClickHouse/pull/87545) ([pufit](https://github.com/pufit)).
* Interdit la création d’un index de saut de données sur une table S3. [#87554](https://github.com/ClickHouse/ClickHouse/pull/87554) ([Bharat Nallan](https://github.com/bharatnc)).
* Évite les fuites de mémoire comptabilisée pour la journalisation asynchrone (la dérive peut être importante, \~100GiB sur 10 heures) et text\_log (une dérive quasiment identique est possible). [#87584](https://github.com/ClickHouse/ClickHouse/pull/87584) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug qui pouvait entraîner l’écrasement des paramètres serveur globaux par les paramètres SELECT d’une View ou d’une vue matérialisée, si cette vue était supprimée de manière asynchrone et que le serveur redémarrait avant la fin du nettoyage en arrière-plan. [#87603](https://github.com/ClickHouse/ClickHouse/pull/87603) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Exclut les octets du cache de pages en espace utilisateur (si possible) lors du calcul de l’avertissement de surcharge mémoire. [#87610](https://github.com/ClickHouse/ClickHouse/pull/87610) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige un bug où un ordre de types incorrect lors de la désérialisation CSV entraînait `LOGICAL_ERROR`. [#87622](https://github.com/ClickHouse/ClickHouse/pull/87622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige la gestion incorrecte de `command_read_timeout` pour les dictionnaires exécutables. [#87627](https://github.com/ClickHouse/ClickHouse/pull/87627) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le comportement incorrect de SELECT \* REPLACE dans la clause WHERE avec le nouvel analyseur lors du filtrage sur des colonnes remplacées. [#87630](https://github.com/ClickHouse/ClickHouse/pull/87630) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrige l’agrégation à deux niveaux lors de l’utilisation de `Merge` sur `Distributed`. [#87687](https://github.com/ClickHouse/ClickHouse/pull/87687) ([c-end](https://github.com/c-end)).
* Corrige la génération du block de sortie dans l’algorithme HashJoin lorsque la liste de lignes de droite n’est pas utilisée. Corrige [#87401](https://github.com/ClickHouse/ClickHouse/issues/87401). [#87699](https://github.com/ClickHouse/ClickHouse/pull/87699) ([Dmitry Novik](https://github.com/novikd)).
* Le mode de lecture des répliques parallèles pouvait être choisi de manière incorrecte s’il n’y avait aucune donnée à lire après application de l’analyse d’index. Ferme [#87653](https://github.com/ClickHouse/ClickHouse/issues/87653). [#87700](https://github.com/ClickHouse/ClickHouse/pull/87700) ([zoomxi](https://github.com/zoomxi)).
* Corrige la gestion des colonnes `timestamp` / `timestamptz` dans Glue. [#87733](https://github.com/ClickHouse/ClickHouse/pull/87733) ([Andrey Zvonov](https://github.com/zvonand)).
* Ceci ferme [#86587](https://github.com/ClickHouse/ClickHouse/issues/86587). [#87761](https://github.com/ClickHouse/ClickHouse/pull/87761) ([scanhex12](https://github.com/scanhex12)).
* Corrige l’écriture des valeurs booléennes dans l’interface PostgreSQL. [#87762](https://github.com/ClickHouse/ClickHouse/pull/87762) ([Artem Yurov](https://github.com/ArtemYurov)).
* Corrige une erreur de table inconnue dans une requête insert select avec CTE. [#85368](https://github.com/ClickHouse/ClickHouse/issues/85368). [#87789](https://github.com/ClickHouse/ClickHouse/pull/87789) ([Guang Zhao](https://github.com/zheguang)).
* Correction de la lecture d’une sous-colonne de map NULL à partir de Variants qui ne peuvent pas se trouver à l’intérieur de Nullable. [#87798](https://github.com/ClickHouse/ClickHouse/pull/87798) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de la gestion de l’erreur en cas d’échec de la suppression complète de la base de données sur le cluster, sur le nœud secondaire. [#87802](https://github.com/ClickHouse/ClickHouse/pull/87802) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Correction de plusieurs bogues liés aux index de saut. [#87817](https://github.com/ClickHouse/ClickHouse/pull/87817) ([Raúl Marín](https://github.com/Algunenano)).
* Dans AzureBlobStorage, mise à jour pour tenter d’abord la copie native, puis basculer en lecture/écriture en cas d’erreur 'Unauthroized' (dans AzureBlobStorage, si les comptes de stockage diffèrent entre la source et la destination, nous obtenons l’erreur 'Unauthorized'). Correction également de l’application de "use\_native\_copy" lorsqu’un endpoint est défini dans la configuration. [#87826](https://github.com/ClickHouse/ClickHouse/pull/87826) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* ClickHouse plante si le fichier ArrowStream contient un dictionnaire non unique. [#87863](https://github.com/ClickHouse/ClickHouse/pull/87863) ([Ilya Golshtein](https://github.com/ilejn)).
* Correction d’une erreur fatale lors de l’utilisation de approx\_top\_k et finalizeAggregation. [#87892](https://github.com/ClickHouse/ClickHouse/pull/87892) ([Jitendra](https://github.com/jitendra1411)).
* Correction de la fusion avec des projections lorsque le dernier bloc est vide. [#87928](https://github.com/ClickHouse/ClickHouse/pull/87928) ([Raúl Marín](https://github.com/Algunenano)).
* Ne supprime pas les fonctions injectives de GROUP BY si les types des arguments ne sont pas autorisés dans GROUP BY. [#87958](https://github.com/ClickHouse/ClickHouse/pull/87958) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de l’élimination incorrecte des granules/partitions pour les clés basées sur DateTime lors de l’utilisation du paramètre `session_timezone` dans les requêtes. [#87987](https://github.com/ClickHouse/ClickHouse/pull/87987) ([Eduard Karacharov](https://github.com/korowa)).
* Renvoie le nombre de lignes affectées après la requête dans l’interface PostgreSQL. [#87990](https://github.com/ClickHouse/ClickHouse/pull/87990) ([Artem Yurov](https://github.com/ArtemYurov)).
* Restreint l’utilisation du filter pushdown pour PASTE JOIN, car cela peut produire des résultats incorrects. [#88078](https://github.com/ClickHouse/ClickHouse/pull/88078) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Applique la normalisation d’URI avant l’évaluation pour la vérification des droits introduite par [https://github.com/ClickHouse/ClickHouse/pull/84503](https://github.com/ClickHouse/ClickHouse/pull/84503). [#88089](https://github.com/ClickHouse/ClickHouse/pull/88089) ([pufit](https://github.com/pufit)).
* Correction d’une erreur logique lorsque ARRAY JOIN COLUMNS() ne correspond à aucune colonne dans le nouvel analyseur. [#88091](https://github.com/ClickHouse/ClickHouse/pull/88091) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Correction de l’avertissement "Utilisation mémoire élevée de ClickHouse" (hors page cache). [#88092](https://github.com/ClickHouse/ClickHouse/pull/88092) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une possible corruption de données dans les tables `MergeTree` avec `TTL` défini sur une colonne de type Set. [#88095](https://github.com/ClickHouse/ClickHouse/pull/88095) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une exception potentiellement non interceptée lors de la lecture de `system.tables` avec des tables invalides attachées dans des bases de données externes (`PostgreSQL`/`SQLite`/...). [#88105](https://github.com/ClickHouse/ClickHouse/pull/88105) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un crash dans les fonctions `mortonEncode` et `hilbertEncode` lorsqu’elles sont appelées avec un argument Tuple vide. [#88110](https://github.com/ClickHouse/ClickHouse/pull/88110) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Désormais, les requêtes `ON CLUSTER` prendront moins de temps lorsqu’il y a des répliques inactives dans le cluster. [#88153](https://github.com/ClickHouse/ClickHouse/pull/88153) ([alesapin](https://github.com/alesapin)).
* Désormais, le worker DDL nettoie les hôtes obsolètes de l’ensemble des répliques. Cela réduira la quantité de métadonnées stockées dans ZooKeeper. [#88154](https://github.com/ClickHouse/ClickHouse/pull/88154) ([alesapin](https://github.com/alesapin)).
* Correction de l’exécution de ClickHouse sans cgroups (les cgroups étaient accidentellement devenus obligatoires pour les métriques asynchrones). [#88164](https://github.com/ClickHouse/ClickHouse/pull/88164) ([Azat Khuzhin](https://github.com/azat)).
* Annule correctement l’opération de déplacement de répertoire en cas d’erreur. Il faut réécrire tous les objets `prefix.path` modifiés pendant l’exécution, et pas seulement l’objet racine. [#88198](https://github.com/ClickHouse/ClickHouse/pull/88198) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Correction de la propagation de l’indicateur `is_shared` dans `ColumnLowCardinality`. Cela pouvait entraîner un résultat de group-by incorrect si une nouvelle valeur était insérée dans une colonne après le précalcul et la mise en cache des valeurs de hachage dans `ReverseIndex`. [#88213](https://github.com/ClickHouse/ClickHouse/pull/88213) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige le workload setting `max_cpu_share`. Il peut désormais être utilisé sans définir le workload setting `max_cpus`. [#88217](https://github.com/ClickHouse/ClickHouse/pull/88217) ([Neerav](https://github.com/neeravsalaria)).
* Corrige un bug où des mutations très lourdes avec des sous-requêtes pouvaient rester bloquées à l’étape de préparation. Il est désormais possible d’arrêter ces mutations avec `SYSTEM STOP MERGES`. [#88241](https://github.com/ClickHouse/ClickHouse/pull/88241) ([alesapin](https://github.com/alesapin)).
* Désormais, les sous-requêtes corrélées fonctionneront avec le stockage objet. [#88290](https://github.com/ClickHouse/ClickHouse/pull/88290) ([alesapin](https://github.com/alesapin)).
* Évite de tenter d’initialiser des bases de données DataLake lors de l’accès à `system.projections` et `system.data_skipping_indices`. [#88330](https://github.com/ClickHouse/ClickHouse/pull/88330) ([Azat Khuzhin](https://github.com/azat)).
* Désormais, les catalogues des data lakes ne seront affichés dans les tables système d’introspection que si `show_data_lake_catalogs_in_system_tables` est explicitement activé. [#88341](https://github.com/ClickHouse/ClickHouse/pull/88341) ([alesapin](https://github.com/alesapin)).
* Correction de DatabaseReplicated pour respecter la configuration `interserver_http_host`. [#88378](https://github.com/ClickHouse/ClickHouse/pull/88378) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Les arguments positionnels sont désormais explicitement désactivés lors de la définition des Projections, car ils n’ont pas de sens à cette étape interne de la requête. Cela corrige [#48604](https://github.com/ClickHouse/ClickHouse/issues/48604). [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380) ([Amos Bird](https://github.com/amosbird)).
* Corrige une complexité quadratique dans la fonction `countMatches`. Clôture [#88400](https://github.com/ClickHouse/ClickHouse/issues/88400). [#88401](https://github.com/ClickHouse/ClickHouse/pull/88401) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rend les commandes `ALTER COLUMN ... COMMENT` des tables KeeperMap répliquées, afin qu’elles soient enregistrées dans les métadonnées de la base de données Replicated et propagées à toutes les répliques. Clôture [#88077](https://github.com/ClickHouse/ClickHouse/issues/88077). [#88408](https://github.com/ClickHouse/ClickHouse/pull/88408) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige un cas de fausse dépendance cyclique avec les vues matérialisées dans Database Replicated, qui empêchait l’ajout de nouvelles répliques à la base de données. [#88423](https://github.com/ClickHouse/ClickHouse/pull/88423) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige l’agrégation des colonnes creuses lorsque `group_by_overflow_mode` est défini sur `any`. [#88440](https://github.com/ClickHouse/ClickHouse/pull/88440) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige l’erreur "column not found" lors de l’utilisation de `query_plan_use_logical_join_step=0` avec plusieurs clauses FULL JOIN USING. Clôt [#88103](https://github.com/ClickHouse/ClickHouse/issues/88103). [#88473](https://github.com/ClickHouse/ClickHouse/pull/88473) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Les clusters de grande taille avec un nombre de nœuds > 10 ont une forte probabilité d’échouer lors de la restauration avec l’erreur `[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 <Trace>: RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again`. Le nœud `num_hosts` est réécrit par de nombreux hôtes en même temps. Le correctif rend dynamique le paramètre qui contrôle le nombre de tentatives. Clôt [#87721](https://github.com/ClickHouse/ClickHouse/issues/87721). [#88484](https://github.com/ClickHouse/ClickHouse/pull/88484) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Cette PR vise uniquement à assurer la compatibilité avec la version 23.8 et les versions antérieures. Le problème de compatibilité a été introduit par cette PR : [https://github.com/ClickHouse/ClickHouse/pull/54240](https://github.com/ClickHouse/ClickHouse/pull/54240). Cette requête SQL échoue avec `enable_analyzer=0` (avant 23.8, c’était acceptable). [#88491](https://github.com/ClickHouse/ClickHouse/pull/88491) ([JIaQi](https://github.com/JiaQiTang98)).
* Corrige un dépassement d’entier détecté par UBSAN dans le message d’erreur `accurateCast` lors de la conversion de grandes valeurs en DateTime. [#88520](https://github.com/ClickHouse/ClickHouse/pull/88520) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrige `coalescing merge tree` pour les types Tuple. Cela clôt [#88469](https://github.com/ClickHouse/ClickHouse/issues/88469). [#88526](https://github.com/ClickHouse/ClickHouse/pull/88526) ([scanhex12](https://github.com/scanhex12)).
* Interdit les suppressions pour `iceberg_format_version=1`. Cela clôt [#88444](https://github.com/ClickHouse/ClickHouse/issues/88444). [#88532](https://github.com/ClickHouse/ClickHouse/pull/88532) ([scanhex12](https://github.com/scanhex12)).
* Ce correctif corrige l’opération de déplacement des disques `plain-rewritable` pour des dossiers d’une profondeur arbitraire. [#88586](https://github.com/ClickHouse/ClickHouse/pull/88586) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige SQL SECURITY DEFINER avec les fonctions \*cluster. [#88588](https://github.com/ClickHouse/ClickHouse/pull/88588) ([Julian Maicher](https://github.com/jmaicher)).
* Corrige un crash potentiel causé par une mutation concurrente des colonnes const PREWHERE sous-jacentes. [#88605](https://github.com/ClickHouse/ClickHouse/pull/88605) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la lecture depuis l’index de texte ainsi que depuis le cache des conditions de requête lorsqu’il est activé (avec les paramètres `use_skip_indexes_on_data_read` et `use_query_condition_cache` activés). [#88660](https://github.com/ClickHouse/ClickHouse/pull/88660) ([Anton Popov](https://github.com/CurtizJ)).
* Une exception `Poco::TimeoutException` levée par `Poco::Net::HTTPChunkedStreamBuf::readFromDevice` provoque un crash avec SIGABRT. [#88668](https://github.com/ClickHouse/ClickHouse/pull/88668) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Rétroporté dans [#88910](https://github.com/ClickHouse/ClickHouse/issues/88910) : après reprise, un replica d’une base de données Replicated pouvait rester bloqué longtemps en affichant des messages comme `Failed to marked query-0004647339 as finished (finished=No node, synced=No node)` ; le problème est corrigé. [#88671](https://github.com/ClickHouse/ClickHouse/pull/88671) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige l’ajout à `system.zookeeper_connection_log` lorsque ClickHouse se connecte pour la première fois après le rechargement de la configuration. [#88728](https://github.com/ClickHouse/ClickHouse/pull/88728) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un bug où la conversion de DateTime64 en Date avec `date_time_overflow_behavior = 'saturate'` pouvait produire des résultats incorrects pour des valeurs hors plage lors de l’utilisation de fuseaux horaires. [#88737](https://github.com/ClickHouse/ClickHouse/pull/88737) ([Manuel](https://github.com/raimannma)).
* Nouvelle tentative de correction de l’« erreur de zéro octet » avec le moteur de table S3 lorsque le cache est activé. [#88740](https://github.com/ClickHouse/ClickHouse/pull/88740) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige la validation des accès sur SELECT pour la fonction de table `loop`. [#88802](https://github.com/ClickHouse/ClickHouse/pull/88802) ([pufit](https://github.com/pufit)).
* Intercepte les exceptions lorsque la journalisation asynchrone échoue afin d’éviter l’arrêt du programme. [#88814](https://github.com/ClickHouse/ClickHouse/pull/88814) ([Raúl Marín](https://github.com/Algunenano)).
* Rétroporté dans [#89060](https://github.com/ClickHouse/ClickHouse/issues/89060) : corrige `top_k` pour qu’il respecte le paramètre de seuil lorsqu’il est appelé avec un seul argument. Ferme [#88757](https://github.com/ClickHouse/ClickHouse/issues/88757). [#88867](https://github.com/ClickHouse/ClickHouse/pull/88867) ([Manuel](https://github.com/raimannma)).
* Rétroporté dans [#88944](https://github.com/ClickHouse/ClickHouse/issues/88944) : corrige un bug dans la fonction `reverseUTF8`. Dans les versions précédentes, elle inversait par erreur les octets des points de code UTF-8 de longueur 4. Cela ferme [#88913](https://github.com/ClickHouse/ClickHouse/issues/88913). [#88914](https://github.com/ClickHouse/ClickHouse/pull/88914) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rétroporté dans [#88980](https://github.com/ClickHouse/ClickHouse/issues/88980) : ne vérifie pas le droit d’accès `SET DEFINER <current_user>:definer` lors de la création d’une vue avec SQL SECURITY DEFINER. [#88968](https://github.com/ClickHouse/ClickHouse/pull/88968) ([pufit](https://github.com/pufit)).
* Rétroporté dans [#89058](https://github.com/ClickHouse/ClickHouse/issues/89058) : corrige une `LOGICAL_ERROR` dans `L2DistanceTransposed(vec1, vec2, p)`, où l’optimisation de lecture partielle de `QBit` supprimait incorrectement `Nullable` du type de retour lorsque `p` était `Nullable`. [#88974](https://github.com/ClickHouse/ClickHouse/pull/88974) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Rétroporté dans [#89167](https://github.com/ClickHouse/ClickHouse/issues/89167) : corrige un crash en cas de type de catalogue inconnu. Résout [#88819](https://github.com/ClickHouse/ClickHouse/issues/88819). [#88987](https://github.com/ClickHouse/ClickHouse/pull/88987) ([scanhex12](https://github.com/scanhex12)).
* Rétroporté dans [#89028](https://github.com/ClickHouse/ClickHouse/issues/89028) : corrige une dégradation des performances lors de l’analyse des index d’évitement. [#89004](https://github.com/ClickHouse/ClickHouse/pull/89004) ([Anton Popov](https://github.com/CurtizJ)).

#### Amélioration de la compilation/des tests/du packaging

* Utilise la version 18.0 de la bibliothèque `postgres`. [#87647](https://github.com/ClickHouse/ClickHouse/pull/87647) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Active ICU pour FreeBSD. [#87891](https://github.com/ClickHouse/ClickHouse/pull/87891) ([Raúl Marín](https://github.com/Algunenano)).
* Utilise SSE 4.2 lorsque le dispatch dynamique se fait vers SSE 4.2, et non vers SSE 4. [#88029](https://github.com/ClickHouse/ClickHouse/pull/88029) ([Raúl Marín](https://github.com/Algunenano)).
* N'exige pas le flag `NO_ARMV81_OR_HIGHER` si `Speculative Store Bypass Safe` n'est pas disponible. [#88051](https://github.com/ClickHouse/ClickHouse/pull/88051) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Lorsque ClickHouse est compilé avec `ENABLE_LIBFIU=OFF`, les fonctions liées aux failpoints deviennent des no-op et ne peuvent plus affecter les performances. Les requêtes `SYSTEM ENABLE/DISABLE FAILPOINT` renvoient alors une erreur `SUPPORT_IS_DISABLED`. [#88184](https://github.com/ClickHouse/ClickHouse/pull/88184) ([c-end](https://github.com/c-end)).

<div id="259">
  ### Version 25.9 de ClickHouse, 2025-09-25
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Désactivation des opérations binaires dénuées de sens avec IPv4/IPv6 : l'addition / la soustraction d'une IPv4/IPv6 avec un type non entier est désactivée. Auparavant, cela autorisait les opérations avec des types à virgule flottante et levait des erreurs logiques avec certains autres types (tels que DateTime). [#86336](https://github.com/ClickHouse/ClickHouse/pull/86336) ([Raúl Marín](https://github.com/Algunenano)).
* Le paramètre `allow_dynamic_metadata_for_data_lakes` est déprécié. Désormais, toutes les tables Iceberg tentent de récupérer depuis le stockage le schéma de table le plus à jour avant l'exécution de chaque requête. [#86366](https://github.com/ClickHouse/ClickHouse/pull/86366) ([Daniil Ivanik](https://github.com/divanik)).
* La résolution de la colonne coalescée de la clause `OUTER JOIN ... USING` a été modifiée pour être plus cohérente : auparavant, lors de la sélection à la fois de la colonne USING et de colonnes qualifiées (`a, t1.a, t2.a`) dans un OUTER JOIN, la colonne USING était incorrectement résolue en `t1.a`, affichant 0/NULL pour les lignes de la table de droite sans correspondance à gauche. Désormais, les identifiants de la clause USING sont toujours résolus vers la colonne coalescée, tandis que les identifiants qualifiés sont résolus vers les colonnes non coalescées, quels que soient les autres identifiants présents dans la requête. Par exemple : \`\`\`sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- Avant : a=0, t1.a=0, t2.a=2 (incorrect - 'a' résolu en t1.a) -- Après : a=2, t1.a=0, t2.a=2 (correct - 'a' est coalescée). [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Augmentation de la fenêtre de déduplication répliquée jusqu'à 10000. Cela est entièrement compatible, mais on peut imaginer des scénarios où ce changement pourrait entraîner une consommation élevée de ressources en présence d'un grand nombre de tables. [#86820](https://github.com/ClickHouse/ClickHouse/pull/86820) ([Sema Checherinda](https://github.com/CheSema)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Vous pouvez désormais utiliser NATS JetStream pour consommer des messages en spécifiant les nouveaux réglages `nats_stream` et `nats_consumer` pour le moteur NATS. [#84799](https://github.com/ClickHouse/ClickHouse/pull/84799) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)).
* Prise en charge de l'authentification et de SSL ajoutée dans la fonction de table `arrowFlight`. [#87120](https://github.com/ClickHouse/ClickHouse/pull/87120) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout d'un nouveau paramètre au moteur de table `S3` et à la fonction de table `s3`, nommé `storage_class_name`, qui permet de spécifier le tiering intelligent pris en charge par AWS. Pris en charge à la fois au format clé-valeur et au format positionnel (déconseillé). [#87122](https://github.com/ClickHouse/ClickHouse/pull/87122) ([alesapin](https://github.com/alesapin)).
* `ALTER UPDATE` pour le moteur de table Iceberg. [#86059](https://github.com/ClickHouse/ClickHouse/pull/86059) ([scanhex12](https://github.com/scanhex12)).
* Ajout de la table système `iceberg_metadata_log` pour récupérer les fichiers de métadonnées Iceberg lors des instructions SELECT. [#86152](https://github.com/ClickHouse/ClickHouse/pull/86152) ([scanhex12](https://github.com/scanhex12)).
* Les tables `Iceberg` et `DeltaLake` prennent en charge une configuration de disque personnalisée via le réglage de niveau de stockage `disk`. [#86778](https://github.com/ClickHouse/ClickHouse/pull/86778) ([scanhex12](https://github.com/scanhex12)).
* Prise en charge d'Azure pour les disques de data lake. [#87173](https://github.com/ClickHouse/ClickHouse/pull/87173) ([scanhex12](https://github.com/scanhex12)).
* Prise en charge du catalogue `Unity` sur Azure blob storage. [#80013](https://github.com/ClickHouse/ClickHouse/pull/80013) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Prise en charge de formats supplémentaires (`ORC`, `Avro`) pour les écritures `Iceberg`. Cela clôt [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179). [#87277](https://github.com/ClickHouse/ClickHouse/pull/87277) ([scanhex12](https://github.com/scanhex12)).
* Ajout d'une nouvelle table système `database_replicas` contenant des informations sur les répliques de base de données. [#83408](https://github.com/ClickHouse/ClickHouse/pull/83408) ([Konstantin Morozov](https://github.com/k-morozov)).
* Ajout de la fonction `arrayExcept`, qui soustrait un tableau d'un autre en l'interprétant comme un ensemble. [#82368](https://github.com/ClickHouse/ClickHouse/pull/82368) ([Joanna Hulboj](https://github.com/jh0x)).
* Ajout d'une nouvelle table `system.aggregated_zookeeper_log`. Cette table contient des statistiques (par exemple le nombre d'opérations, la latence moyenne et les erreurs) sur les opérations ZooKeeper, regroupées par identifiant de session, chemin parent et type d'opération, et périodiquement écrites sur disque. [#85102](https://github.com/ClickHouse/ClickHouse/pull/85102) [#87208](https://github.com/ClickHouse/ClickHouse/pull/87208) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Nouvelle fonction `isValidASCII`. Renvoie 1 si la chaîne d'entrée ou FixedString contient uniquement des octets ASCII (0x00–0x7F), sinon 0. Clôt [#85377](https://github.com/ClickHouse/ClickHouse/issues/85377). ... [#85786](https://github.com/ClickHouse/ClickHouse/pull/85786) ([rajat mohan](https://github.com/rajatmohan22)).
* Les réglages booléens peuvent être spécifiés sans argument, par exemple `SET use_query_cache;`, ce qui équivaut à les définir sur true. [#85800](https://github.com/ClickHouse/ClickHouse/pull/85800) ([thraeka](https://github.com/thraeka)).
* Nouvelles options de configuration : `logger.startupLevel` & `logger.shutdownLevel` permettent de remplacer respectivement le niveau de log pendant le démarrage et l'arrêt de ClickHouse. [#85967](https://github.com/ClickHouse/ClickHouse/pull/85967) ([Lennard Eijsackers](https://github.com/Blokje5)).
* Fonctions d’agrégation `timeSeriesChangesToGrid` et `timeSeriesResetsToGrid`. Leur comportement est similaire à celui de `timeSeriesRateToGrid` : elles acceptent des paramètres pour l’horodatage de début, l’horodatage de fin, le pas et la fenêtre de rétrospection, ainsi que deux arguments pour les horodatages et les valeurs, mais exigent au moins 1 échantillon par fenêtre au lieu de 2. Elles calculent un `changes`/`resets` PromQL en comptant, pour chaque horodatage de la grille temporelle définie par les paramètres, le nombre de fois où la valeur de l’échantillon change ou diminue dans la fenêtre spécifiée. Le type de retour est `Array(Nullable(Float64))`. [#86010](https://github.com/ClickHouse/ClickHouse/pull/86010) ([Stephen Chi](https://github.com/stephchi0)).
* Permet aux utilisateurs de créer des vues temporaires avec une syntaxe similaire à celle des tables temporaires (`CREATE TEMPORARY VIEW`). [#86432](https://github.com/ClickHouse/ClickHouse/pull/86432) ([Aly Kafoury](https://github.com/AlyHKafoury)).
* Ajoute des avertissements sur l’utilisation du CPU et de la mémoire dans la table `system.warnings`. [#86838](https://github.com/ClickHouse/ClickHouse/pull/86838) ([Bharat Nallan](https://github.com/bharatnc)).
* Prend en charge l’indicateur `oneof` dans les entrées `Protobuf`. Une colonne spéciale peut être utilisée pour indiquer la présence d’une partie d’un oneof. Si un message contient [oneof](https://protobuf.dev/programming-guides/proto3/#oneof) et que `input_format_protobuf_oneof_presence` est défini, ClickHouse renseigne la colonne indiquant quel champ du oneof a été trouvé. [#82885](https://github.com/ClickHouse/ClickHouse/pull/82885) ([Ilya Golshtein](https://github.com/ilejn)).
* Améliore le profilage des allocations à partir des outils internes de jemalloc. Le profileur global de jemalloc peut désormais être activé avec la config `jemalloc_enable_global_profiler`. Les allocations et désallocations globales échantillonnées peuvent être stockées dans `system.trace_log` sous le type `JemallocSample` en activant la config `jemalloc_collect_global_profile_samples_in_trace_log`. Le profilage jemalloc peut désormais être activé indépendamment pour chaque query à l’aide du paramètre `jemalloc_enable_profiler`. Le stockage des échantillons dans `system.trace_log` peut être contrôlé pour chaque query à l’aide du paramètre `jemalloc_collect_profile_samples_in_trace_log`. Met à jour jemalloc vers une version plus récente. [#85438](https://github.com/ClickHouse/ClickHouse/pull/85438) ([Antonio Andelic](https://github.com/antonio2368)).
* Nouveau paramètre permettant de supprimer les fichiers lors de la suppression de tables Iceberg. Cela clôt [#86211](https://github.com/ClickHouse/ClickHouse/issues/86211). [#86501](https://github.com/ClickHouse/ClickHouse/pull/86501) ([scanhex12](https://github.com/scanhex12)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* L'index textuel inversé a été entièrement repensé pour être évolutif sur des jeux de données qui ne tiennent pas en RAM. [#86485](https://github.com/ClickHouse/ClickHouse/pull/86485) ([Anton Popov](https://github.com/CurtizJ)).
* La réorganisation des jointures s'appuie désormais sur des statistiques. Cette fonctionnalité peut être activée en définissant `allow_statistics_optimize = 1` et `query_plan_optimize_join_order_limit = 10`. [#86822](https://github.com/ClickHouse/ClickHouse/pull/86822) ([Han Fei](https://github.com/hanfei1991)).
* La commande `alter table ... materialize statistics all` permet désormais de matérialiser toutes les statistiques d'une table. [#87197](https://github.com/ClickHouse/ClickHouse/pull/87197) ([Han Fei](https://github.com/hanfei1991)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Prise en charge du filtrage des data parts à l’aide de skip indexes lors de la lecture afin de réduire les lectures d’index inutiles. Contrôlé par le nouveau paramètre `use_skip_indexes_on_data_read` (désactivé par défaut). Cela corrige [#75774](https://github.com/ClickHouse/ClickHouse/issues/75774). Cela inclut également certains travaux préparatoires communs avec [#81021](https://github.com/ClickHouse/ClickHouse/issues/81021). [#81526](https://github.com/ClickHouse/ClickHouse/pull/81526) ([Amos Bird](https://github.com/amosbird)).
* Ajout d’une optimisation de l’ordre des JOIN, capable de réordonner automatiquement les JOIN pour améliorer les performances (contrôlée par le paramètre `query_plan_optimize_join_order_limit`). Notez que cette optimisation ne prend actuellement en charge les statistiques que de manière limitée et s’appuie principalement sur des estimations du nombre de lignes fournies par les engines de stockage — une collecte de statistiques plus avancée et une meilleure estimation de la cardinalité seront ajoutées dans de futures releases. **Si vous rencontrez des problèmes avec des requêtes JOIN après une mise à niveau**, vous pouvez temporairement désactiver la nouvelle implémentation en définissant `SET query_plan_use_new_logical_join_step = 0` et signaler le problème pour investigation. **Remarque sur la résolution des identifiants depuis la clause USING** : la résolution de la colonne coalescée issue de la clause `OUTER JOIN ... USING` a été modifiée pour gagner en cohérence : auparavant, lors de la sélection simultanée de la colonne USING et de colonnes qualifiées (`a, t1.a, t2.a`) dans un OUTER JOIN, la colonne USING était incorrectement résolue en `t1.a`, ce qui affichait 0/NULL pour les lignes de la right table sans correspondance à gauche. Désormais, les identifiants de la clause USING sont toujours résolus vers la colonne coalescée, tandis que les identifiants qualifiés sont résolus vers les colonnes non coalescées, quels que soient les autres identifiants présents dans la requête. Par exemple : \`\`\`sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- Before: a=0, t1.a=0, t2.a=2 (incorrect - 'a' resolved to t1.a) -- After: a=2, t1.a=0, t2.a=2 (correct - 'a' is coalesced). [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)).
* `INSERT SELECT` Distributed pour les data lakes. [#86783](https://github.com/ClickHouse/ClickHouse/pull/86783) ([scanhex12](https://github.com/scanhex12)).
* Améliore l’optimisation PREWHERE pour des conditions telles que `func(primary_column) = 'xx'` et `column in (xxx)`. [#85529](https://github.com/ClickHouse/ClickHouse/pull/85529) ([李扬](https://github.com/taiyang-li)).
* Réécriture de JOIN implémentée : 1. Conversion de `LEFT ANY JOIN` et `RIGHT ANY JOIN` en JOIN `SEMI`/`ANTI` si la filter condition est toujours fausse pour les lignes correspondantes ou non correspondantes. Cette optimisation est contrôlée par un nouveau paramètre `query_plan_convert_any_join_to_semi_or_anti_join`. 2. Conversion de `FULL ALL JOIN` en JOIN `LEFT ALL` ou `RIGHT ALL` si la filter condition est toujours fausse pour les lignes non correspondantes d’un côté. [#86028](https://github.com/ClickHouse/ClickHouse/pull/86028) ([Dmitry Novik](https://github.com/novikd)).
* Performances des vertical merges améliorées après l’exécution d’un lightweight delete. [#86169](https://github.com/ClickHouse/ClickHouse/pull/86169) ([Anton Popov](https://github.com/CurtizJ)).
* Performances de `HashJoin` légèrement optimisées dans le cas d’un join `LEFT/RIGHT` comportant de nombreuses lignes sans correspondance. [#86312](https://github.com/ClickHouse/ClickHouse/pull/86312) ([Nikita Taranov](https://github.com/nickitat)).
* Tri radix : aide le compilateur à utiliser SIMD et à mieux effectuer le prefetching. Utilise un dispatch dynamique pour n’utiliser le software prefetching qu’avec les CPU Intel. Poursuit le travail de @taiyang-li dans [https://github.com/ClickHouse/ClickHouse/pull/77029](https://github.com/ClickHouse/ClickHouse/pull/77029). [#86378](https://github.com/ClickHouse/ClickHouse/pull/86378) ([Raúl Marín](https://github.com/Algunenano)).
* Améliore les performances des requêtes courtes sur des tables comportant beaucoup de parts (en optimisant `MarkRanges` grâce à l’utilisation de `devector` au lieu de `deque`). [#86933](https://github.com/ClickHouse/ClickHouse/pull/86933) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration des performances de l’application des patch parts en mode de jointure. [#87094](https://github.com/ClickHouse/ClickHouse/pull/87094) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout du paramètre `query_condition_cache_selectivity_threshold` (valeur par défaut : 1.0), qui exclut de l’insertion dans le cache des conditions de requête les résultats de scan de prédicats à faible sélectivité. Cela permet de réduire la consommation de mémoire du cache des conditions de requête, au prix d’un taux de succès du cache plus faible. [#86076](https://github.com/ClickHouse/ClickHouse/pull/86076) ([zhongyuankai](https://github.com/zhongyuankai)).
* Réduction de l’utilisation de la mémoire lors des écritures dans Iceberg. [#86544](https://github.com/ClickHouse/ClickHouse/pull/86544) ([scanhex12](https://github.com/scanhex12)).

<div id="improvement">
  #### Amélioration
</div>

* Prise en charge de l’écriture de plusieurs fichiers de données dans Iceberg en une seule insertion. Ajout de nouveaux paramètres, `iceberg_insert_max_rows_in_data_file` et `iceberg_insert_max_bytes_in_data_file`, pour en contrôler les limites. [#86275](https://github.com/ClickHouse/ClickHouse/pull/86275) ([scanhex12](https://github.com/scanhex12)).
* Ajout d’une limite de lignes/octets pour les fichiers de données insérés dans Delta Lake. Contrôlé par les paramètres `delta_lake_insert_max_rows_in_data_file` et `delta_lake_insert_max_bytes_in_data_file`. [#86357](https://github.com/ClickHouse/ClickHouse/pull/86357) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge d’un plus grand nombre de types de partitions pour les écritures Iceberg. Cela clôt [#86206](https://github.com/ClickHouse/ClickHouse/issues/86206). [#86298](https://github.com/ClickHouse/ClickHouse/pull/86298) ([scanhex12](https://github.com/scanhex12)).
* La stratégie de retry de S3 est désormais configurable, et les paramètres du disque S3 peuvent être rechargés à chaud en cas de modification du fichier XML de config. [#82642](https://github.com/ClickHouse/ClickHouse/pull/82642) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Amélioration du moteur de table S3(Azure)Queue pour lui permettre de survivre à une perte de connexion à ZooKeeper sans risque de doublons. Nécessite d’activer le paramètre S3Queue `use_persistent_processing_nodes` (modifiable avec `ALTER TABLE MODIFY SETTING`). [#85995](https://github.com/ClickHouse/ClickHouse/pull/85995) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Vous pouvez utiliser des paramètres de requête après `TO` lors de la création d’une vue matérialisée, par exemple : `CREATE MATERIALIZED VIEW mv TO {to_table:Identifier} AS SELECT * FROM src_table`. [#84899](https://github.com/ClickHouse/ClickHouse/pull/84899) ([Diskein](https://github.com/Diskein)).
* Instructions plus claires pour les utilisateurs lorsque des paramètres incorrects sont spécifiés pour le moteur de table `Kafka2`. [#83701](https://github.com/ClickHouse/ClickHouse/pull/83701) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Il n’est plus possible de spécifier de fuseaux horaires pour le type `Time` (cela n’avait pas de sens). [#84689](https://github.com/ClickHouse/ClickHouse/pull/84689) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Simplification (et correction de certains bugs) de la logique liée à l’analyse de Time/Time64 en mode `best_effort`. [#84730](https://github.com/ClickHouse/ClickHouse/pull/84730) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout de la fonction `deltaLakeAzureCluster` (similaire à `deltaLakeAzure` pour le mode cluster) et de la fonction `deltaLakeS3Cluster` (alias de `deltaLakeCluster`). Résout [#85358](https://github.com/ClickHouse/ClickHouse/issues/85358). [#85547](https://github.com/ClickHouse/ClickHouse/pull/85547) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Applique le paramètre `azure_max_single_part_copy_size` aux opérations de copie normales, de la même manière que pour les backups. [#85767](https://github.com/ClickHouse/ClickHouse/pull/85767) ([Ilya Golshtein](https://github.com/ilejn)).
* Ralentit les threads du client S3 en cas d’erreurs réessayables dans le stockage d’objets S3. Cela étend le paramètre précédent `backup_slow_all_threads_after_retryable_s3_error` aux disques S3 et le renomme en `s3_slow_all_threads_after_retryable_error`, plus générique. [#85918](https://github.com/ClickHouse/ClickHouse/pull/85918) ([Julia Kartseva](https://github.com/jkartseva)).
* Marque les paramètres allow\_experimental\_variant/dynamic/json et enable\_variant/dynamic/json comme obsolètes. Désormais, les trois types sont activés sans condition. [#85934](https://github.com/ClickHouse/ClickHouse/pull/85934) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge du filtrage par chaîne d’URL complète (directive `full_url`) dans `http_handlers` (y compris le schéma et l’hôte:port). [#86155](https://github.com/ClickHouse/ClickHouse/pull/86155) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’un nouveau paramètre, `allow_experimental_delta_lake_writes`. [#86180](https://github.com/ClickHouse/ClickHouse/pull/86180) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la détection de systemd dans le script init.d (corrige la vérification "Install packages"). [#86187](https://github.com/ClickHouse/ClickHouse/pull/86187) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’une nouvelle métrique dimensionnelle `startup_scripts_failure_reason`. Cette métrique est nécessaire pour distinguer les différents types d’erreurs à l’origine de l’échec des scripts de démarrage. En particulier, à des fins d’alerte, il faut distinguer les erreurs transitoires (par ex. `MEMORY_LIMIT_EXCEEDED` ou `KEEPER_EXCEPTION`) des erreurs non transitoires. [#86202](https://github.com/ClickHouse/ClickHouse/pull/86202) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Possibilité d’omettre la fonction `identity` pour la partition d’une table Iceberg. [#86314](https://github.com/ClickHouse/ClickHouse/pull/86314) ([scanhex12](https://github.com/scanhex12)).
* Ajout de la possibilité d’activer la journalisation JSON uniquement pour un canal spécifique ; pour cela, définissez `logger.formatting.channel` sur l’une des valeurs `syslog`/`console`/`errorlog`/`log`. [#86331](https://github.com/ClickHouse/ClickHouse/pull/86331) ([Azat Khuzhin](https://github.com/azat)).
* Possibilité d’utiliser des nombres natifs dans `WHERE`. Ils sont déjà autorisés comme arguments de fonctions logiques. Cela simplifie les optimisations de filter pushdown et de move to prewhere. [#86390](https://github.com/ClickHouse/ClickHouse/pull/86390) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une erreur lors de l’exécution de `SYSTEM DROP REPLICA` sur un catalog avec des métadonnées corrompues. [#86391](https://github.com/ClickHouse/ClickHouse/pull/86391) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout de tentatives supplémentaires pour la vérification de l’accès au disque (`skip_access_check = 0`) dans Azure, car l’approvisionnement de l’accès peut prendre beaucoup de temps. [#86419](https://github.com/ClickHouse/ClickHouse/pull/86419) ([Alexander Tokmakov](https://github.com/tavplubix)).
* La fenêtre de staleness dans les fonctions `timeSeries*()` est désormais ouverte à gauche et fermée à droite. [#86588](https://github.com/ClickHouse/ClickHouse/pull/86588) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout des profile events `FailedInternal*Query`. [#86627](https://github.com/ClickHouse/ClickHouse/pull/86627) ([Shane Andrade](https://github.com/mauidude)).
* Correction de la gestion des utilisateurs dont le nom contient un point lorsqu’ils sont ajoutés via un fichier de configuration. [#86633](https://github.com/ClickHouse/ClickHouse/pull/86633) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Ajout de métriques asynchrones d’utilisation de la mémoire pour les requêtes (`QueriesMemoryUsage` et `QueriesPeakMemoryUsage`). [#86669](https://github.com/ClickHouse/ClickHouse/pull/86669) ([Azat Khuzhin](https://github.com/azat)).
* Vous pouvez utiliser l’option `clickhouse-benchmark --precise` pour obtenir un rapport plus précis du QPS et des autres métriques par intervalle. Cela permet d’obtenir un QPS cohérent lorsque la durée des requêtes est comparable à l’intervalle de rapport `--delay D`. [#86684](https://github.com/ClickHouse/ClickHouse/pull/86684) ([Sergei Trifonov](https://github.com/serxa)).
* Les valeurs nice des threads Linux sont maintenant configurables afin d’attribuer à certains threads (merge/mutate, query, materialized view, zookeeper client) des priorités plus élevées ou plus faibles. [#86703](https://github.com/ClickHouse/ClickHouse/pull/86703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Correction de l’erreur trompeuse « specified upload does not exist », qui se produit lorsque l’exception d’origine est perdue lors d’un multipart upload à cause d’une condition de concurrence. [#86725](https://github.com/ClickHouse/ClickHouse/pull/86725) ([Julia Kartseva](https://github.com/jkartseva)).
* Limitation de la description du query plan dans la requête `EXPLAIN`. Ne calculez pas la description pour les requêtes autres que `EXPLAIN`. Ajout du paramètre `query_plan_max_step_description_length`. [#86741](https://github.com/ClickHouse/ClickHouse/pull/86741) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout de la possibilité d’ajuster les signaux en attente pour tenter de contourner `CANNOT&#95;CREATE&#95;TIMER` (pour les query profilers, `query_profiler_real_time_period_ns`/`query_profiler_cpu_time_period_ns`). Collecte également de `SigQ` depuis `/proc/self/status` à des fins d’introspection (si `ProcessSignalQueueSize` est proche de `ProcessSignalQueueLimit`, vous obtiendrez probablement des erreurs `CANNOT_CREATE_TIMER`). [#86760](https://github.com/ClickHouse/ClickHouse/pull/86760) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration des performances de la requête `RemoveRecursive` dans Keeper. [#86789](https://github.com/ClickHouse/ClickHouse/pull/86789) ([Antonio Andelic](https://github.com/antonio2368)).
* Suppression des espaces superflus dans `PrettyJSONEachRow` lors de la sortie du type JSON. [#86819](https://github.com/ClickHouse/ClickHouse/pull/86819) ([Pavel Kruglov](https://github.com/Avogar)).
* Désormais, nous écrivons les tailles des blobs pour `prefix.path` lorsqu’un répertoire est supprimé sur un disque réinscriptible simple. [#86908](https://github.com/ClickHouse/ClickHouse/pull/86908) ([alesapin](https://github.com/alesapin)).
* Prise en charge des tests de performance sur des instances ClickHouse distantes, y compris ClickHouse Cloud. Exemple d’utilisation : `tests/performance/scripts/perf.py tests/performance/math.xml --runs 10 --user <username> --password <password> --host <hostname> --port <port> --secure`. [#86995](https://github.com/ClickHouse/ClickHouse/pull/86995) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Prise en compte des limites mémoire à certains endroits connus pour allouer une quantité importante de mémoire (>16MiB) (tri, async inserts, file log). [#87035](https://github.com/ClickHouse/ClickHouse/pull/87035) ([Azat Khuzhin](https://github.com/azat)).
* Lever une exception si le paramètre `network_compression_method` n’est pas un codec générique pris en charge. [#87097](https://github.com/ClickHouse/ClickHouse/pull/87097) ([Robert Schulze](https://github.com/rschu1ze)).
* La system table `system.query_cache` renvoie désormais *toutes* les entrées du query result cache, alors qu’auparavant elle ne renvoyait que les entrées partagées ou les entrées non partagées du même utilisateur et du même rôle. Cela est acceptable, car les entrées non partagées sont censées ne pas révéler les *résultats de requête*, tandis que `system.query_cache` renvoie des *query strings*. Le comportement de la system table est ainsi plus proche de celui de `system.query_log`. [#87104](https://github.com/ClickHouse/ClickHouse/pull/87104) ([Robert Schulze](https://github.com/rschu1ze)).
* Activation de l’évaluation en court-circuit pour la fonction `parseDateTime`. [#87184](https://github.com/ClickHouse/ClickHouse/pull/87184) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout d’une nouvelle colonne `statistics` dans `system.parts_columns`. [#87259](https://github.com/ClickHouse/ClickHouse/pull/87259) ([Han Fei](https://github.com/hanfei1991)).

#### Correction de bogue

* Les résultats des requêtes ALTER ne sont validés que sur le nœud initiateur pour les bases de données Replicated et les tables répliquées en interne. Cela corrige les cas où une requête ALTER déjà validée pouvait rester bloquée sur d'autres nœuds. [#83849](https://github.com/ClickHouse/ClickHouse/pull/83849) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Limite le nombre de tâches de chaque type dans `BackgroundSchedulePool`. Évite les situations où tous les slots sont occupés par des tâches d'un seul type, tandis que les autres restent en attente. Évite également les interblocages lorsque des tâches s'attendent mutuellement. Cela est contrôlé par le paramètre serveur `background_schedule_pool_max_parallel_tasks_per_type_ratio`. [#84008](https://github.com/ClickHouse/ClickHouse/pull/84008) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Arrête correctement les tables lors de la récupération d'une réplique de base de données. Un arrêt incorrect pouvait entraîner `LOGICAL&#95;ERROR` pour certains moteurs de table pendant la récupération d'une réplique de base de données. [#84744](https://github.com/ClickHouse/ClickHouse/pull/84744) ([Antonio Andelic](https://github.com/antonio2368)).
* Vérifie les droits d'accès lors de la génération de suggestions de correction de fautes de frappe pour le nom de la base de données. [#85371](https://github.com/ClickHouse/ClickHouse/pull/85371) ([Dmitry Novik](https://github.com/novikd)).
* 1. LowCardinality pour les colonnes hive 2. Renseigner les colonnes hive avant les colonnes virtuelles (requis pour [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040)) 3. LOGICAL\_ERROR sur un format vide pour hive [#85528](https://github.com/ClickHouse/ClickHouse/issues/85528) 4. Corriger la vérification lorsque les colonnes de partition hive sont les seules colonnes 5. Vérifier que toutes les colonnes hive sont spécifiées dans le schéma 6. Correction partielle pour parallel\_replicas\_cluster avec hive 7. Utiliser un conteneur ordonné dans extractkeyValuePairs pour les utilitaires hive (requis pour [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040)). [#85538](https://github.com/ClickHouse/ClickHouse/pull/85538) ([Arthur Passos](https://github.com/arthurpassos)).
* Empêche l’optimisation inutile du premier argument des fonctions `IN`, qui entraînait parfois une erreur lors de l’utilisation d’un mappage de tableaux. [#85546](https://github.com/ClickHouse/ClickHouse/pull/85546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Le Mapping entre les identifiants des sources Iceberg et les noms Parquet n’était pas ajusté au schéma lors de l’écriture du fichier Parquet. Cette PR traite le schéma pertinent pour chaque fichier de données Iceberg, et non le schéma actuel. [#85829](https://github.com/ClickHouse/ClickHouse/pull/85829) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige la lecture de la taille d’un fichier séparément de son ouverture. Lié à [https://github.com/ClickHouse/ClickHouse/pull/33372](https://github.com/ClickHouse/ClickHouse/pull/33372), introduit en réponse à un bug dans les noyaux Linux antérieurs à la version `5.10`. [#85837](https://github.com/ClickHouse/ClickHouse/pull/85837) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* ClickHouse Keeper ne échoue plus au démarrage sur les systèmes où IPv6 est désactivé au niveau du noyau (par ex., RHEL avec ipv6.disable=1). Il tente désormais de se rabattre sur un écouteur IPv4 si l’écouteur IPv6 initial échoue. [#85901](https://github.com/ClickHouse/ClickHouse/pull/85901) ([jskong1124](https://github.com/jskong1124)).
* Cette PR clôt [#77990](https://github.com/ClickHouse/ClickHouse/issues/77990). Ajoute la prise en charge de TableFunctionRemote pour les parallel replicas dans globalJoin. [#85929](https://github.com/ClickHouse/ClickHouse/pull/85929) ([zoomxi](https://github.com/zoomxi)).
* Corrige un pointeur nul dans orcschemareader::initializeifneeded(). Cette PR corrige le problème suivant : [#85292](https://github.com/ClickHouse/ClickHouse/issues/85292) ### entrée de documentation pour les changements visibles par l’utilisateur. [#85951](https://github.com/ClickHouse/ClickHouse/pull/85951) ([yanglongwei](https://github.com/ylw510)).
* Ajoute une vérification pour n’autoriser les sous-requêtes corrélées dans la clause FROM que si elles utilisent des colonnes de la requête externe. Corrige [#85469](https://github.com/ClickHouse/ClickHouse/issues/85469). Corrige [#85402](https://github.com/ClickHouse/ClickHouse/issues/85402). [#85966](https://github.com/ClickHouse/ClickHouse/pull/85966) ([Dmitry Novik](https://github.com/novikd)).
* Corrige ALTER UPDATE d’une colonne avec une sous-colonne utilisée dans l’expression matérialisée d’une autre colonne. Auparavant, une colonne matérialisée avec une sous-colonne dans son expression n’était pas correctement mise à jour. [#85985](https://github.com/ClickHouse/ClickHouse/pull/85985) ([Pavel Kruglov](https://github.com/Avogar)).
* Interdit de modifier des colonnes dont les sous-colonnes sont utilisées dans la PK ou dans l’expression de partition. [#86005](https://github.com/ClickHouse/ClickHouse/pull/86005) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la lecture des sous-colonnes avec un mode de mappage de colonnes non par défaut dans le moteur de stockage DeltaLake. [#86064](https://github.com/ClickHouse/ClickHouse/pull/86064) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige l’utilisation de mauvaises valeurs par défaut pour un path avec un hint Enum dans JSON. [#86065](https://github.com/ClickHouse/ClickHouse/pull/86065) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige l’analyse de l’URL du catalog Hive de DataLake avec assainissement des entrées. Clôt [#86018](https://github.com/ClickHouse/ClickHouse/issues/86018). [#86092](https://github.com/ClickHouse/ClickHouse/pull/86092) ([rajat mohan](https://github.com/rajatmohan22)).
* Corrige une logical error lors du redimensionnement dynamique du filesystem cache. Clôt [#86122](https://github.com/ClickHouse/ClickHouse/issues/86122). Clôt [https://github.com/ClickHouse/clickhouse-core-incidents/issues/473](https://github.com/ClickHouse/clickhouse-core-incidents/issues/473). [#86130](https://github.com/ClickHouse/ClickHouse/pull/86130) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Utilise `NonZeroUInt64` pour `logs_to_keep` dans DatabaseReplicatedSettings. [#86142](https://github.com/ClickHouse/ClickHouse/pull/86142) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Une exception était levée par une requête `FINAL` avec un skip index si la table (par ex. `ReplacingMergeTree`) était créée avec le paramètre `index_granularity_bytes = 0`. Cette exception est désormais corrigée. [#86147](https://github.com/ClickHouse/ClickHouse/pull/86147) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Supprime des comportements indéfinis et corrige des problèmes d’analyse de l’expression de partition Iceberg. [#86166](https://github.com/ClickHouse/ClickHouse/pull/86166) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige un crash en cas de blocks const et non const dans un même INSERT. [#86230](https://github.com/ClickHouse/ClickHouse/pull/86230) ([Azat Khuzhin](https://github.com/azat)).
* Traite par défaut les inclusions de `/etc/metrika.xml` lors de la création de disques depuis SQL. [#86232](https://github.com/ClickHouse/ClickHouse/pull/86232) ([alekar](https://github.com/alekar)).
* Corrige accurateCastOrNull/accurateCastOrDefault de String vers JSON. [#86240](https://github.com/ClickHouse/ClickHouse/pull/86240) ([Pavel Kruglov](https://github.com/Avogar)).
* Prend en charge les répertoires sans '/' dans le moteur Iceberg. [#86249](https://github.com/ClickHouse/ClickHouse/pull/86249) ([scanhex12](https://github.com/scanhex12)).
* Corrige un crash avec replaceRegex, un haystack FixedString et un needle vide. [#86270](https://github.com/ClickHouse/ClickHouse/pull/86270) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un crash lors d’un ALTER UPDATE Nullable(JSON). [#86281](https://github.com/ClickHouse/ClickHouse/pull/86281) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige l’absence du definer de colonne dans system.tables. [#86295](https://github.com/ClickHouse/ClickHouse/pull/86295) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige le cast de LowCardinality(Nullable(T)) vers Dynamic. [#86365](https://github.com/ClickHouse/ClickHouse/pull/86365) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige une erreur logique lors des écritures vers DeltaLake. Ferme [#86175](https://github.com/ClickHouse/ClickHouse/issues/86175). [#86367](https://github.com/ClickHouse/ClickHouse/pull/86367) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige `416 The range specified is invalid for the current size of the resource. The range specified is invalid for the current size of the resource` lors de la lecture de blobs vides depuis Azure blob storage pour le disque plain\_rewritable. [#86400](https://github.com/ClickHouse/ClickHouse/pull/86400) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige GROUP BY Nullable(JSON). [#86410](https://github.com/ClickHouse/ClickHouse/pull/86410) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un bug dans les vues matérialisées : une MV pouvait ne pas fonctionner si elle avait été créée, supprimée, puis recréée avec le même nom. [#86413](https://github.com/ClickHouse/ClickHouse/pull/86413) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Échoue si toutes les répliques sont indisponibles lors de la lecture depuis les fonctions \*cluster. [#86414](https://github.com/ClickHouse/ClickHouse/pull/86414) ([Julian Maicher](https://github.com/jmaicher)).
* Corrige la fuite de `MergesMutationsMemoryTracking` due aux tables `Buffer` et corrige `query_views_log` pour le streaming depuis `Kafka` (et autres). [#86422](https://github.com/ClickHouse/ClickHouse/pull/86422) ([Azat Khuzhin](https://github.com/azat)).
* Corrige SHOW TABLES après la suppression de la table de référence du stockage alias. [#86433](https://github.com/ClickHouse/ClickHouse/pull/86433) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Corrige l’absence d’en-tête de fragment lorsque send\_chunk\_header est activé et qu’une UDF est invoquée via le protocole HTTP. [#86469](https://github.com/ClickHouse/ClickHouse/pull/86469) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige un interblocage possible lorsque les vidages du profil jemalloc sont activés. [#86473](https://github.com/ClickHouse/ClickHouse/pull/86473) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la lecture des sous-colonnes dans le moteur de table DeltaLake. Ferme [#86204](https://github.com/ClickHouse/ClickHouse/issues/86204). [#86477](https://github.com/ClickHouse/ClickHouse/pull/86477) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Gère correctement l’ID d’hôte loopback afin d’éviter les collisions lors du traitement des tâches DDL:. [#86479](https://github.com/ClickHouse/ClickHouse/pull/86479) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige detach/attach pour les tables du moteur de base de données Postgres avec des colonnes numériques/décimales. [#86480](https://github.com/ClickHouse/ClickHouse/pull/86480) ([Julian Maicher](https://github.com/jmaicher)).
* Corrige l’utilisation de mémoire non initialisée dans getSubcolumnType. [#86498](https://github.com/ClickHouse/ClickHouse/pull/86498) ([Raúl Marín](https://github.com/Algunenano)).
* Les fonctions `searchAny` et `searchAll`, lorsqu’elles sont appelées avec des needles vides, renvoient désormais `true` (c.-à-d. « correspond à tout »). Auparavant, elles renvoyaient `false`. (issue [#86300](https://github.com/ClickHouse/ClickHouse/issues/86300)). [#86500](https://github.com/ClickHouse/ClickHouse/pull/86500) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Corrige la fonction `timeSeriesResampleToGridWithStaleness()` lorsque le premier bucket n’a pas de valeur. [#86507](https://github.com/ClickHouse/ClickHouse/pull/86507) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige un crash provoqué par `merge_tree_min_read_task_size` défini à 0. [#86527](https://github.com/ClickHouse/ClickHouse/pull/86527) ([yanglongwei](https://github.com/ylw510)).
* Lors de la lecture, récupère le format de chaque fichier de données à partir des métadonnées Iceberg (auparavant, il était récupéré à partir des arguments de table). [#86529](https://github.com/ClickHouse/ClickHouse/pull/86529) ([Daniil Ivanik](https://github.com/divanik)).
* Ignore les exceptions lors du vidage du journal à l’arrêt et rend l’arrêt plus sûr (pour éviter un SIGSEGV). [#86546](https://github.com/ClickHouse/ClickHouse/pull/86546) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le moteur de base de données Backup qui levait une exception sur une requête avec des fichiers de part de taille nulle. [#86563](https://github.com/ClickHouse/ClickHouse/pull/86563) ([Max Justus Spransy](https://github.com/maxjustus)).
* Corrige l’absence d’en-tête de fragment lorsque send\_chunk\_header est activé et qu’une UDF est invoquée via le protocole HTTP. [#86606](https://github.com/ClickHouse/ClickHouse/pull/86606) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction de l’erreur logique S3Queue "Expected current processor {} to be equal to {}", due à l’expiration de la session Keeper. [#86615](https://github.com/ClickHouse/ClickHouse/pull/86615) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de bugs de nullabilité dans `insert` et le pruning. Cela clôt [#86407](https://github.com/ClickHouse/ClickHouse/issues/86407). [#86630](https://github.com/ClickHouse/ClickHouse/pull/86630) ([scanhex12](https://github.com/scanhex12)).
* Ne pas désactiver le cache du système de fichiers si le metadata cache d’Iceberg est désactivé. [#86635](https://github.com/ClickHouse/ClickHouse/pull/86635) ([Daniil Ivanik](https://github.com/divanik)).
* Correction de l’erreur 'Deadlock in Parquet::ReadManager (single-threaded)' dans le lecteur Parquet v3. [#86644](https://github.com/ClickHouse/ClickHouse/pull/86644) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction de la prise en charge d’IPv6 dans `listen_host` pour ArrowFlight. [#86664](https://github.com/ClickHouse/ClickHouse/pull/86664) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de l’arrêt du handler `ArrowFlight`. Cette PR corrige [#86596](https://github.com/ClickHouse/ClickHouse/issues/86596). [#86665](https://github.com/ClickHouse/ClickHouse/pull/86665) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction des distributed queries avec `describe_compact_output=1`. [#86676](https://github.com/ClickHouse/ClickHouse/pull/86676) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’analyse des définitions de window et de l’application des query parameters. [#86720](https://github.com/ClickHouse/ClickHouse/pull/86720) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’exception `Partition strategy wildcard can not be used without a '_partition_id' wildcard.` lors de la création d’une table avec `PARTITION BY`, mais sans caractère générique de partition, ce qui fonctionnait dans les versions antérieures à 25.8. Clôt [https://github.com/ClickHouse/clickhouse-private/issues/37567](https://github.com/ClickHouse/clickhouse-private/issues/37567). [#86748](https://github.com/ClickHouse/ClickHouse/pull/86748) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un LogicalError lorsque des queries parallèles tentaient d’acquérir un verrou unique. [#86751](https://github.com/ClickHouse/ClickHouse/pull/86751) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Correction de l’écriture de NULL dans les shared data JSON au format d’entrée RowBinary, et ajout de validations supplémentaires dans ColumnObject. [#86812](https://github.com/ClickHouse/ClickHouse/pull/86812) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’une permutation Tuple vide avec limite. [#86828](https://github.com/ClickHouse/ClickHouse/pull/86828) ([Pavel Kruglov](https://github.com/Avogar)).
* Ne pas utiliser de nœud Keeper distinct pour les processing nodes persistants. Correctif pour [https://github.com/ClickHouse/ClickHouse/pull/85995](https://github.com/ClickHouse/ClickHouse/pull/85995). Clôt [#86406](https://github.com/ClickHouse/ClickHouse/issues/86406). [#86841](https://github.com/ClickHouse/ClickHouse/pull/86841) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un problème où une table du moteur TimeSeries empêchait la création d’un nouveau replica dans une Replicated Database. [#86845](https://github.com/ClickHouse/ClickHouse/pull/86845) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de la query sur `system.distributed_ddl_queue` dans les cas où certaines tasks n’ont pas certains nœuds Keeper. [#86848](https://github.com/ClickHouse/ClickHouse/pull/86848) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction du seek à la fin du block décompressé. [#86906](https://github.com/ClickHouse/ClickHouse/pull/86906) ([Pavel Kruglov](https://github.com/Avogar)).
* Traitement de l’exception levée pendant l’exécution asynchrone de l’itérateur Iceberg. [#86932](https://github.com/ClickHouse/ClickHouse/pull/86932) ([Daniil Ivanik](https://github.com/divanik)).
* Correction de l’enregistrement de grosses configs XML prétraitées. [#86934](https://github.com/ClickHouse/ClickHouse/pull/86934) ([c-end](https://github.com/c-end)).
* Correction du remplissage du champ date dans la table system.iceberg\_metadata\_log. [#86961](https://github.com/ClickHouse/ClickHouse/pull/86961) ([Daniil Ivanik](https://github.com/divanik)).
* Correction du recalcul infini de `TTL` avec `WHERE`. [#86965](https://github.com/ClickHouse/ClickHouse/pull/86965) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un résultat potentiellement incorrect de la fonction `uniqExact` avec les modificateurs `ROLLUP` et `CUBE`. [#87014](https://github.com/ClickHouse/ClickHouse/pull/87014) ([Nikita Taranov](https://github.com/nickitat)).
* Correction de la résolution du schéma de la table avec la fonction de table `url()` lorsque le paramètre `parallel_replicas_for_cluster_functions` est défini sur 1. [#87029](https://github.com/ClickHouse/ClickHouse/pull/87029) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Conversion correcte de la sortie de PREWHERE après sa division en plusieurs étapes. [#87040](https://github.com/ClickHouse/ClickHouse/pull/87040) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction des mises à jour légères avec la clause `ON CLUSTER`. [#87043](https://github.com/ClickHouse/ClickHouse/pull/87043) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de la compatibilité de certains états de fonctions d’agrégation avec un argument String. [#87049](https://github.com/ClickHouse/ClickHouse/pull/87049) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un problème où le nom du modèle d’OpenAI n’était pas transmis. [#87100](https://github.com/ClickHouse/ClickHouse/pull/87100) ([Kaushik Iska](https://github.com/iskakaushik)).
* EmbeddedRocksDB : le chemin doit se trouver dans user\_files. [#87109](https://github.com/ClickHouse/ClickHouse/pull/87109) ([Raúl Marín](https://github.com/Algunenano)).
* Correction des tables KeeperMap créées avant la version 25.1, qui laissaient des données dans ZooKeeper après la requête DROP. [#87112](https://github.com/ClickHouse/ClickHouse/pull/87112) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de la lecture des identifiants de champ des maps et des arrays dans Parquet. [#87136](https://github.com/ClickHouse/ClickHouse/pull/87136) ([scanhex12](https://github.com/scanhex12)).
* Correction de la lecture d’un array avec la sous-colonne des tailles d’array lors de la matérialisation paresseuse. [#87139](https://github.com/ClickHouse/ClickHouse/pull/87139) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de la fonction CASE avec des arguments Dynamic. [#87177](https://github.com/ClickHouse/ClickHouse/pull/87177) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de la lecture d’un array vide à partir d’une chaîne vide en CSV. [#87182](https://github.com/ClickHouse/ClickHouse/pull/87182) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un résultat potentiellement erroné de `EXISTS` non corrélé. Le problème a été introduit avec `execute_exists_as_scalar_subquery=1` dans [https://github.com/ClickHouse/ClickHouse/pull/85481](https://github.com/ClickHouse/ClickHouse/pull/85481) et affecte `25.8`. Corrige [#86415](https://github.com/ClickHouse/ClickHouse/issues/86415). [#87207](https://github.com/ClickHouse/ClickHouse/pull/87207) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Génère une erreur si iceberg\_metadata\_log n’est pas configuré alors que l’utilisateur tente d’obtenir des informations de débogage sur les métadonnées Iceberg. Corrige un accès à nullptr. [#87250](https://github.com/ClickHouse/ClickHouse/pull/87250) ([Daniil Ivanik](https://github.com/divanik)).

#### Amélioration de la compilation/des tests/du packaging

* Correction de la compatibilité avec abseil-cpp 20250814.0, [https://github.com/abseil/abseil-cpp/issues/1923](https://github.com/abseil/abseil-cpp/issues/1923). [#85970](https://github.com/ClickHouse/ClickHouse/pull/85970) ([Yuriy Chernyshov](https://github.com/georgthegreat)).
* La compilation du lexer WASM standalone est désormais placée derrière un flag. [#86505](https://github.com/ClickHouse/ClickHouse/pull/86505) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction de la compilation de crc32c sur les anciens CPU ARM ne prenant pas en charge l’instruction `vmull_p64`. [#86521](https://github.com/ClickHouse/ClickHouse/pull/86521) ([Pablo Marcos](https://github.com/pamarcos)).
* Utilisation de `openldap` 2.6.10. [#86623](https://github.com/ClickHouse/ClickHouse/pull/86623) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ne plus tenter d’intercepter `memalign` sur darwin. [#86769](https://github.com/ClickHouse/ClickHouse/pull/86769) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utilisation de `krb5` 1.22.1-final. [#86836](https://github.com/ClickHouse/ClickHouse/pull/86836) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction de l’extraction des noms de crate Rust dans `list-licenses.sh`. [#87305](https://github.com/ClickHouse/ClickHouse/pull/87305) ([Konstantin Bogdanov](https://github.com/thevar1able)).

<div id="258">
  ### Version de ClickHouse 25.8 LTS, 2025-08-28
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Inférer `Array(Dynamic)` au lieu d’un `Tuple` non nommé pour les tableaux de valeurs de types différents en JSON. Pour utiliser le comportement précédent, désactivez le paramètre `input_format_json_infer_array_of_dynamic_from_array_of_different_types`. [#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar)).
* Utiliser des histogrammes pour les métriques de latence S3, pour plus d’homogénéité et de simplicité. [#82305](https://github.com/ClickHouse/ClickHouse/pull/82305) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Exiger des backticks autour des identifiants contenant des points dans les expressions par défaut afin d’éviter qu’ils soient analysés comme des identifiants composés. [#83162](https://github.com/ClickHouse/ClickHouse/pull/83162) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* La matérialisation paresseuse n’est activée qu’avec l’analyseur (par défaut), afin d’éviter de maintenir le fonctionnement sans analyseur, qui présente, d’après notre expérience, certains problèmes (par exemple lors de l’utilisation de `indexHint()` dans des conditions). [#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter)).
* Écrire par défaut les valeurs de type `Enum` en `BYTE_ARRAY` avec le type logique `ENUM` dans le format de sortie Parquet. [#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar)).
* Activer par défaut le paramètre MergeTree `write_marks_for_substreams_in_compact_parts`. Cela améliore significativement les performances de lecture des subcolumns à partir des nouvelles parties Compact. Les serveurs dont la version est inférieure à 25.5 ne pourront pas lire les nouvelles parties Compact. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)).
* La précédente valeur par défaut de `concurrent_threads_scheduler` était `round_robin`, ce qui s’est révélé inéquitable en présence d’un grand nombre de requêtes monothread (par ex. des INSERTs). Cette modification définit `fair_round_robin`, un ordonnanceur plus sûr, comme nouvelle valeur par défaut. [#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa)).
* ClickHouse prend en charge la syntaxe Heredoc de style PostgreSQL : `$tag$ string contents... $tag$`, également appelée littéraux de chaîne entre dollars. Dans les versions précédentes, les restrictions sur les tags étaient moins strictes : ils pouvaient contenir des caractères arbitraires, y compris de la ponctuation et des espaces. Cela introduit une ambiguïté d’analyse avec les identifiants qui peuvent eux aussi commencer par le caractère dollar. Or, PostgreSQL n’autorise que des caractères de mot dans les tags. Pour résoudre ce problème, nous limitons désormais les tags Heredoc aux seuls caractères de mot. Corrige [#84731](https://github.com/ClickHouse/ClickHouse/issues/84731). [#84846](https://github.com/ClickHouse/ClickHouse/pull/84846) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les fonctions `azureBlobStorage`, `deltaLakeAzure` et `icebergAzure` ont été mises à jour pour valider correctement les autorisations `AZURE`. Toutes les fonctions de variante cluster (fonctions `-Cluster`) vérifient désormais les autorisations par rapport à leurs équivalents hors cluster. De plus, les fonctions `icebergLocal` et `deltaLakeLocal` appliquent désormais des vérifications de l’autorisation `FILE`. [#84938](https://github.com/ClickHouse/ClickHouse/pull/84938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Activer par défaut le paramètre `allow_dynamic_metadata_for_data_lakes` (paramètre au niveau du moteur de table). [#85044](https://github.com/ClickHouse/ClickHouse/pull/85044) ([Daniil Ivanik](https://github.com/divanik)).
* Désactiver par défaut la mise entre guillemets des entiers 64 bits dans les formats JSON. [#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar))

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Une prise en charge basique du dialecte PromQL a été ajoutée. Pour l’utiliser, définissez `dialect='promql'` dans clickhouse-client, faites-le pointer vers la table TimeSeries à l’aide du paramètre `promql_table_name='X'` et exécutez des requêtes telles que `rate(ClickHouseProfileEvents_ReadCompressedBytes[1m])[5m:1m]`. Vous pouvez également encapsuler la requête PromQL dans du SQL : `SELECT * FROM prometheusQuery('up', ...);`. Pour l’instant, seules les fonctions `rate`, `delta` et `increase` sont prises en charge. Aucun opérateur unaire ou binaire. Pas d’API HTTP. [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036) ([Vitaly Baranov](https://github.com/vitlibar)).
* La génération de SQL par IA peut désormais déduire les variables d’environnement ANTHROPIC\_API\_KEY et OPENAI\_API\_KEY si elles sont disponibles, afin de proposer une option sans configuration pour utiliser cette fonctionnalité. [#83787](https://github.com/ClickHouse/ClickHouse/pull/83787) ([Kaushik Iska](https://github.com/iskakaushik)).
* Ajout de la prise en charge du protocole [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) avec : - une nouvelle table function `arrowflight`. [#74184](https://github.com/ClickHouse/ClickHouse/pull/74184) ([zakr600](https://github.com/zakr600)).
* Toutes les tables prennent désormais en charge la colonne virtuelle `_table` (et pas seulement les tables avec le moteur `Merge`), ce qui est particulièrement utile pour les requêtes avec UNION ALL. [#63665](https://github.com/ClickHouse/ClickHouse/pull/63665) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Permet d’utiliser n’importe quelle storage policy (c.-à-d. un object storage tel que S3) pour l’aggregation/le tri externes. [#84734](https://github.com/ClickHouse/ClickHouse/pull/84734) ([Azat Khuzhin](https://github.com/azat)).
* Implémentation de l’authentication AWS S3 avec un IAM role fourni explicitement. Implémentation d’OAuth pour GCS. Ces fonctionnalités n’étaient jusqu’à récemment disponibles que dans ClickHouse Cloud et sont désormais open-source. Synchronisation de certaines interfaces, comme la serialization des paramètres de connection pour les object storages. [#84011](https://github.com/ClickHouse/ClickHouse/pull/84011) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge des position delete files pour le TableEngine Iceberg. [#83094](https://github.com/ClickHouse/ClickHouse/pull/83094) ([Daniil Ivanik](https://github.com/divanik)).
* Prise en charge des Equality Deletes pour Iceberg. [#85843](https://github.com/ClickHouse/ClickHouse/pull/85843) ([Han Fei](https://github.com/hanfei1991)).
* Écriture Iceberg pour CREATE. Closes [#83927](https://github.com/ClickHouse/ClickHouse/issues/83927). [#83983](https://github.com/ClickHouse/ClickHouse/pull/83983) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Prise en charge des Glue catalogs en écriture. [#84136](https://github.com/ClickHouse/ClickHouse/pull/84136) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Prise en charge des REST catalogs Iceberg en écriture. [#84684](https://github.com/ClickHouse/ClickHouse/pull/84684) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Fusion de tous les position delete files Iceberg dans les data files. Cela réduira le nombre et la taille des fichiers Parquet dans le stockage Iceberg. Syntaxe : `OPTIMIZE TABLE table_name`. [#85250](https://github.com/ClickHouse/ClickHouse/pull/85250) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Prise en charge de `drop table` pour Iceberg (suppression des REST/Glue catalogs et des métadonnées de la table). [#85395](https://github.com/ClickHouse/ClickHouse/pull/85395) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Prise en charge des delete mutations ALTER pour Iceberg au format merge-on-read. [#85549](https://github.com/ClickHouse/ClickHouse/pull/85549) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Prise en charge de l’écriture dans DeltaLake. Clôt [#79603](https://github.com/ClickHouse/ClickHouse/issues/79603). [#85564](https://github.com/ClickHouse/ClickHouse/pull/85564) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout du paramètre `delta_lake_snapshot_version` pour permettre la lecture d’une version de snapshot spécifique dans le table engine `DeltaLake`. [#85295](https://github.com/ClickHouse/ClickHouse/pull/85295) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Écriture de davantage de statistiques Iceberg (tailles des colonnes, bornes inférieures et supérieures) dans les métadonnées (entrées du manifest) afin d’améliorer le pruning min-max. [#85746](https://github.com/ClickHouse/ClickHouse/pull/85746) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Prise en charge de l’ajout, de la suppression et de la modification de colonnes dans Iceberg pour les types simples. [#85769](https://github.com/ClickHouse/ClickHouse/pull/85769) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Iceberg : prise en charge de l’écriture du fichier version-hint. Cela clôt [#85097](https://github.com/ClickHouse/ClickHouse/issues/85097). [#85130](https://github.com/ClickHouse/ClickHouse/pull/85130) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Les vues créées par des utilisateurs éphémères stockeront désormais une copie d’un utilisateur réel et ne seront plus invalidées après la suppression de l’utilisateur éphémère. [#84763](https://github.com/ClickHouse/ClickHouse/pull/84763) ([pufit](https://github.com/pufit)).
* Le vector similarity index prend désormais en charge la quantization binaire. La quantization binaire réduit considérablement la consommation de mémoire et accélère la création d’un vector index (grâce à un calcul des distances plus rapide). De plus, le paramètre existant `vector_search_postfilter_multiplier `a été marqué comme Obsolete et remplacé par un paramètre plus général : `vector_search_index_fetch_multiplier`. [#85024](https://github.com/ClickHouse/ClickHouse/pull/85024) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Autorise les arguments key value dans le table engine/la fonction `s3` ou `s3Cluster`, par exemple `s3('url', CSV, structure = 'a Int32', compression_method = 'gzip')`. [#85134](https://github.com/ClickHouse/ClickHouse/pull/85134) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Nouvelle system table pour conserver les messages entrants erronés provenant de moteurs tels que Kafka ("dead letter queue"). [#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn)).
* Nouvelle commande SYSTEM RESTORE DATABASE REPLICA pour les Replicated databases, similaire à la fonctionnalité de restauration existante dans ReplicatedMergeTree. [#73100](https://github.com/ClickHouse/ClickHouse/pull/73100) ([Konstantin Morozov](https://github.com/k-morozov)).
* Le protocol PostgreSQL prend désormais en charge la commande `COPY`. [#74344](https://github.com/ClickHouse/ClickHouse/pull/74344) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Prise en charge du client C# pour le protocol MySQL. Cela clôt [#83992](https://github.com/ClickHouse/ClickHouse/issues/83992). [#84397](https://github.com/ClickHouse/ClickHouse/pull/84397) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Ajout de la prise en charge des lectures et écritures avec le style de partition Hive. [#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout de la system table `zookeeper_connection_log` pour stocker l’historique des connexions ZooKeeper. [#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Le paramètre serveur `cpu_slot_preemption` active l'ordonnancement CPU préemptif pour les workloads et garantit une allocation max-min équitable du temps CPU entre les workloads. De nouveaux paramètres de workload pour le throttling CPU ont été ajoutés : `max_cpus`, `max_cpu_share` et `max_burst_cpu_seconds`. Plus de détails : [https://clickhouse.com/docs/operations/workload-scheduling#cpu\&#95;scheduling](https://clickhouse.com/docs/operations/workload-scheduling#cpu\&#95;scheduling). [#80879](https://github.com/ClickHouse/ClickHouse/pull/80879) ([Sergei Trifonov](https://github.com/serxa)).
* Fermeture de la connexion TCP après un nombre configuré de requêtes ou un seuil de temps donné. Cela permet une répartition plus uniforme des connexions entre les nœuds du cluster derrière un équilibreur de charge. Résout [#68000](https://github.com/ClickHouse/ClickHouse/issues/68000). [#81472](https://github.com/ClickHouse/ClickHouse/pull/81472) ([Kenny Sun](https://github.com/hwabis)).
* Les répliques parallèles prennent désormais en charge l'utilisation des projections pour les requêtes. [#82659](https://github.com/ClickHouse/ClickHouse/issues/82659). [#82807](https://github.com/ClickHouse/ClickHouse/pull/82807) ([zoomxi](https://github.com/zoomxi)).
* Prise en charge de DESCRIBE SELECT en plus de DESCRIBE (SELECT ...). [#82947](https://github.com/ClickHouse/ClickHouse/pull/82947) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Connexion sécurisée obligatoire pour mysql\_port et postgresql\_port. [#82962](https://github.com/ClickHouse/ClickHouse/pull/82962) ([tiandiwonder](https://github.com/tiandiwonder)).
* Vous pouvez désormais effectuer des recherches de clés JSON insensibles à la casse avec `JSONExtractCaseInsensitive` (et d'autres variantes de `JSONExtract`). [#83770](https://github.com/ClickHouse/ClickHouse/pull/83770) ([Alistair Evans](https://github.com/alistairjevans)).
* Introduction de la table `system.completions`. Clôt [#81889](https://github.com/ClickHouse/ClickHouse/issues/81889). [#83833](https://github.com/ClickHouse/ClickHouse/pull/83833) ([|2ustam](https://github.com/RuS2m)).
* Ajout d'une nouvelle fonction `nowInBlock64`. Exemple d'utilisation : `SELECT nowInBlock64(6)` renvoie `2025-07-29 17:09:37.775725`. [#84178](https://github.com/ClickHouse/ClickHouse/pull/84178) ([Halersson Paris](https://github.com/halersson)).
* Ajout de extra\_credentials à AzureBlobStorage pour l'authentification avec client\_id et tenant\_id. [#84235](https://github.com/ClickHouse/ClickHouse/pull/84235) ([Pablo Marcos](https://github.com/pamarcos)).
* Ajout de la fonction `dateTimeToUUIDv7` pour convertir une valeur DateTime en UUIDv7. Exemple d'utilisation : `SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` renvoie `0198af18-8320-7a7d-abd3-358db23b9d5c`. [#84319](https://github.com/ClickHouse/ClickHouse/pull/84319) ([samradovich](https://github.com/samradovich)).
* Fonctions d'agrégation `timeSeriesDerivToGrid` et `timeSeriesPredictLinearToGrid` pour rééchantillonner les données sur une grille temporelle définie par le timestamp de début, le timestamp de fin et le step spécifiés ; elles calculent respectivement `deriv` et `predict_linear`, avec une sémantique de type PromQL. [#84328](https://github.com/ClickHouse/ClickHouse/pull/84328) ([Stephen Chi](https://github.com/stephchi0)).
* Ajout de deux nouvelles fonctions TimeSeries : - `timeSeriesRange(start_timestamp, end_timestamp, step)`, - `timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)`,. [#85435](https://github.com/ClickHouse/ClickHouse/pull/85435) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout d'une nouvelle syntaxe : `GRANT READ ON S3('s3://foo/.*') TO user`. [#84503](https://github.com/ClickHouse/ClickHouse/pull/84503) ([pufit](https://github.com/pufit)).
* Ajout du format de sortie `Hash`. Il calcule une valeur de hachage unique pour toutes les colonnes et lignes du résultat. Cela est utile pour calculer une « empreinte » du résultat, par exemple dans les cas où le transfert de données constitue un goulot d’étranglement. Exemple : `SELECT arrayJoin(['abc', 'def']), 42 FORMAT Hash` renvoie `e5f9e676db098fdb9530d2059d8c23ef`. [#84607](https://github.com/ClickHouse/ClickHouse/pull/84607) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la possibilité de définir des watches arbitraires dans les requêtes Keeper Multi. [#84964](https://github.com/ClickHouse/ClickHouse/pull/84964) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Ajout d’une option `--max-concurrency` pour l’outil `clickhouse-benchmark`, qui active un mode avec augmentation progressive du nombre de requêtes parallèles. [#85623](https://github.com/ClickHouse/ClickHouse/pull/85623) ([Sergei Trifonov](https://github.com/serxa)).
* Prise en charge des métriques partiellement agrégées. [#85328](https://github.com/ClickHouse/ClickHouse/pull/85328) ([Mikhail Artemenko](https://github.com/Michicosun)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* La prise en charge des sous-requêtes corrélées est désormais activée par défaut ; elle n'est plus expérimentale. [#85107](https://github.com/ClickHouse/ClickHouse/pull/85107) ([Dmitry Novik](https://github.com/novikd)).
* Les catalogues de data lake Unity, Glue, Rest et Hive Metastore passent du statut expérimental au statut bêta. [#85848](https://github.com/ClickHouse/ClickHouse/pull/85848) ([Melvyn Peignon](https://github.com/melvynator)).
* Les lightweight updates et les suppressions passent du statut expérimental au statut bêta.
* La recherche vectorielle approximative avec des index de similarité vectorielle est désormais GA. [#85888](https://github.com/ClickHouse/ClickHouse/pull/85888) ([Robert Schulze](https://github.com/rschu1ze)).
* YTsaurus table engine et fonction de table. [#77606](https://github.com/ClickHouse/ClickHouse/pull/77606) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Auparavant, les données de l'index textuel étaient réparties en plusieurs segments (la taille par défaut de chaque segment était de 256 MiB). Cela pouvait réduire la consommation de mémoire lors de la création de l'index textuel, mais augmentait l'espace requis sur le disque ainsi que le temps de réponse des requêtes. [#84590](https://github.com/ClickHouse/ClickHouse/pull/84590) ([Elmi Ahmadov](https://github.com/ahmadov)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Nouvelle implémentation du lecteur Parquet. Elle est globalement plus rapide et prend en charge le pushdown des filtres au niveau des pages ainsi que PREWHERE. Actuellement expérimentale. Utilisez le paramètre `input_format_parquet_use_native_reader_v3` pour l’activer. [#82789](https://github.com/ClickHouse/ClickHouse/pull/82789) ([Michael Kolupaev](https://github.com/al13n321)).
* Remplace le transport HTTP officiel de la bibliothèque Azure par notre propre implémentation de client HTTP pour Azure Blob Storage. Ajoute plusieurs paramètres pour ce client, calqués sur ceux de S3. Introduit des délais d’expiration de connexion agressifs pour Azure et S3. Améliore l’introspection des profile events et des métriques Azure. Le nouveau client est activé par défaut et offre des latences nettement meilleures pour les requêtes à froid sur Azure Blob Storage. Il est possible de revenir à l’ancien client `Curl` en définissant `azure_sdk_use_native_client=false`. [#83294](https://github.com/ClickHouse/ClickHouse/pull/83294) ([alesapin](https://github.com/alesapin)). L’ancienne implémentation officielle du client Azure n’était pas adaptée à la production en raison de pics de latence désastreux, allant de cinq secondes à plusieurs minutes. Nous avons abandonné cette implémentation désastreuse et en sommes très fiers.
* Traite les index par taille de fichier croissante. L’ordre des index donne priorité aux index minmax et vectoriels (pour leur simplicité et leur sélectivité, respectivement), puis aux petits index. Au sein des index minmax/vectoriels, les plus petits index sont également privilégiés. [#84094](https://github.com/ClickHouse/ClickHouse/pull/84094) ([Maruth Goyal](https://github.com/maruthgoyal)).
* Active par défaut le paramètre MergeTree `write_marks_for_substreams_in_compact_parts`. Cela améliore significativement les performances de lecture des sous-colonnes à partir de parties Compact nouvellement créées. Les serveurs dont la version est inférieure à 25.5 ne pourront pas lire les nouvelles parties Compact. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)).
* Moteur de table `azureBlobStorage` : met en cache et réutilise les jetons d’authentication d’identité managée lorsque c’est possible afin d’éviter le throttling. [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak)).
* Les JOIN `ALL` `LEFT/INNER` seront automatiquement convertis en `RightAny` si le côté droit est fonctionnellement déterminé par les colonnes de clé de jointure (toutes les lignes ont des valeurs de clé de jointure uniques). [#84010](https://github.com/ClickHouse/ClickHouse/pull/84010) ([Nikita Taranov](https://github.com/nickitat)).
* Ajoute `max_joined_block_size_bytes`, en complément de `max_joined_block_size_rows`, pour limiter l’utilisation mémoire des JOIN avec des colonnes volumineuses. [#83869](https://github.com/ClickHouse/ClickHouse/pull/83869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajoute une nouvelle logique (contrôlée par le paramètre `enable_producing_buckets_out_of_order_in_aggregation`, activé par défaut) qui permet d’envoyer certains buckets dans le désordre lors d’une agrégation économe en mémoire. Lorsque certains buckets d’agrégation prennent significativement plus de temps à fusionner que d’autres, cela améliore les performances en permettant à l’initiateur de fusionner entre-temps des buckets ayant des identifiants plus élevés. L’inconvénient est une utilisation mémoire potentiellement plus élevée (sans que cela doive être significatif). [#80179](https://github.com/ClickHouse/ClickHouse/pull/80179) ([Nikita Taranov](https://github.com/nickitat)).
* Introduit le paramètre `optimize_rewrite_regexp_functions` (activé par défaut), qui permet à l’optimiseur de réécrire certains appels à `replaceRegexpAll`, `replaceRegexpOne` et `extract` en formes plus simples et plus efficaces lorsque des motifs d’expression régulière spécifiques sont détectés. (issue [#81981](https://github.com/ClickHouse/ClickHouse/issues/81981)). [#81992](https://github.com/ClickHouse/ClickHouse/pull/81992) ([Amos Bird](https://github.com/amosbird)).
* Traite `max_joined_block_rows` en dehors de la boucle principale du hash JOIN. Améliore légèrement les performances pour ALL JOIN. [#83216](https://github.com/ClickHouse/ClickHouse/pull/83216) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Traite d’abord les index min-max de granularité plus élevée. Closes [#75381](https://github.com/ClickHouse/ClickHouse/issues/75381). [#83798](https://github.com/ClickHouse/ClickHouse/pull/83798) ([Maruth Goyal](https://github.com/maruthgoyal)).
* Faire en sorte que les agrégats de fenêtre `DISTINCT` s’exécutent en temps linéaire et corriger un bug dans `sumDistinct`. Closes [#79792](https://github.com/ClickHouse/ClickHouse/issues/79792). Closes [#52253](https://github.com/ClickHouse/ClickHouse/issues/52253). [#79859](https://github.com/ClickHouse/ClickHouse/pull/79859) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Les requêtes de recherche vectorielle utilisant un index de similarité vectorielle s’exécutent avec une latence plus faible grâce à la réduction des lectures du stockage et de l’utilisation du CPU. [#83803](https://github.com/ClickHouse/ClickHouse/pull/83803) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Hachage de rendez-vous afin d’améliorer la localité du cache dans la répartition de la charge de travail entre les répliques parallèles. [#82511](https://github.com/ClickHouse/ClickHouse/pull/82511) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Implémentation de addManyDefaults pour les combinateurs If, de sorte que les fonctions d’agrégation avec des combinateurs If fonctionnent désormais plus rapidement. [#83870](https://github.com/ClickHouse/ClickHouse/pull/83870) ([Raúl Marín](https://github.com/Algunenano)).
* Calcul de la clé sérialisée en mode colonnaire lors d’un GROUP BY sur plusieurs colonnes de type chaîne ou numérique. [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) ([李扬](https://github.com/taiyang-li)).
* Élimination des balayages complets dans les cas où l’index analysis produit des plages vides pour la lecture par des répliques parallèles. [#84971](https://github.com/ClickHouse/ClickHouse/pull/84971) ([Eduard Karacharov](https://github.com/korowa)).
* Essai de `-falign-functions=64` afin d’obtenir des tests de performance plus stables. [#83920](https://github.com/ClickHouse/ClickHouse/pull/83920) ([Azat Khuzhin](https://github.com/azat)).
* L’index bloom filter est désormais utilisé pour des conditions comme `has([c1, c2, ...], column)`, où `column` n’est pas de type `Array`. Cela améliore les performances de ce type de requêtes, qui deviennent aussi efficaces que l’opérateur `IN`. [#83945](https://github.com/ClickHouse/ClickHouse/pull/83945) ([Doron David](https://github.com/dorki)).
* Réduction des appels à memcpy inutiles dans CompressedReadBufferBase::readCompressedData. [#83986](https://github.com/ClickHouse/ClickHouse/pull/83986) ([Raúl Marín](https://github.com/Algunenano)).
* Optimisation de `largestTriangleThreeBuckets` par suppression des données temporaires. [#84479](https://github.com/ClickHouse/ClickHouse/pull/84479) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimisation de la désérialisation des chaînes en simplifiant le code. Closes [#38564](https://github.com/ClickHouse/ClickHouse/issues/38564). [#84561](https://github.com/ClickHouse/ClickHouse/pull/84561) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du calcul de la taille minimale des tâches pour les répliques parallèles. [#84752](https://github.com/ClickHouse/ClickHouse/pull/84752) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration des performances de l’application des patch parts en mode `Join`. [#85040](https://github.com/ClickHouse/ClickHouse/pull/85040) ([Anton Popov](https://github.com/CurtizJ)).
* Suppression de l’octet nul. Clôt [#85062](https://github.com/ClickHouse/ClickHouse/issues/85062). Quelques bugs mineurs ont été corrigés. Les fonctions `structureToProtobufSchema` et `structureToCapnProtoSchema` n’ajoutaient pas correctement d’octet nul terminal et utilisaient à la place un retour à la ligne. Cela entraînait l’absence de retour à la ligne dans la sortie et pouvait provoquer des dépassements de tampon lors de l’utilisation d’autres fonctions dépendant de l’octet nul (comme `logTrace`, `demangle`, `extractURLParameter`, `toStringCutToZero` et `encrypt`/`decrypt`). Le layout de dictionnaire `regexp_tree` ne prenait pas en charge le traitement de chaînes contenant des octets nuls. La fonction `formatRowNoNewline`, appelée avec le format `Values` ou tout autre format sans retour à la ligne en fin de ligne, supprimait par erreur le dernier caractère de la sortie. La fonction `stem` contenait un défaut de sûreté vis-à-vis des exceptions pouvant entraîner une fuite mémoire dans un cas très rare. La fonction `initcap` se comportait incorrectement avec des arguments `FixedString` : elle ne reconnaissait pas le début d’un mot au début de la chaîne si la chaîne précédente dans un bloc se terminait par un caractère de mot. Correction d’une vulnérabilité de sécurité dans le format Apache `ORC`, qui pouvait entraîner l’exposition de mémoire non initialisée. Le comportement de la fonction `replaceRegexpAll` et de l’alias correspondant `REGEXP_REPLACE` a été modifié : ils peuvent désormais effectuer une correspondance vide à la fin de la chaîne, même si la correspondance précédente a traité toute la chaîne, comme dans le cas de `^a*|a*$` ou `^|.*` — cela correspond à la sémantique de JavaScript, Perl, Python, PHP et Ruby, mais diffère de celle de PostgreSQL. L’implémentation de nombreuses fonctions a été simplifiée et optimisée. La documentation de plusieurs fonctions était incorrecte et a désormais été corrigée. Gardez à l’esprit que la sortie de `byteSize` pour les colonnes String et les types complexes composés de colonnes String a changé (de 9 octets par chaîne vide à 8 octets par chaîne vide), et c’est normal. [#85063](https://github.com/ClickHouse/ClickHouse/pull/85063) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimisation de la matérialisation des constantes lorsqu’elle n’est effectuée que pour renvoyer une seule ligne. [#85071](https://github.com/ClickHouse/ClickHouse/pull/85071) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration du traitement parallèle des fichiers avec le backend delta-kernel-rs. [#85642](https://github.com/ClickHouse/ClickHouse/pull/85642) ([Azat Khuzhin](https://github.com/azat)).
* Un nouveau paramètre, enable\_add\_distinct\_to\_in\_subqueries, a été introduit. Lorsqu’il est activé, ClickHouse ajoute automatiquement DISTINCT aux sous-requêtes dans les clauses IN pour les requêtes distribuées. Cela peut réduire significativement la taille des tables temporaires transférées entre les shards et améliorer l’efficacité du réseau. Remarque : il s’agit d’un compromis — si le volume de transfert réseau diminue, un travail supplémentaire de fusion (déduplication) est nécessaire sur chaque nœud. Activez ce paramètre lorsque le transfert réseau constitue un goulot d’étranglement et que le coût de fusion reste acceptable. [#81908](https://github.com/ClickHouse/ClickHouse/pull/81908) ([fhw12345](https://github.com/fhw12345)).
* Réduction du surcoût du suivi mémoire des requêtes pour les fonctions définies par l’utilisateur exécutables. [#83929](https://github.com/ClickHouse/ClickHouse/pull/83929) ([Eduard Karacharov](https://github.com/korowa)).
* Implémentation du filtrage interne de `delta-kernel-rs` (statistiques et élagage des partitions) dans le moteur de stockage `DeltaLake`. [#84006](https://github.com/ClickHouse/ClickHouse/pull/84006) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactivation plus granulaire des index de saut de données qui dépendent de colonnes mises à jour à la volée ou par des patch parts. Désormais, ces index ne sont désactivés que dans les parts affectées par des on-the-fly mutations ou des patch parts ; auparavant, ils l’étaient pour toutes les parts. [#84241](https://github.com/ClickHouse/ClickHouse/pull/84241) ([Anton Popov](https://github.com/CurtizJ)).
* Allocation de la quantité minimale de mémoire nécessaire pour `encrypted_buffer` dans les named collections chiffrées. [#84432](https://github.com/ClickHouse/ClickHouse/pull/84432) ([Pablo Marcos](https://github.com/pamarcos)).
* Améliore la prise en charge des index Bloom filter (regular, ngram et token) afin qu'ils puissent être utilisés lorsque le premier argument est un tableau constant (l'ensemble) et le second la colonne indexée (le sous-ensemble), ce qui permet une exécution plus efficace des requêtes. [#84700](https://github.com/ClickHouse/ClickHouse/pull/84700) ([Doron David](https://github.com/dorki)).
* Réduit la contention sur le verrou de stockage dans Keeper. [#84732](https://github.com/ClickHouse/ClickHouse/pull/84732) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajoute la prise en charge manquante de `read_in_order_use_virtual_row` pour `WHERE`. Cela permet d'éviter de lire davantage de parts pour les requêtes avec des filtres qui n'ont pas été entièrement poussés vers `PREWHERE`. [#84835](https://github.com/ClickHouse/ClickHouse/pull/84835) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Permet d'itérer de manière asynchrone sur les objets d'une table Iceberg sans stocker explicitement les objets de chaque fichier de données. [#85369](https://github.com/ClickHouse/ClickHouse/pull/85369) ([Daniil Ivanik](https://github.com/divanik)).
* Exécute `EXISTS` non corrélé comme une sous-requête scalaire. Cela permet d'utiliser un cache de sous-requêtes scalaires et de préévaluer le résultat comme une constante, ce qui est utile pour les index. Pour des raisons de compatibilité, le nouveau paramètre `execute_exists_as_scalar_subquery=1` est ajouté. [#85481](https://github.com/ClickHouse/ClickHouse/pull/85481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

<div id="improvement">
  #### Amélioration
</div>

* Ajout de paramètres `database_replicated` définissant les valeurs par défaut de DatabaseReplicatedSettings. Si le paramètre n’est pas présent dans la requête CREATE de la base de données Replicated, la valeur de ce paramètre est utilisée. [#85127](https://github.com/ClickHouse/ClickHouse/pull/85127) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Les colonnes des tables dans l’interface web (play) peuvent désormais être redimensionnées. [#84012](https://github.com/ClickHouse/ClickHouse/pull/84012) ([Doron David](https://github.com/dorki)).
* Prise en charge du fichier `.metadata.json` compressé via le paramètre `iceberg_metadata_compression_method`. Il prend en charge toutes les méthodes de compression de ClickHouse. Cela corrige [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895). [#85196](https://github.com/ClickHouse/ClickHouse/pull/85196) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Affiche le nombre de plages à lire dans la sortie de `EXPLAIN indexes = 1`. [#79938](https://github.com/ClickHouse/ClickHouse/pull/79938) ([Christoph Wurm](https://github.com/cwurm)).
* Introduction de paramètres permettant de définir la taille des blocs de compression ORC, avec mise à jour de la valeur par défaut de 64KB à 256KB pour rester cohérent avec Spark et Hive. [#80602](https://github.com/ClickHouse/ClickHouse/pull/80602) ([李扬](https://github.com/taiyang-li)).
* Ajout du fichier `columns_substreams.txt` à Wide part pour suivre tous les sous-flux stockés dans la part. Cela permet de suivre les flux dynamiques dans les types JSON et Dynamic, et évite ainsi de lire un échantillon de ces colonnes pour obtenir la liste des flux dynamiques (par exemple pour calculer la taille des colonnes). De plus, tous les flux dynamiques sont désormais reflétés dans `system.parts_columns`. [#81091](https://github.com/ClickHouse/ClickHouse/pull/81091) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout d’un indicateur CLI --show\_secrets à clickhouse format pour masquer les données sensibles par défaut. [#81524](https://github.com/ClickHouse/ClickHouse/pull/81524) ([Nikolai Ryzhov](https://github.com/Dolaxom)).
* Les requêtes de lecture et d’écriture S3 sont limitées au niveau du socket HTTP (au lieu du niveau de la requête S3 entière) afin d’éviter les problèmes liés au throttling de `max_remote_read_network_bandwidth_for_server` et `max_remote_write_network_bandwidth_for_server`. [#81837](https://github.com/ClickHouse/ClickHouse/pull/81837) ([Sergei Trifonov](https://github.com/serxa)).
* Autorise l’utilisation de différentes collations pour une même colonne dans différentes fenêtres (pour les window functions). [#82877](https://github.com/ClickHouse/ClickHouse/pull/82877) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout d’un outil pour simuler, visualiser et comparer les merge selectors. [#71496](https://github.com/ClickHouse/ClickHouse/pull/71496) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout de la prise en charge des table functions `remote*` avec les répliques parallèles si le cluster est fourni dans l’argument `address_expression`. Corrige également [#73295](https://github.com/ClickHouse/ClickHouse/issues/73295). [#82904](https://github.com/ClickHouse/ClickHouse/pull/82904) ([Igor Nikonov](https://github.com/devcrafter)).
* Définit tous les log messages d’écriture des fichiers de sauvegarde au niveau TRACE. [#82907](https://github.com/ClickHouse/ClickHouse/pull/82907) ([Hans Krutzer](https://github.com/hkrutzer)).
* Les user-defined functions avec des noms inhabituels, ainsi que les codecs, peuvent être formatés de manière incohérente par le formateur SQL. Cela corrige [#83092](https://github.com/ClickHouse/ClickHouse/issues/83092). [#83644](https://github.com/ClickHouse/ClickHouse/pull/83644) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Vous pouvez désormais utiliser les types Time et Time64 dans le type JSON. [#83784](https://github.com/ClickHouse/ClickHouse/pull/83784) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Les jointures avec des répliques parallèles utilisent désormais l’étape logique de jointure. En cas de problème avec des requêtes de jointure utilisant des répliques parallèles, essayez `SET query_plan_use_new_logical_join_step=0` et signalez le problème. [#83801](https://github.com/ClickHouse/ClickHouse/pull/83801) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction de la compatibilité pour cluster\_function\_process\_archive\_on\_multiple\_nodes. [#83968](https://github.com/ClickHouse/ClickHouse/pull/83968) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge de la modification des paramètres d’insert des vues matérialisées au niveau de la table `S3Queue`. Ajout de nouveaux paramètres au niveau de `S3Queue` : `min_insert_block_size_rows_for_materialized_views` et `min_insert_block_size_bytes_for_materialized_views`. Par défaut, les paramètres définis au niveau du profil seront utilisés, et ceux définis au niveau de `S3Queue` les remplaceront. [#83971](https://github.com/ClickHouse/ClickHouse/pull/83971) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de l’événement de profil `MutationAffectedRowsUpperBound`, qui affiche le nombre de lignes affectées par une mutation (par exemple, le nombre total de lignes qui satisfont la condition dans une requête `ALTER UPDATE` ou `ALTER DELETE`. [#83978](https://github.com/ClickHouse/ClickHouse/pull/83978) ([Anton Popov](https://github.com/CurtizJ)).
* Utilisation des informations des cgroups (le cas échéant, c.-à-d. si `memory_worker_use_cgroup` est activé et que les cgroups sont disponibles) pour ajuster le memory tracker (`memory_worker_correct_memory_tracker`). [#83981](https://github.com/ClickHouse/ClickHouse/pull/83981) ([Azat Khuzhin](https://github.com/azat)).
* MongoDB : parsing implicite des chaînes en types numériques. Auparavant, si une valeur sous forme de chaîne était reçue depuis une source MongoDB pour une colonne numérique d’une table ClickHouse, une exception était levée. Désormais, le moteur tente d’analyser automatiquement la valeur numérique à partir de la chaîne. Clôt [#81167](https://github.com/ClickHouse/ClickHouse/issues/81167). [#84069](https://github.com/ClickHouse/ClickHouse/pull/84069) ([Kirill Nikiforov](https://github.com/allmazz)).
* Mise en évidence des groupes de chiffres dans les formats `Pretty` pour les nombres `Nullable`. [#84070](https://github.com/ClickHouse/ClickHouse/pull/84070) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Tableau de bord : l’infobulle ne débordera plus du conteneur vers le haut. [#84072](https://github.com/ClickHouse/ClickHouse/pull/84072) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Points légèrement plus esthétiques sur le tableau de bord. [#84074](https://github.com/ClickHouse/ClickHouse/pull/84074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le tableau de bord a désormais un favicon légèrement amélioré. [#84076](https://github.com/ClickHouse/ClickHouse/pull/84076) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web : permet aux navigateurs d’enregistrer le mot de passe. Elle mémorisera également les valeurs de l’URL. [#84087](https://github.com/ClickHouse/ClickHouse/pull/84087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la prise en charge de l’application d’ACL supplémentaires à des nœuds Keeper spécifiques à l’aide de la config `apply_to_children`. [#84137](https://github.com/ClickHouse/ClickHouse/pull/84137) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de l’utilisation de la sérialisation des discriminateurs `Variant` "compact" dans MergeTree. Auparavant, elle n’était pas utilisée dans certains cas où elle aurait pu l’être. [#84141](https://github.com/ClickHouse/ClickHouse/pull/84141) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout d’un server setting, `logs_to_keep`, aux paramètres des bases de données répliquées, afin de permettre la modification du paramètre `logs_to_keep` par défaut pour les bases de données répliquées. Des valeurs plus faibles réduisent le nombre de ZNodes (en particulier s’il y a beaucoup de bases de données), tandis que des valeurs plus élevées permettent à une réplique manquante de rattraper son retard après une période plus longue. [#84183](https://github.com/ClickHouse/ClickHouse/pull/84183) ([Alexey Khatskevich](https://github.com/Khatskevich)).
* Ajout du paramètre `json_type_escape_dots_in_keys` pour échapper les points dans les clés JSON lors de l’analyse du type JSON. Ce paramètre est désactivé par défaut. [#84207](https://github.com/ClickHouse/ClickHouse/pull/84207) ([Pavel Kruglov](https://github.com/Avogar)).
* Vérifie si la connexion a été annulée avant de vérifier l’EOF afin d’éviter de lire depuis une connexion fermée. Corrige [#83893](https://github.com/ClickHouse/ClickHouse/issues/83893). [#84227](https://github.com/ClickHouse/ClickHouse/pull/84227) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Couleurs légèrement améliorées pour la sélection de texte dans la web UI. La différence n’est significative que pour les cellules de tableau sélectionnées en mode sombre. Dans les versions précédentes, le contraste entre le texte et l’arrière-plan de sélection n’était pas suffisant. [#84258](https://github.com/ClickHouse/ClickHouse/pull/84258) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration de la gestion de l’arrêt du server pour les connexions client grâce à une simplification des vérifications internes. [#84312](https://github.com/ClickHouse/ClickHouse/pull/84312) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Ajout du paramètre `delta_lake_enable_expression_visitor_logging` pour désactiver les journaux du visiteur d’expression, car ils peuvent être trop verbeux, même avec le niveau de journalisation de test, lors du debugging. [#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les métriques au niveau des cgroups et les métriques system-wide sont désormais toutes remontées ensemble. Les métriques au niveau des cgroups portent les noms `CGroup<Metric>` et les métriques au niveau de l’OS (collectées depuis procfs) portent les noms `OS<Metric>`. [#84317](https://github.com/ClickHouse/ClickHouse/pull/84317) ([Nikita Taranov](https://github.com/nickitat)).
* Graphiques légèrement améliorés dans la web UI. Pas de beaucoup, mais quand même mieux. [#84326](https://github.com/ClickHouse/ClickHouse/pull/84326) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La valeur par défaut du paramètre `max_retries_before_automatic_recovery` de la base de données Replicated passe à 10, afin d’accélérer la recovery dans certains cas. [#84369](https://github.com/ClickHouse/ClickHouse/pull/84369) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction du formatting de CREATE USER avec des query parameters (c.-à-d. `CREATE USER {username:Identifier} IDENTIFIED WITH no_password`). [#84376](https://github.com/ClickHouse/ClickHouse/pull/84376) ([Azat Khuzhin](https://github.com/azat)).
* Introduction de `backup_restore_s3_retry_initial_backoff_ms`, `backup_restore_s3_retry_max_backoff_ms`, `backup_restore_s3_retry_jitter_factor` pour configurer la stratégie de backoff des retries S3 utilisée pendant les restore operations et les sauvegardes. [#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction du mode ordered de S3Queue : arrêt plus tôt si l’arrêt a été déclenché. [#84463](https://github.com/ClickHouse/ClickHouse/pull/84463) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge des écritures Iceberg pour permettre la lecture depuis pyiceberg. [#84466](https://github.com/ClickHouse/ClickHouse/pull/84466) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Autorise le transtypage des valeurs de Set lors du pushdown des filtres `IN` / `GLOBAL IN` sur les primary keys du stockage KeyValue (par ex. EmbeddedRocksDB, KeeperMap). [#84515](https://github.com/ClickHouse/ClickHouse/pull/84515) ([Eduard Karacharov](https://github.com/korowa)).
* Mise à niveau de chdig vers la version [25.7.1](https://github.com/azat/chdig/releases/tag/v25.7.1). [#84521](https://github.com/ClickHouse/ClickHouse/pull/84521) ([Azat Khuzhin](https://github.com/azat)).
* Les erreurs de bas niveau pendant l’exécution des UDF renvoient désormais le code d’erreur `UDF_EXECUTION_FAILED`, alors qu’auparavant différents codes d’erreur pouvaient être renvoyés. [#84547](https://github.com/ClickHouse/ClickHouse/pull/84547) ([Xu Jia](https://github.com/XuJia0210)).
* Ajout de la commande `get_acl` à KeeperClient. [#84641](https://github.com/ClickHouse/ClickHouse/pull/84641) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajoute la version de snapshot aux table engines de lac de données. [#84659](https://github.com/ClickHouse/ClickHouse/pull/84659) ([Pete Hampton](https://github.com/pjhampton)).
* Ajout d'une métrique dimensionnelle pour la taille de `ConcurrentBoundedQueue`, étiquetée par type de file d'attente (c.-à-d. l'usage de la file) et par identifiant de file d'attente (c.-à-d. l'identifiant généré aléatoirement pour l'instance actuelle de la file). [#84675](https://github.com/ClickHouse/ClickHouse/pull/84675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* La table `system.columns` fournit désormais `column` comme alias de la colonne `name` existante. [#84695](https://github.com/ClickHouse/ClickHouse/pull/84695) ([Yunchi Pang](https://github.com/yunchipang)).
* Nouveau paramètre MergeTree `search_orphaned_parts_drives` pour limiter le périmètre de recherche des parts, par exemple aux disques disposant de métadonnées locales. [#84710](https://github.com/ClickHouse/ClickHouse/pull/84710) ([Ilya Golshtein](https://github.com/ilejn)).
* Ajout dans Keeper de 4LW, `lgrq`, pour activer ou désactiver la journalisation des requêtes reçues. [#84719](https://github.com/ClickHouse/ClickHouse/pull/84719) ([Antonio Andelic](https://github.com/antonio2368)).
* Correspondance des `forward_headers` d'authentification externe désormais effectuée de manière insensible à la casse. [#84737](https://github.com/ClickHouse/ClickHouse/pull/84737) ([ingodwerust](https://github.com/ingodwerust)).
* L'outil `encrypt_decrypt` prend désormais en charge les connexions ZooKeeper chiffrées. [#84764](https://github.com/ClickHouse/ClickHouse/pull/84764) ([Roman Vasin](https://github.com/rvasin)).
* Ajout d'une colonne de chaîne de format à `system.errors`. Cette colonne est nécessaire pour regrouper les erreurs du même type dans les règles d'alerte. [#84776](https://github.com/ClickHouse/ClickHouse/pull/84776) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Mise à jour de `clickhouse-format` pour accepter `--highlight` comme alias de `--hilite`. - Mise à jour de `clickhouse-client` pour accepter `--hilite` comme alias de `--highlight`. - Mise à jour de la documentation de `clickhouse-format` pour refléter ce changement. [#84806](https://github.com/ClickHouse/ClickHouse/pull/84806) ([Rishabh Bhardwaj](https://github.com/rishabh1815769)).
* Correction de la lecture d'Iceberg par identifiants de champ pour les types complexes. [#84821](https://github.com/ClickHouse/ClickHouse/pull/84821) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Introduction d'un nouveau paramètre `backup_slow_all_threads_after_retryable_s3_error` pour réduire la pression sur S3 lors de vagues de nouvelles tentatives provoquées par des erreurs telles que `SlowDown`, en ralentissant tous les threads dès qu'une seule erreur réessayable est détectée. [#84854](https://github.com/ClickHouse/ClickHouse/pull/84854) ([Julia Kartseva](https://github.com/jkartseva)).
* Ignorer la création et le renommage de l'ancienne table temporaire pour les DDL RMV non append dans les bases de données Replicated. [#84858](https://github.com/ClickHouse/ClickHouse/pull/84858) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Limiter la taille du cache des entrées de journal de Keeper par nombre d'entrées à l'aide de `keeper_server.coordination_settings.latest_logs_cache_entry_count_threshold` et `keeper_server.coordination_settings.commit_logs_cache_entry_count_threshold`. [#84877](https://github.com/ClickHouse/ClickHouse/pull/84877) ([Antonio Andelic](https://github.com/antonio2368)).
* Autoriser l'utilisation de `simdjson` sur des architectures non prises en charge (cela provoquait auparavant des erreurs `CANNOT_ALLOCATE_MEMORY`). [#84966](https://github.com/ClickHouse/ClickHouse/pull/84966) ([Azat Khuzhin](https://github.com/azat)).
* Journalisation asynchrone : rendre les limites configurables et ajouter de l'introspection. [#85105](https://github.com/ClickHouse/ClickHouse/pull/85105) ([Raúl Marín](https://github.com/Algunenano)).
* Regrouper tous les objets supprimés pour exécuter une seule opération de suppression dans le stockage d’objets. [#85316](https://github.com/ClickHouse/ClickHouse/pull/85316) ([Mikhail Artemenko](https://github.com/Michicosun)).
* L’implémentation actuelle d’Iceberg pour les fichiers de suppression positionnelle conserve toutes les données en RAM. Cela peut être assez coûteux si les fichiers de suppression positionnelle sont volumineux, ce qui est souvent le cas. Cette implémentation ne conserve en RAM que le dernier groupe de lignes des fichiers de suppression Parquet, ce qui réduit nettement le coût. [#85329](https://github.com/ClickHouse/ClickHouse/pull/85329) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* chdig : correction des artefacts à l’écran, correction d’un crash après modification d’une requête dans l’éditeur, recherche de `editor` dans `path`, mise à jour vers [25.8.1](https://github.com/azat/chdig/releases/tag/v25.8.1). [#85341](https://github.com/ClickHouse/ClickHouse/pull/85341) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de `partition_columns_in_data_file`, qui manquait à la configuration Azure. [#85373](https://github.com/ClickHouse/ClickHouse/pull/85373) ([Arthur Passos](https://github.com/arthurpassos)).
* Autoriser un pas nul dans les fonctions `timeSeries*ToGrid`. Cela fait partie de [#75036](https://github.com/ClickHouse/ClickHouse/pull/75036). [#85390](https://github.com/ClickHouse/ClickHouse/pull/85390) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de l’indicateur show\_data\_lake\_catalogs\_in\_system\_tables pour gérer l’ajout de tables de data lake dans system.tables. Résout [#85384](https://github.com/ClickHouse/ClickHouse/issues/85384). [#85411](https://github.com/ClickHouse/ClickHouse/pull/85411) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Ajout de la prise en charge de l’expansion des macros dans `remote_fs_zero_copy_zookeeper_path`. [#85437](https://github.com/ClickHouse/ClickHouse/pull/85437) ([Mikhail Koviazin](https://github.com/mkmkme)).
* L’IA dans clickhouse-client sera légèrement mieux présentée. [#85447](https://github.com/ClickHouse/ClickHouse/pull/85447) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Activation par défaut de trace\_log.symbolize pour les anciens déploiements. [#85456](https://github.com/ClickHouse/ClickHouse/pull/85456) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge d’un plus grand nombre de cas de résolution pour les identifiants composés. En particulier, cela améliore la compatibilité de `ARRAY JOIN` avec l’ancien analyseur. Introduction d’un nouveau paramètre `analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested` pour conserver l’ancien comportement. [#85492](https://github.com/ClickHouse/ClickHouse/pull/85492) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ignorer UNKNOWN\_DATABASE lors de la récupération de la taille des colonnes des tables pour system.columns. [#85632](https://github.com/ClickHouse/ClickHouse/pull/85632) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’une limite (paramètre de table `max_uncompressed_bytes_in_patches`) pour le volume total d’octets non compressés dans les patch parts. Cela évite des ralentissements importants des requêtes SELECT après des mises à jour légères et empêche d’éventuels usages abusifs de cette fonctionnalité. [#85641](https://github.com/ClickHouse/ClickHouse/pull/85641) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout d’une colonne `parameter` à `system.grants` pour déterminer le type de source pour `GRANT READ/WRITE` et le moteur de table pour `GRANT TABLE ENGINE`. [#85643](https://github.com/ClickHouse/ClickHouse/pull/85643) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Correction de l’analyse syntaxique d’une virgule finale dans les colonnes de la requête CREATE DICTIONARY après une colonne avec paramètres, par exemple Decimal(8). Ferme [#85586](https://github.com/ClickHouse/ClickHouse/issues/85586). [#85653](https://github.com/ClickHouse/ClickHouse/pull/85653) ([Nikolay Degterinsky](https://github.com/evillique)).
* Prise en charge des tableaux imbriqués internes pour la fonction `nested`. [#85719](https://github.com/ClickHouse/ClickHouse/pull/85719) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Toutes les allocations effectuées par des bibliothèques externes sont désormais visibles pour le memory tracker de ClickHouse et correctement prises en compte. Cela peut se traduire par une utilisation mémoire « accrue » signalée pour certaines requêtes ou par des échecs avec `MEMORY_LIMIT_EXCEEDED`. [#84082](https://github.com/ClickHouse/ClickHouse/pull/84082) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

#### Correction de bogue (comportement anormal visible par l’utilisateur dans une version stable officielle)

* Cette PR corrige la résolution des métadonnées lors de l’interrogation de tables Iceberg via le REST catalog. ... [#80562](https://github.com/ClickHouse/ClickHouse/pull/80562) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)).
* Corrige `markReplicasActive` dans `DDLWorker` et `DatabaseReplicatedDDLWorker`. [#81395](https://github.com/ClickHouse/ClickHouse/pull/81395) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige le rollback d’une Dynamic column en cas d’échec du parsing. [#82169](https://github.com/ClickHouse/ClickHouse/pull/82169) ([Pavel Kruglov](https://github.com/Avogar)).
* Si la fonction `trim` est appelée avec des entrées toutes constantes, elle produit désormais une chaîne de sortie constante. (Bug [#78796](https://github.com/ClickHouse/ClickHouse/issues/78796)). [#82900](https://github.com/ClickHouse/ClickHouse/pull/82900) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige une logical error liée à des subqueries dupliquées lorsque `optimize_syntax_fuse_functions` est enabled, corrige [#75511](https://github.com/ClickHouse/ClickHouse/issues/75511). [#83300](https://github.com/ClickHouse/ClickHouse/pull/83300) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige le résultat incorrect de queries avec la clause `WHERE ... IN (<subquery>)` lorsque le query condition cache est activé (paramètre `use_query_condition_cache`). [#83445](https://github.com/ClickHouse/ClickHouse/pull/83445) ([LB7666](https://github.com/acking-you)).
* Historiquement, la fonction `gcs` ne nécessitait aucun accès pour être utilisée. Désormais, elle vérifiera la permission `GRANT READ ON S3` pour son utilisation. Corrige [#70567](https://github.com/ClickHouse/ClickHouse/issues/70567). [#83503](https://github.com/ClickHouse/ClickHouse/pull/83503) ([pufit](https://github.com/pufit)).
* Ignore les nœuds indisponibles pendant un INSERT SELECT de s3Cluster() vers un MergeTree replicated. [#83676](https://github.com/ClickHouse/ClickHouse/pull/83676) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige l’écriture avec append (dans MergeTree utilisé pour les transactions Experimental) avec les metadata types `plain_rewritable`/`plain`, qui étaient auparavant simplement ignorés. [#83695](https://github.com/ClickHouse/ClickHouse/pull/83695) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Masque les détails d’authentication de l’Avro schema registry afin qu’ils ne soient pas visibles par l’utilisateur ni dans les logs. [#83713](https://github.com/ClickHouse/ClickHouse/pull/83713) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige le problème où, si une MergeTree table est créée avec `add_minmax_index_for_numeric_columns=1` ou `add_minmax_index_for_string_columns=1`, l’index est ensuite materialized lors d’une opération ALTER, ce qui empêche la Replicated database de s’initialiser correctement sur une nouvelle réplique. [#83751](https://github.com/ClickHouse/ClickHouse/pull/83751) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige la sortie du writer Parquet qui produisait des statistiques incorrectes (min/max) pour les Decimal types. [#83754](https://github.com/ClickHouse/ClickHouse/pull/83754) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige le tri des valeurs NaN dans le type `LowCardinality(Float32|Float64|BFloat16)`. [#83786](https://github.com/ClickHouse/ClickHouse/pull/83786) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Lors d’une restauration depuis une sauvegarde, il est possible que l’utilisateur definer ne soit pas sauvegardé, ce qui rend l’ensemble de la sauvegarde inutilisable. Pour corriger cela, nous reportons la vérification des permissions lors de la création de la target table pendant le restore et ne l’effectuons qu’au runtime. [#83818](https://github.com/ClickHouse/ClickHouse/pull/83818) ([pufit](https://github.com/pufit)).
* Corrige un crash du client dû à une connection laissée dans un état déconnecté après un INSERT invalide. [#83842](https://github.com/ClickHouse/ClickHouse/pull/83842) ([Azat Khuzhin](https://github.com/azat)).
* Permet de référencer n'importe quelle table dans l'argument `view(...)` de la fonction de table `remote` lorsque l'analyseur est activé. Corrige [#78717](https://github.com/ClickHouse/ClickHouse/issues/78717). Corrige [#79377](https://github.com/ClickHouse/ClickHouse/issues/79377). [#83844](https://github.com/ClickHouse/ClickHouse/pull/83844) ([Dmitry Novik](https://github.com/novikd)).
* L'appel à Onprogress dans jsoneachrowwithprogress est synchronisé avec la finalisation. [#83879](https://github.com/ClickHouse/ClickHouse/pull/83879) ([Sema Checherinda](https://github.com/CheSema)).
* Clôt [#81303](https://github.com/ClickHouse/ClickHouse/issues/81303). [#83892](https://github.com/ClickHouse/ClickHouse/pull/83892) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige colorSRGBToOKLCH/colorOKLCHToSRGB pour les combinaisons d'arguments const et non const. [#83906](https://github.com/ClickHouse/ClickHouse/pull/83906) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l'écriture des chemins JSON avec des valeurs NULL au format RowBinary. [#83923](https://github.com/ClickHouse/ClickHouse/pull/83923) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige le dépassement de capacité sur les grandes valeurs (>2106-02-07) lors du transtypage de Date vers DateTime64. [#83982](https://github.com/ClickHouse/ClickHouse/pull/83982) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Applique toujours `filesystem_prefetches_limit` (et pas seulement depuis `MergeTreePrefetchedReadPool`). [#83999](https://github.com/ClickHouse/ClickHouse/pull/83999) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug rare où la requête `MATERIALIZE COLUMN` pouvait entraîner la présence de fichiers inattendus dans `checksums.txt` et, à terme, de parties de données détachées. [#84007](https://github.com/ClickHouse/ClickHouse/pull/84007) ([alesapin](https://github.com/alesapin)).
* Corrige l'erreur logique `Expected single dictionary argument for function` lors d'un JOIN sur une condition d'inégalité lorsque l'une des colonnes est `LowCardinality` et l'autre une constante. Clôt [#81779](https://github.com/ClickHouse/ClickHouse/issues/81779). [#84019](https://github.com/ClickHouse/ClickHouse/pull/84019) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un crash de `clickhouse client` lorsqu'il est utilisé en mode interactif avec la coloration syntaxique. [#84025](https://github.com/ClickHouse/ClickHouse/pull/84025) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige des résultats erronés lorsque le cache des conditions de requête est utilisé conjointement avec des CTE récursives (problème [#81506](https://github.com/ClickHouse/ClickHouse/issues/81506)). [#84026](https://github.com/ClickHouse/ClickHouse/pull/84026) ([zhongyuankai](https://github.com/zhongyuankai)).
* Gère correctement les exceptions lors du rafraîchissement périodique des parties de données. [#84083](https://github.com/ClickHouse/ClickHouse/pull/84083) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la fusion du filtre dans la condition JOIN lorsque les opérandes d'égalité ont des types différents ou référencent des constantes. Corrige [#83432](https://github.com/ClickHouse/ClickHouse/issues/83432). [#84145](https://github.com/ClickHouse/ClickHouse/pull/84145) ([Dmitry Novik](https://github.com/novikd)).
* Corrige un crash rare de ClickHouse lorsque la table a une projection, que `lightweight_mutation_projection_mode = 'rebuild'` est défini et que l'utilisateur exécute une suppression légère qui supprime TOUTES les lignes d'un bloc quelconque de la table. [#84158](https://github.com/ClickHouse/ClickHouse/pull/84158) ([alesapin](https://github.com/alesapin)).
* Corrige un interblocage causé par le thread de vérification des annulations en arrière-plan. [#84203](https://github.com/ClickHouse/ClickHouse/pull/84203) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l’analyse récursive infinie des définitions `WINDOW` invalides. Corrige [#83131](https://github.com/ClickHouse/ClickHouse/issues/83131). [#84242](https://github.com/ClickHouse/ClickHouse/pull/84242) ([Dmitry Novik](https://github.com/novikd)).
* Correction d’un bogue provoquant un encodage et un décodage Bech32 incorrects. Le bogue n’a pas été détecté initialement, car l’implémentation en ligne de l’algorithme utilisée pour les tests présentait le même problème. [#84257](https://github.com/ClickHouse/ClickHouse/pull/84257) ([George Larionov](https://github.com/george-larionov)).
* Correction d’une construction incorrecte de tuples vides dans la fonction `array()`. Cela corrige [#84202](https://github.com/ClickHouse/ClickHouse/issues/84202). [#84297](https://github.com/ClickHouse/ClickHouse/pull/84297) ([Amos Bird](https://github.com/amosbird)).
* Corrige `LOGICAL_ERROR` pour les requêtes avec des répliques parallèles et plusieurs INNER JOIN suivis d’un RIGHT join. N’utilisez pas de répliques parallèles pour ce type de requêtes. [#84299](https://github.com/ClickHouse/ClickHouse/pull/84299) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Auparavant, les index `set` ne prenaient pas en compte les colonnes `Nullable` pour vérifier si les granules passaient le filtre (problème [#75485](https://github.com/ClickHouse/ClickHouse/issues/75485)). [#84305](https://github.com/ClickHouse/ClickHouse/pull/84305) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Désormais, ClickHouse lit les tables depuis Glue Catalog lorsque le type de table est spécifié en minuscules. [#84316](https://github.com/ClickHouse/ClickHouse/pull/84316) ([alesapin](https://github.com/alesapin)).
* N’essayez pas de remplacer les table functions par leur alternative sur cluster en présence d’un JOIN ou d’une sous-requête. [#84335](https://github.com/ClickHouse/ClickHouse/pull/84335) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige l’utilisation du logger dans `IAccessStorage`. [#84365](https://github.com/ClickHouse/ClickHouse/pull/84365) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction d’une erreur logique dans les lightweight updates qui mettent à jour toutes les colonnes de la table. [#84380](https://github.com/ClickHouse/ClickHouse/pull/84380) ([Anton Popov](https://github.com/CurtizJ)).
* Le codec `DoubleDelta` ne peut désormais être appliqué qu’à des colonnes de type numérique. En particulier, les colonnes `FixedString` ne peuvent plus être compressées avec `DoubleDelta`. (corrige [#80220](https://github.com/ClickHouse/ClickHouse/issues/80220)). [#84383](https://github.com/ClickHouse/ClickHouse/pull/84383) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* La comparaison avec la valeur `nan` n’utilisait pas les bonnes plages lors de l’évaluation de l’index `MinMax`. [#84386](https://github.com/ClickHouse/ClickHouse/pull/84386) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Corrige la lecture d’une Variant column avec matérialisation paresseuse. [#84400](https://github.com/ClickHouse/ClickHouse/pull/84400) ([Pavel Kruglov](https://github.com/Avogar)).
* Traite `zoutofmemory` comme une erreur matérielle, faute de quoi une erreur logique sera levée. Voir [https://github.com/clickhouse/clickhouse-core-incidents/issues/877](https://github.com/clickhouse/clickhouse-core-incidents/issues/877). [#84420](https://github.com/ClickHouse/ClickHouse/pull/84420) ([Han Fei](https://github.com/hanfei1991)).
* Correction d’un crash du serveur lorsqu’un utilisateur créé avec `no_password` tente de se connecter après que le server setting `allow_no_password` a été changé à 0. [#84426](https://github.com/ClickHouse/ClickHouse/pull/84426) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Corrige les écritures hors ordre dans le changelog de Keeper. Auparavant, il pouvait y avoir des écritures en cours dans le changelog, mais un rollback pouvait provoquer une modification concurrente du fichier de destination. Cela entraînait des logs incohérents, avec un risque de perte de données. [#84434](https://github.com/ClickHouse/ClickHouse/pull/84434) ([Antonio Andelic](https://github.com/antonio2368)).
* Désormais, si tous les TTL sont supprimés d'une table, MergeTree n'effectuera plus aucune opération liée aux TTL. [#84441](https://github.com/ClickHouse/ClickHouse/pull/84441) ([alesapin](https://github.com/alesapin)).
* Un INSERT SELECT distribué en parallèle avec LIMIT était autorisé, ce qui n'est pas correct, car cela entraîne une duplication des données dans la table cible. [#84477](https://github.com/ClickHouse/ClickHouse/pull/84477) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction du pruning des fichiers via une colonne virtuelle dans les data lakes. [#84520](https://github.com/ClickHouse/ClickHouse/pull/84520) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de fuites dans Keeper avec le stockage RocksDB (les itérateurs n'étaient pas détruits). [#84523](https://github.com/ClickHouse/ClickHouse/pull/84523) ([Azat Khuzhin](https://github.com/azat)).
* Correction de ALTER MODIFY ORDER BY, qui ne validait pas les colonnes TTL dans les clés de tri. Les colonnes TTL sont désormais correctement rejetées lorsqu'elles sont utilisées dans des clauses ORDER BY lors d'opérations ALTER, évitant ainsi une corruption potentielle de la table. [#84536](https://github.com/ClickHouse/ClickHouse/pull/84536) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* La valeur de `allow_experimental_delta_kernel_rs` d'avant la version 25.5 a été ramenée à `false` pour des raisons de compatibilité. [#84587](https://github.com/ClickHouse/ClickHouse/pull/84587) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ne récupère plus le schéma à partir des fichiers manifest, mais stocke les schémas pertinents séparément pour chaque snapshot. Déduit le schéma pertinent de chaque fichier de données à partir du snapshot correspondant. Le comportement précédent ne respectait pas la spécification Iceberg pour les entrées des fichiers manifest avec un statut existant. [#84588](https://github.com/ClickHouse/ClickHouse/pull/84588) ([Daniil Ivanik](https://github.com/divanik)).
* Correction d'un problème où le paramètre Keeper `rotate_log_storage_interval = 0` pouvait provoquer un crash de ClickHouse. (issue [#83975](https://github.com/ClickHouse/ClickHouse/issues/83975)). [#84637](https://github.com/ClickHouse/ClickHouse/pull/84637) ([George Larionov](https://github.com/george-larionov)).
* Correction de l'erreur logique S3Queue "Table is already registered". Clôt [#84433](https://github.com/ClickHouse/ClickHouse/issues/84433). Régression introduite après [https://github.com/ClickHouse/ClickHouse/pull/83530](https://github.com/ClickHouse/ClickHouse/pull/83530). [#84677](https://github.com/ClickHouse/ClickHouse/pull/84677) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Verrouille 'mutex' lors de la récupération de ZooKeeper depuis 'view' dans RefreshTask. [#84699](https://github.com/ClickHouse/ClickHouse/pull/84699) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Correction de l'erreur `CORRUPTED_DATA` lorsque des colonnes lazy sont utilisées avec un tri externe. [#84738](https://github.com/ClickHouse/ClickHouse/pull/84738) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction du Column pruning avec delta-kernel dans le stockage `DeltaLake`. Clôt [#84543](https://github.com/ClickHouse/ClickHouse/issues/84543). [#84745](https://github.com/ClickHouse/ClickHouse/pull/84745) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Actualisation des credentials dans delta-kernel pour le stockage DeltaLake. [#84751](https://github.com/ClickHouse/ClickHouse/pull/84751) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction du lancement de backups internes superflus après des problèmes de connexion. [#84755](https://github.com/ClickHouse/ClickHouse/pull/84755) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d'un problème où l'interrogation d'une source distante lente pouvait entraîner un dépassement des limites du vecteur. [#84820](https://github.com/ClickHouse/ClickHouse/pull/84820) ([George Larionov](https://github.com/george-larionov)).
* Les tokenizers `ngram` et `no_op` ne font plus planter l'index de texte (experimental) lorsque les tokens d'entrée sont vides. [#84849](https://github.com/ClickHouse/ClickHouse/pull/84849) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction des lightweight updates pour les tables utilisant les moteurs `ReplacingMergeTree` et `CollapsingMergeTree`. [#84851](https://github.com/ClickHouse/ClickHouse/pull/84851) ([Anton Popov](https://github.com/CurtizJ)).
* Stockage correct de tous les paramètres dans les métadonnées de la table pour les tables utilisant le moteur object queue. [#84860](https://github.com/ClickHouse/ClickHouse/pull/84860) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction du nombre total de watches renvoyé par Keeper. [#84890](https://github.com/ClickHouse/ClickHouse/pull/84890) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction des lightweight updates pour les tables utilisant le moteur `ReplicatedMergeTree` et créées sur des serveurs avec une version antérieure à 25.7. [#84933](https://github.com/ClickHouse/ClickHouse/pull/84933) ([Anton Popov](https://github.com/CurtizJ)).
* Correction des lightweight updates pour les tables utilisant le moteur `MergeTree` non répliqué après l'exécution d'une requête `ALTER TABLE ... REPLACE PARTITION`. [#84941](https://github.com/ClickHouse/ClickHouse/pull/84941) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de la génération des noms de colonnes pour les littéraux booléens afin d'utiliser "true"/"false" au lieu de "1"/"0", ce qui évite les conflits de noms de colonnes entre littéraux booléens et entiers dans les requêtes. [#84945](https://github.com/ClickHouse/ClickHouse/pull/84945) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Correction d'une dérive du suivi mémoire provenant du background schedule pool et de l'executor. [#84946](https://github.com/ClickHouse/ClickHouse/pull/84946) ([Azat Khuzhin](https://github.com/azat)).
* Correction de possibles problèmes de tri imprécis dans le moteur de table Merge. [#85025](https://github.com/ClickHouse/ClickHouse/pull/85025) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Implémentation des API manquantes pour DiskEncrypted. [#85028](https://github.com/ClickHouse/ClickHouse/pull/85028) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d'une vérification lorsqu'une sous-requête corrélée est utilisée dans un contexte distribué afin d'éviter un crash. Corrige [#82205](https://github.com/ClickHouse/ClickHouse/issues/82205). [#85030](https://github.com/ClickHouse/ClickHouse/pull/85030) ([Dmitry Novik](https://github.com/novikd)).
* Désormais, Iceberg n'essaie plus de mettre en cache la snapshot version pertinente entre les requêtes select et tente toujours de résoudre le snapshot de manière fiable. La précédente tentative de mise en cache d'un snapshot Iceberg entraînait des problèmes lors de l'utilisation d'une table Iceberg avec le time travel. [#85038](https://github.com/ClickHouse/ClickHouse/pull/85038) ([Daniil Ivanik](https://github.com/divanik)).
* Correction d'une double libération dans `AzureIteratorAsync`. [#85064](https://github.com/ClickHouse/ClickHouse/pull/85064) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration du message d'erreur lors d'une tentative de création d'un utilisateur identifié avec JWT. [#85072](https://github.com/ClickHouse/ClickHouse/pull/85072) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction du nettoyage des patch parts dans `ReplicatedMergeTree`. Auparavant, le résultat d'une lightweight update pouvait temporairement ne pas être visible sur la replica jusqu'à ce que la part fusionnée ou mutée qui matérialise les patch parts soit téléchargée depuis une autre replica. [#85121](https://github.com/ClickHouse/ClickHouse/pull/85121) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de illegal\_type\_of\_argument dans mv lorsque les types sont différents. [#85135](https://github.com/ClickHouse/ClickHouse/pull/85135) ([Sema Checherinda](https://github.com/CheSema)).
* Correction d'un segfault dans l'implémentation delta-kernel. [#85160](https://github.com/ClickHouse/ClickHouse/pull/85160) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la récupération des bases de données répliquées lorsque le déplacement du fichier de métadonnées prend beaucoup de temps. [#85177](https://github.com/ClickHouse/ClickHouse/pull/85177) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige `Not-ready Set` pour `IN (subquery)` dans le paramètre `additional_table_filters expression`. [#85210](https://github.com/ClickHouse/ClickHouse/pull/85210) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Supprime les appels inutiles à `getStatus()` lors des requêtes SYSTEM DROP REPLICA. Corrige le cas où une table est supprimée en arrière-plan et où l'exception `Shutdown for storage is called` est levée. [#85220](https://github.com/ClickHouse/ClickHouse/pull/85220) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige une condition de concurrence dans l'implémentation delta-kernel du moteur `DeltaLake`. [#85221](https://github.com/ClickHouse/ClickHouse/pull/85221) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige la lecture des données partitionnées lorsque delta-kernel est désactivé dans le moteur `DeltaLake`. Cela ne fonctionnait plus en 25.7 ([https://github.com/ClickHouse/ClickHouse/pull/81136](https://github.com/ClickHouse/ClickHouse/pull/81136)). [#85223](https://github.com/ClickHouse/ClickHouse/pull/85223) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout des vérifications manquantes de la longueur des noms de table dans les requêtes CREATE OR REPLACE et RENAME. [#85326](https://github.com/ClickHouse/ClickHouse/pull/85326) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige la création de RMV sur une nouvelle réplique de la base de données Replicated si DEFINER a été supprimé. [#85327](https://github.com/ClickHouse/ClickHouse/pull/85327) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige les écritures Iceberg pour les types complexes. [#85330](https://github.com/ClickHouse/ClickHouse/pull/85330) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* L'écriture des bornes inférieures et supérieures n'est pas prise en charge pour les types complexes. [#85332](https://github.com/ClickHouse/ClickHouse/pull/85332) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige une erreur logique lors de la lecture depuis des fonctions de stockage objet via une table Distributed ou la table function remote. Corrige : [#84658](https://github.com/ClickHouse/ClickHouse/issues/84658), [#85173](https://github.com/ClickHouse/ClickHouse/issues/85173), [#52022](https://github.com/ClickHouse/ClickHouse/issues/52022). [#85359](https://github.com/ClickHouse/ClickHouse/pull/85359) ([alesapin](https://github.com/alesapin)).
* Corrige la sauvegarde des parts avec des projections défectueuses. [#85362](https://github.com/ClickHouse/ClickHouse/pull/85362) ([Antonio Andelic](https://github.com/antonio2368)).
* Interdit l'utilisation de la colonne `_part_offset` dans les projections des versions tant qu'elle n'est pas stabilisée. [#85372](https://github.com/ClickHouse/ClickHouse/pull/85372) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige un crash et une corruption de données pendant ALTER UPDATE sur JSON. [#85383](https://github.com/ClickHouse/ClickHouse/pull/85383) ([Pavel Kruglov](https://github.com/Avogar)).
* Les requêtes avec des répliques parallèles qui utilisent l'optimisation de lecture en ordre inverse peuvent produire des résultats incorrects. [#85406](https://github.com/ClickHouse/ClickHouse/pull/85406) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige un possible UB (crashs) en cas de MEMORY\_LIMIT\_EXCEEDED pendant la désérialisation de String. [#85440](https://github.com/ClickHouse/ClickHouse/pull/85440) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les métriques KafkaAssignedPartitions et KafkaConsumersWithAssignment incorrectes. [#85494](https://github.com/ClickHouse/ClickHouse/pull/85494) ([Ilya Golshtein](https://github.com/ilejn)).
* Corrige la sous-estimation de la statistique des octets traités lorsque PREWHERE (explicite ou automatique) est utilisé. [#85495](https://github.com/ClickHouse/ClickHouse/pull/85495) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige la condition de retour anticipé pour le ralentissement du débit des requêtes S3 : il suffit désormais que `s3_slow_all_threads_after_network_error` ou `backup_slow_all_threads_after_retryable_s3_error` soit vrai pour activer le ralentissement lorsque tous les threads sont en pause à cause d’une erreur réessayable, au lieu d’exiger que les deux le soient. [#85505](https://github.com/ClickHouse/ClickHouse/pull/85505) ([Julia Kartseva](https://github.com/jkartseva)).
* Cette PR corrige la résolution des métadonnées lors de l’interrogation de tables Iceberg via un catalogue REST. ... [#85531](https://github.com/ClickHouse/ClickHouse/pull/85531) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)).
* Correction d’un plantage rare dans les inserts asynchrones qui modifient les paramètres `log_comment` ou `insert_deduplication_token`. [#85540](https://github.com/ClickHouse/ClickHouse/pull/85540) ([Anton Popov](https://github.com/CurtizJ)).
* Des paramètres comme date\_time\_input\_format étaient ignorés lors de l’utilisation de HTTP avec multipart/form-data. [#85570](https://github.com/ClickHouse/ClickHouse/pull/85570) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige le masquage des secrets dans les fonctions de table icebergS3Cluster et icebergAzureCluster. [#85658](https://github.com/ClickHouse/ClickHouse/pull/85658) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige la perte de précision dans `JSONExtract` lors de la conversion de nombres JSON en types Decimal. Désormais, les valeurs numériques JSON conservent leur représentation décimale exacte, ce qui évite les erreurs d’arrondi en virgule flottante. [#85665](https://github.com/ClickHouse/ClickHouse/pull/85665) ([ssive7b](https://github.com/ssive7b)).
* Correction de `LOGICAL_ERROR` lors de l’utilisation de `COMMENT COLUMN IF EXISTS` dans la même instruction `ALTER` après `DROP COLUMN`. La clause `IF EXISTS` ignore désormais correctement l’opération de commentaire lorsque la colonne a été supprimée dans cette même instruction. [#85688](https://github.com/ClickHouse/ClickHouse/pull/85688) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrige le comptage des lectures depuis le cache pour Delta Lake. [#85704](https://github.com/ClickHouse/ClickHouse/pull/85704) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un segfault rare dans CoalescingMergeTree avec de grandes chaînes. Cela clôt [#84582](https://github.com/ClickHouse/ClickHouse/issues/84582). [#85709](https://github.com/ClickHouse/ClickHouse/pull/85709) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Met à jour le timestamp des métadonnées dans les écritures Iceberg. [#85711](https://github.com/ClickHouse/ClickHouse/pull/85711) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* L’utilisation de `distributed_depth` comme indicateur de \*Cluster function était incorrecte et peut entraîner une duplication des données ; utilisez `client_info.collaborate_with_initiator` à la place. [#85734](https://github.com/ClickHouse/ClickHouse/pull/85734) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Spark ne peut pas lire les position delete files. [#85762](https://github.com/ClickHouse/ClickHouse/pull/85762) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige send\_logs\_source\_regexp (après la refactorisation de la journalisation asynchrone dans [#85105](https://github.com/ClickHouse/ClickHouse/issues/85105)). [#85797](https://github.com/ClickHouse/ClickHouse/pull/85797) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une possible incohérence pour les dictionnaires avec update\_field en cas d’erreurs MEMORY\_LIMIT\_EXCEEDED. [#85807](https://github.com/ClickHouse/ClickHouse/pull/85807) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge des constantes globales de l’instruction `WITH` pour les opérations `INSERT SELECT` distribuées en parallèle avec une table de destination `Distributed`. Auparavant, la requête pouvait renvoyer une erreur `Unknown expression identifier`. [#85811](https://github.com/ClickHouse/ClickHouse/pull/85811) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Masque les informations d’authentification pour `deltaLakeAzure`, `deltaLakeCluster`, `icebergS3Cluster` et `icebergAzureCluster`. [#85889](https://github.com/ClickHouse/ClickHouse/pull/85889) ([Julian Maicher](https://github.com/jmaicher)).
* Corrige une erreur logique lors d’une tentative de `CREATE ... AS (SELECT * FROM s3Cluster(...))` avec `DatabaseReplicated`. [#85904](https://github.com/ClickHouse/ClickHouse/pull/85904) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige les requêtes HTTP effectuées par la fonction de table `url()` afin d’inclure correctement les numéros de port dans l’en-tête Host lors de l’accès à des ports non standard. Cela résout les échecs d’authentification lors de l’utilisation d’URL présignées avec des services compatibles S3 comme MinIO exécutés sur des ports personnalisés, ce qui est courant dans les environnements de développement. (Corrige [#85898](https://github.com/ClickHouse/ClickHouse/issues/85898)). [#85921](https://github.com/ClickHouse/ClickHouse/pull/85921) ([Tom Quist](https://github.com/tomquist)).
* Désormais, Unity Catalog ignorera les schémas avec des types de données inhabituels dans le cas des tables non-Delta. Corrige [#85699](https://github.com/ClickHouse/ClickHouse/issues/85699). [#85950](https://github.com/ClickHouse/ClickHouse/pull/85950) ([alesapin](https://github.com/alesapin)).
* Corrige la nullabilité des champs dans Iceberg. [#85977](https://github.com/ClickHouse/ClickHouse/pull/85977) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige un bug dans la récupération de la base de données `Replicated` : si un nom de table contient le symbole `%`, la table pouvait être recréée avec un nom différent pendant la récupération. [#85987](https://github.com/ClickHouse/ClickHouse/pull/85987) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige les échecs de restauration de sauvegardes dus à l’erreur `BACKUP_ENTRY_NOT_FOUND` lors de la restauration d’une table `Memory` vide. [#86012](https://github.com/ClickHouse/ClickHouse/pull/86012) ([Julia Kartseva](https://github.com/jkartseva)).
* Ajoute des vérifications de `sharding&#95;key` lors d’un ALTER de la table `Distributed`. Auparavant, un ALTER incorrect pouvait casser la définition de la table et empêcher le redémarrage du serveur. [#86015](https://github.com/ClickHouse/ClickHouse/pull/86015) ([Nikolay Degterinsky](https://github.com/evillique)).
* N’écrit plus de fichier de suppression Iceberg vide. [#86061](https://github.com/ClickHouse/ClickHouse/pull/86061) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige les valeurs de paramètres trop grandes qui perturbaient les tables S3Queue et le redémarrage des réplicas. [#86074](https://github.com/ClickHouse/ClickHouse/pull/86074) ([Nikolay Degterinsky](https://github.com/evillique)).

#### Amélioration de la compilation/des tests/du packaging

* Utilisation par défaut de disques chiffrés pour les tests avec S3. [#59898](https://github.com/ClickHouse/ClickHouse/pull/59898) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Utilisation du binaire `clickhouse` dans les tests d’intégration afin d’obtenir des symboles de débogage intacts. [#83779](https://github.com/ClickHouse/ClickHouse/pull/83779) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Mise à niveau de la version interne de libxml2 de 2.14.4 à 2.14.5. [#84230](https://github.com/ClickHouse/ClickHouse/pull/84230) ([Robert Schulze](https://github.com/rschu1ze)).
* Mise à niveau de la version interne de curl de 8.14.0 à 8.15.0. [#84231](https://github.com/ClickHouse/ClickHouse/pull/84231) ([Robert Schulze](https://github.com/rschu1ze)).
* Nous utilisons désormais moins de mémoire pour les caches dans la CI et disposons de meilleurs tests d’éviction. [#84676](https://github.com/ClickHouse/ClickHouse/pull/84676) ([alesapin](https://github.com/alesapin)).

<div id="257">
  ### Version de ClickHouse 25.7, 2025-07-24
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Modifications de la fonction `extractKeyValuePairs` : ajout d’un nouvel argument `unexpected_quoting_character_strategy` qui contrôle le comportement lorsqu’un `quoting_character` est rencontré de façon inattendue lors de la lecture d’une clé ou d’une valeur non entre guillemets. La valeur peut être l’une des suivantes : `invalid`, `accept` ou `promote`. `invalid` ignore la clé et revient à l’état d’attente d’une clé. `accept` le traite comme faisant partie de la clé. `promote` ignore le caractère précédent et commence l’analyse comme s’il s’agissait d’une clé entre guillemets. De plus, après l’analyse d’une valeur entre guillemets, la clé suivante n’est analysée que si un délimiteur de paire est trouvé. [#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos)).
* Prise en charge des correspondances de zéro octet dans la fonction `countMatches`. Les utilisateurs qui souhaitent conserver l’ancien comportement peuvent activer le paramètre `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Utilisation des limiteurs de débit globaux du serveur pour les opérations locales (`max_local_read_bandwidth_for_server` et `max_local_write_bandwidth_for_server`) et distantes (`max_remote_read_network_bandwidth_for_server` et `max_remote_write_network_bandwidth_for_server`) lors de la génération de BACKUPs, en plus de leurs paramètres dédiés au niveau du serveur (`max_backup_bandwidth_for_server`, `max_mutations_bandwidth_for_server` et `max_merges_bandwidth_for_server`). [#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa)).
* Interdiction de créer une table sans colonnes insérables. [#81835](https://github.com/ClickHouse/ClickHouse/pull/81835) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Parallélisation des fonctions de cluster par fichier à l’intérieur des archives. Dans les versions précédentes, l’archive entière (zip, tar ou 7z, par exemple) constituait une unité de travail. Ajout d’un nouveau paramètre `cluster_function_process_archive_on_multiple_nodes`, égal à `true` par défaut. Lorsqu’il est défini sur `true`, il améliore les performances du traitement des archives dans les fonctions de cluster. Il doit être défini sur `false` pour assurer la compatibilité et éviter les erreurs lors de la mise à niveau vers 25.7+ si vous utilisez des fonctions de cluster avec des archives sur des versions antérieures. [#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La requête `SYSTEM RESTART REPLICAS` provoquait le réveil de tables dans la base de données Lazy, même sans accès à cette base, et cela se produisait alors même que ces tables étaient supprimées de manière concurrente. Remarque : désormais, `SYSTEM RESTART REPLICAS` redémarrera uniquement les répliques dans les bases de données où vous disposez de la permission `SHOW TABLES`, ce qui est logique. [#83321](https://github.com/ClickHouse/ClickHouse/pull/83321) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Ajout de la prise en charge des lightweight updates pour les tables de la famille `MergeTree`. Les lightweight updates peuvent désormais être utilisées avec une nouvelle syntaxe : `UPDATE <table> SET col1 = val1, col2 = val2, ... WHERE <condition>`. Ajout également d’une implémentation des lightweight deletes via les lightweight updates. Cette fonctionnalité peut être activée en définissant `lightweight_delete_mode = 'lightweight_update'`. [#82004](https://github.com/ClickHouse/ClickHouse/pull/82004) ([Anton Popov](https://github.com/CurtizJ)).
* Prise en charge des types complexes dans l’évolution de schéma d’Iceberg. [#73714](https://github.com/ClickHouse/ClickHouse/pull/73714) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Ajout de la prise en charge des INSERT dans les tables Iceberg. [#82692](https://github.com/ClickHouse/ClickHouse/pull/82692) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Lecture des fichiers de données Iceberg par identifiants de champ. Cela améliore la compatibilité avec Iceberg : les champs peuvent être renommés dans les métadonnées tout en étant associés à des noms différents dans les fichiers Parquet sous-jacents. Cela clôt [#83065](https://github.com/ClickHouse/ClickHouse/issues/83065). [#83653](https://github.com/ClickHouse/ClickHouse/pull/83653) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Désormais, ClickHouse prend en charge les fichiers `metadata.json` compressés pour Iceberg. Corrige [#70874](https://github.com/ClickHouse/ClickHouse/issues/70874). [#81451](https://github.com/ClickHouse/ClickHouse/pull/81451) ([alesapin](https://github.com/alesapin)).
* Prise en charge de `TimestampTZ` dans le catalogue Glue. Cela clôt [#81654](https://github.com/ClickHouse/ClickHouse/issues/81654). [#83132](https://github.com/ClickHouse/ClickHouse/pull/83132) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Ajout de la génération SQL assistée par l’IA au client ClickHouse. Vous pouvez désormais générer des requêtes SQL à partir de descriptions en langage naturel en faisant précéder votre requête de `??`. Prend en charge les fournisseurs OpenAI et Anthropic avec découverte automatique du schéma. [#83314](https://github.com/ClickHouse/ClickHouse/pull/83314) ([Kaushik Iska](https://github.com/iskakaushik)).
* Ajout d’une fonction permettant d’écrire des types géométriques au format WKB. [#82935](https://github.com/ClickHouse/ClickHouse/pull/82935) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Introduction de deux nouveaux types d’accès : `READ` et `WRITE` pour les sources, avec dépréciation de tous les types d’accès précédents liés aux sources. Avant : `GRANT S3 ON *.* TO user`, maintenant : `GRANT READ, WRITE ON S3 TO user`. Cela permet également de dissocier les permissions `READ` et `WRITE` pour les sources, par exemple : `GRANT READ ON * TO user`, `GRANT WRITE ON S3 TO user`. La fonctionnalité est contrôlée par le paramètre `access_control_improvements.enable_read_write_grants` et désactivée par défaut. [#73659](https://github.com/ClickHouse/ClickHouse/pull/73659) ([pufit](https://github.com/pufit)).
* NumericIndexedVector : nouvelle structure de données vectorielle reposant sur une compression bitmap Roaring bit-sliced, accompagnée de plus de 20 fonctions pour la construction, l’analyse et l’arithmétique point à point. Elle peut réduire le volume de stockage et accélérer les jointures, les filtres et les agrégations sur des données creuses. Implémente [#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) ainsi que l’article [“Large-Scale Metric Computation in Online Controlled Experiment Platform”](https://arxiv.org/abs/2405.08411) de T. Xiong et Y. Wang, VLDB 2024. [#74193](https://github.com/ClickHouse/ClickHouse/pull/74193) ([FriendLey](https://github.com/FriendLey)).
* Le paramètre de workload `max_waiting_queries` est désormais pris en charge. Il peut être utilisé pour limiter la taille de la file d’attente des requêtes. Si la limite est atteinte, toutes les requêtes suivantes seront interrompues avec l’erreur `SERVER_OVERLOADED`. [#81250](https://github.com/ClickHouse/ClickHouse/pull/81250) ([Oleg Doronin](https://github.com/dorooleg)).
* Ajout de fonctions financières : `financialInternalRateOfReturnExtended` (`XIRR`), `financialInternalRateOfReturn` (`IRR`), `financialNetPresentValueExtended` (`XNPV`), `financialNetPresentValue` (`NPV`). [#81599](https://github.com/ClickHouse/ClickHouse/pull/81599) ([Joanna Hulboj](https://github.com/jh0x)).
* Ajout des fonctions géospatiales `polygonsIntersectCartesian` et `polygonsIntersectSpherical` pour déterminer si deux polygones s'intersectent. [#81882](https://github.com/ClickHouse/ClickHouse/pull/81882) ([Paul Lamb](https://github.com/plamb)).
* Prise en charge de la colonne virtuelle `_part_granule_offset` dans les tables de la famille MergeTree. Cette colonne indique l'index, à partir de zéro, du granule/marque auquel appartient chaque ligne au sein de son data part. Cela corrige [#79572](https://github.com/ClickHouse/ClickHouse/issues/79572). [#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird)). [#82341](https://github.com/ClickHouse/ClickHouse/pull/82341) ([Amos Bird](https://github.com/amosbird))
* Ajout des fonctions SQL `colorSRGBToOkLCH` et `colorOkLCHToSRGB` pour convertir des couleurs entre les espaces colorimétriques sRGB et OkLCH. [#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue)).
* Prise en charge des paramètres dans les requêtes `CREATE USER` pour les noms d'utilisateur. [#81387](https://github.com/ClickHouse/ClickHouse/pull/81387) ([Diskein](https://github.com/Diskein)).
* La table `system.formats` contient désormais des informations étendues sur les formats, comme le type de contenu HTTP, les capacités d'inférence de schéma, etc. [#81505](https://github.com/ClickHouse/ClickHouse/pull/81505) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* Ajout des fonctions `searchAny` et `searchAll`, qui sont des outils génériques pour rechercher dans les index textuels. [#80641](https://github.com/ClickHouse/ClickHouse/pull/80641) ([Elmi Ahmadov](https://github.com/ahmadov)).
* L'index textuel prend désormais en charge le nouveau tokenizer `split`. [#81752](https://github.com/ClickHouse/ClickHouse/pull/81752) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Modification de la valeur par défaut de l'index granularity des index `text` à 64. Cela améliore les performances attendues pour la requête de test moyenne dans les benchmarks internes. [#82162](https://github.com/ClickHouse/ClickHouse/pull/82162) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Le bitmap 256 bits stocke les labels sortants d'un état dans un ordre défini, mais les états sortants sont enregistrés sur disque dans l'ordre où ils apparaissent dans la table de hachage. Par conséquent, un label pouvait pointer vers un mauvais état suivant lors de la lecture depuis le disque. [#82783](https://github.com/ClickHouse/ClickHouse/pull/82783) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Activation de la compression zstd pour le blob de l'arbre FST dans les index textuels. [#83093](https://github.com/ClickHouse/ClickHouse/pull/83093) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Passage de l'index de similarité vectorielle en bêta. Introduction du paramètre alias `enable_vector_similarity_index`, qui doit être activé pour utiliser l'index de similarité vectorielle. [#83459](https://github.com/ClickHouse/ClickHouse/pull/83459) ([Robert Schulze](https://github.com/rschu1ze)).
* Suppression de la logique expérimentale `send_metadata` liée à la réplication zero-copy expérimentale. Elle n'a jamais été utilisée et ce code n'est maintenu par personne. Comme aucun test n'y était associé, il y a de fortes chances qu'il ne fonctionne plus depuis longtemps. [#82508](https://github.com/ClickHouse/ClickHouse/pull/82508) ([alesapin](https://github.com/alesapin)).
* Intégration de `StorageKafka2` à `system.kafka_consumers`. [#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Estimation des CNF/DNF complexes, par exemple `(a < 1 and a > 0) or b = 3`, à l'aide de statistiques. [#82663](https://github.com/ClickHouse/ClickHouse/pull/82663) ([Han Fei](https://github.com/hanfei1991)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Introduction de la journalisation asynchrone. Lorsque les logs sont envoyés vers un périphérique lent, cela ne retarde plus les requêtes. [#82516](https://github.com/ClickHouse/ClickHouse/pull/82516) ([Raúl Marín](https://github.com/Algunenano)). Limitation du nombre maximal d’entrées conservées dans la file d’attente. [#83214](https://github.com/ClickHouse/ClickHouse/pull/83214) ([Raúl Marín](https://github.com/Algunenano)).
* L’INSERT SELECT distribué en parallèle est activé par défaut dans le mode où INSERT SELECT est exécuté indépendamment sur chaque shard ; voir le paramètre `parallel_distributed_insert_select`. [#83040](https://github.com/ClickHouse/ClickHouse/pull/83040) ([Igor Nikonov](https://github.com/devcrafter)).
* Lorsqu’une requête d’agrégation contient uniquement une fonction `count()` sur une colonne non `Nullable`, la logique d’agrégation est entièrement intégrée lors du sondage de la table de hachage. Cela évite d’allouer et de maintenir un état d’agrégation, ce qui réduit significativement l’utilisation mémoire et la surcharge CPU. Cela répond partiellement à [#81982](https://github.com/ClickHouse/ClickHouse/issues/81982). [#82104](https://github.com/ClickHouse/ClickHouse/pull/82104) ([Amos Bird](https://github.com/amosbird)).
* Les performances de `HashJoin` ont été optimisées en supprimant la boucle supplémentaire sur les tables de hachage dans le cas typique d’une seule colonne clé ; les vérifications `null_map` et `join_mask` sont également éliminées lorsqu’elles sont toujours `true`/`false`. [#82308](https://github.com/ClickHouse/ClickHouse/pull/82308) ([Nikita Taranov](https://github.com/nickitat)).
* Optimisation triviale du combinator `-If`. [#78454](https://github.com/ClickHouse/ClickHouse/pull/78454) ([李扬](https://github.com/taiyang-li)).
* Les requêtes de vector search utilisant un vector similarity index s’exécutent avec une latence plus faible grâce à la réduction des lectures de stockage et de l’utilisation CPU. [#79103](https://github.com/ClickHouse/ClickHouse/pull/79103) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Respect de `merge_tree_min_{rows,bytes}_for_seek` dans `filterPartsByQueryConditionCache` pour l’aligner sur les autres méthodes de filtrage par index. [#80312](https://github.com/ClickHouse/ClickHouse/pull/80312) ([李扬](https://github.com/taiyang-li)).
* Le pipeline après l’étape `TOTALS` devient multithreadé. [#80331](https://github.com/ClickHouse/ClickHouse/pull/80331) ([UnamedRus](https://github.com/UnamedRus)).
* Correction du filtre par clé pour les stockages `Redis` et `KeeperMap`. [#81833](https://github.com/ClickHouse/ClickHouse/pull/81833) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Ajout du nouveau paramètre `min_joined_block_size_rows` (analogue à `min_joined_block_size_bytes` ; valeur par défaut : 65409) pour contrôler la taille minimale des blocks (en rows) pour les blocks d’entrée et de sortie de JOIN (si le join algorithm le prend en charge). Les petits blocks seront squashed. [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat)).
* `ATTACH PARTITION` n’entraîne plus la suppression de tous les caches. [#82377](https://github.com/ClickHouse/ClickHouse/pull/82377) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimisation du plan généré pour les correlated subqueries en supprimant les JOIN operations redondantes à l’aide de classes d’équivalence. S’il existe des expressions équivalentes pour toutes les correlated columns, `CROSS JOIN` n’est pas produit si le paramètre `query_plan_correlated_subqueries_use_substitution` est activé. [#82435](https://github.com/ClickHouse/ClickHouse/pull/82435) ([Dmitry Novik](https://github.com/novikd)).
* Lecture des seules colonnes requises dans la correlated subquery lorsqu’elle semble être un argument de la fonction `EXISTS`. [#82443](https://github.com/ClickHouse/ClickHouse/pull/82443) ([Dmitry Novik](https://github.com/novikd)).
* Accélération légère des comparaisons de query trees pendant la query analysis. [#82617](https://github.com/ClickHouse/ClickHouse/pull/82617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajouter un alignement dans le Counter de ProfileEvents afin de réduire le false sharing. [#82697](https://github.com/ClickHouse/ClickHouse/pull/82697) ([Jiebin Sun](https://github.com/jiebinn)).
* Les optimisations de `null_map` et `JoinMask` de [#82308](https://github.com/ClickHouse/ClickHouse/issues/82308) ont été appliquées au cas d'un JOIN avec plusieurs disjonctions. De plus, la structure de données `KnownRowsHolder` a été optimisée. [#83041](https://github.com/ClickHouse/ClickHouse/pull/83041) ([Nikita Taranov](https://github.com/nickitat)).
* Un simple `std::vector<std::atomic_bool>` est utilisé pour les indicateurs de jointure afin d'éviter de calculer un hash à chaque accès. [#83043](https://github.com/ClickHouse/ClickHouse/pull/83043) ([Nikita Taranov](https://github.com/nickitat)).
* Ne pas préallouer à l'avance la mémoire des colonnes de résultat lorsque `HashJoin` utilise le mode de sortie `lazy`. Ce n'est pas optimal, en particulier lorsque le nombre de correspondances est faible. De plus, une fois la jointure terminée, nous connaissons le nombre exact de correspondances, ce qui permet une préallocation plus précise. [#83304](https://github.com/ClickHouse/ClickHouse/pull/83304) ([Nikita Taranov](https://github.com/nickitat)).
* Réduire au minimum les copies mémoire dans les headers de port lors de la construction du pipeline. [PR](https://github.com/ClickHouse/ClickHouse/pull/70105) d'origine par [heymind](https://github.com/heymind). [#83381](https://github.com/ClickHouse/ClickHouse/pull/83381) ([Raúl Marín](https://github.com/Algunenano)).
* Améliorer le démarrage de ClickHouse Keeper lorsqu'il utilise le stockage rocksdb. [#83390](https://github.com/ClickHouse/ClickHouse/pull/83390) ([Antonio Andelic](https://github.com/antonio2368)).
* Éviter de conserver le verrou pendant la création des données de snapshot du stockage afin de réduire la contention en cas de forte charge concurrente. [#83510](https://github.com/ClickHouse/ClickHouse/pull/83510) ([Duc Canh Le](https://github.com/canhld94)).
* Amélioration des performances du format d'entrée `ProtobufSingle` grâce à la réutilisation du sérialiseur lorsqu'aucune erreur d'analyse syntaxique ne se produit. [#83613](https://github.com/ClickHouse/ClickHouse/pull/83613) ([Eduard Karacharov](https://github.com/korowa)).
* Améliorer les performances de construction du pipeline, ce qui accélère les requêtes courtes. [#83631](https://github.com/ClickHouse/ClickHouse/pull/83631) ([Raúl Marín](https://github.com/Algunenano)).
* Optimiser `MergeTreeReadersChain::getSampleBlock`, ce qui accélère les requêtes courtes. [#83875](https://github.com/ClickHouse/ClickHouse/pull/83875) ([Raúl Marín](https://github.com/Algunenano)).
* Accélérer le listage des tables dans les catalogues de données grâce à des requêtes asynchrones. [#81084](https://github.com/ClickHouse/ClickHouse/pull/81084) ([alesapin](https://github.com/alesapin)).
* Introduire du jitter dans le mécanisme de retry de S3 lorsque la configuration `s3_slow_all_threads_after_network_error` est activée. [#81849](https://github.com/ClickHouse/ClickHouse/pull/81849) ([zoomxi](https://github.com/zoomxi)).

<div id="improvement">
  #### Amélioration
</div>

* Coloration des parenthèses en plusieurs couleurs pour une meilleure lisibilité. [#82538](https://github.com/ClickHouse/ClickHouse/pull/82538) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Mise en évidence des métacaractères dans les motifs LIKE/REGEXP pendant la saisie. Cette fonctionnalité existait déjà dans `clickhouse-format` et dans l’écho de `clickhouse-client`, mais elle est désormais également disponible dans l’invite de commande. [#82871](https://github.com/ClickHouse/ClickHouse/pull/82871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La mise en évidence dans `clickhouse-format` et dans l’écho du client fonctionnera de la même manière que dans l’invite de commande. [#82874](https://github.com/ClickHouse/ClickHouse/pull/82874) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les disques `plain_rewritable` peuvent désormais être utilisés pour les métadonnées des bases de données. Implémentation des méthodes `moveFile` et `replaceFile` dans `plain_rewritable` pour permettre son utilisation comme disque de base de données. [#79424](https://github.com/ClickHouse/ClickHouse/pull/79424) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Autorisation des sauvegardes pour les bases de données `PostgreSQL`, `MySQL` et `DataLake`. La sauvegarde d’une telle base de données n’enregistre que sa définition, pas les données qu’elle contient. [#79982](https://github.com/ClickHouse/ClickHouse/pull/79982) ([Nikolay Degterinsky](https://github.com/evillique)).
* Le paramètre `allow_experimental_join_condition` est désormais marqué comme obsolète, car il est maintenant toujours autorisé. [#80566](https://github.com/ClickHouse/ClickHouse/pull/80566) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ajout de métriques de pression aux métriques asynchrones de ClickHouse. [#80779](https://github.com/ClickHouse/ClickHouse/pull/80779) ([Xander Garbett](https://github.com/Garbett1)).
* Ajout des métriques `MarkCacheEvictedBytes`, `MarkCacheEvictedMarks` et `MarkCacheEvictedFiles` pour suivre les évictions du cache de marks. (issue [#60989](https://github.com/ClickHouse/ClickHouse/issues/60989)). [#80799](https://github.com/ClickHouse/ClickHouse/pull/80799) ([Shivji Kumar Jha](https://github.com/shiv4289)).
* Prise en charge de l’écriture des `enum` Parquet sous forme de tableaux d’octets, comme l’impose la [spécification](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#enum). [#81090](https://github.com/ClickHouse/ClickHouse/pull/81090) ([Arthur Passos](https://github.com/arthurpassos)).
* Amélioration du moteur de table `DeltaLake` : delta-kernel-rs dispose d’une API `ExpressionVisitor`, implémentée dans cette PR et appliquée à la transformation des expressions de colonnes de partition (elle remplacera un ancien mécanisme obsolète de delta-kernel-rs utilisé jusque-là dans notre code). À l’avenir, cet `ExpressionVisitor` permettra aussi d’implémenter le pruning basé sur les statistiques ainsi que certaines fonctionnalités propriétaires de delta-lake. En outre, cette modification vise à prendre en charge le partition pruning dans le moteur de table `DeltaLakeCluster` (le résultat d’une expression analysée — ActionsDAG — sera sérialisé et envoyé par l’initiateur avec le chemin de données, car ce type d’information, nécessaire au pruning, n’est disponible sous forme de méta-informations que lors du listing des fichiers de données, effectué uniquement par l’initiateur, alors qu’il doit être appliqué aux données sur chaque serveur de lecture). [#81136](https://github.com/ClickHouse/ClickHouse/pull/81136) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Préservation des noms d’éléments lors de la dérivation des supertypes pour les tuples nommés. [#81345](https://github.com/ClickHouse/ClickHouse/pull/81345) ([lgbo](https://github.com/lgbo-ustc)).
* Comptage manuel des messages consommés pour éviter de dépendre du précédent offset validé dans StorageKafka2. [#81662](https://github.com/ClickHouse/ClickHouse/pull/81662) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ajout de `clickhouse-keeper-utils`, un nouvel outil en ligne de commande pour gérer et analyser les données de ClickHouse Keeper. L’outil permet d’exporter l’état à partir des snapshots et des changelogs, d’analyser les fichiers de changelog et d’extraire des plages de logs spécifiques. [#81677](https://github.com/ClickHouse/ClickHouse/pull/81677) ([Antonio Andelic](https://github.com/antonio2368)).
* Les limiteurs réseau globaux et par utilisateur ne sont jamais réinitialisés, ce qui garantit que les limites `max_network_bandwidth_for_all_users` et `max_network_bandwidth_for_all_users` ne sont jamais dépassées. [#81729](https://github.com/ClickHouse/ClickHouse/pull/81729) ([Sergei Trifonov](https://github.com/serxa)).
* Prise en charge de l’écriture de geoparquets en tant que format de sortie. [#81784](https://github.com/ClickHouse/ClickHouse/pull/81784) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Interdiction de démarrer une mutation ALTER `RENAME COLUMN` si elle doit renommer une colonne actuellement affectée par une mutation de données incomplète. [#81823](https://github.com/ClickHouse/ClickHouse/pull/81823) ([Mikhail Artemenko](https://github.com/Michicosun)).
* L’en-tête `Connection` est envoyé à la fin des en-têtes, une fois que l’on sait si la connexion doit être conservée. [#81951](https://github.com/ClickHouse/ClickHouse/pull/81951) ([Sema Checherinda](https://github.com/CheSema)).
* Ajustement de la file d’attente des serveurs TCP (64 par défaut) en fonction de listen\_backlog (4096 par défaut). [#82045](https://github.com/ClickHouse/ClickHouse/pull/82045) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la possibilité de recharger `max_local_read_bandwidth_for_server` et `max_local_write_bandwidth_for_server` à chaud, sans redémarrer le serveur. [#82083](https://github.com/ClickHouse/ClickHouse/pull/82083) ([Kai Zhu](https://github.com/nauu)).
* Ajout de la prise en charge de l’effacement de tous les avertissements de la table `system.warnings` à l’aide de `TRUNCATE TABLE system.warnings`. [#82087](https://github.com/ClickHouse/ClickHouse/pull/82087) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction du partition pruning avec les cluster table functions de data lake. [#82131](https://github.com/ClickHouse/ClickHouse/pull/82131) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la lecture des données partitionnées dans la table function DeltaLakeCluster. Dans cette PR, la protocol version des cluster functions a été augmentée, ce qui permet d’envoyer des informations supplémentaires de l’initiateur aux répliques. Ces informations supplémentaires contiennent l’expression de transformation delta-kernel, nécessaire pour parser les partition columns (et d’autres éléments à l’avenir, comme les generated columns, etc.). [#82132](https://github.com/ClickHouse/ClickHouse/pull/82132) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La fonction `reinterpret` prend désormais en charge la conversion vers `Array(T)` où `T` est un type de données de taille fixe (issue [#82621](https://github.com/ClickHouse/ClickHouse/issues/82621)). [#83399](https://github.com/ClickHouse/ClickHouse/pull/83399) ([Shankar Iyer](https://github.com/shankar-iyer)).
* La base de données Datalake renvoie désormais une exception plus claire. Correction de [#81211](https://github.com/ClickHouse/ClickHouse/issues/81211). [#82304](https://github.com/ClickHouse/ClickHouse/pull/82304) ([alesapin](https://github.com/alesapin)).
* Amélioration de CROSS JOIN en renvoyant false depuis `HashJoin::needUsedFlagsForPerRightTableRow`. [#82379](https://github.com/ClickHouse/ClickHouse/pull/82379) ([lgbo](https://github.com/lgbo-ustc)).
* Prise en charge de la lecture et de l’écriture des colonnes map sous forme d’Array de Tuples. [#82408](https://github.com/ClickHouse/ClickHouse/pull/82408) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ajout de la liste des licences des crates [Rust](https://clickhouse.com/blog/rust) dans `system.licenses`. [#82440](https://github.com/ClickHouse/ClickHouse/pull/82440) ([Raúl Marín](https://github.com/Algunenano)).
* Les macros comme `{uuid}` peuvent désormais être utilisées dans le paramètre `keeper_path` du moteur de table S3Queue. [#82463](https://github.com/ClickHouse/ClickHouse/pull/82463) ([Nikolay Degterinsky](https://github.com/evillique)).
* Amélioration de Keeper : déplacement des fichiers de changelog entre disques dans un thread d’arrière-plan. Auparavant, déplacer le changelog vers un autre disque bloquait globalement Keeper jusqu’à la fin de l’opération. Cela entraînait une dégradation des performances lorsque le déplacement était long (par ex. vers un disque S3). [#82485](https://github.com/ClickHouse/ClickHouse/pull/82485) ([Antonio Andelic](https://github.com/antonio2368)).
* Amélioration de Keeper : ajout d’une nouvelle config `keeper_server.cleanup_old_and_ignore_new_acl`. Si elle est activée, les ACL de tous les nœuds seront effacées, tandis que les ACL des nouvelles requêtes seront ignorées. Si l’objectif est de supprimer complètement les ACL des nœuds, il est important de laisser cette config activée jusqu’à la création d’un nouveau snapshot. [#82496](https://github.com/ClickHouse/ClickHouse/pull/82496) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout d’un nouveau server setting `s3queue_disable_streaming` qui désactive le streaming dans les tables utilisant le moteur de table S3Queue. Ce paramètre peut être modifié sans redémarrer le serveur. [#82515](https://github.com/ClickHouse/ClickHouse/pull/82515) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Refactorisation de la fonctionnalité de redimensionnement dynamique du cache du système de fichiers. Ajout de journaux supplémentaires pour l’introspection. [#82556](https://github.com/ClickHouse/ClickHouse/pull/82556) ([Kseniia Sumarokova](https://github.com/kssenii)).
* `clickhouse-server`, même sans fichier de configuration, écoutera également sur le port PostgreSQL 9005, comme avec la config par défaut. [#82633](https://github.com/ClickHouse/ClickHouse/pull/82633) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans `ReplicatedMergeTree::executeMetadataAlter`, nous récupérons le StorageID et, sans prendre DDLGuard, nous essayons d’appeler `IDatabase::alterTable`. Entre-temps, il pouvait techniquement être possible d’échanger la table concernée avec une autre ; ainsi, lorsque nous récupérions la définition, nous pouvions obtenir la mauvaise. Pour éviter cela, nous ajoutons une vérification distincte de correspondance des UUIDs lors de l’appel à `IDatabase::alterTable`. [#82666](https://github.com/ClickHouse/ClickHouse/pull/82666) ([Nikolay Degterinsky](https://github.com/evillique)).
* Lors de l’attachement d’une database avec un disque distant en lecture seule, ajout manuel des UUID des tables dans DatabaseCatalog. [#82670](https://github.com/ClickHouse/ClickHouse/pull/82670) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Empêche l’utilisateur d’utiliser `nan` et `inf` avec `NumericIndexedVector`. Corrige [#82239](https://github.com/ClickHouse/ClickHouse/issues/82239) et un peu plus. [#82681](https://github.com/ClickHouse/ClickHouse/pull/82681) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Ne pas omettre les valeurs nulles dans les formats de header `X-ClickHouse-Progress` et `X-ClickHouse-Summary`. [#82727](https://github.com/ClickHouse/ClickHouse/pull/82727) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Amélioration de Keeper : prise en charge de permissions spécifiques pour l’ACL world:anyone. [#82755](https://github.com/ClickHouse/ClickHouse/pull/82755) ([Antonio Andelic](https://github.com/antonio2368)).
* Ne pas autoriser `RENAME COLUMN` ou `DROP COLUMN` sur des colonnes explicitement listées pour l’addition dans SummingMergeTree. Ferme [#81836](https://github.com/ClickHouse/ClickHouse/issues/81836). [#82821](https://github.com/ClickHouse/ClickHouse/pull/82821) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration de la précision de la conversion de `Decimal` vers `Float32`. Implémentation de la conversion de `Decimal` vers `BFloat16`. Ferme [#82660](https://github.com/ClickHouse/ClickHouse/issues/82660). [#82823](https://github.com/ClickHouse/ClickHouse/pull/82823) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les barres de défilement dans la Web UI seront légèrement améliorées. [#82869](https://github.com/ClickHouse/ClickHouse/pull/82869) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `clickhouse-server` avec une configuration embarquée permettra d’utiliser la Web UI en renvoyant une réponse HTTP OPTIONS. [#82870](https://github.com/ClickHouse/ClickHouse/pull/82870) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute la prise en charge de la spécification d’ACL Keeper supplémentaires pour des paths dans la config. Si vous souhaitez ajouter des ACL supplémentaires pour un path spécifique, définissez-les dans la config sous `zookeeper.path_acls`. [#82898](https://github.com/ClickHouse/ClickHouse/pull/82898) ([Antonio Andelic](https://github.com/antonio2368)).
* Désormais, le snapshot des mutations sera construit à partir du snapshot des parts visibles. De plus, les compteurs de mutation utilisés dans le snapshot seront recalculés à partir des mutations incluses. [#82945](https://github.com/ClickHouse/ClickHouse/pull/82945) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Ajoute un ProfileEvent lorsque Keeper rejette une écriture en raison de la soft memory limit. [#82963](https://github.com/ClickHouse/ClickHouse/pull/82963) ([Xander Garbett](https://github.com/Garbett1)).
* Ajoute les colonnes `commit_time`, `commit_id` à `system.s3queue_log`. [#83016](https://github.com/ClickHouse/ClickHouse/pull/83016) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Dans certains cas, nous avons besoin de plusieurs dimensions pour nos métriques. Par exemple, compter les merges ou les mutations ayant échoué par code d’erreur plutôt que d’avoir un seul compteur. Introduit `system.dimensional_metrics`, qui fait précisément cela, et ajoute la première métrique dimensionnelle, appelée `failed_merges`. [#83030](https://github.com/ClickHouse/ClickHouse/pull/83030) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Regroupe les avertissements concernant les settings inconnus dans le clickhouse client et les journalise sous forme de résumé. [#83042](https://github.com/ClickHouse/ClickHouse/pull/83042) ([Bharat Nallan](https://github.com/bharatnc)).
* Le client ClickHouse signale désormais le port local lorsqu’une erreur de connexion se produit. [#83050](https://github.com/ClickHouse/ClickHouse/pull/83050) ([Jianfei Hu](https://github.com/incfly)).
* Gestion légèrement améliorée des erreurs dans `AsynchronousMetrics`. Si le répertoire `/sys/block` existe mais n’est pas accessible, le server démarrera sans surveiller les block devices. Ferme [#79229](https://github.com/ClickHouse/ClickHouse/issues/79229). [#83115](https://github.com/ClickHouse/ClickHouse/pull/83115) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Arrête SystemLogs après les tables ordinaires (et avant les system tables, au lieu d’avant les tables ordinaires). [#83134](https://github.com/ClickHouse/ClickHouse/pull/83134) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute des logs pour le processus d’arrêt de `S3Queue`. [#83163](https://github.com/ClickHouse/ClickHouse/pull/83163) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Possibilité d’analyser `Time` et `Time64` aux formats `MM:SS`, `M:SS`, `SS` ou `S`. [#83299](https://github.com/ClickHouse/ClickHouse/pull/83299) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Lorsque `distributed_ddl_output_mode='*_only_active'`, n’attendez pas les nouvelles replicas ni les replicas restaurées dont le replication lag dépasse `max_replication_lag_to_enqueue`. Cela devrait aider à éviter `DDL task is not finished on some hosts` lorsqu’une nouvelle replica devient active après avoir terminé l’initialisation ou la recovery, mais a accumulé un énorme log de réplication pendant l’initialisation. Implémente également la query `SYSTEM SYNC DATABASE REPLICA STRICT`, qui attend que le log de réplication redescende sous `max_replication_lag_to_enqueue`. [#83302](https://github.com/ClickHouse/ClickHouse/pull/83302) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ne pas afficher de descriptions trop longues des actions d'expression dans les messages d'exception. Clôt [#83164](https://github.com/ClickHouse/ClickHouse/issues/83164). [#83350](https://github.com/ClickHouse/ClickHouse/pull/83350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajouter la possibilité d'analyser le préfixe et le suffixe d'une part, ainsi que de vérifier la couverture pour les colonnes non constantes. [#83377](https://github.com/ClickHouse/ClickHouse/pull/83377) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Uniformiser les noms de paramètres dans ODBC et JDBC lors de l'utilisation de collections nommées. [#83410](https://github.com/ClickHouse/ClickHouse/pull/83410) ([Andrey Zvonov](https://github.com/zvonand)).
* Lorsque le stockage s'arrête, `getStatus` lève une exception `ErrorCodes::ABORTED`. Auparavant, cela faisait échouer la requête SELECT. Désormais, nous interceptons les exceptions `ErrorCodes::ABORTED` et les ignorons volontairement. [#83435](https://github.com/ClickHouse/ClickHouse/pull/83435) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajouter des métriques de ressources du processus (telles que `UserTimeMicroseconds`, `SystemTimeMicroseconds`, `RealTimeMicroseconds`) aux profile events de part\_log pour les entrées `MergeParts`. [#83460](https://github.com/ClickHouse/ClickHouse/pull/83460) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Activer par défaut dans Keeper les feature flags `create_if_not_exists`, `check_not_exists`, `remove_recursive`, qui permettent de nouveaux types de requêtes. [#83488](https://github.com/ClickHouse/ClickHouse/pull/83488) ([Antonio Andelic](https://github.com/antonio2368)).
* Arrêter le streaming S3(Azure/etc)Queue avant d'arrêter les tables lors de l'arrêt du serveur. [#83530](https://github.com/ClickHouse/ClickHouse/pull/83530) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Activer `Date`/`Date32` comme entiers dans les formats d'entrée `JSON`. [#83597](https://github.com/ClickHouse/ClickHouse/pull/83597) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Rendre les messages d'exception plus faciles à lire dans certaines situations lors du chargement et de l'ajout de projections. [#83728](https://github.com/ClickHouse/ClickHouse/pull/83728) ([Robert Schulze](https://github.com/rschu1ze)).
* Introduire une option de configuration permettant d'ignorer les contrôles d'intégrité des sommes de contrôle du binaire pour `clickhouse-server`. Résout [#83637](https://github.com/ClickHouse/ClickHouse/issues/83637). [#83749](https://github.com/ClickHouse/ClickHouse/pull/83749) ([Rafael Roquetto](https://github.com/rafaelroquetto)).

#### Correction de bogue

* Corrige la valeur par défaut incorrecte de l’option `--reconnect` dans `clickhouse-benchmark`. Elle a été modifiée par erreur dans [#79465](https://github.com/ClickHouse/ClickHouse/issues/79465). [#82677](https://github.com/ClickHouse/ClickHouse/pull/82677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le formatage incohérent de `CREATE DICTIONARY`. Clôt [#82105](https://github.com/ClickHouse/ClickHouse/issues/82105). [#82829](https://github.com/ClickHouse/ClickHouse/pull/82829) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le formatage incohérent de TTL lorsqu’il contient une fonction `materialize`. Clôt [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828). [#82831](https://github.com/ClickHouse/ClickHouse/pull/82831) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le formatage incohérent de EXPLAIN AST dans une sous-requête lorsqu’elle contient des options de sortie comme INTO OUTFILE. Clôt [#82826](https://github.com/ClickHouse/ClickHouse/issues/82826). [#82840](https://github.com/ClickHouse/ClickHouse/pull/82840) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le formatage incohérent des expressions entre parenthèses avec alias dans le contexte où les alias ne sont pas autorisés. Clôt [#82836](https://github.com/ClickHouse/ClickHouse/issues/82836). Clôt [#82837](https://github.com/ClickHouse/ClickHouse/issues/82837). [#82867](https://github.com/ClickHouse/ClickHouse/pull/82867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Utilise le code d’erreur approprié lors de la multiplication de l’état d’une fonction d’agrégation par IPv4. Clôt [#82817](https://github.com/ClickHouse/ClickHouse/issues/82817). [#82818](https://github.com/ClickHouse/ClickHouse/pull/82818) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige une erreur logique dans le cache du système de fichiers : "Having zero bytes but range is not finished". [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Recalcule l’index min-max lorsque TTL réduit le nombre de lignes afin de garantir la validité des algorithmes qui s’appuient dessus, comme `minmax_count_projection`. Cela résout [#77091](https://github.com/ClickHouse/ClickHouse/issues/77091). [#77166](https://github.com/ClickHouse/ClickHouse/pull/77166) ([Amos Bird](https://github.com/amosbird)).
* Pour les requêtes avec la combinaison `ORDER BY ... LIMIT BY ... LIMIT N`, lorsque ORDER BY est exécuté sous forme de PartialSorting, le compteur `rows_before_limit_at_least` reflète désormais le nombre de lignes consommées par la clause LIMIT plutôt que le nombre de lignes consommées par la transformation de tri. [#78999](https://github.com/ClickHouse/ClickHouse/pull/78999) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige un skipping excessif de granules lors du filtrage sur des index token/ngram avec regexp contenant une alternance et une première alternative non littérale. [#79373](https://github.com/ClickHouse/ClickHouse/pull/79373) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige une erreur logique avec l’opérateur `<=>` et le moteur Join ; désormais, la query renvoie le code d’erreur approprié. [#80165](https://github.com/ClickHouse/ClickHouse/pull/80165) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige un plantage dans la fonction `loop` lorsqu’elle est utilisée avec la famille de fonctions `remote`. Garantit que la clause LIMIT est bien respectée dans `loop(remote(...))`. [#80299](https://github.com/ClickHouse/ClickHouse/pull/80299) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction du comportement incorrect des fonctions `to_utc_timestamp` et `from_utc_timestamp` lors du traitement de dates antérieures à l’époque Unix (1970-01-01) et postérieures à la date maximale (2106-02-07 06:28:15). Désormais, ces fonctions bornent correctement les valeurs respectivement au début de l’époque Unix et à la date maximale. [#80498](https://github.com/ClickHouse/ClickHouse/pull/80498) ([Surya Kant Ranjan](https://github.com/iit2009046)).
* Pour certaines requêtes exécutées avec des répliques parallèles, les optimisations de lecture dans l’ordre pouvaient être appliquées sur l’initiateur, mais pas sur les nœuds distants. Cela entraînait l’utilisation de modes de lecture différents par le coordinateur des répliques parallèles (sur l’initiateur) et sur les nœuds distants, ce qui constitue une erreur logique. [#80652](https://github.com/ClickHouse/ClickHouse/pull/80652) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction d’une erreur logique lors de la matérialisation d’une projection lorsque le type d’une colonne était changé en Nullable. [#80741](https://github.com/ClickHouse/ClickHouse/pull/80741) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un recalcul incorrect du TTL dans TTL GROUP BY lors de la mise à jour du TTL. [#81222](https://github.com/ClickHouse/ClickHouse/pull/81222) ([Evgeniy Ulasik](https://github.com/H0uston)).
* Correction d’un filtre bloom Parquet qui appliquait à tort une condition comme `WHERE function(key) IN (...)` comme s’il s’agissait de `WHERE key IN (...)`. [#81255](https://github.com/ClickHouse/ClickHouse/pull/81255) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction d’un possible crash dans `Aggregator` en cas d’exception pendant une fusion. [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat)).
* Correction de `InterpreterInsertQuery::extendQueryLogElemImpl` afin d’ajouter des accents graves aux noms de base de données et de table lorsque nécessaire (par ex. lorsque les noms contiennent des caractères spéciaux comme `-`). [#81528](https://github.com/ClickHouse/ClickHouse/pull/81528) ([Ilia Shvyrialkin](https://github.com/Harzu)).
* Correction de l’exécution de `IN` avec `transform_null_in=1` lorsqu’il y a une valeur NULL dans l’argument de gauche et un résultat de sous-requête non Nullable. [#81584](https://github.com/ClickHouse/ClickHouse/pull/81584) ([Pavel Kruglov](https://github.com/Avogar)).
* Ne pas valider les types expérimentaux/suspects lors de l’exécution des expressions default/materialize pendant la lecture depuis une table existante. [#81618](https://github.com/ClickHouse/ClickHouse/pull/81618) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de « Context has expired » pendant les fusions lorsqu’un dict est utilisé dans une expression TTL. [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la monotonie de la fonction cast. [#81722](https://github.com/ClickHouse/ClickHouse/pull/81722) ([zoomxi](https://github.com/zoomxi)).
* Correction du problème où les colonnes requises ne sont pas lues lors du traitement d’une sous-requête corrélée scalaire. Corrige [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716). [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805) ([Dmitry Novik](https://github.com/novikd)).
* Dans les versions précédentes, le serveur renvoyait un contenu excessif pour les requêtes vers `/js`. Cela clôt [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890). [#81895](https://github.com/ClickHouse/ClickHouse/pull/81895) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Auparavant, les définitions du moteur de table `MongoDB` pouvaient inclure un composant de chemin dans l’argument `host:port`, qui était ignoré silencieusement. L’intégration MongoDB refusait de charger de telles tables. Avec ce correctif, *nous autorisons le chargement de telles tables et ignorons le composant de chemin* si le moteur `MongoDB` a cinq arguments, en utilisant le nom de base de données fourni dans les arguments. *Remarque :* le correctif ne s’applique pas aux tables nouvellement créées ni aux requêtes utilisant la fonction de table `mongo`, ni aux sources de dictionnaire et aux collections nommées. [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction d’un possible plantage dans `Aggregator` en cas d’exception pendant la fusion. [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)).
* Correction de l’analyse du filtre lorsqu’une seule colonne d’alias constante est utilisée dans la requête. Corrige [#79448](https://github.com/ClickHouse/ClickHouse/issues/79448). [#82037](https://github.com/ClickHouse/ClickHouse/pull/82037) ([Dmitry Novik](https://github.com/novikd)).
* Correction de LOGICAL\_ERROR et du plantage qui en résulte lors de l’utilisation de la même colonne dans le TTL pour GROUP BY et SET. [#82054](https://github.com/ClickHouse/ClickHouse/pull/82054) ([Pablo Marcos](https://github.com/pamarcos)).
* Correction de la validation des arguments de la S3 table function lors du masquage des secrets, ce qui évite un possible `LOGICAL_ERROR` et clôt [#80620](https://github.com/ClickHouse/ClickHouse/issues/80620). [#82056](https://github.com/ClickHouse/ClickHouse/pull/82056) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction de data races dans Iceberg. [#82088](https://github.com/ClickHouse/ClickHouse/pull/82088) ([Azat Khuzhin](https://github.com/azat)).
* Correction de `DatabaseReplicated::getClusterImpl`. Si le premier élément (ou les premiers éléments) de `hosts` a `id == DROPPED_MARK` et qu’il n’existe aucun autre élément pour le même shard, le premier élément de `shards` sera un vecteur vide, ce qui entraîne `std::out_of_range`. [#82093](https://github.com/ClickHouse/ClickHouse/pull/82093) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Correction d’une erreur de copier-coller dans arraySimilarity, qui interdisait l’utilisation des poids UInt32 et Int32. Mise à jour des tests et de la documentation. [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Correction de l’erreur `Not found column` pour les requêtes avec `arrayJoin` dans une condition `WHERE` et `IndexSet`. [#82113](https://github.com/ClickHouse/ClickHouse/pull/82113) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un bug dans l’intégration du Glue catalog. Désormais, ClickHouse peut lire des tables avec des data types imbriqués dont certaines subcolumns contiennent des décimaux, par exemple : `map<string, decimal(9, 2)>`. Corrige [#81301](https://github.com/ClickHouse/ClickHouse/issues/81301). [#82114](https://github.com/ClickHouse/ClickHouse/pull/82114) ([alesapin](https://github.com/alesapin)).
* Correction d’une dégradation des performances dans SummingMergeTree introduite en 25.5 dans [https://github.com/ClickHouse/ClickHouse/pull/79051](https://github.com/ClickHouse/ClickHouse/pull/79051). [#82130](https://github.com/ClickHouse/ClickHouse/pull/82130) ([Pavel Kruglov](https://github.com/Avogar)).
* Lors du passage des settings via l’URI, la dernière valeur est prise en compte. [#82137](https://github.com/ClickHouse/ClickHouse/pull/82137) ([Sema Checherinda](https://github.com/CheSema)).
* Correction de "Context has expired" dans Iceberg. [#82146](https://github.com/ClickHouse/ClickHouse/pull/82146) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un possible interblocage pour les requêtes distantes lorsque le server subit une pression mémoire. [#82160](https://github.com/ClickHouse/ClickHouse/pull/82160) ([Kirill](https://github.com/kirillgarbar)).
* Correction d’un overflow dans les fonctions `numericIndexedVectorPointwiseAdd`, `numericIndexedVectorPointwiseSubtract`, `numericIndexedVectorPointwiseMultiply`, `numericIndexedVectorPointwiseDivide`, qui se produisait lorsqu’elles étaient appliquées à de grands nombres. [#82165](https://github.com/ClickHouse/ClickHouse/pull/82165) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Correction d’un bug dans les dépendances de table qui empêchait les materialized views de recevoir les requêtes INSERT. [#82222](https://github.com/ClickHouse/ClickHouse/pull/82222) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige une possible condition de concurrence entre le thread de suggestion et le thread principal du client. [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)).
* Désormais, ClickHouse peut lire des tables Iceberg depuis le Glue catalog après une évolution du schéma. Corrige [#81272](https://github.com/ClickHouse/ClickHouse/issues/81272). [#82301](https://github.com/ClickHouse/ClickHouse/pull/82301) ([alesapin](https://github.com/alesapin)).
* Corrige la validation des paramètres de métriques asynchrones `asynchronous_metrics_update_period_s` et `asynchronous_heavy_metrics_update_period_s`. [#82310](https://github.com/ClickHouse/ClickHouse/pull/82310) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige une erreur logique lors de la résolution du matcher dans une requête comportant plusieurs JOIN, clôt [#81969](https://github.com/ClickHouse/ClickHouse/issues/81969). [#82421](https://github.com/ClickHouse/ClickHouse/pull/82421) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ajoute une expiration au token AWS ECS afin qu'il puisse être rechargé. [#82422](https://github.com/ClickHouse/ClickHouse/pull/82422) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige un bug lié aux arguments `NULL` dans la fonction `CASE`. [#82436](https://github.com/ClickHouse/ClickHouse/pull/82436) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige des conditions de concurrence dans le client (en n'utilisant pas le contexte global) ainsi que les surcharges de `session_timezone` (auparavant, si `session_timezone` était défini, par exemple, dans `users.xml`/les options du client sur une valeur non vide, et dans le contexte de la requête sur une valeur vide, la valeur de `users.xml` était utilisée, ce qui était incorrect ; désormais, le contexte de la requête aura toujours priorité sur le contexte global). [#82444](https://github.com/ClickHouse/ClickHouse/pull/82444) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la désactivation de l'alignement sur les limites pour le buffer mis en cache dans les moteurs de table externes. Cela avait été cassé dans [https://github.com/ClickHouse/ClickHouse/pull/81868](https://github.com/ClickHouse/ClickHouse/pull/81868). [#82493](https://github.com/ClickHouse/ClickHouse/pull/82493) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un crash lorsque le stockage key-value est joint avec une clé convertie par transtypage. [#82497](https://github.com/ClickHouse/ClickHouse/pull/82497) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Corrige le masquage des valeurs de named collection dans les logs/query\_log. Clôt [#82405](https://github.com/ClickHouse/ClickHouse/issues/82405). [#82510](https://github.com/ClickHouse/ClickHouse/pull/82510) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un possible crash dans la journalisation lors de la fermeture d'une session, car `user_id` peut parfois être vide. [#82513](https://github.com/ClickHouse/ClickHouse/pull/82513) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige des cas où l'analyse de Time pouvait provoquer des problèmes avec msan. Corrige [#82477](https://github.com/ClickHouse/ClickHouse/issues/82477). [#82514](https://github.com/ClickHouse/ClickHouse/pull/82514) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Interdit de définir `threadpool_writer_pool_size` à zéro afin d'éviter que les opérations du server ne se bloquent. [#82532](https://github.com/ClickHouse/ClickHouse/pull/82532) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige `LOGICAL_ERROR` lors de l'analyse de l'expression de ROW POLICY pour les colonnes corrélées. [#82618](https://github.com/ClickHouse/ClickHouse/pull/82618) ([Dmitry Novik](https://github.com/novikd)).
* Corrige l'utilisation incorrecte des métadonnées parent dans la table function `mergeTreeProjection` lorsque `enable_shared_storage_snapshot_in_query = 1`. Cela concerne [#82634](https://github.com/ClickHouse/ClickHouse/issues/82634). [#82638](https://github.com/ClickHouse/ClickHouse/pull/82638) ([Amos Bird](https://github.com/amosbird)).
* Les fonctions `trim{Left,Right,Both}` prennent désormais en charge les chaînes d’entrée de type "FixedString(N)". Par exemple, `SELECT trimBoth(toFixedString('abc', 3), 'ac')` fonctionne désormais. [#82691](https://github.com/ClickHouse/ClickHouse/pull/82691) ([Robert Schulze](https://github.com/rschu1ze)).
* Dans AzureBlobStorage, pour la copie native, nous comparons les méthodes d’authentification ; si une exception se produit pendant cette opération, le code bascule désormais vers une lecture suivie d’une copie (c.-à-d. une copie non native). [#82693](https://github.com/ClickHouse/ClickHouse/pull/82693) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Correction de la désérialisation de `groupArraySample`/`groupArrayLast` en cas d’éléments vides (la désérialisation pouvait ignorer une partie du binaire si l’entrée était vide, ce qui pouvait entraîner une corruption lors de la lecture des données ainsi que UNKNOWN\_PACKET\_FROM\_SERVER dans le protocole TCP). Cela n’affecte pas les nombres ni les types date time. [#82763](https://github.com/ClickHouse/ClickHouse/pull/82763) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Correction du backup d’une table `Memory` vide, qui entraînait l’échec de la restauration du backup avec l’erreur `BACKUP_ENTRY_NOT_FOUND`. [#82791](https://github.com/ClickHouse/ClickHouse/pull/82791) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction de la sécurité vis-à-vis des exceptions dans la réécriture union/intersect/except\_default\_mode. Ferme [#82664](https://github.com/ClickHouse/ClickHouse/issues/82664). [#82820](https://github.com/ClickHouse/ClickHouse/pull/82820) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suivi du nombre de jobs de chargement asynchrone des tables. S’il y a des jobs en cours d’exécution, ne pas mettre à jour `tail_ptr` dans `TransactionLog::removeOldEntries`. [#82824](https://github.com/ClickHouse/ClickHouse/pull/82824) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Correction des data races dans Iceberg. [#82841](https://github.com/ClickHouse/ClickHouse/pull/82841) ([Azat Khuzhin](https://github.com/azat)).
* L’optimisation du setting `use_skip_indexes_if_final_exact_mode` (introduite en 25.6) pouvait ne pas sélectionner une plage candidate pertinente selon les settings du moteur `MergeTree` ou la distribution des données. Ce problème est désormais résolu. [#82879](https://github.com/ClickHouse/ClickHouse/pull/82879) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Définition du salt pour les données d’authentification lors de l’analyse depuis l’AST avec le type SCRAM\_SHA256\_PASSWORD. [#82888](https://github.com/ClickHouse/ClickHouse/pull/82888) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Lors de l’utilisation d’une implémentation de Database sans mise en cache, les métadonnées de la table correspondante sont supprimées après le renvoi des colonnes et la référence est invalidée. [#82939](https://github.com/ClickHouse/ClickHouse/pull/82939) ([buyval01](https://github.com/buyval01)).
* Correction de la modification du filtre pour les queries avec une expression JOIN sur une table utilisant le moteur `Merge`. Corrige [#82092](https://github.com/ClickHouse/ClickHouse/issues/82092). [#82950](https://github.com/ClickHouse/ClickHouse/pull/82950) ([Dmitry Novik](https://github.com/novikd)).
* Correction de LOGICAL\_ERROR dans QueryMetricLog : Mutex cannot be NULL. [#82979](https://github.com/ClickHouse/ClickHouse/pull/82979) ([Pablo Marcos](https://github.com/pamarcos)).
* Correction d’une sortie incorrecte de la fonction `formatDateTime` lorsque le Formatter `%f` est utilisé avec des Formatter de taille variable (par ex. `%M`). [#83020](https://github.com/ClickHouse/ClickHouse/pull/83020) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction d’une dégradation des performances avec l’analyzer activé lorsque les queries secondaires lisaient systématiquement toutes les colonnes des VIEWs. Corrige [#81718](https://github.com/ClickHouse/ClickHouse/issues/81718). [#83036](https://github.com/ClickHouse/ClickHouse/pull/83036) ([Dmitry Novik](https://github.com/novikd)).
* Corrige un message d’erreur trompeur lors de la restauration d’une sauvegarde sur un disque en lecture seule. [#83051](https://github.com/ClickHouse/ClickHouse/pull/83051) ([Julia Kartseva](https://github.com/jkartseva)).
* Ne vérifie pas les dépendances cycliques lors d’un `CREATE TABLE` sans dépendances. Cela corrige la dégradation des performances dans les cas d’usage impliquant la création de milliers de tables, introduite dans [https://github.com/ClickHouse/ClickHouse/pull/65405](https://github.com/ClickHouse/ClickHouse/pull/65405). [#83077](https://github.com/ClickHouse/ClickHouse/pull/83077) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un problème de lecture implicite de valeurs Time négatives dans une table et rend la documentation plus claire. [#83091](https://github.com/ClickHouse/ClickHouse/pull/83091) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* N’utilise pas de parts sans rapport d’un dictionnaire partagé dans la fonction `lowCardinalityKeys`. [#83118](https://github.com/ClickHouse/ClickHouse/pull/83118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la régression dans l’utilisation des sous-colonnes avec les vues matérialisées. Cela corrige : [#82784](https://github.com/ClickHouse/ClickHouse/issues/82784). [#83221](https://github.com/ClickHouse/ClickHouse/pull/83221) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige un crash du client dû à une connexion laissée dans un état déconnecté après un INSERT invalide. [#83253](https://github.com/ClickHouse/ClickHouse/pull/83253) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un crash lors du calcul de la taille d’un bloc contenant des colonnes vides. [#83271](https://github.com/ClickHouse/ClickHouse/pull/83271) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un crash possible du type Variant dans UNION. [#83295](https://github.com/ClickHouse/ClickHouse/pull/83295) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige LOGICAL\_ERROR dans clickhouse-local pour les requêtes SYSTEM non prises en charge. [#83333](https://github.com/ClickHouse/ClickHouse/pull/83333) ([Surya Kant Ranjan](https://github.com/iit2009046)).
* Corrige `no_sign_request` pour le client S3. Il peut être utilisé pour éviter explicitement de signer les requêtes S3. Il peut aussi être défini pour des points de terminaison spécifiques à l’aide de paramètres basés sur les points de terminaison. [#83379](https://github.com/ClickHouse/ClickHouse/pull/83379) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un crash pouvant survenir pour une requête avec le paramètre 'max\_threads=1' lorsqu’elle est exécutée sous charge avec l’ordonnancement CPU activé. [#83387](https://github.com/ClickHouse/ClickHouse/pull/83387) ([Fan Ziqi](https://github.com/f2quantum)).
* Corrige l’exception `TOO_DEEP_SUBQUERIES` lorsqu’une définition de CTE référence une autre expression de table portant le même nom. [#83413](https://github.com/ClickHouse/ClickHouse/pull/83413) ([Dmitry Novik](https://github.com/novikd)).
* Corrige le comportement incorrect où l’exécution de `REVOKE S3 ON system.*` révoque les permissions S3 pour `*.*`. Cela corrige [#83417](https://github.com/ClickHouse/ClickHouse/issues/83417). [#83420](https://github.com/ClickHouse/ClickHouse/pull/83420) ([pufit](https://github.com/pufit)).
* Ne partage pas `async&#95;read&#95;counters` entre les requêtes. [#83423](https://github.com/ClickHouse/ClickHouse/pull/83423) ([Azat Khuzhin](https://github.com/azat)).
* Désactive les répliques parallèles lorsqu’une sous-requête contient FINAL. [#83455](https://github.com/ClickHouse/ClickHouse/pull/83455) ([zoomxi](https://github.com/zoomxi)).
* Résout un léger dépassement d’entier dans la configuration du paramètre `role_cache_expiration_time_seconds` (issue [#83374](https://github.com/ClickHouse/ClickHouse/issues/83374)). [#83461](https://github.com/ClickHouse/ClickHouse/pull/83461) ([wushap](https://github.com/wushap)).
* Corrige un bug introduit dans [https://github.com/ClickHouse/ClickHouse/pull/79963](https://github.com/ClickHouse/ClickHouse/pull/79963). Lors d'un insert dans une MV avec un definer, la vérification des permissions doit utiliser les privilèges du definer. Cela corrige [#79951](https://github.com/ClickHouse/ClickHouse/issues/79951). [#83502](https://github.com/ClickHouse/ClickHouse/pull/83502) ([pufit](https://github.com/pufit)).
* Désactive l'élagage de fichiers basé sur les bornes pour les éléments de tableau Iceberg et les valeurs de map Iceberg, y compris tous leurs sous-champs imbriqués. [#83520](https://github.com/ClickHouse/ClickHouse/pull/83520) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige de possibles erreurs « File Cache non initialisé » lorsqu'il est utilisé comme stockage temporaire de données. [#83539](https://github.com/ClickHouse/ClickHouse/pull/83539) ([Bharat Nallan](https://github.com/bharatnc)).
* Correctif Keeper : met correctement à jour le nombre total de watch lorsque des nœuds éphémères sont supprimés à la fermeture de la session. [#83583](https://github.com/ClickHouse/ClickHouse/pull/83583) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un problème de gestion mémoire lié à max\_untracked\_memory. [#83607](https://github.com/ClickHouse/ClickHouse/pull/83607) ([Azat Khuzhin](https://github.com/azat)).
* INSERT SELECT avec UNION ALL pouvait entraîner un déréférencement de pointeur nul dans un cas limite. Cela clôt [#83618](https://github.com/ClickHouse/ClickHouse/issues/83618). [#83643](https://github.com/ClickHouse/ClickHouse/pull/83643) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interdit la valeur zéro pour max\_insert\_block\_size, car elle pouvait provoquer une erreur logique. [#83688](https://github.com/ClickHouse/ClickHouse/pull/83688) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige une boucle infinie dans estimateCompressionRatio() avec block\_size\_bytes=0. [#83704](https://github.com/ClickHouse/ClickHouse/pull/83704) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les métriques `IndexUncompressedCacheBytes`/`IndexUncompressedCacheCells`/`IndexMarkCacheBytes`/`IndexMarkCacheFiles` (elles étaient auparavant incluses dans une métrique sans le préfixe `Cache`). [#83730](https://github.com/ClickHouse/ClickHouse/pull/83730) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un possible abort (dû à la jonction des threads de la task) et, espérons-le, des blocages (dans les tests unitaires) lors de l'arrêt de `BackgroundSchedulePool`. [#83769](https://github.com/ClickHouse/ClickHouse/pull/83769) ([Azat Khuzhin](https://github.com/azat)).
* Introduit un paramètre de rétrocompatibilité pour permettre au nouvel analyseur de référencer un alias externe dans la clause WITH en cas de conflit de noms. Corrige [#82700](https://github.com/ClickHouse/ClickHouse/issues/82700). [#83797](https://github.com/ClickHouse/ClickHouse/pull/83797) ([Dmitry Novik](https://github.com/novikd)).
* Corrige un interblocage à l'arrêt dû à un verrouillage récursif du contexte pendant le nettoyage du library bridge. [#83824](https://github.com/ClickHouse/ClickHouse/pull/83824) ([Azat Khuzhin](https://github.com/azat)).

#### Amélioration de la compilation/des tests/du packaging

* Construire une bibliothèque C minimale (10 Ko) pour le lexer de ClickHouse. Cela est nécessaire pour [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977). [#81347](https://github.com/ClickHouse/ClickHouse/pull/81347) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Ajouter un test pour le lexer autonome, ainsi que le tag de test `fasttest-only`. [#82472](https://github.com/ClickHouse/ClickHouse/pull/82472) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajouter une vérification des entrées du submodule Nix. [#81691](https://github.com/ClickHouse/ClickHouse/pull/81691) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corriger une série de problèmes pouvant survenir lors de l’exécution des tests d’intégration sur localhost. [#82135](https://github.com/ClickHouse/ClickHouse/pull/82135) ([Oleg Doronin](https://github.com/dorooleg)).
* Compiler SymbolIndex sur Mac et FreeBSD. (Mais il ne fonctionnera que sur les systèmes ELF, Linux et FreeBSD). [#82347](https://github.com/ClickHouse/ClickHouse/pull/82347) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mettre à niveau Azure SDK vers la version v1.15.0. [#82747](https://github.com/ClickHouse/ClickHouse/pull/82747) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Ajouter le module de stockage de google-cloud-cpp au système de build. [#82881](https://github.com/ClickHouse/ClickHouse/pull/82881) ([Pablo Marcos](https://github.com/pamarcos)).
* Modifier `Dockerfile.ubuntu` pour clickhouse-server afin de respecter les exigences de Docker Official Library. [#83039](https://github.com/ClickHouse/ClickHouse/pull/83039) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Suite à [#83158](https://github.com/ClickHouse/ClickHouse/issues/83158), corriger le téléversement des builds sur `curl clickhouse.com`. [#83463](https://github.com/ClickHouse/ClickHouse/pull/83463) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajouter le binaire `busybox` et les outils d’installation dans `clickhouse/clickhouse-server` et les images officielles `clickhouse`. [#83735](https://github.com/ClickHouse/ClickHouse/pull/83735) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajouter la prise en charge de la variable d’environnement `CLICKHOUSE_HOST` pour spécifier l’hôte du ClickHouse server, en cohérence avec les variables d’environnement existantes `CLICKHOUSE_USER` et `CLICKHOUSE_PASSWORD`. Cela permet une configuration plus simple sans modifier directement le client ni les fichiers de configuration. [#83659](https://github.com/ClickHouse/ClickHouse/pull/83659) ([Doron David](https://github.com/dorki)).

<div id="256">
  ### Version 25.6 de ClickHouse, 2025-06-26
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Auparavant, la fonction `countMatches` arrêtait le comptage à la première correspondance vide, même si le motif l'acceptait. Pour corriger ce problème, `countMatches` continue désormais son exécution en avançant d'un caractère lorsqu'une correspondance vide se produit. Les utilisateurs qui souhaitent conserver l'ancien comportement peuvent activer le paramètre `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Mineur : imposer que les paramètres serveur `backup_threads` et `restore_threads` soient non nuls. [#80224](https://github.com/ClickHouse/ClickHouse/pull/80224) ([Raúl Marín](https://github.com/Algunenano)).
* Mineur : correction de `bitNot` pour `String`, qui renverra une chaîne terminée par un caractère nul dans la représentation mémoire interne. Cela ne devrait pas affecter le comportement visible par l'utilisateur, mais l’auteur a souhaité signaler ce changement. [#80791](https://github.com/ClickHouse/ClickHouse/pull/80791) ([Azat Khuzhin](https://github.com/azat)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Nouveaux types de données : `Time` (\[H]HH:MM:SS) et `Time64` (\[H]HH:MM:SS\[.fractional]), ainsi que quelques fonctions de conversion de type de base et des fonctions pour interagir avec d’autres types de données. Des paramètres ont été ajoutés pour assurer la compatibilité avec la fonction existante `toTime`. Le paramètre `use_legacy_to_time` est défini afin de conserver l’ancien comportement pour le moment. [#81217](https://github.com/ClickHouse/ClickHouse/pull/81217) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). La comparaison entre Time/Time64 est désormais prise en charge. [#80327](https://github.com/ClickHouse/ClickHouse/pull/80327) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Un nouvel outil CLI, [`chdig`](https://github.com/azat/chdig/) - une interface TUI pour ClickHouse (de type top) intégrée à ClickHouse. [#79666](https://github.com/ClickHouse/ClickHouse/pull/79666) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge du paramètre `disk` pour les moteurs de base de données `Atomic` et `Ordinary`, permettant de spécifier le disque sur lequel stocker les fichiers de métadonnées des tables. [#80546](https://github.com/ClickHouse/ClickHouse/pull/80546) ([Tuan Pham Anh](https://github.com/tuanpach)). Cela permet d’attacher des bases de données depuis des sources externes.
* Un nouveau type de MergeTree, `CoalescingMergeTree` - le moteur prend la première valeur non-NULL lors des fusions en arrière-plan. Cela résout [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869). [#79344](https://github.com/ClickHouse/ClickHouse/pull/79344) ([scanhex12](https://github.com/scanhex12)).
* Prise en charge de fonctions permettant de lire du WKB ("Well-Known Binary" est un format d’encodage binaire de différents types géométriques, utilisé dans les applications SIG). Voir [#43941](https://github.com/ClickHouse/ClickHouse/issues/43941). [#80139](https://github.com/ClickHouse/ClickHouse/pull/80139) ([scanhex12](https://github.com/scanhex12)).
* Ajout de l’ordonnancement par slots des requêtes pour les workloads ; voir [workload scheduling](/fr/concepts/features/configuration/server-config/workload-scheduling#query_scheduling) pour plus de détails. [#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa)).
* Fonctions utilitaires `timeSeries*` pour accélérer certains scénarios lors du traitement de données de séries temporelles : - rééchantillonner les données sur une grille temporelle avec un timestamp de début, un timestamp de fin et un pas spécifiés - calculer les fonctions de type PromQL `delta`, `rate`, `idelta` et `irate`. [#80590](https://github.com/ClickHouse/ClickHouse/pull/80590) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout des fonctions `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` pour filtrer sur les valeurs de map, ainsi que de leur prise en charge dans les index basés sur un bloom filter. [#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus)).
* Désormais, les contraintes sur les paramètres peuvent spécifier un ensemble de valeurs non autorisées. [#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout d’un paramètre `enable_shared_storage_snapshot_in_query` pour activer le partage du même snapshot de stockage entre toutes les sous-requêtes d’une même requête. Cela garantit des lectures cohérentes depuis la même table, même lorsque celle-ci est référencée plusieurs fois dans une requête. [#79471](https://github.com/ClickHouse/ClickHouse/pull/79471) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge de l’écriture des colonnes `JSON` vers `Parquet` et de la lecture directe des colonnes `JSON` depuis `Parquet`. [#79649](https://github.com/ClickHouse/ClickHouse/pull/79649) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Ajout de la prise en charge de `MultiPolygon` pour `pointInPolygon`. [#79773](https://github.com/ClickHouse/ClickHouse/pull/79773) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Ajoute la prise en charge des requêtes sur des tables Delta montées sur le système de fichiers local via la fonction de table `deltaLakeLocal`. [#79781](https://github.com/ClickHouse/ClickHouse/pull/79781) ([roykim98](https://github.com/roykim98)).
* Ajoute le nouveau paramètre `cast_string_to_date_time_mode`, qui permet de choisir le mode d’analyse de DateTime lors d’une conversion depuis String. [#80210](https://github.com/ClickHouse/ClickHouse/pull/80210) ([Pavel Kruglov](https://github.com/Avogar)). Par exemple, vous pouvez le définir sur le mode best effort.
* Ajout des fonctions `bech32Encode` et `bech32Decode` pour utiliser l’algorithme Bech de Bitcoin (issue [#40381](https://github.com/ClickHouse/ClickHouse/issues/40381)). [#80239](https://github.com/ClickHouse/ClickHouse/pull/80239) ([George Larionov](https://github.com/glarik)).
* Ajoute des fonctions SQL pour analyser les noms des parts MergeTree. [#80573](https://github.com/ClickHouse/ClickHouse/pull/80573) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Permet de filtrer les parts sélectionnées pour une requête selon le disque sur lequel elles se trouvent, en introduisant une nouvelle colonne virtuelle, `_disk_name`. [#80650](https://github.com/ClickHouse/ClickHouse/pull/80650) ([tanner-bruce](https://github.com/tanner-bruce)).
* Ajoute une page d’accueil avec la liste des outils web intégrés. Elle s’ouvre lorsqu’elle est demandée par un user agent de type navigateur. [#81129](https://github.com/ClickHouse/ClickHouse/pull/81129) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les fonctions `arrayFirst`, `arrayFirstIndex`, `arrayLast` et `arrayLastIndex` filtreront désormais les valeurs NULL renvoyées par l’expression de filtre. Dans les versions précédentes, les résultats de filtre de type Nullable n’étaient pas pris en charge. Corrige [#81113](https://github.com/ClickHouse/ClickHouse/issues/81113). [#81197](https://github.com/ClickHouse/ClickHouse/pull/81197) ([Lennard Eijsackers](https://github.com/Blokje5)).
* Il est désormais possible d’écrire `USE DATABASE name` au lieu de `USE name`. [#81307](https://github.com/ClickHouse/ClickHouse/pull/81307) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout d’une nouvelle table système `system.codecs` pour inspecter les codecs disponibles. (issue [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525)). [#81600](https://github.com/ClickHouse/ClickHouse/pull/81600) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Prise en charge des fonctions de fenêtre `lag` et `lead`. Clôt [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#82108](https://github.com/ClickHouse/ClickHouse/pull/82108) ([Dmitry Novik](https://github.com/novikd)).
* La fonction `tokens` prend désormais en charge un nouveau tokenizer, nommé `split`, particulièrement adapté aux logs. [#80195](https://github.com/ClickHouse/ClickHouse/pull/80195) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajoute la prise en charge de l’argument `--database` dans `clickhouse-local`. Vous pouvez basculer vers une base de données créée précédemment. Cela clôt [#44115](https://github.com/ClickHouse/ClickHouse/issues/44115). [#81465](https://github.com/ClickHouse/ClickHouse/pull/81465) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* Mise en œuvre, pour `Kafka2`, d'une logique de type rééquilibrage Kafka à l'aide de ClickHouse Keeper. Pour chaque réplique, nous prenons en charge deux types de verrous de partition : les verrous permanents et les verrous temporaires. La réplique essaie de conserver les verrous permanents aussi longtemps que possible ; à tout moment, elle ne détient pas plus de `all_topic_partitions / active_replicas_count` verrous permanents (ici, `all_topic_partitions` désigne le nombre total de partitions et `active_replicas_count` le nombre de répliques actives). Si elle en détient davantage, elle libère alors certaines partitions. Certaines partitions sont détenues temporairement par la réplique. Le nombre maximal de verrous temporaires sur une réplique évolue dynamiquement afin de laisser aux autres répliques la possibilité de convertir certaines partitions en verrous permanents. Lors de la mise à jour des verrous temporaires, la réplique les libère tous, puis essaie d'en reprendre d'autres. [#78726](https://github.com/ClickHouse/ClickHouse/pull/78726) ([Daria Fomina](https://github.com/sinfillo)).
* Amélioration de l'index textuel expérimental : les paramètres explicites sont désormais pris en charge via des paires clé-valeur. Actuellement, les paramètres pris en charge sont un `tokenizer` obligatoire et deux paramètres facultatifs, `max_rows_per_postings_list` et `ngram_size`. [#80262](https://github.com/ClickHouse/ClickHouse/pull/80262) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Auparavant, le stockage `packed` n'était pas pris en charge pour l'index de texte intégral, car l'ID de segment était mis à jour à la volée par lecture et écriture du fichier `.gin_sid` sur disque. Avec le stockage `packed`, la lecture d'une valeur depuis le fichier non validé n'était pas prise en charge, ce qui posait problème. C'est désormais corrigé. [#80852](https://github.com/ClickHouse/ClickHouse/pull/80852) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Les index expérimentaux de type `gin` (une appellation que je n'aime pas, car c'est une blague interne parmi les hackers de PostgreSQL) ont été renommés en `text`. Les index existants de type `gin` peuvent toujours être chargés, mais ils lèveront une exception (suggérant d'utiliser des index `text` à la place) lorsqu'on essaiera de les utiliser pour des recherches. [#80855](https://github.com/ClickHouse/ClickHouse/pull/80855) ([Robert Schulze](https://github.com/rschu1ze)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Ajoute la prise en charge du filtrage avec plusieurs projections, ce qui permet d’utiliser plus d’une projection pour le filtrage au niveau des parties. Cela corrige [#55525](https://github.com/ClickHouse/ClickHouse/issues/55525). Il s’agit de la deuxième étape de l’implémentation de l’index de projection, après [#78429](https://github.com/ClickHouse/ClickHouse/issues/78429). [#80343](https://github.com/ClickHouse/ClickHouse/pull/80343) ([Amos Bird](https://github.com/amosbird)).
* Utilise par défaut la stratégie de cache `SLRU` dans le cache du système de fichiers. [#75072](https://github.com/ClickHouse/ClickHouse/pull/75072) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Supprime la contention à l’étape Resize du pipeline de requête. [#77562](https://github.com/ClickHouse/ClickHouse/pull/77562) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Introduit une option permettant de déporter la (dé)compression et la (dé)sérialisation des blocs vers les threads du pipeline au lieu d’un seul thread associé à une connexion réseau. Contrôlé par le paramètre `enable_parallel_blocks_marshalling`. Cela devrait accélérer les requêtes distribuées qui transfèrent des volumes importants de données entre l’initiateur et les nœuds distants. [#78694](https://github.com/ClickHouse/ClickHouse/pull/78694) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration des performances de tous les types de filtres de Bloom. [Vidéo de la conférence OpenHouse](https://www.youtube.com/watch?v=yIVz0NKwQvA\&pp=ygUQb3BlbmhvdXNlIG9wZW5haQ%3D%3D) [#79800](https://github.com/ClickHouse/ClickHouse/pull/79800) ([Delyan Kratunov](https://github.com/dkratunov)).
* Introduit un cas optimisé dans `UniqExactSet::merge` lorsque l’un des ensembles est vide. De plus, si l’ensemble LHS est à deux niveaux et le RHS à un seul niveau, la conversion du RHS en deux niveaux n’est plus effectuée. [#79971](https://github.com/ClickHouse/ClickHouse/pull/79971) ([Nikita Taranov](https://github.com/nickitat)).
* Améliore l’efficacité de la réutilisation de la mémoire et réduit les défauts de page lors de l’utilisation de tables de hachage à deux niveaux. Cela vise à accélérer GROUP BY. [#80245](https://github.com/ClickHouse/ClickHouse/pull/80245) ([Jiebin Sun](https://github.com/jiebinn)).
* Évite les mises à jour inutiles et réduit la contention sur les verrous dans le cache des conditions de requête. [#80247](https://github.com/ClickHouse/ClickHouse/pull/80247) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimisation triviale de `concatenateBlocks`. Il est probable que cela soit bénéfique au parallel hash join. [#80328](https://github.com/ClickHouse/ClickHouse/pull/80328) ([李扬](https://github.com/taiyang-li)).
* Lors de la sélection de plages de marks à partir de la plage de clé primaire, la recherche binaire ne peut pas être utilisée si la clé primaire est enveloppée dans des fonctions. Cette PR améliore cette limitation : la recherche binaire peut toujours être appliquée lorsque la clé primaire est enveloppée dans une chaîne de fonctions toujours monotones, ou lorsque la RPN contient un élément toujours vrai. Clôt [#45536](https://github.com/ClickHouse/ClickHouse/issues/45536). [#80597](https://github.com/ClickHouse/ClickHouse/pull/80597) ([zoomxi](https://github.com/zoomxi)).
* Améliore la vitesse d’arrêt du moteur `Kafka` (suppression du délai supplémentaire de 3 secondes en cas de plusieurs tables `Kafka`). [#80796](https://github.com/ClickHouse/ClickHouse/pull/80796) ([Azat Khuzhin](https://github.com/azat)).
* Async inserts : réduit l’utilisation de la mémoire et améliore les performances des requêtes d’insertion. [#80972](https://github.com/ClickHouse/ClickHouse/pull/80972) ([Raúl Marín](https://github.com/Algunenano)).
* Ne profile pas les processeurs si la table de journal est désactivée. [#81256](https://github.com/ClickHouse/ClickHouse/pull/81256) ([Raúl Marín](https://github.com/Algunenano)). Cela accélère les requêtes très courtes.
* Accélère `toFixedString` lorsque la source correspond exactement à ce qui est demandé. [#81257](https://github.com/ClickHouse/ClickHouse/pull/81257) ([Raúl Marín](https://github.com/Algunenano)).
* Ne pas traiter les valeurs de quota si l’utilisateur n’est pas limité. [#81549](https://github.com/ClickHouse/ClickHouse/pull/81549) ([Raúl Marín](https://github.com/Algunenano)). Cela accélère les requêtes très courtes.
* Correction d’une régression des performances du suivi de la mémoire. [#81694](https://github.com/ClickHouse/ClickHouse/pull/81694) ([Michael Kolupaev](https://github.com/al13n321)).
* Amélioration de l’optimisation de la clé de sharding dans les requêtes distribuées. [#78452](https://github.com/ClickHouse/ClickHouse/pull/78452) ([fhw12345](https://github.com/fhw12345)).
* Répliques parallèles : éviter d’attendre des répliques lentes et inutilisées si toutes les tâches de lecture ont été attribuées à d’autres répliques. [#80199](https://github.com/ClickHouse/ClickHouse/pull/80199) ([Igor Nikonov](https://github.com/devcrafter)).
* Les répliques parallèles utilisent un Connection timeout distinct ; voir le paramètre `parallel_replicas_connect_timeout_ms`. Auparavant, les paramètres `connect_timeout_with_failover_ms`/`connect_timeout_with_failover_secure_ms` étaient utilisés comme délais d’expiration de connexion pour les requêtes avec répliques parallèles (1 seconde par défaut). [#80421](https://github.com/ClickHouse/ClickHouse/pull/80421) ([Igor Nikonov](https://github.com/devcrafter)).
* Dans un système de fichiers avec journal, `mkdir` est écrit dans le journal du système de fichiers, qui est ensuite persisté sur disque. En cas de disque lent, cela peut prendre du temps. Ce traitement est déplacé hors de la portée du verrou de réservation. [#81371](https://github.com/ClickHouse/ClickHouse/pull/81371) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reporter la lecture des fichiers manifest Iceberg jusqu’à la première requête de lecture. [#81619](https://github.com/ClickHouse/ClickHouse/pull/81619) ([Daniil Ivanik](https://github.com/divanik)).
* Autoriser le déplacement du prédicat `GLOBAL [NOT] IN` vers la clause `PREWHERE` lorsque c’est applicable. [#79996](https://github.com/ClickHouse/ClickHouse/pull/79996) ([Eduard Karacharov](https://github.com/korowa)).

<div id="improvement">
  #### Amélioration
</div>

* `EXPLAIN SYNTAX` utilise désormais un nouvel analyseur. Il renvoie un AST construit à partir de l’arbre de requête. Ajout de l’option `query_tree_passes` pour contrôler le nombre de passes à exécuter avant de convertir l’arbre de requête en AST. [#74536](https://github.com/ClickHouse/ClickHouse/pull/74536) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Implémente une sérialisation aplatie pour Dynamic et JSON au format Native, qui permet de sérialiser/désérialiser les données Dynamic et JSON sans structures spéciales comme shared variant pour Dynamic et shared data pour JSON. Cette sérialisation peut être activée en définissant `output_format_native_use_flattened_dynamic_and_json_serialization`. Elle peut être utilisée pour faciliter la prise en charge de Dynamic et JSON dans le protocole TCP par des clients écrits dans différents langages. [#80499](https://github.com/ClickHouse/ClickHouse/pull/80499) ([Pavel Kruglov](https://github.com/Avogar)).
* Actualise les identifiants `S3` après l’erreur `AuthenticationRequired`. [#77353](https://github.com/ClickHouse/ClickHouse/pull/77353) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de métriques de dictionnaires à `system.asynchronous_metrics` - `DictionaryMaxUpdateDelay` - le délai maximal (en secondes) de mise à jour d’un dictionnaire. - `DictionaryTotalFailedUpdates` - le nombre d’erreurs depuis le dernier chargement réussi parmi tous les dictionnaires. [#78175](https://github.com/ClickHouse/ClickHouse/pull/78175) ([Vlad](https://github.com/codeworse)).
* Ajoute un avertissement concernant les bases de données potentiellement créées pour sauvegarder des tables endommagées. [#78841](https://github.com/ClickHouse/ClickHouse/pull/78841) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ajoute la colonne virtuelle `_time` dans les moteurs `S3Queue` et `AzureQueue`. [#78926](https://github.com/ClickHouse/ClickHouse/pull/78926) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Rend rechargeables à chaud les paramètres qui contrôlent l’interruption des connexions en cas de surcharge CPU. [#79052](https://github.com/ClickHouse/ClickHouse/pull/79052) ([Alexey Katsman](https://github.com/alexkats)).
* Ajoute le préfixe du conteneur aux chemins de données signalés dans system.tables pour les disques simples dans Azure Blob Storage, afin d’harmoniser le reporting avec S3 et GCP. [#79241](https://github.com/ClickHouse/ClickHouse/pull/79241) ([Julia Kartseva](https://github.com/jkartseva)).
* Désormais, clickhouse-client et local acceptent aussi les paramètres de requête sous la forme `param-<name>` (tiret), en plus de `param_<name>` (underscore). Cela clôt [#63093](https://github.com/ClickHouse/ClickHouse/issues/63093). [#79429](https://github.com/ClickHouse/ClickHouse/pull/79429) ([Engel Danila](https://github.com/aaaengel)).
* Ajoute un message d’avertissement détaillé concernant la réduction de bande passante lors de la copie de données du local vers S3 distant avec checksum activé. [#79464](https://github.com/ClickHouse/ClickHouse/pull/79464) ([VicoWu](https://github.com/VicoWu)).
* Auparavant, lorsque `input_format_parquet_max_block_size = 0` (une valeur invalide), ClickHouse restait bloqué. Ce comportement est désormais corrigé. Cela clôt [#79394](https://github.com/ClickHouse/ClickHouse/issues/79394). [#79601](https://github.com/ClickHouse/ClickHouse/pull/79601) ([abashkeev](https://github.com/abashkeev)).
* Ajoute le paramètre `throw_on_error` pour `startup_scripts` : lorsque `throw_on_error` vaut true, le serveur ne démarrera pas tant que toutes les requêtes ne se seront pas terminées avec succès. Par défaut, `throw_on_error` vaut false, ce qui préserve le comportement précédent. [#79732](https://github.com/ClickHouse/ClickHouse/pull/79732) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Permet d’ajouter `http_response_headers` à des `http_handlers` de tout type. [#79975](https://github.com/ClickHouse/ClickHouse/pull/79975) ([Andrey Zvonov](https://github.com/zvonand)).
* La fonction `reverse` prend désormais en charge le type de données `Tuple`. Clôt [#80053](https://github.com/ClickHouse/ClickHouse/issues/80053). [#80083](https://github.com/ClickHouse/ClickHouse/pull/80083) ([flynn](https://github.com/ucasfl)).
* Résout [#75817](https://github.com/ClickHouse/ClickHouse/issues/75817) : permet d’obtenir les données `auxiliary_zookeepers` depuis la table `system.zookeeper`. [#80146](https://github.com/ClickHouse/ClickHouse/pull/80146) ([Nikolay Govorov](https://github.com/mrdimidium)).
* Ajoute des métriques asynchrones sur les sockets TCP du serveur. Cela améliore l’observabilité. Clôt [#80187](https://github.com/ClickHouse/ClickHouse/issues/80187). [#80188](https://github.com/ClickHouse/ClickHouse/pull/80188) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prend en charge `anyLast_respect_nulls` et `any_respect_nulls` comme `SimpleAggregateFunction`. [#80219](https://github.com/ClickHouse/ClickHouse/pull/80219) ([Diskein](https://github.com/Diskein)).
* Supprime l’appel inutile à `adjustCreateQueryForBackup` pour les bases de données Replicated. [#80282](https://github.com/ClickHouse/ClickHouse/pull/80282) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permet d’utiliser des options supplémentaires (placées après `--`, par exemple `-- --config.value='abc'`) dans `clickhouse-local` sans signe égal. Clôt [#80292](https://github.com/ClickHouse/ClickHouse/issues/80292). [#80293](https://github.com/ClickHouse/ClickHouse/pull/80293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Met en évidence les métacaractères dans les requêtes `SHOW ... LIKE`. Cela clôt [#80275](https://github.com/ClickHouse/ClickHouse/issues/80275). [#80297](https://github.com/ClickHouse/ClickHouse/pull/80297) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rend les UDF SQL persistantes dans `clickhouse-local`. La fonction créée précédemment sera chargée au démarrage. Cela clôt [#80085](https://github.com/ClickHouse/ClickHouse/issues/80085). [#80300](https://github.com/ClickHouse/ClickHouse/pull/80300) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la description dans le plan `EXPLAIN` pour l’étape DISTINCT préliminaire. [#80330](https://github.com/ClickHouse/ClickHouse/pull/80330) ([UnamedRus](https://github.com/UnamedRus)).
* Permet d’utiliser les named collections dans ODBC/JDBC. [#80334](https://github.com/ClickHouse/ClickHouse/pull/80334) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajoute des métriques sur le nombre de disks readonly et défectueux. Journalise un indicateur lorsque `DiskLocalCheckThread` démarre. [#80391](https://github.com/ClickHouse/ClickHouse/pull/80391) ([VicoWu](https://github.com/VicoWu)).
* Implémente la prise en charge du stockage `s3_plain_rewritable` avec les projections. Dans les versions précédentes, les objets de métadonnées dans S3 faisant référence à des projections n’étaient pas mis à jour lors de leur déplacement. Clôt [#70258](https://github.com/ClickHouse/ClickHouse/issues/70258). [#80393](https://github.com/ClickHouse/ClickHouse/pull/80393) ([Sav](https://github.com/sberss)).
* La commande `SYSTEM UNFREEZE` ne tentera pas de rechercher des parts sur les disks readonly et en écriture unique. Cela clôt [#80430](https://github.com/ClickHouse/ClickHouse/issues/80430). [#80432](https://github.com/ClickHouse/ClickHouse/pull/80432) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Abaisse le log level des messages concernant les merged parts. [#80476](https://github.com/ClickHouse/ClickHouse/pull/80476) ([Hans Krutzer](https://github.com/hkrutzer)).
* Modifie le comportement par défaut du partition pruning pour les tables Iceberg. [#80583](https://github.com/ClickHouse/ClickHouse/pull/80583) ([Melvyn Peignon](https://github.com/melvynator)).
* Ajoute deux nouveaux ProfileEvents pour l’observabilité de l’algorithme de recherche d’index : `IndexBinarySearchAlgorithm` et `IndexGenericExclusionSearchAlgorithm`. [#80679](https://github.com/ClickHouse/ClickHouse/pull/80679) ([Pablo Marcos](https://github.com/pamarcos)).
* Ne pas signaler dans les logs l’absence de prise en charge de `MADV_POPULATE_WRITE` sur les anciens noyaux (pour éviter de polluer les logs). [#80704](https://github.com/ClickHouse/ClickHouse/pull/80704) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la prise en charge de `Date32` et `DateTime64` dans les expressions `TTL`. [#80710](https://github.com/ClickHouse/ClickHouse/pull/80710) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajustement des valeurs de compatibilité pour `max_merge_delayed_streams_for_parallel_write`. [#80760](https://github.com/ClickHouse/ClickHouse/pull/80760) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un crash : si une exception est levée lors d’une tentative de suppression d’un fichier temporaire (utilisé pour le spilling de données temporaires sur disque) dans le destructeur, le programme peut s’arrêter. [#80776](https://github.com/ClickHouse/ClickHouse/pull/80776) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout du modificateur `IF EXISTS` à `SYSTEM SYNC REPLICA`. [#80810](https://github.com/ClickHouse/ClickHouse/pull/80810) ([Raúl Marín](https://github.com/Algunenano)).
* Message d’exception concernant "Having zero bytes, but read range is not finished..." enrichi, ajout de la colonne finished\_download\_time à `system.filesystem_cache`. [#80849](https://github.com/ClickHouse/ClickHouse/pull/80849) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d’une section sur l’algorithme de recherche dans la sortie de `EXPLAIN` lorsqu’il est utilisé avec indexes = 1. Elle affiche soit "binary search", soit "generic exclusion search". [#80881](https://github.com/ClickHouse/ClickHouse/pull/80881) ([Pablo Marcos](https://github.com/pamarcos)).
* Au début de 2024, `prefer_column_name_to_alias` était codé en dur à true pour le handler MySQL, car le nouvel analyzer n’était pas activé par défaut. Ce codage en dur peut désormais être supprimé. [#80916](https://github.com/ClickHouse/ClickHouse/pull/80916) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Désormais, `system.iceberg_history` affiche l’historique des bases de données des catalogs comme glue ou iceberg rest. Les colonnes `table_name` et `database_name` ont également été renommées en `table` et `database` dans `system.iceberg_history` pour plus de cohérence. [#80975](https://github.com/ClickHouse/ClickHouse/pull/80975) ([alesapin](https://github.com/alesapin)).
* Autoriser le mode read-only pour la table function `merge`, afin que le grant `CREATE TEMPORARY TABLE` ne soit pas requis pour l’utiliser. [#80981](https://github.com/ClickHouse/ClickHouse/pull/80981) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Meilleure introspection des caches en mémoire (les informations sur les caches sont exposées dans `system.metrics` plutôt que dans `system.asynchronouse_metrics`, qui est incomplet). Ajout de la taille des caches en mémoire (en octets) dans `dashboard.html`. `VectorSimilarityIndexCacheSize`/`IcebergMetadataFilesCacheSize` a été renommé en `VectorSimilarityIndexCacheBytes`/`IcebergMetadataFilesCacheBytes`. [#81023](https://github.com/ClickHouse/ClickHouse/pull/81023) ([Azat Khuzhin](https://github.com/azat)).
* Ignorer les bases de données avec des engines qui ne peuvent pas contenir de tables `RocksDB` lors de la lecture de `system.rocksdb`. [#81083](https://github.com/ClickHouse/ClickHouse/pull/81083) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Autoriser `filesystem_caches` et `named_collections` dans le fichier de configuration de `clickhouse-local`. [#81105](https://github.com/ClickHouse/ClickHouse/pull/81105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de la mise en évidence de `PARTITION BY` dans les queries `INSERT`. Dans les versions précédentes, `PARTITION BY` n’était pas mis en évidence comme mot-clé. [#81106](https://github.com/ClickHouse/ClickHouse/pull/81106) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Deux petites améliorations dans l’interface Web : - gestion correcte des requêtes sans sortie, comme `CREATE`, `INSERT` (jusqu’à récemment, ces requêtes entraînaient un indicateur de chargement infini) ; - lors d’un double-clic sur une table, défilement jusqu’en haut. [#81131](https://github.com/ClickHouse/ClickHouse/pull/81131) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La métrique `MemoryResidentWithoutPageCache` fournit la quantité de mémoire physique utilisée par le processus serveur, hors userspace page cache, en octets. Cela offre une vue plus précise de l’utilisation réelle de la mémoire lorsque le userspace page cache est utilisé. Lorsque le userspace page cache est désactivé, cette valeur est égale à `MemoryResident`. [#81233](https://github.com/ClickHouse/ClickHouse/pull/81233) ([Jayme Bird](https://github.com/jaymebrd)).
* Marquer comme journalisées les exceptions enregistrées manuellement dans le client, le serveur local, le client Keeper et l’application disks, afin qu’elles ne soient pas journalisées deux fois. [#81271](https://github.com/ClickHouse/ClickHouse/pull/81271) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Les paramètres `use_skip_indexes_if_final` et `use_skip_indexes_if_final_exact_mode` ont désormais `True` comme valeur par défaut. Les requêtes avec la clause `FINAL` utiliseront désormais des skip indexes (le cas échéant) pour présélectionner les granules et liront également les granules supplémentaires correspondant aux plages de clé primaire correspondantes. Les utilisateurs qui ont besoin de l’ancien comportement avec des résultats approximatifs/imprécis peuvent définir `use_skip_indexes_if_final_exact_mode` sur FALSE après une évaluation attentive. [#81331](https://github.com/ClickHouse/ClickHouse/pull/81331) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Lorsque vous avez plusieurs requêtes dans l’interface Web, celle située sous le curseur sera exécutée. Suite de [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977). [#81354](https://github.com/ClickHouse/ClickHouse/pull/81354) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Cette PR corrige des problèmes liés à l’implémentation de `is_strict` dans les vérifications de monotonie des fonctions de conversion. Actuellement, certaines fonctions de conversion, telles que `toFloat64(UInt32)` et `toDate(UInt8)`, renvoient à tort `is_strict` à false alors qu’elles devraient renvoyer true. [#81359](https://github.com/ClickHouse/ClickHouse/pull/81359) ([zoomxi](https://github.com/zoomxi)).
* Lors de la vérification de la correspondance entre une `KeyCondition` et une plage continue, si la clé est enveloppée dans une chaîne de fonctions non stricte, un `Constraint::POINT` peut devoir être converti en `Constraint::RANGE`. Par exemple : `toDate(event_time) = '2025-06-03'` implique une plage pour `event_time` : \['2025-06-03 00:00:00', '2025-06-04 00:00:00'). Cette PR corrige ce comportement. [#81400](https://github.com/ClickHouse/ClickHouse/pull/81400) ([zoomxi](https://github.com/zoomxi)).
* Les alias `clickhouse`/`ch` invoqueront `clickhouse-client` au lieu de `clickhouse-local` si `--host` ou `--port` sont spécifiés. Suite de [#79422](https://github.com/ClickHouse/ClickHouse/issues/79422). Résout [#65252](https://github.com/ClickHouse/ClickHouse/issues/65252). [#81509](https://github.com/ClickHouse/ClickHouse/pull/81509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Maintenant que nous disposons des données de distribution du temps de réponse de Keeper, nous pouvons ajuster les buckets de l’histogramme pour les métriques. [#81516](https://github.com/ClickHouse/ClickHouse/pull/81516) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajout de l’événement de profil `PageCacheReadBytes`. [#81742](https://github.com/ClickHouse/ClickHouse/pull/81742) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une erreur logique dans le filesystem cache : "Having zero bytes but range is not finished". [#81868](https://github.com/ClickHouse/ClickHouse/pull/81868) ([Kseniia Sumarokova](https://github.com/kssenii)).

#### Correction de bug (comportement incorrect visible par l’utilisateur dans une version stable officielle)

* Correction d’une parameterized view avec une requête SELECT EXCEPT. Clôture [#49447](https://github.com/ClickHouse/ClickHouse/issues/49447). [#57380](https://github.com/ClickHouse/ClickHouse/pull/57380) ([Nikolay Degterinsky](https://github.com/evillique)).
* Analyzer : correction du nom de la projection de colonne après promotion du type de colonne dans une jointure. Clôture [#63345](https://github.com/ClickHouse/ClickHouse/issues/63345). [#63519](https://github.com/ClickHouse/ClickHouse/pull/63519) ([Dmitry Novik](https://github.com/novikd)).
* Correction d’une erreur logique en cas de conflit de noms de colonnes lorsque analyzer\_compatibility\_join\_using\_top\_level\_identifier est activé. [#75676](https://github.com/ClickHouse/ClickHouse/pull/75676) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction de l’utilisation des CTE dans les prédicats poussés vers le bas lorsque `allow_push_predicate_ast_for_distributed_subqueries` est activé. Corrige [#75647](https://github.com/ClickHouse/ClickHouse/issues/75647). Corrige [#79672](https://github.com/ClickHouse/ClickHouse/issues/79672). [#77316](https://github.com/ClickHouse/ClickHouse/pull/77316) ([Dmitry Novik](https://github.com/novikd)).
* Correction d’un problème où SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo' signalait un succès même lorsque la replica spécifiée n’existait pas. La commande vérifie désormais correctement que la replica existe dans Keeper avant de tenter la synchronisation. [#78405](https://github.com/ClickHouse/ClickHouse/pull/78405) ([Jayme Bird](https://github.com/jaymebrd)).
* Correction d’un crash dans un cas très spécifique où la fonction `currentDatabase` était utilisée dans des sections `CONSTRAINT` pour des queries `ON CLUSTER`. Clôture [#78100](https://github.com/ClickHouse/ClickHouse/issues/78100). [#79070](https://github.com/ClickHouse/ClickHouse/pull/79070) ([pufit](https://github.com/pufit)).
* Correction de la transmission des rôles externes dans les queries inter-serveurs. [#79099](https://github.com/ClickHouse/ClickHouse/pull/79099) ([Andrey Zvonov](https://github.com/zvonand)).
* Utilise IColumn au lieu de Field dans SingleValueDataGeneric. Cela corrige des valeurs de retour incorrectes pour certaines aggregate functions comme `argMax` pour les types `Dynamic/Variant/JSON`. [#79166](https://github.com/ClickHouse/ClickHouse/pull/79166) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de l’application des paramètres use\_native\_copy et allow\_azure\_native\_copy pour Azure blob storage, avec mise à jour pour n’utiliser la copie native que lorsque les credentials correspondent. Corrige [#78964](https://github.com/ClickHouse/ClickHouse/issues/78964). [#79561](https://github.com/ClickHouse/ClickHouse/pull/79561) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Correction d’erreurs logiques liées à une portée d’origine inconnue d’une colonne, produites lors de la vérification du caractère correlated de cette colonne. Corrige [#78183](https://github.com/ClickHouse/ClickHouse/issues/78183). Corrige [#79451](https://github.com/ClickHouse/ClickHouse/issues/79451). [#79727](https://github.com/ClickHouse/ClickHouse/pull/79727) ([Dmitry Novik](https://github.com/novikd)).
* Correction de résultats incorrects pour les grouping sets avec ColumnConst et Analyzer. [#79743](https://github.com/ClickHouse/ClickHouse/pull/79743) ([Andrey Zvonov](https://github.com/zvonand)).
* Correction de la duplication du résultat du shard local lors de la lecture depuis une distributed table avec une replica locale stale. [#79761](https://github.com/ClickHouse/ClickHouse/pull/79761) ([Eduard Karacharov](https://github.com/korowa)).
* Correction de l’ordre de tri des NaN avec un bit de signe négatif. [#79847](https://github.com/ClickHouse/ClickHouse/pull/79847) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Désormais, GROUP BY ALL ne tient plus compte de la partie GROUPING. [#79915](https://github.com/ClickHouse/ClickHouse/pull/79915) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction d’une fusion d’états incorrecte pour les fonctions `TopK` / `TopKWeighted`, qui provoquait des valeurs d’erreur excessives même lorsque la capacité n’était pas atteinte. [#79939](https://github.com/ClickHouse/ClickHouse/pull/79939) ([Joel Höner](https://github.com/athre0z)).
* Respect du paramètre `readonly` dans l’object storage `azure_blob_storage`. [#79954](https://github.com/ClickHouse/ClickHouse/pull/79954) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction de résultats de query incorrects et de plantages par manque de mémoire lors de l’utilisation de `match(column, '^…')` avec des caractères échappés par une barre oblique inversée. [#79969](https://github.com/ClickHouse/ClickHouse/pull/79969) ([filimonov](https://github.com/filimonov)).
* Désactivation du partitionnement Hive pour les data lakes. Corrige partiellement [https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937](https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937). [#80005](https://github.com/ClickHouse/ClickHouse/pull/80005) ([Daniil Ivanik](https://github.com/divanik)).
* Les skip indexes avec des expressions lambda ne pouvaient pas être appliqués. Correction du cas où les fonctions de haut niveau dans la définition de l’index correspondent exactement à celles de la query. [#80025](https://github.com/ClickHouse/ClickHouse/pull/80025) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de la version des métadonnées lors de l’attach d’une part sur la replica exécutant la commande ATTACH\_PART depuis le journal de réplication. [#80038](https://github.com/ClickHouse/ClickHouse/pull/80038) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Les noms des Executable User Defined Functions (eUDF) ne sont pas ajoutés à la colonne `used_functions` de la table `system.query_log`, contrairement aux autres fonctions. Cette PR ajoute le nom de l’eUDF si l’eUDF a été utilisée dans la requête. [#80073](https://github.com/ClickHouse/ClickHouse/pull/80073) ([Kyamran](https://github.com/nibblerenush)).
* Correction d’une logical error dans le Arrow format avec LowCardinality(FixedString). [#80156](https://github.com/ClickHouse/ClickHouse/pull/80156) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de la lecture des subcolumns depuis le moteur Merge. [#80158](https://github.com/ClickHouse/ClickHouse/pull/80158) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un bug dans la comparaison entre types numériques dans `KeyCondition`. [#80207](https://github.com/ClickHouse/ClickHouse/pull/80207) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction de AMBIGUOUS\_COLUMN\_NAME lorsque la lazy materialization est appliquée à une table avec des projections. [#80251](https://github.com/ClickHouse/ClickHouse/pull/80251) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction d’une optimisation de comptage incorrecte pour les filtres de préfixe de chaîne comme LIKE 'ab\_c%' lors de l’utilisation de projections implicites. Cela corrige [#80250](https://github.com/ClickHouse/ClickHouse/issues/80250). [#80261](https://github.com/ClickHouse/ClickHouse/pull/80261) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une sérialisation incorrecte de champs numériques imbriqués en chaînes dans des documents MongoDB. Suppression de la limite de profondeur maximale pour les documents MongoDB. [#80289](https://github.com/ClickHouse/ClickHouse/pull/80289) ([Kirill Nikiforov](https://github.com/allmazz)).
* Vérifications des métadonnées moins strictes pour RMT dans la base de données Replicated. Clôt [#80296](https://github.com/ClickHouse/ClickHouse/issues/80296). [#80298](https://github.com/ClickHouse/ClickHouse/pull/80298) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de la représentation textuelle de DateTime et DateTime64 pour le stockage PostgreSQL. [#80301](https://github.com/ClickHouse/ClickHouse/pull/80301) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Autorise `DateTime` avec fuseau horaire dans les tables `StripeLog`. Cela résout [#44120](https://github.com/ClickHouse/ClickHouse/issues/44120). [#80304](https://github.com/ClickHouse/ClickHouse/pull/80304) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Désactive le filter-push-down pour les prédicats contenant une fonction non déterministe lorsque l’étape du plan de requête modifie le nombre de lignes. Corrige [#40273](https://github.com/ClickHouse/ClickHouse/issues/40273). [#80329](https://github.com/ClickHouse/ClickHouse/pull/80329) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige de possibles erreurs logiques et plantages dans les projections avec des sous-colonnes. [#80333](https://github.com/ClickHouse/ClickHouse/pull/80333) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige l’erreur `NOT_FOUND_COLUMN_IN_BLOCK` causée par l’optimisation du filter-push-down à l’étape logique de JOIN lorsque l’expression `ON` n’est pas une égalité triviale. Corrige [#79647](https://github.com/ClickHouse/ClickHouse/issues/79647) Corrige [#77848](https://github.com/ClickHouse/ClickHouse/issues/77848). [#80360](https://github.com/ClickHouse/ClickHouse/pull/80360) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un résultat incorrect lors de la lecture de clés triées dans l’ordre inverse dans des tables partitionnées. Cela corrige [#79987](https://github.com/ClickHouse/ClickHouse/issues/79987). [#80448](https://github.com/ClickHouse/ClickHouse/pull/80448) ([Amos Bird](https://github.com/amosbird)).
* Corrige un tri incorrect dans les tables avec une clé Nullable et `optimize_read_in_order` activé. [#80515](https://github.com/ClickHouse/ClickHouse/pull/80515) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Corrige le blocage de DROP d’une vue matérialisée rafraîchissable si la vue avait été mise en pause avec SYSTEM STOP REPLICATED VIEW. [#80543](https://github.com/ClickHouse/ClickHouse/pull/80543) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige l’erreur 'Cannot find column' avec un Tuple constant dans une requête distribuée. [#80596](https://github.com/ClickHouse/ClickHouse/pull/80596) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige la fonction `shardNum` dans les tables Distributed avec `join_use_nulls`. [#80612](https://github.com/ClickHouse/ClickHouse/pull/80612) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige un résultat incorrect lors de la lecture d’une colonne présente uniquement dans un sous-ensemble de tables avec le moteur Merge. [#80643](https://github.com/ClickHouse/ClickHouse/pull/80643) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un possible problème avec le protocole SSH (en raison d’un blocage dans replxx). [#80688](https://github.com/ClickHouse/ClickHouse/pull/80688) ([Azat Khuzhin](https://github.com/azat)).
* Le timestamp dans la table iceberg\_history devrait désormais être correct. [#80711](https://github.com/ClickHouse/ClickHouse/pull/80711) ([Melvyn Peignon](https://github.com/melvynator)).
* Corrige un possible plantage en cas d’échec de l’enregistrement du dictionnaire (lorsque `CREATE DICTIONARY` échouait avec `CANNOT_SCHEDULE_TASK`, un pointeur pendant pouvait rester dans le registre des dictionnaires, ce qui entraînait ensuite un plantage). [#80714](https://github.com/ClickHouse/ClickHouse/pull/80714) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la gestion des globs enum à un seul élément dans les table functions pour le object storage. [#80716](https://github.com/ClickHouse/ClickHouse/pull/80716) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige le type de résultat incorrect des fonctions de comparaison avec Tuple(Dynamic) et String, qui entraînait une erreur logique. [#80728](https://github.com/ClickHouse/ClickHouse/pull/80728) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout de la prise en charge manquante du type de données `timestamp_ntz` pour Unity Catalog. Corrige [#79535](https://github.com/ClickHouse/ClickHouse/issues/79535), [#79875](https://github.com/ClickHouse/ClickHouse/issues/79875). [#80740](https://github.com/ClickHouse/ClickHouse/pull/80740) ([alesapin](https://github.com/alesapin)).
* Correction de l’erreur `THERE_IS_NO_COLUMN` pour les requêtes distribuées avec `IN cte`. Corrige [#75032](https://github.com/ClickHouse/ClickHouse/issues/75032). [#80757](https://github.com/ClickHouse/ClickHouse/pull/80757) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un nombre excessif de fichiers (entraînant une consommation mémoire excessive) pour ORDER BY externe. [#80777](https://github.com/ClickHouse/ClickHouse/pull/80777) ([Azat Khuzhin](https://github.com/azat)).
* Cette PR pourrait clore [#80742](https://github.com/ClickHouse/ClickHouse/issues/80742). [#80783](https://github.com/ClickHouse/ClickHouse/pull/80783) ([zoomxi](https://github.com/zoomxi)).
* Correction d’un crash dans Kafka dû au fait que get\_member\_id() créait une std::string à partir de NULL (le problème ne survenait probablement qu’en cas d’échec de connexion au broker). [#80793](https://github.com/ClickHouse/ClickHouse/pull/80793) ([Azat Khuzhin](https://github.com/azat)).
* Attente correcte des consumers avant l’arrêt du Kafka engine (des consumers actifs après l’arrêt peuvent déclencher diverses assertions de Débogage et peuvent aussi lire des données depuis les brokers en arrière-plan après la suppression/le détachement de la table). [#80795](https://github.com/ClickHouse/ClickHouse/pull/80795) ([Azat Khuzhin](https://github.com/azat)).
* Correction de `NOT_FOUND_COLUMN_IN_BLOCK`, provoquée par l’optimisation `predicate-push-down`. Corrige [#80443](https://github.com/ClickHouse/ClickHouse/issues/80443). [#80834](https://github.com/ClickHouse/ClickHouse/pull/80834) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une erreur logique lors de la résolution du sélecteur étoile (\*) dans une table function dans un JOIN avec USING. [#80894](https://github.com/ClickHouse/ClickHouse/pull/80894) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction de la comptabilisation mémoire pour le cache des fichiers de métadonnées Iceberg. [#80904](https://github.com/ClickHouse/ClickHouse/pull/80904) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un partitionnement incorrect avec une clé de partition Nullable. [#80913](https://github.com/ClickHouse/ClickHouse/pull/80913) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Correction de l’erreur `Table does not exist` pour les requêtes distribuées avec prédicat poussé vers le bas (`allow_push_predicate_ast_for_distributed_subqueries=1`) lorsque la table source n’existe pas sur l’initiateur. Corrige [#77281](https://github.com/ClickHouse/ClickHouse/issues/77281). [#80915](https://github.com/ClickHouse/ClickHouse/pull/80915) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une erreur logique dans les fonctions imbriquées avec des fenêtres nommées. [#80926](https://github.com/ClickHouse/ClickHouse/pull/80926) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Correction des extrêmes pour les colonnes Nullable et à virgule flottante. [#80970](https://github.com/ClickHouse/ClickHouse/pull/80970) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Correction d’un crash possible lors de l’exécution d’une requête sur system.tables (probablement en cas de pression mémoire). [#80976](https://github.com/ClickHouse/ClickHouse/pull/80976) ([Azat Khuzhin](https://github.com/azat)).
* Correction du renommage atomic avec truncate pour les fichiers dont la compression est déduite de leur extension. [#80979](https://github.com/ClickHouse/ClickHouse/pull/80979) ([Pablo Marcos](https://github.com/pamarcos)).
* Correction de ErrorCodes::getName. [#81032](https://github.com/ClickHouse/ClickHouse/pull/81032) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Correction d’un bug empêchant l’utilisateur de lister les tables dans Unity Catalog sans disposer des permissions sur l’ensemble d’entre elles. Désormais, toutes les tables sont correctement listées ; toute tentative de lecture d’une table restreinte lèvera une exception. [#81044](https://github.com/ClickHouse/ClickHouse/pull/81044) ([alesapin](https://github.com/alesapin)).
* Désormais, ClickHouse ignorera les erreurs et les réponses inattendues des catalogues de data lake dans la requête `SHOW TABLES`. Corrige [#79725](https://github.com/ClickHouse/ClickHouse/issues/79725). [#81046](https://github.com/ClickHouse/ClickHouse/pull/81046) ([alesapin](https://github.com/alesapin)).
* Correction de l’analyse de DateTime64 à partir d’entiers dans JSONExtract et lors de l’analyse du type JSON. [#81050](https://github.com/ClickHouse/ClickHouse/pull/81050) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en compte du paramètre date\_time\_input\_format dans le cache d’inférence de schéma. [#81052](https://github.com/ClickHouse/ClickHouse/pull/81052) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un crash sur INSERT si la table avait été DROP après le démarrage de la requête, mais avant l’envoi des colonnes. [#81053](https://github.com/ClickHouse/ClickHouse/pull/81053) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une utilisation de valeur non initialisée dans quantileDeterministic. [#81062](https://github.com/ClickHouse/ClickHouse/pull/81062) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la gestion du nombre de hardlinks pour les transactions du disk metadatastoragefromdisk. Ajout de tests. [#81066](https://github.com/ClickHouse/ClickHouse/pull/81066) ([Sema Checherinda](https://github.com/CheSema)).
* Les noms des User Defined Functions (UDF) ne sont pas ajoutés à la table `system.query_log`, contrairement aux autres fonctions. Cette PR ajoute le nom de l’UDF à l’une des deux colonnes `used_executable_user_defined_functions` ou `used_sql_user_defined_functions` si l’UDF a été utilisée dans la requête. [#81101](https://github.com/ClickHouse/ClickHouse/pull/81101) ([Kyamran](https://github.com/nibblerenush)).
* Correction des erreurs `Too large size ... passed to allocator` ou des crashs possibles sur les inserts via HTTP protocol avec des text formats (`JSON`, `Values`, ...) et des champs `Enum` omis. [#81145](https://github.com/ClickHouse/ClickHouse/pull/81145) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de LOGICAL\_ERROR dans le cas d’une colonne Sparse dans un block INSERT envoyé vers une MV non-MT. [#81161](https://github.com/ClickHouse/ClickHouse/pull/81161) ([Azat Khuzhin](https://github.com/azat)).
* Correction de `Unknown table expression identifier` pour `distributed_product_mode_local=local` avec réplication croisée. [#81162](https://github.com/ClickHouse/ClickHouse/pull/81162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de la mise en cache incorrecte du nombre de lignes dans les fichiers Parquet après filtrage. [#81184](https://github.com/ClickHouse/ClickHouse/pull/81184) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction du paramètre fs cache max\_size\_to\_total\_space lorsqu’il est utilisé avec un chemin de cache relatif. [#81237](https://github.com/ClickHouse/ClickHouse/pull/81237) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un crash de clickhouse-local lors de la sortie de tuples ou de maps constants au format Parquet. [#81249](https://github.com/ClickHouse/ClickHouse/pull/81249) ([Michael Kolupaev](https://github.com/al13n321)).
* Vérification des offsets de tableaux reçus via le réseau. [#81269](https://github.com/ClickHouse/ClickHouse/pull/81269) ([Azat Khuzhin](https://github.com/azat)).
* Corrige certains cas limites dans les requêtes qui effectuent des jointures sur des tables vides et utilisent des fonctions de fenêtre. Le bug entraîne une explosion du nombre de flux parallèles, ce qui provoque des OOM. [#81299](https://github.com/ClickHouse/ClickHouse/pull/81299) ([Alexander Gololobov](https://github.com/davenger)).
* Correctifs pour les fonctions Cluster de data lake (`deltaLakeCluster`, `icebergCluster`, etc.) : (1) correction d’un `segfault` potentiel dans `DataLakeConfiguration` lors de l’utilisation de la fonction `Cluster` avec l’ancien analyzer ; (2) suppression des mises à jour dupliquées des métadonnées du data lake (requêtes supplémentaires vers l’object storage) ; (3) correction d’un listage redondant dans l’object storage lorsque le format n’est pas explicitement spécifié (ce qui avait déjà été fait pour les engines de data lake non cluster). [#81300](https://github.com/ClickHouse/ClickHouse/pull/81300) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Fait en sorte que l’indicateur force\_restore\_data récupère les métadonnées Keeper perdues. [#81324](https://github.com/ClickHouse/ClickHouse/pull/81324) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige une erreur de Region dans delta-kernel. Corrige [#79914](https://github.com/ClickHouse/ClickHouse/issues/79914). [#81353](https://github.com/ClickHouse/ClickHouse/pull/81353) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactive le JIT incorrect pour divideOrNull. [#81370](https://github.com/ClickHouse/ClickHouse/pull/81370) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige une erreur d’insert lorsqu’une table MergeTree a un nom de colonne de partition long. [#81390](https://github.com/ClickHouse/ClickHouse/pull/81390) ([hy123q](https://github.com/haoyangqian)).
* Rétroporté dans [#81957](https://github.com/ClickHouse/ClickHouse/issues/81957) : correction d’un crash possible dans `Aggregator` en cas d’exception pendant le merge. [#81450](https://github.com/ClickHouse/ClickHouse/pull/81450) ([Nikita Taranov](https://github.com/nickitat)).
* Ne stocke pas le contenu de plusieurs manifest files en mémoire. [#81470](https://github.com/ClickHouse/ClickHouse/pull/81470) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige un crash possible lors de l’arrêt des background pools (`background_.*pool_size`). [#81473](https://github.com/ClickHouse/ClickHouse/pull/81473) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une lecture hors limites dans le format `Npy` survenant lors de l’écriture dans une table avec le moteur `URL`. Cela clôt [#81356](https://github.com/ClickHouse/ClickHouse/issues/81356). [#81502](https://github.com/ClickHouse/ClickHouse/pull/81502) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Il est possible que la Web UI affiche `NaN%` (problèmes JavaScript typiques). [#81507](https://github.com/ClickHouse/ClickHouse/pull/81507) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `DatabaseReplicated` pour `database_replicated_enforce_synchronous_settings=1`. [#81564](https://github.com/ClickHouse/ClickHouse/pull/81564) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’ordre de tri pour les types `LowCardinality(Nullable(...))`. [#81583](https://github.com/ClickHouse/ClickHouse/pull/81583) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Le server ne doit pas conserver une HTTP connection si la requête n’a pas été entièrement lue depuis le socket. [#81595](https://github.com/ClickHouse/ClickHouse/pull/81595) ([Sema Checherinda](https://github.com/CheSema)).
* Fait en sorte que les sous-requêtes corrélées scalaires renvoient un résultat nullable de l’expression de projection. Corrige le cas où une sous-requête corrélée produit un result set vide. [#81632](https://github.com/ClickHouse/ClickHouse/pull/81632) ([Dmitry Novik](https://github.com/novikd)).
* Correction de `Unexpected relative path for a deduplicated part` lors de `ATTACH` vers `ReplicatedMergeTree`. [#81647](https://github.com/ClickHouse/ClickHouse/pull/81647) ([Azat Khuzhin](https://github.com/azat)).
* Le paramètre de requête `use_iceberg_partition_pruning` n'est pas pris en compte pour le stockage Iceberg, car il utilise le contexte global plutôt que le contexte de la requête. Ce n'est pas critique, car sa valeur par défaut est `true`. Cette PR corrige le problème. [#81673](https://github.com/ClickHouse/ClickHouse/pull/81673) ([Han Fei](https://github.com/hanfei1991)).
* Rétroporté dans [#82128](https://github.com/ClickHouse/ClickHouse/issues/82128) : correction de "Context has expired" pendant les merges lorsqu'un dict est utilisé dans une expression TTL. [#81690](https://github.com/ClickHouse/ClickHouse/pull/81690) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d'une validation pour le paramètre MergeTree `merge_max_block_size` afin de garantir qu'il n'est pas nul. [#81693](https://github.com/ClickHouse/ClickHouse/pull/81693) ([Bharat Nallan](https://github.com/bharatnc)).
* Correction de problèmes dans `clickhouse-local` liés à des requêtes `DROP VIEW ` bloquées. [#81705](https://github.com/ClickHouse/ClickHouse/pull/81705) ([Bharat Nallan](https://github.com/bharatnc)).
* Correction du join de StorageRedis dans certains cas. [#81736](https://github.com/ClickHouse/ClickHouse/pull/81736) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Correction d'un crash dans `ConcurrentHashJoin` avec `USING ()` vide et l'ancien analyseur activé. [#81754](https://github.com/ClickHouse/ClickHouse/pull/81754) ([Nikita Taranov](https://github.com/nickitat)).
* Correction dans Keeper : blocage des commits de nouveaux logs en présence d'une entrée invalide dans les logs. Auparavant, si le leader appliquait certains logs de manière incorrecte, il continuait à commit de nouveaux logs, même si le follower détectait une incohérence de digest et s'arrêtait. [#81780](https://github.com/ClickHouse/ClickHouse/pull/81780) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction du problème où les columns requises n'étaient pas lues pendant le traitement des sous-requêtes corrélées scalaires. Corrige [#81716](https://github.com/ClickHouse/ClickHouse/issues/81716). [#81805](https://github.com/ClickHouse/ClickHouse/pull/81805) ([Dmitry Novik](https://github.com/novikd)).
* Quelqu'un a mis du Kusto partout dans notre code. Cela a été nettoyé. Cela clôt [#81643](https://github.com/ClickHouse/ClickHouse/issues/81643). [#81885](https://github.com/ClickHouse/ClickHouse/pull/81885) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans les versions précédentes, le server renvoyait un contenu excessif pour les requêtes vers `/js`. Cela clôt [#61890](https://github.com/ClickHouse/ClickHouse/issues/61890). [#81895](https://github.com/ClickHouse/ClickHouse/pull/81895) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Auparavant, les définitions du table engine `MongoDB` pouvaient inclure un composant de chemin dans l'argument `host:port`, qui était ignoré sans avertissement. L'integration MongoDB refusait de charger de telles tables. Avec cette correction, *nous autorisons le chargement de telles tables et ignorons le composant de chemin* si le moteur `MongoDB` a cinq arguments, en utilisant le nom de la base de données fourni dans les arguments. *Remarque :* la correction ne s'applique pas aux tables nouvellement créées ni aux requêtes utilisant la table function `mongo`, ni aux dictionary sources et aux named collections. [#81942](https://github.com/ClickHouse/ClickHouse/pull/81942) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction d'un crash possible dans `Aggregator` en cas d'exception pendant un merge. [#82022](https://github.com/ClickHouse/ClickHouse/pull/82022) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d'une erreur de copier-coller dans `arraySimilarity`, qui interdisait l'utilisation des weights `UInt32` et `Int32`. Mise à jour des tests et de la documentation. [#82103](https://github.com/ClickHouse/ClickHouse/pull/82103) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Correction d’une possible condition de concurrence entre le thread de suggestion et le thread principal du client. [#82233](https://github.com/ClickHouse/ClickHouse/pull/82233) ([Azat Khuzhin](https://github.com/azat)).

#### Amélioration de la compilation/des tests/du packaging

* Utiliser `postgres` 16.9. [#81437](https://github.com/ClickHouse/ClickHouse/pull/81437) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utiliser `openssl` 3.2.4. [#81438](https://github.com/ClickHouse/ClickHouse/pull/81438) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utiliser `abseil-cpp` 2025-01-27. [#81440](https://github.com/ClickHouse/ClickHouse/pull/81440) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utiliser `mongo-c-driver` 1.30.4. [#81449](https://github.com/ClickHouse/ClickHouse/pull/81449) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utiliser `krb5` 1.21.3-final. [#81453](https://github.com/ClickHouse/ClickHouse/pull/81453) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utiliser `orc` 2.1.2. [#81455](https://github.com/ClickHouse/ClickHouse/pull/81455) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utiliser `grpc` 1.73.0. [#81629](https://github.com/ClickHouse/ClickHouse/pull/81629) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Utiliser `delta-kernel-rs` v0.12.1. [#81707](https://github.com/ClickHouse/ClickHouse/pull/81707) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Mettre à jour `c-ares` vers `v1.34.5`. [#81159](https://github.com/ClickHouse/ClickHouse/pull/81159) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Mettre à niveau `curl` vers 8.14 pour corriger les CVE-2025-5025 et CVE-2025-4947. [#81171](https://github.com/ClickHouse/ClickHouse/pull/81171) ([larryluogit](https://github.com/larryluogit)).
* Mettre à niveau `libarchive` vers 3.7.9 pour corriger les vulnérabilités suivantes : CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615. [#81174](https://github.com/ClickHouse/ClickHouse/pull/81174) ([larryluogit](https://github.com/larryluogit)).
* Mettre à niveau `libxml2` vers 2.14.3. [#81187](https://github.com/ClickHouse/ClickHouse/pull/81187) ([larryluogit](https://github.com/larryluogit)).
* Éviter de copier les sources Rust embarquées dans `CARGO_HOME`. [#79560](https://github.com/ClickHouse/ClickHouse/pull/79560) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Supprimer la dépendance à la bibliothèque Sentry en la remplaçant par notre propre endpoint. [#80236](https://github.com/ClickHouse/ClickHouse/pull/80236) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mettre à jour les dépendances Python dans les images CI pour corriger les alertes Dependabot. [#80658](https://github.com/ClickHouse/ClickHouse/pull/80658) ([Raúl Marín](https://github.com/Algunenano)).
* Réessayer de lire l’indicateur d’arrêt du DDL répliqué depuis Keeper au démarrage afin de rendre les tests plus robustes lorsque l’injection de fautes est activée pour Keeper. [#80964](https://github.com/ClickHouse/ClickHouse/pull/80964) ([Alexander Gololobov](https://github.com/davenger)).
* Utiliser https pour l’URL des archives Ubuntu. [#81016](https://github.com/ClickHouse/ClickHouse/pull/81016) ([Raúl Marín](https://github.com/Algunenano)).
* Mettre à jour les dépendances Python dans les images de test. [#81042](https://github.com/ClickHouse/ClickHouse/pull/81042) ([dependabot\[bot\]](https://github.com/apps/dependabot)).
* Ajout de `flake.nix` pour les builds Nix. [#81463](https://github.com/ClickHouse/ClickHouse/pull/81463) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction de `delta-kernel-rs`, qui nécessitait un accès au réseau pendant le build. Clôt [#80609](https://github.com/ClickHouse/ClickHouse/issues/80609). [#81602](https://github.com/ClickHouse/ClickHouse/pull/81602) ([Konstantin Bogdanov](https://github.com/thevar1able)). Lisez l’article [A Year of Rust in ClickHouse](https://clickhouse.com/blog/rust).

<div id="255">
  ### Version 25.5 de ClickHouse, 2025-05-22
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* La fonction `geoToH3` accepte désormais les entrées dans l'ordre (lat, lon, res) (ce qui est courant pour d'autres fonctions géométriques). Les utilisateurs qui souhaitent conserver l'ordre de résultat précédent (lon, lat, res) peuvent définir le paramètre `geotoh3_argument_order = 'lon_lat'`. [#78852](https://github.com/ClickHouse/ClickHouse/pull/78852) ([Pratima Patel](https://github.com/pratimapatel2008)).
* Ajout d'un paramètre de cache du système de fichiers, `allow_dynamic_cache_resize`, `false` par défaut, pour permettre le redimensionnement dynamique du cache du système de fichiers. Pourquoi : dans certains environnements (ClickHouse Cloud), tous les événements de scaling passent par un redémarrage du processus, et nous souhaitons que cette fonctionnalité soit explicitement désactivée afin de mieux contrôler le comportement, ainsi que par mesure de sécurité. Cette PR est marquée comme non rétrocompatible, car dans les anciennes versions, le redimensionnement dynamique du cache fonctionnait par défaut sans paramètre spécifique. [#79148](https://github.com/ClickHouse/ClickHouse/pull/79148) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suppression de la prise en charge des types d'index hérités `annoy` et `usearch`. Les deux n'étaient plus que des stubs depuis longtemps, c.-à-d. que toute tentative d'utilisation de ces index hérités renvoyait de toute façon une erreur. Si vous avez encore des index `annoy` et `usearch`, veuillez les supprimer. [#79802](https://github.com/ClickHouse/ClickHouse/pull/79802) ([Robert Schulze](https://github.com/rschu1ze)).
* Suppression du paramètre serveur `format_alter_commands_with_parentheses`. Ce paramètre a été introduit et désactivé par défaut en version 24.2. Il a été activé par défaut en version 25.2. Comme il n'existe aucune version LTS qui ne prenne pas en charge le nouveau format, nous pouvons supprimer ce paramètre. [#79970](https://github.com/ClickHouse/ClickHouse/pull/79970) ([János Benjamin Antal](https://github.com/ClickHouse/ClickHouse/pull/79970) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Active par défaut l'implémentation `delta-kernel-rs` du stockage `DeltaLake`. [#79541](https://github.com/ClickHouse/ClickHouse/pull/79541) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Si la lecture depuis une `URL` implique plusieurs redirections, le paramètre `enable_url_encoding` est correctement appliqué à toutes les redirections de la chaîne. [#79563](https://github.com/ClickHouse/ClickHouse/pull/79563) ([Shankar Iyer](https://github.com/shankar-iyer)). La valeur par défaut du paramètre `enble_url_encoding` est désormais `false`. [#80088](https://github.com/ClickHouse/ClickHouse/pull/80088) ([Shankar Iyer](https://github.com/shankar-iyer)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Prise en charge des sous-requêtes corrélées scalaires dans la clause WHERE. Clôt [#6697](https://github.com/ClickHouse/ClickHouse/issues/6697). [#79600](https://github.com/ClickHouse/ClickHouse/pull/79600) ([Dmitry Novik](https://github.com/novikd)). Prise en charge des sous-requêtes corrélées dans la liste de projection dans les cas simples. [#79925](https://github.com/ClickHouse/ClickHouse/pull/79925) ([Dmitry Novik](https://github.com/novikd)). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)). La couverture de la suite de tests TPC-H atteint désormais 100 %.
* La recherche vectorielle utilisant l’index de similarité vectorielle est désormais en bêta (elle était auparavant expérimentale). [#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze)).
* Prise en charge des types Geo au format `Parquet`. Cela clôt [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317). [#79777](https://github.com/ClickHouse/ClickHouse/pull/79777) ([scanhex12](https://github.com/scanhex12)).
* Nouvelles fonctions `sparseGrams`, `sparseGramsHashes`, `sparseGramsHashesUTF8`, `sparseGramsUTF8` pour calculer des « sparse-ngrams » — un algorithme robuste pour extraire des sous-chaînes à des fins d’indexation et de recherche. [#79517](https://github.com/ClickHouse/ClickHouse/pull/79517) ([scanhex12](https://github.com/scanhex12)).
* `clickhouse-local` (et sa forme abrégée `ch`) utilise désormais un `FROM table` implicite lorsqu’il y a des données d’entrée à traiter. Cela clôt [#65023](https://github.com/ClickHouse/ClickHouse/issues/65023). L’inférence du format a également été activée dans `clickhouse-local` si `--input-format` n’est pas spécifié et qu’il traite un fichier ordinaire. [#79085](https://github.com/ClickHouse/ClickHouse/pull/79085) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout des fonctions `stringBytesUniq` et `stringBytesEntropy` pour rechercher des données potentiellement aléatoires ou chiffrées. [#79350](https://github.com/ClickHouse/ClickHouse/pull/79350) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)).
* Ajout de fonctions d’encodage et de décodage en base32. [#79809](https://github.com/ClickHouse/ClickHouse/pull/79809) ([Joanna Hulboj](https://github.com/jh0x)).
* Ajout des fonctions `getServerSetting` et `getMergeTreeSetting`. Clôt #78318. [#78439](https://github.com/ClickHouse/ClickHouse/pull/78439) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)).
* Ajout du nouveau paramètre `iceberg_enable_version_hint` pour exploiter le fichier `version-hint.text`. [#78594](https://github.com/ClickHouse/ClickHouse/pull/78594) ([Arnaud Briche](https://github.com/arnaudbriche)).
* Permet de tronquer des tables spécifiques d’une base de données, filtrées avec le mot-clé `LIKE`. [#78597](https://github.com/ClickHouse/ClickHouse/pull/78597) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Prise en charge de la colonne virtuelle `_part_starting_offset` dans les tables de la famille `MergeTree`. Cette colonne représente le nombre cumulé de lignes de toutes les parts précédentes, calculé au moment de la requête à partir de la liste actuelle des parts. Les valeurs cumulées sont conservées pendant toute l’exécution de la requête et restent valides même après le part pruning. La logique interne correspondante a été remaniée pour prendre en charge ce comportement. [#79417](https://github.com/ClickHouse/ClickHouse/pull/79417) ([Amos Bird](https://github.com/amosbird)).
* Ajout des fonctions `divideOrNull`,`moduloOrNull`, `intDivOrNull`,`positiveModuloOrNull` pour renvoyer NULL lorsque l’argument de droite est égal à zéro. [#78276](https://github.com/ClickHouse/ClickHouse/pull/78276) ([kevinyhzou](https://github.com/KevinyhZou)).
* La recherche vectorielle de ClickHouse prend désormais en charge à la fois le pré-filtrage et le post-filtrage, et fournit les paramètres associés pour un contrôle plus fin. (issue [#78161](https://github.com/ClickHouse/ClickHouse/issues/78161)). [#79854](https://github.com/ClickHouse/ClickHouse/pull/79854) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Ajout des fonctions [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) et [`icebergBucket`](https://iceberg.apache.org/spec/#bucket-transform-details). Prise en charge de l’élagage des fichiers de données dans les tables `Iceberg` partitionnées à l’aide de la [`transformation bucket`](https://iceberg.apache.org/spec/#partitioning). [#79262](https://github.com/ClickHouse/ClickHouse/pull/79262) ([Daniil Ivanik](https://github.com/divanik)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* Nouveaux types de données `Time`/`Time64` : `Time` (HHH:MM:SS) et `Time64` (HHH:MM:SS.`<fractional>`), ainsi que quelques fonctions de conversion de base et des fonctions permettant d'interagir avec d'autres types de données. En outre, le nom de la fonction existante a été changé de toTime en toTimeWithFixedDate, car la fonction toTime est requise pour la fonction de conversion. [#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  72459\).
* Catalogue metastore Hive pour le datalake Iceberg. [#77677](https://github.com/ClickHouse/ClickHouse/pull/77677) ([scanhex12](https://github.com/scanhex12)).
* Les index de type `full_text` ont été renommés en `gin`. Cela reprend une terminologie plus familière dans PostgreSQL et d'autres bases de données. Les index existants de type `full_text` peuvent toujours être chargés, mais ils déclencheront une exception (suggérant à la place des index `gin`) si l'on tente de les utiliser pour des recherches. [#79024](https://github.com/ClickHouse/ClickHouse/pull/79024) ([Robert Schulze](https://github.com/rschu1ze)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Modifie le format des parts compactes pour enregistrer des marques pour chaque sous-flux, afin de permettre la lecture de sous-colonnes individuelles. L’ancien format compact reste pris en charge en lecture et peut être activé en écriture à l’aide du paramètre MergeTree `write_marks_for_substreams_in_compact_parts`. Il est désactivé par défaut pour sécuriser les montées de version, car il modifie le stockage des parts compactes. Il sera activé par défaut dans l’une des prochaines versions. [#77940](https://github.com/ClickHouse/ClickHouse/pull/77940) ([Pavel Kruglov](https://github.com/Avogar)).
* Permet de déplacer vers prewhere les conditions portant sur des sous-colonnes. [#79489](https://github.com/ClickHouse/ClickHouse/pull/79489) ([Pavel Kruglov](https://github.com/Avogar)).
* Accélère les index secondaires en évaluant leurs expressions sur plusieurs granules à la fois. [#64109](https://github.com/ClickHouse/ClickHouse/pull/64109) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Active `compile_expressions` (compilateur JIT pour des fragments d’expressions ordinaires) par défaut. Cela clôt [#51264](https://github.com/ClickHouse/ClickHouse/issues/51264), [#56386](https://github.com/ClickHouse/ClickHouse/issues/56386) et [#66486](https://github.com/ClickHouse/ClickHouse/issues/66486). [#79907](https://github.com/ClickHouse/ClickHouse/pull/79907) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nouveau paramètre introduit : `use_skip_indexes_in_final_exact_mode`. Si une requête sur une table `ReplacingMergeTree` comporte la clause FINAL, lire uniquement les plages de table à partir des skip indexes peut produire un résultat incorrect. Ce paramètre permet de garantir des résultats corrects en analysant les parts les plus récentes qui chevauchent les plages de clés primaires renvoyées par le skip index. Définissez 0 pour désactiver, 1 pour activer. [#78350](https://github.com/ClickHouse/ClickHouse/pull/78350) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Les table functions de cluster pour le stockage objet (par ex. `s3Cluster`) attribuent désormais les fichiers aux répliques pour la lecture à l’aide d’un consistent hash afin d’améliorer la localité du cache. [#77326](https://github.com/ClickHouse/ClickHouse/pull/77326) ([Andrej Hoos](https://github.com/adikus)).
* Améliore les performances de `S3Queue`/`AzureQueue` en permettant des INSERT en parallèle (activation possible avec le paramètre de queue `parallel_inserts=true`). Auparavant, S3Queue/AzureQueue ne pouvait exécuter en parallèle que la première partie du pipeline (téléchargement, parsing) ; les INSERT étaient single-threaded. Or, les `INSERT` sont presque toujours le goulot d’étranglement. Désormais, les performances évolueront de façon presque linéaire avec `processing_threads_num`. [#77671](https://github.com/ClickHouse/ClickHouse/pull/77671) ([Azat Khuzhin](https://github.com/azat)). max\_processed\_files\_before\_commit plus équitable dans S3Queue/AzureQueue. [#79363](https://github.com/ClickHouse/ClickHouse/pull/79363) ([Azat Khuzhin](https://github.com/azat)).
* Introduit un seuil (réglé par le paramètre `parallel_hash_join_threshold`) pour revenir à l’algorithme `hash` lorsque la taille de la table de droite est inférieure à ce seuil. [#76185](https://github.com/ClickHouse/ClickHouse/pull/76185) ([Nikita Taranov](https://github.com/nickitat)).
* Utilise désormais le nombre de répliques pour déterminer la taille des tâches lors de la lecture avec les répliques parallèles activées. Cela assure une meilleure répartition du travail entre les répliques lorsque la quantité de données à lire n’est pas très importante. [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)).
* Permet la fusion parallèle des états `uniqExact` durant l’étape finale de l’agrégation distribuée. [#78703](https://github.com/ClickHouse/ClickHouse/pull/78703) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige une possible dégradation des performances de la fusion parallèle des états `uniqExact` pour l’agrégation avec clé. [#78724](https://github.com/ClickHouse/ClickHouse/pull/78724) ([Nikita Taranov](https://github.com/nickitat)).
* Réduit le nombre d’appels à l’API List Blobs vers le stockage Azure. [#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)).
* Améliore les performances de INSERT SELECT distribué avec des répliques parallèles. [#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat)).
* Empêche `LogSeriesLimiter` d’effectuer un nettoyage à chaque initialisation, évitant ainsi la contention sur les verrous et les régressions de performances dans les scénarios de forte concurrence. [#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov)).
* Accélère les requêtes grâce à l’optimisation triviale de count. [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)).
* Améliore l’inlining de certaines opérations avec `Decimal`. [#79999](https://github.com/ClickHouse/ClickHouse/pull/79999) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Définit `input_format_parquet_bloom_filter_push_down` sur true par défaut. Corrige également une erreur dans l’historique des modifications des paramètres. [#80058](https://github.com/ClickHouse/ClickHouse/pull/80058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimise les mutations `ALTER ... DELETE` pour les parts dans lesquelles toutes les lignes doivent être supprimées. Désormais, dans de tels cas, une part vide est créée à la place de la part d’origine, sans exécuter de mutation. [#79307](https://github.com/ClickHouse/ClickHouse/pull/79307) ([Anton Popov](https://github.com/CurtizJ)).
* Évite la copie supplémentaire du bloc lors de l’insertion dans une Compact part lorsque c’est possible. [#79536](https://github.com/ClickHouse/ClickHouse/pull/79536) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajoute le paramètre `input_format_max_block_size_bytes` pour limiter, en octets, la taille des blocs créés dans les formats d’entrée. Cela peut aider à éviter une utilisation élevée de la mémoire lors de l’importation de données lorsque les lignes contiennent de grandes valeurs. [#79495](https://github.com/ClickHouse/ClickHouse/pull/79495) ([Pavel Kruglov](https://github.com/Avogar)).
* Supprime les pages de garde pour les threads et async\_socket\_for\_remote/use\_hedge\_requests. Modifie la méthode d’allocation dans `FiberStack`, de `mmap` à `aligned_alloc`. Comme cela scinde les VMA, vm.max\_map\_count peut être atteint sous forte charge. [#79147](https://github.com/ClickHouse/ClickHouse/pull/79147) ([Sema Checherinda](https://github.com/CheSema)).
* Matérialisation paresseuse avec des répliques parallèles. [#79401](https://github.com/ClickHouse/ClickHouse/pull/79401) ([Igor Nikonov](https://github.com/devcrafter)).

<div id="improvement">
  #### Amélioration
</div>

* Ajout de la possibilité d’appliquer des suppressions légères à la volée (avec les paramètres `lightweight_deletes_sync = 0`, `apply_mutations_on_fly = 1`. [#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ)).
* Si des données au format Pretty sont affichées dans le terminal et qu’un bloc suivant a les mêmes largeurs de colonnes, il peut se poursuivre à la suite du bloc précédent en s’y collant par déplacement du curseur vers le haut. Cela clôt [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333). Cette fonctionnalité est contrôlée par le nouveau paramètre `output_format_pretty_glue_chunks`. [#79339](https://github.com/ClickHouse/ClickHouse/pull/79339) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Étend la fonction `isIPAddressInRange` aux types de données `String`, `IPv4`, `IPv6`, `Nullable(String)`, `Nullable(IPv4)` et `Nullable(IPv6)`. [#78364](https://github.com/ClickHouse/ClickHouse/pull/78364) ([YjyJeff](https://github.com/YjyJeff)).
* Permet de modifier dynamiquement les paramètres du pooler de connexions du moteur `PostgreSQL`. [#78414](https://github.com/ClickHouse/ClickHouse/pull/78414) ([Samay Sharma](https://github.com/samay-sharma)).
* Permet de spécifier `_part_offset` dans une projection normale. Il s’agit de la première étape vers la construction d’un index de projection. Cela peut être utilisé avec [#58224](https://github.com/ClickHouse/ClickHouse/issues/58224) et peut contribuer à améliorer #63207. [#78429](https://github.com/ClickHouse/ClickHouse/pull/78429) ([Amos Bird](https://github.com/amosbird)).
* Ajoute de nouvelles colonnes (`create_query` et `source`) à `system.named_collections`. Clôt [#78179](https://github.com/ClickHouse/ClickHouse/issues/78179). [#78582](https://github.com/ClickHouse/ClickHouse/pull/78582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ajout d’un nouveau champ `condition` à la table système `system.query_condition_cache`. Il stocke la condition en clair dont le hash est utilisé comme clé dans le cache des conditions de requête. [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)).
* Les index de similarité vectorielle peuvent désormais être créés sur des colonnes `BFloat16`. [#78850](https://github.com/ClickHouse/ClickHouse/pull/78850) ([Robert Schulze](https://github.com/rschu1ze)).
* Prise en charge des timestamps Unix avec partie fractionnaire dans l’analyse `DateTime64` en mode best effort. [#78908](https://github.com/ClickHouse/ClickHouse/pull/78908) ([Pavel Kruglov](https://github.com/Avogar)).
* Dans l’implémentation delta-kernel du stockage `DeltaLake`, correction du mode de correspondance des colonnes et ajout de tests pour l’évolution du schéma. [#78921](https://github.com/ClickHouse/ClickHouse/pull/78921) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Améliore l’insertion dans une colonne `Variant` au format Values grâce à une meilleure conversion des valeurs. [#78923](https://github.com/ClickHouse/ClickHouse/pull/78923) ([Pavel Kruglov](https://github.com/Avogar)).
* La fonction `tokens` a été étendue pour accepter un argument "tokenizer" supplémentaire, ainsi que d’autres arguments spécifiques au tokenizer. [#79001](https://github.com/ClickHouse/ClickHouse/pull/79001) ([Elmi Ahmadov](https://github.com/ahmadov)).
* L’instruction `SHOW CLUSTER` développe désormais les macros (le cas échéant) dans son argument. [#79006](https://github.com/ClickHouse/ClickHouse/pull/79006) ([arf42](https://github.com/arf42)).
* Les fonctions de hash prennent désormais en charge les `NULL` à l’intérieur des tableaux, tuples et maps. (issues [#48365](https://github.com/ClickHouse/ClickHouse/issues/48365) et [#48623](https://github.com/ClickHouse/ClickHouse/issues/48623)). [#79008](https://github.com/ClickHouse/ClickHouse/pull/79008) ([Michael Kolupaev](https://github.com/al13n321)).
* Mise à jour de cctz vers 2025a. [#79043](https://github.com/ClickHouse/ClickHouse/pull/79043) ([Raúl Marín](https://github.com/Algunenano)).
* Remplace le traitement `stderr` par défaut pour les UDFs par "log\_last". C'est plus pratique à l'usage. [#79066](https://github.com/ClickHouse/ClickHouse/pull/79066) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rend les onglets annulables dans la Web UI. Cela corrige [#71284](https://github.com/ClickHouse/ClickHouse/issues/71284). [#79084](https://github.com/ClickHouse/ClickHouse/pull/79084) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Supprime les paramètres pendant `recoverLostReplica`, comme cela a déjà été fait ici : [https://github.com/ClickHouse/ClickHouse/pull/78637](https://github.com/ClickHouse/ClickHouse/pull/78637). [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajoute les profile events `ParquetReadRowGroups` et `ParquetPrunedRowGroups` pour profiler l'élagage des index Parquet. [#79180](https://github.com/ClickHouse/ClickHouse/pull/79180) ([flynn](https://github.com/ucasfl)).
* Prend en charge `ALTER` sur une base de données dans un cluster. [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Ignore explicitement les exécutions manquées de la collecte de statistiques pour QueryMetricLog, sinon le log mettra longtemps à rattraper l'heure actuelle. [#79257](https://github.com/ClickHouse/ClickHouse/pull/79257) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Quelques optimisations mineures pour la lecture des formats basés sur `Arrow`. [#79308](https://github.com/ClickHouse/ClickHouse/pull/79308) ([Bharat Nallan](https://github.com/bharatnc)).
* Le paramètre `allow_archive_path_syntax` a été marqué comme expérimental par erreur. Ajoute un test pour éviter que des paramètres expérimentaux soient activés par défaut. [#79320](https://github.com/ClickHouse/ClickHouse/pull/79320) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rend les paramètres du page cache ajustables au niveau de chaque requête. Cela est nécessaire pour expérimenter plus rapidement et pour permettre un réglage fin des requêtes à haut débit et à faible latence. [#79337](https://github.com/ClickHouse/ClickHouse/pull/79337) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* N'affiche pas d'indications numériques dans les formats Pretty pour les nombres qui ressemblent à la plupart des hachages 64 bits. Cela corrige [#79334](https://github.com/ClickHouse/ClickHouse/issues/79334). [#79338](https://github.com/ClickHouse/ClickHouse/pull/79338) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les couleurs des graphiques dans les tableaux de bord avancés seront calculées à partir du hash de la requête correspondante. Cela facilite le repérage et la mémorisation d'un graphique lors du défilement du tableau de bord. [#79341](https://github.com/ClickHouse/ClickHouse/pull/79341) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute la metric asynchrone `FilesystemCacheCapacity` : capacité totale du virtual filesystem `cache`. C'est utile pour le monitoring global de l'infrastructure. [#79348](https://github.com/ClickHouse/ClickHouse/pull/79348) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimise l'accès à system.parts (lecture de la taille des colonnes/index uniquement à la demande). [#79352](https://github.com/ClickHouse/ClickHouse/pull/79352) ([Azat Khuzhin](https://github.com/azat)).
* Calcule uniquement les champs pertinents pour la requête `'SHOW CLUSTER <name>'`, au lieu de tous les champs. [#79368](https://github.com/ClickHouse/ClickHouse/pull/79368) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Permet de spécifier des paramètres de stockage pour `DatabaseCatalog`. [#79407](https://github.com/ClickHouse/ClickHouse/pull/79407) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge du stockage local dans `DeltaLake`. [#79416](https://github.com/ClickHouse/ClickHouse/pull/79416) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d'un paramètre au niveau de la requête pour activer delta-kernel-rs : `allow_experimental_delta_kernel_rs`. [#79418](https://github.com/ClickHouse/ClickHouse/pull/79418) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'une possible boucle infinie lors du listage des blobs dans le blob storage Azure/S3. [#79425](https://github.com/ClickHouse/ClickHouse/pull/79425) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout du paramètre de filesystem cache `max_size_ratio_to_total_space`. [#79460](https://github.com/ClickHouse/ClickHouse/pull/79460) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Pour `clickhouse-benchmark`, reconfiguration de l'option `reconnect` pour qu'elle accepte 0, 1 ou N comme valeurs de reconnexion, selon le comportement souhaité. [#79465](https://github.com/ClickHouse/ClickHouse/pull/79465) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)).
* Autorisation de `ALTER TABLE ... MOVE|REPLACE PARTITION` pour les tables situées sur différents disques `plain_rewritable`. [#79566](https://github.com/ClickHouse/ClickHouse/pull/79566) ([Julia Kartseva](https://github.com/jkartseva)).
* Le vector similarity index est désormais également utilisé si le vecteur de référence est de type `Array(BFloat16)`. [#79745](https://github.com/ClickHouse/ClickHouse/pull/79745) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Ajout de last\_error\_message, last\_error\_trace et query\_id à la table système `system.error&#95;log`. Ticket associé : [#75816](https://github.com/ClickHouse/ClickHouse/issues/75816). [#79836](https://github.com/ClickHouse/ClickHouse/pull/79836) ([Andrei Tinikov](https://github.com/Dolso)).
* Activation par défaut de l'envoi des rapports de plantage. Cela peut être désactivé dans le fichier de configuration du serveur. [#79838](https://github.com/ClickHouse/ClickHouse/pull/79838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La table système `system.functions` indique désormais dans quelle version de ClickHouse les fonctions ont été introduites pour la première fois. [#79839](https://github.com/ClickHouse/ClickHouse/pull/79839) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout du paramètre `access_control_improvements.enable_user_name_access_type`. Ce paramètre permet d'activer ou de désactiver des grants précis pour les utilisateurs/rôles, introduits dans [https://github.com/ClickHouse/ClickHouse/pull/72246](https://github.com/ClickHouse/ClickHouse/pull/72246). Il peut être préférable de désactiver ce paramètre si votre cluster contient des répliques antérieures à la version 25.1. [#79842](https://github.com/ClickHouse/ClickHouse/pull/79842) ([pufit](https://github.com/pufit)).
* L'implémentation correcte de la méthode `ASTSelectWithUnionQuery::clone()` prend désormais aussi en compte le champ `is_normalized`. Cela pourrait aider pour [#77569](https://github.com/ClickHouse/ClickHouse/issues/77569). [#79909](https://github.com/ClickHouse/ClickHouse/pull/79909) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d'un formatting incohérent de certaines queries avec l'opérateur EXCEPT. Si le côté gauche de l'opérateur EXCEPT se termine par `*`, la formatted query perd ses parenthèses et est alors analysée comme un `*` avec le modifier `EXCEPT`. Ces queries sont détectées par le fuzzer et ont peu de chances de se produire en pratique. Cela clôt [#79950](https://github.com/ClickHouse/ClickHouse/issues/79950). [#79952](https://github.com/ClickHouse/ClickHouse/pull/79952) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Petite amélioration du parsing du type `JSON` grâce à l'utilisation d'un cache de l'ordre de désérialisation des variants. [#79984](https://github.com/ClickHouse/ClickHouse/pull/79984) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajouter le paramètre `s3_slow_all_threads_after_network_error`. [#80035](https://github.com/ClickHouse/ClickHouse/pull/80035) ([Vitaly Baranov](https://github.com/vitlibar)).
* Le niveau de journalisation des parts sélectionnées pour la fusion était incorrect (« Information »). Résout [#80061](https://github.com/ClickHouse/ClickHouse/issues/80061). [#80062](https://github.com/ClickHouse/ClickHouse/pull/80062) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* trace-visualizer : ajouter runtime/share dans les info-bulles et les messages d'état. [#79040](https://github.com/ClickHouse/ClickHouse/pull/79040) ([Sergei Trifonov](https://github.com/serxa)).
* trace-visualizer : charger les données depuis le serveur ClickHouse. [#79042](https://github.com/ClickHouse/ClickHouse/pull/79042) ([Sergei Trifonov](https://github.com/serxa)).
* Ajouter des métriques sur les merges en échec. [#79228](https://github.com/ClickHouse/ClickHouse/pull/79228) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* `clickhouse-benchmark` affichera un pourcentage basé sur le nombre maximal d'itérations, s'il est spécifié. [#79346](https://github.com/ClickHouse/ClickHouse/pull/79346) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajouter un visualiseur de la table system.parts. [#79437](https://github.com/ClickHouse/ClickHouse/pull/79437) ([Sergei Trifonov](https://github.com/serxa)).
* Ajouter un outil d'analyse de la latence des requêtes. [#79978](https://github.com/ClickHouse/ClickHouse/pull/79978) ([Sergei Trifonov](https://github.com/serxa)).

#### Correction de bug

* Corrige les renommages de colonnes manquants dans une part. [#76346](https://github.com/ClickHouse/ClickHouse/pull/76346) ([Anton Popov](https://github.com/CurtizJ)).
* Une vue matérialisée peut démarrer trop tard, par exemple après la table Kafka qui l’alimente. [#72123](https://github.com/ClickHouse/ClickHouse/pull/72123) ([Ilya Golshtein](https://github.com/ilejn)).
* Corrige la réécriture de requête `SELECT` lors de la création de `VIEW` avec l’analyzer activé. Clôt [#75956](https://github.com/ClickHouse/ClickHouse/issues/75956). [#76356](https://github.com/ClickHouse/ClickHouse/pull/76356) ([Dmitry Novik](https://github.com/novikd)).
* Corrige l’application de `async_insert` depuis le serveur (via `apply_settings_from_server`) (auparavant, cela entraînait des erreurs `Unknown packet 11 from server` côté client). [#77578](https://github.com/ClickHouse/ClickHouse/pull/77578) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le non-fonctionnement d’une vue matérialisée actualisable dans une base de données Replicated sur les répliques nouvellement ajoutées. [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige les vues matérialisées actualisables qui cassaient les sauvegardes. [#77893](https://github.com/ClickHouse/ClickHouse/pull/77893) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige l’ancienne logical error déclenchée pour `transform`. [#78247](https://github.com/ClickHouse/ClickHouse/pull/78247) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige certains cas où l’index secondaire n’était pas appliqué avec l’analyzer. Corrige [#65607](https://github.com/ClickHouse/ClickHouse/issues/65607), corrige [#69373](https://github.com/ClickHouse/ClickHouse/issues/69373). [#78485](https://github.com/ClickHouse/ClickHouse/pull/78485) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige l’export des profile events (`NetworkSendElapsedMicroseconds`/`NetworkSendBytes`) pour le protocole HTTP avec la compression activée (l’erreur ne doit pas dépasser la taille du buffer, généralement autour de 1 MiB). [#78516](https://github.com/ClickHouse/ClickHouse/pull/78516) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’analyzer qui produisait LOGICAL\_ERROR lorsque JOIN ... USING impliquait une colonne ALIAS - il doit désormais produire l’erreur appropriée. [#78618](https://github.com/ClickHouse/ClickHouse/pull/78618) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige l’analyzer : CREATE VIEW ... ON CLUSTER échoue si SELECT contient des arguments positionnels. [#78663](https://github.com/ClickHouse/ClickHouse/pull/78663) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige l’erreur `Block structure mismatch` dans le cas d’un `INSERT SELECT` vers une fonction de table avec inférence de schéma si `SELECT` contient des sous-requêtes scalaires. [#78677](https://github.com/ClickHouse/ClickHouse/pull/78677) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Corrige l’analyzer : avec prefer\_global\_in\_and\_join=1 pour une table Distributed dans une requête `SELECT`, la fonction `in` doit être remplacée par `globalIn`. [#78749](https://github.com/ClickHouse/ClickHouse/pull/78749) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige plusieurs types de requêtes `SELECT` lisant depuis des tables avec le moteur `MongoDB` ou la fonction de table `mongodb` : requêtes avec conversion implicite d’une valeur constante dans la clause `WHERE` (par exemple `WHERE datetime = '2025-03-10 00:00:00'`) ; requêtes avec `LIMIT` et `GROUP BY`. Auparavant, elles pouvaient renvoyer un résultat erroné. [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de la conversion entre différents types JSON. Elle est désormais effectuée par un simple cast via une conversion vers/depuis String. C'est moins efficace, mais exact à 100 %. [#78807](https://github.com/ClickHouse/ClickHouse/pull/78807) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d'une erreur logique lors de la conversion du type Dynamic en Interval. [#78813](https://github.com/ClickHouse/ClickHouse/pull/78813) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction du rollback de colonne en cas d'erreur de parsing JSON. [#78836](https://github.com/ClickHouse/ClickHouse/pull/78836) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de l'erreur 'bad cast' lors d'un join utilisant une colonne d'alias constante. [#78848](https://github.com/ClickHouse/ClickHouse/pull/78848) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ne pas autoriser `prewhere` dans une vue matérialisée sur des colonnes ayant des types différents dans la vue et dans la table cible. [#78889](https://github.com/ClickHouse/ClickHouse/pull/78889) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d'une erreur logique lors du parsing de données binaires invalides d'une colonne Variant. [#78982](https://github.com/ClickHouse/ClickHouse/pull/78982) ([Pavel Kruglov](https://github.com/Avogar)).
* Lever une exception lorsque la taille de lot Parquet est définie à 0. Auparavant, lorsque output\_format\_parquet\_batch\_size = 0, ClickHouse se bloquait. Ce comportement est désormais corrigé. [#78991](https://github.com/ClickHouse/ClickHouse/pull/78991) ([daryawessely](https://github.com/daryawessely)).
* Correction de la désérialisation des discriminateurs de variant avec le format basic dans les compact parts. Ce comportement a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/55518](https://github.com/ClickHouse/ClickHouse/pull/55518). [#79000](https://github.com/ClickHouse/ClickHouse/pull/79000) ([Pavel Kruglov](https://github.com/Avogar)).
* Les Dictionaries de type `complex_key_ssd_cache` rejettent désormais les paramètres `block_size` et `write_buffer_size` nuls ou négatifs (issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314)). [#79028](https://github.com/ClickHouse/ClickHouse/pull/79028) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Éviter d'utiliser Field pour les colonnes non agrégées dans SummingMergeTree. Cela pouvait entraîner des erreurs inattendues avec les types Dynamic/Variant utilisés dans SummingMergeTree. [#79051](https://github.com/ClickHouse/ClickHouse/pull/79051) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de la lecture depuis une Materialized View avec une table de destination Distributed et un en-tête différent dans l'analyseur. [#79059](https://github.com/ClickHouse/ClickHouse/pull/79059) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d'un bug où `arrayUnion()` renvoyait des valeurs supplémentaires (incorrectes) sur des tables ayant reçu des insertions par lot. Correction de [#75057](https://github.com/ClickHouse/ClickHouse/issues/75057). [#79079](https://github.com/ClickHouse/ClickHouse/pull/79079) ([Peter Nguyen](https://github.com/petern48)).
* Correction d'un segfault dans `OpenSSLInitializer`. Résout [#79092](https://github.com/ClickHouse/ClickHouse/issues/79092). [#79097](https://github.com/ClickHouse/ClickHouse/pull/79097) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Toujours définir le préfixe pour S3 ListObject. [#79114](https://github.com/ClickHouse/ClickHouse/pull/79114) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un bug où `arrayUnion()` renvoyait des valeurs supplémentaires (incorrectes) sur des tables ayant reçu des insertions par lot. Correction de [#79157](https://github.com/ClickHouse/ClickHouse/issues/79157). [#79158](https://github.com/ClickHouse/ClickHouse/pull/79158) ([Peter Nguyen](https://github.com/petern48)).
* Correction d'une erreur logique après le filter pushdown. [#79164](https://github.com/ClickHouse/ClickHouse/pull/79164) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Correction du table engine DeltaLake lorsque l’implémentation delta-kernel est utilisée avec des endpoints basés sur HTTP, correction de NOSIGN. Clôt [#78124](https://github.com/ClickHouse/ClickHouse/issues/78124). [#79203](https://github.com/ClickHouse/ClickHouse/pull/79203) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correctif Keeper : évite de déclencher des watches sur des requêtes multiples en échec. [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)).
* Interdit les types Dynamic et JSON dans IN. Avec l’implémentation actuelle de `IN`, cela peut entraîner des résultats incorrects. Une prise en charge correcte de ces types dans `IN` est complexe et pourra être ajoutée à l’avenir. [#79282](https://github.com/ClickHouse/ClickHouse/pull/79282) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de la vérification des paths dupliqués lors du parsing du type JSON. [#79317](https://github.com/ClickHouse/ClickHouse/pull/79317) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de problèmes de connexion avec SecureStreamSocket. [#79383](https://github.com/ClickHouse/ClickHouse/pull/79383) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction du chargement des disks plain\_rewritable contenant des données. [#79439](https://github.com/ClickHouse/ClickHouse/pull/79439) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction d’un crash lors de la découverte des subcolumns dynamiques dans les wide parts de MergeTree. [#79466](https://github.com/ClickHouse/ClickHouse/pull/79466) ([Pavel Kruglov](https://github.com/Avogar)).
* Vérifie la longueur du nom de table uniquement pour les requêtes CREATE initiales. Ne l’effectue pas pour les CREATE secondaires afin d’éviter des problèmes de backward compatibility. [#79488](https://github.com/ClickHouse/ClickHouse/pull/79488) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Correction de l’erreur `Block structure mismatch` dans plusieurs cas sur des tables avec des colonnes sparse. [#79491](https://github.com/ClickHouse/ClickHouse/pull/79491) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de deux cas de "Logical Error: Can't set alias of \* of Asterisk on alias". [#79505](https://github.com/ClickHouse/ClickHouse/pull/79505) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l’utilisation de paths incorrects lors du renommage d’une database atomic. [#79569](https://github.com/ClickHouse/ClickHouse/pull/79569) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Correction de ORDER BY sur une JSON column avec d’autres colonnes. [#79591](https://github.com/ClickHouse/ClickHouse/pull/79591) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’une duplication des résultats lors de la lecture à distance lorsque `use_hedged_requests` et `allow_experimental_parallel_reading_from_replicas` sont tous deux désactivés. [#79599](https://github.com/ClickHouse/ClickHouse/pull/79599) ([Eduard Karacharov](https://github.com/korowa)).
* Correction d’un crash dans l’implémentation delta-kernel lors de l’utilisation de Unity Catalog. [#79677](https://github.com/ClickHouse/ClickHouse/pull/79677) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Résout les macros pour les clusters en autodiscovery. [#79696](https://github.com/ClickHouse/ClickHouse/pull/79696) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Gère correctement une configuration incorrecte de page\_cache\_limits. [#79805](https://github.com/ClickHouse/ClickHouse/pull/79805) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige le résultat de la fonction SQL `formatDateTime` si un Formatter de taille variable (par ex. `%W`, c.-à-d. le jour de la semaine `Monday` `Tuesday`, etc.) est suivi d’un Formatter composé (un Formatter qui affiche plusieurs components à la fois, par ex. `%D`, c.-à-d. la date américaine `05/04/25`). [#79835](https://github.com/ClickHouse/ClickHouse/pull/79835) ([Robert Schulze](https://github.com/rschu1ze)).
* IcebergS3 prend en charge l’optimisation de count, mais pas IcebergS3Cluster. Par conséquent, le résultat de count() renvoyé en mode cluster peut être un multiple du nombre de répliques. [#79844](https://github.com/ClickHouse/ClickHouse/pull/79844) ([wxybear](https://github.com/wxybear)).
* Corrige l’erreur AMBIGUOUS\_COLUMN\_NAME avec la matérialisation différée lorsqu’aucune colonne n’est utilisée pour exécuter la requête avant la projection. Exemple : SELECT \* FROM t ORDER BY rand() LIMIT 5. [#79926](https://github.com/ClickHouse/ClickHouse/pull/79926) ([Igor Nikonov](https://github.com/devcrafter)).
* Masque le mot de passe pour la requête `CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')`. [#79941](https://github.com/ClickHouse/ClickHouse/pull/79941) ([Han Fei](https://github.com/hanfei1991)).
* Permet de spécifier un alias dans JOIN USING. Indiquez cet alias si la colonne a été renommée (par exemple, à cause de ARRAY JOIN). Corrige [#73707](https://github.com/ClickHouse/ClickHouse/issues/73707). [#79942](https://github.com/ClickHouse/ClickHouse/pull/79942) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Permet aux vues matérialisées avec des UNION de fonctionner correctement sur les nouvelles répliques. [#80037](https://github.com/ClickHouse/ClickHouse/pull/80037) ([Samay Sharma](https://github.com/samay-sharma)).
* Le spécificateur de format `%e` dans la fonction SQL `parseDateTime` reconnaît désormais les jours sur un seul chiffre (par ex. `3`), alors qu’il nécessitait auparavant un remplissage par espace (par ex. ` 3`). Son comportement est ainsi désormais compatible avec MySQL. Pour conserver le comportement précédent, définissez le setting `parsedatetime_e_requires_space_padding = 1`. (issue [#78243](https://github.com/ClickHouse/ClickHouse/issues/78243)). [#80057](https://github.com/ClickHouse/ClickHouse/pull/80057) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige les avertissements `Cannot find 'kernel' in '[...]/memory.stat'` dans le journal de ClickHouse (issue [#77410](https://github.com/ClickHouse/ClickHouse/issues/77410)). [#80129](https://github.com/ClickHouse/ClickHouse/pull/80129) ([Robert Schulze](https://github.com/rschu1ze)).
* Vérifie la taille de pile dans FunctionComparison pour éviter un plantage dû à un débordement de pile. [#78208](https://github.com/ClickHouse/ClickHouse/pull/78208) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige une condition de concurrence lors d’un SELECT depuis `system.workloads`. [#78743](https://github.com/ClickHouse/ClickHouse/pull/78743) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige la matérialisation différée dans les requêtes distribuées. [#78815](https://github.com/ClickHouse/ClickHouse/pull/78815) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige la conversion de `Array(Bool)` en `Array(FixedString)`. [#78863](https://github.com/ClickHouse/ClickHouse/pull/78863) ([Nikita Taranov](https://github.com/nickitat)).
* Rend la sélection de la version de Parquet moins confuse. [#78818](https://github.com/ClickHouse/ClickHouse/pull/78818) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige l’auto-fusion de `ReservoirSampler`. [#79031](https://github.com/ClickHouse/ClickHouse/pull/79031) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige le stockage de la table d’insertion dans le contexte du client. [#79046](https://github.com/ClickHouse/ClickHouse/pull/79046) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Corrige l’ordre de destruction des membres de données de `AggregatingSortedAlgorithm` et `SummingSortedAlgorithm`. [#79056](https://github.com/ClickHouse/ClickHouse/pull/79056) ([Nikita Taranov](https://github.com/nickitat)).
* `enable_user_name_access_type` ne doit pas affecter le type d’accès `DEFINER`. [#80026](https://github.com/ClickHouse/ClickHouse/pull/80026) ([pufit](https://github.com/pufit)).
* Une requête vers la base de données système peut rester bloquée si les métadonnées de la base de données système sont stockées dans Keeper. [#79304](https://github.com/ClickHouse/ClickHouse/pull/79304) ([Mikhail Artemenko](https://github.com/Michicosun)).

#### Amélioration de la compilation/des tests/du packaging

* Permet de réutiliser le binaire `chcache` compilé au lieu de le recompiler systématiquement. [#78851](https://github.com/ClickHouse/ClickHouse/pull/78851) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ajout de l'attente de mise en pause pour NATS. [#78987](https://github.com/ClickHouse/ClickHouse/pull/78987) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)).
* Correction de la publication erronée d'un build ARM en tant que amd64compat. [#79122](https://github.com/ClickHouse/ClickHouse/pull/79122) ([Alexander Gololobov](https://github.com/davenger)).
* Utilisation de code assembleur pré-généré pour OpenSSL. [#79386](https://github.com/ClickHouse/ClickHouse/pull/79386) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correctifs pour permettre la compilation avec `clang20`. [#79588](https://github.com/ClickHouse/ClickHouse/pull/79588) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* `chcache` : prise en charge de la mise en cache Rust. [#78691](https://github.com/ClickHouse/ClickHouse/pull/78691) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ajout des informations de déroulage pour les fichiers assembleur `zstd`. [#79288](https://github.com/ClickHouse/ClickHouse/pull/79288) ([Michael Kolupaev](https://github.com/al13n321)).

<div id="254">
  ### Version 25.4 de ClickHouse, 2025-04-22
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Vérifie que toutes les colonnes d’une vue matérialisée correspondent à celles de la table cible lorsque `allow_materialized_view_with_bad_select` est défini sur `false`. [#74481](https://github.com/ClickHouse/ClickHouse/pull/74481) ([Christoph Wurm](https://github.com/cwurm)).
* Corrige les cas où `dateTrunc` est utilisé avec des arguments `Date`/`DateTime` négatifs. [#77622](https://github.com/ClickHouse/ClickHouse/pull/77622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* L’ancienne intégration `MongoDB` a été supprimée. Le paramètre serveur `use_legacy_mongodb_integration` est devenu obsolète et n’a désormais plus aucun effet. [#77895](https://github.com/ClickHouse/ClickHouse/pull/77895) ([Robert Schulze](https://github.com/rschu1ze)).
* Améliore la validation de `SummingMergeTree` afin d’ignorer l’agrégation des colonnes utilisées dans les clés de partitionnement ou de tri. [#78022](https://github.com/ClickHouse/ClickHouse/pull/78022) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Ajout de l’ordonnancement des CPU slots pour les charges de travail ; voir [la documentation](/fr/concepts/features/configuration/server-config/workload-scheduling#cpu_scheduling) pour plus de détails. [#77595](https://github.com/ClickHouse/ClickHouse/pull/77595) ([Sergei Trifonov](https://github.com/serxa)).
* `clickhouse-local` conservera ses bases de données après redémarrage si vous spécifiez l’argument de ligne de commande `--path`. Cela résout [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). Cela résout [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947). [#71722](https://github.com/ClickHouse/ClickHouse/pull/71722) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rejet des requêtes lorsque le serveur est surchargé. La décision est prise en fonction du rapport entre le temps d’attente (`OSCPUWaitMicroseconds`) et le temps d’activité (`OSCPUVirtualTimeMicroseconds`). La requête est rejetée avec une certaine probabilité lorsque ce rapport se situe entre `min_os_cpu_wait_time_ratio_to_throw` et `max_os_cpu_wait_time_ratio_to_throw` (il s’agit de paramètres au niveau de la requête). [#63206](https://github.com/ClickHouse/ClickHouse/pull/63206) ([Alexey Katsman](https://github.com/alexkats)).
* Time travel dans `Iceberg` : ajout d’un paramètre permettant d’interroger des tables `Iceberg` à un horodatage donné. [#71072](https://github.com/ClickHouse/ClickHouse/pull/71072) ([Brett Hoerner](https://github.com/bretthoerner)). [#77439](https://github.com/ClickHouse/ClickHouse/pull/77439) ([Daniil Ivanik](https://github.com/divanik)).
* Ajout d’un cache en mémoire pour les métadonnées `Iceberg`, qui stocke les fichiers manifeste/la liste des manifestes et `metadata.json` afin d’accélérer les requêtes. [#77156](https://github.com/ClickHouse/ClickHouse/pull/77156) ([Han Fei](https://github.com/hanfei1991)).
* Prise en charge du moteur de table `DeltaLake` pour Azure Blob Storage. Corrige [#68043](https://github.com/ClickHouse/ClickHouse/issues/68043). [#74541](https://github.com/ClickHouse/ClickHouse/pull/74541) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Ajout d’un cache en mémoire pour les index de similarité vectorielle désérialisés. Cela devrait accélérer les requêtes répétées de recherche approximative du plus proche voisin (ANN). La taille du nouveau cache est contrôlée par les paramètres du serveur `vector_similarity_index_cache_size` et `vector_similarity_index_cache_max_entries`. Cette fonctionnalité remplace le mécanisme de cache des index de skipping des versions précédentes. [#77905](https://github.com/ClickHouse/ClickHouse/pull/77905) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Prise en charge de l’élagage des partitions dans DeltaLake. [#78486](https://github.com/ClickHouse/ClickHouse/pull/78486) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge d’un rafraîchissement en arrière-plan dans les tables `MergeTree` en lecture seule, ce qui permet d’interroger des tables pouvant être mises à jour avec un nombre illimité de lecteurs distribués (data lake natif ClickHouse). [#76467](https://github.com/ClickHouse/ClickHouse/pull/76467) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de l’utilisation de disques personnalisés pour stocker les fichiers de métadonnées des bases de données. Actuellement, cela ne peut être configuré qu’au niveau global du serveur. [#77365](https://github.com/ClickHouse/ClickHouse/pull/77365) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Prise en charge de ALTER TABLE ... ATTACH|DETACH|MOVE|REPLACE PARTITION pour le disque plain\_rewritable. [#77406](https://github.com/ClickHouse/ClickHouse/pull/77406) ([Julia Kartseva](https://github.com/jkartseva)).
* Ajout de paramètres de table pour la configuration et les identifiants `SASL` au moteur de table `Kafka`. Cela permet de configurer l’authentification SASL vers Kafka et les systèmes compatibles Kafka directement dans l’instruction CREATE TABLE plutôt que d’avoir à utiliser des fichiers de configuration ou des collections nommées. [#78810](https://github.com/ClickHouse/ClickHouse/pull/78810) ([Christoph Wurm](https://github.com/cwurm)).
* Permet de définir `default_compression_codec` pour les tables MergeTree : il est utilisé lorsque la requête CREATE n’en définit pas explicitement pour les colonnes concernées. Cela corrige [#42005](https://github.com/ClickHouse/ClickHouse/issues/42005). [#66394](https://github.com/ClickHouse/ClickHouse/pull/66394) ([gvoelfin](https://github.com/gvoelfin)).
* Ajoute le paramètre `bind_host` dans la configuration des clusters afin que ClickHouse puisse utiliser un réseau spécifique pour les connexions distribuées. [#74741](https://github.com/ClickHouse/ClickHouse/pull/74741) ([Todd Yocum](https://github.com/toddyocum)).
* Introduit une nouvelle colonne, `parametrized_view_parameters`, dans `system.tables`. Corrige [https://github.com/clickhouse/clickhouse/issues/66756](https://github.com/clickhouse/clickhouse/issues/66756). [#75112](https://github.com/ClickHouse/ClickHouse/pull/75112) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)).
* Permet de modifier un commentaire de base de données. Corrige [#73351](https://github.com/ClickHouse/ClickHouse/issues/73351) ### Entrée de documentation pour les changements visibles par l’utilisateur. [#75622](https://github.com/ClickHouse/ClickHouse/pull/75622) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)).
* Prend en charge l’authentification `SCRAM-SHA-256` dans le protocole de compatibilité PostgreSQL. [#76839](https://github.com/ClickHouse/ClickHouse/pull/76839) ([scanhex12](https://github.com/scanhex12)).
* Ajoute les fonctions `arrayLevenshteinDistance`, `arrayLevenshteinDistanceWeighted` et `arraySimilarity`. [#77187](https://github.com/ClickHouse/ClickHouse/pull/77187) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Le paramètre `parallel_distributed_insert_select` s’applique à `INSERT SELECT` dans `ReplicatedMergeTree` (auparavant, cela nécessitait des tables Distributed). [#78041](https://github.com/ClickHouse/ClickHouse/pull/78041) ([Igor Nikonov](https://github.com/devcrafter)).
* Introduit la fonction `toInterval`. Cette fonction accepte 2 arguments (valeur et unité) et convertit la valeur en un type `Interval` spécifique. [#78723](https://github.com/ClickHouse/ClickHouse/pull/78723) ([Andrew Davis](https://github.com/pulpdrew)).
* Ajoute plusieurs moyens pratiques de localiser le fichier racine `metadata.json` dans une table function et un moteur Iceberg. Corrige [#78455](https://github.com/ClickHouse/ClickHouse/issues/78455). [#78475](https://github.com/ClickHouse/ClickHouse/pull/78475) ([Daniil Ivanik](https://github.com/divanik)).
* Prend en charge l’authentification par mot de passe dans le protocole SSH de ClickHouse. [#78586](https://github.com/ClickHouse/ClickHouse/pull/78586) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* Prise en charge des sous-requêtes corrélées comme argument de l’expression `EXISTS` dans la clause `WHERE`. Résout [#72459](https://github.com/ClickHouse/ClickHouse/issues/72459). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)).
* Ajout des fonctions `sparseGrams` et `sparseGramsHashes`, avec des versions ASCII et UTF8. Auteur : [scanhex12](https://github.com/scanhex12). [#78176](https://github.com/ClickHouse/ClickHouse/pull/78176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). N’utilisez pas cette fonctionnalité : l’implémentation changera dans les prochaines versions.

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Optimise les performances avec des colonnes chargées à la demande, qui lisent les données après `ORDER BY` et `LIMIT`. [#55518](https://github.com/ClickHouse/ClickHouse/pull/55518) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Active le cache des conditions de requête par défaut. [#79080](https://github.com/ClickHouse/ClickHouse/pull/79080) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Accélère la construction du résultat du JOIN en dévirtualisant les appels à `col->insertFrom()`. [#77350](https://github.com/ClickHouse/ClickHouse/pull/77350) ([Alexander Gololobov](https://github.com/davenger)).
* Fusionne, si possible, les conditions d'égalité de l'étape de filtrage du plan de requête dans la condition de JOIN afin de pouvoir les utiliser comme clés de table de hachage. [#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd)).
* Utilise le sharding dynamique pour JOIN si la clé de JOIN est un préfixe de la PK pour les deux parts. Cette optimisation est activée avec le paramètre `query_plan_join_shard_by_pk_ranges` (désactivé par défaut). [#74733](https://github.com/ClickHouse/ClickHouse/pull/74733) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Prend en charge l'élagage des données pour `Iceberg` à partir des valeurs limites inférieures et supérieures des colonnes. Corrige [#77638](https://github.com/ClickHouse/ClickHouse/issues/77638). [#78242](https://github.com/ClickHouse/ClickHouse/pull/78242) ([alesapin](https://github.com/alesapin)).
* Implémente une optimisation triviale du comptage pour `Iceberg`. Désormais, les requêtes avec `count()` et sans filtre devraient être plus rapides. Clôt [#77639](https://github.com/ClickHouse/ClickHouse/issues/77639). [#78090](https://github.com/ClickHouse/ClickHouse/pull/78090) ([alesapin](https://github.com/alesapin)).
* Ajoute la possibilité de configurer le nombre de colonnes que les merges peuvent écrire en parallèle à l'aide de `max_merge_delayed_streams_for_parallel_write` (cela devrait réduire d'environ 25x l'utilisation mémoire des vertical merges vers S3). [#77922](https://github.com/ClickHouse/ClickHouse/pull/77922) ([Azat Khuzhin](https://github.com/azat)).
* Désactive `filesystem_cache_prefer_bigger_buffer_size` lorsque le cache est utilisé passivement, par exemple pour les merges. Cela réduit la consommation de mémoire lors des merges. [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désormais, le nombre de répliques est utilisé pour déterminer la taille des tâches de lecture lorsque les répliques parallèles sont activées. Cela permet une meilleure répartition du travail entre les répliques lorsque la quantité de données à lire n'est pas très importante. [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)).
* Prend en charge le préchargement d'E/S asynchrone pour le format `ORC`, ce qui améliore les performances globales en masquant la latence des E/S distantes. [#70534](https://github.com/ClickHouse/ClickHouse/pull/70534) ([李扬](https://github.com/taiyang-li)).
* Préalloue la mémoire utilisée par les inserts asynchrones afin d'améliorer les performances. [#74945](https://github.com/ClickHouse/ClickHouse/pull/74945) ([Ilya Golshtein](https://github.com/ilejn)).
* Réduit le nombre de requêtes vers Keeper en supprimant l'utilisation des requêtes `get` individuelles, qui auraient pu provoquer une charge importante sur Keeper avec l'augmentation du nombre de répliques, là où `multiRead` est disponible. [#56862](https://github.com/ClickHouse/ClickHouse/pull/56862) ([Nikolay Degterinsky](https://github.com/evillique)).
* Une optimisation mineure pour l'exécution de fonctions sur des arguments Nullable. [#76489](https://github.com/ClickHouse/ClickHouse/pull/76489) ([李扬](https://github.com/taiyang-li)).
* Optimise `arraySort`. [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)).
* Fusionne les marks d'une même part et les écrit dans le cache des conditions de requête en une seule fois afin de réduire la contention sur les verrous. [#77377](https://github.com/ClickHouse/ClickHouse/pull/77377) ([zhongyuankai](https://github.com/zhongyuankai)).
* Optimise les performances de `s3Cluster` pour les requêtes avec une seule expansion entre crochets. [#77686](https://github.com/ClickHouse/ClickHouse/pull/77686) ([Tomáš Hromada](https://github.com/gyfis)).
* Optimise ORDER BY sur une seule colonne `Nullable` ou `LowCardinality`. [#77789](https://github.com/ClickHouse/ClickHouse/pull/77789) ([李扬](https://github.com/taiyang-li)).
* Optimise l'utilisation mémoire du format `Native`. [#78442](https://github.com/ClickHouse/ClickHouse/pull/78442) ([Azat Khuzhin](https://github.com/azat)).
* Optimisation triviale : ne pas réécrire `count(if(...))` en `countIf` si une conversion de type est nécessaire. Résout [#78564](https://github.com/ClickHouse/ClickHouse/issues/78564). [#78565](https://github.com/ClickHouse/ClickHouse/pull/78565) ([李扬](https://github.com/taiyang-li)).
* La fonction `hasAll` peut désormais tirer parti des index de skipping de texte intégral `tokenbf_v1`, `ngrambf_v1`. [#77662](https://github.com/ClickHouse/ClickHouse/pull/77662) ([UnamedRus](https://github.com/UnamedRus)).
* L'index de similarité vectorielle pouvait surallouer jusqu'à 2 fois la mémoire vive. Ce correctif revoit la stratégie d'allocation mémoire, réduisant la consommation mémoire et améliorant l'efficacité du cache de l'index de similarité vectorielle. (issue [#78056](https://github.com/ClickHouse/ClickHouse/issues/78056)). [#78394](https://github.com/ClickHouse/ClickHouse/pull/78394) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Ajout du paramètre `schema_type` pour la table `system.metric_log`, afin de définir le type de schéma. Trois schémas sont autorisés : `wide` -- schéma actuel, chaque métrique/événement se trouvant dans une colonne distincte (le plus efficace pour la lecture de colonnes distinctes), `transposed` -- similaire à `system.asynchronous_metric_log`, les métriques/événements sont stockés sous forme de lignes, et surtout `transposed_with_wide_view` -- crée une table sous-jacente avec un schéma `transposed`, tout en ajoutant une vue avec un schéma `wide` qui traduit les requêtes vers la table sous-jacente. Dans `transposed_with_wide_view`, la résolution inférieure à la seconde n'est pas prise en charge pour la vue, `event_time_microseconds` n'étant qu'un alias conservé pour la rétrocompatibilité. [#78412](https://github.com/ClickHouse/ClickHouse/pull/78412) ([alesapin](https://github.com/alesapin)).

<div id="improvement">
  #### Amélioration
</div>

* Sérialisation du plan de requête pour les requêtes `Distributed`. Un nouveau paramètre, `serialize_query_plan`, a été ajouté. Lorsqu’il est activé, les requêtes de table `Distributed` utilisent un plan de requête sérialisé pour l’exécution des requêtes à distance. Cela introduit un nouveau packet type dans le protocole TCP ; `<process_query_plan_packet>true</process_query_plan_packet>` doit être ajouté à la configuration du serveur pour autoriser le traitement de ce paquet. [#69652](https://github.com/ClickHouse/ClickHouse/pull/69652) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Prise en charge du type `JSON` et de la lecture de subcolumns depuis des vues. [#76903](https://github.com/ClickHouse/ClickHouse/pull/76903) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge de ALTER DATABASE ... ON CLUSTER. [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Les refresh des refreshable materialized views apparaissent désormais dans `system.query_log`. [#71333](https://github.com/ClickHouse/ClickHouse/pull/71333) ([Michael Kolupaev](https://github.com/al13n321)).
* Les fonctions définies par l’utilisateur (UDFs) peuvent désormais être marquées comme déterministes via un nouveau paramètre dans leur configuration. En outre, le query cache vérifie désormais si les UDFs appelées dans une requête sont déterministes. Si c’est le cas, il met en cache le résultat de la requête. (Issue [#59988](https://github.com/ClickHouse/ClickHouse/issues/59988)). [#77769](https://github.com/ClickHouse/ClickHouse/pull/77769) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Activation d’une logique de backoff pour tous les types de tâches répliquées. Elle permet de réduire l’utilisation du CPU, l’utilisation de la mémoire et la taille des fichiers journaux. Ajout des nouveaux paramètres `max_postpone_time_for_failed_replicated_fetches_ms`, `max_postpone_time_for_failed_replicated_merges_ms` et `max_postpone_time_for_failed_replicated_tasks_ms`, similaires à `max_postpone_time_for_failed_mutations_ms`. [#74576](https://github.com/ClickHouse/ClickHouse/pull/74576) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ajout de `query_id` à `system.errors`. Closes [#75815](https://github.com/ClickHouse/ClickHouse/issues/75815). [#76581](https://github.com/ClickHouse/ClickHouse/pull/76581) ([Vladimir Baikov](https://github.com/bkvvldmr)).
* Ajout de la prise en charge de la conversion de `UInt128` en `IPv6`. Cela permet d’utiliser l’opération `bitAnd` et l’arithmétique avec `IPv6`, ainsi que de reconvertir le résultat en `IPv6`. Closes [#76752](https://github.com/ClickHouse/ClickHouse/issues/76752). Cela permet également de reconvertir en `IPv6` le résultat de l’opération `bitAnd` sur `IPv6`. See also [#57707](https://github.com/ClickHouse/ClickHouse/pull/57707). [#76928](https://github.com/ClickHouse/ClickHouse/pull/76928) ([Muzammil Abdul Rehman](https://github.com/muzammilar)).
* Par défaut, n’analyse pas les valeurs spéciales de `Bool` dans les text formats à l’intérieur du type `Variant`. Cela peut être activé à l’aide du paramètre `allow_special_bool_values_inside_variant`. [#76974](https://github.com/ClickHouse/ClickHouse/pull/76974) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge d’un temps d’attente configurable par tâche pour les requêtes de faible `priority`, au niveau de la session et du serveur. [#77013](https://github.com/ClickHouse/ClickHouse/pull/77013) ([VicoWu](https://github.com/VicoWu)).
* Implémentation de la comparaison pour les valeurs du type de données JSON. Les JSON objects peuvent désormais être comparés de manière similaire aux Maps. [#77397](https://github.com/ClickHouse/ClickHouse/pull/77397) ([Pavel Kruglov](https://github.com/Avogar)).
* Meilleure gestion des permissions dans `system.kafka_consumers`. Transmission des erreurs internes de `librdkafka` (à noter que cette bibliothèque est vraiment mauvaise). [#77700](https://github.com/ClickHouse/ClickHouse/pull/77700) ([Ilya Golshtein](https://github.com/ilejn)).
* Ajout de la validation des paramètres du moteur de table Buffer. [#77840](https://github.com/ClickHouse/ClickHouse/pull/77840) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Ajout de la config `enable_hdfs_pread` pour activer ou désactiver `pread` dans `HDFS`. [#77885](https://github.com/ClickHouse/ClickHouse/pull/77885) ([kevinyhzou](https://github.com/KevinyhZou)).
* Ajout de profile events pour le nombre de requêtes de lecture et d’écriture `multi` de ZooKeeper. [#77888](https://github.com/ClickHouse/ClickHouse/pull/77888) ([JackyWoo](https://github.com/JackyWoo)).
* Autorise la création et l’insertion dans des tables temporaires lorsque `disable_insertion_and_mutation` est activé. [#77901](https://github.com/ClickHouse/ClickHouse/pull/77901) ([Xu Jia](https://github.com/XuJia0210)).
* Réduction de `max_insert_delayed_streams_for_parallel_write` (à 100). [#77919](https://github.com/ClickHouse/ClickHouse/pull/77919) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’analyse de l’année en Joda syntax (issue de l’écosystème Java, si vous vous posiez la question), par exemple `yyy`. [#77973](https://github.com/ClickHouse/ClickHouse/pull/77973) ([李扬](https://github.com/taiyang-li)).
* L’attach des parts des tables `MergeTree` sera effectué dans leur ordre de block, ce qui est important pour certains algorithmes de merging spéciaux, comme `ReplacingMergeTree`. Cela clôt [#71009](https://github.com/ClickHouse/ClickHouse/issues/71009). [#77976](https://github.com/ClickHouse/ClickHouse/pull/77976) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les Query masking rules peuvent désormais lever une `LOGICAL_ERROR` en cas de correspondance. Cela aidera à vérifier si un password prédéfini fuit quelque part dans les logs. [#78094](https://github.com/ClickHouse/ClickHouse/pull/78094) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout de la colonne `index_length_column` à `information_schema.tables` pour une meilleure compatibilité avec MySQL. [#78119](https://github.com/ClickHouse/ClickHouse/pull/78119) ([Paweł Zakrzewski](https://github.com/KrzaQ)).
* Introduction de deux nouvelles metrics : `TotalMergeFailures` et `NonAbortedMergeFailures`. Ces metrics sont nécessaires pour détecter les cas où trop de merges échouent sur une courte période. [#78150](https://github.com/ClickHouse/ClickHouse/pull/78150) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Correction d’une analyse incorrecte des URL S3 lorsque la key n’est pas spécifiée avec le style de chemin. [#78185](https://github.com/ClickHouse/ClickHouse/pull/78185) ([Arthur Passos](https://github.com/arthurpassos)).
* Correction des valeurs incorrectes des metrics asynchrones `BlockActiveTime`, `BlockDiscardTime`, `BlockWriteTime`, `BlockQueueTime` et `BlockReadTime` (avant ce changement, 1 seconde était incorrectement signalée comme 0.001). [#78211](https://github.com/ClickHouse/ClickHouse/pull/78211) ([filimonov](https://github.com/filimonov)).
* Respect de la limite `loading_retries` pour les errors lors du push vers une materialized view pour StorageS3(Azure)Queue. Auparavant, ces errors étaient réessayées indéfiniment. [#78313](https://github.com/ClickHouse/ClickHouse/pull/78313) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Dans DeltaLake avec l’implémentation `delta-kernel-rs`, correction des performances et de la barre de Progress. [#78368](https://github.com/ClickHouse/ClickHouse/pull/78368) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge de `include`, `from_env`, `from_zk` pour les disks d’exécution. Clôt [#78177](https://github.com/ClickHouse/ClickHouse/issues/78177). [#78470](https://github.com/ClickHouse/ClickHouse/pull/78470) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d'un avertissement dynamique à la table `system.warnings` pour les mutations longues. [#78658](https://github.com/ClickHouse/ClickHouse/pull/78658) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout du champ `condition` à la table système `system.query_condition_cache`. Il stocke la condition en clair dont le hash est utilisé comme clé dans le cache des conditions de requête. [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)).
* Autorisation d'une valeur vide pour le partitionnement Hive. [#78816](https://github.com/ClickHouse/ClickHouse/pull/78816) ([Arthur Passos](https://github.com/arthurpassos)).
* Correction de la coercition de type de la clause `IN` pour `BFloat16` (c.-à-d. que `SELECT toBFloat16(1) IN [1, 2, 3];` renvoie désormais `1`). Clôture de [#78754](https://github.com/ClickHouse/ClickHouse/issues/78754). [#78839](https://github.com/ClickHouse/ClickHouse/pull/78839) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Ne plus vérifier les parts sur d'autres disques pour `MergeTree` si `disk = ...` est défini. [#78855](https://github.com/ClickHouse/ClickHouse/pull/78855) ([Azat Khuzhin](https://github.com/azat)).
* Enregistrement des data types dans `used_data_type_families` de `system.query_log` avec des noms canoniques. [#78972](https://github.com/ClickHouse/ClickHouse/pull/78972) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Nettoyage des paramètres pendant `recoverLostReplica`, comme cela a été fait dans : [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637). [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Utilisation des colonnes d'insertion pour l'inférence de schéma d'INFILE. [#78490](https://github.com/ClickHouse/ClickHouse/pull/78490) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).

#### Correction de bug (dysfonctionnement visible par l’utilisateur dans une version stable officielle)

* Corrige une analyse incorrecte des projections lorsque `count(Nullable)` est utilisé dans des projections agrégées. Cela corrige [#74495](https://github.com/ClickHouse/ClickHouse/issues/74495). Cette PR ajoute également des logs autour de l’analyse des projections afin de préciser pourquoi une projection est utilisée, ou non. [#74498](https://github.com/ClickHouse/ClickHouse/pull/74498) ([Amos Bird](https://github.com/amosbird)).
* Corrige `Part <...> does not contain in snapshot of previous virtual parts. (PART_IS_TEMPORARILY_LOCKED)` lors de `DETACH PART`. [#76039](https://github.com/ClickHouse/ClickHouse/pull/76039) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrige les skip indexes qui ne fonctionnaient pas avec une expression contenant des littéraux dans l’analyseur, et supprime les transtypages triviaux lors de l’analyse des index. [#77229](https://github.com/ClickHouse/ClickHouse/pull/77229) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un bug où le query parameter `close_session` n’avait aucun effet, ce qui faisait que les sessions nommées n’étaient fermées qu’après `session_timeout`. [#77336](https://github.com/ClickHouse/ClickHouse/pull/77336) ([Alexey Katsman](https://github.com/alexkats)).
* Corrige la réception de messages depuis le serveur NATS sans vues matérialisées attachées. [#77392](https://github.com/ClickHouse/ClickHouse/pull/77392) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)).
* Corrige une erreur logique lors de la lecture d’un `FileLog` vide via la fonction de table `merge`, clôt [#75575](https://github.com/ClickHouse/ClickHouse/issues/75575). [#77441](https://github.com/ClickHouse/ClickHouse/pull/77441) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Utilise les paramètres de format par défaut pour la sérialisation de `Dynamic` à partir d’un variant partagé. [#77572](https://github.com/ClickHouse/ClickHouse/pull/77572) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la vérification de l’existence du chemin de données de la table sur le disque local. [#77608](https://github.com/ClickHouse/ClickHouse/pull/77608) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige l’envoi de valeurs constantes vers le distant pour certains types. [#77634](https://github.com/ClickHouse/ClickHouse/pull/77634) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un crash dû à un Context expiré dans S3/AzureQueue. [#77720](https://github.com/ClickHouse/ClickHouse/pull/77720) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Masque les informations d’authentification dans les moteurs de table RabbitMQ, Nats, Redis et AzureQueue. [#77755](https://github.com/ClickHouse/ClickHouse/pull/77755) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un comportement indéfini lors de la comparaison de `NaN` dans `argMin`/`argMax`. [#77756](https://github.com/ClickHouse/ClickHouse/pull/77756) ([Raúl Marín](https://github.com/Algunenano)).
* Vérifie régulièrement si les merges et les mutations ont été annulées, même lorsque l’opération ne produit aucun block à écrire. [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige le fonctionnement des vues matérialisées actualisables dans une base de données Replicated sur les répliques nouvellement ajoutées. [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige un crash possible lorsque l’erreur `NOT_FOUND_COLUMN_IN_BLOCK` se produit. [#77854](https://github.com/ClickHouse/ClickHouse/pull/77854) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige un crash survenant dans S3/AzureQueue lors du remplissage des données. [#77878](https://github.com/ClickHouse/ClickHouse/pull/77878) ([Bharat Nallan](https://github.com/bharatnc)).
* Désactive la recherche approximative dans l’historique du serveur SSH (car elle nécessite la bibliothèque skim). [#78002](https://github.com/ClickHouse/ClickHouse/pull/78002) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug en raison duquel une requête de recherche vectorielle sur une colonne non indexée renvoyait des résultats incorrects si une autre colonne vectorielle de la table possédait un index de similarité vectorielle défini. (Issue [#77978](https://github.com/ClickHouse/ClickHouse/issues/77978)). [#78069](https://github.com/ClickHouse/ClickHouse/pull/78069) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Correction d’une infime erreur dans l’invite "Le format de sortie demandé {} est binaire... Voulez-vous quand même l’afficher ? \[y/N]". [#78095](https://github.com/ClickHouse/ClickHouse/pull/78095) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un bug dans le cas de `toStartOfInterval` avec un argument d’origine nul. [#78096](https://github.com/ClickHouse/ClickHouse/pull/78096) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Interdire la spécification d’un paramètre de requête `session_id` vide pour l’interface HTTP. [#78098](https://github.com/ClickHouse/ClickHouse/pull/78098) ([Alexey Katsman](https://github.com/alexkats)).
* Correction d’un remplacement de métadonnées dans la base de données `Replicated`, qui pouvait se produire à la suite d’une requête `RENAME` exécutée juste après une requête `ALTER`. [#78107](https://github.com/ClickHouse/ClickHouse/pull/78107) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction d’un crash dans le moteur `NATS`. [#78108](https://github.com/ClickHouse/ClickHouse/pull/78108) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)).
* Ne plus essayer de créer history\_file dans le client embarqué pour SSH (dans les versions précédentes, la création échouait systématiquement, mais était quand même tentée). [#78112](https://github.com/ClickHouse/ClickHouse/pull/78112) ([Azat Khuzhin](https://github.com/azat)).
* Correction de `system.detached_tables`, qui affichait des informations incorrectes après des requêtes `RENAME DATABASE` ou `DROP TABLE`. [#78126](https://github.com/ClickHouse/ClickHouse/pull/78126) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction des vérifications d’un nombre trop élevé de tables avec la base de données `Replicated` après [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274). La vérification est également effectuée avant la création du stockage afin d’éviter la création de nœuds non comptabilisés dans Keeper dans le cas de `ReplicatedMergeTree` ou `KeeperMap`. [#78127](https://github.com/ClickHouse/ClickHouse/pull/78127) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction d’un crash possible dû à l’initialisation concurrente des métadonnées de `S3Queue`. [#78131](https://github.com/ClickHouse/ClickHouse/pull/78131) ([Azat Khuzhin](https://github.com/azat)).
* Les fonctions `groupArray*` produisent désormais une erreur `BAD_ARGUMENTS` pour la valeur 0 de type Int de l’argument `max_size`, comme c’était déjà le cas pour UInt, au lieu d’essayer de s’exécuter avec cette valeur. [#78140](https://github.com/ClickHouse/ClickHouse/pull/78140) ([Eduard Karacharov](https://github.com/korowa)).
* Empêcher un crash lors de la récupération d’une réplique perdue si la table locale est supprimée avant d’être détachée. [#78173](https://github.com/ClickHouse/ClickHouse/pull/78173) ([Raúl Marín](https://github.com/Algunenano)).
* Correction du fait que la colonne "alterable" de `system.s3_queue_settings` renvoyait toujours `false`. [#78187](https://github.com/ClickHouse/ClickHouse/pull/78187) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Masquer la signature d’accès Azure afin qu’elle ne soit visible ni par l’utilisateur ni dans les logs. [#78189](https://github.com/ClickHouse/ClickHouse/pull/78189) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la prélecture des sous-flux avec préfixes dans les Wide parts. [#78205](https://github.com/ClickHouse/ClickHouse/pull/78205) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de crashes / résultats incorrects pour `mapFromArrays` dans le cas d’un tableau de clés de type `LowCardinality(Nullable)`. [#78240](https://github.com/ClickHouse/ClickHouse/pull/78240) ([Eduard Karacharov](https://github.com/korowa)).
* Correction des options d’authentification de delta-kernel-rs. [#78255](https://github.com/ClickHouse/ClickHouse/pull/78255) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ne pas planifier la tâche des Refreshable Materialized Views si `disable_insertion_and_mutation` d’une réplique vaut `true`. Une tâche correspond à une insertion et échouera si `disable_insertion_and_mutation` vaut `true`. [#78277](https://github.com/ClickHouse/ClickHouse/pull/78277) ([Xu Jia](https://github.com/XuJia0210)).
* Validation de l’accès aux tables sous-jacentes pour le moteur `Merge`. [#78339](https://github.com/ClickHouse/ClickHouse/pull/78339) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Le modificateur `FINAL` peut être ignoré lors des requêtes sur une table `Distributed`. [#78428](https://github.com/ClickHouse/ClickHouse/pull/78428) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* `bitmapMin` renvoie uint32\_max lorsque le bitmap est vide (et uint64\_max lorsque le type d’entrée est plus grand), ce qui correspond au comportement du minimum d’un roaring\_bitmap vide. [#78444](https://github.com/ClickHouse/ClickHouse/pull/78444) ([wxybear](https://github.com/wxybear)).
* Désactivation de la parallélisation du traitement des requêtes immédiatement après la lecture de FROM lorsque `distributed_aggregation_memory_efficient` est activé, car cela peut provoquer une erreur logique. Clôt [#76934](https://github.com/ClickHouse/ClickHouse/issues/76934). [#78500](https://github.com/ClickHouse/ClickHouse/pull/78500) ([flynn](https://github.com/ucasfl)).
* Définition d’au moins un flux de lecture lorsqu’aucun flux n’est planifié après l’application du paramètre `max_streams_to_max_threads_ratio`. [#78505](https://github.com/ClickHouse/ClickHouse/pull/78505) ([Eduard Karacharov](https://github.com/korowa)).
* Correction de l’erreur logique "Cannot unregister: table uuid is not registered" dans le moteur de stockage `S3Queue`. Clôt [#78285](https://github.com/ClickHouse/ClickHouse/issues/78285). [#78541](https://github.com/ClickHouse/ClickHouse/pull/78541) ([Kseniia Sumarokova](https://github.com/kssenii)).
* ClickHouse peut désormais détecter son cgroup v2 sur les systèmes où les cgroups v1 et v2 sont tous deux activés. [#78566](https://github.com/ClickHouse/ClickHouse/pull/78566) ([Grigory Korolev](https://github.com/gkorolev)).
* Les fonctions de table `-Cluster` échouaient lorsqu’elles étaient utilisées avec des paramètres au niveau de la table. [#78587](https://github.com/ClickHouse/ClickHouse/pull/78587) ([Daniil Ivanik](https://github.com/divanik)).
* Amélioration des vérifications lorsque les transactions ne sont pas prises en charge par ReplicatedMergeTree sur INSERT. [#78633](https://github.com/ClickHouse/ClickHouse/pull/78633) ([Azat Khuzhin](https://github.com/azat)).
* Nettoyage des paramètres de requête lors de l’opération Attach. [#78637](https://github.com/ClickHouse/ClickHouse/pull/78637) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’un plantage lorsqu’un chemin non valide était spécifié dans `iceberg_metadata_file_path`. [#78688](https://github.com/ClickHouse/ClickHouse/pull/78688) ([alesapin](https://github.com/alesapin)).
* Dans le moteur de table `DeltaLake` avec l’implémentation delta-kernel-s, correction du cas où le schéma de lecture diffère du schéma de la table et où des colonnes de partition sont également présentes, ce qui entraînait une erreur "not found column". [#78690](https://github.com/ClickHouse/ClickHouse/pull/78690) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un problème où, après avoir programmé la fermeture d’une session nommée (mais avant l’expiration du délai), la création d’une nouvelle session nommée avec le même nom entraînait sa fermeture au moment prévu pour la première session. [#78698](https://github.com/ClickHouse/ClickHouse/pull/78698) ([Alexey Katsman](https://github.com/alexkats)).
* Correction de plusieurs types de requêtes `SELECT` lisant depuis des tables avec le moteur `MongoDB` ou la fonction de table `mongodb` : requêtes avec conversion implicite d’une valeur constante dans la clause `WHERE` (par exemple `WHERE datetime = '2025-03-10 00:00:00'`) ; requêtes avec `LIMIT` et `GROUP BY`. Auparavant, elles pouvaient renvoyer un résultat erroné. [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)).
* Ne pas bloquer l’arrêt de la table pendant l’exécution de `CHECK TABLE`. [#78782](https://github.com/ClickHouse/ClickHouse/pull/78782) ([Raúl Marín](https://github.com/Algunenano)).
* Correctif Keeper : correction du nombre d’éléments éphémères dans tous les cas. [#78799](https://github.com/ClickHouse/ClickHouse/pull/78799) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un cast incorrect dans `StorageDistributed` lors de l’utilisation de fonctions de table autres que `view`. Résout [#78464](https://github.com/ClickHouse/ClickHouse/issues/78464). [#78828](https://github.com/ClickHouse/ClickHouse/pull/78828) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction de la cohérence du formatage pour `tupleElement(*, 1)`. Résout [#78639](https://github.com/ClickHouse/ClickHouse/issues/78639). [#78832](https://github.com/ClickHouse/ClickHouse/pull/78832) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Les Dictionaries de type `ssd_cache` rejettent désormais les paramètres `block_size` et `write_buffer_size` nuls ou négatifs (issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314)). [#78854](https://github.com/ClickHouse/ClickHouse/pull/78854) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Correction d’un crash dans Refreshable MATERIALIZED VIEW dans le cas d’un ALTER après un arrêt anormal. [#78858](https://github.com/ClickHouse/ClickHouse/pull/78858) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’analyse des valeurs `DateTime` invalides au format `CSV`. [#78919](https://github.com/ClickHouse/ClickHouse/pull/78919) ([Pavel Kruglov](https://github.com/Avogar)).
* Correctif Keeper : éviter de déclencher des watches sur des requêtes multiples ayant échoué. [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un échec de lecture d’une table Iceberg lorsque la valeur min-max est explicitement spécifiée mais vaut `NULL`. Il a été constaté que la bibliothèque Go Iceberg générait de tels fichiers aberrants. Résout [#78740](https://github.com/ClickHouse/ClickHouse/issues/78740). [#78764](https://github.com/ClickHouse/ClickHouse/pull/78764) ([flynn](https://github.com/ucasfl)).

#### Amélioration de la compilation/des tests/du packaging

* Prise en compte des fonctionnalités du CPU cible en Rust et activation du LTO dans toutes les crates. [#78590](https://github.com/ClickHouse/ClickHouse/pull/78590) ([Raúl Marín](https://github.com/Algunenano)).

<div id="253">
  ### Version de ClickHouse 25.3 LTS, 2025-03-20
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Interdiction de tronquer les bases de données Replicated. [#76651](https://github.com/ClickHouse/ClickHouse/pull/76651) ([Bharat Nallan](https://github.com/bharatnc)).
* Le cache des index de skipping a été retiré. [#77447](https://github.com/ClickHouse/ClickHouse/pull/77447) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Le type de données `JSON` est prêt pour la production. Voir [https://jsonbench.com/](https://jsonbench.com/). Les types de données `Dynamic` et `Variant` sont prêts pour la production. [#77785](https://github.com/ClickHouse/ClickHouse/pull/77785) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout du protocole SSH pour clickhouse-server. Il est désormais possible de se connecter à ClickHouse avec n’importe quel client SSH. Cela clôt : [#74340](https://github.com/ClickHouse/ClickHouse/issues/74340). [#74989](https://github.com/ClickHouse/ClickHouse/pull/74989) ([George Gamezardashvili](https://github.com/Infjoker)).
* Remplacement des fonctions de table par leurs alternatives -Cluster si les répliques parallèles sont activées. Corrige [#65024](https://github.com/ClickHouse/ClickHouse/issues/65024). [#70659](https://github.com/ClickHouse/ClickHouse/pull/70659) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Nouvelle implémentation du Userspace Page Cache, qui permet de mettre les données en cache dans la mémoire du processus au lieu de s’appuyer sur le cache de pages de l’OS, ce qui est utile lorsque les données sont stockées sur un système de fichiers virtuel distant sans cache de système de fichiers local sous-jacent. [#70509](https://github.com/ClickHouse/ClickHouse/pull/70509) ([Michael Kolupaev](https://github.com/al13n321)).
* Ajout du paramètre serveur `concurrent_threads_scheduler`, qui régit la manière dont les slots CPU sont répartis entre les requêtes concurrentes. Il peut être défini sur `round_robin` (comportement précédent) ou `fair_round_robin` pour corriger la répartition inéquitable du CPU entre les requêtes INSERT et SELECT. [#75949](https://github.com/ClickHouse/ClickHouse/pull/75949) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout de la fonction d’agrégation `estimateCompressionRatio` [#70801](https://github.com/ClickHouse/ClickHouse/issues/70801). [#76661](https://github.com/ClickHouse/ClickHouse/pull/76661) ([Tariq Almawash](https://github.com/talmawash)).
* Ajout de la fonction `arraySymmetricDifference`. Elle renvoie tous les éléments de plusieurs arguments de tableau qui ne sont pas présents dans tous les arguments. Exemple : `SELECT arraySymmetricDifference([1, 2], [2, 3])` renvoie `[1, 3]`. (issue [#61673](https://github.com/ClickHouse/ClickHouse/issues/61673)). [#76231](https://github.com/ClickHouse/ClickHouse/pull/76231) ([Filipp Abapolov](https://github.com/pheepa)).
* Possibilité de spécifier explicitement le fichier de métadonnées à lire pour Iceberg avec le paramètre de moteur de stockage/fonction de table `iceberg_metadata_file_path `. Corrige [#47412](https://github.com/ClickHouse/ClickHouse/issues/47412). [#77318](https://github.com/ClickHouse/ClickHouse/pull/77318) ([alesapin](https://github.com/alesapin)).
* Ajout de la fonction de hachage `keccak256`, couramment utilisée dans les implémentations de blockchain, en particulier dans les systèmes basés sur l’EVM. [#76669](https://github.com/ClickHouse/ClickHouse/pull/76669) ([Arnaud Briche](https://github.com/arnaudbriche)).
* Ajout de trois nouvelles fonctions : `icebergTruncate`, conformément à la spécification [https://iceberg.apache.org/spec/#truncate-transform-details](https://iceberg.apache.org/spec/#truncate-transform-details), `toYearNumSinceEpoch` et `toMonthNumSinceEpoch`. Prise en charge de la transformation `truncate` dans l’élagage des partitions pour le moteur `Iceberg`. [#77403](https://github.com/ClickHouse/ClickHouse/pull/77403) ([alesapin](https://github.com/alesapin)).
* Prise en charge des types de données `LowCardinality(Decimal)` [#72256](https://github.com/ClickHouse/ClickHouse/issues/72256). [#72833](https://github.com/ClickHouse/ClickHouse/pull/72833) ([zhanglistar](https://github.com/zhanglistar)).
* Les événements de profil `FilterTransformPassedRows` et `FilterTransformPassedBytes` afficheront le nombre de lignes et d’octets filtrés pendant l’exécution de la requête. [#76662](https://github.com/ClickHouse/ClickHouse/pull/76662) ([Onkar Deshpande](https://github.com/onkar)).
* Prise en charge du type de métrique histogramme. L’interface reflète étroitement le client Prometheus : il suffit d’appeler `observe(value)` pour incrémenter le compteur dans le bucket correspondant à la valeur. Les métriques histogrammes sont exposées via `system.histogram_metrics`. [#75736](https://github.com/ClickHouse/ClickHouse/pull/75736) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Prise en charge des expressions CASE non constantes pour le branchement sur des valeurs explicites. [#77399](https://github.com/ClickHouse/ClickHouse/pull/77399) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).

<div id="experimental-feature">
  #### Fonctionnalité expérimentale
</div>

* Ajout de la prise en charge [de Unity Catalog](https://www.databricks.com/product/unity-catalog) pour les tables DeltaLake reposant sur AWS S3 et le système de fichiers local. [#76988](https://github.com/ClickHouse/ClickHouse/pull/76988) ([alesapin](https://github.com/alesapin)).
* Introduction d’une intégration expérimentale avec le catalogue de services AWS Glue pour les tables Iceberg. [#77257](https://github.com/ClickHouse/ClickHouse/pull/77257) ([alesapin](https://github.com/alesapin)).
* Ajout de la prise en charge de l’autodécouverte dynamique des clusters. Cela étend la fonctionnalité existante d’autodécouverte des *nœuds*. ClickHouse peut désormais détecter et enregistrer automatiquement de nouveaux *clusters* sous un chemin ZooKeeper commun à l’aide de `<multicluster_root_path>`. [#76001](https://github.com/ClickHouse/ClickHouse/pull/76001) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Permet les fusions de nettoyage automatiques de partitions entières après un délai configurable, grâce au nouveau paramètre `enable_replacing_merge_with_cleanup_for_min_age_to_force_merge`. [#76440](https://github.com/ClickHouse/ClickHouse/pull/76440) ([Christoph Wurm](https://github.com/cwurm)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Implémentation du query condition cache afin d'améliorer les performances des requêtes utilisant des conditions répétées. La plage correspondant à la portion de données qui ne satisfait pas la condition est mémorisée en tant qu'index temporaire en mémoire. Les requêtes suivantes utiliseront cet index. Closes [#67768](https://github.com/ClickHouse/ClickHouse/issues/67768) [#69236](https://github.com/ClickHouse/ClickHouse/pull/69236) ([zhongyuankai](https://github.com/zhongyuankai)).
* Éviction active des données du cache lors de la suppression des parts. Évite que le cache n'augmente jusqu'à sa taille maximale lorsque le volume de données est inférieur. [#76641](https://github.com/ClickHouse/ClickHouse/pull/76641) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remplacement de Int256 et UInt256 par le type intégré i256 de clang dans les calculs arithmétiques, ce qui améliore les performances [#70502](https://github.com/ClickHouse/ClickHouse/issues/70502). [#73658](https://github.com/ClickHouse/ClickHouse/pull/73658) ([李扬](https://github.com/taiyang-li)).
* Dans certains cas (par ex. une colonne de type Array vide), les data parts peuvent contenir des fichiers vides. Il est désormais possible d'ignorer l'écriture de blobs vides dans ObjectStorage et de ne stocker que les métadonnées de ces fichiers lorsque la table se trouve sur un disk avec métadonnées et object storage séparés. [#75860](https://github.com/ClickHouse/ClickHouse/pull/75860) ([Alexander Gololobov](https://github.com/davenger)).
* Amélioration des performances des opérations min/max pour Decimal32/Decimal64/DateTime64. [#76570](https://github.com/ClickHouse/ClickHouse/pull/76570) ([李扬](https://github.com/taiyang-li)).
* La compilation des requêtes (paramètre `compile_expressions`) tient désormais compte du type de machine. Cela accélère considérablement ces requêtes. [#76753](https://github.com/ClickHouse/ClickHouse/pull/76753) ([ZhangLiStar](https://github.com/zhanglistar)).
* Optimisation de `arraySort`. [#76850](https://github.com/ClickHouse/ClickHouse/pull/76850) ([李扬](https://github.com/taiyang-li)).
* Désactivation de `filesystem_cache_prefer_bigger_buffer_size` lorsque le cache est utilisé passivement, par exemple pour les merges. [#77898](https://github.com/ClickHouse/ClickHouse/pull/77898) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Application de l'attribut `preserve_most` à certains endroits du code, ce qui permet une génération de code légèrement meilleure. [#67778](https://github.com/ClickHouse/ClickHouse/pull/67778) ([Nikita Taranov](https://github.com/nickitat)).
* Arrêt plus rapide des serveurs ClickHouse (suppression du délai de 2,5 s). [#76550](https://github.com/ClickHouse/ClickHouse/pull/76550) ([Azat Khuzhin](https://github.com/azat)).
* Évite les allocations excessives dans ReadBufferFromS3 et d'autres buffers de lecture distants, et réduit de moitié leur consommation mémoire. [#76692](https://github.com/ClickHouse/ClickHouse/pull/76692) ([Sema Checherinda](https://github.com/CheSema)).
* Mise à jour de zstd de 1.5.5 à 1.5.7, ce qui peut entraîner certaines [améliorations des performances](https://github.com/facebook/zstd/releases/tag/v1.5.7). [#77137](https://github.com/ClickHouse/ClickHouse/pull/77137) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Réduction de l'utilisation mémoire lors des prefetches d'une JSON column dans des Wide parts. Ceci est pertinent lorsque ClickHouse est utilisé sur un stockage partagé, comme dans ClickHouse Cloud. [#77640](https://github.com/ClickHouse/ClickHouse/pull/77640) ([Pavel Kruglov](https://github.com/Avogar)).

<div id="improvement">
  #### Amélioration
</div>

* Prise en charge du renommage atomique lorsque `TRUNCATE` est utilisé avec `INTO OUTFILE`. Résout [#70323](https://github.com/ClickHouse/ClickHouse/issues/70323). [#77181](https://github.com/ClickHouse/ClickHouse/pull/77181) ([Onkar Deshpande](https://github.com/onkar)).
* Il n'est plus possible d'utiliser `NaN` ou `inf` comme valeurs flottantes pour les paramètres. Ce n'était de toute façon pas très pertinent. [#77546](https://github.com/ClickHouse/ClickHouse/pull/77546) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Désactive les répliques parallèles par défaut lorsque l'analyseur est désactivé, quel que soit le paramètre `compatibility`. Il reste possible de modifier ce comportement en définissant explicitement `parallel_replicas_only_with_analyzer` sur `false`. [#77115](https://github.com/ClickHouse/ClickHouse/pull/77115) ([Igor Nikonov](https://github.com/devcrafter)).
* Ajoute la possibilité de définir une liste d'en-têtes transférés depuis la requête du client vers l'authentificateur HTTP externe. [#77054](https://github.com/ClickHouse/ClickHouse/pull/77054) ([inv2004](https://github.com/inv2004)).
* Respecte la correspondance insensible à la casse des colonnes pour les champs des colonnes tuple. Ferme [https://github.com/apache/incubator-gluten/issues/8324](https://github.com/apache/incubator-gluten/issues/8324). [#73780](https://github.com/ClickHouse/ClickHouse/pull/73780) ([李扬](https://github.com/taiyang-li)).
* Les paramètres du codec Gorilla seront désormais toujours enregistrés dans les métadonnées de la table, dans le fichier .sql. Cela clôt [#70072](https://github.com/ClickHouse/ClickHouse/issues/70072). [#74814](https://github.com/ClickHouse/ClickHouse/pull/74814) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Amélioration du parsing pour certains data lakes (parsing des identifiants de séquence : ajout de la prise en charge de l'analyse des identifiants de séquence dans les fichiers manifest, ET parsing des métadonnées Avro : refonte du parseur de métadonnées Avro pour le rendre facilement extensible à l'avenir). [#75010](https://github.com/ClickHouse/ClickHouse/pull/75010) ([Daniil Ivanik](https://github.com/divanik)).
* Supprime trace\_id du ORDER BY par défaut de `system.opentelemetry_span_log`. [#75907](https://github.com/ClickHouse/ClickHouse/pull/75907) ([Azat Khuzhin](https://github.com/azat)).
* Le chiffrement (l'attribut `encrypted_by`) peut désormais être appliqué à n'importe quel fichier de configuration (config.xml, users.xml, fichiers de configuration imbriqués). Auparavant, cela ne fonctionnait que pour le fichier config.xml de premier niveau. [#75911](https://github.com/ClickHouse/ClickHouse/pull/75911) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Améliore la table `system.warnings` et ajoute des messages d'avertissement dynamiques pouvant être ajoutés, mis à jour ou supprimés. [#76029](https://github.com/ClickHouse/ClickHouse/pull/76029) ([Bharat Nallan](https://github.com/bharatnc)).
* Cette PR empêche d'exécuter une query `ALTER USER user1 ADD PROFILES a, DROP ALL PROFILES`, car toutes les opérations `DROP` doivent apparaître en premier. [#76242](https://github.com/ClickHouse/ClickHouse/pull/76242) ([pufit](https://github.com/pufit)).
* Diverses améliorations pour SYNC REPLICA (meilleurs messages d'erreur, meilleurs tests, vérifications de cohérence). [#76307](https://github.com/ClickHouse/ClickHouse/pull/76307) ([Azat Khuzhin](https://github.com/azat)).
* Utilise le mécanisme de repli approprié lorsqu'une copie multipart vers S3 échoue pendant une sauvegarde avec une erreur Access Denied. La copie multipart peut générer une erreur Access Denied lorsque la sauvegarde s'effectue entre des buckets ayant des identifiants d'authentification différents. [#76515](https://github.com/ClickHouse/ClickHouse/pull/76515) ([Antonio Andelic](https://github.com/antonio2368)).
* Mise à niveau de librdkafka (qui est une grosse daube) vers la version 2.8.0 (sans que cela l’améliore vraiment) et amélioration de la séquence d’arrêt des tables Kafka, réduisant les délais lors de la suppression de tables et du redémarrage du serveur. `engine=Kafka` ne quitte plus explicitement le groupe de consommateurs lorsqu’une table est supprimée. À la place, le consommateur reste dans le groupe jusqu’à ce qu’il en soit automatiquement retiré après `session_timeout_ms` (par défaut : 45 secondes) d’inactivité. [#76621](https://github.com/ClickHouse/ClickHouse/pull/76621) ([filimonov](https://github.com/filimonov)).
* Correction de la validation des paramètres des requêtes S3. [#76658](https://github.com/ClickHouse/ClickHouse/pull/76658) ([Vitaly Baranov](https://github.com/vitlibar)).
* Les tables système comme `server_settings` ou `settings` disposent d’une colonne `default` pour la valeur par défaut, ce qui est pratique. Elle a été ajoutée à `merge_tree_settings` et `replicated_merge_tree_settings`. [#76942](https://github.com/ClickHouse/ClickHouse/pull/76942) ([Diego Nieto](https://github.com/lesandie)).
* Ajout de `ProfileEvents::QueryPreempted`, dont la logique est similaire à celle de `CurrentMetrics::QueryPreempted`. [#77015](https://github.com/ClickHouse/ClickHouse/pull/77015) ([VicoWu](https://github.com/VicoWu)).
* Auparavant, une base de données Replicated pouvait écrire dans les logs les identifiants d’authentification spécifiés dans une requête. Ce comportement a été corrigé. Cela clôture : [#77123](https://github.com/ClickHouse/ClickHouse/issues/77123). [#77133](https://github.com/ClickHouse/ClickHouse/pull/77133) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Prise en charge de ALTER TABLE DROP PARTITION pour `plain_rewritable disk`. [#77138](https://github.com/ClickHouse/ClickHouse/pull/77138) ([Julia Kartseva](https://github.com/jkartseva)).
* Le paramètre de sauvegarde/restauration `allow_s3_native_copy` prend désormais en charge trois valeurs possibles : - `False` - la copie native S3 ne sera pas utilisée ; - `True` (ancienne valeur par défaut) - ClickHouse tentera d’abord la copie native S3, puis, en cas d’échec, reviendra à l’approche lecture+écriture ; - `'auto'` (nouvelle valeur par défaut) - ClickHouse comparera d’abord les identifiants d’authentification de la source et de la destination. S’ils sont identiques, ClickHouse tentera la copie native S3 puis pourra revenir à l’approche lecture+écriture. S’ils sont différents, ClickHouse passera directement à l’approche lecture+écriture. [#77401](https://github.com/ClickHouse/ClickHouse/pull/77401) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge du token de session AWS et de l’utilisation des identifiants d’authentification d’environnement dans le delta kernel pour le moteur de table DeltaLake. [#77661](https://github.com/ClickHouse/ClickHouse/pull/77661) ([Kseniia Sumarokova](https://github.com/kssenii)).

#### Correction de bug

* Correction d’un blocage lors du traitement d’un batch en attente pour un `INSERT` distribué asynchrone (dû par exemple à `No such file or directory`). [#72939](https://github.com/ClickHouse/ClickHouse/pull/72939) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration de la conversion des datetime lors de l’analyse des index, en imposant un comportement saturant pour les conversions implicites de Date vers DateTime. Cela corrige d’éventuelles imprécisions de l’analyse des index causées par les limitations de plage des datetime. Cela corrige [#73307](https://github.com/ClickHouse/ClickHouse/issues/73307). Cela corrige également la conversion explicite `toDateTime` lorsque `date_time_overflow_behavior = 'ignore'`, qui est la valeur par défaut. [#73326](https://github.com/ClickHouse/ClickHouse/pull/73326) ([Amos Bird](https://github.com/amosbird)).
* Correction de divers bugs dus à une condition de concurrence entre les UUID et les noms de table (par exemple, cela corrige la concurrence entre `RENAME` et `RESTART REPLICA` ; en cas de `RENAME` concurrent avec `SYSTEM RESTART REPLICA`, vous pourriez redémarrer la mauvaise replica et/ou laisser l’une des tables dans l’état `Table X is being restarted`). [#76308](https://github.com/ClickHouse/ClickHouse/pull/76308) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une perte de données lorsque async insert est activé et qu’un `insert into ... from file ...` utilise des tailles de block inégales : si la taille du premier block est \< async\_max\_size mais que celle du second block est > async\_max\_size, le second block n’est pas inséré. Ces données restent dans `squashing`. [#76343](https://github.com/ClickHouse/ClickHouse/pull/76343) ([Han Fei](https://github.com/hanfei1991)).
* Le field 'marks' a été renommé en 'marks\_bytes' dans `system.data_skipping_indices`. [#76374](https://github.com/ClickHouse/ClickHouse/pull/76374) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de la gestion du redimensionnement dynamique du cache du système de fichiers en cas d’erreurs inattendues lors de l’éviction. [#76466](https://github.com/ClickHouse/ClickHouse/pull/76466) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’initialisation de `used_flag` dans le hash parallèle. Cela pouvait provoquer un crash du serveur. [#76580](https://github.com/ClickHouse/ClickHouse/pull/76580) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d’une erreur logique lors de l’appel de la fonction `defaultProfiles` à l’intérieur d’une projection. [#76627](https://github.com/ClickHouse/ClickHouse/pull/76627) ([pufit](https://github.com/pufit)).
* Ne plus demander d’authentification Basic interactive dans le navigateur dans la Web UI. Clôt [#76319](https://github.com/ClickHouse/ClickHouse/issues/76319). [#76637](https://github.com/ClickHouse/ClickHouse/pull/76637) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de l’exception THERE\_IS\_NO\_COLUMN lors de la sélection d’un littéral booléen depuis des tables distribuées. [#76656](https://github.com/ClickHouse/ClickHouse/pull/76656) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Le sous-chemin à l’intérieur du répertoire de la table est désormais choisi de manière plus pertinente. [#76681](https://github.com/ClickHouse/ClickHouse/pull/76681) ([Daniil Ivanik](https://github.com/divanik)).
* Correction d’une erreur `Not found column in block` après modification d’une table avec une sous-colonne dans la PK. Après [https://github.com/ClickHouse/ClickHouse/pull/72644](https://github.com/ClickHouse/ClickHouse/pull/72644), nécessite [https://github.com/ClickHouse/ClickHouse/pull/74403](https://github.com/ClickHouse/ClickHouse/pull/74403). [#76686](https://github.com/ClickHouse/ClickHouse/pull/76686) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout de tests de performance pour le court-circuit sur NULL et correction de bugs. [#76708](https://github.com/ClickHouse/ClickHouse/pull/76708) ([李扬](https://github.com/taiyang-li)).
* Vider les tampons d’écriture de sortie avant de les finaliser. Corrige `LOGICAL_ERROR` générée lors de la finalisation de certains formats de sortie, par ex. `JSONEachRowWithProgressRowOutputFormat`. [#76726](https://github.com/ClickHouse/ClickHouse/pull/76726) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la prise en charge de l’UUID binaire de MongoDB ([#74452](https://github.com/ClickHouse/ClickHouse/issues/74452)) - Correction du pushdown de WHERE vers MongoDB lors de l’utilisation de la table function ([#72210](https://github.com/ClickHouse/ClickHouse/issues/72210)) - Modification du type mapping entre MongoDB et ClickHouse afin que l’UUID binaire de MongoDB ne puisse être analysé qu’en UUID ClickHouse. Cela devrait éviter toute ambiguïté et les mauvaises surprises à l’avenir. - Correction du mapping OID, tout en préservant la backward compatibility. [#76762](https://github.com/ClickHouse/ClickHouse/pull/76762) ([Kirill Nikiforov](https://github.com/allmazz)).
* Correction de la gestion des exceptions lors de la deserialization en parallèle des prefixes des JSON subcolumns. [#76809](https://github.com/ClickHouse/ClickHouse/pull/76809) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction du comportement de la fonction lgamma pour les entiers négatifs. [#76840](https://github.com/ClickHouse/ClickHouse/pull/76840) ([Ilya Kataev](https://github.com/IlyaKataev)).
* Correction de l’analyse des clés inversées pour les primary keys définies explicitement. Similaire à [#76654](https://github.com/ClickHouse/ClickHouse/issues/76654). [#76846](https://github.com/ClickHouse/ClickHouse/pull/76846) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’affichage formaté des valeurs Bool au format JSON. [#76905](https://github.com/ClickHouse/ClickHouse/pull/76905) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un crash possible en raison d’un rollback incorrect de JSON column en cas d’erreur pendant les async inserts. [#76908](https://github.com/ClickHouse/ClickHouse/pull/76908) ([Pavel Kruglov](https://github.com/Avogar)).
* Auparavant, `multiIf` pouvait renvoyer différents types de columns pendant la planification et l’exécution principale. Cela entraînait un comportement indéfini au niveau du code C++. [#76914](https://github.com/ClickHouse/ClickHouse/pull/76914) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d’une serialization incorrecte de clés Nullable constantes dans MergeTree. Cela corrige [#76939](https://github.com/ClickHouse/ClickHouse/issues/76939). [#76985](https://github.com/ClickHouse/ClickHouse/pull/76985) ([Amos Bird](https://github.com/amosbird)).
* Correction du tri des valeurs `BFloat16`. Cela clôt [#75487](https://github.com/ClickHouse/ClickHouse/issues/75487). Cela clôt [#75669](https://github.com/ClickHouse/ClickHouse/issues/75669). [#77000](https://github.com/ClickHouse/ClickHouse/pull/77000) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d’un bug avec JSON et une Variant subcolumn, en ajoutant une vérification pour ignorer les subcolumns ephemeral lors de la vérification de cohérence des parts. [#72187](https://github.com/ClickHouse/ClickHouse/issues/72187). [#77034](https://github.com/ClickHouse/ClickHouse/pull/77034) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Correction d’un crash lors du parsing de Template au format Values en cas d’incompatibilité de types. [#77071](https://github.com/ClickHouse/ClickHouse/pull/77071) ([Pavel Kruglov](https://github.com/Avogar)).
* Ne pas autoriser la création d’une table EmbeddedRocksDB avec une subcolumn dans la primary key. Auparavant, une telle table pouvait être créée, mais les requêtes SELECT échouaient. [#77074](https://github.com/ClickHouse/ClickHouse/pull/77074) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’une comparaison non valide dans les distributed queries, car le pushdown des predicates vers le serveur distant ne respecte pas les types des littéraux. [#77093](https://github.com/ClickHouse/ClickHouse/pull/77093) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’un crash lors de la création d’une table Kafka avec exception. [#77121](https://github.com/ClickHouse/ClickHouse/pull/77121) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge de JSON et des sous-colonnes dans les moteurs Kafka et RabbitMQ. [#77122](https://github.com/ClickHouse/ClickHouse/pull/77122) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction du désempilement de la pile des exceptions sur MacOS. [#77126](https://github.com/ClickHouse/ClickHouse/pull/77126) ([Eduard Karacharov](https://github.com/korowa)).
* Correction de la lecture de la sous-colonne 'null' dans la fonction getSubcolumn. [#77163](https://github.com/ClickHouse/ClickHouse/pull/77163) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de l’index bloom filter avec Array et des fonctions non prises en charge. [#77271](https://github.com/ClickHouse/ClickHouse/pull/77271) ([Pavel Kruglov](https://github.com/Avogar)).
* La restriction sur le nombre de tables ne doit être vérifiée que lors de la requête CREATE initiale. [#77274](https://github.com/ClickHouse/ClickHouse/pull/77274) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ce n’est pas un bug : `SELECT toBFloat16(-0.0) == toBFloat16(0.0)` renvoie désormais correctement `true` (au lieu de `false` auparavant). Le comportement est ainsi cohérent avec `Float32` et `Float64`. [#77290](https://github.com/ClickHouse/ClickHouse/pull/77290) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Correction d’une possible référence incorrecte à la variable key\_index non initialisée, ce qui peut provoquer un crash dans les builds de débogage (cette référence non initialisée ne causera probablement pas de problèmes dans les builds de release, car le code suivant lèvera vraisemblablement des erreurs.) ### entrée de documentation pour les changements visibles par l’utilisateur. [#77305](https://github.com/ClickHouse/ClickHouse/pull/77305) ([wxybear](https://github.com/wxybear)).
* Correction du nom de partition pour une valeur Bool. Le problème a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/74533](https://github.com/ClickHouse/ClickHouse/pull/74533). [#77319](https://github.com/ClickHouse/ClickHouse/pull/77319) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de la comparaison entre des Tuples contenant des éléments Nullable et des Strings. Par exemple, avant ce changement, la comparaison entre un Tuple `(1, null)` et une String `'(1,null)'` entraînait une erreur. Autre exemple : la comparaison entre un Tuple `(1, a)`, où `a` est une colonne Nullable, et une String `'(1, 2)'`. Ce changement corrige ces problèmes. [#77323](https://github.com/ClickHouse/ClickHouse/pull/77323) ([Alexey Katsman](https://github.com/alexkats)).
* Correction d’un crash dans ObjectStorageQueueSource. Introduit dans [https://github.com/ClickHouse/ClickHouse/pull/76358](https://github.com/ClickHouse/ClickHouse/pull/76358). [#77325](https://github.com/ClickHouse/ClickHouse/pull/77325) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de `async_insert` avec `input`. [#77340](https://github.com/ClickHouse/ClickHouse/pull/77340) ([Azat Khuzhin](https://github.com/azat)).
* Correction : `WITH FILL` peut échouer avec NOT\_FOUND\_COLUMN\_IN\_BLOCK lorsque la colonne de tri est supprimée par le planificateur. Problème similaire lié à un DAG incohérent calculé pour l’expression INTERPOLATE. [#77343](https://github.com/ClickHouse/ClickHouse/pull/77343) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de plusieurs LOGICAL\_ERROR liés à la définition d’alias sur des nœuds AST invalides. [#77445](https://github.com/ClickHouse/ClickHouse/pull/77445) ([Raúl Marín](https://github.com/Algunenano)).
* Correction, dans l’implémentation du filesystem cache, du traitement des erreurs lors de l’écriture d’un segment de fichier. [#77471](https://github.com/ClickHouse/ClickHouse/pull/77471) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Fait en sorte que DatabaseIceberg utilise le fichier de métadonnées correct fourni par le catalogue. Clôt [#75187](https://github.com/ClickHouse/ClickHouse/issues/75187). [#77486](https://github.com/ClickHouse/ClickHouse/pull/77486) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Le cache de requêtes considère désormais les UDFs comme non déterministes. Par conséquent, les résultats des requêtes contenant des UDFs ne sont plus mis en cache. Auparavant, les utilisateurs pouvaient définir des UDFs non déterministes dont les résultats étaient mis en cache par erreur (problème [#77553](https://github.com/ClickHouse/ClickHouse/issues/77553)). [#77633](https://github.com/ClickHouse/ClickHouse/pull/77633) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Correction de system.filesystem\_cache\_log, qui ne fonctionnait qu'avec le paramètre `enable_filesystem_cache_log`. [#77650](https://github.com/ClickHouse/ClickHouse/pull/77650) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'une erreur logique lors de l'appel de la fonction `defaultRoles` à l'intérieur d'une projection. Suite de [#76627](https://github.com/ClickHouse/ClickHouse/issues/76627). [#77667](https://github.com/ClickHouse/ClickHouse/pull/77667) ([pufit](https://github.com/pufit)).
* Les seconds arguments de type `Nullable` pour la fonction `arrayResize` sont désormais interdits. Auparavant, l'utilisation de `Nullable` comme second argument pouvait provoquer aussi bien des erreurs que des résultats incorrects. (problème [#48398](https://github.com/ClickHouse/ClickHouse/issues/48398)). [#77724](https://github.com/ClickHouse/ClickHouse/pull/77724) ([Manish Gill](https://github.com/mgill25)).
* Vérifie régulièrement si les fusions et les mutations ont été annulées, même lorsque l'opération ne produit aucun bloc à écrire. [#77766](https://github.com/ClickHouse/ClickHouse/pull/77766) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).

#### Amélioration de la compilation/des tests/du packaging

* `clickhouse-odbc-bridge` et `clickhouse-library-bridge` sont déplacés dans un dépôt distinct, [https://github.com/ClickHouse/odbc-bridge/](https://github.com/ClickHouse/odbc-bridge/). [#76225](https://github.com/ClickHouse/ClickHouse/pull/76225) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de la compilation croisée avec Rust et ajout de la possibilité de désactiver complètement Rust. [#76921](https://github.com/ClickHouse/ClickHouse/pull/76921) ([Raúl Marín](https://github.com/Algunenano)).

<div id="252">
  ### Version 25.2 de ClickHouse, 2025-02-27
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* Active entièrement `async_load_databases` par défaut (y compris pour les installations qui ne mettent pas à jour `config.xml`). [#74772](https://github.com/ClickHouse/ClickHouse/pull/74772) ([Azat Khuzhin](https://github.com/azat)).
* Ajoute les formats `JSONCompactEachRowWithProgress` et `JSONCompactStringsEachRowWithProgress`. Suite de [#69989](https://github.com/ClickHouse/ClickHouse/issues/69989). `JSONCompactWithNames` et `JSONCompactWithNamesAndTypes` n'affichent plus « totals » — il semble qu'il s'agissait d'une erreur d'implémentation. [#75037](https://github.com/ClickHouse/ClickHouse/pull/75037) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Change la valeur par défaut de `format_alter_operations_with_parentheses` à true afin de lever l'ambiguïté dans la liste des commandes ALTER (voir [https://github.com/ClickHouse/ClickHouse/pull/59532](https://github.com/ClickHouse/ClickHouse/pull/59532)). Cela casse la réplication avec les clusters antérieurs à 24.3. Si vous mettez à niveau un cluster utilisant d'anciennes versions, désactivez ce paramètre dans la configuration du serveur ou effectuez d'abord la mise à niveau vers 24.3. [#75302](https://github.com/ClickHouse/ClickHouse/pull/75302) ([Raúl Marín](https://github.com/Algunenano)).
* Supprime la possibilité de filtrer les log messages à l'aide d'expressions régulières. L'implémentation introduisait une data race, elle doit donc être supprimée. [#75577](https://github.com/ClickHouse/ClickHouse/pull/75577) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Le paramètre `min_chunk_bytes_for_parallel_parsing` ne peut plus être égal à zéro. Cela corrige : [#71110](https://github.com/ClickHouse/ClickHouse/issues/71110). [#75239](https://github.com/ClickHouse/ClickHouse/pull/75239) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Valide les paramètres dans la configuration du cache. Les paramètres inexistants étaient auparavant ignorés ; désormais, ils provoqueront une erreur et devront être supprimés. [#75452](https://github.com/ClickHouse/ClickHouse/pull/75452) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Prise en charge du type `Nullable(JSON)`. [#73556](https://github.com/ClickHouse/ClickHouse/pull/73556) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge des sous-colonnes dans les expressions DEFAULT et MATERIALIZED. [#74403](https://github.com/ClickHouse/ClickHouse/pull/74403) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge de l’écriture de bloom filters Parquet à l’aide du paramètre `output_format_parquet_write_bloom_filter` (activé par défaut). [#71681](https://github.com/ClickHouse/ClickHouse/pull/71681) ([Michael Kolupaev](https://github.com/al13n321)).
* L’interface web dispose désormais d’une navigation interactive dans les bases de données. [#75777](https://github.com/ClickHouse/ClickHouse/pull/75777) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autorise la combinaison de disques en mode lecture seule et lecture-écriture dans la politique de stockage (sous forme de plusieurs volumes ou de plusieurs disques). Cela permet de lire les données depuis l’ensemble du volume, tandis que les insertions privilégient le disque accessible en écriture (c.-à-d. une politique de stockage Copy-on-Write). [#75862](https://github.com/ClickHouse/ClickHouse/pull/75862) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’un nouveau moteur de base de données, `DatabaseBackup,` qui permet d’attacher instantanément une table/base de données à partir d’une sauvegarde. [#75725](https://github.com/ClickHouse/ClickHouse/pull/75725) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge des instructions préparées dans le wire protocol Postgres. [#75035](https://github.com/ClickHouse/ClickHouse/pull/75035) ([scanhex12](https://github.com/scanhex12)).
* Ajout de la possibilité d’utiliser ATTACH sur des tables sans couche de base de données, ce qui est utile pour les tables MergeTree situées sur Web, S3 et des systèmes de fichiers virtuels externes similaires. [#75788](https://github.com/ClickHouse/ClickHouse/pull/75788) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’une nouvelle fonction de comparaison de chaînes, `compareSubstrings`, pour comparer des parties de deux chaînes. Exemple : `SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result` signifie « comparer lexicographiquement 6 octets des chaînes 'Saxon' et 'Anglo-Saxon', en commençant à l’offset 0 dans la première chaîne et à l’offset 5 dans la seconde chaîne ». [#74070](https://github.com/ClickHouse/ClickHouse/pull/74070) ([lgbo](https://github.com/lgbo-ustc)).
* Ajout d’une nouvelle fonction, `initialQueryStartTime`. Elle renvoie l’heure de début de la requête en cours. La valeur est identique sur tous les shards lors d’une requête distribuée. [#75087](https://github.com/ClickHouse/ClickHouse/pull/75087) ([Roman Lomonosov](https://github.com/lomik)).
* Ajout de la prise en charge de l’authentification SSL avec des collections nommées pour MySQL. Ferme [#59111](https://github.com/ClickHouse/ClickHouse/issues/59111). [#59452](https://github.com/ClickHouse/ClickHouse/pull/59452) ([Nikolay Degterinsky](https://github.com/evillique)).

<div id="experimental-features">
  #### Fonctionnalités expérimentales
</div>

* Ajout d’un nouveau paramètre, `enable_adaptive_memory_spill_scheduler`, qui permet à plusieurs Grace JOIN dans une même requête de surveiller leur empreinte mémoire cumulée et de déclencher de manière adaptative le déversement vers un stockage externe afin d’éviter `MEMORY_LIMIT_EXCEEDED`. [#72728](https://github.com/ClickHouse/ClickHouse/pull/72728) ([lgbo](https://github.com/lgbo-ustc)).
* Le nouveau table engine `Kafka`, expérimental, respecte désormais pleinement les feature flags de Keeper. [#76004](https://github.com/ClickHouse/ClickHouse/pull/76004) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Restauration du codec QPL (Intel), qui avait été supprimé dans la v24.10 en raison de problèmes de licence. [#76021](https://github.com/ClickHouse/ClickHouse/pull/76021) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Pour l’intégration avec HDFS, ajout de la prise en charge de l’option de configuration `dfs.client.use.datanode.hostname`. [#74635](https://github.com/ClickHouse/ClickHouse/pull/74635) ([Mikhail Tiukavkin](https://github.com/freshertm)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Améliore les performances de lecture de la JSON column complète dans les Wide parts depuis S3. Cela est obtenu en ajoutant des prefetches pour la désérialisation des préfixes de subcolumn, un cache des préfixes désérialisés et la désérialisation en parallèle des préfixes de subcolumn. Les performances de lecture de la JSON column depuis S3 sont ainsi multipliées par 4 pour des requêtes comme `SELECT data FROM table` et par environ 10 pour des requêtes comme `SELECT data FROM table LIMIT 10`. [#74827](https://github.com/ClickHouse/ClickHouse/pull/74827) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige une contention inutile dans `parallel_hash` lorsque `max_rows_in_join = max_bytes_in_join = 0`. [#75155](https://github.com/ClickHouse/ClickHouse/pull/75155) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige une double préallocation dans `ConcurrentHashJoin` lorsque les côtés du join sont permutés par l’optimiseur. [#75149](https://github.com/ClickHouse/ClickHouse/pull/75149) ([Nikita Taranov](https://github.com/nickitat)).
* Légère amélioration dans certains scénarios de join : précalcul du nombre de lignes en sortie et réservation de la mémoire correspondante. [#75376](https://github.com/ClickHouse/ClickHouse/pull/75376) ([Alexander Gololobov](https://github.com/davenger)).
* Pour des requêtes comme `WHERE a < b AND b < c AND c < 5`, il est possible d’inférer de nouvelles conditions de comparaison (`a < 5 AND b < 5`) afin d’améliorer le filtrage. [#73164](https://github.com/ClickHouse/ClickHouse/pull/73164) ([Shichao Jin](https://github.com/jsc0218)).
* Amélioration de Keeper : désactive le calcul du digest lors du commit dans le stockage en mémoire afin d’améliorer les performances. Il peut être réactivé avec la config `keeper_server.digest_enabled_on_commit`. Le digest continue d’être calculé lors du prétraitement des requêtes. [#75490](https://github.com/ClickHouse/ClickHouse/pull/75490) ([Antonio Andelic](https://github.com/antonio2368)).
* Push down de la filter expression depuis JOIN ON lorsque c’est possible. [#75536](https://github.com/ClickHouse/ClickHouse/pull/75536) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Calcule les tailles des columns et des indexes à la demande dans MergeTree. [#75938](https://github.com/ClickHouse/ClickHouse/pull/75938) ([Pavel Kruglov](https://github.com/Avogar)).
* Rétablit la prise en compte de `ttl_only_drop_parts` pour `MATERIALIZE TTL` ; lit uniquement les columns nécessaires pour recalculer le TTL et supprime les parts en les remplaçant par des parts vides. [#72751](https://github.com/ClickHouse/ClickHouse/pull/72751) ([Andrey Zvonov](https://github.com/zvonand)).
* Réduit la taille du buffer d’écriture pour les fichiers de metadata plain\_rewritable. [#75758](https://github.com/ClickHouse/ClickHouse/pull/75758) ([Julia Kartseva](https://github.com/jkartseva)).
* Réduit la memory usage pour certaines window functions. [#65647](https://github.com/ClickHouse/ClickHouse/pull/65647) ([lgbo](https://github.com/lgbo-ustc)).
* Évalue conjointement les bloom filters Parquet et les indexes min/max. Nécessaire pour prendre correctement en charge `x = 3 or x > 5` lorsque data = \[1, 2, 4, 5]. [#71383](https://github.com/ClickHouse/ClickHouse/pull/71383) ([Arthur Passos](https://github.com/arthurpassos)).
* Les queries transmises au stockage `Executable` ne sont plus limitées à une exécution single-threaded. [#70084](https://github.com/ClickHouse/ClickHouse/pull/70084) ([yawnt](https://github.com/yawnt)).
* Fetch les parts en parallèle dans ALTER TABLE FETCH PARTITION (la taille du thread pool est contrôlée par `max_fetch_partition_thread_pool_size`). [#74978](https://github.com/ClickHouse/ClickHouse/pull/74978) ([Azat Khuzhin](https://github.com/azat)).
* Permet de déplacer vers `PREWHERE` les predicates avec la fonction `indexHint`. [#74987](https://github.com/ClickHouse/ClickHouse/pull/74987) ([Anton Popov](https://github.com/CurtizJ)).

<div id="improvement">
  #### Amélioration
</div>

* Correction du calcul de la taille en mémoire pour les colonnes `LowCardinality`. [#74688](https://github.com/ClickHouse/ClickHouse/pull/74688) ([Nikita Taranov](https://github.com/nickitat)).
* La table `processors_profile_log` dispose désormais d'une configuration par défaut avec un TTL de 30 jours. [#66139](https://github.com/ClickHouse/ClickHouse/pull/66139) ([Ilya Yatsishin](https://github.com/qoega)).
* Possibilité de nommer les shards dans la configuration du cluster. [#72276](https://github.com/ClickHouse/ClickHouse/pull/72276) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Le statut de succès de la réponse Prometheus remote write passe de 200/OK à 204/NoContent. [#74170](https://github.com/ClickHouse/ClickHouse/pull/74170) ([Michael Dempsey](https://github.com/bluestealth)).
* Ajout de la possibilité de recharger `max_remote_read_network_bandwidth_for_serve` et `max_remote_write_network_bandwidth_for_server` à chaud, sans redémarrer le serveur. [#74206](https://github.com/ClickHouse/ClickHouse/pull/74206) ([Kai Zhu](https://github.com/nauu)).
* Possibilité d'utiliser des chemins de blob pour calculer des sommes de contrôle lors de la création d'une sauvegarde. [#74729](https://github.com/ClickHouse/ClickHouse/pull/74729) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout d'une colonne d'identifiant de requête à `system.query_cache` (corrige [#68205](https://github.com/ClickHouse/ClickHouse/issues/68205)). [#74982](https://github.com/ClickHouse/ClickHouse/pull/74982) ([NamHoaiNguyen](https://github.com/NamHoaiNguyen)).
* Il est désormais possible d'annuler les requêtes `ALTER TABLE ... FREEZE ...` avec `KILL QUERY` et automatiquement via un timeout (`max_execution_time`). [#75016](https://github.com/ClickHouse/ClickHouse/pull/75016) ([Kirill](https://github.com/kirillgarbar)).
* Ajout de la prise en charge de `groupUniqArrayArrayMap` en tant que `SimpleAggregateFunction`. [#75034](https://github.com/ClickHouse/ClickHouse/pull/75034) ([Miel Donkers](https://github.com/mdonkers)).
* Masquage des paramètres d'identifiants du catalog dans le moteur de base de données `Iceberg`. Corrige [#74559](https://github.com/ClickHouse/ClickHouse/issues/74559). [#75080](https://github.com/ClickHouse/ClickHouse/pull/75080) ([Kseniia Sumarokova](https://github.com/kssenii)).
* `intExp2` / `intExp10` : définition du comportement jusque-là indéfini : retourner 0 pour un argument trop petit, `18446744073709551615` pour un argument trop grand, lever une exception si `nan`. [#75312](https://github.com/ClickHouse/ClickHouse/pull/75312) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge native de `s3.endpoint` depuis la config du catalog dans `DatabaseIceberg`. Corrige [#74558](https://github.com/ClickHouse/ClickHouse/issues/74558). [#75375](https://github.com/ClickHouse/ClickHouse/pull/75375) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ne plus échouer silencieusement si un utilisateur exécutant `SYSTEM DROP REPLICA` ne dispose pas des permissions suffisantes. [#75377](https://github.com/ClickHouse/ClickHouse/pull/75377) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout d'un ProfileEvent sur le nombre de fois où l'un des logs système n'a pas pu être vidangé. [#75466](https://github.com/ClickHouse/ClickHouse/pull/75466) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d'une vérification et de logs supplémentaires pour le déchiffrement et la décompression. [#75471](https://github.com/ClickHouse/ClickHouse/pull/75471) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de la prise en charge du signe micro (U+00B5) dans la fonction `parseTimeDelta`. Désormais, le signe micro (U+00B5) et la lettre grecque mu (U+03BC) sont tous deux reconnus comme des représentations valides des microsecondes, ce qui aligne le comportement de ClickHouse sur l’implémentation de Go ([voir time.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) et [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609)). [#75472](https://github.com/ClickHouse/ClickHouse/pull/75472) ([Vitaly Orlov](https://github.com/orloffv)).
* Remplacement du paramètre serveur (`send_settings_to_client`) par un paramètre client (`apply_settings_from_server`) qui détermine si le code côté client (par ex. l’analyse des données INSERT et le formatage de la sortie des requêtes) doit utiliser les paramètres provenant de `users.xml` et du profil utilisateur du serveur. Sinon, seuls les paramètres définis via la ligne de commande du client, la session et la requête sont utilisés. Notez que cela s’applique uniquement au client natif (et non, par ex., à HTTP) et pas à la majeure partie du traitement des requêtes (qui s’effectue sur le serveur). [#75478](https://github.com/ClickHouse/ClickHouse/pull/75478) ([Michael Kolupaev](https://github.com/al13n321)).
* Messages d’erreur améliorés pour les erreurs de syntaxe. Auparavant, si la requête était trop volumineuse et que le jeton dont la longueur dépassait la limite était un très long littéral de chaîne, le message expliquant la cause se retrouvait perdu au milieu de deux exemples de ce jeton très long. Correction également d’un problème où une requête en UTF-8 était tronquée incorrectement dans le message d’erreur. Correction aussi de l’usage excessif des guillemets autour des fragments de requête. Cela clôt [#75473](https://github.com/ClickHouse/ClickHouse/issues/75473). [#75561](https://github.com/ClickHouse/ClickHouse/pull/75561) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’événements de profilage dans le stockage `S3(Azure)Queue`. [#75618](https://github.com/ClickHouse/ClickHouse/pull/75618) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactivation de l’envoi des paramètres du serveur au client (`send_settings_to_client=false`) pour des raisons de compatibilité (cette fonctionnalité sera réimplémentée plus tard sous la forme d’un paramètre client pour une meilleure ergonomie). [#75648](https://github.com/ClickHouse/ClickHouse/pull/75648) ([Michael Kolupaev](https://github.com/al13n321)).
* Ajout d’une config `memory_worker_correct_memory_tracker` pour permettre la correction du memory tracker interne à l’aide d’informations provenant de différentes sources lues périodiquement par le thread d’arrière-plan. [#75714](https://github.com/ClickHouse/ClickHouse/pull/75714) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la colonne `normalized_query_hash` dans `system.processes`. Remarque : bien qu’elle puisse être calculée facilement à la volée avec la fonction `normalizedQueryHash`, elle est nécessaire pour préparer les modifications ultérieures. [#75756](https://github.com/ClickHouse/ClickHouse/pull/75756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les requêtes sur `system.tables` ne lèveront plus d’exception, même s’il existe une table `Merge` créée sur une base de données qui n’existe plus. Suppression de la méthode `getTotalRows` des tables `Hive`, car nous ne l’autorisons pas à effectuer un travail complexe. [#75772](https://github.com/ClickHouse/ClickHouse/pull/75772) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Stockage de start\_time/end\_time avec une précision à la microseconde pour les sauvegardes. [#75929](https://github.com/ClickHouse/ClickHouse/pull/75929) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Ajout de la métrique `MemoryTrackingUncorrected`, qui affiche la valeur du memory tracker global interne non corrigée par le RSS. [#75935](https://github.com/ClickHouse/ClickHouse/pull/75935) ([Antonio Andelic](https://github.com/antonio2368)).
* Autoriser l'analyse d'endpoints tels que `localhost:1234/handle` dans les fonctions de table `PostgreSQL` ou `MySQL`. Cela corrige une régression introduite dans [https://github.com/ClickHouse/ClickHouse/pull/52503](https://github.com/ClickHouse/ClickHouse/pull/52503). [#75944](https://github.com/ClickHouse/ClickHouse/pull/75944) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout d'un server setting `throw_on_unknown_workload` permettant de définir le comportement d'une query dont le paramètre `workload` est défini sur une valeur inconnue : soit autoriser un accès illimité (par défaut), soit renvoyer une erreur `RESOURCE_ACCESS_DENIED`. Cela est utile pour forcer toutes les queries à utiliser le Workload scheduling. [#75999](https://github.com/ClickHouse/ClickHouse/pull/75999) ([Sergei Trifonov](https://github.com/serxa)).
* Ne pas réécrire les subcolumns en `getSubcolumn` dans `ARRAY JOIN` si ce n'est pas nécessaire. [#76018](https://github.com/ClickHouse/ClickHouse/pull/76018) ([Pavel Kruglov](https://github.com/Avogar)).
* Réessayer les erreurs de coordination lors du chargement des tables. [#76020](https://github.com/ClickHouse/ClickHouse/pull/76020) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Prise en charge du flush de logs individuels dans `SYSTEM FLUSH LOGS`. [#76132](https://github.com/ClickHouse/ClickHouse/pull/76132) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration de la page `/binary` du serveur. Utilisation de la courbe de Hilbert au lieu de la courbe de Morton. Affiche 512 Mo d'adresses dans le carré, ce qui le remplit mieux (dans les versions précédentes, les adresses n'en remplissaient que la moitié). Colore les adresses en fonction du nom de la bibliothèque plutôt que du nom de la fonction. Permet de faire défiler un peu plus au-delà de la zone. [#76192](https://github.com/ClickHouse/ClickHouse/pull/76192) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réessayer les queries ON CLUSTER en cas de TOO\_MANY\_SIMULTANEOUS\_QUERIES. [#76352](https://github.com/ClickHouse/ClickHouse/pull/76352) ([Patrick Galbraith](https://github.com/CaptTofu)).
* Ajout de la Metric asynchrone `CPUOverload`, qui calcule le déficit relatif de CPU du serveur. [#76404](https://github.com/ClickHouse/ClickHouse/pull/76404) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Modification de la valeur par défaut de `output_format_pretty_max_rows`, de 10000 à 1000. Je pense que c'est préférable pour la convivialité. [#76407](https://github.com/ClickHouse/ClickHouse/pull/76407) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

#### Correction de bug (anomalie visible par l’utilisateur dans une version stable officielle)

* Corrige la mise en forme des exceptions à l’aide d’un format personnalisé lorsqu’elles surviennent pendant l’interprétation de la requête. Dans les versions précédentes, les exceptions étaient mises en forme avec le format par défaut au lieu de celui spécifié dans la requête. Cela résout [#55422](https://github.com/ClickHouse/ClickHouse/issues/55422). [#74994](https://github.com/ClickHouse/ClickHouse/pull/74994) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le mapping de types pour SQLite (types entiers vers `int64`, nombres à virgule flottante vers `float64`). [#73853](https://github.com/ClickHouse/ClickHouse/pull/73853) ([Joanna Hulboj](https://github.com/jh0x)).
* Corrige la résolution des identifiants depuis les portées englobantes. Autorise l’utilisation d’alias pour les expressions dans la clause WITH. Corrige [#58994](https://github.com/ClickHouse/ClickHouse/issues/58994). Corrige [#62946](https://github.com/ClickHouse/ClickHouse/issues/62946). Corrige [#63239](https://github.com/ClickHouse/ClickHouse/issues/63239). Corrige [#65233](https://github.com/ClickHouse/ClickHouse/issues/65233). Corrige [#71659](https://github.com/ClickHouse/ClickHouse/issues/71659). Corrige [#71828](https://github.com/ClickHouse/ClickHouse/issues/71828). Corrige [#68749](https://github.com/ClickHouse/ClickHouse/issues/68749). [#66143](https://github.com/ClickHouse/ClickHouse/pull/66143) ([Dmitry Novik](https://github.com/novikd)).
* Corrige la monotonie de la fonction negate. Dans les versions précédentes, la requête `select * from a where -x = -42;`, où `x` est la clé primaire, pouvait renvoyer un résultat incorrect. [#71440](https://github.com/ClickHouse/ClickHouse/pull/71440) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige la gestion des tuples vides dans arrayIntersect. Cela corrige [#72578](https://github.com/ClickHouse/ClickHouse/issues/72578). [#72581](https://github.com/ClickHouse/ClickHouse/pull/72581) ([Amos Bird](https://github.com/amosbird)).
* Corrige la lecture des sous-colonnes de sous-objets JSON avec un préfixe incorrect. [#73182](https://github.com/ClickHouse/ClickHouse/pull/73182) ([Pavel Kruglov](https://github.com/Avogar)).
* Propage correctement les paramètres du format Native pour la communication client-serveur. [#73924](https://github.com/ClickHouse/ClickHouse/pull/73924) ([Pavel Kruglov](https://github.com/Avogar)).
* Vérifie la prise en charge des types pour certains moteurs de stockage. [#74218](https://github.com/ClickHouse/ClickHouse/pull/74218) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un plantage avec la requête `INSERT INTO SELECT` via l’interface PostgreSQL sur macOS (issue [#72938](https://github.com/ClickHouse/ClickHouse/issues/72938)). [#74231](https://github.com/ClickHouse/ClickHouse/pull/74231) ([Artem Yurov](https://github.com/ArtemYurov)).
* Corrige max\_log\_ptr non initialisé dans la base de données Replicated. [#74336](https://github.com/ClickHouse/ClickHouse/pull/74336) ([Konstantin Morozov](https://github.com/k-morozov)).
* Corrige un plantage lors de l’insertion d’un intervalle (issue [#74299](https://github.com/ClickHouse/ClickHouse/issues/74299)). [#74478](https://github.com/ClickHouse/ClickHouse/pull/74478) ([NamHoaiNguyen](https://github.com/NamHoaiNguyen)).
* Corrige la mise en forme des littéraux JSON constants. Auparavant, cela pouvait entraîner des erreurs de syntaxe lors de l’envoi de la requête à un autre serveur. [#74533](https://github.com/ClickHouse/ClickHouse/pull/74533) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige une requête CREATE incorrecte lors de l’utilisation d’expressions de partition constantes avec les projections implicites activées. Cela corrige [#74596](https://github.com/ClickHouse/ClickHouse/issues/74596) . [#74634](https://github.com/ClickHouse/ClickHouse/pull/74634) ([Amos Bird](https://github.com/amosbird)).
* Évite de laisser la connexion dans un état défectueux après qu’un INSERT se termine par une exception. [#74740](https://github.com/ClickHouse/ClickHouse/pull/74740) ([Azat Khuzhin](https://github.com/azat)).
* Évite de réutiliser des connexions laissées dans un état intermédiaire. [#74749](https://github.com/ClickHouse/ClickHouse/pull/74749) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un crash lors de l’analyse d’une déclaration du type JSON lorsque le nom du type n’est pas en majuscules. [#74784](https://github.com/ClickHouse/ClickHouse/pull/74784) ([Pavel Kruglov](https://github.com/Avogar)).
* Keeper : corrige `logical_error` lorsque la connexion était interrompue avant d’avoir pu être établie. [#74844](https://github.com/ClickHouse/ClickHouse/pull/74844) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige un problème empêchant le serveur de démarrer lorsqu’une table utilisait `AzureBlobStorage`. Les tables sont désormais chargées sans aucune requête vers Azure. [#74880](https://github.com/ClickHouse/ClickHouse/pull/74880) ([Alexey Katsman](https://github.com/alexkats)).
* Corrige l’absence des champs `used_privileges` et `missing_privileges` dans `query_log` pour les opérations BACKUP et RESTORE. [#74887](https://github.com/ClickHouse/ClickHouse/pull/74887) ([Alexey Katsman](https://github.com/alexkats)).
* HDFS actualise le ticket krb en cas d’erreur sasl pendant une requête SELECT HDFS. [#74930](https://github.com/ClickHouse/ClickHouse/pull/74930) ([inv2004](https://github.com/inv2004)).
* Corrige les queries vers une base de données Replicated dans startup\_scripts. [#74942](https://github.com/ClickHouse/ClickHouse/pull/74942) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les problèmes liés aux expressions typées avec alias dans la clause JOIN ON lorsqu’une comparaison null-safe est utilisée. [#74970](https://github.com/ClickHouse/ClickHouse/pull/74970) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Rétablit l’état d’une part de deleting à outdated lorsque l’opération de suppression a échoué. [#74985](https://github.com/ClickHouse/ClickHouse/pull/74985) ([Sema Checherinda](https://github.com/CheSema)).
* Dans les versions précédentes, en présence d’une subquery scalaire, la progression (accumulée pendant le traitement de la subquery) a commencé à être écrite lors de l’initialisation du format de données, donc avant l’écriture des en-têtes HTTP. Cela entraînait la perte des en-têtes HTTP, tels que X-ClickHouse-QueryId et X-ClickHouse-Format, ainsi que de Content-Type. [#74991](https://github.com/ClickHouse/ClickHouse/pull/74991) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige les queries `CREATE TABLE AS...` pour `database_replicated_allow_replicated_engine_arguments=0`. [#75000](https://github.com/ClickHouse/ClickHouse/pull/75000) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige le fait que le client laisse la connexion dans un mauvais état après des exceptions INSERT. [#75030](https://github.com/ClickHouse/ClickHouse/pull/75030) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un crash dû à une exception non interceptée dans la réplication PSQL. [#75062](https://github.com/ClickHouse/ClickHouse/pull/75062) ([Azat Khuzhin](https://github.com/azat)).
* Sasl peut faire échouer n’importe quel appel rpc ; ce correctif permet de relancer l’appel si le ticket krb5 a expiré. [#75063](https://github.com/ClickHouse/ClickHouse/pull/75063) ([inv2004](https://github.com/inv2004)).
* Corrige l’utilisation des indexes (primaires et secondaires) pour les colonnes `Array`, `Map` et `Nullable(..)` avec le paramètre `optimize_function_to_subcolumns` activé. Auparavant, les indexes de ces colonnes pouvaient être ignorés. [#75081](https://github.com/ClickHouse/ClickHouse/pull/75081) ([Anton Popov](https://github.com/CurtizJ)).
* Désactivez `flatten_nested` lors de la création de vues matérialisées avec des tables internes, car il ne sera pas possible d’utiliser de telles colonnes aplaties. [#75085](https://github.com/ClickHouse/ClickHouse/pull/75085) ([Christoph Wurm](https://github.com/cwurm)).
* Correction d’un problème affectant certaines adresses IPv6 (telles que ::ffff:1.1.1.1) dans le champ forwarded\_for, qui étaient interprétées à tort, entraînant une déconnexion du client avec une exception. [#75133](https://github.com/ClickHouse/ClickHouse/pull/75133) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de la gestion des JOIN null-safe pour le type de données nullable LowCardinality. Auparavant, les JOIN ON avec une comparaison null-safe, telle que `IS NOT DISTINCT FROM`, `<=>` , `a IS NULL AND b IS NULL OR a == b`, ne fonctionnaient pas correctement avec les colonnes LowCardinality. [#75143](https://github.com/ClickHouse/ClickHouse/pull/75143) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Vérifie que nous ne spécifions pas key\_condition lors du comptage de total\_number\_of\_rows pour NumRowsCache. [#75164](https://github.com/ClickHouse/ClickHouse/pull/75164) ([Daniil Ivanik](https://github.com/divanik)).
* Correction des requêtes avec interpolation inutilisée avec le nouvel analyseur. [#75173](https://github.com/ClickHouse/ClickHouse/pull/75173) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction d’un bug de crash des CTE avec Insert. [#75188](https://github.com/ClickHouse/ClickHouse/pull/75188) ([Shichao Jin](https://github.com/jsc0218)).
* Correctif Keeper : évite d’écrire dans des changelogs corrompus lors du rollback des logs. [#75197](https://github.com/ClickHouse/ClickHouse/pull/75197) ([Antonio Andelic](https://github.com/antonio2368)).
* Utilise `BFloat16` comme supertype lorsque c’est approprié. Cela clôture : [#74404](https://github.com/ClickHouse/ClickHouse/issues/74404). [#75236](https://github.com/ClickHouse/ClickHouse/pull/75236) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction de valeurs par défaut inattendues dans le résultat du JOIN avec any\_join\_distinct\_right\_table\_keys et OR dans JOIN ON. [#75262](https://github.com/ClickHouse/ClickHouse/pull/75262) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Masque les informations d’identification du moteur de table azureblobstorage. [#75319](https://github.com/ClickHouse/ClickHouse/pull/75319) ([Garrett Thomas](https://github.com/garrettthomaskth)).
* Correction du comportement dans les cas où ClickHouse pouvait, à tort, effectuer un pushdown de filtre vers une base de données externe comme PostgreSQL, MySQL ou SQLite. Cela clôture : [#71423](https://github.com/ClickHouse/ClickHouse/issues/71423). [#75320](https://github.com/ClickHouse/ClickHouse/pull/75320) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d’un crash dans le cache de schéma Protobuf pouvant survenir lors d’une sortie au format Protobuf et de la requête parallèle `SYSTEM DROP FORMAT SCHEMA CACHE`. [#75357](https://github.com/ClickHouse/ClickHouse/pull/75357) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’une possible erreur logique ou d’un problème de mémoire non initialisée lorsqu’un filtre de `HAVING` est pushed down avec des répliques parallèles. [#75363](https://github.com/ClickHouse/ClickHouse/pull/75363) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Masque les informations sensibles pour les fonctions de table et les moteurs de table `icebergS3` et `icebergAzure`. [#75378](https://github.com/ClickHouse/ClickHouse/pull/75378) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La FUNCTION `TRIM` avec des caractères de trim vides calculés est désormais correctement gérée. Example : `SELECT TRIM(LEADING concat('') FROM 'foo')` (Issue [#69922](https://github.com/ClickHouse/ClickHouse/issues/69922)). [#75399](https://github.com/ClickHouse/ClickHouse/pull/75399) ([Manish Gill](https://github.com/mgill25)).
* Corrige une data race dans IOutputFormat. [#75448](https://github.com/ClickHouse/ClickHouse/pull/75448) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige l'erreur possible `Elements ... and ... of Nested data structure ... (Array columns) have different array sizes` lorsque des sous-colonnes JSON de type Array sont utilisées dans un JOIN sur des tables Distributed. [#75512](https://github.com/ClickHouse/ClickHouse/pull/75512) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige une corruption de données avec `CODEC(ZSTD, DoubleDelta)`. Clôt [#70031](https://github.com/ClickHouse/ClickHouse/issues/70031). [#75548](https://github.com/ClickHouse/ClickHouse/pull/75548) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige l'interaction entre allow\_feature\_tier et le paramètre de compatibilité MergeTree. [#75635](https://github.com/ClickHouse/ClickHouse/pull/75635) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la valeur incorrecte de processed\_rows dans system.s3queue\_log lorsqu'un fichier a fait l'objet d'une nouvelle tentative. [#75666](https://github.com/ClickHouse/ClickHouse/pull/75666) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Respecte `materialized_views_ignore_errors` lorsqu'une vue matérialisée écrit vers un moteur URL et qu'un problème de connectivité survient. [#75679](https://github.com/ClickHouse/ClickHouse/pull/75679) ([Christoph Wurm](https://github.com/cwurm)).
* Corrige de rares plantages lors de la lecture d'une table `MergeTree` après plusieurs requêtes `RENAME` asynchrones (avec `alter_sync = 0`) entre des colonnes de types différents. [#75693](https://github.com/ClickHouse/ClickHouse/pull/75693) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l'erreur `Block structure mismatch in QueryPipeline stream` pour certaines requêtes avec `UNION ALL`. [#75715](https://github.com/ClickHouse/ClickHouse/pull/75715) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Reconstruit la projection lors d'un alter modify de sa colonne de clé primaire. Auparavant, cela pouvait entraîner des erreurs `CANNOT_READ_ALL_DATA` lors de SELECT après un alter modify de la colonne utilisée dans la clé primaire de la projection. [#75720](https://github.com/ClickHouse/ClickHouse/pull/75720) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige le résultat incorrect de `ARRAY JOIN` pour les sous-requêtes scalaires (avec l'analyzer). [#75732](https://github.com/ClickHouse/ClickHouse/pull/75732) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un déréférencement de pointeur nul dans `DistinctSortedStreamTransform`. [#75734](https://github.com/ClickHouse/ClickHouse/pull/75734) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige le comportement de `allow_suspicious_ttl_expressions`. [#75771](https://github.com/ClickHouse/ClickHouse/pull/75771) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrige une lecture de mémoire non initialisée dans la fonction `translate`. Clôt [#75592](https://github.com/ClickHouse/ClickHouse/issues/75592). [#75794](https://github.com/ClickHouse/ClickHouse/pull/75794) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Propage les paramètres de format au formatage des chaînes JSON dans le Native format. [#75832](https://github.com/ClickHouse/ClickHouse/pull/75832) ([Pavel Kruglov](https://github.com/Avogar)).
* Enregistre dans l'historique des modifications des paramètres l'activation par défaut de parallel hash comme join algorithm dans la v24.12. Cela signifie que ClickHouse continuera d'exécuter les JOIN avec un hash non parallèle si un niveau de compatibilité antérieur à la v24.12 est configuré. [#75870](https://github.com/ClickHouse/ClickHouse/pull/75870) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction d’un bug qui empêchait de copier dans une nouvelle table des tables avec des index min-max ajoutés implicitement (issue [#75677](https://github.com/ClickHouse/ClickHouse/issues/75677)). [#75877](https://github.com/ClickHouse/ClickHouse/pull/75877) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* `clickhouse-library-bridge` permet d’ouvrir des bibliothèques arbitraires depuis le système de fichiers, ce qui ne permet de l’exécuter en toute sécurité que dans un environnement isolé. Pour éviter une vulnérabilité lorsqu’il est exécuté à proximité de clickhouse-server, nous limiterons les chemins des bibliothèques à un emplacement défini dans la configuration. Cette vulnérabilité a été découverte dans le cadre du [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) par **Arseniy Dugin**. [#75954](https://github.com/ClickHouse/ClickHouse/pull/75954) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nous avons utilisé par erreur la sérialisation JSON pour certaines métadonnées, ce qui posait problème, car JSON ne prend pas en charge les données binaires dans les littéraux de chaîne, y compris les octets nuls. Les requêtes SQL peuvent contenir des données binaires et de l’UTF-8 invalide, nous devons donc également le prendre en charge dans nos fichiers de métadonnées. Dans le même temps, `JSONEachRow` de ClickHouse et des formats similaires contournent ce problème en s’écartant de la norme JSON afin de garantir un aller-retour parfait pour les données binaires. Voir les explications ici : [https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790](https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790). La solution consiste à rendre la bibliothèque `Poco::JSON` cohérente avec la sérialisation au format JSON dans ClickHouse. Cela clôt [#73668](https://github.com/ClickHouse/ClickHouse/issues/73668). [#75963](https://github.com/ClickHouse/ClickHouse/pull/75963) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de la vérification des limites de commit dans le stockage `S3Queue`. [#76104](https://github.com/ClickHouse/ClickHouse/pull/76104) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’attachement des tables MergeTree avec index automatiques (`add_minmax_index_for_numeric_columns`/`add_minmax_index_for_string_columns`). [#76139](https://github.com/ClickHouse/ClickHouse/pull/76139) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un problème où les stack traces des threads parents d’un job (paramètre `enable_job_stack_trace`) n’étaient pas affichées. Correction d’un problème où le paramètre `enable_job_stack_trace` n’était pas correctement propagé aux threads, si bien que le contenu de la stack trace ne respectait pas toujours ce paramètre. [#76191](https://github.com/ClickHouse/ClickHouse/pull/76191) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction d’une vérification incorrecte des permissions où `ALTER RENAME` nécessitait le privilège `CREATE USER`. Clôt [#74372](https://github.com/ClickHouse/ClickHouse/issues/74372). [#76241](https://github.com/ClickHouse/ClickHouse/pull/76241) ([pufit](https://github.com/pufit)).
* Correction de `reinterpretAs` avec `FixedString` sur une architecture big-endian. [#76253](https://github.com/ClickHouse/ClickHouse/pull/76253) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’erreur logique dans S3Queue "Le processor actuel attendu {} devait être égal à {} pour le bucket {}". [#76358](https://github.com/ClickHouse/ClickHouse/pull/76358) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un interblocage pour `ALTER` avec la base de données Memory. [#76359](https://github.com/ClickHouse/ClickHouse/pull/76359) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une erreur logique dans l’analyse des index si la condition dans `WHERE` utilise la fonction `pointInPolygon`. [#76360](https://github.com/ClickHouse/ClickHouse/pull/76360) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un appel potentiellement dangereux dans le gestionnaire de signaux. [#76549](https://github.com/ClickHouse/ClickHouse/pull/76549) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de la prise en charge des clés inversées dans PartsSplitter. Cela corrige [#73400](https://github.com/ClickHouse/ClickHouse/issues/73400). [#73418](https://github.com/ClickHouse/ClickHouse/pull/73418) ([Amos Bird](https://github.com/amosbird)).

<div id="buildtestingpackaging-improvement">
  #### Améliorations de la compilation/des tests/du packaging
</div>

* Prise en charge de la compilation de HDFS sur les Mac ARM et Intel. [#74244](https://github.com/ClickHouse/ClickHouse/pull/74244) ([Yan Xin](https://github.com/yxheartipp)).
* Activation d’ICU et de GRPC lors de la compilation croisée pour Darwin. [#75922](https://github.com/ClickHouse/ClickHouse/pull/75922) ([Raúl Marín](https://github.com/Algunenano)).
* Mise à jour vers LLVM 19 embarqué. [#75148](https://github.com/ClickHouse/ClickHouse/pull/75148) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Désactivation de l’accès réseau pour l’utilisateur default dans l’image Docker. [#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). Toutes les actions liées à clickhouse-server sont désormais regroupées dans une fonction et exécutées uniquement lors du lancement du binaire par défaut dans `entrypoint.sh`. Cette amélioration, attendue depuis longtemps, avait été suggérée dans [#50724](https://github.com/ClickHouse/ClickHouse/issues/50724). Ajout de l’option `--users` à `clickhouse-extract-from-config` pour récupérer les valeurs de `users.xml`. [#75643](https://github.com/ClickHouse/ClickHouse/pull/75643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Suppression d’environ 20 Mo de code mort du binaire. [#76226](https://github.com/ClickHouse/ClickHouse/pull/76226) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="251">
  ### Version de ClickHouse 25.1, 2025-01-28
</div>

<div id="backward-incompatible-change">
  #### Changement incompatible avec les versions précédentes
</div>

* `JSONEachRowWithProgress` écrira désormais la progression à chaque mise à jour de celle-ci. Dans les versions précédentes, la progression n’était affichée qu’après chaque bloc du résultat, ce qui la rendait inutilisable. L’affichage de la progression change : les valeurs à zéro ne seront plus affichées. Cela corrige [#70800](https://github.com/ClickHouse/ClickHouse/issues/70800). [#73834](https://github.com/ClickHouse/ClickHouse/pull/73834) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les tables `Merge` unifieront la structure des tables sous-jacentes en utilisant une union de leurs colonnes et en déduisant des types communs. Cela corrige [#64864](https://github.com/ClickHouse/ClickHouse/issues/64864). Dans certains cas, ce changement peut être incompatible avec les versions précédentes. Par exemple, lorsqu’il n’existe aucun type commun entre les tables, mais qu’une conversion vers le type de la première table reste possible, comme entre UInt64 et Int64, ou entre n’importe quel type numérique et String. Si vous souhaitez revenir à l’ancien comportement, définissez `merge_table_max_tables_to_look_for_schema_inference` sur `1` ou `compatibility` sur `24.12` ou une version antérieure. [#73956](https://github.com/ClickHouse/ClickHouse/pull/73956) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le format de sortie Parquet convertit les colonnes Date et DateTime en types date/heure pris en charge par Parquet, au lieu de les écrire sous forme de nombres bruts. `DateTime` devient `DateTime64(3)` (au lieu de `UInt32`) ; le paramètre `output_format_parquet_datetime_as_uint32` permet de rétablir l’ancien comportement. `Date` devient `Date32` (au lieu de `UInt16`). [#70950](https://github.com/ClickHouse/ClickHouse/pull/70950) ([Michael Kolupaev](https://github.com/al13n321)).
* Les types non comparables (comme `JSON`/`Object`/`AggregateFunction`) ne sont plus autorisés par défaut dans `ORDER BY` ni dans les fonctions de comparaison `less/greater/equal/etc`. [#73276](https://github.com/ClickHouse/ClickHouse/pull/73276) ([Pavel Kruglov](https://github.com/Avogar)).
* Le moteur de base de données obsolète `MaterializedMySQL` a été supprimé et n’est plus disponible. [#73879](https://github.com/ClickHouse/ClickHouse/pull/73879) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La source de dictionnaire `mysql` n’exécute plus la requête `SHOW TABLE STATUS`, car elle n’apporte aucune information utile pour les tables InnoDB ni pour les versions récentes de MySQL. Cela corrige [#72636](https://github.com/ClickHouse/ClickHouse/issues/72636). Ce changement est rétrocompatible, mais il est placé dans cette catégorie afin d’attirer votre attention. [#73914](https://github.com/ClickHouse/ClickHouse/pull/73914) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les requêtes `CHECK TABLE` nécessitent désormais un privilège `CHECK` distinct. Dans les versions précédentes, il suffisait d’avoir le privilège `SHOW TABLES` pour exécuter ces requêtes. Or, une requête `CHECK TABLE` peut être lourde, et les limites habituelles de complexité des requêtes `SELECT` ne s’y appliquent pas. Cela créait un risque potentiel de DoS. [#74471](https://github.com/ClickHouse/ClickHouse/pull/74471) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La fonction `h3ToGeo()` renvoie désormais les résultats dans l’ordre `(lat, lon)` (qui est l’ordre standard pour les fonctions géométriques). Les utilisateurs qui souhaitent conserver l’ordre historique `(lon, lat)` peuvent définir le paramètre `h3togeo_lon_lat_result_order = true`. [#74719](https://github.com/ClickHouse/ClickHouse/pull/74719) ([Manish Gill](https://github.com/mgill25)).
* Un nouveau pilote MongoDB est désormais utilisé par défaut. Les utilisateurs qui souhaitent continuer à utiliser l’ancien pilote peuvent définir le paramètre serveur `use_legacy_mongodb_integration` sur true. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Robert Schulze](https://github.com/rschu1ze)).

<div id="new-feature">
  #### Nouvelle fonctionnalité
</div>

* Ajout de la possibilité d’appliquer les mutations non terminées (non matérialisées par le processus d’arrière-plan) pendant l’exécution des requêtes `SELECT`, immédiatement après leur soumission. Cette fonctionnalité peut être activée via le paramètre `apply_mutations_on_fly`. [#74877](https://github.com/ClickHouse/ClickHouse/pull/74877) ([Anton Popov](https://github.com/CurtizJ)).
* Implémentation du partition pruning des tables `Iceberg` pour les opérations de transformation de partition liées au temps dans Iceberg. [#72044](https://github.com/ClickHouse/ClickHouse/pull/72044) ([Daniil Ivanik](https://github.com/divanik)).
* Prise en charge des sous-colonnes dans la clé de tri de MergeTree et les index de saut. [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge de la lecture des valeurs `HALF_FLOAT` depuis `Apache Arrow`/`Parquet`/`ORC` (elles sont lues en `Float32`). Cela clôt [#72960](https://github.com/ClickHouse/ClickHouse/issues/72960). Gardez à l’esprit que le half float IEEE-754 n’est pas identique à `BFloat16`. Clôt [#73835](https://github.com/ClickHouse/ClickHouse/issues/73835). [#73836](https://github.com/ClickHouse/ClickHouse/pull/73836) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La table `system.trace_log` contiendra deux nouvelles colonnes, `symbols` et `lines`, contenant une pile d’appels symbolisée. Cela facilite la collecte et l’export des informations de profilage. Ce comportement est contrôlé par la valeur de configuration du serveur `symbolize` dans `trace_log` et est activé par défaut. [#73896](https://github.com/ClickHouse/ClickHouse/pull/73896) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’une nouvelle fonction, `generateSerialID`, qui peut être utilisée pour générer des nombres auto-incrémentés dans les tables. Suite de [#64310](https://github.com/ClickHouse/ClickHouse/issues/64310) par [kazalika](https://github.com/kazalika). Cela clôt [#62485](https://github.com/ClickHouse/ClickHouse/issues/62485). [#73950](https://github.com/ClickHouse/ClickHouse/pull/73950) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la syntaxe `query1 PARALLEL WITH query2 PARALLEL WITH query3 ... PARALLEL WITH queryN` pour les requêtes DDL. Cela signifie que les sous-requêtes `{query1, query2, ... queryN}` peuvent s’exécuter en parallèle les unes avec les autres (et c’est préférable). [#73983](https://github.com/ClickHouse/ClickHouse/pull/73983) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout d’un cache en mémoire pour les granules d’index de saut désérialisées. Cela devrait accélérer les requêtes répétées qui utilisent des index de saut. La taille du nouveau cache est contrôlée par les paramètres du serveur `skipping_index_cache_size` et `skipping_index_cache_max_entries`. La motivation initiale de ce cache était les index de similarité vectorielle, qui sont désormais bien plus rapides. [#70102](https://github.com/ClickHouse/ClickHouse/pull/70102) ([Robert Schulze](https://github.com/rschu1ze)).
* Désormais, l’interface Web intégrée dispose d’une barre de progression pendant l’exécution des requêtes. Elle permet d’annuler les requêtes. Elle affiche le nombre total d’enregistrements ainsi que des informations détaillées sur la vitesse. La table peut être rendue de manière incrémentale dès l’arrivée des données. Prise en charge de la compression HTTP. Le rendu de la table est devenu plus rapide. L’en-tête de la table est désormais fixe. Cela permet de sélectionner des cellules et d’y naviguer avec les touches fléchées. Correction d’un problème où le contour de la cellule sélectionnée la rendait plus petite. Les cellules ne s’agrandissent plus au survol de la souris, mais uniquement lors de la sélection. Le moment où arrêter le rendu des données entrantes est désormais décidé côté client plutôt que côté serveur. Mise en évidence des groupes de chiffres dans les nombres. Le design général a été rafraîchi et est devenu plus affirmé. L’interface vérifie si le serveur est joignable ainsi que la validité des identifiants, et affiche la version du serveur et sa durée de fonctionnement. L’icône cloud a un contour dans toutes les polices, même dans Safari. Les grands entiers à l’intérieur des types de données imbriqués seront mieux rendus. Les valeurs inf/nan seront affichées correctement. Les types de données seront affichés lorsque la souris passe sur un en-tête de colonne. [#74204](https://github.com/ClickHouse/ClickHouse/pull/74204) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la possibilité de créer par défaut des index min-max (skipping) pour les colonnes gérées par MergeTree à l’aide des paramètres `add_minmax_index_for_numeric_columns` (pour les colonnes numériques) et `add_minmax_index_for_string_columns` (pour les colonnes de type chaîne). Pour l’instant, ces deux paramètres sont désactivés ; il n’y a donc encore aucun changement de comportement. [#74266](https://github.com/ClickHouse/ClickHouse/pull/74266) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Ajout des champs `script_query_number` et `script_line_number` à `system.query_log`, à ClientInfo dans le protocole natif, ainsi qu’aux journaux du serveur. Cela clôt [#67542](https://github.com/ClickHouse/ClickHouse/issues/67542). Merci à [pinsvin00](https://github.com/pinsvin00) d’avoir initié cette fonctionnalité plus tôt dans [#68133](https://github.com/ClickHouse/ClickHouse/issues/68133). [#74477](https://github.com/ClickHouse/ClickHouse/pull/74477) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la fonction d’agrégation `sequenceMatchEvents`, qui renvoie les horodatages des événements appariés pour la plus longue chaîne d’événements correspondant au motif. [#72349](https://github.com/ClickHouse/ClickHouse/pull/72349) ([UnamedRus](https://github.com/UnamedRus)).
* Ajout de la fonction `arrayNormalizedGini`. [#72823](https://github.com/ClickHouse/ClickHouse/pull/72823) ([flynn](https://github.com/ucasfl)).
* Ajout de la prise en charge de l’opérateur moins pour `DateTime64`, afin d’autoriser la soustraction entre des valeurs `DateTime64`, ainsi qu’entre des valeurs `DateTime`. [#74482](https://github.com/ClickHouse/ClickHouse/pull/74482) ([Li Yin](https://github.com/liyinsg)).

<div id="experimental-features">
  #### Fonctionnalités expérimentales
</div>

* Le type de données `BFloat16` est prêt pour une utilisation en production. [#73840](https://github.com/ClickHouse/ClickHouse/pull/73840) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="performance-improvement">
  #### Amélioration des performances
</div>

* Fonction `indexHint` optimisée. Désormais, les colonnes utilisées uniquement comme arguments de la fonction `indexHint` ne sont plus lues depuis la table. [#74314](https://github.com/ClickHouse/ClickHouse/pull/74314) ([Anton Popov](https://github.com/CurtizJ)). Si la fonction `indexHint` est un élément central de votre architecture de données d’entreprise, cette optimisation vous sauvera la vie.
* Comptabilisation plus précise du paramètre `max_joined_block_size_rows` pour l’algorithme de JOIN `parallel_hash`. Cela permet d’éviter une consommation mémoire plus élevée qu’avec l’algorithme `hash`. [#74630](https://github.com/ClickHouse/ClickHouse/pull/74630) ([Nikita Taranov](https://github.com/nickitat)).
* Prise en charge de l’optimisation de descente des prédicats au niveau du plan de requête pour l’étape `MergingAggregated`. Cela améliore les performances de certaines requêtes avec l’analyseur. [#74073](https://github.com/ClickHouse/ClickHouse/pull/74073) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Le découpage par hash des blocs de la table de gauche a été supprimé de la phase de probe de l’algorithme de JOIN `parallel_hash`. [#73089](https://github.com/ClickHouse/ClickHouse/pull/73089) ([Nikita Taranov](https://github.com/nickitat)).
* Optimise le format d’entrée RowBinary. Clôt [#63805](https://github.com/ClickHouse/ClickHouse/issues/63805). [#65059](https://github.com/ClickHouse/ClickHouse/pull/65059) ([Pavel Kruglov](https://github.com/Avogar)).
* Écrit les parts au niveau 1 si `optimize_on_insert` est activé. Cela permet d’utiliser plusieurs optimisations de requêtes avec `FINAL` pour les parts nouvellement écrites. [#73132](https://github.com/ClickHouse/ClickHouse/pull/73132) ([Anton Popov](https://github.com/CurtizJ)).
* Accélère la désérialisation des chaînes grâce à une optimisation de bas niveau. [#65948](https://github.com/ClickHouse/ClickHouse/pull/65948) ([Nikita Taranov](https://github.com/nickitat)).
* Lors d’une comparaison d’égalité entre enregistrements, par exemple pendant les merges, compare d’abord les lignes des colonnes les plus susceptibles d’être différentes. [#63780](https://github.com/ClickHouse/ClickHouse/pull/63780) ([UnamedRus](https://github.com/UnamedRus)).
* Améliore les performances de grace hash join en réordonnant la table droite de la jointure selon les clés. [#72237](https://github.com/ClickHouse/ClickHouse/pull/72237) ([kevinyhzou](https://github.com/KevinyhZou)).
* Permet à `arrayROCAUC` et `arrayAUCPR` de calculer une aire partielle de l’ensemble de la courbe, afin de paralléliser ce calcul sur de très grands jeux de données. [#72904](https://github.com/ClickHouse/ClickHouse/pull/72904) ([Emmanuel](https://github.com/emmanuelsdias)).
* Évite de créer trop de threads inactifs. [#72920](https://github.com/ClickHouse/ClickHouse/pull/72920) ([Guo Wangyang](https://github.com/guowangy)).
* N’énumère pas les clés du blob storage lorsque seule une expansion entre accolades est utilisée dans la table function. Clôt [#73333](https://github.com/ClickHouse/ClickHouse/issues/73333). [#73518](https://github.com/ClickHouse/ClickHouse/pull/73518) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Optimisation par court-circuit pour les fonctions exécutées sur des arguments Nullable. [#73820](https://github.com/ClickHouse/ClickHouse/pull/73820) ([李扬](https://github.com/taiyang-li)).
* N’applique pas `maskedExecute` aux colonnes qui ne sont pas des fonctions, ce qui améliore les performances de l’exécution en court-circuit. [#73965](https://github.com/ClickHouse/ClickHouse/pull/73965) ([lgbo](https://github.com/lgbo-ustc)).
* Désactive l’autodétection des en-têtes dans les formats d’entrée pour `Kafka`/`NATS`/`RabbitMQ`/`FileLog` afin d’améliorer les performances. [#74006](https://github.com/ClickHouse/ClickHouse/pull/74006) ([Azat Khuzhin](https://github.com/azat)).
* Exécute le pipeline avec un degré de parallélisme plus élevé après l’agrégation avec des grouping sets. [#74082](https://github.com/ClickHouse/ClickHouse/pull/74082) ([Nikita Taranov](https://github.com/nickitat)).
* Réduit la section critique de `MergeTreeReadPool`. [#74202](https://github.com/ClickHouse/ClickHouse/pull/74202) ([Guo Wangyang](https://github.com/guowangy)).
* Amélioration des performances de parallel replicas. La désérialisation des paquets sur l’initiateur de requête, pour les paquets sans lien avec le protocole de parallel replicas, s’effectue désormais toujours dans le thread du pipeline. Auparavant, elle pouvait s’effectuer dans un thread chargé de l’ordonnancement du pipeline, ce qui pouvait rendre l’initiateur moins réactif et retarder l’exécution du pipeline. [#74398](https://github.com/ClickHouse/ClickHouse/pull/74398) ([Igor Nikonov](https://github.com/devcrafter)).
* Améliore les performances des requêtes multiples de grande taille dans Keeper. [#74849](https://github.com/ClickHouse/ClickHouse/pull/74849) ([Antonio Andelic](https://github.com/antonio2368)).
* Utilise les wrappers de journalisation par valeur, sans allocation sur le tas. [#74034](https://github.com/ClickHouse/ClickHouse/pull/74034) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Rétablit en arrière-plan la connexion aux répliques de dictionnaires MySQL et Postgres, afin de ne pas retarder les requêtes vers les dictionnaires correspondants. [#71101](https://github.com/ClickHouse/ClickHouse/pull/71101) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Les parallel replicas utilisaient des informations historiques sur la disponibilité des répliques pour améliorer la sélection des répliques, mais ne mettaient pas à jour le compteur d’erreurs de la réplique lorsque la connexion était indisponible. Cette PR met désormais à jour le compteur d’erreurs de la réplique lorsqu’elle est indisponible. [#72666](https://github.com/ClickHouse/ClickHouse/pull/72666) ([zoomxi](https://github.com/zoomxi)).
* Ajout du paramètre MergeTree `materialize_skip_indexes_on_merge`, qui empêche la création de skip indexes lors des fusions. Cela permet de contrôler explicitement (via `ALTER TABLE [..] MATERIALIZE INDEX [...]`) le moment où les skip indexes sont créés. Cela peut être utile si les skip indexes sont coûteux à créer (par ex. les vector similarity indexes). [#74401](https://github.com/ClickHouse/ClickHouse/pull/74401) ([Robert Schulze](https://github.com/rschu1ze)).
* Optimise les requêtes Keeper dans Storage(S3/Azure)Queue. [#74410](https://github.com/ClickHouse/ClickHouse/pull/74410) ([Kseniia Sumarokova](https://github.com/kssenii)). [#74538](https://github.com/ClickHouse/ClickHouse/pull/74538) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Utilise jusqu’à `1000` parallel replicas par défaut. [#74504](https://github.com/ClickHouse/ClickHouse/pull/74504) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Améliore la réutilisation des sessions HTTP lors de la lecture à partir du disque S3 ([#72401](https://github.com/ClickHouse/ClickHouse/issues/72401)). [#74548](https://github.com/ClickHouse/ClickHouse/pull/74548) ([Julian Maicher](https://github.com/jmaicher)).

<div id="improvement">
  #### Amélioration
</div>

* Prise en charge de SETTINGS dans une requête CREATE TABLE avec un ENGINE implicite, ainsi que du mélange des réglages de l’engine et de la requête. [#73120](https://github.com/ClickHouse/ClickHouse/pull/73120) ([Raúl Marín](https://github.com/Algunenano)).
* Activation de `use_hive_partitioning` par défaut. [#71636](https://github.com/ClickHouse/ClickHouse/pull/71636) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Prise en charge de CAST et ALTER entre des types JSON ayant des paramètres différents. [#72303](https://github.com/ClickHouse/ClickHouse/pull/72303) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge de la comparaison d’égalité pour les valeurs d’une colonne JSON. [#72991](https://github.com/ClickHouse/ClickHouse/pull/72991) ([Pavel Kruglov](https://github.com/Avogar)).
* Amélioration du formatage des identifiants avec des sous-colonnes JSON afin d’éviter les accents graves inutiles. [#73085](https://github.com/ClickHouse/ClickHouse/pull/73085) ([Pavel Kruglov](https://github.com/Avogar)).
* Améliorations des métriques interactives. Correction de l’affichage incomplet des métriques provenant des répliques parallèles. Affichage des métriques par ordre de mise à jour la plus récente, puis par ordre lexicographique de nom. Les métriques obsolètes ne sont pas affichées. [#71631](https://github.com/ClickHouse/ClickHouse/pull/71631) ([Julia Kartseva](https://github.com/jkartseva)).
* Activer par défaut le JSON output format pretty. Ajout du nouveau réglage `output_format_json_pretty_print` pour le contrôler, activé lui aussi par défaut. [#72148](https://github.com/ClickHouse/ClickHouse/pull/72148) ([Pavel Kruglov](https://github.com/Avogar)).
* Autoriser `LowCardinality(UUID)` par défaut. Cela s’est révélé pratique chez les clients de ClickHouse Cloud. [#73826](https://github.com/ClickHouse/ClickHouse/pull/73826) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Message amélioré pendant l’installation. [#73827](https://github.com/ClickHouse/ClickHouse/pull/73827) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Message amélioré concernant la réinitialisation du mot de passe pour ClickHouse Cloud. [#73831](https://github.com/ClickHouse/ClickHouse/pull/73831) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration du message d’erreur pour une table File qui ne peut pas ajouter de données à un fichier. [#73832](https://github.com/ClickHouse/ClickHouse/pull/73832) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Demander confirmation lorsqu’un utilisateur demande accidentellement une sortie au format binaire (comme Native, Parquet ou Avro) dans le terminal. Ceci clôt [#59524](https://github.com/ClickHouse/ClickHouse/issues/59524). [#73833](https://github.com/ClickHouse/ClickHouse/pull/73833) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mettre en évidence les espaces de fin dans les formats Pretty et Vertical dans le terminal pour une meilleure lisibilité. Cela est contrôlé par le réglage `output_format_pretty_highlight_trailing_spaces`. Implémentation initiale par [Braden Burns](https://github.com/bradenburns) dans [#72996](https://github.com/ClickHouse/ClickHouse/issues/72996). Clôt [#71590](https://github.com/ClickHouse/ClickHouse/issues/71590). [#73847](https://github.com/ClickHouse/ClickHouse/pull/73847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `clickhouse-client` et `clickhouse-local` détecteront automatiquement la Compression de stdin lorsqu’elle est redirigée depuis un fichier. Ceci clôt [#70865](https://github.com/ClickHouse/ClickHouse/issues/70865). [#73848](https://github.com/ClickHouse/ClickHouse/pull/73848) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Tronquer par défaut les noms de colonnes trop longs dans les formats Pretty. Cela est contrôlé par les paramètres `output_format_pretty_max_column_name_width_cut_to` et `output_format_pretty_max_column_name_width_min_chars_to_cut`. Cela s’inscrit dans la continuité du travail de [tanmaydatta](https://github.com/tanmaydatta) dans [#66502](https://github.com/ClickHouse/ClickHouse/issues/66502). Cela corrige [#65968](https://github.com/ClickHouse/ClickHouse/issues/65968). [#73851](https://github.com/ClickHouse/ClickHouse/pull/73851) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rendre les formats `Pretty` plus esthétiques : regrouper les blocs si peu de temps s’est écoulé depuis la sortie du bloc précédent. Cela est contrôlé par les nouveaux paramètres `output_format_pretty_squash_consecutive_ms` (50 ms par défaut) et `output_format_pretty_squash_max_wait_ms` (1000 ms par défaut). Suite de [#49537](https://github.com/ClickHouse/ClickHouse/issues/49537). Cela corrige [#49153](https://github.com/ClickHouse/ClickHouse/issues/49153). [#73852](https://github.com/ClickHouse/ClickHouse/pull/73852) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajouter une métrique sur le nombre de parties source actuellement en cours de fusion. Cela corrige [#70809](https://github.com/ClickHouse/ClickHouse/issues/70809). [#73868](https://github.com/ClickHouse/ClickHouse/pull/73868) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mettre en surbrillance les colonnes dans le format `Vertical` si la sortie est destinée à un terminal. Cela peut être désactivé avec le paramètre `output_format_pretty_color`. [#73898](https://github.com/ClickHouse/ClickHouse/pull/73898) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliorer la compatibilité MySQL à un niveau tel que `mysqlsh` (une CLI MySQL avancée d’Oracle) peut désormais se connecter à ClickHouse. Cela est nécessaire pour faciliter les tests. [#73912](https://github.com/ClickHouse/ClickHouse/pull/73912) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les formats Pretty peuvent afficher des champs multiligne dans une cellule de table, ce qui améliore la lisibilité. Cela est activé par défaut et peut être contrôlé par le paramètre `output_format_pretty_multiline_fields`. Suite du travail de [Volodyachan](https://github.com/Volodyachan) dans [#64094](https://github.com/ClickHouse/ClickHouse/issues/64094). Cela corrige [#56912](https://github.com/ClickHouse/ClickHouse/issues/56912). [#74032](https://github.com/ClickHouse/ClickHouse/pull/74032) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exposer les en-têtes HTTP X-ClickHouse à JavaScript dans le navigateur. Cela facilite le développement d’applications. [#74180](https://github.com/ClickHouse/ClickHouse/pull/74180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le format `JSONEachRowWithProgress` inclura des événements avec des métadonnées, ainsi que les totaux et les extrêmes. Il inclut également `rows_before_limit_at_least` et `rows_before_aggregation`. Le format affiche correctement l’exception si elle arrive après des résultats partiels. La progression inclut désormais le temps écoulé en nanosecondes. Un événement de progression final est émis à la fin. La progression pendant l’exécution de la requête ne sera pas affichée plus fréquemment que la valeur du paramètre `interactive_delay`. [#74181](https://github.com/ClickHouse/ClickHouse/pull/74181) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le sablier tournera de manière fluide dans l’UI Play. [#74182](https://github.com/ClickHouse/ClickHouse/pull/74182) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Même si la réponse HTTP est compressée, envoyer les paquets dès leur arrivée. Cela permet au navigateur de recevoir les paquets de progression et les données compressées. [#74201](https://github.com/ClickHouse/ClickHouse/pull/74201) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Si le nombre d’enregistrements en sortie dépasse N = `output_format_pretty_max_rows`, au lieu d’afficher uniquement les N premières lignes, nous couperons la table de sortie au milieu pour afficher les N/2 premières et les N/2 dernières lignes. Suite de [#64200](https://github.com/ClickHouse/ClickHouse/issues/64200). Cela clôt [#59502](https://github.com/ClickHouse/ClickHouse/issues/59502). [#73929](https://github.com/ClickHouse/ClickHouse/pull/73929) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autorise un algorithme de planification de jointure plus général lorsque l’algorithme de hash join est activé. [#71926](https://github.com/ClickHouse/ClickHouse/pull/71926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Autorise la création d’un index bloom\_filter sur des colonnes de type de données `DateTime64`. [#66416](https://github.com/ClickHouse/ClickHouse/pull/66416) ([Yutong Xiao](https://github.com/YutSean)).
* Lorsque `min_age_to_force_merge_seconds` et `min_age_to_force_merge_on_partition_only` sont tous deux activés, le part merging ignore la limite maximale en octets. [#73656](https://github.com/ClickHouse/ClickHouse/pull/73656) ([Kai Zhu](https://github.com/nauu)).
* Ajout des HTTP headers à la table des journaux de spans OpenTelemetry pour une meilleure traçabilité. [#70516](https://github.com/ClickHouse/ClickHouse/pull/70516) ([jonymohajanGmail](https://github.com/jonymohajanGmail)).
* Prend en charge l’écriture de fichiers `orc` avec un fuseau horaire personnalisé, au lieu d’utiliser systématiquement le fuseau horaire `GMT`. [#70615](https://github.com/ClickHouse/ClickHouse/pull/70615) ([kevinyhzou](https://github.com/KevinyhZou)).
* Respecte les paramètres d’IO scheduling lors de l’écriture de backups entre clouds. [#71093](https://github.com/ClickHouse/ClickHouse/pull/71093) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ajoute l’alias de colonne `name` pour `metric` à `system.asynchronous_metrics`. [#71164](https://github.com/ClickHouse/ClickHouse/pull/71164) ([megao](https://github.com/jetgm)).
* Historiquement, pour une raison quelconque, la query `ALTER TABLE MOVE PARTITION TO TABLE` vérifiait les droits `SELECT` et `ALTER DELETE` au lieu du droit dédié `ALTER_MOVE_PARTITION`. Cette PR utilise désormais ce type d’accès. Pour des raisons de compatibilité, cette permission sera également accordée implicitement si `SELECT` et `ALTER DELETE` sont accordés, mais ce comportement sera supprimé dans de futures releases. Clôt [#16403](https://github.com/ClickHouse/ClickHouse/issues/16403). [#71632](https://github.com/ClickHouse/ClickHouse/pull/71632) ([pufit](https://github.com/pufit)).
* Déclenche une exception lors d’une tentative de matérialisation d’une colonne dans la clé de tri, au lieu de permettre une rupture de l’ordre de tri. [#71891](https://github.com/ClickHouse/ClickHouse/pull/71891) ([Peter Nguyen](https://github.com/petern48)).
* Masque les secrets dans `EXPLAIN QUERY TREE`. [#72025](https://github.com/ClickHouse/ClickHouse/pull/72025) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Prend en charge les types logiques entiers Parquet dans le lecteur "native". [#72105](https://github.com/ClickHouse/ClickHouse/pull/72105) ([Arthur Passos](https://github.com/arthurpassos)).
* Demande les credentials de manière interactive dans le navigateur si le default user nécessite un password. Dans les versions précédentes, le server renvoyait HTTP 403 ; il renvoie désormais HTTP 401. [#72198](https://github.com/ClickHouse/ClickHouse/pull/72198) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Convertit les types d’accès `CREATE_USER`, `ALTER_USER`, `DROP_USER`, `CREATE_ROLE`, `ALTER_ROLE`, `DROP_ROLE` de globaux à paramétrés. Cela signifie que vous pouvez désormais accorder les grants de gestion des accès avec plus de précision. [#72246](https://github.com/ClickHouse/ClickHouse/pull/72246) ([pufit](https://github.com/pufit)).
* Ajout de la colonne `latest_fail_error_code_name` à `system.mutations`. Cette colonne est nécessaire pour introduire une nouvelle métrique sur les mutations bloquées, l’utiliser pour créer des graphiques des erreurs rencontrées dans le cloud et, éventuellement, ajouter une nouvelle alerte moins bruyante. [#72398](https://github.com/ClickHouse/ClickHouse/pull/72398) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Réduction du nombre d’allocations dans la requête `ATTACH PARTITION`. [#72583](https://github.com/ClickHouse/ClickHouse/pull/72583) ([Konstantin Morozov](https://github.com/k-morozov)).
* La limite `max_bytes_before_external_sort` dépend désormais de la consommation mémoire totale de la requête (auparavant, il s’agissait du nombre d’octets dans le bloc de tri d’un thread de tri ; elle a maintenant la même signification que `max_bytes_before_external_group_by` : c’est la limite mémoire totale de toute la requête sur l’ensemble des threads). Un paramètre supplémentaire a également été ajouté pour contrôler la taille des blocs sur disque : `min_external_sort_block_bytes`. [#72598](https://github.com/ClickHouse/ClickHouse/pull/72598) ([Azat Khuzhin](https://github.com/azat)).
* Ignorer les restrictions mémoire pour le collecteur de traces. [#72606](https://github.com/ClickHouse/ClickHouse/pull/72606) ([Azat Khuzhin](https://github.com/azat)).
* Ajout des paramètres serveur `dictionaries_lazy_load` et `wait_dictionaries_load_at_startup` à `system.server_settings`. [#72664](https://github.com/ClickHouse/ClickHouse/pull/72664) ([Christoph Wurm](https://github.com/cwurm)).
* Ajout du paramètre `max_backup_bandwidth` à la liste des paramètres pouvant être spécifiés dans les requêtes `BACKUP`/`RESTORE`. [#72665](https://github.com/ClickHouse/ClickHouse/pull/72665) ([Christoph Wurm](https://github.com/cwurm)).
* Réduction du niveau de journalisation pour l’apparition des parts répliquées dans le moteur ReplicatedMergeTree afin de réduire le volume de logs généré dans un cluster répliqué. [#72876](https://github.com/ClickHouse/ClickHouse/pull/72876) ([mor-akamai](https://github.com/morkalfon)).
* Amélioration de l’extraction des expressions communes dans les disjonctions. Permet de simplifier l’expression de filtre résultante même s’il n’existe pas de sous-expression commune à toutes les disjonctions. Suite de [#71537](https://github.com/ClickHouse/ClickHouse/issues/71537). [#73271](https://github.com/ClickHouse/ClickHouse/pull/73271) ([Dmitry Novik](https://github.com/novikd)).
* Dans Storage `S3Queue`/`AzureQueue`, il est désormais possible d’ajouter des paramètres à une table créée sans paramètres. [#73283](https://github.com/ClickHouse/ClickHouse/pull/73283) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Introduction du paramètre `least_greatest_legacy_null_behavior` (par défaut : `false`), qui contrôle si les fonctions `least` et `greatest` traitent les arguments `NULL` en renvoyant systématiquement `NULL` (si `true`) ou en les ignorant (si `false`). [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([Robert Schulze](https://github.com/rschu1ze)).
* Utilisation de requêtes multiples Keeper dans le thread de nettoyage d’ObjectStorageQueueMetadata. [#73357](https://github.com/ClickHouse/ClickHouse/pull/73357) ([Antonio Andelic](https://github.com/antonio2368)).
* Lorsque ClickHouse s’exécute sous un cgroup, nous continuerons à collecter des métriques asynchrones à l’échelle du système liées à la charge système, à l’ordonnancement des processus, à la mémoire, etc. Elles peuvent fournir des signaux utiles lorsque ClickHouse est le seul processus sur l’hôte à consommer beaucoup de ressources. [#73369](https://github.com/ClickHouse/ClickHouse/pull/73369) ([Nikita Taranov](https://github.com/nickitat)).
* Dans le storage `S3Queue`, permettre de migrer les anciennes tables ordered créées avant la version 24.6 vers la nouvelle structure avec buckets. [#73467](https://github.com/ClickHouse/ClickHouse/pull/73467) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de `system.azure_queue`, sur le modèle de `system.s3queue`. [#73477](https://github.com/ClickHouse/ClickHouse/pull/73477) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La fonction `parseDateTime64` (et ses variantes) produit désormais des résultats corrects pour les dates d’entrée antérieures à 1970 / postérieures à 2106. Example : `SELECT parseDateTime64InJodaSyntax('2200-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')`. [#73594](https://github.com/ClickHouse/ClickHouse/pull/73594) ([zhanglistar](https://github.com/zhanglistar)).
* Corrige plusieurs problèmes d’ergonomie de `clickhouse-disks` signalés par les utilisateurs. Clôture [#67136](https://github.com/ClickHouse/ClickHouse/issues/67136). [#73616](https://github.com/ClickHouse/ClickHouse/pull/73616) ([Daniil Ivanik](https://github.com/divanik)).
* Permet de modifier les paramètres de commit dans le stockage S3(Azure)Queue. (Les paramètres de commit sont : `max_processed_files_before_commit`, `max_processed_rows_before_commit`, `max_processed_bytes_before_commit`, `max_processing_time_sec_before_commit`). [#73635](https://github.com/ClickHouse/ClickHouse/pull/73635) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Dans le stockage S3(Azure)Queue, agrège la progression entre les sources pour la comparer aux paramètres de limite de commit. [#73641](https://github.com/ClickHouse/ClickHouse/pull/73641) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prend en charge les paramètres principaux dans la requête `BACKUP`/`RESTORE`. [#73650](https://github.com/ClickHouse/ClickHouse/pull/73650) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prend en compte `output_format_compression_level` pour la sortie Parquet. [#73651](https://github.com/ClickHouse/ClickHouse/pull/73651) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajoute la lecture de `fixed_size_list` d’Apache Arrow comme un `Array` au lieu de le traiter comme un type non pris en charge. [#73654](https://github.com/ClickHouse/ClickHouse/pull/73654) ([Julian Meyers](https://github.com/J-Meyers)).
* Ajoute deux moteurs de sauvegarde : `Memory` (conserve les backups dans la session utilisateur en cours) et `Null` (ne conserve les backups nulle part), pour les tests. [#73690](https://github.com/ClickHouse/ClickHouse/pull/73690) ([Vitaly Baranov](https://github.com/vitlibar)).
* `concurrent_threads_soft_limit_num` et `concurrent_threads_soft_limit_num_ratio_to_cores` peuvent être modifiés sans redémarrer le server. [#73713](https://github.com/ClickHouse/ClickHouse/pull/73713) ([Sergei Trifonov](https://github.com/serxa)).
* Ajoute la prise en charge des types numériques étendus (`Decimal`, grands entiers) dans les fonctions `formatReadable`. [#73765](https://github.com/ClickHouse/ClickHouse/pull/73765) ([Raúl Marín](https://github.com/Algunenano)).
* Prend en charge TLS pour la compatibilité avec le wire protocol de Postgres. [#73812](https://github.com/ClickHouse/ClickHouse/pull/73812) ([scanhex12](https://github.com/scanhex12)).
* La fonction `isIPv4String` renvoyait true si une adresse IPv4 correcte était suivie d’un octet nul, alors qu’elle devrait renvoyer false dans ce cas. Suite de [#65387](https://github.com/ClickHouse/ClickHouse/issues/65387). [#73946](https://github.com/ClickHouse/ClickHouse/pull/73946) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rend le code d’error du MySQL wire protocol compatible avec MySQL. Suite de [#56831](https://github.com/ClickHouse/ClickHouse/issues/56831). Clôture [#50957](https://github.com/ClickHouse/ClickHouse/issues/50957). [#73948](https://github.com/ClickHouse/ClickHouse/pull/73948) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute le paramètre `validate_enum_literals_in_opearators` pour valider les littéraux enum dans des operators comme `IN` et `NOT IN` par rapport au type enum, et throw an exception si le littéral n’est pas une valeur enum valide. [#73985](https://github.com/ClickHouse/ClickHouse/pull/73985) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Dans `S3(Azure)Queue`, valider tous les fichiers (dans un seul lot défini par les paramètres de commit) au sein d’une seule transaction Keeper. [#73991](https://github.com/ClickHouse/ClickHouse/pull/73991) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactiver la détection d’en-tête pour les UDF exécutables et les dictionnaires (cela pouvait entraîner `Function &#39;X&#39;: wrong result, expected Y row(s), actual Y-1`). [#73992](https://github.com/ClickHouse/ClickHouse/pull/73992) ([Azat Khuzhin](https://github.com/azat)).
* Ajouter l’option `distributed` à `EXPLAIN PLAN.` Désormais, `EXPLAIN distributed=1 ... ` ajoute le plan distant aux étapes `ReadFromParallelRemote*`. [#73994](https://github.com/ClickHouse/ClickHouse/pull/73994) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Utiliser le bon type de retour pour not/xor avec des arguments Dynamic. [#74013](https://github.com/ClickHouse/ClickHouse/pull/74013) ([Pavel Kruglov](https://github.com/Avogar)).
* Autoriser la modification de `add_implicit_sign_column_constraint_for_collapsing_engine` après la création de la table. [#74014](https://github.com/ClickHouse/ClickHouse/pull/74014) ([Christoph Wurm](https://github.com/cwurm)).
* Prendre en charge les sous-colonnes dans la requête SELECT d’une vue matérialisée. [#74030](https://github.com/ClickHouse/ClickHouse/pull/74030) ([Pavel Kruglov](https://github.com/Avogar)).
* Il existe désormais trois façons simples de définir un prompt personnalisé dans `clickhouse-client` : 1. via le paramètre de ligne de commande `--prompt`, 2. dans le fichier de configuration, via le paramètre `<prompt>[...]</prompt>`, et 3. également dans le fichier de configuration, via les paramètres propres à chaque connexion `<connections_credentials><prompt>[...]</prompt></connection_credentials>`. [#74168](https://github.com/ClickHouse/ClickHouse/pull/74168) ([Christoph Wurm](https://github.com/cwurm)).
* Détecter automatiquement une connexion sécurisée lors d’une connexion au port 9440 dans ClickHouse Client. [#74212](https://github.com/ClickHouse/ClickHouse/pull/74212) ([Christoph Wurm](https://github.com/cwurm)).
* Authentifier les utilisateurs avec le seul nom d’utilisateur pour les http\_handlers (auparavant, l’utilisateur devait également fournir le mot de passe). [#74221](https://github.com/ClickHouse/ClickHouse/pull/74221) ([Azat Khuzhin](https://github.com/azat)).
* La prise en charge des langages de requête alternatifs PRQL et KQL a été marquée comme expérimentale. Pour les utiliser, spécifiez les paramètres `allow_experimental_prql_dialect = 1` et `allow_experimental_kusto_dialect = 1`. [#74224](https://github.com/ClickHouse/ClickHouse/pull/74224) ([Robert Schulze](https://github.com/rschu1ze)).
* Prendre en charge le renvoi du type Enum par défaut dans davantage de fonctions d’agrégation. [#74272](https://github.com/ClickHouse/ClickHouse/pull/74272) ([Raúl Marín](https://github.com/Algunenano)).
* Dans `OPTIMIZE TABLE`, il est désormais possible de spécifier le mot-clé `FORCE` comme alternative au mot-clé existant `FINAL`. [#74342](https://github.com/ClickHouse/ClickHouse/pull/74342) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajouter la métrique `IsServerShuttingDown`, nécessaire pour déclencher une alerte lorsque l’arrêt du serveur prend trop de temps. [#74429](https://github.com/ClickHouse/ClickHouse/pull/74429) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajouter les noms des tables Iceberg à EXPLAIN. [#74485](https://github.com/ClickHouse/ClickHouse/pull/74485) ([alekseev-maksim](https://github.com/alekseev-maksim)).
* Fournir un meilleur message d’erreur lors de l’utilisation d’un CTE RECURSIVE avec l’ancien analyseur. [#74523](https://github.com/ClickHouse/ClickHouse/pull/74523) ([Raúl Marín](https://github.com/Algunenano)).
* Afficher des messages d’erreur détaillés dans `system.errors`. [#74574](https://github.com/ClickHouse/ClickHouse/pull/74574) ([Vitaly Baranov](https://github.com/vitlibar)).
* Autoriser l’utilisation d’un mot de passe pour la communication entre le client et ClickHouse Keeper. Cette fonctionnalité n’est pas très utile si vous spécifiez une configuration SSL appropriée pour le serveur et le client, mais elle peut tout de même être utile dans certains cas. Le mot de passe ne peut pas dépasser 16 caractères. Cela n'a aucun lien avec le modèle d’authentification de Keeper. [#74673](https://github.com/ClickHouse/ClickHouse/pull/74673) ([alesapin](https://github.com/alesapin)).
* Ajouter un code d’erreur pour le rechargeur de configuration. [#74746](https://github.com/ClickHouse/ClickHouse/pull/74746) ([Garrett Thomas](https://github.com/garrettthomaskth)).
* Ajout de la prise en charge des adresses IPv6 dans les fonctions de table et les moteurs MySQL et PostgreSQL. [#74796](https://github.com/ClickHouse/ClickHouse/pull/74796) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Implémenter une optimisation par court-circuit pour `divideDecimal`. Corrige [#74280](https://github.com/ClickHouse/ClickHouse/issues/74280). [#74843](https://github.com/ClickHouse/ClickHouse/pull/74843) ([Kevin Mingtarja](https://github.com/kevinmingtarja)).
* Les utilisateurs peuvent désormais être spécifiés dans les scripts de démarrage. [#74894](https://github.com/ClickHouse/ClickHouse/pull/74894) ([pufit](https://github.com/pufit)).
* Ajouter la prise en charge des jetons SAS Azure. [#72959](https://github.com/ClickHouse/ClickHouse/pull/72959) ([Azat Khuzhin](https://github.com/azat)).

#### Correction de bug (dysfonctionnement visible par l’utilisateur dans une version stable officielle)

* Définir le niveau de compression de Parquet uniquement si le codec de compression le prend en charge. [#74659](https://github.com/ClickHouse/ClickHouse/pull/74659) ([Arthur Passos](https://github.com/arthurpassos)).
* Correction d’une régression où l’utilisation de locales de collation avec des modificateurs générait une erreur. Par exemple, `SELECT arrayJoin(['kk 50', 'KK 01', ' KK 2', ' KK 3', 'kk 1', 'x9y99', 'x9y100']) item ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted` fonctionne désormais. [#73544](https://github.com/ClickHouse/ClickHouse/pull/73544) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de l’impossibilité de créer un nœud SEQUENTIAL avec keeper-client. [#64177](https://github.com/ClickHouse/ClickHouse/pull/64177) ([Duc Canh Le](https://github.com/canhld94)).
* Correction du comptage incorrect des caractères dans les fonctions de position. [#71003](https://github.com/ClickHouse/ClickHouse/pull/71003) ([思维](https://github.com/heymind)).
* Les opérations `RESTORE` sur les entités d’accès nécessitaient plus d’autorisations que nécessaire en raison de révocations partielles non gérées. Cette PR corrige le problème. Clôt [#71853](https://github.com/ClickHouse/ClickHouse/issues/71853). [#71958](https://github.com/ClickHouse/ClickHouse/pull/71958) ([pufit](https://github.com/pufit)).
* Évite une pause après `ALTER TABLE REPLACE/MOVE PARTITION FROM/TO TABLE`. Récupère les paramètres appropriés pour l’ordonnancement des tâches en arrière-plan. [#72024](https://github.com/ClickHouse/ClickHouse/pull/72024) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Correction de la gestion des tuples vides dans certains formats d’entrée et de sortie (par ex. Parquet, Arrow). [#72616](https://github.com/ClickHouse/ClickHouse/pull/72616) ([Michael Kolupaev](https://github.com/al13n321)).
* Les instructions GRANT SELECT/INSERT au niveau des colonnes sur des bases de données/tables avec caractères génériques génèrent désormais une erreur. [#72646](https://github.com/ClickHouse/ClickHouse/pull/72646) ([Johann Gan](https://github.com/johanngan)).
* Correction du cas où un utilisateur ne peut pas exécuter `REVOKE ALL ON *.*` en raison d’autorisations implicites dans l’entité d’accès cible. [#72872](https://github.com/ClickHouse/ClickHouse/pull/72872) ([pufit](https://github.com/pufit)).
* Correction du formatage des fuseaux horaires positifs de la fonction scalaire `formatDateTime`. [#73091](https://github.com/ClickHouse/ClickHouse/pull/73091) ([ollidraese](https://github.com/ollidraese)).
* Correction pour refléter correctement le port source lorsqu’une connexion est établie via PROXYv1 et que `auth_use_forwarded_address` est défini : auparavant, le port du proxy était utilisé à tort. Ajout de la fonction `currentQueryID()`. [#73095](https://github.com/ClickHouse/ClickHouse/pull/73095) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Propage les paramètres de format à NativeWriter dans TCPHandler, afin que des paramètres comme `output_format_native_write_json_as_string` soient correctement appliqués. [#73179](https://github.com/ClickHouse/ClickHouse/pull/73179) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un crash dans StorageObjectStorageQueue. [#73274](https://github.com/ClickHouse/ClickHouse/pull/73274) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un crash rare dans une vue matérialisée actualisable pendant l’arrêt du serveur. [#73323](https://github.com/ClickHouse/ClickHouse/pull/73323) ([Michael Kolupaev](https://github.com/al13n321)).
* L’espace réservé `%f` de la fonction `formatDateTime` génère désormais systématiquement six chiffres (fractions de seconde). Cela rend le comportement compatible avec la fonction MySQL `DATE_FORMAT`. Le comportement précédent peut être restauré à l’aide du paramètre `formatdatetime_f_prints_scale_number_of_digits = 1`. [#73324](https://github.com/ClickHouse/ClickHouse/pull/73324) ([ollidraese](https://github.com/ollidraese)).
* Correction du filtrage sur la colonne `_etag` lors de la lecture depuis le stockage `s3` et la fonction de table. [#73353](https://github.com/ClickHouse/ClickHouse/pull/73353) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l'erreur `Not-ready Set is passed as the second argument for function 'in'` lorsque `IN (subquery)` est utilisé dans une expression `JOIN ON`, avec l'ancien analyseur. [#73382](https://github.com/ClickHouse/ClickHouse/pull/73382) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de la préparation au squashin pour les colonnes Dynamic et JSON. Auparavant, dans certains cas, de nouveaux types pouvaient être insérés dans shared variant/shared data même lorsque la limite sur les types/chemins n'était pas atteinte. [#73388](https://github.com/ClickHouse/ClickHouse/pull/73388) ([Pavel Kruglov](https://github.com/Avogar)).
* Vérification des tailles corrompues lors du décodage binaire des types afin d'éviter des allocations trop importantes. [#73390](https://github.com/ClickHouse/ClickHouse/pull/73390) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d'une erreur logique lors de la lecture depuis un cluster à réplique unique avec les répliques parallèles activées. [#73403](https://github.com/ClickHouse/ClickHouse/pull/73403) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction d'ObjectStorageQueue avec ZooKeeper et les anciennes versions de Keeper. [#73420](https://github.com/ClickHouse/ClickHouse/pull/73420) ([Antonio Andelic](https://github.com/antonio2368)).
* Implémente une correction nécessaire pour activer le partitionnement Hive par défaut. [#73479](https://github.com/ClickHouse/ClickHouse/pull/73479) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction d'une data race lors de la création d'un index de similarité vectorielle. [#73517](https://github.com/ClickHouse/ClickHouse/pull/73517) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un segfault lorsque la source du dictionnaire contient une fonction avec des données incorrectes. [#73535](https://github.com/ClickHouse/ClickHouse/pull/73535) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction des tentatives de nouvelle insertion après un échec d'insert dans le stockage S3(Azure)Queue. Ferme [#70951](https://github.com/ClickHouse/ClickHouse/issues/70951). [#73546](https://github.com/ClickHouse/ClickHouse/pull/73546) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'une erreur dans la fonction `tupleElement` pouvant apparaître, dans certains cas, pour des tuples avec des éléments `LowCardinality` et le paramètre `optimize_functions_to_subcolumns` activé. [#73548](https://github.com/ClickHouse/ClickHouse/pull/73548) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l'analyse d'un glob enum suivi d'une plage. Corrige [#73473](https://github.com/ClickHouse/ClickHouse/issues/73473). [#73569](https://github.com/ClickHouse/ClickHouse/pull/73569) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction du problème où parallel\_replicas\_for\_non\_replicated\_merge\_tree était ignoré dans les sous-requêtes pour les tables non répliquées. [#73584](https://github.com/ClickHouse/ClickHouse/pull/73584) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction de std::logical\_error levée lorsqu'une tâche ne peut pas être planifiée. Problème détecté dans les tests de stress. [#73629](https://github.com/ClickHouse/ClickHouse/pull/73629) ([Alexander Gololobov](https://github.com/davenger)).
* Ne pas interpréter les requêtes dans `EXPLAIN SYNTAX` afin d'éviter des erreurs logiques liées à une étape de traitement incorrecte pour les requêtes distribuées. Corrige [#65205](https://github.com/ClickHouse/ClickHouse/issues/65205). [#73634](https://github.com/ClickHouse/ClickHouse/pull/73634) ([Dmitry Novik](https://github.com/novikd)).
* Correction d'une possible incohérence de données dans une colonne Dynamic. Corrige l'erreur logique possible `Nested columns sizes are inconsistent with local_discriminators column size`. [#73644](https://github.com/ClickHouse/ClickHouse/pull/73644) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de `NOT_FOUND_COLUMN_IN_BLOCK` dans les requêtes avec `FINAL` et `SAMPLE`. Correction d’un résultat incorrect dans les requêtes `SELECT` avec `FINAL` sur `CollapsingMergeTree` et activation des optimisations de `FINAL`. [#73682](https://github.com/ClickHouse/ClickHouse/pull/73682) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un crash dans LIMIT BY COLUMNS. [#73686](https://github.com/ClickHouse/ClickHouse/pull/73686) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’un bug lorsque l’utilisation de la projection normale est forcée et que la requête est exactement identique à la projection définie, mais que la projection n’est pas sélectionnée, ce qui génère une erreur. [#73700](https://github.com/ClickHouse/ClickHouse/pull/73700) ([Shichao Jin](https://github.com/jsc0218)).
* Correction de la désérialisation de la structure Dynamic/Object. Cela pouvait entraîner des exceptions CANNOT\_READ\_ALL\_DATA. [#73767](https://github.com/ClickHouse/ClickHouse/pull/73767) ([Pavel Kruglov](https://github.com/Avogar)).
* Ignorer `metadata_version.txt` lors de la restauration des parts depuis une sauvegarde. [#73768](https://github.com/ClickHouse/ClickHouse/pull/73768) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’une faute de segmentation lors d’un CAST vers Enum avec LIKE. [#73775](https://github.com/ClickHouse/ClickHouse/pull/73775) ([zhanglistar](https://github.com/zhanglistar)).
* Correction d’un problème empêchant un bucket S3 Express de fonctionner comme disk. [#73777](https://github.com/ClickHouse/ClickHouse/pull/73777) ([Sameer Tamsekar](https://github.com/stamsekar)).
* Autorisation du merging de rows avec des valeurs invalides dans la sign column des tables CollapsingMergeTree. [#73864](https://github.com/ClickHouse/ClickHouse/pull/73864) ([Christoph Wurm](https://github.com/cwurm)).
* Correction d’une erreur lors d’une requête DDL avec une replica hors ligne. [#73876](https://github.com/ClickHouse/ClickHouse/pull/73876) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Correction d’un échec occasionnel lors de la comparaison de types `map()`, dû à la possibilité de créer un `Map` sans nommage explicite (`keys`,`values`) de son tuple imbriqué. [#73878](https://github.com/ClickHouse/ClickHouse/pull/73878) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ignorer les window functions lors de la résolution de la clause GROUP BY ALL. Correction de [#73501](https://github.com/ClickHouse/ClickHouse/issues/73501). [#73916](https://github.com/ClickHouse/ClickHouse/pull/73916) ([Dmitry Novik](https://github.com/novikd)).
* Correction des privileges implicites (ils fonctionnaient auparavant comme un caractère générique). [#73932](https://github.com/ClickHouse/ClickHouse/pull/73932) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une utilisation mémoire élevée lors de la création de Maps imbriquées. [#73982](https://github.com/ClickHouse/ClickHouse/pull/73982) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de l’analyse de JSON imbriqué avec des clés vides. [#73993](https://github.com/ClickHouse/ClickHouse/pull/73993) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction : un alias peut ne pas être ajouté à la projection s’il est référencé par un autre alias et sélectionné dans l’ordre inverse. [#74033](https://github.com/ClickHouse/ClickHouse/pull/74033) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ignorer les erreurs « object not found » pour Azure lors de l’initialisation du disk plain\_rewritable. [#74059](https://github.com/ClickHouse/ClickHouse/pull/74059) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction du comportement de `any` et `anyLast` avec les types enum et une table vide. [#74061](https://github.com/ClickHouse/ClickHouse/pull/74061) ([Joanna Hulboj](https://github.com/jh0x)).
* Corrige le cas où l’utilisateur spécifie des arguments nommés dans le moteur de table Kafka. [#74064](https://github.com/ClickHouse/ClickHouse/pull/74064) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige la modification des paramètres de Storage `S3Queue`, avec le préfixe "s3queue\_" ou sans celui-ci, et inversement. [#74075](https://github.com/ClickHouse/ClickHouse/pull/74075) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute un paramètre `allow_push_predicate_ast_for_distributed_subqueries`. Cela ajoute la descente de prédicat basée sur l’AST pour les requêtes distribuées avec l’analyzer. Il s’agit d’une solution temporaire utilisée jusqu’à la prise en charge des requêtes distribuées avec sérialisation du plan de requête. Ferme [#66878](https://github.com/ClickHouse/ClickHouse/issues/66878) [#69472](https://github.com/ClickHouse/ClickHouse/issues/69472) [#65638](https://github.com/ClickHouse/ClickHouse/issues/65638) [#68030](https://github.com/ClickHouse/ClickHouse/issues/68030) [#73718](https://github.com/ClickHouse/ClickHouse/issues/73718). [#74085](https://github.com/ClickHouse/ClickHouse/pull/74085) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige le problème où, après [#73095](https://github.com/ClickHouse/ClickHouse/issues/73095), un port peut être présent dans le champ forwarded\_for, ce qui empêche de résoudre le nom d’hôte lorsque le port est inclus. [#74116](https://github.com/ClickHouse/ClickHouse/pull/74116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige le formatage incorrect de `ALTER TABLE (DROP STATISTICS ...) (DROP STATISTICS ...)`. [#74126](https://github.com/ClickHouse/ClickHouse/pull/74126) ([Han Fei](https://github.com/hanfei1991)).
* Corrige le problème [#66112](https://github.com/ClickHouse/ClickHouse/issues/66112). [#74128](https://github.com/ClickHouse/ClickHouse/pull/74128) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Il n’est plus possible d’utiliser `Loop` comme moteur de table dans `CREATE TABLE`. Cette combinaison provoquait auparavant des segfaults. [#74137](https://github.com/ClickHouse/ClickHouse/pull/74137) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige un problème de sécurité afin d’empêcher les injections SQL dans les fonctions de table PostgreSQL et SQLite. [#74144](https://github.com/ClickHouse/ClickHouse/pull/74144) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige un crash lors de la lecture d’une sous-colonne depuis une table compressée utilisant le moteur Memory. Corrige [#74009](https://github.com/ClickHouse/ClickHouse/issues/74009). [#74161](https://github.com/ClickHouse/ClickHouse/pull/74161) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige une boucle infinie survenant avec des requêtes sur system.detached\_tables. [#74190](https://github.com/ClickHouse/ClickHouse/pull/74190) ([Konstantin Morozov](https://github.com/k-morozov)).
* Corrige une erreur logique dans s3queue lors du marquage d’un fichier comme échoué. [#74216](https://github.com/ClickHouse/ClickHouse/pull/74216) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige les paramètres de copie native (`allow_s3_native_copy`/`allow_azure_native_copy`) pour `RESTORE` à partir d’une sauvegarde de base. [#74286](https://github.com/ClickHouse/ClickHouse/pull/74286) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le problème lorsque le nombre de tables détachées dans la base de données est un multiple de max\_block\_size. [#74289](https://github.com/ClickHouse/ClickHouse/pull/74289) ([Konstantin Morozov](https://github.com/k-morozov)).
* Corrige la copie via ObjectStorage (c.-à-d. S3) lorsque les informations d’authentification de la source et de la destination diffèrent. [#74331](https://github.com/ClickHouse/ClickHouse/pull/74331) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la détection de "use the Rewrite method in the JSON API" pour la copie native sur GCS. [#74338](https://github.com/ClickHouse/ClickHouse/pull/74338) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le calcul incorrect de `BackgroundMergesAndMutationsPoolSize` (il était 2x supérieur à la valeur réelle). [#74509](https://github.com/ClickHouse/ClickHouse/pull/74509) ([alesapin](https://github.com/alesapin)).
* Corrige une fuite de watches Keeper lors de l’activation de Cluster Discovery. [#74521](https://github.com/ClickHouse/ClickHouse/pull/74521) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Corrige un problème d’alignement mémoire signalé par UBSan [#74512](https://github.com/ClickHouse/ClickHouse/issues/74512). [#74534](https://github.com/ClickHouse/ClickHouse/pull/74534) ([Arthur Passos](https://github.com/arthurpassos)).
* Corrige le nettoyage concurrent de KeeperMap pendant la création d’une table. [#74568](https://github.com/ClickHouse/ClickHouse/pull/74568) ([Antonio Andelic](https://github.com/antonio2368)).
* Ne supprime plus les colonnes de projection inutilisées dans les sous-requêtes en présence de `EXCEPT` ou `INTERSECT`, afin de préserver le résultat correct de la requête. Corrige [#73930](https://github.com/ClickHouse/ClickHouse/issues/73930). Corrige [#66465](https://github.com/ClickHouse/ClickHouse/issues/66465). [#74577](https://github.com/ClickHouse/ClickHouse/pull/74577) ([Dmitry Novik](https://github.com/novikd)).
* Corrige les requêtes `INSERT SELECT` entre des tables avec des colonnes `Tuple` et la sérialisation sparse activée. [#74698](https://github.com/ClickHouse/ClickHouse/pull/74698) ([Anton Popov](https://github.com/CurtizJ)).
* La fonction `right` fonctionne incorrectement avec un offset négatif constant. [#74701](https://github.com/ClickHouse/ClickHouse/pull/74701) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige les échecs occasionnels d’insertion de données compressées en gzip dus à une décompression défectueuse côté client. [#74707](https://github.com/ClickHouse/ClickHouse/pull/74707) ([siyuan](https://github.com/linkwk7)).
* Des revoke partiels avec des grants génériques pouvaient supprimer plus de privilèges que prévu. Clôt [#74263](https://github.com/ClickHouse/ClickHouse/issues/74263). [#74751](https://github.com/ClickHouse/ClickHouse/pull/74751) ([pufit](https://github.com/pufit)).
* Correctif Keeper : corrige la lecture des log entries depuis le disque. [#74785](https://github.com/ClickHouse/ClickHouse/pull/74785) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige la vérification des grants pour SYSTEM REFRESH/START/STOP VIEW : il n’est désormais plus nécessaire d’avoir ce grant sur `*.*` pour exécuter une requête sur une view spécifique ; seuls les grants sur cette view sont requis. [#74789](https://github.com/ClickHouse/ClickHouse/pull/74789) ([Alexander Tokmakov](https://github.com/tavplubix)).
* La fonction `hasColumnInTable` ne tient pas compte des colonnes alias. Correction afin qu’elle fonctionne également avec les colonnes alias. [#74841](https://github.com/ClickHouse/ClickHouse/pull/74841) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige l’erreur FILE\_DOESNT\_EXIST survenant pendant la fusion de data parts pour une table avec une colonne vide dans Azure Blob Storage. [#74892](https://github.com/ClickHouse/ClickHouse/pull/74892) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige le nom de la colonne de projection lors de la jointure de tables temporaires, clôt [#68872](https://github.com/ClickHouse/ClickHouse/issues/68872). [#74897](https://github.com/ClickHouse/ClickHouse/pull/74897) ([Vladimir Cherkasov](https://github.com/vdimir)).

#### Amélioration de la compilation/des tests/du packaging

* Le script d'installation universel proposera l'installation même sur macOS. [#74339](https://github.com/ClickHouse/ClickHouse/pull/74339) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
