> ## 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 v26.2 pour Cloud

> Changelog de la v26.2

<div id="backward-incompatible-changes">
  ## Changements incompatibles avec les versions précédentes
</div>

<div id="query-and-syntax-changes">
  ### Modifications des requêtes et de la syntaxe
</div>

* Correction d'une mise en forme incohérente des requêtes causée par une substitution incorrecte d'alias. Remarque : lorsque l'analyseur est désactivé, certaines requêtes `CREATE VIEW` qui utilisent `IN` avec une référence à un alias peuvent ne plus être traitées. Pour éviter cela, assurez-vous que l'analyseur est activé (il l'est par défaut depuis la version 24.3). [#82838](https://github.com/ClickHouse/ClickHouse/pull/82838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Une liste de colonnes vide dans `JOIN USING ()` est désormais considérée comme une erreur de syntaxe. Auparavant, cela était signalé comme `INVALID_JOIN_ON_EXPRESSION` au moment de l'exécution de la requête et, dans certains cas (par exemple lors d'une jointure avec le moteur `Join`), pouvait provoquer une `LOGICAL_ERROR`. [#92371](https://github.com/ClickHouse/ClickHouse/pull/92371) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Les sous-requêtes ne sont plus autorisées dans `ORDER BY` ni dans les autres expressions de clé de table. [#96847](https://github.com/ClickHouse/ClickHouse/pull/96847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="data-type-changes">
  ### Modifications des types de données
</div>

* Ajout de la prise en charge de `Nullable(Tuple)`. Pour l’activer, définissez `allow_experimental_nullable_tuple_type = 1`. [#89643](https://github.com/ClickHouse/ClickHouse/pull/89643) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Les données partagées avancées pour le type JSON sont désormais activées par défaut. Il ne sera pas possible de revenir à une version antérieure à 25.8, car les anciennes versions ne peuvent pas lire les data parts écrites avec le nouveau format JSON. Pour effectuer des mises à niveau en toute sécurité, définissez le paramètre `compatibility` sur la version précédente, ou les paramètres MergeTree `dynamic_serialization_version='v2'` et `object_serialization_version='v2'`. [#92511](https://github.com/ClickHouse/ClickHouse/pull/92511) ([Pavel Kruglov](https://github.com/Avogar)).
* `SKIP REGEXP` dans le type JSON utilise désormais par défaut une correspondance partielle. [#92847](https://github.com/ClickHouse/ClickHouse/pull/92847) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’une erreur logique qui survenait en cas d’incompatibilité de type `Variant`. [#95811](https://github.com/ClickHouse/ClickHouse/pull/95811) ([Bharat Nallan](https://github.com/bharatnc)).
* Les colonnes `DATE` de PostgreSQL sont désormais inférées en `Date32` dans ClickHouse (auparavant, elles étaient inférées en `Date`, ce qui pouvait provoquer un dépassement de capacité pour les valeurs en dehors de sa plage limitée). L’insertion de valeurs `Date32` dans PostgreSQL est désormais également prise en charge. [#95999](https://github.com/ClickHouse/ClickHouse/pull/95999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="storage-and-index-changes">
  ### Modifications du stockage et des index
</div>

* Amélioration de l’organisation du stockage de l’index de texte inversé pour rendre les lectures depuis le stockage objet plus efficaces, ainsi que des performances de fusion pour les tables dotées d’index de texte inversés. Si vous avez utilisé l’index de texte expérimental avant la version 25.12, vous devez supprimer l’index avant la mise à niveau, puis le reconstruire dans la nouvelle version. [#91518](https://github.com/ClickHouse/ClickHouse/pull/91518) ([Anton Popov](https://github.com/CurtizJ)).
* Le format de stockage des statistiques a changé — toutes les statistiques sont désormais stockées dans un seul fichier. [#93414](https://github.com/ClickHouse/ClickHouse/pull/93414) ([Anton Popov](https://github.com/CurtizJ)).
* Les noms de fichiers d’index sont désormais échappés afin d’éviter des parts corrompues. ClickHouse ne pourra pas charger les index comportant des caractères non ASCII dans leur nom s’ils ont été créés par des versions précédentes. Pour cela, utilisez le paramètre MergeTree `escape_index_filenames`. [#94079](https://github.com/ClickHouse/ClickHouse/pull/94079) ([Raúl Marín](https://github.com/Algunenano)).

<div id="removed-features">
  ### Fonctionnalités supprimées
</div>

* Les codecs `DEFLATE_QPL` et `ZSTD_QAT` ont été supprimés. Convertissez toutes les données existantes compressées avec ces codecs à l’aide d’un autre codec avant la mise à niveau. Notez que l’utilisation de ces codecs nécessitait auparavant d’activer `enable_deflate_qpl_codec` ou `enable_zstd_qat_codec`. [#92150](https://github.com/ClickHouse/ClickHouse/pull/92150) ([Robert Schulze](https://github.com/rschu1ze)).
* L’`INSERT` dans des colonnes `ALIAS` simples n’est plus pris en charge (revient sur [#84154](https://github.com/ClickHouse/ClickHouse/issues/84154)). Cette fonctionnalité ne fonctionnait pas avec des formats personnalisés et n’était pas protégée par un paramètre. [#92849](https://github.com/ClickHouse/ClickHouse/pull/92849) ([Azat Khuzhin](https://github.com/azat)).
* Le moteur de base de données `Lazy` a été supprimé et n’est plus disponible. [#93627](https://github.com/ClickHouse/ClickHouse/pull/93627) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le mode `transposed_with_wide_view` de `metric_log` a été supprimé en raison d’un bug qui le rendait inutilisable. Il n’est plus possible de définir `system.metric_log` avec ce mode. [#93867](https://github.com/ClickHouse/ClickHouse/pull/93867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="settings-and-configuration-changes">
  ### Modifications des paramètres et de la configuration
</div>

* Un nouveau paramètre renvoie désormais une erreur si un catalogue de data lake n’a pas accès au stockage objet. [#93606](https://github.com/ClickHouse/ClickHouse/pull/93606) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* La planification CPU des workloads est désormais préemptive par défaut. Voir le paramètre de serveur `cpu_slot_preemption`. [#94060](https://github.com/ClickHouse/ClickHouse/pull/94060) ([Sergei Trifonov](https://github.com/serxa)).
* Les paramètres `exact_rows_before_limit`, `rows_before_aggregation`, `cross_to_inner_join_rewrite`, `regexp_dict_allow_hyperscan`, `regexp_dict_flag_case_insensitive`, `regexp_dict_flag_dotall` et `dictionary_use_async_executor` ont été reclassés : ils passent de paramètres de format à paramètres ordinaires. Il s’agit principalement d’un changement interne, sans effet visible pour l’utilisateur, sauf si vous avez spécifié l’un d’eux dans la définition d’un moteur de table Iceberg, DeltaLake, Kafka, S3, S3Queue, Azure, Hive, RabbitMQ, Set, FileLog ou NATS — auquel cas ces définitions renverront désormais une erreur au lieu de les ignorer silencieusement. [#94106](https://github.com/ClickHouse/ClickHouse/pull/94106) ([Robert Schulze](https://github.com/rschu1ze)).
* La sémantique de `do_not_merge_across_partitions_select_final` a été simplifiée. Auparavant, cette fonctionnalité pouvait être activée automatiquement même lorsqu’elle n’était pas explicitement définie, ce qui entraînait de la confusion et des problèmes en production. Désormais : la définir sur `1` active la fonctionnalité sans condition, et la définir sur `0` s’en remet au nouveau paramètre `enable_automatic_decision_for_merging_across_partitions_for_final` (valeur par défaut : `1`). [#96110](https://github.com/ClickHouse/ClickHouse/pull/96110) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout de la validation du schéma S3. [#96194](https://github.com/ClickHouse/ClickHouse/pull/96194) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Le paramètre `apply_row_policy_after_final` est désormais activé par défaut, ce qui garantit que `ROW POLICY` respecte `FINAL` comme à l’origine. Si vous vous appuyiez auparavant sur `optimize_move_to_prewhere_if_final=1` pour appliquer les politiques de lignes avant `FINAL`, utilisez plutôt `apply_row_policy_after_final=0`. [#97279](https://github.com/ClickHouse/ClickHouse/pull/97279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

<div id="security-and-access-control-changes">
  ### Changements relatifs à la sécurité et au contrôle d’accès
</div>

* `joinGet`/`joinGetOrNull` appliquent désormais les privilèges `SELECT` sur la table Join sous-jacente. L’exécution de `joinGet('db.table', 'column', key)` nécessite le privilège `SELECT` à la fois sur les colonnes de clé et sur la colonne d’attribut récupérée. Les requêtes dépourvues de ces privilèges échoueront avec `ACCESS_DENIED`. Pour effectuer la migration, accordez les privilèges à l’aide de `GRANT SELECT ON db.join_table TO user` pour un accès complet à la table, ou de `GRANT SELECT(key_col, attr_col) ON db.join_table TO user` pour un accès au niveau des colonnes. [#94307](https://github.com/ClickHouse/ClickHouse/pull/94307) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Les requêtes `CREATE TABLE ... AS ...` nécessitent désormais le privilège `SHOW COLUMNS` au lieu de `SHOW TABLES`, qui faisait auparavant l’objet d’une vérification incorrecte. [#94556](https://github.com/ClickHouse/ClickHouse/pull/94556) ([pufit](https://github.com/pufit)).

<div id="insert-and-deduplication-changes">
  ### Modifications des insertions et de la déduplication
</div>

* La déduplication est désormais activée par défaut pour toutes les insertions. Auparavant, elle était désactivée pour les insertions asynchrones et les vues matérialisées, mais activée pour les insertions synchrones. Pour conserver l’ancien comportement, définissez explicitement `deduplicate_insert='backward_compatible_choice'` (et de même pour `deduplicate_blocks_in_dependent_materialized_views`). [#95970](https://github.com/ClickHouse/ClickHouse/pull/95970) ([Sema Checherinda](https://github.com/CheSema)).

<div id="system-table-changes">
  ### Changements apportés aux tables système
</div>

* Les métadonnées en mémoire de S3Queue et AzureQueue sont désormais limitées. Les tables système ont été renommées : `system.s3queue` devient `system.s3queue_metadata_cache`, et `system.azure_queue` devient `system.azure_queue_metadata_cache`. [#95809](https://github.com/ClickHouse/ClickHouse/pull/95809) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="other-breaking-changes">
  ### Autres changements incompatibles
</div>

* Correction des fonctions d’index H3 qui pouvaient provoquer un crash ou se bloquer lorsqu’elles étaient appelées avec des entrées non valides. [#93657](https://github.com/ClickHouse/ClickHouse/pull/93657) ([Michael Kolupaev](https://github.com/al13n321)).

<div id="new-features">
  ## Nouvelles fonctionnalités
</div>

<div id="authentication">
  ### Authentification
</div>

* Ajout de la prise en charge de l’authentification par mot de passe à usage unique basé sur le temps (TOTP). [#71273](https://github.com/ClickHouse/ClickHouse/pull/71273) ([Vladimir Cherkasov](https://github.com/vdimir)).

<div id="functions">
  ### Fonctions
</div>

* Ajout de la fonction `reverseBySeparator`, qui inverse l'ordre des sous-chaînes d'une chaîne de caractères séparées par un séparateur donné. [#91780](https://github.com/ClickHouse/ClickHouse/pull/91780) ([Xuewei Wang](https://github.com/Sallery-X)).
* Ajout des fonctions `colorOKLABToSRGB` et `colorSRGBToOKLAB` pour convertir entre les espaces colorimétriques sRGB et OKLAB. [#93361](https://github.com/ClickHouse/ClickHouse/pull/93361) ([Pranav Tiwari](https://github.com/pranavt84)).
* Ajout de la fonction `cosineDistanceTransposed`, qui approxime la [distance cosinus](https://en.wikipedia.org/wiki/Cosine_similarity#Cosine_distance) entre deux points. [#93621](https://github.com/ClickHouse/ClickHouse/pull/93621) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Ajout de la fonction de hachage `xxh3_128`. [#96055](https://github.com/ClickHouse/ClickHouse/pull/96055) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout de la fonction `mergeTreeAnalyzeIndex()` pour analyser l'utilisation des index de MergeTree. [#92954](https://github.com/ClickHouse/ClickHouse/pull/92954) ([Azat Khuzhin](https://github.com/azat)).
* Les fonctions prennent désormais en charge le type `Variant` via le nouveau `FunctionVariantAdaptor`. [#90900](https://github.com/ClickHouse/ClickHouse/pull/90900) ([Bharat Nallan](https://github.com/bharatnc)).
* Certaines fonctions peuvent désormais être appelées sans parenthèses en SQL. [#94678](https://github.com/ClickHouse/ClickHouse/pull/94678) ([Aly Kafoury](https://github.com/AlyHKafoury)).

<div id="system-tables">
  ### Tables système
</div>

* Ajout de la table `system.user_defined_functions` pour surveiller l'état de chargement des UDF et leur configuration. [#90340](https://github.com/ClickHouse/ClickHouse/pull/90340) ([Xu Jia](https://github.com/XuJia0210)).
* Ajout de la table `system.zookeeper_info`. [#90809](https://github.com/ClickHouse/ClickHouse/pull/90809) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Ajout de la table `system.primes` et de la fonction de table `primes`, contenant des nombres premiers par ordre croissant. [#92776](https://github.com/ClickHouse/ClickHouse/pull/92776) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Ajout de la colonne `files` à `system.parts`, affichant le nombre de fichiers dans chaque data part. [#94337](https://github.com/ClickHouse/ClickHouse/pull/94337) ([Match](https://github.com/gayanMatch)).
* Ajout de la table `system.fail_points` pour examiner les failpoints existants et vérifier s'ils sont activés. [#96762](https://github.com/ClickHouse/ClickHouse/pull/96762) ([Pedro Ferreira](https://github.com/PedroTadim)).

<div id="table-engines-and-storage">
  ### Moteurs de table et stockage
</div>

* Ajout de la prise en charge des index textuels pour les colonnes `Array`. [#89895](https://github.com/ClickHouse/ClickHouse/pull/89895) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Ajout de la prise en charge du catalogue REST Paimon. [#92011](https://github.com/ClickHouse/ClickHouse/pull/92011) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* Ajout de la fonction de table `icebergLocalCluster`. [#93323](https://github.com/ClickHouse/ClickHouse/pull/93323) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Ajout du paramètre de base de données `lazy_load_tables`. Lorsqu'il est activé, les tables ne sont pas chargées au démarrage de la base de données — un `StorageTableProxy` léger est créé à la place et le véritable moteur de table est matérialisé au premier accès. [#96283](https://github.com/ClickHouse/ClickHouse/pull/96283) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Ajout de la prise en charge d'un ZooKeeper auxiliaire pour `DatabaseReplicated`. [#91683](https://github.com/ClickHouse/ClickHouse/pull/91683) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Les fichiers de données et les fichiers système présents dans le cache peuvent désormais être divisés en segments distincts. [#87834](https://github.com/ClickHouse/ClickHouse/pull/87834) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ajout d'un nouveau cache SLRU pour les métadonnées Parquet afin d'améliorer les performances de lecture en évitant les téléchargements de fichiers redondants. Le cache peut être supprimé avec `SYSTEM DROP PARQUET METADATA CACHE`. [#89750](https://github.com/ClickHouse/ClickHouse/pull/89750) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Les tables du data lake prennent désormais en charge `PREWHERE` et `PREWHERE` en plusieurs étapes dans le lecteur Parquet v3. [#93542](https://github.com/ClickHouse/ClickHouse/pull/93542) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Ajout de l'analyse d'index distribuée sur plusieurs répliques, ce qui est particulièrement utile pour le stockage partagé et les grands volumes de données. [#86786](https://github.com/ClickHouse/ClickHouse/pull/86786) ([Azat Khuzhin](https://github.com/azat)).

<div id="insert-and-deduplication">
  ### Insertions et déduplication
</div>

* La déduplication des insertions asynchrones fonctionne désormais avec les vues matérialisées dépendantes. Lorsqu'une collision de `block_id` se produit, le bloc d'origine est filtré pour supprimer les lignes associées au `block_id` en collision, puis les lignes restantes sont transformées par les requêtes de toutes les vues matérialisées concernées. [#89140](https://github.com/ClickHouse/ClickHouse/pull/89140) ([Sema Checherinda](https://github.com/CheSema)).
* Les insertions asynchrones prennent désormais en charge le quorum parallèle : les données insérées sont répliquées jusqu'au quorum et, si des doublons sont détectés, la requête attend que les données précédemment insérées soient elles aussi répliquées. [#93356](https://github.com/ClickHouse/ClickHouse/pull/93356) ([Sema Checherinda](https://github.com/CheSema)).
* Ajout du paramètre serveur `insert_deduplication_version` pour permettre la migration vers un hash de déduplication unifié. [#95409](https://github.com/ClickHouse/ClickHouse/pull/95409) ([Sema Checherinda](https://github.com/CheSema)).
* Début de la migration des hash de déduplication. [#97562](https://github.com/ClickHouse/ClickHouse/pull/97562) ([Sema Checherinda](https://github.com/CheSema)).

<div id="sql-and-query-features">
  ### SQL et fonctionnalités des requêtes
</div>

* Ajout de la syntaxe `SYSTEM CLEAR [...] CACHE` comme alternative plus explicite à la syntaxe existante `SYSTEM DROP [...] CACHE`. L'ancienne syntaxe reste disponible. [#93727](https://github.com/ClickHouse/ClickHouse/pull/93727) ([Pranav Tiwari](https://github.com/pranavt84)).
* Ajout de la requête `OPTIMIZE <table> DRY RUN PARTS <part names>` pour simuler des fusions sans valider la part résultante. Utile pour vérifier la correction des fusions, reproduire des bogues liés aux fusions et évaluer les performances des fusions. [#96122](https://github.com/ClickHouse/ClickHouse/pull/96122) ([Anton Popov](https://github.com/CurtizJ)).
* Les requêtes DDL avec `ON CLUSTER` peuvent désormais être exécutées pour les bases de données Replicated lorsque le paramètre `ignore_on_cluster_for_replicated_database` est activé. Le nom du cluster sera alors ignoré. [#92872](https://github.com/ClickHouse/ClickHouse/pull/92872) ([Kirill](https://github.com/kirillgarbar)).
* Introduction d'une nouvelle syntaxe et d'un nouveau cadre pour simplifier et étendre la fonctionnalité des index de projection. [#91844](https://github.com/ClickHouse/ClickHouse/pull/91844) ([Amos Bird](https://github.com/amosbird)).

<div id="settings-and-configuration">
  ### Paramètres et configuration
</div>

* Ajout du paramètre `max_insert_block_size_bytes` pour un contrôle plus fin de la formation des blocs insérés. [#92833](https://github.com/ClickHouse/ClickHouse/pull/92833) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Ajout du paramètre `use_primary_key`. Définissez-le sur `false` pour désactiver le granule pruning basé sur la clé primaire. [#93319](https://github.com/ClickHouse/ClickHouse/pull/93319) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Ajout du paramètre `default_dictionary_database`, qui permet à ClickHouse de résoudre les dictionnaires externes référencés sans qualificatif de base de données dans une base de données par défaut spécifiée. Cela simplifie la migration des dictionnaires globaux définis en XML vers des dictionnaires définis en SQL par base de données. [#91412](https://github.com/ClickHouse/ClickHouse/pull/91412) ([Dmitrii Plotnikov](https://github.com/dimbo4ka)).
* Ajout du paramètre `check_named_collection_dependencies` (activé par défaut) pour empêcher la suppression de collections nommées utilisées par des tables. [#96181](https://github.com/ClickHouse/ClickHouse/pull/96181) ([Pablo Marcos](https://github.com/pamarcos)).
* Ajout d’un ordonnanceur max-min fair pour le contrôle de la concurrence, offrant une meilleure équité en cas de forte sursouscription, lorsque de nombreuses requêtes se disputent un nombre limité de CPU slots. Le paramètre de serveur `concurrent_threads_scheduler` utilise désormais `max_min_fair` par défaut au lieu de `fair_round_robin`, de sorte que les requêtes de courte durée ne sont plus pénalisées par celles de longue durée. [#94732](https://github.com/ClickHouse/ClickHouse/pull/94732) [#95300](https://github.com/ClickHouse/ClickHouse/pull/95300) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout des options de configuration `logger.startup_console_level` et `logger.shutdown_console_level` pour remplacer respectivement le niveau de log de la console pendant le démarrage et l’arrêt de ClickHouse. [#95919](https://github.com/ClickHouse/ClickHouse/pull/95919) ([Garrett Thomas](https://github.com/garrettthomaskth)).

<div id="monitoring">
  ### Monitoring
</div>

* Ajout d’une métrique `ClickHouse_Info` au endpoint Prometheus `/metrics`, contenant des informations de version, ce qui permet de créer des graphiques pour suivre des informations détaillées sur les versions au fil du temps. [#91125](https://github.com/ClickHouse/ClickHouse/pull/91125) ([Christoph Wurm](https://github.com/cwurm)).

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

* La recherche vectorielle peut désormais répartir la charge entre les répliques d'un cluster, ce qui permet de prendre en charge de grands index vectoriels qui dépassent la capacité mémoire d'une seule VM. [#95876](https://github.com/ClickHouse/ClickHouse/pull/95876) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Ajout d'un AST fuzzer côté serveur, piloté par les paramètres `ast_fuzzer_runs` et `ast_fuzzer_any_query`. Une fois activé, le serveur exécute des variantes aléatoires de chaque requête après son exécution normale, puis en ignore les résultats. [#97568](https://github.com/ClickHouse/ClickHouse/pull/97568) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="improvements">
  ## Améliorations
</div>

<div id="query-and-sql-improvements">
  ### Requêtes et SQL
</div>

* Les sous-requêtes corrélées prennent désormais en charge davantage de moteurs de table et de types de sources de données. [#90175](https://github.com/ClickHouse/ClickHouse/pull/90175) ([Dmitry Novik](https://github.com/novikd)).
* Les expressions `IN` non constantes sont désormais prises en charge pour les scalaires (par ex. `val1 NOT IN if(cond, val2, val3)`). [#93495](https://github.com/ClickHouse/ClickHouse/pull/93495) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Prise en charge ajoutée des alias de table étendus pour les JOIN (par ex. `SELECT * FROM (SELECT 1) AS t(a) JOIN (SELECT 1) AS u(b) ON a = b`). [#95331](https://github.com/ClickHouse/ClickHouse/pull/95331) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `EXPLAIN indices = 1` est désormais pris en charge comme alias de `EXPLAIN indexes = 1`. [#92774](https://github.com/ClickHouse/ClickHouse/pull/92774) ([Pranav Tiwari](https://github.com/pranavt84)).
* Amélioration du pushdown des filtres pour les fonctions de table `numbers` et `primes` — ClickHouse peut désormais déduire des bornes de valeurs prudentes à partir des conditions `WHERE` afin de limiter la génération de séquences et d'éviter les scans non bornés. [#96115](https://github.com/ClickHouse/ClickHouse/pull/96115) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* L'optimisation des ensembles équivalents fonctionne désormais sur plusieurs opérations `INNER JOIN` consécutives, de sorte que les filtres appliqués à n'importe quelle table de la chaîne sont automatiquement propagés à toutes les tables liées. [#96596](https://github.com/ClickHouse/ClickHouse/pull/96596) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Les fonctions de table cluster automatiques sont désormais utilisées pour les sous-requêtes simples dans `FROM`. [#96332](https://github.com/ClickHouse/ClickHouse/pull/96332) ([phulv94](https://github.com/phulv94)).
* L'index de clé primaire est désormais utilisé lors du filtrage avec `startsWithUTF8` si le préfixe ne contient que des caractères ASCII. [#97055](https://github.com/ClickHouse/ClickHouse/pull/97055) ([vkcku](https://github.com/vkcku)).
* `assumeNotNull`, `coalesce` et `ifNull` permettent désormais l'élagage de la clé primaire et du skip index pour les prédicats de plage lorsque les colonnes de clé sont encapsulées dans ces fonctions. [#94754](https://github.com/ClickHouse/ClickHouse/pull/94754) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Les colonnes inutilisées sont désormais également supprimées de l'étape de lecture lors de la lecture depuis MergeTree, ce qui est particulièrement utile lorsqu'un filtre est poussé dans `PREWHERE`. [#89982](https://github.com/ClickHouse/ClickHouse/pull/89982) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* L'optimisation `use_join_disjunctions_push_down` est désormais activée par défaut. [#89313](https://github.com/ClickHouse/ClickHouse/pull/89313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* L'optimisation `enable_join_runtime_filters` est désormais activée par défaut. [#89314](https://github.com/ClickHouse/ClickHouse/pull/89314) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La surcharge des filtres runtime de JOIN est désormais réduite grâce à la désactivation automatique des filtres lorsque trop de bits sont définis dans le filtre de Bloom ou que trop peu de lignes sont filtrées. [#91578](https://github.com/ClickHouse/ClickHouse/pull/91578) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout du paramètre `use_hash_table_stats_for_join_reordering` (activé par défaut) pour contrôler si les statistiques de taille des tables de hachage à l'exécution sont utilisées pour le réordonnancement des jointures. [#93912](https://github.com/ClickHouse/ClickHouse/pull/93912) ([Vladimir Cherkasov](https://github.com/vdimir)).
* L'analyse des index n'est désormais effectuée qu'une seule fois, que la requête s'exécute localement ou avec des répliques parallèles. [#94854](https://github.com/ClickHouse/ClickHouse/pull/94854) ([Nikita Taranov](https://github.com/nickitat)).
* Si un skip index dans une requête `FINAL` porte sur une colonne faisant partie de la clé primaire, la vérification supplémentaire d’intersection de la clé primaire dans les autres parts est désormais ignorée. [#93899](https://github.com/ClickHouse/ClickHouse/pull/93899) ([Shankar Iyer](https://github.com/shankar-iyer)).
* `DROP DATABASE` supprime désormais les tables dans l’ordre inverse des dépendances, ce qui améliore la robustesse face aux crashs lorsque la base de données contient des tables avec des dépendances de chargement. [#97057](https://github.com/ClickHouse/ClickHouse/pull/97057) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* L’attente synchrone des mutations respecte désormais l’annulation des requêtes et les limites de temps. [#96756](https://github.com/ClickHouse/ClickHouse/pull/96756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La résurrection de données supprimées est désormais évitée si `ADD COLUMN` est exécuté rapidement après une mutation `DROP COLUMN`. [#96713](https://github.com/ClickHouse/ClickHouse/pull/96713) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les expressions `ALTER` en conflit avec `UPDATE` et `RENAME COLUMN` lèvent désormais une exception appropriée au lieu d’une erreur logique. [#96022](https://github.com/ClickHouse/ClickHouse/pull/96022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le nombre total estimé de lignes et les statistiques NDV (nombre de valeurs distinctes) sont désormais collectés pour les colonnes de clé d’agrégation. [#92812](https://github.com/ClickHouse/ClickHouse/pull/92812) ([Alexander Gololobov](https://github.com/davenger)).
* Toutes les répliques peuvent désormais récupérer des plages orphelines lors de la lecture avec répliques parallèles, ce qui améliore l’équilibrage de charge et réduit la latence de queue. [#91374](https://github.com/ClickHouse/ClickHouse/pull/91374) ([zoomxi](https://github.com/zoomxi)).
* La précision de l’estimation a été améliorée pour les répliques parallèles automatiques avec des filtres `PREWHERE` hautement sélectifs. [#97231](https://github.com/ClickHouse/ClickHouse/pull/97231) ([Nikita Taranov](https://github.com/nickitat)).
* `joinGet` prend désormais en charge les tables temporaires. [#92973](https://github.com/ClickHouse/ClickHouse/pull/92973) ([Eduard Karacharov](https://github.com/korowa)).
* L’agrégation externe, le tri et la jointure respectent désormais le paramètre de requête `temporary_files_codec` dans tous les contextes. [#92388](https://github.com/ClickHouse/ClickHouse/pull/92388) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Les optimisations du plan de recherche de similarité vectorielle ne sont désormais appliquées que lorsqu’un index existe pour la colonne de recherche. [#94998](https://github.com/ClickHouse/ClickHouse/pull/94998) ([Eduard Karacharov](https://github.com/korowa)).

<div id="table-engines-and-storage">
  ### Moteurs de table et stockage
</div>

* `StorageEmbeddedRocksDB` prend désormais en charge plusieurs colonnes comme clé primaire. [#33917](https://github.com/ClickHouse/ClickHouse/pull/33917) ([usurai](https://github.com/usurai)).
* Ajout de la syntaxe `ALTER TABLE <table> ATTACH PART <part_name> FROM <directory_name>`, qui permet de rattacher des parts depuis des sous-répertoires quelconques de `detached/` (par ex. des parts avec les préfixes `broken-on-start` ou `unexpected`) sans avoir à les renommer manuellement dans le système de fichiers. [#74816](https://github.com/ClickHouse/ClickHouse/pull/74816) ([Anton Popov](https://github.com/CurtizJ)).
* `min_free_disk_bytes_to_perform_insert` fonctionne désormais correctement avec les volumes JBOD. [#90878](https://github.com/ClickHouse/ClickHouse/pull/90878) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* `max_parts_to_merge_at_once` est désormais respecté lors des fusions de suppression de parts liées au TTL. [#95315](https://github.com/ClickHouse/ClickHouse/pull/95315) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les opérations en arrière-plan (mutation, fusion) peuvent désormais être configurées indépendamment via un profil `background`, au lieu de partager les paramètres des requêtes classiques via le profil `default`. [#93905](https://github.com/ClickHouse/ClickHouse/pull/93905) ([Arsen Muk](https://github.com/arsenmuk)).
* Amélioration de la lecture des sous-colonnes grâce à un calcul correct de la taille, réduisant l’utilisation mémoire et améliorant les performances. [#96251](https://github.com/ClickHouse/ClickHouse/pull/96251) ([Pavel Kruglov](https://github.com/Avogar)).
* Limitation du nombre de flux de pipeline générés avec `split_intersecting_parts_ranges_into_layers` afin d’éviter une consommation mémoire excessive. [#96478](https://github.com/ClickHouse/ClickHouse/pull/96478) ([Nikita Taranov](https://github.com/nickitat)).
* L’index textuel est désormais GA. [#96794](https://github.com/ClickHouse/ClickHouse/pull/96794) ([Robert Schulze](https://github.com/rschu1ze)).
* `QBit` est désormais GA. [#95358](https://github.com/ClickHouse/ClickHouse/pull/95358) ([Raufs Dunamalijevs](https://github.com/rienath)).
* `QBit` prend désormais en charge les comparaisons d’égalité. [#94078](https://github.com/ClickHouse/ClickHouse/pull/94078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Lors de l’enregistrement du schéma de table avec `enable_positional_arguments_for_projections`, les expressions sont désormais substituées aux arguments positionnels, ce qui permet de redémarrer le serveur avec ce paramètre désactivé. [#96372](https://github.com/ClickHouse/ClickHouse/pull/96372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans les bases de données Replicated, le cluster mis en cache n’est plus mis à jour pour chaque requête factice. [#96897](https://github.com/ClickHouse/ClickHouse/pull/96897) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Ajout de la requête `SYSTEM RESET DDL WORKER [ON CLUSTER]` pour réinitialiser l’état de DDLWorker, utile pour actualiser l’activité des réplicas lorsque les ID d’hôte sont mis à jour. [#93780](https://github.com/ClickHouse/ClickHouse/pull/93780) ([Tuan Pham Anh](https://github.com/tuanpach)).

<div id="data-lakes-improvements">
  ### Lacs de données
</div>

* Ajout de la prise en charge des vecteurs de suppression dans DeltaLake. [#93852](https://github.com/ClickHouse/ClickHouse/pull/93852) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les vecteurs de suppression sont désormais également pris en charge pour `deltaLakeCluster`. [#94365](https://github.com/ClickHouse/ClickHouse/pull/94365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* DeltaLake est désormais disponible sur macOS. [#95985](https://github.com/ClickHouse/ClickHouse/pull/95985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* DeltaLake utilise désormais les résultats de `count()` issus des métadonnées et affiche des statistiques de table correctes (nombre total d'octets et de lignes) dans `system.tables`. [#96190](https://github.com/ClickHouse/ClickHouse/pull/96190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les lectures depuis le stockage d’objet sont désormais ignorées lors des requêtes sur des tables DeltaLake depuis `system.tables`. [#95899](https://github.com/ClickHouse/ClickHouse/pull/95899) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la commande `SYSTEM RELOAD DELTA KERNEL TRACING <level>` pour déboguer la journalisation de delta-kernel. [#96763](https://github.com/ClickHouse/ClickHouse/pull/96763) ([Kseniia Sumarokova](https://github.com/kssenii)).
* L'emplacement des métadonnées des tables Iceberg est désormais déduit automatiquement si `metadata_location` n'est pas spécifié dans les métadonnées Glue. [#91994](https://github.com/ClickHouse/ClickHouse/pull/91994) ([Andrey Zvonov](https://github.com/zvonand)).
* Les entrées des fichiers manifest Iceberg analysent désormais les bornes inférieure et supérieure des noms de fichiers de suppression par position, ce qui améliore la sélection des fichiers de données. [#93980](https://github.com/ClickHouse/ClickHouse/pull/93980) ([Daniil Ivanik](https://github.com/divanik)).
* Activation de l'optimisation `PREWHERE` pour les tables Iceberg. [#95476](https://github.com/ClickHouse/ClickHouse/pull/95476) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Les limites de threads et de mémoire sont désormais partagées entre les lecteurs de fichiers de données et de fichiers de suppression par position dans les tables Iceberg. [#94701](https://github.com/ClickHouse/ClickHouse/pull/94701) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Ajout de la prise en charge de `ALTER TABLE RENAME COLUMN` pour les tables Iceberg. [#97455](https://github.com/ClickHouse/ClickHouse/pull/97455) ([murphy-4o](https://github.com/murphy-4o)).
* Ajout de la prise en charge de Google Cloud Storage pour les lacs de données. [#93866](https://github.com/ClickHouse/ClickHouse/pull/93866) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Les jetons d'accès S3 sont désormais actualisés dynamiquement lors de longues requêtes avec Unity Catalog. [#95069](https://github.com/ClickHouse/ClickHouse/pull/95069) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Ajout d'un contrôle d'accès basé sur les rôles au Glue catalog via les paramètres `aws_role_arn` et `aws_role_session_name`. [#90825](https://github.com/ClickHouse/ClickHouse/pull/90825) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="s3queue-improvements">
  ### S3Queue
</div>

* S3Queue prend désormais en charge le partitionnement Hive en mode `ordered`. [#81040](https://github.com/ClickHouse/ClickHouse/pull/81040) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Refactorisation du traitement en mode `ordered` de S3Queue avec des buckets, ce qui réduit le nombre de requêtes à Keeper et améliore les performances. [#92889](https://github.com/ClickHouse/ClickHouse/pull/92889) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d'une prise en charge plus générique du partitionnement pour le mode `ordered` de S3Queue. [#94321](https://github.com/ClickHouse/ClickHouse/pull/94321) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout d'un bucketing basé sur la clé de partitionnement pour S3Queue en mode `ordered`. [#94698](https://github.com/ClickHouse/ClickHouse/pull/94698) ([Bharat Nallan](https://github.com/bharatnc)).
* Prise en charge du ZooKeeper auxiliaire pour S3Queue via le paramètre `keeper_path`. [#95203](https://github.com/ClickHouse/ClickHouse/pull/95203) ([Diego Nieto](https://github.com/lesandie)).
* En mode `ordered`, S3(Azure)Queue nettoie désormais les nœuds en échec en assurant le suivi des limites. [#94412](https://github.com/ClickHouse/ClickHouse/pull/94412) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="s3-and-object-storage-improvements">
  ### S3 et stockage d’objets
</div>

* Les en-têtes S3 `x-amz-server-side-encryption` ne sont plus propagés aux requêtes `HeadObject`, `UploadPart` et `CompleteMultipartUpload`. [#64577](https://github.com/ClickHouse/ClickHouse/pull/64577) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* `storage_class_name` peut désormais être spécifié dans des collections nommées pour le moteur de table S3 et la fonction de table `s3`. [#91926](https://github.com/ClickHouse/ClickHouse/pull/91926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction de la limitation de débit du point de terminaison des métadonnées EC2 lors de l’exécution d’un grand nombre de requêtes S3 concurrentes avec des identifiants de profil d’instance : le fournisseur d’identifiants est désormais mis en cache et partagé entre toutes les requêtes. [#92891](https://github.com/ClickHouse/ClickHouse/pull/92891) ([Sav](https://github.com/sberss)).
* Ajout de la prise en charge de la compatibilité MinIO dans le SDK AWS S3 C++, avec mappage des codes d’erreur pour les erreurs spécifiques à MinIO, ce qui améliore la fiabilité des clusters MinIO autohébergés. [#93082](https://github.com/ClickHouse/ClickHouse/pull/93082) ([XiaoBinMu](https://github.com/Binnn-MX)).
* Amélioration des messages d’erreur d’authentification S3 avec des indications invitant à vérifier les identifiants. [#95648](https://github.com/ClickHouse/ClickHouse/pull/95648) ([Gerald Latkovic](https://github.com/batkovic75)).
* Azure Blob Storage bascule désormais vers une copie en lecture-écriture lorsque la copie native échoue, quelle que soit l’erreur rencontrée (auparavant, uniquement en cas d’Unauthorized). [#92888](https://github.com/ClickHouse/ClickHouse/pull/92888) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).

<div id="functions">
  ### Fonctions
</div>

* `avg()` prend désormais en charge les valeurs `Date`, `DateTime` et `Time` en argument. [#87845](https://github.com/ClickHouse/ClickHouse/pull/87845) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `mapContainsKeyLike` et `mapContainsValueLike` peuvent désormais tirer parti d’un index textuel sur `mapKeys()` ou `mapValues()`. [#93049](https://github.com/ClickHouse/ClickHouse/pull/93049) ([Michael Jarrett](https://github.com/EmeraldShift)).
* `flipCoordinates` prend désormais en charge le type `Geometry`. [#93303](https://github.com/ClickHouse/ClickHouse/pull/93303) ([Bharat Nallan](https://github.com/bharatnc)).
* La limite de 64 jetons pour les fonctions `hasAnyTokens` et `hasAllTokens` a été supprimée. [#95152](https://github.com/ClickHouse/ClickHouse/pull/95152) ([Elmi Ahmadov](https://github.com/ahmadov)).
* `distanceCosine` a été ajouté comme alias de `cosineDistance`, en cohérence avec les autres fonctions de distance. [#96065](https://github.com/ClickHouse/ClickHouse/pull/96065) ([Raufs Dunamalijevs](https://github.com/rienath)).
* La fonction `iif` a été ajoutée à ClickHouse KQL. [#94790](https://github.com/ClickHouse/ClickHouse/pull/94790) ([happyso](https://github.com/sunyeongchoi)).
* `use_variant_as_common_type` est désormais activé par défaut, ce qui autorise les types incompatibles dans `Array`, les requêtes `UNION` et les branches `if`/`multiIf`/`case`. [#90677](https://github.com/ClickHouse/ClickHouse/pull/90677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="settings-and-configuration">
  ### Paramètres et configuration
</div>

* `use_skip_indexes_on_data_read` est désormais activé par défaut. [#93407](https://github.com/ClickHouse/ClickHouse/pull/93407) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Ajout du paramètre `add_minmax_index_for_time_columns` — lorsqu'il est activé, il crée automatiquement des index minmax pour toutes les colonnes `Date`, `Date32`, `Time`, `Time64`, `DateTime` et `DateTime64`. [#93355](https://github.com/ClickHouse/ClickHouse/pull/93355) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Ajout du paramètre `materialize_statistics_on_merge` (activé par défaut) pour contrôler si les statistiques sont matérialisées lors des fusions. [#93379](https://github.com/ClickHouse/ClickHouse/pull/93379) ([Han Fei](https://github.com/hanfei1991)).
* Ajout du paramètre `input_format_binary_max_type_complexity` pour limiter le nombre total de nœuds de type pouvant être décodés en format binaire, afin d'empêcher les payloads malveillants. [#92519](https://github.com/ClickHouse/ClickHouse/pull/92519) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Ajout du paramètre `trace_profile_events_list` pour limiter le tracing avec `trace_profile_event` à des noms d'événements spécifiques. [#92298](https://github.com/ClickHouse/ClickHouse/pull/92298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout du paramètre `type_json_allow_duplicated_key_with_literal_and_nested_object` pour autoriser les chemins dupliqués dans JSON lorsqu'un chemin est un littéral et l'autre un objet imbriqué, afin d'assurer la rétrocompatibilité avec les données créées avant l'application de la déduplication des chemins. [#93604](https://github.com/ClickHouse/ClickHouse/pull/93604) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout du paramètre MergeTree `merge_max_dynamic_subcolumns_in_compact_part` et du paramètre au niveau de la requête `max_dynamic_subcolumns_in_json_type_parsing` pour limiter les sous-colonnes dynamiques dans les colonnes JSON lors de la fusion et du parsing. [#94184](https://github.com/ClickHouse/ClickHouse/pull/94184) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout de `use_statistics` comme alias de `allow_statistics_optimize`, en cohérence avec `use_primary_key` et `use_skip_indexes`. [#94366](https://github.com/ClickHouse/ClickHouse/pull/94366) ([Robert Schulze](https://github.com/rschu1ze)).
* `input_format_numbers_enum_on_conversion_error` a été activé pour la conversion de Number vers Enum afin de vérifier l'existence des éléments. [#94384](https://github.com/ClickHouse/ClickHouse/pull/94384) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Ajout d'un paramètre pour lever une exception lorsqu'une table a des row policies mais qu'aucune ne s'applique à l'utilisateur actuel, afin de détecter d'éventuelles erreurs de configuration. [#95014](https://github.com/ClickHouse/ClickHouse/pull/95014) ([Vitaly Baranov](https://github.com/vitlibar)).
* `enable_max_bytes_limit_for_min_age_to_force_merge` est désormais activé par défaut pour la version de compatibilité 26.2 et ultérieure. [#95917](https://github.com/ClickHouse/ClickHouse/pull/95917) ([Christoph Wurm](https://github.com/cwurm)).
* `core_dump.size_limit` peut désormais être rechargé à chaud sans redémarrage du serveur. [#96524](https://github.com/ClickHouse/ClickHouse/pull/96524) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Les surcharges en ligne de commande sont désormais prises en compte lors du rechargement de la configuration. [#80295](https://github.com/ClickHouse/ClickHouse/pull/80295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d'une stratégie de rotation composite (taille + temps) pour les logs du serveur. [#87620](https://github.com/ClickHouse/ClickHouse/pull/87620) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* L'analyse distribuée des index peut désormais être activée en fonction du nombre de parts (`distributed_index_analysis_min_parts_to_activate`) et de la taille des index (`distributed_index_analysis_min_indexes_size_to_activate`). [#95216](https://github.com/ClickHouse/ClickHouse/pull/95216) ([Azat Khuzhin](https://github.com/azat)).
* Le cache des statistiques est désormais activé par défaut, avec une période de mise à jour de 300 secondes. [#95841](https://github.com/ClickHouse/ClickHouse/pull/95841) ([Han Fei](https://github.com/hanfei1991)).
* Le paramètre de configuration `path` est désormais résolu par rapport au répertoire de travail au démarrage, ce qui évite que les répertoires de données soient placés à des emplacements inhabituels. [#96305](https://github.com/ClickHouse/ClickHouse/pull/96305) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="system-tables-and-monitoring-improvements">
  ### Tables système et monitoring
</div>

* Ajout de la colonne `parts_postpone_reasons` à `system.mutations` pour améliorer les diagnostics. [#92206](https://github.com/ClickHouse/ClickHouse/pull/92206) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Ajout de la colonne `creation` (implicit/explicit) à `system.data_skipping_indices`. [#92378](https://github.com/ClickHouse/ClickHouse/pull/92378) ([Raúl Marín](https://github.com/Algunenano)).
* Les tâches en cours d’exécution sont désormais reflétées dans `system.background_schedule_pool` et dans la table de logs correspondante. [#92587](https://github.com/ClickHouse/ClickHouse/pull/92587) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la Metric `QueryNonInternal` pour suivre le nombre de queries non internes en cours d’exécution, ce qui aide à surveiller la concurrence par rapport à la limite `max_concurrent_queries`. [#94284](https://github.com/ClickHouse/ClickHouse/pull/94284) ([Ashwath Singh](https://github.com/ashwath)).
* Ajout d’une Metric asynchrone pour la durée écoulée du merge en cours d’exécution le plus long. [#94825](https://github.com/ClickHouse/ClickHouse/pull/94825) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout de `connection_address` et `connection_port` à `query_log` pour refléter la connexion physique (utile en cas de connexion via un proxy). [#95471](https://github.com/ClickHouse/ClickHouse/pull/95471) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout d’informations supplémentaires à `system.crash_log`. [#94112](https://github.com/ClickHouse/ClickHouse/pull/94112) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajout du nom du composant à `system.aggregated_zookeeper_log`. [#95882](https://github.com/ClickHouse/ClickHouse/pull/95882) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la table `system.tokenizers`, qui affiche tous les tokenizers disponibles. [#96753](https://github.com/ClickHouse/ClickHouse/pull/96753) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la table `system.jemalloc_stats` et du point de terminaison HTTP `/jemalloc.html` pour la visualisation interactive des statistiques de l’allocator mémoire jemalloc. [#97077](https://github.com/ClickHouse/ClickHouse/pull/97077) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la table `system.jemalloc_profile_text` pour lire et analyser les heap profiles de jemalloc, avec prise en charge des output formats raw, symbolized et collapsed. [#97218](https://github.com/ClickHouse/ClickHouse/pull/97218) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de `mutation_ids` à `system.part_log` pour les événements `MUTATE_PART` et `MUTATE_PART_START`. [#93811](https://github.com/ClickHouse/ClickHouse/pull/93811) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Les server settings globaux imbriqués (par ex. `logger.level`) sont désormais partiellement visibles dans `system.server_settings`. [#94001](https://github.com/ClickHouse/ClickHouse/pull/94001) ([Hechem Selmi](https://github.com/m-selmi)).
* `view_duration_ms` affiche désormais la durée pendant laquelle un group était actif, plutôt que la somme des durées des threads. [#94966](https://github.com/ClickHouse/ClickHouse/pull/94966) ([Sema Checherinda](https://github.com/CheSema)).
* `system.blob_storage_log` est désormais disponible pour Azure Blob Storage, Local et HDFS. Ajout de la colonne `error_code`. [#93105](https://github.com/ClickHouse/ClickHouse/pull/93105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les tâches d’arrière-plan plus lentes que la moyenne sont désormais consignées avec un threshold configurable (`background_schedule_pool_log.duration_threshold_milliseconds`, 30ms par défaut). [#92965](https://github.com/ClickHouse/ClickHouse/pull/92965) ([Azat Khuzhin](https://github.com/azat)).
* Les passwords provenant du stockage URL ne sont plus affichés dans le query log. [#93245](https://github.com/ClickHouse/ClickHouse/pull/93245) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="clickhouse-keeper-improvements">
  ### ClickHouse Keeper
</div>

* Gère correctement les lacunes dans les entrées de journal de Keeper lorsque les logs se trouvent avant le dernier index validé. [#90403](https://github.com/ClickHouse/ClickHouse/pull/90403) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout du traçage OpenTelemetry pour les requêtes Keeper. [#91332](https://github.com/ClickHouse/ClickHouse/pull/91332) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajout de nouvelles métriques Keeper : `KeeperChangelogWrittenBytes`, `KeeperChangelogFileSyncMicroseconds`, `KeeperSnapshotWrittenBytes`, `KeeperSnapshotFileSyncMicroseconds`, `KeeperBatchSizeElements` et `KeeperBatchSizeBytes`. [#92149](https://github.com/ClickHouse/ClickHouse/pull/92149) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Les extensions Keeper `CHECK_STAT` et `TRY_REMOVE` sont désormais activées par défaut. [#93886](https://github.com/ClickHouse/ClickHouse/pull/93886) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Keeper lève désormais une exception au lieu de s'interrompre lorsqu'il détecte un snapshot corrompu ou des changelogs incohérents, ce qui nécessite une intervention manuelle pour une récupération plus sûre. [#94168](https://github.com/ClickHouse/ClickHouse/pull/94168) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout des extensions `with_data` et `with_stat` aux requêtes Keeper `getChildren`, ce qui permet de récupérer les nœuds enfants avec leurs données et leurs statistiques en une seule opération. [#94826](https://github.com/ClickHouse/ClickHouse/pull/94826) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout d'une vérification des erreurs de configuration de Keeper susceptibles d'entraîner des échecs lors de l'assemblage du cluster. [#94682](https://github.com/ClickHouse/ClickHouse/pull/94682) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ajout de la prise en charge de l'extension Keeper `with_data` afin d'améliorer la récupération des tables dans Database Replicated. [#96090](https://github.com/ClickHouse/ClickHouse/pull/96090) ([Nikolay Degterinsky](https://github.com/evillique)).
* Il est désormais possible d'effectuer des insertions dans le ZooKeeper auxiliaire via `system.zookeeper`. [#92092](https://github.com/ClickHouse/ClickHouse/pull/92092) ([RinChanNOW](https://github.com/RinChanNOWWW)).

<div id="memory-management-improvements">
  ### Gestion de la mémoire
</div>

* Optimisation de la réservation d’espace dans le cache du système de fichiers — les candidats à l’éviction sont désormais collectés sans conserver de verrou exclusif. [#82764](https://github.com/ClickHouse/ClickHouse/pull/82764) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Activation des lectures parallèles dans le tampon de lecture du cache du système de fichiers pour les moteurs de table/fonctions distants. [#71781](https://github.com/ClickHouse/ClickHouse/pull/71781) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Réduction de l’utilisation de la mémoire sur les systèmes non Linux grâce à l’activation de la purge immédiate des pages modifiées de jemalloc. [#93360](https://github.com/ClickHouse/ClickHouse/pull/93360) ([Eduard Karacharov](https://github.com/korowa)).
* La purge des pages modifiées de jemalloc s’exécute désormais dans un thread distinct du thread principal MemoryWorker. Ajout de la config `memory_worker_purge_total_memory_threshold_ratio` pour effectuer la purge en fonction du ratio d’utilisation totale de la mémoire. [#94902](https://github.com/ClickHouse/ClickHouse/pull/94902) ([Antonio Andelic](https://github.com/antonio2368)).
* Le mécanisme de decay des pages modifiées de jemalloc est désormais désactivé dynamiquement lorsque ClickHouse est soumis à une pression mémoire prolongée. [#95145](https://github.com/ClickHouse/ClickHouse/pull/95145) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout d’une vérification explicite de la consommation mémoire avant la lecture des données depuis MergeTree, avec une réduction des tailles de file d’attente du pool de threads sur la base du retour d’expérience en production. [#94692](https://github.com/ClickHouse/ClickHouse/pull/94692) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* La limite totale de mémoire est désormais vérifiée avant l’authentification de l’utilisateur, avec levée de l’erreur `memory limit exceeded` si la limite est dépassée. [#95003](https://github.com/ClickHouse/ClickHouse/pull/95003) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une comptabilisation incorrecte de la mémoire pour le cache des conditions de requête. [#95478](https://github.com/ClickHouse/ClickHouse/pull/95478) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* La détection de l’utilisation mémoire des requêtes pour le spill sur disque lors des opérations d’agrégation/de tri a été rendue plus robuste. [#92500](https://github.com/ClickHouse/ClickHouse/pull/92500) ([Azat Khuzhin](https://github.com/azat)).
* L’ordonnanceur priorise désormais le thread MemoryWorker en cas de manque de CPU afin de protéger le processus. [#94864](https://github.com/ClickHouse/ClickHouse/pull/94864) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d’un problème où ClickHouse ne respectait pas les limites mémoire dans certains cas lors de la lecture depuis une table. [#93715](https://github.com/ClickHouse/ClickHouse/pull/93715) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

<div id="data-formats-improvements">
  ### Formats de données
</div>

* Le lecteur Parquet permet désormais de lire les colonnes `Tuple` ou `Map` au format JSON. [#92864](https://github.com/ClickHouse/ClickHouse/pull/92864) ([Michael Kolupaev](https://github.com/al13n321)).
* Le lecteur Parquet prend désormais en charge les tuples vides. [#92868](https://github.com/ClickHouse/ClickHouse/pull/92868) ([Michael Kolupaev](https://github.com/al13n321)).
* Le type `Date` est désormais sérialisé dans le type natif `date32` d’Arrow dans les formats Arrow/ArrowStream (auparavant `uint16`). L’ancien comportement peut être restauré avec le paramètre `output_format_arrow_date_as_uint16`. [#96860](https://github.com/ClickHouse/ClickHouse/pull/96860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le format de sortie `Hash` est désormais indépendant de la taille des blocs. [#94503](https://github.com/ClickHouse/ClickHouse/pull/94503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les types simples au format Pretty JSON ne sont plus affichés sur des lignes distinctes. [#93836](https://github.com/ClickHouse/ClickHouse/pull/93836) ([Pavel Kruglov](https://github.com/Avogar)).
* L’inférence de schéma respecte désormais `allow_experimental_nullable_tuple_type` : lorsque cette option est activée, les objets imbriqués manquants peuvent devenir `NULL` au lieu d’un tuple d’éléments `NULL`. [#95525](https://github.com/ClickHouse/ClickHouse/pull/95525) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Le formateur SQL produit désormais `COMMENT` avant `AS SELECT` au lieu d’entourer `SELECT` de parenthèses. [#96293](https://github.com/ClickHouse/ClickHouse/pull/96293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compression optimisée des listes de postings avec simdcomp. [#92871](https://github.com/ClickHouse/ClickHouse/pull/92871) ([Peng Jian](https://github.com/fastio)).

<div id="backup-and-restore-improvements">
  ### Sauvegarde et restauration
</div>

* Ajout du paramètre de sauvegarde `backup_data_from_refreshable_materialized_view_targets`, qui permet de contrôler si les données des vues matérialisées actualisables doivent être sauvegardées. Les cibles des RMV avec la stratégie d’actualisation `APPEND` sont toujours sauvegardées. [#93658](https://github.com/ClickHouse/ClickHouse/pull/93658) ([Julia Kartseva](https://github.com/jkartseva)).
* Ajout de la prise en charge des collections nommées définies en SQL dans `BACKUP`/`RESTORE` pour S3 et Azure Blob Storage. [#94605](https://github.com/ClickHouse/ClickHouse/pull/94605) ([Pablo Marcos](https://github.com/pamarcos)).

<div id="named-collections-and-dictionaries">
  ### Collections nommées et dictionnaires
</div>

* Les surcharges de paramètres des collections nommées sont désormais autorisées dans la table function MongoDB. [#89616](https://github.com/ClickHouse/ClickHouse/pull/89616) ([vanchaklar](https://github.com/vanchaklar)).
* Les collections nommées sont désormais prises en charge pour les dictionnaires et les tables YTsaurus. [#94582](https://github.com/ClickHouse/ClickHouse/pull/94582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Il est désormais possible de transmettre des descriptions de colonnes pour les sources de dictionnaire de tables dynamiques YTsaurus. [#92391](https://github.com/ClickHouse/ClickHouse/pull/92391) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Le schéma de la vue paramétrée est désormais affiché lorsqu’il est explicitement spécifié. [#90220](https://github.com/ClickHouse/ClickHouse/pull/90220) ([Grigorii Sokolik](https://github.com/GSokol)).

<div id="deduplication-improvements">
  ### Déduplication
</div>

* Refonte du paramètre `insert_select_deduplicate` pour ajouter des options de compatibilité descendante. [#92951](https://github.com/ClickHouse/ClickHouse/pull/92951) ([Sema Checherinda](https://github.com/CheSema)).
* La déduplication avec les async inserts est désormais autorisée lorsque des vues matérialisées sont utilisées. [#93957](https://github.com/ClickHouse/ClickHouse/pull/93957) ([Sema Checherinda](https://github.com/CheSema)).

<div id="other-improvements">
  ### Autres améliorations
</div>

* Amélioration de l’UX de `SYSTEM INSTRUMENT ADD/REMOVE` : les noms de fonction utilisent désormais des littéraux de chaîne, toutes les fonctions correspondantes sont patchées, et `function_name` est pris en charge dans `REMOVE`. [#93345](https://github.com/ClickHouse/ClickHouse/pull/93345) ([Pablo Marcos](https://github.com/pamarcos)).
* Ajout de `SYSTEM NOTIFY FAILPOINT` pour les failpoints pouvant être mis en pause, ainsi que de `SYSTEM WAIT FAILPOINT` pour PAUSE/RESUME. [#92368](https://github.com/ClickHouse/ClickHouse/pull/92368) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Les noms de fonctions C++ dans `system.trace_log`, `system.symbols` et la fonction `demangle` s’affichent désormais correctement. [#93075](https://github.com/ClickHouse/ClickHouse/pull/93075) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les profils jemalloc sont désormais écrits avec les symboles, ce qui élimine la nécessité d’un binaire lors de la génération d’un heap profile. [#93099](https://github.com/ClickHouse/ClickHouse/pull/93099) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un crash lors de l’attachement d’une table à une base de données `MaterializedPostgreSQL` si `dropReplicationSlot` lève une exception pendant le déroulement de pile. [#96871](https://github.com/ClickHouse/ClickHouse/pull/96871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction des résidus potentiels laissés lorsque `CREATE TABLE` échoue. [#94174](https://github.com/ClickHouse/ClickHouse/pull/94174) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un accès à de la mémoire non initialisée lorsqu’une clé TLS protégée par mot de passe est utilisée. [#94182](https://github.com/ClickHouse/ClickHouse/pull/94182) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Lorsque `alter table ... modify setting ...` expire pendant l’acquisition d’un verrou, il renvoie désormais une erreur de timeout au lieu d’une erreur logique. [#93856](https://github.com/ClickHouse/ClickHouse/pull/93856) ([Han Fei](https://github.com/hanfei1991)).
* Amélioration de l’interopérabilité des profileurs CPU et temps réel avec les timeouts de socket. [#96601](https://github.com/ClickHouse/ClickHouse/pull/96601) ([Sergei Trifonov](https://github.com/serxa)).
* Activation du durcissement rapide de libcxx pour les builds de release (principalement les vérifications de dépassement de limites), sans impact notable sur les performances. [#94757](https://github.com/ClickHouse/ClickHouse/pull/94757) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="performance-improvements">
  ## Améliorations des performances
</div>

<div id="join-performance">
  ### Performances des JOIN
</div>

* Certaines opérations de hash join ont été accélérées grâce à l’implémentation d’un dispatch dynamique pour `ColumnVector::replicate`. [#79573](https://github.com/ClickHouse/ClickHouse/pull/79573) ([Raúl Marín](https://github.com/Algunenano)).
* Davantage de filtres sont désormais poussés dans les JOIN. [#85556](https://github.com/ClickHouse/ClickHouse/pull/85556) ([Nikita Taranov](https://github.com/nickitat)).
* Extension du push down des filtres depuis les conditions JOIN `ON` pour les joins `ANY`, `SEMI` et `ANTI` lorsque le filtre n’utilise des entrées que d’un seul côté. [#92584](https://github.com/ClickHouse/ClickHouse/pull/92584) ([Dmitry Novik](https://github.com/novikd)).
* Des sets équivalents peuvent désormais être utilisés pour pousser les filtres dans `SEMI JOIN`. [#92837](https://github.com/ClickHouse/ClickHouse/pull/92837) ([Dmitry Novik](https://github.com/novikd)).
* Le traitement des lignes non jointes dans `ParallelHashJoin` a été parallélisé pour les prédicats complexes, via le paramètre `parallel_non_joined_rows_processing` (activé par défaut). [#92068](https://github.com/ClickHouse/ClickHouse/pull/92068) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Le hash join ignore désormais complètement la lecture du côté gauche lorsque le côté droit est vide, évitant ainsi un travail inutile en cas de filtrage ou d’agrégation coûteux. [#94062](https://github.com/ClickHouse/ClickHouse/pull/94062) ([Alexander Gololobov](https://github.com/davenger)).
* Les Runtime Filters de JOIN sont désormais pris en charge pour les JOIN `RIGHT OUTER`. [#96183](https://github.com/ClickHouse/ClickHouse/pull/96183) ([Hechem Selmi](https://github.com/m-selmi)).
* L’optimisation PREWHERE est désormais reportée après l’optimisation des Runtime Filters de JOIN, ce qui permet aussi de pousser les Runtime Filters vers PREWHERE. [#95838](https://github.com/ClickHouse/ClickHouse/pull/95838) ([Alexander Gololobov](https://github.com/davenger)).

<div id="query-optimization">
  ### Optimisation des requêtes
</div>

* Désactivation de l’optimisation de l’ordre de tri pour les fonctions de fenêtre lorsque la clé de partitionnement correspond à la clé de tri ou en est un préfixe, ce qui améliore les performances de l’exécution parallèle. [#87299](https://github.com/ClickHouse/ClickHouse/pull/87299) ([Nikita Taranov](https://github.com/nickitat)).
* Les filtres externes sont désormais poussés dans les vues, ce qui permet d’appliquer `PREWHERE` à la fois sur les nœuds locaux et distants. [#88316](https://github.com/ClickHouse/ClickHouse/pull/88316) ([Igor Nikonov](https://github.com/devcrafter)).
* Optimisation des performances et de l’utilisation de la mémoire pour les valeurs fractionnaires de `LIMIT` et `OFFSET`. [#91167](https://github.com/ClickHouse/ClickHouse/pull/91167) ([Ahmed Gouda](https://github.com/0xgouda)).
* Les filtres constants sur les colonnes virtuelles ne sont plus évalués inutilement plusieurs fois. [#91588](https://github.com/ClickHouse/ClickHouse/pull/91588) ([c-end](https://github.com/c-end)).
* Toute expression déterministe dans la clé primaire (par ex. `ORDER BY cityHash64(user_id)`) peut désormais être utilisée pour le data skipping. ClickHouse applique l’expression aux constantes de la requête et utilise le résultat pour les recherches dans l’index de clé primaire avec `=`, `IN` et `has`. Pour les expressions injectives, les formes négatives (`!=`, `NOT IN`, `NOT has`) sont également prises en charge. [#92952](https://github.com/ClickHouse/ClickHouse/pull/92952) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* L’optimisation de lecture ordonnée détecte désormais lorsque les colonnes de `ORDER BY` sont constantes du fait des conditions `WHERE`, ce qui permet des lectures efficaces en ordre inverse. Cela profite aux requêtes multi-tenant comme `WHERE tenant='42' ORDER BY tenant, event_time DESC`. [#94103](https://github.com/ClickHouse/ClickHouse/pull/94103) ([matanper](https://github.com/matanper)).
* Pour les requêtes `FINAL` utilisant une condition sur la clé primaire suivie de skip indexes, l’étape `PrimaryKeyExpand` ne vérifie désormais que les plages de clé primaire présélectionnées au départ. [#94903](https://github.com/ClickHouse/ClickHouse/pull/94903) ([Shankar Iyer](https://github.com/shankar-iyer)).
* L’optimisation de matérialisation paresseuse s’applique désormais à toutes les branches d’une requête `UNION ALL`, et non plus seulement à la première, ce qui réduit les I/O pour les requêtes qui combinent plusieurs lectures triées et limitées provenant de différentes tables MergeTree. [#96832](https://github.com/ClickHouse/ClickHouse/pull/96832) ([Federico Ginosa](https://github.com/menxit)).

<div id="function-and-aggregation-performance">
  ### Performances des fonctions et de l’agrégation
</div>

* La compilation JIT couvre désormais un plus grand nombre de fonctions. [#88770](https://github.com/ClickHouse/ClickHouse/pull/88770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimisation de la fonction d’agrégation `distinctJSONPaths` afin de ne lire que les chemins JSON à partir des data parts, au lieu de la colonne JSON complète. [#92196](https://github.com/ClickHouse/ClickHouse/pull/92196) ([Pavel Kruglov](https://github.com/Avogar)).
* Optimisation de `uniqExact` lorsque des éléments identiques se suivent souvent. [#93268](https://github.com/ClickHouse/ClickHouse/pull/93268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimisation de `isValidASCII` pour les valeurs d’entrée entièrement en ASCII. [#93347](https://github.com/ClickHouse/ClickHouse/pull/93347) ([Robert Schulze](https://github.com/rschu1ze)).
* Accélération de `uniq` sur les types numériques grâce au traitement des insertions par lots lorsque c’est possible (pas de valeurs nulles, pas de `-If`, pas de `GROUP BY`, ni `IPv6` ni `String`). [#95904](https://github.com/ClickHouse/ClickHouse/pull/95904) ([Raúl Marín](https://github.com/Algunenano)).

<div id="storage-and-io-performance">
  ### Performances du stockage et des E/S
</div>

* Correction du Parquet Reader V3 Prefetcher pour utiliser une logique de lecture aléatoire plus rapide. [#91435](https://github.com/ClickHouse/ClickHouse/pull/91435) ([Arsen Muk](https://github.com/arsenmuk)).
* Amélioration des performances de `icebergCluster`. [#91537](https://github.com/ClickHouse/ClickHouse/pull/91537) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Réduction de l’utilisation mémoire d’`INSERT` et des fusions pour les tables très larges avec des Wide parts grâce à l’activation de buffers d’écriture adaptatifs. Ajout également de la prise en charge des buffers d’écriture adaptatifs pour les disques chiffrés. [#92250](https://github.com/ClickHouse/ClickHouse/pull/92250) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration des performances de la recherche en texte intégral avec l’index de texte et le tokenizer `sparseGrams` en réduisant le nombre de tokens recherchés. [#93078](https://github.com/ClickHouse/ClickHouse/pull/93078) ([Anton Popov](https://github.com/CurtizJ)).
* Accélération de la compression du codec T64 grâce au dispatch dynamique sur x86. [#95881](https://github.com/ClickHouse/ClickHouse/pull/95881) ([Raúl Marín](https://github.com/Algunenano)).
* Accélération de la décompression LZ4 des blocs de 32 octets sur x86. [#96778](https://github.com/ClickHouse/ClickHouse/pull/96778) ([Raúl Marín](https://github.com/Algunenano)).
* L’optimisation de direct read de l’index de texte fonctionne désormais partiellement : les parts disposant d’un index de texte matérialisé l’utiliseront, tandis que les parts qui n’en disposent pas reviendront à l’expression de filtre d’origine. [#96411](https://github.com/ClickHouse/ClickHouse/pull/96411) ([Anton Popov](https://github.com/CurtizJ)).
* Optimisation du calcul de l’index de saut minmax lors de l’`INSERT` en supprimant une copie de données inutile et en activant le calcul min/max vectorisé pour les colonnes numériques. [#97392](https://github.com/ClickHouse/ClickHouse/pull/97392) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout d’index secondaires `minmax` sur les colonnes temporelles et d’index `bloom_filter` sur les colonnes `query_id`/`initial_query_id` dans les tables de logs système pour accélérer le filtrage. [#96712](https://github.com/ClickHouse/ClickHouse/pull/96712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Évitement d’une régression de l’utilisation mémoire sur `INSERT` lorsque la déduplication n’est pas activée. [#96503](https://github.com/ClickHouse/ClickHouse/pull/96503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="memory-optimization">
  ### Optimisation de la mémoire
</div>

* Réduction de l’empreinte mémoire de `ASTLiteral` par suppression des champs inutilisés lorsque la coloration syntaxique et l’analyse de `VALUES` ne sont pas actives. [#93974](https://github.com/ClickHouse/ClickHouse/pull/93974) ([Ilya Yatsishin](https://github.com/qoega)).
* Introduction d’une classe AST Enum spécialisée qui stocke les paramètres de valeur sous forme de paires chaîne/entier au lieu d’enfants `ASTLiteral` génériques, ce qui réduit la consommation mémoire. [#94178](https://github.com/ClickHouse/ClickHouse/pull/94178) ([Ilya Yatsishin](https://github.com/qoega)).
* Optimisation de la consommation mémoire des objets AST de tuple nommé en stockant directement les noms de colonnes sous forme de chaînes, au lieu de nœuds littéraux AST génériques. [#94704](https://github.com/ClickHouse/ClickHouse/pull/94704) ([Ilya Yatsishin](https://github.com/qoega)).
* Réduction de la taille de la structure `CachedOnDiskReadBufferFromFile` d’un facteur d’environ 50. [#96098](https://github.com/ClickHouse/ClickHouse/pull/96098) ([Azat Khuzhin](https://github.com/azat)).
* `HashTable::resize` ne copie plus les anciennes données lorsque la table est vide. [#96180](https://github.com/ClickHouse/ClickHouse/pull/96180) ([Raúl Marín](https://github.com/Algunenano)).

<div id="internal-optimizations">
  ### Optimisations internes
</div>

* Adoption de la méthode « fastrange » (Daniel Lemire) pour le partitionnement des données dans le pipeline de requête, ce qui améliore le tri parallèle et les opérations JOIN. [#93080](https://github.com/ClickHouse/ClickHouse/pull/93080) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration de la dévirtualisation grâce à des options supplémentaires de l’éditeur de liens. [#94737](https://github.com/ClickHouse/ClickHouse/pull/94737) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration des performances du clonage de répliques pour les tables `ReplicatedMergeTree` comportant de nombreuses parts grâce au traitement par lots des requêtes ZooKeeper. [#94847](https://github.com/ClickHouse/ClickHouse/pull/94847) ([c-end](https://github.com/c-end)).
* Réduction de plus de 20 % de l’utilisation CPU du thread de réception de ZooKeeper dans `observeOperations` grâce à l’adoption d’un hachage plus rapide et de compteurs sans verrou. [#95962](https://github.com/ClickHouse/ClickHouse/pull/95962) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="bug-fixes">
  ## Corrections de bugs
</div>

<Accordion title="Tous les correctifs de bugs (cliquez pour afficher)">
  ### Correctifs JOIN

  * Correction de l’erreur `INCOMPATIBLE_TYPE_OF_JOIN` pour le stockage Join lorsque l’optimisation convertissant une jointure externe en jointure interne était appliquée. [#84292](https://github.com/ClickHouse/ClickHouse/pull/84292) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction d’une erreur logique pour les requêtes comportant plusieurs JOIN avec clause `USING` et `join_use_nulls`. [#92251](https://github.com/ClickHouse/ClickHouse/pull/92251) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction d’une erreur logique lors du réordonnancement des jointures avec `join_use_nulls`. [#92289](https://github.com/ClickHouse/ClickHouse/pull/92289) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction d’un plantage possible avec le paramètre `join_on_disk_max_files_to_merge`. [#92335](https://github.com/ClickHouse/ClickHouse/pull/92335) ([Bharat Nallan](https://github.com/bharatnc)).
  * Correction de `LOGICAL_ERROR`, causée par une modification indésirable du plan de requête lors de la conversion d’une jointure externe en jointure interne. Les contraintes de l’optimisation ont également été assouplies afin qu’elle s’applique lorsque des fonctions injectives sont utilisées sur les clés d’agrégation pendant les jointures. [#92503](https://github.com/ClickHouse/ClickHouse/pull/92503) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Correction d’une erreur logique avec plusieurs jointures sur une condition constante et `join_use_nulls`. [#92892](https://github.com/ClickHouse/ClickHouse/pull/92892) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction du cas `NULL != NULL` pour `full_sorting_join` sur une colonne `LowCardinality(Nullable(T))`. [#92924](https://github.com/ClickHouse/ClickHouse/pull/92924) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction des résultats de jointure lorsque la clé de jointure côté droit était une colonne sparse. [#93038](https://github.com/ClickHouse/ClickHouse/pull/93038) ([Amos Bird](https://github.com/amosbird)).
  * Correction du fonctionnement incorrect des filtres d’exécution lorsque `LEFT ANTI JOIN` comportait une post-condition supplémentaire. [#91824](https://github.com/ClickHouse/ClickHouse/pull/91824) ([Alexander Gololobov](https://github.com/davenger)).
  * Correction d’une erreur logique lorsque des filtres d’exécution étaient utilisés dans une requête avec totaux pour la table de droite. [#93330](https://github.com/ClickHouse/ClickHouse/pull/93330) ([Alexander Gololobov](https://github.com/davenger)).
  * Correction d’une erreur logique déclenchée dans certains cas lorsque des filtres d’exécution de jointure étaient ajoutés au plan de requête, en raison du renvoi incorrect de colonnes constantes dupliquées. [#93144](https://github.com/ClickHouse/ClickHouse/pull/93144) ([Alexander Gololobov](https://github.com/davenger)).
  * Correction de la fonction `__applyFilter` utilisée par les filtres d’exécution de jointure, qui renvoyait `ILLEGAL_TYPE_OF_ARGUMENT` dans certains cas valides. [#93187](https://github.com/ClickHouse/ClickHouse/pull/93187) ([Alexander Gololobov](https://github.com/davenger)).
  * Correction du fait que des filtres d’exécution n’étaient pas ajoutés lors d’une jointure avec une table de droite déjà remplie. [#93211](https://github.com/ClickHouse/ClickHouse/pull/93211) ([Alexander Gololobov](https://github.com/davenger)).
  * Correction de l’erreur `NOT_FOUND_COLUMN_IN_BLOCK` lorsque le filtre d’exécution était activé et que les tables jointes renvoyaient plusieurs fois la même colonne. [#93526](https://github.com/ClickHouse/ClickHouse/pull/93526) ([Alexander Gololobov](https://github.com/davenger)).
  * Correction du fait que `FilterStep` n’était pas correctement ajouté lorsqu’un filtre d’exécution de jointure était appliqué à une table `Merge`. [#94021](https://github.com/ClickHouse/ClickHouse/pull/94021) ([Alexander Gololobov](https://github.com/davenger)).
  * Correction de la conversion de type vers un supertype lors de l’opération de jointure du stockage `Join` avec clause `USING`. [#94000](https://github.com/ClickHouse/ClickHouse/pull/94000) ([Dmitry Novik](https://github.com/novikd)).
  * Correction des requêtes avec répliques parallèles et JOIN sur une table non-MergeTree. [#93902](https://github.com/ClickHouse/ClickHouse/pull/93902) ([Igor Nikonov](https://github.com/devcrafter)).
  * Correction d’une condition de concurrence sur une colonne de jointure Nullable dans les runtime filters. [#95775](https://github.com/ClickHouse/ClickHouse/pull/95775) ([Hechem Selmi](https://github.com/m-selmi)).
  * Correction du problème où une chaîne vide devenait `NULL` dans une table `Join` avec une clé `Nullable(String)`. [#96002](https://github.com/ClickHouse/ClickHouse/pull/96002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’erreur `NOT_SUPPORTED` lors de l’utilisation de l’algorithme de jointure `direct` avec une table MergeTree vide. [#95935](https://github.com/ClickHouse/ClickHouse/pull/95935) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction de résultats incorrects dans des requêtes impliquant des jointures externes combinées à plusieurs INNER JOIN, en raison d’un réordonnancement invalide des jointures lorsque la condition `ON` d’une jointure externe référençait des colonnes de plusieurs tables jointes auparavant. [#96193](https://github.com/ClickHouse/ClickHouse/pull/96193) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction d’une exception de runtime filter pour des colonnes Tuple avec des sous-champs Nullable. [#96509](https://github.com/ClickHouse/ClickHouse/pull/96509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de requêtes avec des CROSS JOIN et des répliques parallèles activées qui renvoyaient des résultats incorrects. [#96848](https://github.com/ClickHouse/ClickHouse/pull/96848) ([Igor Nikonov](https://github.com/devcrafter)).
  * Correction de `arrayJoin`, qui produisait des lignes dupliquées lorsqu’il était utilisé avec INNER JOIN et une clause WHERE, à cause d’un push-down partiel de prédicat qui poussait incorrectement sous un JOIN des filtres contenant `arrayJoin`. [#96989](https://github.com/ClickHouse/ClickHouse/pull/96989) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `LOGICAL_ERROR` lorsque `arrayJoin` dans la clause `WHERE` référençait des colonnes des deux côtés d’un JOIN. [#97239](https://github.com/ClickHouse/ClickHouse/pull/97239) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une erreur logique lors de l’utilisation d’un matcher (`*`) à l’intérieur d’une fonction lambda dans une clause VALUES au sein d’un JOIN avec USING. [#95661](https://github.com/ClickHouse/ClickHouse/pull/95661) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction d’une possible erreur logique avec le matcher (`*`, `table.*`) et `analyzer_compatibility_join_using_top_level_identifier` lorsque la colonne `USING` avait des types différents. [#95808](https://github.com/ClickHouse/ClickHouse/pull/95808) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction d’une erreur logique avec `analyzer_compatibility_join_using_top_level_identifier` et les colonnes ALIAS. [#97297](https://github.com/ClickHouse/ClickHouse/pull/97297) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Correction d’un plantage dans l’ancien analyseur lors de l’utilisation de JOIN avec des alias dupliqués. [#96405](https://github.com/ClickHouse/ClickHouse/pull/96405) ([Ilya Golshtein](https://github.com/ilejn)).

  ### Correctifs pour les requêtes et l'analyseur

  * Correction d’un bug où les gestionnaires de requêtes prédéfinies interprétaient les espaces de fin comme des données lors des insertions. [#83604](https://github.com/ClickHouse/ClickHouse/pull/83604) ([Fabian Ponce](https://github.com/FabianPonce)).
  * Correction d’un bug d’agrégation avec projection qui produisait une exception après des ALTER ne modifiant que les métadonnées, comme l’extension des éléments d’Enum. [#84143](https://github.com/ClickHouse/ClickHouse/pull/84143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `count_distinct_optimization` pour les fonctions de fenêtre et les appels avec plusieurs arguments. [#92376](https://github.com/ClickHouse/ClickHouse/pull/92376) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction du formatage incohérent de l’AST de `arrayElement` avec un littéral nié. [#92293](https://github.com/ClickHouse/ClickHouse/pull/92293) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de `NOT IN` avec des arguments de tableau non constants qui renvoyait des valeurs incorrectes. [#93314](https://github.com/ClickHouse/ClickHouse/pull/93314) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Correction d’une erreur de comparaison null-safe impliquant le type `Nothing`. [#91884](https://github.com/ClickHouse/ClickHouse/pull/91884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Correction de l’erreur `Not found column` pour l’optimisation `use_top_k_dynamic_filtering`. [#93316](https://github.com/ClickHouse/ClickHouse/pull/93316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * Correction de la suppression des colonnes inutilisées dans les sous-requêtes en présence d’une sous-requête scalaire corrélée. [#93273](https://github.com/ClickHouse/ClickHouse/pull/93273) ([Dmitry Novik](https://github.com/novikd)).
  * Correction de `optimize_inverse_dictionary_lookup`, qui ne fonctionnait pas avec les requêtes distribuées lorsque la clé était d’un type entier signé. [#93848](https://github.com/ClickHouse/ClickHouse/pull/93848) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction de `lag`/`lead`, qui ne fonctionnait pas avec les requêtes distribuées `remote()`. [#93858](https://github.com/ClickHouse/ClickHouse/pull/93858) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction d’un bug dans le mécanisme de data skipping lorsque `not match(...)` était utilisé dans `WHERE`, provoquant des résultats incorrects. [#92726](https://github.com/ClickHouse/ClickHouse/pull/92726) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction d’un bug dans le mécanisme de data skipping lorsque `not materialize(...)` ou `not CAST(...)` était utilisé dans `WHERE`, provoquant des résultats incorrects. [#93017](https://github.com/ClickHouse/ClickHouse/pull/93017) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction d’une erreur logique lors de l’analyse d’index lorsqu’un tableau vide était utilisé dans la fonction `has`. [#92995](https://github.com/ClickHouse/ClickHouse/pull/92995) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction d’une erreur logique dans un cas rare où un tuple vide était utilisé avec une colonne `Map`. [#93814](https://github.com/ClickHouse/ClickHouse/pull/93814) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction de requêtes utilisant le sharding par PK qui échouaient avec une condition fausse. [#92815](https://github.com/ClickHouse/ClickHouse/pull/92815) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Correction d’un problème de planification de requêtes du moteur de table `Merge` qui renvoyait `ILLEGAL_COLUMN` pour `hostName()` lors de la fusion de tables locales et distantes/Distributed. [#93286](https://github.com/ClickHouse/ClickHouse/pull/93286) ([Jinlin](https://github.com/withlin)).
  * Correction de l’erreur `NO_SUCH_COLUMN_IN_TABLE` dans le moteur `Merge` sur des tables avec alias. [#92910](https://github.com/ClickHouse/ClickHouse/pull/92910) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction d’une requête `SELECT` avec un prédicat portant sur plusieurs colonnes, des skip indexes de type bloom filter et des conditions `OR` et `NOT`, qui renvoyait des résultats incohérents. [#94026](https://github.com/ClickHouse/ClickHouse/pull/94026) ([Shankar Iyer](https://github.com/shankar-iyer)).
  * Correction de l’application d’une projection lorsque le filtre contenait des sous-colonnes. [#93141](https://github.com/ClickHouse/ClickHouse/pull/93141) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de la corruption de `_part_offset` lorsque des projections étaient reconstruites pendant les fusions, et optimisation du traitement des projections en évitant des lectures inutiles. [#93827](https://github.com/ClickHouse/ClickHouse/pull/93827) ([Amos Bird](https://github.com/amosbird)).
  * Empêche que différentes colonnes interpolées fusionnent en une même colonne dans un block lorsqu’elles étaient en pratique des alias de la même colonne. [#93197](https://github.com/ClickHouse/ClickHouse/pull/93197) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
  * Suppression des colonnes inutilisées lorsque la projection était reconstruite pendant une fusion, réduisant l’utilisation mémoire et le nombre de parts temporaires créées. [#93233](https://github.com/ClickHouse/ClickHouse/pull/93233) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * Correction d’une erreur logique dans certains cas lorsque `LIMIT/OFFSET` négatif était utilisé dans des requêtes distribuées. [#95357](https://github.com/ClickHouse/ClickHouse/pull/95357) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction d’une erreur logique dans certains cas lorsque `LIMIT/OFFSET` fractionnaire était utilisé dans des requêtes distribuées. [#96475](https://github.com/ClickHouse/ClickHouse/pull/96475) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction de la fonction `IN` qui renvoyait des résultats incorrects avec des valeurs `NULL` lorsque `transform_null_in` était activé. [#95674](https://github.com/ClickHouse/ClickHouse/pull/95674) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction de l’échec de `IN (col)` avec une unique référence de colonne, avec l’erreur `UNSUPPORTED_METHOD`. [#97646](https://github.com/ClickHouse/ClickHouse/pull/97646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de la réécriture par `optimize_syntax_fuse_functions` de `sum`/`count`/`avg` en `sumCount()` lorsque l’argument d’agrégation était `LowCardinality(Nullable)`. [#96239](https://github.com/ClickHouse/ClickHouse/pull/96239) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction d’un élagage des partitions incorrect pour les fonctions `not IN` et `not has`. [#96241](https://github.com/ClickHouse/ClickHouse/pull/96241) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction d’une erreur de filtre prewhere causée par des expressions lambda dans prewhere. [#95395](https://github.com/ClickHouse/ClickHouse/pull/95395) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
  * Correction de `LOGICAL_ERROR` dans l’analyseur de requêtes lorsqu’une expression lambda était transmise là où une valeur concrète était attendue. [#96892](https://github.com/ClickHouse/ClickHouse/pull/96892) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un déréférencement de pointeur nul dans certaines expressions avec des fonctions lambda. [#96479](https://github.com/ClickHouse/ClickHouse/pull/96479) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction du fait que les `SETTINGS` par sous-requête n’étaient pas appliqués aux fonctions de table comme `file` dans les CTE et les sous-requêtes. [#96882](https://github.com/ClickHouse/ClickHouse/pull/96882) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une collision de hachage dans le cache des conditions de requête pour les constantes repliées de CTE, ce qui pouvait entraîner des résultats de requête erronés. [#96172](https://github.com/ClickHouse/ClickHouse/pull/96172) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’erreur `BAD_ARGUMENTS` lors de requêtes sur des tables contenant des expressions lambda dans des colonnes ALIAS via la fonction de table `merge()`, avec l’analyseur activé. [#97551](https://github.com/ClickHouse/ClickHouse/pull/97551) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `EXCEPT ALL` et `INTERSECT ALL`, qui ignoraient les multiplicités de lignes et se comportaient comme leurs équivalents `DISTINCT`. [#96876](https://github.com/ClickHouse/ClickHouse/pull/96876) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un échec d’assertion dans `WindowTransform` avec un grand décalage `PRECEDING`. [#96026](https://github.com/ClickHouse/ClickHouse/pull/96026) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une exception lors de l’utilisation de fonctions de fenêtrage avec `group_by_use_nulls = 1` et `CUBE`/`ROLLUP`/`GROUPING SETS`. [#96878](https://github.com/ClickHouse/ClickHouse/pull/96878) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’interaction entre `GROUPING SETS`, `group_by_use_nulls` et `Tuple` avec `LowCardinality`, qui produisait une structure de bloc inattendue. [#96358](https://github.com/ClickHouse/ClickHouse/pull/96358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une erreur logique pendant `GROUP BY ... WITH ROLLUP/CUBE` lorsque les clés incluaient `LowCardinality(Nullable(...))` dans `Nullable(Tuple(...))`. [#97647](https://github.com/ClickHouse/ClickHouse/pull/97647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un échec d’assertion dans `IfTransformStringsToEnumPass` lorsque `if` ou `transform` renvoyait `Nullable(String)`. [#97002](https://github.com/ClickHouse/ClickHouse/pull/97002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `ACCESS_DENIED` pour les utilisateurs ne disposant pas de l’autorisation `CREATE TEMPORARY TABLE` lorsque `optimize_inverse_dictionary_lookup` réécrivait les prédicats `dictGet(...)`. [#97484](https://github.com/ClickHouse/ClickHouse/pull/97484) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Correction d’une incompatibilité de type de la fonction `if` entre `UInt64` et `Int32` dans un cas inhabituel de requêtes distribuées avec PREWHERE et inférence de type. [#96012](https://github.com/ClickHouse/ClickHouse/pull/96012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction des requêtes compilées par JIT impliquant des types `Bool`. [#96013](https://github.com/ClickHouse/ClickHouse/pull/96013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de résultats incorrects lorsque des expressions compilées par JIT convertissaient `DateTime` en `DateTime64` (par exemple dans `CASE`/`if`/`multiIf` avec des types DateTime mixtes). [#96879](https://github.com/ClickHouse/ClickHouse/pull/96879) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’utilisation d’une valeur non initialisée dans `formatDateTime` avec des spécificateurs de format non à largeur fixe. [#96133](https://github.com/ClickHouse/ClickHouse/pull/96133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `std::terminate` dans `indexOfAssumeSorted` lorsqu’il était appelé avec des types incompatibles. [#96877](https://github.com/ClickHouse/ClickHouse/pull/96877) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Les fonctions géométriques acceptent désormais des sous-types géométriques individuels en plus du type Variant `Geometry`. [#97571](https://github.com/ClickHouse/ClickHouse/pull/97571) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de cas où des index affectaient les résultats de requêtes avec politique de lignes/PREWHERE et FINAL. [#97076](https://github.com/ClickHouse/ClickHouse/pull/97076) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * L'optimisation de lecture dans l'ordre peut désormais utiliser les politiques au niveau des lignes. [#97538](https://github.com/ClickHouse/ClickHouse/pull/97538) ([Janos Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Correction de `LOGICAL_ERROR` lors de l'utilisation de colonnes dotées d'un index de texte avec la clause `QUALIFY`. [#97313](https://github.com/ClickHouse/ClickHouse/pull/97313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d'un plantage possible lorsque la clause `WHERE` contenait plus de 32 expressions avec `AND`/`OR`. [#97698](https://github.com/ClickHouse/ClickHouse/pull/97698) ([Shankar Iyer](https://github.com/shankar-iyer)).
  * Correction d'une incompatibilité de structure de bloc dans l'optimisation `removeUnusedColumns` lors de l'utilisation de `indexHint` avec l'expansion de l'astérisque sur des tables avec `FINAL`. [#97622](https://github.com/ClickHouse/ClickHouse/pull/97622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d'une incohérence de formatage aller-retour de l'AST pour les littéraux de tuple aliasés à l'intérieur de parenthèses. [#97418](https://github.com/ClickHouse/ClickHouse/pull/97418) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d'une incohérence de formatage de l'AST pour `NOT (1, 1, 1)`. [#97653](https://github.com/ClickHouse/ClickHouse/pull/97653) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### Correctifs MergeTree et stockage

  * Les noms de fichiers sont désormais toujours remplacés par des hash dans MergeTree si le système de fichiers est insensible à la casse. Auparavant, sur macOS, cela pouvait entraîner une corruption des données lorsque les noms de colonne/sous-colonne ne différaient que par la casse. [#86559](https://github.com/ClickHouse/ClickHouse/pull/86559) ([Pavel Kruglov](https://github.com/Avogar)).
  * Les vues matérialisées utilisent désormais comme contexte d’exécution la base de données dans laquelle elles ont été créées, ce qui permet d’omettre la qualification explicite de la base de données dans la requête SELECT de la vue. [#88193](https://github.com/ClickHouse/ClickHouse/pull/88193) ([Dmitry Kovalev](https://github.com/dk-github)).
  * Ajout d’une vérification complète des autorisations à l’étape de création pour la requête sous-jacente à une vue matérialisée. [#89180](https://github.com/ClickHouse/ClickHouse/pull/89180) ([pufit](https://github.com/pufit)).
  * Correction d’une erreur logique lorsqu’une mutation sans transaction modifiait des parts dans une transaction active finalement annulée. [#90469](https://github.com/ClickHouse/ClickHouse/pull/90469) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * Correction d’un problème où `system.warnings` ne se mettait pas correctement à jour après la conversion d’une base de données ordinaire en base de données atomic. [#90473](https://github.com/ClickHouse/ClickHouse/pull/90473) ([sdk2](https://github.com/sdk2)).
  * Correction de `LOGICAL_ERROR: Storage does not support transaction` pendant `ATTACH AS REPLICATED`. [#91772](https://github.com/ClickHouse/ClickHouse/pull/91772) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * Correction d’une possible erreur `FILE_DOESNT_EXIST` après la mutation d’une colonne sparse avec `ratio_of_defaults_for_sparse_serialization=0.0`. [#92860](https://github.com/ClickHouse/ClickHouse/pull/92860) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction d’une possible erreur `FILE_DOESNT_EXIST` après la mutation d’une colonne sparse lorsque `ratio_of_defaults_for_sparse_serialization` était passé à `1.0` via alter. [#93016](https://github.com/ClickHouse/ClickHouse/pull/93016) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction d’une possible utilisation de parts obsolètes en raison d’une condition de concurrence TOCTOU sur des parts partagées. [#93022](https://github.com/ClickHouse/ClickHouse/pull/93022) ([Azat Khuzhin](https://github.com/azat)).
  * Héritage des paramètres d’information de sérialisation de la part source pendant la mutation dans MergeTree, corrigeant de possibles résultats de requête incorrects sur des parts mutées après des changements de sérialisation du type de données. [#92419](https://github.com/ClickHouse/ClickHouse/pull/92419) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction d’un possible conflit entre une colonne et une sous-colonne portant le même nom, entraînant une sérialisation incorrecte et des échecs de requête. [#92453](https://github.com/ClickHouse/ClickHouse/pull/92453) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de `NOT_FOUND_COLUMN_IN_BLOCK` lors d’un insert dans une table avec une sous-colonne dans l’expression de partition. [#92905](https://github.com/ClickHouse/ClickHouse/pull/92905) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction d’une possible sous-colonne manquante dans une MV lors d’un alter de la table source. [#93276](https://github.com/ClickHouse/ClickHouse/pull/93276) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de `LOGICAL_ERROR` lors de la restauration de `ReplicatedMergeTree` en présence d’une condition de concurrence de déduplication. [#93612](https://github.com/ClickHouse/ClickHouse/pull/93612) ([Pablo Marcos](https://github.com/pamarcos)).
  * Correction de l’utilisation d’une colonne sparse pour la mise à jour TTL pendant la désérialisation directe, évitant l’erreur `Unexpected type of result TTL column`. [#93619](https://github.com/ClickHouse/ClickHouse/pull/93619) ([Pavel Kruglov](https://github.com/Avogar)).
  * Restauration des wrappers `LowCardinality` sur les résultats d’expressions SET si nécessaire pendant l’agrégation TTL. [#92971](https://github.com/ClickHouse/ClickHouse/pull/92971) ([Seva Potapov](https://github.com/seva-potapov)).
  * Correction de `Cannot add action to empty ExpressionActionsChain` pour `ALTER TABLE REWRITE PARTS`. [#92754](https://github.com/ClickHouse/ClickHouse/pull/92754) ([Azat Khuzhin](https://github.com/azat)).
  * Correction de la substitution des paramètres de requête dans les méthodes d'authentification de `CREATE USER` lors de l'utilisation de `ON CLUSTER`. [#92777](https://github.com/ClickHouse/ClickHouse/pull/92777) ([xiaohuanlin](https://github.com/xiaohuanlin)).
  * Ne tente plus de supprimer les répertoires temporaires au démarrage si une table MergeTree se trouve sur un disque en lecture seule. [#92748](https://github.com/ClickHouse/ClickHouse/pull/92748) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de la matérialisation des index de saut créés à partir de sous-colonnes. [#93708](https://github.com/ClickHouse/ClickHouse/pull/93708) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction de `CLEAR COLUMN` en présence d'index dépendants. [#94057](https://github.com/ClickHouse/ClickHouse/pull/94057) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction du rattachement des bases de données `Replicated` lorsque l'hôte interserveur changeait après un redémarrage. [#93779](https://github.com/ClickHouse/ClickHouse/pull/93779) ([Tuan Pham Anh](https://github.com/tuanpach)).
  * Correction d'une erreur logique avec `CREATE TABLE ... AS urlCluster()` et le moteur de base de données `Replicated`. [#92418](https://github.com/ClickHouse/ClickHouse/pull/92418) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d'une condition de concurrence entre `REPLACE PARTITION` et les mutations en arrière-plan, qui pouvait rendre visibles à la fois les anciennes et les nouvelles données. [#96955](https://github.com/ClickHouse/ClickHouse/pull/96955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de la condition de concurrence restante entre `REPLACE PARTITION` et les mutations en arrière-plan, qui pouvait faire réapparaître d'anciennes données. [#97105](https://github.com/ClickHouse/ClickHouse/pull/97105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction des mutations bloquées lorsque `PartCheckThread` remettait un `GET_PART` en file d'attente pour une partie déjà mutée. [#97162](https://github.com/ClickHouse/ClickHouse/pull/97162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l'échec de `ALTER TABLE DROP COLUMN` lorsqu'une mise à jour légère avait déjà été effectuée sur la même colonne. [#96861](https://github.com/ClickHouse/ClickHouse/pull/96861) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction d'un déréférencement de pointeur nul lors de l'application de patch parts pendant des mises à jour légères. [#97583](https://github.com/ClickHouse/ClickHouse/pull/97583) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Les parties avec des projections inconnues ne sont plus marquées comme définitivement perdues. [#95952](https://github.com/ClickHouse/ClickHouse/pull/95952) ([Mikhail Artemenko](https://github.com/Michicosun)).
  * Correction de `CREATE TABLE ... CLONE AS ...`, qui ignorait le qualificatif complet de la table source. [#96415](https://github.com/ClickHouse/ClickHouse/pull/96415) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
  * Correction de la régénération implicite des index dans les tables répliquées lors des modifications de métadonnées. [#96600](https://github.com/ClickHouse/ClickHouse/pull/96600) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction des index implicites avec des colonnes alias, et ajout d'une validation complète avant leur création. [#97115](https://github.com/ClickHouse/ClickHouse/pull/97115) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction de `min(timestamp)`, qui renvoyait l'époque Unix (`1970-01-01`) via `_minmax_count_projection` après une fusion TTL lorsque toutes les lignes avaient été filtrées. [#96703](https://github.com/ClickHouse/ClickHouse/pull/96703) ([Raquel Barbadillo](https://github.com/rbarbadillo)).
  * Correction de la combinaison de `use_const_adaptive_granularity` et `index_granularity_bytes` (granularité non adaptative), qui conduisait à un calcul erroné. [#96143](https://github.com/ClickHouse/ClickHouse/pull/96143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’exception `Number of rows in lazy chunk does not match number of offsets` lors de la lecture de tables avec une granularité d’index non adaptative utilisant `ORDER BY ... LIMIT`. [#97270](https://github.com/ClickHouse/ClickHouse/pull/97270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une régression dans la réplication zero-copy : des parts partagées pouvaient être supprimées avant que d’autres répliques n’aient fini de les récupérer. [#95597](https://github.com/ClickHouse/ClickHouse/pull/95597) ([filimonov](https://github.com/filimonov)).
  * Correction d’un problème dans `SYSTEM RESTART REPLICA` qui faisait disparaître une table de la base de données lorsque sa recréation échouait avec une exception autre que ZooKeeper, provoquant des incohérences d’empreinte des métadonnées dans `DatabaseReplicated`. [#97276](https://github.com/ClickHouse/ClickHouse/pull/97276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’exception `assert_cast` lors de la création des statistiques de colonnes après modification du type de colonne par `ALTER TABLE MODIFY COLUMN`. [#97027](https://github.com/ClickHouse/ClickHouse/pull/97027) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Lorsqu’aucune statistique n’est définie pour une table, ClickHouse n’essaie plus de les charger, ce qui évite une surcharge inutile. [#96233](https://github.com/ClickHouse/ClickHouse/pull/96233) ([Han Fei](https://github.com/hanfei1991)).
  * Correction de l’erreur logique `There was an error: Cannot obtain error message` lors de l’attente d’un DDL distribué et de la suppression simultanée de la base de données Replicated. [#95664](https://github.com/ClickHouse/ClickHouse/pull/95664) ([Alexander Tokmakov](https://github.com/tavplubix)).
  * Correction d’une erreur logique dans `KeyCondition` lorsqu’une table avait une clé primaire Nullable et que la requête utilisait `coalesce` avec un premier argument constant. [#96340](https://github.com/ClickHouse/ClickHouse/pull/96340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### Corrections relatives aux types de données et à la sérialisation

  * Correction d’une erreur possible lors de la lecture de la sous-colonne de taille des types Dynamic/JSON. [#95573](https://github.com/ClickHouse/ClickHouse/pull/95573) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction d’un crash lors de l’application de `tupleElement` à des tableaux de JSON. [#95647](https://github.com/ClickHouse/ClickHouse/pull/95647) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de l’exécution de `tupleElement` sur JSON avec des chemins imbriqués, qui renvoyait des résultats incorrects. [#95907](https://github.com/ClickHouse/ClickHouse/pull/95907) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de `tupleElement`, qui levait une exception avec JSON pour des chemins avec des indications de type. [#97728](https://github.com/ClickHouse/ClickHouse/pull/97728) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction du comportement de skipping paths dans le type de données JSON — auparavant, `JSON(SKIP path)` ignorait toutes les clés ayant le préfixe `path` (y compris des clés comme `pathpath`), ce qui pouvait entraîner une perte de données. Désormais, seule la clé exacte est ignorée. [#95948](https://github.com/ClickHouse/ClickHouse/pull/95948) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de l’application de `type_json_allow_duplicated_key_with_literal_and_nested_object` aux chemins typés dans JSON. [#97422](https://github.com/ClickHouse/ClickHouse/pull/97422) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de la vérification des chemins typés incompatibles dans le type JSON. [#92539](https://github.com/ClickHouse/ClickHouse/pull/92539) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de la création d’une indication de type pour le chemin 'skip' dans JSON. [#92842](https://github.com/ClickHouse/ClickHouse/pull/92842) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de la résolution des sous-colonnes dynamiques dans les alias de colonne par l’analyseur. [#92583](https://github.com/ClickHouse/ClickHouse/pull/92583) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de l’erreur `Nested columns sizes are inconsistent with local_discriminators` due à une mauvaise optimisation du filtrage en place pour les colonnes Variant. [#96410](https://github.com/ClickHouse/ClickHouse/pull/96410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un crash dans `ifNull` avec un argument `Variant` utilisé dans `GROUP BY`. [#96790](https://github.com/ClickHouse/ClickHouse/pull/96790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une erreur logique dans `FunctionVariantAdaptor` avec des fonctions nécessitant des arguments constants, comme `arrayROCAUC`. [#97116](https://github.com/ClickHouse/ClickHouse/pull/97116) ([Bharat Nallan](https://github.com/bharatnc)).
  * Correction de `LOGICAL_ERROR` dans `FunctionVariantAdaptor` lorsqu’une fonction renvoyait le type `Nothing`. [#97213](https://github.com/ClickHouse/ClickHouse/pull/97213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une exception logique lors de la comparaison de NULL avec une colonne Variant contenant des types LowCardinality. [#97379](https://github.com/ClickHouse/ClickHouse/pull/97379) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `LOGICAL_ERROR` dans `concat` lorsqu’un argument contenait un type `Variant` avec `LowCardinality` à l’intérieur. [#97654](https://github.com/ClickHouse/ClickHouse/pull/97654) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de résultats incorrects lorsque des colonnes `LowCardinality` étaient converties en `Nullable`. [#96483](https://github.com/ClickHouse/ClickHouse/pull/96483) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Prise en charge correcte des types `LowCardinality Nullable` dans `CAST` lorsque `cast_keep_nullable` était activé. [#95747](https://github.com/ClickHouse/ClickHouse/pull/95747) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’exception `ColumnNullable is not compatible with original` lors de la conversion de types imbriqués complexes. [#96924](https://github.com/ClickHouse/ClickHouse/pull/96924) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `LOGICAL_ERROR` lors de l’utilisation de `isNull`/`isNotNull` sur les sous-colonnes de types `Nullable(Tuple(... Nullable(T) ...))`. [#97582](https://github.com/ClickHouse/ClickHouse/pull/97582) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `LOGICAL_ERROR` lors de la conversion d’Array en `QBit`. [#97413](https://github.com/ClickHouse/ClickHouse/pull/97413) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de `LOGICAL_ERROR` lors de la lecture simultanée d’une colonne sparse et de sa sous-colonne. [#97515](https://github.com/ClickHouse/ClickHouse/pull/97515) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de `LOGICAL_ERROR` lors de la lecture de la sous-colonne `.size` d’un `Nullable(String)` sparse dans un Tuple avec PREWHERE. [#97264](https://github.com/ClickHouse/ClickHouse/pull/97264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un échec d’assertion dans `Set` et `MergeTreeIndexSet` lors du traitement de colonnes comportant des sous-colonnes sparse internes. [#97493](https://github.com/ClickHouse/ClickHouse/pull/97493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’erreur potentielle `SIZES_OF_COLUMNS_DOESNT_MATCH` lors du tri d’une colonne Tuple vide. [#92520](https://github.com/ClickHouse/ClickHouse/pull/92520) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de bogues de décodage `DELTA_BYTE_ARRAY` dans le lecteur Parquet natif, affectant des données de chaînes très répétitives. [#91929](https://github.com/ClickHouse/ClickHouse/pull/91929) ([Daniel Muino](https://github.com/dmuino)).
  * Correction d’une assertion lors de la lecture d’un fichier Parquet lorsqu’une partie d’une expression PREWHERE était utilisée ailleurs dans la requête. [#90635](https://github.com/ClickHouse/ClickHouse/pull/90635) ([Max Kainov](https://github.com/maxknv)).
  * Correction de `LOGICAL_ERROR` dans le lecteur Parquet V3 natif lorsque la colonne de filtre PREWHERE contenait des valeurs UInt8 non booléennes. [#96594](https://github.com/ClickHouse/ClickHouse/pull/96594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’inférence de schéma Parquet dans l’ancien lecteur lorsqu’une colonne JSON suivait une colonne Tuple. [#92867](https://github.com/ClickHouse/ClickHouse/pull/92867) ([Michael Kolupaev](https://github.com/al13n321)).
  * Correction du schéma mis en cache pour tous les fichiers au lieu du seul fichier inféré lors de l’inférence de schéma avec glob. [#92006](https://github.com/ClickHouse/ClickHouse/pull/92006) ([Pavel Kruglov](https://github.com/Avogar)).
  * Correction de la lecture du format `ProtobufList` à partir de fichiers vides, qui produisait des enregistrements fantômes pour les tables vides. [#96007](https://github.com/ClickHouse/ClickHouse/pull/96007) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une régression du codec `Gorilla` lorsqu’une taille explicitement spécifiée ne correspondait pas à la taille du type de données. [#96118](https://github.com/ClickHouse/ClickHouse/pull/96118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Le moteur PostgreSQL peut désormais lire correctement `BOOLEAN[]`. [#96006](https://github.com/ClickHouse/ClickHouse/pull/96006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une erreur logique lors de la lecture d’une colonne UUID à partir d’une colonne SQLite TEXT. [#96016](https://github.com/ClickHouse/ClickHouse/pull/96016) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de la conversion de types du moteur SQLite pour `DateTime`, `Date`, `UUID` et d’autres types. [#96017](https://github.com/ClickHouse/ClickHouse/pull/96017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un échappement incorrect des valeurs `FixedString` dans les requêtes vers SQLite et PostgreSQL. [#96019](https://github.com/ClickHouse/ClickHouse/pull/96019) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Ajout du paramètre `input_format_numbers_enum_on_conversion_error` pour la conversion de nombres en enums. [#56240](https://github.com/ClickHouse/ClickHouse/pull/56240) ([Nikolay Degterinsky](https://github.com/evillique)).

  ### Corrections des index de texte et des index de saut

  * La création et la matérialisation des index de texte sur des tables comportant des parts de plus de 4 294 967 295 lignes sont temporairement désactivées afin d’éviter des résultats de requête incorrects. [#92644](https://github.com/ClickHouse/ClickHouse/pull/92644) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction de plusieurs crashs lors des merges d’index de texte dans les tables MergeTree. [#92925](https://github.com/ClickHouse/ClickHouse/pull/92925) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction des merges d’index de texte construits sur des expressions complexes (telles que `concat(col1, col2)`). [#93073](https://github.com/ClickHouse/ClickHouse/pull/93073) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction de l’analyse des index de texte sur des colonnes Array lorsque l’index ne contenait aucun token. [#93457](https://github.com/ClickHouse/ClickHouse/pull/93457) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction de la reconstruction des index de texte créés sur des sous-colonnes. [#93326](https://github.com/ClickHouse/ClickHouse/pull/93326) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction de la lecture directe depuis un index de texte avec des requêtes de recherche dupliquées. [#93516](https://github.com/ClickHouse/ClickHouse/pull/93516) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction d’incohérences dans l’analyse des index de texte pour les fonctions `has`, `mapContainsKey` et `mapContainsValue`, qui pouvaient renvoyer des résultats différents selon qu’un index de texte était utilisé ou non. [#93578](https://github.com/ClickHouse/ClickHouse/pull/93578) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction du calcul de la taille non compressée des index de texte dans `system.parts`. [#92832](https://github.com/ClickHouse/ClickHouse/pull/92832) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction des index `ngrambf_v1` avec une longueur de ngram > 8 qui levaient une exception. [#92672](https://github.com/ClickHouse/ClickHouse/pull/92672) ([Robert Schulze](https://github.com/rschu1ze)).
  * Correction de l’index `ngram_bf` sur des données non UTF-8, qui entraînait une lecture de mémoire non initialisée. [#93663](https://github.com/ClickHouse/ClickHouse/pull/93663) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un `stack-use-after-scope` dans l’index de similarité vectorielle. [#96259](https://github.com/ClickHouse/ClickHouse/pull/96259) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une erreur logique lorsqu’une expression de skip index produisait une colonne constante. [#96880](https://github.com/ClickHouse/ClickHouse/pull/96880) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un accès mémoire invalide lors de la création d’une table avec une expression vide `()` comme index. [#96363](https://github.com/ClickHouse/ClickHouse/pull/96363) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un use-after-free dans l’analyse des index avec `use_primary_key` désactivé et un très grand nombre de disjonctions. [#96112](https://github.com/ClickHouse/ClickHouse/pull/96112) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction de l’utilisation de l’index primaire dans les lightweight updates avec des sous-requêtes `IN` dans `WHERE`. [#92838](https://github.com/ClickHouse/ClickHouse/pull/92838) ([Anton Popov](https://github.com/CurtizJ)).
  * Utilisation du code d’erreur correct lors de la validation de l’index hypothesis. [#92559](https://github.com/ClickHouse/ClickHouse/pull/92559) ([Raúl Marín](https://github.com/Algunenano)).

  ### Correctifs du data lake

  * Correction d’un crash dans un cluster mono-nœud lors de la lecture depuis Iceberg en mode split-by-buckets. [#91553](https://github.com/ClickHouse/ClickHouse/pull/91553) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Correction du tuple ORDER BY dans Iceberg. [#93225](https://github.com/ClickHouse/ClickHouse/pull/93225) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Correction de la prise en charge des credentials Azure ADLS Gen2 fournis dans DataLakeCatalog — analyse des clés `adls.sas-token.*` à partir des catalogs REST Iceberg et correction de l’analyse des URL ABFSS. [#93477](https://github.com/ClickHouse/ClickHouse/pull/93477) ([Karun Anantharaman](https://github.com/karunmotorq)).
  * Remplacement de `Date` par `Date32` pour Iceberg. [#95322](https://github.com/ClickHouse/ClickHouse/pull/95322) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Correction d’un crash lié à ORDER BY dans Iceberg. [#96484](https://github.com/ClickHouse/ClickHouse/pull/96484) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Correction du partitionnement dans Iceberg. [#96620](https://github.com/ClickHouse/ClickHouse/pull/96620) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Correction de bornes incorrectes pour les data files lorsque la référence de suppression par position était NULL dans les entrées de manifeste Iceberg. [#96061](https://github.com/ClickHouse/ClickHouse/pull/96061) ([Daniil Ivanik](https://github.com/divanik)).
  * Ajout de vérifications supplémentaires pour le paramètre du fichier de métadonnées racine dans Iceberg. [#96754](https://github.com/ClickHouse/ClickHouse/pull/96754) ([Daniil Ivanik](https://github.com/divanik)).
  * Les credentials ne sont plus consignés dans les catalogs Iceberg. [#96831](https://github.com/ClickHouse/ClickHouse/pull/96831) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Correction du squashing des données Delta Lake partitionnées. [#95773](https://github.com/ClickHouse/ClickHouse/pull/95773) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d’un catalog de lac de données RESTful pour lequel un `auth_header` invalide cassait `system.tables`. [#96680](https://github.com/ClickHouse/ClickHouse/pull/96680) ([Han Fei](https://github.com/hanfei1991)).

  ### Correctifs S3/Azure/stockage objet

  * Correction du cache de la clé de partitionnement du moteur de table S3 en présence de fonctions non déterministes. [#92844](https://github.com/ClickHouse/ClickHouse/pull/92844) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Correction d’une assertion dans `ReadBufferFromS3` qui survenait lorsque le cache était activé. [#93809](https://github.com/ClickHouse/ClickHouse/pull/93809) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d’une erreur possible dans le thread de nettoyage de DiskObjectStorage. [#87411](https://github.com/ClickHouse/ClickHouse/pull/87411) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d’interblocages possibles dans `DiskObjectStorageTransaction`. [#93810](https://github.com/ClickHouse/ClickHouse/pull/93810) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction de défaillances possibles du thread de nettoyage de DiskObjectStorage lorsque de nombreuses erreurs survenaient. [#94048](https://github.com/ClickHouse/ClickHouse/pull/94048) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d’une data race dans `copyS3File` pour multipart\_tags. [#97227](https://github.com/ClickHouse/ClickHouse/pull/97227) ([Azat Khuzhin](https://github.com/azat)).
  * L’exécution d’une mutation `ALTER UPDATE` invalide sur des tables de type fichier sur stockage objet (S3, Azure) ne provoque plus de déréférencement d’un nullptr. [#96162](https://github.com/ClickHouse/ClickHouse/pull/96162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### Correctifs S3Queue

  * Correction de l’erreur `Failed to set file processing within 100 retries` en mode ordonné de S3Queue (elle est désormais signalée comme un avertissement). [#92814](https://github.com/ClickHouse/ClickHouse/pull/92814) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d’un bug lié au paramètre S3Queue `s3queue_migrate_old_metadata_to_buckets`. [#93232](https://github.com/ClickHouse/ClickHouse/pull/93232) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction des métadonnées pour les moteurs S3Queue/AzureQueue. [#90498](https://github.com/ClickHouse/ClickHouse/pull/90498) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d’un data race dans le stockage S3Queue/AzureQueue. [#95385](https://github.com/ClickHouse/ClickHouse/pull/95385) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction de la déduplication pour le streaming depuis le moteur S3Queue/AzureQueue. [#95467](https://github.com/ClickHouse/ClickHouse/pull/95467) ([Kseniia Sumarokova](https://github.com/kssenii)).

  ### Correctifs de sécurité et de contrôle d'accès

  * Correction d’un contrôle d’accès manquant dans `SYSTEM SYNC FILE CACHE`. [#92372](https://github.com/ClickHouse/ClickHouse/pull/92372) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d’une logique incorrecte dans les vérifications des droits d’accès pour les autorisations avec caractères génériques, qui était trop restrictive. [#92725](https://github.com/ClickHouse/ClickHouse/pull/92725) ([pufit](https://github.com/pufit)).
  * Empêche désormais les utilisateurs d’obtenir la liste des colonnes d’une table sans l’autorisation `SHOW COLUMNS` via le moteur de table `merge`. [#93695](https://github.com/ClickHouse/ClickHouse/pull/93695) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Correction d’une vulnérabilité de dépassement d’entier dans la désérialisation de l’état de `groupConcat`, qui pouvait entraîner des problèmes de sécurité mémoire. [#93426](https://github.com/ClickHouse/ClickHouse/pull/93426) ([Raufs Dunamalijevs](https://github.com/rienath)).
  * Vérification que la taille du tampon décompressé correspond bien à celle attendue. [#93690](https://github.com/ClickHouse/ClickHouse/pull/93690) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction de la révocation des rôles par défaut. [#96103](https://github.com/ClickHouse/ClickHouse/pull/96103) ([Vitaly Baranov](https://github.com/vitlibar)).
  * Correction de `AccessRights::contains`, qui renvoyait des résultats incorrects en cas de révocations partielles. [#96170](https://github.com/ClickHouse/ClickHouse/pull/96170) ([pufit](https://github.com/pufit)).
  * Correction de la mise à jour des politiques de lignes attribuées à l’utilisateur initial dans les requêtes distribuées. [#95469](https://github.com/ClickHouse/ClickHouse/pull/95469) ([Vitaly Baranov](https://github.com/vitlibar)).
  * L’argument de mot de passe de la fonction de table `redis` est désormais masqué dans les logs et les tables système. [#95325](https://github.com/ClickHouse/ClickHouse/pull/95325) ([Janos Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Correction d’une fuite mémoire des objets BIO lors de la lecture de certificats X509. [#96885](https://github.com/ClickHouse/ClickHouse/pull/96885) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Vérification de la witness version dans bech32 pour éviter un dépassement de tampon. [#96671](https://github.com/ClickHouse/ClickHouse/pull/96671) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction des lenteurs lors de l’interrogation des tables système avec un utilisateur disposant d’autorisations limitées sur de nombreuses bases de données. [#95874](https://github.com/ClickHouse/ClickHouse/pull/95874) ([pufit](https://github.com/pufit)).

  ### Correctifs de sauvegarde et de restauration

  * Correction de l’erreur `Couldn't pack tar archive: Failed to write all bytes`, causée par un en-tête de taille d’entrée d’archive incorrect. [#92122](https://github.com/ClickHouse/ClickHouse/pull/92122) ([Julia Kartseva](https://github.com/jkartseva)).
  * Correction d’un plantage du serveur lorsque de nombreuses sauvegardes concurrentes entraient en conflit sur les mêmes fichiers. [#93659](https://github.com/ClickHouse/ClickHouse/pull/93659) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un débordement de pile lors de la création de sauvegardes basées sur des archives (`.zip`, `.tzst`) sur un disque de stockage objet `plain_rewritable`. [#96872](https://github.com/ClickHouse/ClickHouse/pull/96872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un plantage du serveur lorsqu’une sauvegarde échouait à cause d’un disque plein ou d’autres erreurs d’E/S. [#96873](https://github.com/ClickHouse/ClickHouse/pull/96873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un segfault dans `StorageKeeperMap` lors de la sauvegarde, dû à un use-after-free. [#97336](https://github.com/ClickHouse/ClickHouse/pull/97336) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### Correctifs de crash et de stabilité

  * Correction d’un crash dû à la lecture depuis une `Connection` déconnectée. [#92807](https://github.com/ClickHouse/ClickHouse/pull/92807) ([Raufs Dunamalijevs](https://github.com/rienath)).
  * Correction d’un crash possible avec la fonction `tokens()` lorsque le deuxième argument est nul. [#92586](https://github.com/ClickHouse/ClickHouse/pull/92586) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction d’un crash du serveur lorsque `tokens` était appelé avec des paramètres de tokenizer non constants. [#93383](https://github.com/ClickHouse/ClickHouse/pull/93383) ([Robert Schulze](https://github.com/rschu1ze)).
  * Correction d’un crash potentiel dû à la mutation sur place des colonnes PREWHERE const sous-jacentes lors d’une réduction concurrente des colonnes ou d’un filtrage. [#92588](https://github.com/ClickHouse/ClickHouse/pull/92588) ([Arsen Muk](https://github.com/arsenmuk)).
  * Correction d’un blocage possible lors de l’arrêt du background schedule pool, qui pouvait entraîner des blocages du serveur à l’arrêt. [#93008](https://github.com/ClickHouse/ClickHouse/pull/93008) ([Azat Khuzhin](https://github.com/azat)).
  * Correction d’un problème laissant les connexions dans un état défectueux après l’annulation préliminaire de requêtes distribuées. [#93029](https://github.com/ClickHouse/ClickHouse/pull/93029) ([Azat Khuzhin](https://github.com/azat)).
  * Correction d’un possible `Cannot finalize buffer after cancellation` dans `estimateCompressionRatio()`. [#93068](https://github.com/ClickHouse/ClickHouse/pull/93068) ([Azat Khuzhin](https://github.com/azat)).
  * ZooKeeper est désormais finalisé à l’arrêt afin de corriger d’éventuels blocages. [#93602](https://github.com/ClickHouse/ClickHouse/pull/93602) ([Azat Khuzhin](https://github.com/azat)).
  * Correction d’une exception non interceptée lors du rechargement en arrière-plan des named collections avec le stockage ZooKeeper. [#92717](https://github.com/ClickHouse/ClickHouse/pull/92717) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Correction d’une utilisation d’une valeur non initialisée dans `ReadWriteBufferFromHTTP`. [#94058](https://github.com/ClickHouse/ClickHouse/pull/94058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction du fait que la taille du buffer de `TraceSender` n’était pas mise à jour, ce qui provoquait des flushes entrelacés depuis différents threads. [#93966](https://github.com/ClickHouse/ClickHouse/pull/93966) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Des pointeurs partagés vers le stockage ont été conservés dans `QueryPipeline` afin de garantir que les objets `IStorage` ne soient pas détruits tant que `PipelineExecutor` est actif. [#93746](https://github.com/ClickHouse/ClickHouse/pull/93746) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Correction d’un crash possible des requêtes distribuées en cas d’annulation. [#95466](https://github.com/ClickHouse/ClickHouse/pull/95466) ([Aleksandr Musorin](https://github.com/AVMusorin)).
  * Correction d’un crash sur `DROP WORKLOAD` lors d’une exécution concurrente avec des requêtes. [#95856](https://github.com/ClickHouse/ClickHouse/pull/95856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une compétition d’accès sur `DROP WORKLOAD`. [#96614](https://github.com/ClickHouse/ClickHouse/pull/96614) ([Sergei Trifonov](https://github.com/serxa)).
  * Correction de plusieurs bogues critiques liés à l’utilisation de `ThreadPoolCallbackRunnerLocal`. [#95818](https://github.com/ClickHouse/ClickHouse/pull/95818) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction d’un interblocage possible dans `ProcessList` dû à une inversion de verrous lorsque le memory overcommit tracker était déclenché. [#96182](https://github.com/ClickHouse/ClickHouse/pull/96182) ([Antonio Andelic](https://github.com/antonio2368)).
  * Correction d’un livelock dans le thread de vérification d’annulation pour les requêtes ayant un `max_execution_time` élevé. [#96450](https://github.com/ClickHouse/ClickHouse/pull/96450) ([Sergei Trifonov](https://github.com/serxa)).
  * Correction du blocage du thread de purge de MemoryWorker en raison d’une race condition. [#96819](https://github.com/ClickHouse/ClickHouse/pull/96819) ([Antonio Andelic](https://github.com/antonio2368)).
  * Correction d’un plantage dans `clearCaches` causé par la destruction prématurée d’instantanés de stockage mis en cache. [#96995](https://github.com/ClickHouse/ClickHouse/pull/96995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un `heap-use-after-free` dans `CREATE TABLE` avec des contraintes. [#96669](https://github.com/ClickHouse/ClickHouse/pull/96669) ([Nikita Taranov](https://github.com/nickitat)).
  * Correction d’un possible `use-after-free` dans `StorageKafka2`. [#97520](https://github.com/ClickHouse/ClickHouse/pull/97520) ([Bharat Nallan](https://github.com/bharatnc)).
  * Correction d’une possible data race sur `shutdown_called` dans `DatabaseMaterializedPostgreSQL`. [#97554](https://github.com/ClickHouse/ClickHouse/pull/97554) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’une race condition lors du chargement parallèle d’un dictionnaire `HASHED` segmenté, qui pouvait empêcher le chargement de certaines lignes. [#96953](https://github.com/ClickHouse/ClickHouse/pull/96953) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un interblocage dans les dictionnaires lorsqu’un dictionnaire référençait une table Merge qui le référençait récursivement. [#96120](https://github.com/ClickHouse/ClickHouse/pull/96120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Correction d’un accès hors limites dans `BaseSettings::readBinary` lorsqu’un serveur plus récent envoyait un paramètre inconnu pendant la désérialisation du plan de requête. [#97585](https://github.com/ClickHouse/ClickHouse/pull/97585) ([Michael Stetsyuk](https://github.com/mstetsyuk)).
  * Correction d’un plantage lors du rattachement d’une table à une base de données `MaterializedPostgreSQL` si `dropReplicationSlot` levait une exception pendant le déroulement de la pile. [#96871](https://github.com/ClickHouse/ClickHouse/pull/96871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Libération du flux de requête dans insert select afin d’éviter la fermeture de la connexion HTTP. [#92175](https://github.com/ClickHouse/ClickHouse/pull/92175) ([Sema Checherinda](https://github.com/CheSema)).
  * Correction d’un interblocage pour `SHOW CREATE DATABASE` avec la base de données Backup. [#92541](https://github.com/ClickHouse/ClickHouse/pull/92541) ([Azat Khuzhin](https://github.com/azat)).

  ### Autres corrections de bugs

  * Correction de la gestion des tableaux vides par `handleAllTokens` dans les fonctions `hasAllTokens` et `hasAnyTokens`. [#93328](https://github.com/ClickHouse/ClickHouse/pull/93328) ([Anton Popov](https://github.com/CurtizJ)).
  * Correction de la période des profileurs globaux — une valeur tronquée était utilisée au lieu de la valeur définie, ce qui provoquait des réveils plus fréquents. [#96048](https://github.com/ClickHouse/ClickHouse/pull/96048) ([Antonio Andelic](https://github.com/antonio2368)).
  * Correction de `event_date` dans `system.asynchronous_metric_log`. [#95947](https://github.com/ClickHouse/ClickHouse/pull/95947) ([Raúl Marín](https://github.com/Algunenano)).
  * Correction de `system.functions`, qui affichait une chaîne vide au lieu de `categories = 'Internal'` pour les fonctions internes. [#97315](https://github.com/ClickHouse/ClickHouse/pull/97315) ([Robert Schulze](https://github.com/rschu1ze)).
  * Correction d'une possible erreur logique dans le dictionnaire `ip_trie` lorsque le type de clé n'était pas String. [#97555](https://github.com/ClickHouse/ClickHouse/pull/97555) ([Bharat Nallan](https://github.com/bharatnc)).
  * Correction du débogage des UDF grâce à l'activation de la capture de stderr dans `system.query_log.exception`. [#92209](https://github.com/ClickHouse/ClickHouse/pull/92209) ([Xu Jia](https://github.com/XuJia0210)).
  * Correction de `filterPartsByVirtualColumns` pour les prédicats toujours faux. [#97620](https://github.com/ClickHouse/ClickHouse/pull/97620) ([Bharat Nallan](https://github.com/bharatnc)).
  * Correction de `ColumnConst`, qui n'était pas matérialisé avant le squashing. [#97019](https://github.com/ClickHouse/ClickHouse/pull/97019) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
</Accordion>
