> ## 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 2023

> Changelog de 2023

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

**[Version de ClickHouse v23.12, 2023-12-28](#2312)**<br />
**[Version de ClickHouse v23.11, 2023-12-06](#2311)**<br />
**[Version de ClickHouse v23.10, 2023-11-02](#2310)**<br />
**[Version de ClickHouse v23.9, 2023-09-28](#239)**<br />
**[Version de ClickHouse v23.8 LTS, 2023-08-31](#238)**<br />
**[Version de ClickHouse v23.7, 2023-07-27](#237)**<br />
**[Version de ClickHouse v23.6, 2023-06-30](#236)**<br />
**[Version de ClickHouse v23.5, 2023-06-08](#235)**<br />
**[Version de ClickHouse v23.4, 2023-04-26](#234)**<br />
**[Version de ClickHouse v23.3 LTS, 2023-03-30](#233)**<br />
**[Version de ClickHouse v23.2, 2023-02-23](#232)**<br />
**[Version de ClickHouse v23.1, 2023-01-25](#231)**<br />
**[Journal des modifications de 2022](/fr/resources/changelogs/oss/2022)**<br />

### <a id="2312" /> Version de ClickHouse 23.12, 2023-12-28. [Presentation](https://presentations.clickhouse.com/2023-release-23.12/), [Video](https://www.youtube.com/watch?v=7TLuT6gt0PQ)

<Frame>
  <iframe src="https://www.youtube.com/embed/7TLuT6gt0PQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Changement rétro-incompatible
</div>

* Correction de la validation des fonctions non déterministes dans les expressions TTL. Auparavant, il était possible, dans certains cas, de créer une expression TTL avec des fonctions non déterministes, ce qui pouvait ensuite entraîner un comportement indéfini. Cela corrige [#37250](https://github.com/ClickHouse/ClickHouse/issues/37250). Les expressions TTL qui ne dépendent d'aucune colonne d'une table sont désormais interdites par défaut. Il est possible de les réautoriser avec `SET allow_suspicious_ttl_expressions = 1` ou `SET compatibility = '23.11'`. Clôt [#37286](https://github.com/ClickHouse/ClickHouse/issues/37286). [#51858](https://github.com/ClickHouse/ClickHouse/pull/51858) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le paramètre MergeTree `clean_deleted_rows` est obsolète et n'a désormais plus aucun effet. Le mot-clé `CLEANUP` pour `OPTIMIZE` n'est pas autorisé par défaut (il peut être réactivé avec le paramètre `allow_experimental_replacing_merge_with_cleanup`). [#58267](https://github.com/ClickHouse/ClickHouse/pull/58267) ([Alexander Tokmakov](https://github.com/tavplubix)). Cela corrige [#57930](https://github.com/ClickHouse/ClickHouse/issues/57930). Cela clôt [#54988](https://github.com/ClickHouse/ClickHouse/issues/54988). Cela clôt [#54570](https://github.com/ClickHouse/ClickHouse/issues/54570). Cela clôt [#50346](https://github.com/ClickHouse/ClickHouse/issues/50346). Cela clôt [#47579](https://github.com/ClickHouse/ClickHouse/issues/47579). Cette fonctionnalité doit être supprimée, car elle n'est pas satisfaisante. Nous devons la retirer aussi rapidement que possible, car il n'existe pas d'autre solution. [#57932](https://github.com/ClickHouse/ClickHouse/pull/57932) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Ajout des Refreshable Materialized Views, demandées dans [#33919](https://github.com/ClickHouse/ClickHouse/issues/33919). [#56946](https://github.com/ClickHouse/ClickHouse/pull/56946) ([Michael Kolupaev](https://github.com/al13n321), [Michael Guzov](https://github.com/koloshmet)).
* Introduction de `PASTE JOIN`, qui permet de joindre des tables sans clause `ON`, simplement en se basant sur les numéros de ligne. Exemple : `SELECT * FROM (SELECT number AS a FROM numbers(2)) AS t1 PASTE JOIN (SELECT number AS a FROM numbers(2) ORDER BY a DESC) AS t2`. [#57995](https://github.com/ClickHouse/ClickHouse/pull/57995) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* La clause `ORDER BY` prend désormais en charge `ALL`, ce qui signifie que ClickHouse trie sur toutes les colonnes de la clause `SELECT`. Exemple : `SELECT col1, col2 FROM tab WHERE [...] ORDER BY ALL`. [#57875](https://github.com/ClickHouse/ClickHouse/pull/57875) ([zhongyuankai](https://github.com/zhongyuankai)).
* Ajout d'une nouvelle commande de mutation `ALTER TABLE <table> APPLY DELETED MASK`, qui permet de forcer l'application du masque écrit par lightweight delete et de supprimer du disque les lignes marquées comme supprimées. [#57433](https://github.com/ClickHouse/ClickHouse/pull/57433) ([Anton Popov](https://github.com/CurtizJ)).
* Le handler `/binary` ouvre une visionneuse visuelle des symboles du binaire ClickHouse. [#58211](https://github.com/ClickHouse/ClickHouse/pull/58211) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d'une nouvelle fonction SQL `sqid` pour générer des Sqids ([https://sqids.org/](https://sqids.org/)), exemple : `SELECT sqid(125, 126)`. [#57512](https://github.com/ClickHouse/ClickHouse/pull/57512) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout d'une nouvelle fonction `seriesPeriodDetectFFT` pour détecter la période d'une série à l'aide de la FFT. [#57574](https://github.com/ClickHouse/ClickHouse/pull/57574) ([Bhavna Jindal](https://github.com/bhavnajindal)).
* Ajout d'un point de terminaison HTTP permettant de vérifier si Keeper est prêt à accepter du trafic. [#55876](https://github.com/ClickHouse/ClickHouse/pull/55876) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ajout du mode 'union' pour l'inférence de schéma. Dans ce mode, le schéma de la table résultante est l'union des schémas de tous les fichiers (le schéma est donc inféré pour chaque fichier). Le mode d'inférence de schéma est contrôlé par le paramètre `schema_inference_mode`, qui accepte deux valeurs possibles : `default` et `union`. Résout [#55428](https://github.com/ClickHouse/ClickHouse/issues/55428). [#55892](https://github.com/ClickHouse/ClickHouse/pull/55892) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout du paramètre `input_format_csv_try_infer_numbers_from_strings`, qui permet d'inférer des nombres à partir de chaînes au format CSV. Résout [#56455](https://github.com/ClickHouse/ClickHouse/issues/56455). [#56859](https://github.com/ClickHouse/ClickHouse/pull/56859) ([Kruglov Pavel](https://github.com/Avogar)).
* Lorsque le nombre de bases de données ou de tables dépasse un seuil configurable, un avertissement est affiché à l'utilisateur. [#57375](https://github.com/ClickHouse/ClickHouse/pull/57375) ([凌涛](https://github.com/lingtaolf)).
* Un Dictionary avec la disposition `HASHED_ARRAY` (et `COMPLEX_KEY_HASHED_ARRAY`) prend en charge `SHARDS`, comme `HASHED`. [#57544](https://github.com/ClickHouse/ClickHouse/pull/57544) ([vdimir](https://github.com/vdimir)).
* Ajout de métriques asynchrones pour le nombre total d'octets de clé primaire et le nombre total d'octets de clé primaire alloués en mémoire. [#57551](https://github.com/ClickHouse/ClickHouse/pull/57551) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la fonction `SHA512_256`. [#57645](https://github.com/ClickHouse/ClickHouse/pull/57645) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajoute `FORMAT_BYTES` comme alias de `formatReadableSize`. [#57592](https://github.com/ClickHouse/ClickHouse/pull/57592) ([Bharat Nallan](https://github.com/bharatnc)).
* Permet de transmettre un token de session facultatif à la table function `s3`. [#57850](https://github.com/ClickHouse/ClickHouse/pull/57850) ([Shani Elharrar](https://github.com/shanielh)).
* Introduit un nouveau paramètre `http_make_head_request`. S'il est désactivé, le moteur de table URL n'effectuera pas de requête HEAD pour déterminer la taille du fichier. Cela est nécessaire pour prendre en charge des serveurs HTTP inefficaces, mal configurés ou incapables de le faire. [#54602](https://github.com/ClickHouse/ClickHouse/pull/54602) ([Fionera](https://github.com/fionera)).
* Il est désormais possible de référencer une colonne ALIAS dans les définitions d'index (hors clé primaire) (issue [#55650](https://github.com/ClickHouse/ClickHouse/issues/55650)). Exemple : `CREATE TABLE tab(col UInt32, col_alias ALIAS col + 1, INDEX idx (col_alias) TYPE minmax) ENGINE = MergeTree ORDER BY col;`. [#57546](https://github.com/ClickHouse/ClickHouse/pull/57546) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout d'un nouveau paramètre `readonly`, qui permet d'indiquer qu'un disque S3 est en lecture seule. Cela peut être utile pour créer une table sur un disque de type `s3_plain`, tout en n'ayant qu'un accès en lecture seule au S3 bucket sous-jacent. [#57977](https://github.com/ClickHouse/ClickHouse/pull/57977) ([Pengyuan Bian](https://github.com/bianpengyuan)).
* L'analyse de la clé primaire dans les tables MergeTree sera désormais appliquée aux prédicats qui incluent la colonne virtuelle `_part_offset` (éventuellement avec `_part`). Cette fonctionnalité peut servir de forme particulière d'index secondaire. [#58224](https://github.com/ClickHouse/ClickHouse/pull/58224) ([Amos Bird](https://github.com/amosbird)).

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

* Extrait les plages de parts non intersectantes d'une table MergeTree lors du traitement FINAL. Cela permet d'éviter une logique FINAL supplémentaire pour ces plages de parts non intersectantes. Lorsque le nombre de valeurs dupliquées avec la même clé primaire est faible, les performances sont presque identiques à celles obtenues sans FINAL. Améliore les performances de lecture de MergeTree FINAL lorsque le paramètre `do_not_merge_across_partitions_select_final` est défini. [#58120](https://github.com/ClickHouse/ClickHouse/pull/58120) ([Maksim Kita](https://github.com/kitaisreal)).
* La copie entre disques S3 s'effectue désormais via une copie S3 côté serveur au lieu d'un passage par le buffer. Cela améliore les opérations `BACKUP/RESTORE` ainsi que la commande `clickhouse-disks copy`. [#56744](https://github.com/ClickHouse/ClickHouse/pull/56744) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Le hash JOIN respecte le paramètre `max_joined_block_size_rows` et ne produit pas de gros blocks pour `ALL JOIN`. [#56996](https://github.com/ClickHouse/ClickHouse/pull/56996) ([vdimir](https://github.com/vdimir)).
* Libère plus tôt la mémoire utilisée pour l'aggregation. Cela peut éviter une external aggregation inutile. [#57691](https://github.com/ClickHouse/ClickHouse/pull/57691) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Améliore les performances de la serialization des chaînes. [#57717](https://github.com/ClickHouse/ClickHouse/pull/57717) ([Maksim Kita](https://github.com/kitaisreal)).
* Prend en charge l'optimisation triviale de `count` pour les tables utilisant le moteur `Merge`. [#57867](https://github.com/ClickHouse/ClickHouse/pull/57867) ([skyoct](https://github.com/skyoct)).
* Optimise l'aggregation dans certains cas. [#57872](https://github.com/ClickHouse/ClickHouse/pull/57872) ([Anton Popov](https://github.com/CurtizJ)).
* La fonction `hasAny` peut désormais tirer parti des skipping indices en texte intégral. [#57878](https://github.com/ClickHouse/ClickHouse/pull/57878) ([Jpnock](https://github.com/Jpnock)).
* La fonction `if(cond, then, else)` (et son alias `cond ? then : else`) a été optimisée pour utiliser une évaluation sans branchement. [#57885](https://github.com/ClickHouse/ClickHouse/pull/57885) ([zhanglistar](https://github.com/zhanglistar)).
* MergeTree déduit automatiquement le paramètre `do_not_merge_across_partitions_select_final` si l'expression de clé de partition ne contient que des colonnes de l'expression de clé primaire. [#58218](https://github.com/ClickHouse/ClickHouse/pull/58218) ([Maksim Kita](https://github.com/kitaisreal)).
* Accélère `MIN` et `MAX` pour les types natifs. [#58231](https://github.com/ClickHouse/ClickHouse/pull/58231) ([Raúl Marín](https://github.com/Algunenano)).
* Implémente la cache policy `SLRU` pour le filesystem cache. [#57076](https://github.com/ClickHouse/ClickHouse/pull/57076) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La limite du nombre de connections par endpoint pour les background fetches a été augmentée de `15` à la valeur du paramètre `background_fetches_pool_size`. - Le paramètre de niveau MergeTree `replicated_max_parallel_fetches_for_host` est devenu Obsolete - Les paramètres de niveau MergeTree `replicated_fetches_http_connection_timeout`, `replicated_fetches_http_send_timeout` et `replicated_fetches_http_receive_timeout` ont été déplacés au niveau Server. - Le paramètre `keep_alive_timeout` a été ajouté à la liste des paramètres de niveau Server. [#57523](https://github.com/ClickHouse/ClickHouse/pull/57523) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Rend les requêtes sur `system.filesystem_cache` moins gourmandes en mémoire. [#57687](https://github.com/ClickHouse/ClickHouse/pull/57687) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Réduit l'utilisation mémoire lors de la deserialization des chaînes. [#57787](https://github.com/ClickHouse/ClickHouse/pull/57787) ([Maksim Kita](https://github.com/kitaisreal)).
* Constructeur plus efficace pour Enum — utile lorsqu'un Enum contient un très grand nombre de valeurs. [#57887](https://github.com/ClickHouse/ClickHouse/pull/57887) ([Duc Canh Le](https://github.com/canhld94)).
* Une amélioration de la lecture depuis le cache du système de fichiers : toujours utiliser la méthode `pread`. [#57970](https://github.com/ClickHouse/ClickHouse/pull/57970) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout d'une optimisation de la chaîne AND notEquals dans l'optimiseur d'expressions logiques. Cette optimisation n'est disponible que lorsque l'Analyzer expérimental est activé. [#58214](https://github.com/ClickHouse/ClickHouse/pull/58214) ([Kevin Mingtarja](https://github.com/kevinmingtarja)).

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

* Prise en charge de la limite mémoire souple dans Keeper. Les requêtes seront refusées si l’utilisation de la mémoire approche du maximum. [#57271](https://github.com/ClickHouse/ClickHouse/pull/57271) ([Han Fei](https://github.com/hanfei1991)). [#57699](https://github.com/ClickHouse/ClickHouse/pull/57699) ([Han Fei](https://github.com/hanfei1991)).
* Les insertions dans les tables distribuées gèrent désormais correctement les mises à jour de la configuration du cluster. Lorsque la liste des nœuds du cluster est mise à jour dynamiquement, le Directory Monitor de la table distribuée met à jour cette liste. [#42826](https://github.com/ClickHouse/ClickHouse/pull/42826) ([zhongyuankai](https://github.com/zhongyuankai)).
* N’autorise pas la création d’une table répliquée avec des paramètres de fusion incohérents. [#56833](https://github.com/ClickHouse/ClickHouse/pull/56833) ([Duc Canh Le](https://github.com/canhld94)).
* Affiche la taille non compressée dans `system.tables`. [#56618](https://github.com/ClickHouse/ClickHouse/issues/56618). [#57186](https://github.com/ClickHouse/ClickHouse/pull/57186) ([Chen Lixiang](https://github.com/chenlx0)).
* Ajoute `skip_unavailable_shards` comme paramètre pour les tables `Distributed`, à l’image du paramètre correspondant au niveau de la requête. Résout [#43666](https://github.com/ClickHouse/ClickHouse/issues/43666). [#57218](https://github.com/ClickHouse/ClickHouse/pull/57218) ([Gagan Goel](https://github.com/tntnatbry)).
* La fonction `substring` (alias : `substr`, `mid`) peut désormais être utilisée avec les types `Enum`. Auparavant, le premier argument de la fonction devait être une valeur de type `String` ou `FixedString`. Cela améliore la compatibilité avec des outils tiers comme Tableau via l’interface MySQL. [#57277](https://github.com/ClickHouse/ClickHouse/pull/57277) ([Serge Klochkov](https://github.com/slvrtrn)).
* La fonction `format` prend désormais en charge des arguments de tout type (au lieu des seuls arguments `String` et `FixedString`). C’est important pour évaluer `SELECT format('The {0} to all questions is {1}', 'answer', 42)`. [#57549](https://github.com/ClickHouse/ClickHouse/pull/57549) ([Robert Schulze](https://github.com/rschu1ze)).
* Permet désormais d’utiliser la fonction `date_trunc` avec un premier argument insensible à la casse. Les deux variantes sont maintenant prises en charge : `SELECT date_trunc('day', now())` et `SELECT date_trunc('DAY', now())`. [#57624](https://github.com/ClickHouse/ClickHouse/pull/57624) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Messages plus utiles lorsqu’une table n'existe pas. [#57342](https://github.com/ClickHouse/ClickHouse/pull/57342) ([Bharat Nallan](https://github.com/bharatnc)).
* Autorise le remplacement des paramètres du serveur `max_partition_size_to_drop` et `max_table_size_to_drop` au moment de la requête. [#57452](https://github.com/ClickHouse/ClickHouse/pull/57452) ([Jordi Villar](https://github.com/jrdi)).
* Inférence légèrement améliorée des tuples non nommés dans les formats JSON. [#57751](https://github.com/ClickHouse/ClickHouse/pull/57751) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute la prise en charge de l’indicateur read-only lors de la connexion à Keeper (corrige [#53749](https://github.com/ClickHouse/ClickHouse/issues/53749)). [#57479](https://github.com/ClickHouse/ClickHouse/pull/57479) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Corrige des envois distribués pouvant rester bloqués à cause de "No such file or directory" (lors de la récupération d’un lot depuis le disque). Corrige aussi d’éventuels problèmes avec `error_count` dans `system.distribution_queue` (dans le cas de `distributed_directory_monitor_max_sleep_time_ms` >5min). Introduit un événement de profil pour suivre les échecs d’INSERT asynchrones : `DistributedAsyncInsertionFailures`. [#57480](https://github.com/ClickHouse/ClickHouse/pull/57480) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge des generated columns de PostgreSQL et des valeurs par défaut des colonnes dans `MaterializedPostgreSQL` (fonctionnalité expérimentale). Corrige [#40449](https://github.com/ClickHouse/ClickHouse/issues/40449). [#57568](https://github.com/ClickHouse/ClickHouse/pull/57568) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permet d’appliquer certaines modifications des paramètres de configuration du cache du système de fichiers sans redémarrer le serveur. [#57578](https://github.com/ClickHouse/ClickHouse/pull/57578) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Gestion correcte de la structure d’une table PostgreSQL avec un tableau vide. [#57618](https://github.com/ClickHouse/ClickHouse/pull/57618) ([Mike Kot](https://github.com/myrrc)).
* Expose le nombre total d’erreurs survenues depuis le dernier redémarrage du serveur en tant que métrique `ClickHouseErrorMetric_ALL`. [#57627](https://github.com/ClickHouse/ClickHouse/pull/57627) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Autorise les nœuds dans le fichier de configuration avec une référence `from_env`/`from_zk` et un élément non vide avec replace=1. [#57628](https://github.com/ClickHouse/ClickHouse/pull/57628) ([Azat Khuzhin](https://github.com/azat)).
* Ajoute une table function `fuzzJSON` qui permet de générer de grandes quantités de JSON malformé pour le fuzzing. [#57646](https://github.com/ClickHouse/ClickHouse/pull/57646) ([Julia Kartseva](https://github.com/jkartseva)).
* Autorise la conversion d’IPv6 en UInt128 ainsi que l’arithmétique binaire. [#57707](https://github.com/ClickHouse/ClickHouse/pull/57707) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajoute un paramètre pour `async inserts deduplication cache` afin de définir combien de temps attendre avant la mise à jour du cache. Déprécie le paramètre `async_block_ids_cache_min_update_interval_ms`. Désormais, le cache n’est mis à jour qu’en cas de conflits. [#57743](https://github.com/ClickHouse/ClickHouse/pull/57743) ([alesapin](https://github.com/alesapin)).
* La fonction `sleep()` peut désormais être annulée avec `KILL QUERY`. [#57746](https://github.com/ClickHouse/ClickHouse/pull/57746) ([Vitaly Baranov](https://github.com/vitlibar)).
* Interdit les requêtes `CREATE TABLE ... AS SELECT` pour les table engines `Replicated` dans la base de données expérimentale `Replicated`, car elles ne sont pas prises en charge. Référence [#35408](https://github.com/ClickHouse/ClickHouse/issues/35408). [#57796](https://github.com/ClickHouse/ClickHouse/pull/57796) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige et améliore la transformation des requêtes pour les bases de données externes afin d’obtenir récursivement tous les prédicats compatibles. [#57888](https://github.com/ClickHouse/ClickHouse/pull/57888) ([flynn](https://github.com/ucasfl)).
* Prise en charge du rechargement dynamique de la taille du cache du système de fichiers. Corrige [#57866](https://github.com/ClickHouse/ClickHouse/issues/57866). [#57897](https://github.com/ClickHouse/ClickHouse/pull/57897) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prend correctement en charge `system.stack_trace` pour les threads où SIGRTMIN est bloqué (ces threads peuvent exister dans des bibliothèques externes de mauvaise qualité telles qu’Apache rdkafka). [#57907](https://github.com/ClickHouse/ClickHouse/pull/57907) ([Azat Khuzhin](https://github.com/azat)). Envoie également un signal aux threads uniquement s’il n’est pas bloqué afin d’éviter d’attendre `storage_system_stack_trace_pipe_read_timeout_ms` lorsque cela n’a aucun sens. [#58136](https://github.com/ClickHouse/ClickHouse/pull/58136) ([Azat Khuzhin](https://github.com/azat)).
* Tolère les défaillances de Keeper lors de la vérification des quorum inserts. [#57986](https://github.com/ClickHouse/ClickHouse/pull/57986) ([Raúl Marín](https://github.com/Algunenano)).
* Ajoute le RSS maximal/de crête (`MemoryResidentMax`) dans system.asynchronous\_metrics. [#58095](https://github.com/ClickHouse/ClickHouse/pull/58095) ([Azat Khuzhin](https://github.com/azat)).
* Cette PR permet d’utiliser des liens de type S3 (`https://` et `s3://`) sans préciser la région lorsqu’il ne s’agit pas de la région par défaut. Elle détecte également la région correcte si l’utilisateur a indiqué une région erronée. [#58148](https://github.com/ClickHouse/ClickHouse/pull/58148) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `clickhouse-format --obfuscate` saura reconnaître Settings, MergeTreeSettings et les fuseaux horaires, et conservera leurs noms inchangés. [#58179](https://github.com/ClickHouse/ClickHouse/pull/58179) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’une fonction explicite `finalize()` dans `ZipArchiveWriter`. Simplification d’un code trop complexe dans `ZipArchiveWriter`. Cela corrige [#58074](https://github.com/ClickHouse/ClickHouse/issues/58074). [#58202](https://github.com/ClickHouse/ClickHouse/pull/58202) ([Vitaly Baranov](https://github.com/vitlibar)).
* Les caches ayant le même chemin utilisent désormais les mêmes objets de cache. Ce comportement existait auparavant, mais a été cassé dans la version 23.4. Si de tels caches avec le même chemin ont des ensembles différents de paramètres de cache, une exception sera levée pour indiquer que cela n’est pas autorisé. [#58264](https://github.com/ClickHouse/ClickHouse/pull/58264) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Répliques parallèles (fonctionnalité expérimentale) : paramètres plus conviviaux [#57542](https://github.com/ClickHouse/ClickHouse/pull/57542) ([Igor Nikonov](https://github.com/devcrafter)).
* Répliques parallèles (fonctionnalité expérimentale) : amélioration de la gestion des réponses aux annonces [#57749](https://github.com/ClickHouse/ClickHouse/pull/57749) ([Igor Nikonov](https://github.com/devcrafter)).
* Répliques parallèles (fonctionnalité expérimentale) : meilleure prise en compte de `min_number_of_marks` dans `ParallelReplicasReadingCoordinator` [#57763](https://github.com/ClickHouse/ClickHouse/pull/57763) ([Nikita Taranov](https://github.com/nickitat)).
* Répliques parallèles (fonctionnalité expérimentale) : désactivation des répliques parallèles avec IN (sous-requête) [#58133](https://github.com/ClickHouse/ClickHouse/pull/58133) ([Igor Nikonov](https://github.com/devcrafter)).
* Répliques parallèles (fonctionnalité expérimentale) : ajout de l’événement de profil 'ParallelReplicasUsedCount' [#58173](https://github.com/ClickHouse/ClickHouse/pull/58173) ([Igor Nikonov](https://github.com/devcrafter)).
* Les requêtes autres que POST, comme HEAD, seront en `readonly`, comme GET. [#58060](https://github.com/ClickHouse/ClickHouse/pull/58060) ([San](https://github.com/santrancisco)).
* Ajout de la colonne `bytes_uncompressed` à `system.part_log` [#58167](https://github.com/ClickHouse/ClickHouse/pull/58167) ([Jordi Villar](https://github.com/jrdi)).
* Ajout du nom de la sauvegarde de base aux tables `system.backups` et `system.backup_log` [#58178](https://github.com/ClickHouse/ClickHouse/pull/58178) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Ajout de la prise en charge de la spécification des paramètres de requête sur la ligne de commande dans clickhouse-local [#58210](https://github.com/ClickHouse/ClickHouse/pull/58210) ([Pradeep Chhetri](https://github.com/chhetripradeep)).

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

* Randomiser davantage de paramètres [#39663](https://github.com/ClickHouse/ClickHouse/pull/39663) ([Anton Popov](https://github.com/CurtizJ)).
* Randomiser les optimisations désactivées dans la CI [#57315](https://github.com/ClickHouse/ClickHouse/pull/57315) ([Raúl Marín](https://github.com/Algunenano)).
* Autoriser l'utilisation, sur macOS, des moteurs de table et fonctions liés à Azure. [#51866](https://github.com/ClickHouse/ClickHouse/pull/51866) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* ClickHouse Fast Test utilise désormais Musl au lieu de GLibc. [#57711](https://github.com/ClickHouse/ClickHouse/pull/57711) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Le build Musl entièrement statique est disponible au téléchargement depuis la CI.
* Exécuter ClickBench pour chaque commit. Cela résout [#57708](https://github.com/ClickHouse/ClickHouse/issues/57708). [#57712](https://github.com/ClickHouse/ClickHouse/pull/57712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Supprimer des bibliothèques externes l'utilisation de la fonction C/POSIX `select`, jugée nuisible. [#57467](https://github.com/ClickHouse/ClickHouse/pull/57467) ([Igor Nikonov](https://github.com/devcrafter)).
* Par souci de commodité, les paramètres disponibles uniquement dans ClickHouse Cloud seront également présents dans le build open-source de ClickHouse. [#57638](https://github.com/ClickHouse/ClickHouse/pull/57638) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Correction d’un risque de rupture de l’ordre de tri dans TTL GROUP BY [#49103](https://github.com/ClickHouse/ClickHouse/pull/49103) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correctif : scission de la stratégie de bucket `lttb` ; le premier et le dernier bucket ne doivent contenir qu’un seul point [#57003](https://github.com/ClickHouse/ClickHouse/pull/57003) ([FFish](https://github.com/wxybear)).
* Correction d’un interblocage possible dans le format `Template` pendant la synchronisation après une erreur [#57004](https://github.com/ClickHouse/ClickHouse/pull/57004) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un arrêt prématuré lors de l’analyse d’un fichier avec saut de nombreuses erreurs [#57006](https://github.com/ClickHouse/ClickHouse/pull/57006) ([Kruglov Pavel](https://github.com/Avogar)).
* Empêche le contournement de l’ACL du dictionnaire via la table function `dictionary` [#57362](https://github.com/ClickHouse/ClickHouse/pull/57362) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Correction d’un autre cas d’erreur "non-ready set" découvert par le Fuzzer. [#57423](https://github.com/ClickHouse/ClickHouse/pull/57423) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de plusieurs problèmes liés à l’utilisation de `array_ndims` dans PostgreSQL. [#57436](https://github.com/ClickHouse/ClickHouse/pull/57436) ([Ryan Jacobs](https://github.com/ryanmjacobs)).
* Correction d’une incohérence de RWLock après le timeout d’un verrou d’écriture [#57454](https://github.com/ClickHouse/ClickHouse/pull/57454) ([Vitaly Baranov](https://github.com/vitlibar)). Correction d’une incohérence de RWLock après le timeout d’un verrou d’écriture (encore) [#57733](https://github.com/ClickHouse/ClickHouse/pull/57733) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correctif : ne pas exclure la colonne éphémère lors de la construction de la chaîne de poussée vers une vue [#57461](https://github.com/ClickHouse/ClickHouse/pull/57461) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* MaterializedPostgreSQL (problème expérimental) : corrige le problème [#41922](https://github.com/ClickHouse/ClickHouse/issues/41922), ajoute un test pour [#41923](https://github.com/ClickHouse/ClickHouse/issues/41923) [#57515](https://github.com/ClickHouse/ClickHouse/pull/57515) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignorer la clause ON CLUSTER dans les requêtes grant/revoke pour la gestion des entités d’accès répliquées.  [#57538](https://github.com/ClickHouse/ClickHouse/pull/57538) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Correction d’un crash dans clickhouse-local [#57553](https://github.com/ClickHouse/ClickHouse/pull/57553) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correctif pour Hash JOIN. [#57564](https://github.com/ClickHouse/ClickHouse/pull/57564) ([vdimir](https://github.com/vdimir)).
* Correction d’une erreur possible dans la source PostgreSQL [#57567](https://github.com/ClickHouse/ClickHouse/pull/57567) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction du type dans Hash JOIN pour LowCardinality imbriqué. [#57614](https://github.com/ClickHouse/ClickHouse/pull/57614) ([vdimir](https://github.com/vdimir)).
* Évite les blocages de `system.stack_trace` en interdisant correctement sa lecture parallèle. [#57641](https://github.com/ClickHouse/ClickHouse/pull/57641) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une erreur lors de l’agrégation de colonnes creuses avec `any(...) RESPECT NULL` [#57710](https://github.com/ClickHouse/ClickHouse/pull/57710) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’analyse syntaxique des opérateurs unaires [#57713](https://github.com/ClickHouse/ClickHouse/pull/57713) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige le chargement des dépendances pour le moteur de table expérimental `MaterializedPostgreSQL`. [#57754](https://github.com/ClickHouse/ClickHouse/pull/57754) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige les tentatives de reprise pour les nœuds déconnectés avec BACKUP/RESTORE ON CLUSTER [#57764](https://github.com/ClickHouse/ClickHouse/pull/57764) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige le résultat de l'agrégation externe dans le cas d'une projection partiellement matérialisée [#57790](https://github.com/ClickHouse/ClickHouse/pull/57790) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige la fusion dans les fonctions d'agrégation avec le combinateur `*Map` [#57795](https://github.com/ClickHouse/ClickHouse/pull/57795) ([Anton Popov](https://github.com/CurtizJ)).
* Désactive `system.kafka_consumers` car il comporte un bogue. [#57822](https://github.com/ClickHouse/ClickHouse/pull/57822) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la prise en charge des clés LowCardinality dans Merge JOIN. [#57827](https://github.com/ClickHouse/ClickHouse/pull/57827) ([vdimir](https://github.com/vdimir)).
* Correctif pour `InterpreterCreateQuery` lié au bloc d'échantillon. [#57855](https://github.com/ClickHouse/ClickHouse/pull/57855) ([Maksim Kita](https://github.com/kitaisreal)).
* `addresses_expr` était ignoré pour les collections nommées provenant de PostgreSQL. [#57874](https://github.com/ClickHouse/ClickHouse/pull/57874) ([joelynch](https://github.com/joelynch)).
* Corrige un accès mémoire invalide dans BLAKE3 (Rust) [#57876](https://github.com/ClickHouse/ClickHouse/pull/57876) ([Raúl Marín](https://github.com/Algunenano)). Il a ensuite été réécrit de Rust vers C++ pour une meilleure [sécurité mémoire](https://www.memorysafety.org/). [#57994](https://github.com/ClickHouse/ClickHouse/pull/57994) ([Raúl Marín](https://github.com/Algunenano)).
* Normalise les noms de fonction dans `CREATE INDEX` [#57906](https://github.com/ClickHouse/ClickHouse/pull/57906) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige la gestion des répliques indisponibles avant l'arrivée de la première requête [#57933](https://github.com/ClickHouse/ClickHouse/pull/57933) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige une mauvaise classification des alias littéraux [#57988](https://github.com/ClickHouse/ClickHouse/pull/57988) ([Chen768959](https://github.com/Chen768959)).
* Corrige un prétraitement invalide sur Keeper [#58069](https://github.com/ClickHouse/ClickHouse/pull/58069) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un dépassement d'entier dans la bibliothèque `Poco`, lié à `UTF32Encoding` [#58073](https://github.com/ClickHouse/ClickHouse/pull/58073) ([Andrey Fedotov](https://github.com/anfedotoff)).
* Corrige les répliques parallèles (fonctionnalité expérimentale) en présence d'une sous-requête scalaire avec une grande valeur entière [#58118](https://github.com/ClickHouse/ClickHouse/pull/58118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `accurateCastOrNull` pour les valeurs `DateTime` hors plage [#58139](https://github.com/ClickHouse/ClickHouse/pull/58139) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrige une possible erreur `PARAMETER_OUT_OF_BOUND` lors de la lecture des sous-colonnes depuis une Wide part dans MergeTree [#58175](https://github.com/ClickHouse/ClickHouse/pull/58175) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un ralentissement de CREATE VIEW avec un très grand nombre de sous-requêtes [#58220](https://github.com/ClickHouse/ClickHouse/pull/58220) ([Tao Wang](https://github.com/wangtZJU)).
* Correction du parsing parallèle de JSONCompactEachRow [#58181](https://github.com/ClickHouse/ClickHouse/pull/58181) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#58250](https://github.com/ClickHouse/ClickHouse/pull/58250) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="2311" /> Version de ClickHouse 23.11, 2023-12-06. [Présentation](https://presentations.clickhouse.com/2023-release-23.11/), [Vidéo](https://www.youtube.com/watch?v=1HJdjOH4Eis)

<Frame>
  <iframe src="https://www.youtube.com/embed/1HJdjOH4Eis" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Changement rétro-incompatible
</div>

* Le fichier de configuration par défaut du serveur ClickHouse active désormais `access_management` (gestion des utilisateurs via des requêtes SQL) et `named_collection_control` (gestion des collections nommées via des requêtes SQL) pour l'utilisateur `default`. Cela clôt [#56482](https://github.com/ClickHouse/ClickHouse/issues/56482). [#56619](https://github.com/ClickHouse/ClickHouse/pull/56619) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Plusieurs améliorations ont été apportées à `RESPECT NULLS`/`IGNORE NULLS` pour les fonctions de fenêtre. Si vous les utilisez comme fonctions d'agrégation et stockez les états d'agrégation de fonctions avec ces modificateurs, ils peuvent devenir incompatibles. [#57189](https://github.com/ClickHouse/ClickHouse/pull/57189) ([Raúl Marín](https://github.com/Algunenano)).
* Suppression de l'optimisation `optimize_move_functions_out_of_any`. [#57190](https://github.com/ClickHouse/ClickHouse/pull/57190) ([Raúl Marín](https://github.com/Algunenano)).
* Les formatters `%l`/`%k`/`%c` de la fonction `parseDateTime` peuvent désormais analyser des heures/mois sans zéro initial, par ex. `select parseDateTime('2023-11-26 8:14', '%F %k:%i')` fonctionne maintenant. Définissez `parsedatetime_parse_without_leading_zeros = 0` pour restaurer le comportement précédent, qui exigeait deux chiffres. La fonction `formatDateTime` peut désormais également afficher des heures/mois sans zéro initial. Ce comportement est contrôlé par le paramètre `formatdatetime_format_without_leading_zeros`, mais il reste désactivé par défaut afin de ne pas casser les cas d'usage existants. [#55872](https://github.com/ClickHouse/ClickHouse/pull/55872) ([Azat Khuzhin](https://github.com/azat)).
* Vous ne pouvez plus utiliser la fonction d'agrégation `avgWeighted` avec des arguments de type `Decimal`. Solution de contournement : convertissez les arguments en `Float64`. Cela clôt [#43928](https://github.com/ClickHouse/ClickHouse/issues/43928). Cela clôt [#31768](https://github.com/ClickHouse/ClickHouse/issues/31768). Cela clôt [#56435](https://github.com/ClickHouse/ClickHouse/issues/56435). Si vous avez utilisé cette fonction dans des vues matérialisées ou des projections avec des arguments `Decimal`, contactez [support@clickhouse.com](mailto:support@clickhouse.com). Correction d'une erreur dans la fonction d'agrégation `sumMap`, avec pour effet de la ralentir d'environ 1,5 à 2 fois. Cela n'a pas d'importance, car cette fonction est de toute façon mauvaise. Cela clôt [#54955](https://github.com/ClickHouse/ClickHouse/issues/54955). Cela clôt [#53134](https://github.com/ClickHouse/ClickHouse/issues/53134). Cela clôt [#55148](https://github.com/ClickHouse/ClickHouse/issues/55148). Correction d'un bug dans la fonction `groupArraySample` : elle utilisait la même graine aléatoire lorsqu'une requête générait plus d'un état d'agrégation. [#56350](https://github.com/ClickHouse/ClickHouse/pull/56350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Ajout du paramètre serveur `async_load_databases` pour le chargement asynchrone des bases de données et des tables. Accélère le démarrage du serveur. S’applique aux bases de données utilisant les moteurs `Ordinary`, `Atomic` et `Replicated`. Leurs tables chargent les métadonnées de manière asynchrone. Une requête sur une table augmente la priorité de la tâche de chargement et attend qu’elle soit terminée. Ajout d’une nouvelle table `system.asynchronous_loader` pour l’introspection. [#49351](https://github.com/ClickHouse/ClickHouse/pull/49351) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout de la table système `blob_storage_log`. Elle permet d’auditer toutes les données écrites dans S3 et d’autres stockages objet. [#52918](https://github.com/ClickHouse/ClickHouse/pull/52918) ([vdimir](https://github.com/vdimir)).
* Utilise des statistiques pour mieux ordonner les conditions `prewhere`. [#53240](https://github.com/ClickHouse/ClickHouse/pull/53240) ([Han Fei](https://github.com/hanfei1991)).
* Ajout de la prise en charge de la compression dans le protocole de Keeper. Elle peut être activée côté ClickHouse à l’aide de l’indicateur `use_compression` dans la section `zookeeper`. Gardez à l’esprit que seul ClickHouse Keeper prend en charge la compression, contrairement à Apache ZooKeeper. Résout [#49507](https://github.com/ClickHouse/ClickHouse/issues/49507). [#54957](https://github.com/ClickHouse/ClickHouse/pull/54957) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Introduction de la fonctionnalité `storage_metadata_write_full_object_key`. Si elle est définie sur `true`, les fichiers de métadonnées sont écrits dans le nouveau format. Avec ce format, ClickHouse stocke la clé complète de l’objet distant dans le fichier de métadonnées, ce qui offre davantage de souplesse et permet une meilleure optimisation. [#55566](https://github.com/ClickHouse/ClickHouse/pull/55566) ([Sema Checherinda](https://github.com/CheSema)).
* Ajout de nouveaux paramètres et d’une nouvelle syntaxe pour empêcher l’écrasement des champs des collections nommées. Cela vise à empêcher un utilisateur malveillant d’obtenir un accès non autorisé aux secrets. [#55782](https://github.com/ClickHouse/ClickHouse/pull/55782) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Ajout de la colonne `hostname` à toutes les tables système de logs : c’est utile si vous rendez les tables système répliquées, partagées ou distribuées. [#55894](https://github.com/ClickHouse/ClickHouse/pull/55894) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la requête `CHECK ALL TABLES`. [#56022](https://github.com/ClickHouse/ClickHouse/pull/56022) ([vdimir](https://github.com/vdimir)).
* Ajout de la fonction `fromDaysSinceYearZero`, similaire à `FROM_DAYS` de MySQL. Par exemple, `SELECT fromDaysSinceYearZero(739136)` renvoie `2023-09-08`. [#56088](https://github.com/ClickHouse/ClickHouse/pull/56088) ([Joanna Hulboj](https://github.com/jh0x)).
* Ajout d’un outil Python externe pour consulter les sauvegardes et en extraire des informations sans utiliser ClickHouse. [#56268](https://github.com/ClickHouse/ClickHouse/pull/56268) ([Vitaly Baranov](https://github.com/vitlibar)).
* Implémentation d’un nouveau paramètre appelé `preferred_optimize_projection_name`. S’il est défini sur une chaîne non vide, la projection spécifiée sera utilisée si possible au lieu d’être choisie parmi tous les candidats. [#56309](https://github.com/ClickHouse/ClickHouse/pull/56309) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout d’une commande à 4 lettres pour céder/abandonner le rôle de leader ([https://github.com/ClickHouse/ClickHouse/issues/56352](https://github.com/ClickHouse/ClickHouse/issues/56352)). [#56354](https://github.com/ClickHouse/ClickHouse/pull/56354) ([Pradeep Chhetri](https://github.com/chhetripradeep)). [#56620](https://github.com/ClickHouse/ClickHouse/pull/56620) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Ajout d’une nouvelle fonction SQL, `arrayRandomSample(arr, k)`, qui renvoie un échantillon de k éléments du tableau d’entrée. Une fonctionnalité similaire ne pouvait auparavant être obtenue qu’avec une syntaxe moins pratique, par ex. `SELECT arrayReduce('groupArraySample(3)', range(10))`. [#56416](https://github.com/ClickHouse/ClickHouse/pull/56416) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la prise en charge du type `Float16` pour une utilisation dans les fichiers `.npy`. Résout [#56344](https://github.com/ClickHouse/ClickHouse/issues/56344). [#56424](https://github.com/ClickHouse/ClickHouse/pull/56424) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout d’une vue système `information_schema.statistics` pour une meilleure compatibilité avec Tableau Online. [#56425](https://github.com/ClickHouse/ClickHouse/pull/56425) ([Serge Klochkov](https://github.com/slvrtrn)).
* Ajout de la table `system.symbols`, utile pour l’introspection du binaire. [#56548](https://github.com/ClickHouse/ClickHouse/pull/56548) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dashboards configurables. Les requêtes des graphiques sont désormais chargées à l’aide d’une requête qui utilise par défaut une nouvelle table `system.dashboards`. [#56771](https://github.com/ClickHouse/ClickHouse/pull/56771) ([Sergei Trifonov](https://github.com/serxa)).
* Introduction de la table function `fileCluster` : elle est utile si vous montez un système de fichiers partagé (NFS ou similaire) dans le répertoire `user_files`. [#56868](https://github.com/ClickHouse/ClickHouse/pull/56868) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajout de la colonne virtuelle `_size`, contenant la taille du fichier en octets, aux engines `s3/file/hdfs/url/azureBlobStorage`. [#57126](https://github.com/ClickHouse/ClickHouse/pull/57126) ([Kruglov Pavel](https://github.com/Avogar)).
* Expose via le Prometheus endpoint le nombre d’erreurs pour chaque code d’erreur survenues sur un serveur depuis le dernier redémarrage. [#57209](https://github.com/ClickHouse/ClickHouse/pull/57209) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* ClickHouse Keeper signale sa zone de disponibilité active au chemin `/keeper/availability-zone`. Cela peut être configuré via `<availability_zone><value>us-west-1a</value></availability_zone>`. [#56715](https://github.com/ClickHouse/ClickHouse/pull/56715) ([Jianfei Hu](https://github.com/incfly)).
* Rend ALTER materialized\_view MODIFY QUERY non expérimentale et déprécie le paramètre `allow_experimental_alter_materialized_view_structure`. Corrige [#15206](https://github.com/ClickHouse/ClickHouse/issues/15206). [#57311](https://github.com/ClickHouse/ClickHouse/pull/57311) ([alesapin](https://github.com/alesapin)).
* Le paramètre `join_algorithm` respecte l’ordre spécifié [#51745](https://github.com/ClickHouse/ClickHouse/pull/51745) ([vdimir](https://github.com/vdimir)).
* Ajout de la prise en charge des [types Protobuf bien connus](https://protobuf.dev/reference/protobuf/google.protobuf/) dans le format Protobuf. [#56741](https://github.com/ClickHouse/ClickHouse/pull/56741) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).

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

* Timeouts adaptatifs pour les interactions avec S3. La première tentative est effectuée avec des timeouts d’envoi et de réception courts. [#56314](https://github.com/ClickHouse/ClickHouse/pull/56314) ([Sema Checherinda](https://github.com/CheSema)).
* Augmentation de la valeur par défaut de `max_concurrent_queries` de 100 à 1000. Cela se justifie lorsqu’un grand nombre de clients se connectent et envoient ou reçoivent lentement des données, de sorte que le serveur n’est pas limité par le CPU, ou lorsque le nombre de CPU cores dépasse 100. Active également le contrôle de concurrence par défaut et définit le nombre total souhaité de threads de query processing à deux fois le nombre de CPU cores. Cela améliore les performances dans les scénarios avec un très grand nombre de queries concurrentes. [#46927](https://github.com/ClickHouse/ClickHouse/pull/46927) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de l’évaluation parallèle des window functions. Corrige [#34688](https://github.com/ClickHouse/ClickHouse/issues/34688). [#39631](https://github.com/ClickHouse/ClickHouse/pull/39631) ([Dmitry Novik](https://github.com/novikd)).
* Le table engine `Numbers` (de la table `system.numbers`) analyse désormais la condition afin de générer le sous-ensemble de données nécessaire, à la manière de l’index d’une table. [#50909](https://github.com/ClickHouse/ClickHouse/pull/50909) ([JackyWoo](https://github.com/JackyWoo)).
* Amélioration des performances du filtrage par condition `IN (...)` pour le table engine `Merge`. [#54905](https://github.com/ClickHouse/ClickHouse/pull/54905) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration dans les cas où le filesystem cache est plein et où les lectures sont volumineuses. [#55158](https://github.com/ClickHouse/ClickHouse/pull/55158) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la possibilité de désactiver les checksums pour S3 afin d’éviter des parcours excessifs du fichier (ce comportement est contrôlé par le setting `s3_disable_checksum`). [#55559](https://github.com/ClickHouse/ClickHouse/pull/55559) ([Azat Khuzhin](https://github.com/azat)).
* Désormais, la lecture depuis les tables distantes s’effectue de manière synchrone lorsque les données sont dans le page cache (comme pour les tables locales). C’est plus rapide, cela ne nécessite pas de synchronisation au sein du thread pool, ne freine pas les `seek` sur le FS local et réduit l’attente CPU. [#55841](https://github.com/ClickHouse/ClickHouse/pull/55841) ([Nikita Taranov](https://github.com/nickitat)).
* Optimisation de l’extraction d’une value à partir de `map`, `arrayElement`. Cela apporte environ 30 % d’accélération : réduction de la mémoire réservée et des appels à `resize`. [#55957](https://github.com/ClickHouse/ClickHouse/pull/55957) ([lgbo](https://github.com/lgbo-ustc)).
* Optimisation du filtrage en plusieurs étapes avec AVX-512. Des expériences de performance sur le dataset OnTime, sur une machine ICX (Intel Xeon Platinum 8380 CPU, 80 cœurs, 160 threads), montrent que ce changement pourrait améliorer le QPS des query Q2, Q3, Q4, Q5 et Q6 de respectivement 7,4 %, 5,9 %, 4,7 %, 3,0 % et 4,6 %, sans impact sur les autres. [#56079](https://github.com/ClickHouse/ClickHouse/pull/56079) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Limitation du nombre de threads occupés dans le query profiler. Au-delà de cette limite, ils ignorent le profiling. [#56105](https://github.com/ClickHouse/ClickHouse/pull/56105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réduction du nombre d’appels à des fonctions virtuelles dans les window functions. [#56120](https://github.com/ClickHouse/ClickHouse/pull/56120) ([Maksim Kita](https://github.com/kitaisreal)).
* Autorise le pruning récursif des champs Tuple dans le format de données ORC afin d’accélérer le balayage. [#56122](https://github.com/ClickHouse/ClickHouse/pull/56122) ([李扬](https://github.com/taiyang-li)).
* Optimisation simple du comptage pour le format de données `Npy` : des requêtes comme `select count() from 'data.npy'` s’exécuteront beaucoup plus vite grâce à la mise en cache des résultats. [#56304](https://github.com/ClickHouse/ClickHouse/pull/56304) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Les requêtes avec agrégation et un grand nombre de flux consommeront moins de mémoire lors de la construction du plan. [#57074](https://github.com/ClickHouse/ClickHouse/pull/57074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration des performances d’exécution des requêtes pour les cas d’usage avec de nombreux utilisateurs et un grand nombre de requêtes concurrentes (>2000 QPS), grâce à l’optimisation de l’accès à ProcessList. [#57106](https://github.com/ClickHouse/ClickHouse/pull/57106) ([Andrej Hoos](https://github.com/adikus)).
* Légère amélioration de `array join`, avec réutilisation de certains résultats intermédiaires. [#57183](https://github.com/ClickHouse/ClickHouse/pull/57183) ([李扬](https://github.com/taiyang-li)).
* Dans certains cas, le déroulage de pile était lent. Ce n’est plus le cas. [#57221](https://github.com/ClickHouse/ClickHouse/pull/57221) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nous utilisons désormais le pool de lecture par défaut pour lire depuis le stockage externe lorsque `max_streams = 1`. C’est avantageux lorsque les prélectures sont activées. [#57334](https://github.com/ClickHouse/ClickHouse/pull/57334) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration de Keeper : réduction de l’utilisation mémoire au démarrage en retardant le prétraitement des logs. [#55660](https://github.com/ClickHouse/ClickHouse/pull/55660) ([Antonio Andelic](https://github.com/antonio2368)).
* Amélioration des performances de correspondance des motifs glob pour les stockages `File` et `HDFS`. [#56141](https://github.com/ClickHouse/ClickHouse/pull/56141) ([Andrey Zvonov](https://github.com/zvonand)).
* Les posting lists des index de texte intégral expérimentaux sont désormais compressées, ce qui réduit leur taille de 10 à 30 %. [#56226](https://github.com/ClickHouse/ClickHouse/pull/56226) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Parallélisation de `BackupEntriesCollector` dans les sauvegardes. [#56312](https://github.com/ClickHouse/ClickHouse/pull/56312) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Ajoute un nouveau paramètre `MergeTree` `add_implicit_sign_column_constraint_for_collapsing_engine` (désactivé par défaut). Lorsqu'il est activé, il ajoute une contrainte CHECK implicite pour les tables `CollapsingMergeTree`, qui limite la valeur de la colonne `Sign` à -1 ou 1. [#56701](https://github.com/ClickHouse/ClickHouse/issues/56701). [#56986](https://github.com/ClickHouse/ClickHouse/pull/56986) ([Kevin Mingtarja](https://github.com/kevinmingtarja)).
* Permet d'ajouter un nouveau disque à la configuration de stockage sans redémarrage. [#56367](https://github.com/ClickHouse/ClickHouse/pull/56367) ([Duc Canh Le](https://github.com/canhld94)).
* Prend en charge la création et la matérialisation d'un index dans une même requête ALTER, ainsi que "modify TTL" et "materialize TTL" dans une même requête. Ferme [#55651](https://github.com/ClickHouse/ClickHouse/issues/55651). [#56331](https://github.com/ClickHouse/ClickHouse/pull/56331) ([flynn](https://github.com/ucasfl)).
* Ajoute une nouvelle fonction de table nommée `fuzzJSON`, avec des lignes contenant des versions perturbées de la chaîne JSON source avec des variations aléatoires. [#56490](https://github.com/ClickHouse/ClickHouse/pull/56490) ([Julia Kartseva](https://github.com/jkartseva)).
* Le moteur `Merge` filtre les enregistrements conformément aux politiques de lignes des tables sous-jacentes, ce qui évite de devoir créer une autre politique de lignes sur une table `Merge`. [#50209](https://github.com/ClickHouse/ClickHouse/pull/50209) ([Ilya Golshtein](https://github.com/ilejn)).
* Ajoute un paramètre `max_execution_time_leaf` pour limiter le temps d'exécution sur un shard pour une requête distribuée, ainsi que `timeout_overflow_mode_leaf` pour contrôler le comportement en cas de timeout. [#51823](https://github.com/ClickHouse/ClickHouse/pull/51823) ([Duc Canh Le](https://github.com/canhld94)).
* Ajoute un paramètre ClickHouse pour désactiver le tunneling des requêtes HTTPS via un proxy HTTP. [#55033](https://github.com/ClickHouse/ClickHouse/pull/55033) ([Arthur Passos](https://github.com/arthurpassos)).
* Définit `background_fetches_pool_size` à 16 et `background&#95;schedule&#95;pool&#95;size` à 512, ce qui est mieux adapté à une utilisation en production avec de fréquentes petites insertions. [#54327](https://github.com/ClickHouse/ClickHouse/pull/54327) ([Denny Crane](https://github.com/den-crane)).
* Lors de la lecture de données depuis un fichier au format CSV, si la fin de ligne est `\r` et n'est pas suivie de `\n`, l'exception suivante sera levée : `Cannot parse CSV format: found \r (CR) not followed by \n (LF). Line must end by \n (LF) or \r\n (CR LF) or \n\r.` Dans ClickHouse, une fin de ligne CSV doit être `\n`, `\r\n` ou `\n\r` ; `\r` doit donc être suivi de `\n`, mais dans certaines situations les données CSV en entrée peuvent être invalides, comme dans l'exemple ci-dessus où `\r` se trouve en fin de ligne. [#54340](https://github.com/ClickHouse/ClickHouse/pull/54340) ([KevinyhZou](https://github.com/KevinyhZou)).
* Met à jour la bibliothèque Arrow vers la release-13.0.0, qui prend en charge de nouveaux encodages. Ferme [#44505](https://github.com/ClickHouse/ClickHouse/issues/44505). [#54800](https://github.com/ClickHouse/ClickHouse/pull/54800) ([Kruglov Pavel](https://github.com/Avogar)).
* Améliore les performances des requêtes ON CLUSTER en supprimant les appels système coûteux servant à récupérer toutes les interfaces réseau lors de la recherche de l'adresse IP locale dans la liste des hôtes de l'entrée DDL. [#54909](https://github.com/ClickHouse/ClickHouse/pull/54909) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige la comptabilisation de la mémoire allouée avant l'attachement d'un thread à une requête ou à un utilisateur. [#56089](https://github.com/ClickHouse/ClickHouse/pull/56089) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout de la prise en charge de `LARGE_LIST` dans les formats Apache Arrow. [#56118](https://github.com/ClickHouse/ClickHouse/pull/56118) ([edef](https://github.com/edef1c)).
* Autorise la compaction manuelle de `EmbeddedRocksDB` via la requête `OPTIMIZE`. [#56225](https://github.com/ClickHouse/ClickHouse/pull/56225) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la possibilité de spécifier `BlockBasedTableOptions` pour les tables `EmbeddedRocksDB`. [#56264](https://github.com/ClickHouse/ClickHouse/pull/56264) ([Azat Khuzhin](https://github.com/azat)).
* `SHOW COLUMNS` affiche désormais le nom du type de données équivalent de MySQL lorsque la connexion est établie via le protocole MySQL. Auparavant, c'était le cas lorsque le paramètre `use_mysql_types_in_show_columns = 1` était défini. Le paramètre est conservé, mais marqué comme obsolète. [#56277](https://github.com/ClickHouse/ClickHouse/pull/56277) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction d'une erreur possible, `The local set of parts of table doesn't look like the set of parts in ZooKeeper`, si le serveur était redémarré juste après `TRUNCATE` ou `DROP PARTITION`. [#56282](https://github.com/ClickHouse/ClickHouse/pull/56282) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction de la gestion des query strings non constantes dans les fonctions `formatQuery`/`formatQuerySingleLine`. Ajout également de variantes `OrNull` pour les deux fonctions, qui renvoient `NULL` lorsqu'une query ne peut pas être analysée au lieu de lever une exception. [#56327](https://github.com/ClickHouse/ClickHouse/pull/56327) ([Robert Schulze](https://github.com/rschu1ze)).
* Autorise la sauvegarde d'une vue matérialisée dont la table interne a été supprimée, au lieu de faire échouer la sauvegarde. [#56387](https://github.com/ClickHouse/ClickHouse/pull/56387) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les queries vers `system.replicas` envoient des requêtes à ZooKeeper lorsque certaines colonnes sont interrogées. Lorsqu'il y a des milliers de tables, ces requêtes peuvent générer une charge considérable sur ZooKeeper. S'il y a plusieurs queries simultanées vers `system.replicas`, elles effectuent plusieurs fois les mêmes requêtes. Ce changement consiste à « dédupliquer » les requêtes issues de queries concurrentes. [#56420](https://github.com/ClickHouse/ClickHouse/pull/56420) ([Alexander Gololobov](https://github.com/davenger)).
* Correction de la traduction en query compatible MySQL pour interroger des bases de données externes. [#56456](https://github.com/ClickHouse/ClickHouse/pull/56456) ([flynn](https://github.com/ucasfl)).
* Ajout de la prise en charge de la sauvegarde et de la restauration des tables utilisant le moteur `KeeperMap`. [#56460](https://github.com/ClickHouse/ClickHouse/pull/56460) ([Antonio Andelic](https://github.com/antonio2368)).
* La réponse 404 pour CompleteMultipartUpload doit être revérifiée. L'opération peut avoir été effectuée sur le server même si le client a subi un timeout ou d'autres erreurs réseau. La tentative suivante de CompleteMultipartUpload reçoit une réponse 404. Si la clé de l'object existe, cette opération est considérée comme réussie. [#56475](https://github.com/ClickHouse/ClickHouse/pull/56475) ([Sema Checherinda](https://github.com/CheSema)).
* Active la méthode HTTP OPTIONS par défaut — cela simplifie les requêtes vers ClickHouse depuis un navigateur web. [#56483](https://github.com/ClickHouse/ClickHouse/pull/56483) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La valeur de `dns_max_consecutive_failures` a été modifiée par erreur dans [#46550](https://github.com/ClickHouse/ClickHouse/issues/46550) — cette modification a été annulée et remplacée par une valeur plus appropriée. De plus, le timeout keep-alive HTTP a été augmenté à une valeur raisonnable pour la production. [#56485](https://github.com/ClickHouse/ClickHouse/pull/56485) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Chargement paresseux des base backups (une base backup ne sera pas chargée tant qu'elle n'est pas nécessaire). Ajout également de quelques messages de journal et de profile events pour les backups. [#56516](https://github.com/ClickHouse/ClickHouse/pull/56516) ([Vitaly Baranov](https://github.com/vitlibar)).
* Le paramètre `query_cache_store_results_of_queries_with_nondeterministic_functions` (avec les valeurs `false` ou `true`) a été marqué comme obsolète. Il a été remplacé par le paramètre `query_cache_nondeterministic_function_handling`, une énumération à trois valeurs qui contrôle la manière dont le cache de requêtes gère les requêtes contenant des fonctions non déterministes : a) lever une exception (comportement par défaut), b) enregistrer quand même le résultat de la requête non déterministe, ou c) ignorer, c.-à-d. ne pas lever d’exception et ne pas mettre le résultat en cache. [#56519](https://github.com/ClickHouse/ClickHouse/pull/56519) ([Robert Schulze](https://github.com/rschu1ze)).
* Réécriture des égalités avec vérification `is null` dans la clause JOIN ON. *Analyseur* expérimental uniquement. [#56538](https://github.com/ClickHouse/ClickHouse/pull/56538) ([vdimir](https://github.com/vdimir)).
* La fonction `concat` prend désormais en charge des types d’arguments arbitraires (au lieu des seuls arguments String et FixedString). Son comportement se rapproche ainsi davantage de l’implémentation MySQL de `concat`. Par exemple, `SELECT concat('ab', 42)` renvoie désormais `ab42`. [#56540](https://github.com/ClickHouse/ClickHouse/pull/56540) ([Serge Klochkov](https://github.com/slvrtrn)).
* Autoriser la récupération de la configuration du cache depuis la section 'named\_collection' de la config ou depuis des named collections créées en SQL. [#56541](https://github.com/ClickHouse/ClickHouse/pull/56541) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Database engine PostgreSQL : rendre la suppression des tables obsolètes moins agressive en cas d’échec de connexion à Postgres. [#56609](https://github.com/ClickHouse/ClickHouse/pull/56609) ([jsc0218](https://github.com/jsc0218)).
* La connexion à PG prenait trop de temps lorsque l’URL était incorrecte, ce qui bloquait la requête concernée avant qu’elle ne soit annulée. [#56648](https://github.com/ClickHouse/ClickHouse/pull/56648) ([jsc0218](https://github.com/jsc0218)).
* Amélioration de Keeper : désactivation par défaut des logs compressés dans Keeper. [#56763](https://github.com/ClickHouse/ClickHouse/pull/56763) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout du paramètre de config `wait_dictionaries_load_at_startup`. [#56782](https://github.com/ClickHouse/ClickHouse/pull/56782) ([Vitaly Baranov](https://github.com/vitlibar)).
* Une vulnérabilité potentielle existait dans les versions précédentes de ClickHouse : si un utilisateur s’était connecté et avait tenté sans succès de s’authentifier avec la méthode "interserver secret", le serveur ne fermait pas immédiatement la connexion, mais continuait à recevoir et à ignorer les paquets résiduels du client. Bien que ces paquets soient ignorés, ils sont tout de même analysés, et s’ils utilisent une méthode de compression affectée par une autre vulnérabilité connue, cela permet de l’exploiter sans authentication. Ce problème a été découvert dans le cadre du [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) par [https://twitter.com/malacupa](https://twitter.com/malacupa). [#56794](https://github.com/ClickHouse/ClickHouse/pull/56794) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La récupération d’une part attend que cette part soit entièrement committed sur la replica distante. Il est préférable de ne pas envoyer de part à l’état PreActive. Dans le cas du zero copy, il s’agit d’une restriction obligatoire. [#56808](https://github.com/ClickHouse/ClickHouse/pull/56808) ([Sema Checherinda](https://github.com/CheSema)).
* Correction d’une possible erreur de conversion de la logical replication PostgreSQL lors de l’utilisation de `MaterializedPostgreSQL`, expérimental. [#53721](https://github.com/ClickHouse/ClickHouse/pull/53721) ([takakawa](https://github.com/takakawa)).
* Implémentation du user-level setting `alter_move_to_space_execute_async`, qui permet d’exécuter les queries `ALTER TABLE ... MOVE PARTITION|PART TO DISK|VOLUME` de manière asynchrone. La taille du pool pour les exécutions en arrière-plan est contrôlée par `background_move_pool_size`. Le comportement par défaut est une exécution synchrone. Corrige [#47643](https://github.com/ClickHouse/ClickHouse/issues/47643). [#56809](https://github.com/ClickHouse/ClickHouse/pull/56809) ([alesapin](https://github.com/alesapin)).
* Permet de filtrer par moteur lors du parcours de system.tables, ce qui évite des connexions inutiles (et potentiellement chronophages). [#56813](https://github.com/ClickHouse/ClickHouse/pull/56813) ([jsc0218](https://github.com/jsc0218)).
* Affiche `total_bytes` et `total_rows` dans les tables système pour le stockage RocksDB. [#56816](https://github.com/ClickHouse/ClickHouse/pull/56816) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Autorise les commandes de base dans ALTER pour les tables TEMPORARY. [#56892](https://github.com/ClickHouse/ClickHouse/pull/56892) ([Sergey](https://github.com/icuken)).
* Compression LZ4. Met en tampon le bloc compressé dans le cas rare où la capacité du tampon de sortie ne suffit pas pour écrire le bloc compressé directement dans le tampon de sortie. [#56938](https://github.com/ClickHouse/ClickHouse/pull/56938) ([Sema Checherinda](https://github.com/CheSema)).
* Ajoute des métriques sur le nombre de jobs en file d'attente, ce qui est utile pour le pool de threads IO. [#56958](https://github.com/ClickHouse/ClickHouse/pull/56958) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute un paramètre dans le fichier de config pour le moteur de table PostgreSQL. Ajoute une vérification pour ce paramètre. Ajoute de la documentation sur ce paramètre supplémentaire. [#56959](https://github.com/ClickHouse/ClickHouse/pull/56959) ([Peignon Melvyn](https://github.com/melvynator)).
* La fonction `concat` peut désormais être appelée avec un seul argument, par exemple `SELECT concat('abc')`. Cela rend son comportement plus cohérent avec l'implémentation de `concat` dans MySQL. [#57000](https://github.com/ClickHouse/ClickHouse/pull/57000) ([Serge Klochkov](https://github.com/slvrtrn)).
* Signe tous les en-têtes `x-amz-*`, comme l'exige la documentation AWS S3. [#57001](https://github.com/ClickHouse/ClickHouse/pull/57001) ([Arthur Passos](https://github.com/arthurpassos)).
* La fonction `fromDaysSinceYearZero` (alias : `FROM_DAYS`) peut désormais être utilisée avec des types entiers signés et non signés (auparavant, elle devait être utilisée avec un entier non signé). Cela améliore la compatibilité avec des outils 3rd party tels que Tableau Online. [#57002](https://github.com/ClickHouse/ClickHouse/pull/57002) ([Serge Klochkov](https://github.com/slvrtrn)).
* Ajoute `system.s3queue_log` à la configuration par défaut. [#57036](https://github.com/ClickHouse/ClickHouse/pull/57036) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Change la valeur par défaut de `wait_dictionaries_load_at_startup` à true, et n'utilise ce paramètre que si `dictionaries_lazy_load` est false. [#57133](https://github.com/ClickHouse/ClickHouse/pull/57133) ([Vitaly Baranov](https://github.com/vitlibar)).
* Vérifie le type de source du dictionnaire lors de sa création, même si `dictionaries_lazy_load` est activé. [#57134](https://github.com/ClickHouse/ClickHouse/pull/57134) ([Vitaly Baranov](https://github.com/vitlibar)).
* Les optimisations au niveau du plan peuvent désormais être activées ou désactivées individuellement. Auparavant, il était seulement possible de toutes les désactiver. Le paramètre qui permettait auparavant cela (`query_plan_enable_optimizations`) est conservé et peut toujours être utilisé pour désactiver toutes les optimisations. [#57152](https://github.com/ClickHouse/ClickHouse/pull/57152) ([Robert Schulze](https://github.com/rschu1ze)).
* Le code de sortie du serveur correspondra au code de l'exception. Par exemple, si le serveur ne peut pas démarrer en raison d'une limite de mémoire, il se terminera avec le code 241 = MEMORY\_LIMIT\_EXCEEDED. Dans les versions précédentes, le code de sortie pour les exceptions était toujours 70 = Poco::Util::ExitCode::EXIT\_SOFTWARE. [#57153](https://github.com/ClickHouse/ClickHouse/pull/57153) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ne plus démangler ni symboliser les frames de pile de l'en-tête C++ `functional`. [#57201](https://github.com/ClickHouse/ClickHouse/pull/57201) ([Mike Kot](https://github.com/myrrc)).
* La page `/dashboard` du serveur HTTP prend désormais en charge les graphiques à plusieurs lignes. [#57236](https://github.com/ClickHouse/ClickHouse/pull/57236) ([Sergei Trifonov](https://github.com/serxa)).
* L'option de ligne de commande `max_memory_usage_in_client` prend en charge une valeur de type chaîne avec un suffixe (K, M, G, etc.). Résout [#56879](https://github.com/ClickHouse/ClickHouse/issues/56879). [#57273](https://github.com/ClickHouse/ClickHouse/pull/57273) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Intel QPL (utilisé par le codec `DEFLATE_QPL`) a été mis à jour de la v1.2.0 à la v1.3.1. Correction également d'un bug lorsque BOF (Block On Fault) = 0, avec gestion des défauts de page par repli sur le chemin logiciel. [#57291](https://github.com/ClickHouse/ClickHouse/pull/57291) ([jasperzhu](https://github.com/jinjunzh)).
* Augmente la valeur par défaut de `replicated_deduplication_window` dans les paramètres MergeTree de 100 à 1k. [#57335](https://github.com/ClickHouse/ClickHouse/pull/57335) ([sichenzhao](https://github.com/sichenzhao)).
* Réduit l'utilisation de `INCONSISTENT_METADATA_FOR_BACKUP`. Si possible, préférer poursuivre l'analyse plutôt que de l'arrêter et de la relancer depuis le début pour la sauvegarde. [#57385](https://github.com/ClickHouse/ClickHouse/pull/57385) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Ajout d’un test SQLLogic. [#56078](https://github.com/ClickHouse/ClickHouse/pull/56078) ([Han Fei](https://github.com/hanfei1991)).
* `clickhouse-local` et `clickhouse-client` sont désormais disponibles sous des noms courts (`ch`, `chl`, `chc`) pour en faciliter l’usage. [#56634](https://github.com/ClickHouse/ClickHouse/pull/56634) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimisation supplémentaire de la taille du build par suppression du code inutilisé dans les bibliothèques externes. [#56786](https://github.com/ClickHouse/ClickHouse/pull/56786) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’une vérification automatique pour s’assurer de l’absence de grosses unités de traduction. [#56559](https://github.com/ClickHouse/ClickHouse/pull/56559) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réduction de la taille de la distribution en binaire unique. Cela clôt [#55181](https://github.com/ClickHouse/ClickHouse/issues/55181). [#56617](https://github.com/ClickHouse/ClickHouse/pull/56617) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les informations sur la taille de chaque unité de traduction et de chaque fichier binaire après chaque build seront envoyées à la base de données CI dans ClickHouse Cloud. Cela clôt [#56107](https://github.com/ClickHouse/ClickHouse/issues/56107). [#56636](https://github.com/ClickHouse/ClickHouse/pull/56636) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Certains fichiers de la bibliothèque « Apache Arrow » (que nous utilisons uniquement pour des éléments non essentiels comme l’analyse du format Arrow) étaient reconstruits en permanence, quel que soit le cache de build. Ce problème est corrigé. [#56657](https://github.com/ClickHouse/ClickHouse/pull/56657) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Évite de recompiler les unités de traduction dépendant du fichier source auto-généré sur la version. [#56660](https://github.com/ClickHouse/ClickHouse/pull/56660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les données de tracing des invocations de l’éditeur de liens seront envoyées à la base de données CI dans ClickHouse Cloud. [#56725](https://github.com/ClickHouse/ClickHouse/pull/56725) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Utilisation des symboles de débogage DWARF 5 pour le binaire clickhouse (DWARF 4 était utilisé auparavant). [#56770](https://github.com/ClickHouse/ClickHouse/pull/56770) ([Michael Kolupaev](https://github.com/al13n321)).
* Ajout d’une nouvelle option de build `SANITIZE_COVERAGE`. Si elle est activée, le code est instrumenté pour suivre la couverture. Les informations collectées sont disponibles dans ClickHouse via : (1) une nouvelle fonction `coverage` qui renvoie un Array d’adresses uniques dans le code trouvées depuis la réinitialisation précédente de la couverture ; (2) la query `SYSTEM RESET COVERAGE`, qui réinitialise les données accumulées. Cela permet de comparer la couverture de différents tests, y compris la couverture différentielle du code. Suite de [#20539](https://github.com/ClickHouse/ClickHouse/issues/20539). [#56102](https://github.com/ClickHouse/ClickHouse/pull/56102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Certaines trames de pile peuvent ne pas être résolues lors de la collecte des piles. Dans ce cas, l’adresse brute peut être utile. [#56267](https://github.com/ClickHouse/ClickHouse/pull/56267) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout d’une option pour désactiver `libssh`. [#56333](https://github.com/ClickHouse/ClickHouse/pull/56333) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Activation de temporary\_data\_in\_cache dans les tests S3 en CI. [#48425](https://github.com/ClickHouse/ClickHouse/pull/48425) ([vdimir](https://github.com/vdimir)).
* Définition de la limite maximale de mémoire pour clickhouse-client (`1G`) dans la CI. [#56873](https://github.com/ClickHouse/ClickHouse/pull/56873) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Corrige l’Analyzer expérimental : une insertion depuis SELECT avec une sous-requête référençant la table d’insertion ne doit traiter que le bloc d’insertion. [#50857](https://github.com/ClickHouse/ClickHouse/pull/50857) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige un bug dans la fonction `str_to_map`. [#56423](https://github.com/ClickHouse/ClickHouse/pull/56423) ([Arthur Passos](https://github.com/arthurpassos)).
* Keeper `reconfig` : ajoute un délai d’expiration avant de céder/prendre le rôle de leader [#53481](https://github.com/ClickHouse/ClickHouse/pull/53481) ([Mike Kot](https://github.com/myrrc)).
* Corrige un header incorrect dans le grace hash join et le filter pushdown [#53922](https://github.com/ClickHouse/ClickHouse/pull/53922) ([vdimir](https://github.com/vdimir)).
* SELECT depuis des tables système lorsqu’une table est basée sur une table function. [#55540](https://github.com/ClickHouse/ClickHouse/pull/55540) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* RFC : corrige "Cannot find column X in source stream" pour les requêtes Distributed avec LIMIT BY [#55836](https://github.com/ClickHouse/ClickHouse/pull/55836) ([Azat Khuzhin](https://github.com/azat)).
* Corrige 'Cannot read from file:' lors de l’exécution du client en arrière-plan [#55976](https://github.com/ClickHouse/ClickHouse/pull/55976) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la fermeture de clickhouse-local en cas de paramètre send\_logs\_level invalide [#55994](https://github.com/ClickHouse/ClickHouse/pull/55994) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un bug dans explain ast avec une vue paramétrée [#56004](https://github.com/ClickHouse/ClickHouse/pull/56004) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige un crash pendant le chargement des tables au démarrage [#56232](https://github.com/ClickHouse/ClickHouse/pull/56232) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige les dictionnaires basés sur ClickHouse avec une requête explicite [#56236](https://github.com/ClickHouse/ClickHouse/pull/56236) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige un segfault dans le gestionnaire de signaux de Keeper [#56266](https://github.com/ClickHouse/ClickHouse/pull/56266) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un résultat de requête incomplet pour UNION dans la fonction view(). [#56274](https://github.com/ClickHouse/ClickHouse/pull/56274) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige l’incohérence entre "cast('0' as DateTime64(3))" et "cast('0' as Nullable(DateTime64(3)))" [#56286](https://github.com/ClickHouse/ClickHouse/pull/56286) ([李扬](https://github.com/taiyang-li)).
* Corrige une rare condition de concurrence liée à un échec d’allocation de mémoire [#56303](https://github.com/ClickHouse/ClickHouse/pull/56303) ([alesapin](https://github.com/alesapin)).
* Corrige la restauration depuis une sauvegarde avec `flatten_nested` et `data_type_default_nullable` [#56306](https://github.com/ClickHouse/ClickHouse/pull/56306) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un crash lors de l’ajout d’une colonne de type Object(JSON) [#56307](https://github.com/ClickHouse/ClickHouse/pull/56307) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige un crash dans filterPushDown [#56380](https://github.com/ClickHouse/ClickHouse/pull/56380) ([vdimir](https://github.com/vdimir)).
* Corrige la restauration depuis une sauvegarde avec une vue matérialisée et une table source supprimée [#56383](https://github.com/ClickHouse/ClickHouse/pull/56383) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un segfault lors de l'initialisation de Kerberos [#56401](https://github.com/ClickHouse/ClickHouse/pull/56401) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige un dépassement de tampon dans T64 [#56434](https://github.com/ClickHouse/ClickHouse/pull/56434) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le problème de clé primaire Nullable dans final (2) [#56452](https://github.com/ClickHouse/ClickHouse/pull/56452) ([Amos Bird](https://github.com/amosbird)).
* Corrige les requêtes ON CLUSTER sans base de données sur le nœud initial [#56484](https://github.com/ClickHouse/ClickHouse/pull/56484) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige un échec au démarrage dû à une dépendance TTL [#56489](https://github.com/ClickHouse/ClickHouse/pull/56489) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige les requêtes ALTER COMMENT ON CLUSTER [#56491](https://github.com/ClickHouse/ClickHouse/pull/56491) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige ALTER COLUMN avec ALIAS [#56493](https://github.com/ClickHouse/ClickHouse/pull/56493) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige les NAMED COLLECTIONs vides [#56494](https://github.com/ClickHouse/ClickHouse/pull/56494) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige deux cas d'analyse de projection. [#56502](https://github.com/ClickHouse/ClickHouse/pull/56502) ([Amos Bird](https://github.com/amosbird)).
* Corrige la gestion des alias dans le cache de requêtes [#56545](https://github.com/ClickHouse/ClickHouse/pull/56545) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige la conversion de `Nullable(Enum)` vers `Nullable(String)` [#56644](https://github.com/ClickHouse/ClickHouse/pull/56644) ([Nikolay Degterinsky](https://github.com/evillique)).
* Gestion plus fiable des journaux dans Keeper [#56670](https://github.com/ClickHouse/ClickHouse/pull/56670) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige la fusion de configuration pour les nœuds avec des attributs de substitution [#56694](https://github.com/ClickHouse/ClickHouse/pull/56694) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige l'utilisation en double de la fonction de table input(). [#56695](https://github.com/ClickHouse/ClickHouse/pull/56695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un problème de chargement dynamique d'OpenSSL dans RabbitMQ [#56703](https://github.com/ClickHouse/ClickHouse/pull/56703) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige un plantage dans le codec GCD lorsque des zéros sont présents dans les données [#56704](https://github.com/ClickHouse/ClickHouse/pull/56704) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige 'mutex lock failed: Invalid argument' dans clickhouse-local lors d'une insertion dans une fonction [#56710](https://github.com/ClickHouse/ClickHouse/pull/56710) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l'analyse du texte Date dans le chemin optimiste [#56765](https://github.com/ClickHouse/ClickHouse/pull/56765) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un plantage dans le codec FPC [#56795](https://github.com/ClickHouse/ClickHouse/pull/56795) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* DatabaseReplicated : corrige le timeout d'une requête DDL après la récupération d'une réplique [#56796](https://github.com/ClickHouse/ClickHouse/pull/56796) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige le signalement incorrect des colonnes Nullable dans le protocole binaire MySQL [#56799](https://github.com/ClickHouse/ClickHouse/pull/56799) ([Serge Klochkov](https://github.com/slvrtrn)).
* Prise en charge des fichiers de métadonnées Iceberg pour les tables du metastore [#56810](https://github.com/ClickHouse/ClickHouse/pull/56810) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d'un rapport TSAN dans transform [#56817](https://github.com/ClickHouse/ClickHouse/pull/56817) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de la requête SET et du formatage de SETTINGS [#56825](https://github.com/ClickHouse/ClickHouse/pull/56825) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction d'un échec au démarrage dû à une dépendance de table dans joinGet [#56828](https://github.com/ClickHouse/ClickHouse/pull/56828) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de l'aplatissement des colonnes Nested existantes lors de ADD COLUMN [#56830](https://github.com/ClickHouse/ClickHouse/pull/56830) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de la prise en charge de CR en fin de ligne pour CSV [#56901](https://github.com/ClickHouse/ClickHouse/pull/56901) ([KevinyhZou](https://github.com/KevinyhZou)).
* Correction de `tryBase64Decode` avec une entrée non valide [#56913](https://github.com/ClickHouse/ClickHouse/pull/56913) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de la génération de colonnes profondément imbriquées dans les schémas CapnProto/Protobuf [#56941](https://github.com/ClickHouse/ClickHouse/pull/56941) ([Kruglov Pavel](https://github.com/Avogar)).
* Empêche les ALTER incompatibles des colonnes de projection [#56948](https://github.com/ClickHouse/ClickHouse/pull/56948) ([Amos Bird](https://github.com/amosbird)).
* Correction de la validation du chemin de fichier SQLite [#56984](https://github.com/ClickHouse/ClickHouse/pull/56984) ([San](https://github.com/santrancisco)).
* S3Queue : correction de l'incrémentation de la référence des métadonnées [#56990](https://github.com/ClickHouse/ClickHouse/pull/56990) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction mineure de S3Queue [#56999](https://github.com/ClickHouse/ClickHouse/pull/56999) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la validation du chemin de fichier pour DatabaseFileSystem [#57029](https://github.com/ClickHouse/ClickHouse/pull/57029) ([San](https://github.com/santrancisco)).
* Correction de `fuzzBits` avec `ARRAY JOIN` [#57033](https://github.com/ClickHouse/ClickHouse/pull/57033) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d'un déréférencement de pointeur nul dans partial merge join avec joined\_subquery\_re... [#57048](https://github.com/ClickHouse/ClickHouse/pull/57048) ([vdimir](https://github.com/vdimir)).
* Correction d'une condition de concurrence dans RemoteSource [#57052](https://github.com/ClickHouse/ClickHouse/pull/57052) ([Raúl Marín](https://github.com/Algunenano)).
* Implémentation de `bitHammingDistance` pour les grands entiers [#57073](https://github.com/ClickHouse/ClickHouse/pull/57073) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d'un bug affectant les liens de type S3 [#57075](https://github.com/ClickHouse/ClickHouse/pull/57075) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction de la fonction JSON\_QUERY avec plusieurs chemins numériques [#57096](https://github.com/ClickHouse/ClickHouse/pull/57096) ([KevinyhZou](https://github.com/KevinyhZou)).
* Correction d'un dépassement de tampon dans le codec Gorilla [#57107](https://github.com/ClickHouse/ClickHouse/pull/57107) ([Nikolay Degterinsky](https://github.com/evillique)).
* Fermeture de la connexion interserver sur toute exception avant l'authentification [#57142](https://github.com/ClickHouse/ClickHouse/pull/57142) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un segfault après ALTER UPDATE avec une colonne Nullable MATERIALIZED [#57147](https://github.com/ClickHouse/ClickHouse/pull/57147) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction d’une optimisation incorrecte du plan de JOIN avec une projection normale partiellement matérialisée [#57196](https://github.com/ClickHouse/ClickHouse/pull/57196) ([Amos Bird](https://github.com/amosbird)).
* Ignorer les commentaires lors de la comparaison des descriptions de colonnes [#57259](https://github.com/ClickHouse/ClickHouse/pull/57259) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de la métrique `ReadonlyReplica` dans tous les cas [#57267](https://github.com/ClickHouse/ClickHouse/pull/57267) ([Antonio Andelic](https://github.com/antonio2368)).
* Les merges en arrière-plan utilisent correctement le stockage temporaire des données dans le cache [#57275](https://github.com/ClickHouse/ClickHouse/pull/57275) ([vdimir](https://github.com/vdimir)).
* Correction de Keeper pour le changelog et les snapshots [#57299](https://github.com/ClickHouse/ClickHouse/pull/57299) ([Antonio Andelic](https://github.com/antonio2368)).
* Ignorer les tâches ON CLUSTER terminées si le nom d’hôte a changé [#57339](https://github.com/ClickHouse/ClickHouse/pull/57339) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Les mutations MergeTree réutilisent la granularité d’index de la part source [#57352](https://github.com/ClickHouse/ClickHouse/pull/57352) ([Maksim Kita](https://github.com/kitaisreal)).
* Cache FS : ajout d’une limite pour le téléchargement en arrière-plan [#57424](https://github.com/ClickHouse/ClickHouse/pull/57424) ([Kseniia Sumarokova](https://github.com/kssenii)).

### <a id="2310" /> Version de ClickHouse 23.10, 2023-11-02. [Présentation](https://presentations.clickhouse.com/2023-release-23.10/), [Vidéo](https://www.youtube.com/watch?v=PGQS6uPb970)

<Frame>
  <iframe src="https://www.youtube.com/embed/PGQS6uPb970" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Changement rétro-incompatible
</div>

* Il n’est plus possible de supprimer automatiquement les data parts corrompues. Cela résout [#55174](https://github.com/ClickHouse/ClickHouse/issues/55174). [#55184](https://github.com/ClickHouse/ClickHouse/pull/55184) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#55557](https://github.com/ClickHouse/ClickHouse/pull/55557) ([Jihyuk Bok](https://github.com/tomahawk28)).
* Les data parts obsolètes en mémoire ne peuvent plus être lues depuis le journal d’écriture anticipée. Si vous avez déjà configuré des parts en mémoire, elles doivent être supprimées avant la mise à niveau. [#55186](https://github.com/ClickHouse/ClickHouse/pull/55186) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression de l’intégration avec Meilisearch. Raison : elle n’était compatible qu’avec l’ancienne version 0.18. La version récente de Meilisearch a modifié le protocole et ne fonctionne plus. Remarque : nous apprécierions votre aide pour la rétablir. [#55189](https://github.com/ClickHouse/ClickHouse/pull/55189) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le concept de surveillance de répertoire a été renommé en INSERT en arrière-plan. Tous les paramètres `*directory_monitor*` ont été renommés en `distributed_background_insert*`. *La rétrocompatibilité devrait être préservée* (puisque les anciens paramètres ont été ajoutés comme alias). [#55978](https://github.com/ClickHouse/ClickHouse/pull/55978) ([Azat Khuzhin](https://github.com/azat)).
* Ne pas interpréter `send_timeout` défini côté client comme `receive_timeout` côté serveur, ni inversement. [#56035](https://github.com/ClickHouse/ClickHouse/pull/56035) ([Azat Khuzhin](https://github.com/azat)).
* La comparaison d’intervalles de temps avec des unités différentes lèvera une exception. Cela résout [#55942](https://github.com/ClickHouse/ClickHouse/issues/55942). Il est possible que vous vous soyez parfois appuyé sur le comportement précédent, où les valeurs numériques sous-jacentes étaient comparées sans tenir compte des unités. [#56090](https://github.com/ClickHouse/ClickHouse/pull/56090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réécriture complète du moteur de table expérimental `S3Queue` : modification de la façon dont les informations sont conservées dans ZooKeeper, ce qui réduit le nombre de requêtes vers ZooKeeper ; ajout d’une mise en cache de l’état de ZooKeeper lorsque nous savons que cet état ne changera pas ; amélioration du processus de polling depuis S3 pour le rendre moins agressif ; modification de la gestion du TTL et du nombre maximal définis pour les fichiers suivis, désormais assurée par un processus en arrière-plan. Ajout des tables `system.s3queue` et `system.s3queue_log`. Cela résout [#54998](https://github.com/ClickHouse/ClickHouse/issues/54998). [#54422](https://github.com/ClickHouse/ClickHouse/pull/54422) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les chemins arbitraires sur l’endpoint HTTP ne sont plus interprétés comme une requête vers l’endpoint `/query`. [#55521](https://github.com/ClickHouse/ClickHouse/pull/55521) ([Konstantin Bogdanov](https://github.com/thevar1able)).

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

* Ajout de la fonction `arrayFold(accumulator, x1, ..., xn -> expression, initial, array1, ..., arrayn)`, qui applique une fonction lambda à plusieurs tableaux de même cardinalité et accumule le résultat dans un accumulateur. [#49794](https://github.com/ClickHouse/ClickHouse/pull/49794) ([Lirikl](https://github.com/Lirikl)).
* Prise en charge du format `Npy`. `SELECT * FROM file('example_array.npy', Npy)`. [#55982](https://github.com/ClickHouse/ClickHouse/pull/55982) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Si une table a une courbe de remplissage de l’espace dans sa clé, par exemple `ORDER BY mortonEncode(x, y)`, les conditions sur ses arguments, par exemple `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, peuvent être utilisées pour l’indexation. Un paramètre `analyze_index_with_space_filling_curves` a été ajouté pour activer ou désactiver cette analyse. Cela clôt [#41195](https://github.com/ClickHouse/ClickHouse/issue/41195). Suite de [#4538](https://github.com/ClickHouse/ClickHouse/pull/4538). Suite de [#6286](https://github.com/ClickHouse/ClickHouse/pull/6286). Suite de [#28130](https://github.com/ClickHouse/ClickHouse/pull/28130). Suite de [#41753](https://github.com/ClickHouse/ClickHouse/pull/#41753). [#55642](https://github.com/ClickHouse/ClickHouse/pull/55642) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’un nouveau paramètre, `force_optimize_projection_name`, qui prend en argument un nom de projection. Si sa valeur est définie sur une chaîne non vide, ClickHouse vérifie que cette projection est utilisée au moins une fois dans la requête. Clôt [#55331](https://github.com/ClickHouse/ClickHouse/issues/55331). [#56134](https://github.com/ClickHouse/ClickHouse/pull/56134) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Prise en charge des insertions asynchrones avec des données externes via le protocole natif. Auparavant, cela ne fonctionnait que si les données étaient incluses directement dans la requête. [#54730](https://github.com/ClickHouse/ClickHouse/pull/54730) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la fonction d’agrégation `lttb`, qui utilise l’algorithme [Largest-Triangle-Three-Buckets](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf) pour le sous-échantillonnage des données à des fins de visualisation. [#53145](https://github.com/ClickHouse/ClickHouse/pull/53145) ([Sinan](https://github.com/sinsinan)).
* La requête `CHECK TABLE` offre de meilleures performances et une meilleure utilisabilité (envoi de mises à jour de progression, possibilité d’annulation). Prise en charge de la vérification d’une part spécifique avec `CHECK TABLE ... PART 'part_name'`. [#53404](https://github.com/ClickHouse/ClickHouse/pull/53404) ([vdimir](https://github.com/vdimir)).
* Ajout de la fonction `jsonMergePatch`. Lorsqu’elle est utilisée avec des données JSON sous forme de chaînes, elle permet de fusionner ces chaînes (d’objets JSON) pour former une chaîne unique contenant un seul objet JSON. [#54364](https://github.com/ClickHouse/ClickHouse/pull/54364) ([Memo](https://github.com/Joeywzr)).
* Deuxième partie de la prise en charge du dialecte Kusto Query Language. L’[implémentation de la phase 1 ](https://github.com/ClickHouse/ClickHouse/pull/37961) a été intégrée. [#42510](https://github.com/ClickHouse/ClickHouse/pull/42510) ([larryluogit](https://github.com/larryluogit)).
* Ajout d’une nouvelle fonction SQL, `arrayRandomSample(arr, k)`, qui renvoie un échantillon de k éléments du tableau d’entrée. Une fonctionnalité similaire ne pouvait auparavant être obtenue qu’avec une syntaxe moins pratique, par exemple "SELECT arrayReduce('groupArraySample(3)', range(10))". [#54391](https://github.com/ClickHouse/ClickHouse/pull/54391) ([itayisraelov](https://github.com/itayisraelov)).
* Introduction des combinators d’agrégat `-ArgMin`/`-ArgMax`, qui permettent d’agréger uniquement selon les valeurs min/max. Un cas d’usage est présenté dans [#54818](https://github.com/ClickHouse/ClickHouse/issues/54818). Cette PR réorganise également les combinators dans un dossier dédié. [#54947](https://github.com/ClickHouse/ClickHouse/pull/54947) ([Amos Bird](https://github.com/amosbird)).
* Permet de supprimer le cache du format Protobuf avec `SYSTEM DROP SCHEMA FORMAT CACHE [FOR Protobuf]`. [#55064](https://github.com/ClickHouse/ClickHouse/pull/55064) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Ajout d’un authentificateur HTTP Basic externe. [#55199](https://github.com/ClickHouse/ClickHouse/pull/55199) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Ajout de la fonction `byteSwap`, qui inverse les octets des entiers non signés. Cela est particulièrement utile pour inverser les valeurs de types représentés en interne sous forme d’entiers non signés, comme IPv4. [#55211](https://github.com/ClickHouse/ClickHouse/pull/55211) ([Priyansh Agrawal](https://github.com/Priyansh121096)).
* Ajout de la fonction `formatQuery`, qui renvoie une version formatée (éventuellement sur plusieurs lignes) d’une chaîne de requête SQL. Ajout également de la fonction `formatQuerySingleLine`, qui fait la même chose, mais sans retours à la ligne dans la chaîne renvoyée. [#55239](https://github.com/ClickHouse/ClickHouse/pull/55239) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Ajout du format d’entrée `DWARF`, qui lit les symboles de débogage depuis un exécutable, une bibliothèque ou un fichier objet ELF. [#55450](https://github.com/ClickHouse/ClickHouse/pull/55450) ([Michael Kolupaev](https://github.com/al13n321)).
* Permet d’enregistrer les enregistrements non analysés et les erreurs dans les engines RabbitMQ, NATS et FileLog. Ajout des colonnes virtuelles `_error` et `_raw_message` (pour NATS et RabbitMQ), ainsi que `_raw_record` (pour FileLog), qui sont remplies lorsque ClickHouse ne parvient pas à analyser un nouvel enregistrement. Le comportement est contrôlé par les paramètres de stockage `nats_handle_error_mode` pour NATS, `rabbitmq_handle_error_mode` pour RabbitMQ et `handle_error_mode` pour FileLog, de manière similaire à `kafka_handle_error_mode`. Si cette valeur est définie sur `default`, une exception est levée lorsque ClickHouse ne parvient pas à analyser un enregistrement ; si elle est définie sur `stream`, l’erreur et l’enregistrement brut sont enregistrés dans les colonnes virtuelles. Closes [#36035](https://github.com/ClickHouse/ClickHouse/issues/36035). [#55477](https://github.com/ClickHouse/ClickHouse/pull/55477) ([Kruglov Pavel](https://github.com/Avogar)).
* Amélioration du client Keeper : ajout de la commande `get_all_children_number command`, qui renvoie le nombre total de nœuds enfants sous un path donné. [#55485](https://github.com/ClickHouse/ClickHouse/pull/55485) ([guoxiaolong](https://github.com/guoxiaolongzte)).
* Amélioration du client Keeper : ajout de la commande `get_direct_children_number`, qui renvoie le nombre de nœuds enfants directs sous un path. [#55898](https://github.com/ClickHouse/ClickHouse/pull/55898) ([xuzifu666](https://github.com/xuzifu666)).
* Ajout de l’instruction `SHOW SETTING setting_name`, qui est une version simplifiée de l’instruction existante `SHOW SETTINGS`. [#55979](https://github.com/ClickHouse/ClickHouse/pull/55979) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout des champs `substreams` et `filenames` à la table `system.parts_columns`. [#55108](https://github.com/ClickHouse/ClickHouse/pull/55108) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la prise en charge de la requête `SHOW MERGES`. [#55815](https://github.com/ClickHouse/ClickHouse/pull/55815) ([megao](https://github.com/jetgm)).
* Introduction du paramètre `create_table_empty_primary_key_by_default` pour utiliser `ORDER BY ()` par défaut. [#55899](https://github.com/ClickHouse/ClickHouse/pull/55899) ([Srikanth Chekuri](https://github.com/srikanthccv)).

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

* Ajout de l’option `query_plan_preserve_num_streams_after_window_functions` pour préserver le nombre de flux après l’évaluation des fonctions de fenêtre, afin de permettre un traitement parallèle des flux. [#50771](https://github.com/ClickHouse/ClickHouse/pull/50771) ([frinkr](https://github.com/frinkr)).
* Libération d’un plus grand nombre de flux lorsque le volume de données est faible. [#53867](https://github.com/ClickHouse/ClickHouse/pull/53867) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimisation des RoaringBitmaps avant la sérialisation. [#55044](https://github.com/ClickHouse/ClickHouse/pull/55044) ([UnamedRus](https://github.com/UnamedRus)).
* Les posting lists des index inversés sont désormais optimisées pour utiliser la plus petite représentation possible des bitmaps internes. Selon la répétitivité des données, cela peut réduire significativement l’espace occupé par les index inversés. [#55069](https://github.com/ClickHouse/ClickHouse/pull/55069) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Correction de la contention sur le verrou Context, ce qui améliore significativement les performances pour de nombreuses requêtes concurrentes de courte durée. [#55121](https://github.com/ClickHouse/ClickHouse/pull/55121) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration de 30 % des performances de création des index inversés. Cela a été obtenu en remplaçant `std::unordered_map` par `absl::flat_hash_map`. [#55210](https://github.com/ClickHouse/ClickHouse/pull/55210) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Prise en charge du pushdown des filtres ORC (au niveau des groupes de lignes). [#55330](https://github.com/ClickHouse/ClickHouse/pull/55330) ([李扬](https://github.com/taiyang-li)).
* Amélioration des performances de l’agrégation externe en présence d’un grand nombre de fichiers temporaires. [#55489](https://github.com/ClickHouse/ClickHouse/pull/55489) ([Maksim Kita](https://github.com/kitaisreal)).
* Définition par défaut d’une taille raisonnable pour le cache des marks des index secondaires afin d’éviter de recharger sans cesse les marks. [#55654](https://github.com/ClickHouse/ClickHouse/pull/55654) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Évite la reconstruction inutile des granules d’index lors de la lecture des skip indexes. Cela corrige [#55653](https://github.com/ClickHouse/ClickHouse/issues/55653#issuecomment-1763766009). [#55683](https://github.com/ClickHouse/ClickHouse/pull/55683) ([Amos Bird](https://github.com/amosbird)).
* Mise en cache de la fonction CAST dans le set pendant l’exécution afin d’améliorer les performances de la fonction `IN` lorsque le type des éléments du set ne correspond pas exactement au type de colonne. [#55712](https://github.com/ClickHouse/ClickHouse/pull/55712) ([Duc Canh Le](https://github.com/canhld94)).
* Amélioration des performances de `ColumnVector::insertMany` et `ColumnVector::insertManyFrom`. [#55714](https://github.com/ClickHouse/ClickHouse/pull/55714) ([frinkr](https://github.com/frinkr)).
* Optimisation des opérations d’indexation sur Map en prédisant la position de la clé de la ligne suivante et en réduisant le nombre de comparaisons. [#55929](https://github.com/ClickHouse/ClickHouse/pull/55929) ([lgbo](https://github.com/lgbo-ustc)).
* Prise en charge de l’élagage des champs de struct dans Parquet (dans les versions précédentes, cela ne fonctionnait pas dans certains cas). [#56117](https://github.com/ClickHouse/ClickHouse/pull/56117) ([lgbo](https://github.com/lgbo-ustc)).
* Ajout de la possibilité d’ajuster le nombre de répliques parallèles utilisées lors de l’exécution d’une requête en fonction de l’estimation du nombre de lignes à lire. [#51692](https://github.com/ClickHouse/ClickHouse/pull/51692) ([Raúl Marín](https://github.com/Algunenano)).
* Optimisation de la consommation mémoire de l’agrégation externe lorsque de nombreux fichiers temporaires sont générés. [#54798](https://github.com/ClickHouse/ClickHouse/pull/54798) ([Nikita Taranov](https://github.com/nickitat)).
* Les requêtes distribuées exécutées en mode `async_socket_for_remote` (par défaut) respectent désormais la limite `max_threads`. Auparavant, certaines requêtes pouvaient créer un nombre excessif de threads (jusqu’à `max_distributed_connections`), ce qui entraînait des problèmes de performances du serveur. [#53504](https://github.com/ClickHouse/ClickHouse/pull/53504) ([filimonov](https://github.com/filimonov)).
* Mise en cache des entrées pouvant être sautées lors de l’exécution de DDL depuis la file des DDL distribués de ZooKeeper. [#54828](https://github.com/ClickHouse/ClickHouse/pull/54828) ([Duc Canh Le](https://github.com/canhld94)).
* Les index inversés expérimentaux ne stockent pas les tokens ayant trop de correspondances (c.-à-d. les identifiants de lignes dans la posting list). Cela permet d’économiser de l’espace et d’éviter des lookups d’index inefficaces lorsque des parcours séquentiels seraient tout aussi rapides, voire plus rapides. Les heuristiques précédentes (le paramètre `density` transmis à la définition de l’index), qui déterminaient à partir de quand les tokens n’étaient pas stockés, étaient trop déroutantes pour les utilisateurs. Une heuristique beaucoup plus simple, basée sur le paramètre `max_rows_per_postings_list` (par défaut : 64k), est introduite et contrôle directement le nombre maximal autorisé d’identifiants de lignes dans une postings list. [#55616](https://github.com/ClickHouse/ClickHouse/pull/55616) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Amélioration des performances d’écriture des tables `EmbeddedRocksDB`. [#55732](https://github.com/ClickHouse/ClickHouse/pull/55732) ([Duc Canh Le](https://github.com/canhld94)).
* Amélioration de la résilience globale de ClickHouse en cas de grand nombre de parts dans une partition (plus de 1000). Cela peut réduire le nombre d’erreurs `TOO_MANY_PARTS`. [#55526](https://github.com/ClickHouse/ClickHouse/pull/55526) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Réduction de la consommation mémoire lors du chargement des dictionnaires hiérarchiques. [#55838](https://github.com/ClickHouse/ClickHouse/pull/55838) ([Nikita Taranov](https://github.com/nickitat)).
* Tous les dictionnaires prennent en charge le paramètre `dictionary_use_async_executor`. [#55839](https://github.com/ClickHouse/ClickHouse/pull/55839) ([vdimir](https://github.com/vdimir)).
* Évite une utilisation excessive de la mémoire lors de la désérialisation de AggregateFunctionTopKGenericData. [#55947](https://github.com/ClickHouse/ClickHouse/pull/55947) ([Raúl Marín](https://github.com/Algunenano)).
* Sur un Keeper comportant un grand nombre de watches, les threads AsyncMetrics peuvent consommer 100 % du CPU pendant un temps significatif dans `DB::KeeperStorage::getSessionsWithWatchesCount`. Le correctif consiste à éviter de parcourir les ensembles volumineux `watches` et `list_watches`. [#56054](https://github.com/ClickHouse/ClickHouse/pull/56054) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout du paramètre `optimize_trivial_approximate_count_query` pour utiliser une approximation de `count` pour le moteur de stockage EmbeddedRocksDB. Activation du trivial count pour StorageJoin. [#55806](https://github.com/ClickHouse/ClickHouse/pull/55806) ([Duc Canh Le](https://github.com/canhld94)).

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

* Les fonctions `toDayOfWeek` (alias MySQL : `DAYOFWEEK`), `toYearWeek` (`YEARWEEK`) et `toWeek` (`WEEK`) prennent désormais en charge les arguments `String`. Leur comportement est ainsi cohérent avec celui de MySQL. [#55589](https://github.com/ClickHouse/ClickHouse/pull/55589) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout du paramètre `date_time_overflow_behavior` avec les valeurs possibles `ignore`, `throw`, `saturate`, qui contrôle le comportement en cas de dépassement lors de la conversion de Date, Date32, DateTime64, Integer ou Float vers Date, Date32, DateTime ou DateTime64. [#55696](https://github.com/ClickHouse/ClickHouse/pull/55696) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajout de la prise en charge des paramètres de requête pour `ALTER TABLE ... ACTION PARTITION [ID] {parameter_name:ParameterType}`. Fusionne [#49516](https://github.com/ClickHouse/ClickHouse/issues/49516). Clôt [#49449](https://github.com/ClickHouse/ClickHouse/issues/49449). [#55604](https://github.com/ClickHouse/ClickHouse/pull/55604) ([alesapin](https://github.com/alesapin)).
* Affichage plus lisible des identifiants de processeur dans EXPLAIN. [#48852](https://github.com/ClickHouse/ClickHouse/pull/48852) ([Vlad Seliverstov](https://github.com/behebot)).
* La création d’un dictionnaire direct avec un champ lifetime sera rejetée lors de la création (car lifetime n’a pas de sens pour les dictionnaires directs). Corrige : [#27861](https://github.com/ClickHouse/ClickHouse/issues/27861). [#49043](https://github.com/ClickHouse/ClickHouse/pull/49043) ([Rory Crispin](https://github.com/RoryCrispin)).
* Autorisation des paramètres dans les requêtes avec partitions comme `ALTER TABLE t DROP PARTITION`. Clôt [#49449](https://github.com/ClickHouse/ClickHouse/issues/49449). [#49516](https://github.com/ClickHouse/ClickHouse/pull/49516) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout d’une nouvelle colonne `xid` à `system.zookeeper_connection`. [#50702](https://github.com/ClickHouse/ClickHouse/pull/50702) ([helifu](https://github.com/helifu)).
* Affichage des paramètres du serveur corrects dans `system.server_settings` après rechargement de la configuration. [#53774](https://github.com/ClickHouse/ClickHouse/pull/53774) ([helifu](https://github.com/helifu)).
* Ajout de la prise en charge du caractère moins mathématique `−` dans les requêtes, comme pour `-`. [#54100](https://github.com/ClickHouse/ClickHouse/pull/54100) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de groupes de réplicas au moteur de base de données expérimental `Replicated`. Clôt [#53620](https://github.com/ClickHouse/ClickHouse/issues/53620). [#54421](https://github.com/ClickHouse/ClickHouse/pull/54421) ([Nikolay Degterinsky](https://github.com/evillique)).
* Il vaut mieux réessayer les erreurs S3 réessayables que faire échouer complètement la requête. Une valeur plus élevée est désormais définie par défaut pour s3\_retry\_attempts. [#54770](https://github.com/ClickHouse/ClickHouse/pull/54770) ([Sema Checherinda](https://github.com/CheSema)).
* Ajout du mode d’équilibrage de charge `hostname_levenshtein_distance`. [#54826](https://github.com/ClickHouse/ClickHouse/pull/54826) ([JackyWoo](https://github.com/JackyWoo)).
* Amélioration du masquage des secrets dans les logs. [#55089](https://github.com/ClickHouse/ClickHouse/pull/55089) ([Vitaly Baranov](https://github.com/vitlibar)).
* Pour l’instant, l’analyse des projections sera effectuée uniquement à partir du query plan. Le paramètre `query_plan_optimize_projection` est devenu obsolète (il était activé par défaut depuis longtemps). [#55112](https://github.com/ClickHouse/ClickHouse/pull/55112) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Lorsque la fonction `untuple` est désormais appelée sur un tuple avec des éléments nommés et qu’elle possède elle-même un alias (par ex. `select untuple(tuple(1)::Tuple(element_alias Int)) AS untuple_alias`), le nom de la colonne résultante est maintenant généré à partir de l’alias de `untuple` et de l’alias de l’élément du tuple (dans l’exemple : "untuple\_alias.element\_alias"). [#55123](https://github.com/ClickHouse/ClickHouse/pull/55123) ([garcher22](https://github.com/garcher22)).
* Ajout du paramètre `describe_include_virtual_columns`, qui permet d’inclure les colonnes virtuelles de la table dans le résultat de la requête `DESCRIBE`. Ajout également du paramètre `describe_compact_output`. S’il est défini sur `true`, la requête `DESCRIBE` renvoie uniquement les noms et les types des colonnes, sans informations supplémentaires. [#55129](https://github.com/ClickHouse/ClickHouse/pull/55129) ([Anton Popov](https://github.com/CurtizJ)).
* Il arrive que `OPTIMIZE` avec `optimize_throw_if_noop=1` échoue avec l’erreur `unknown reason`, alors que la véritable cause est la présence de projections différentes dans différentes parts. Ce comportement a été corrigé. [#55130](https://github.com/ClickHouse/ClickHouse/pull/55130) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permet d’avoir plusieurs tables `MaterializedPostgreSQL` suivant la même table Postgres. Par défaut, ce comportement n’est pas activé (pour des raisons de compatibilité, car il s’agit d’un changement non rétrocompatible), mais il peut l’être via le paramètre `materialized_postgresql_use_unique_replication_consumer_identifier`. Closes [#54918](https://github.com/ClickHouse/ClickHouse/issues/54918). [#55145](https://github.com/ClickHouse/ClickHouse/pull/55145) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permet d’analyser des `DateTime64` et `DateTime` négatifs avec une partie fractionnaire à partir de chaînes courtes. [#55146](https://github.com/ClickHouse/ClickHouse/pull/55146) ([Andrey Zvonov](https://github.com/zvonand)).
* Pour améliorer la compatibilité avec MySQL, 1. `information_schema.tables` inclut désormais le nouveau champ `table_rows`, et 2. `information_schema.columns` inclut désormais le nouveau champ `extra`. [#55215](https://github.com/ClickHouse/ClickHouse/pull/55215) ([Robert Schulze](https://github.com/rschu1ze)).
* `clickhouse-client` n’affichera pas "0 rows in set" si la valeur est nulle et qu’une exception a été levée. [#55240](https://github.com/ClickHouse/ClickHouse/pull/55240) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Prise en charge de `RENAME` sans le mot-clé `TABLE`, comme dans `RENAME db.t1 to db.t2`. [#55373](https://github.com/ClickHouse/ClickHouse/pull/55373) ([凌涛](https://github.com/lingtaolf)).
* Ajout de `internal_replication` à `system.clusters`. [#55377](https://github.com/ClickHouse/ClickHouse/pull/55377) ([Konstantin Morozov](https://github.com/k-morozov)).
* Sélection du resolver de proxy distant en fonction du protocole de la requête, ajout de la documentation sur la fonctionnalité de proxy et suppression de `DB::ProxyConfiguration::Protocol::ANY`. [#55430](https://github.com/ClickHouse/ClickHouse/pull/55430) ([Arthur Passos](https://github.com/arthurpassos)).
* Évite de réessayer les opérations Keeper sur INSERT après l’arrêt de la table. [#55519](https://github.com/ClickHouse/ClickHouse/pull/55519) ([Azat Khuzhin](https://github.com/azat)).
* `SHOW COLUMNS` signale désormais correctement le type `FixedString` comme `BLOB` si le paramètre `use_mysql_types_in_show_columns` est activé. Deux nouveaux paramètres ont également été ajoutés, `mysql_map_string_to_text_in_show_columns` et `mysql_map_fixed_string_to_text_in_show_columns`, pour renvoyer les types `String` et `FixedString` en `TEXT` ou `BLOB`. [#55617](https://github.com/ClickHouse/ClickHouse/pull/55617) ([Serge Klochkov](https://github.com/slvrtrn)).
* Au démarrage des tables ReplicatedMergeTree, le serveur ClickHouse vérifie l’ensemble des parts afin de détecter les parts inattendues (présentes localement, mais pas dans ZooKeeper). Toutes les parts inattendues sont déplacées vers le répertoire detached et, à la place, le serveur tente de restaurer certaines parts ancêtres (couvertes). Désormais, le serveur essaie de restaurer les ancêtres les plus proches au lieu de parts couvertes choisies aléatoirement. [#55645](https://github.com/ClickHouse/ClickHouse/pull/55645) ([alesapin](https://github.com/alesapin)).
* Le tableau de bord avancé prend désormais en charge les graphiques déplaçables sur les appareils tactiles. Cela clôt [#54206](https://github.com/ClickHouse/ClickHouse/issues/54206). [#55649](https://github.com/ClickHouse/ClickHouse/pull/55649) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Utilise le format de requête par défaut s’il est défini lors de l’affichage d’une exception avec `http_write_exception_in_output_format`. [#55739](https://github.com/ClickHouse/ClickHouse/pull/55739) ([Raúl Marín](https://github.com/Algunenano)).
* Fournit un meilleur message pour les pièges courants liés à MATERIALIZED VIEW. [#55826](https://github.com/ClickHouse/ClickHouse/pull/55826) ([Raúl Marín](https://github.com/Algunenano)).
* Si vous avez supprimé la base de données actuelle, vous pourrez toujours exécuter certaines requêtes dans `clickhouse-local` et basculer vers une autre base de données. Cela rend le comportement cohérent avec `clickhouse-client`. Cela clôt [#55834](https://github.com/ClickHouse/ClickHouse/issues/55834). [#55853](https://github.com/ClickHouse/ClickHouse/pull/55853) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les fonctions `(add|subtract)(Year|Quarter|Month|Week|Day|Hour|Minute|Second|Millisecond|Microsecond|Nanosecond)` prennent désormais en charge les arguments de date encodés sous forme de chaîne, par exemple `SELECT addDays('2023-10-22', 1)`. Cela améliore la compatibilité avec MySQL et est nécessaire pour Tableau Online. [#55869](https://github.com/ClickHouse/ClickHouse/pull/55869) ([Robert Schulze](https://github.com/rschu1ze)).
* Le paramètre `apply_deleted_mask`, lorsqu’il est désactivé, permet de lire les lignes marquées comme supprimées par des requêtes lightweight DELETE. Cela est utile pour le débogage. [#55952](https://github.com/ClickHouse/ClickHouse/pull/55952) ([Alexander Gololobov](https://github.com/davenger)).
* Permet d’ignorer les valeurs `null` lors de la sérialisation de Tuple en objets JSON, ce qui permet de conserver la compatibilité avec la fonction `to_json` de Spark, également utile pour gluten. [#55956](https://github.com/ClickHouse/ClickHouse/pull/55956) ([李扬](https://github.com/taiyang-li)).
* Les fonctions `(add|sub)Date` prennent désormais en charge les arguments de date encodés sous forme de chaîne, par exemple `SELECT addDate('2023-10-22 11:12:13', INTERVAL 5 MINUTE)`. La même prise en charge des arguments de date encodés sous forme de chaîne a été ajoutée aux opérateurs plus et moins, par exemple `SELECT '2023-10-23' + INTERVAL 1 DAY`. Cela améliore la compatibilité avec MySQL et est nécessaire pour Tableau Online. [#55960](https://github.com/ClickHouse/ClickHouse/pull/55960) ([Robert Schulze](https://github.com/rschu1ze)).
* Permet d’utiliser des chaînes non entre guillemets avec CR (`\r`) dans le format CSV. Clôt [#39930](https://github.com/ClickHouse/ClickHouse/issues/39930). [#56046](https://github.com/ClickHouse/ClickHouse/pull/56046) ([Kruglov Pavel](https://github.com/Avogar)).
* Permet d’exécuter `clickhouse-keeper` avec une configuration intégrée. [#56086](https://github.com/ClickHouse/ClickHouse/pull/56086) ([Maksim Kita](https://github.com/kitaisreal)).
* Définit une valeur maximale pour le paramètre de configuration `queued.min.messages` afin d’éviter un problème au démarrage de la récupération des données avec Kafka. [#56121](https://github.com/ClickHouse/ClickHouse/pull/56121) ([Stas Morozov](https://github.com/r3b-fish)).
* Correction d'une faute de frappe dans la fonction SQL `minSampleSizeContinous` (renommée `minSampleSizeContinuous`). L'ancien nom est conservé pour assurer la rétrocompatibilité. Clôt : [#56139](https://github.com/ClickHouse/ClickHouse/issues/56139). [#56143](https://github.com/ClickHouse/ClickHouse/pull/56143) ([Dorota Szeremeta](https://github.com/orotaday)).
* Affichage du chemin des parts corrompues sur disque avant l'arrêt du serveur. Avant cette modification, si une part était corrompue sur disque et que le serveur ne pouvait pas démarrer, il était presque impossible de déterminer quelle part était en cause. C'est corrigé. [#56181](https://github.com/ClickHouse/ClickHouse/pull/56181) ([Duc Canh Le](https://github.com/canhld94)).

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

* Si la base de données dans Docker est déjà initialisée, il n'est pas nécessaire de la réinitialiser lors des lancements suivants. Cela peut potentiellement corriger le problème de redémarrages infinis du conteneur lorsque la base de données ne parvient pas à se charger en 1 000 tentatives (cas pertinent pour les très grandes bases de données et les configurations multinœuds). [#50724](https://github.com/ClickHouse/ClickHouse/pull/50724) ([Alexander Nikolaev](https://github.com/AlexNik)).
* La ressource contenant le code source, y compris les sous-modules, est compilée dans une tâche de build spéciale pour Darwin. Elle peut être utilisée pour compiler ClickHouse sans avoir à extraire les sous-modules. [#51435](https://github.com/ClickHouse/ClickHouse/pull/51435) ([Ilya Yatsishin](https://github.com/qoega)).
* Une erreur se produisait lors de la compilation de ClickHouse avec le jeu d'instructions AVX activé globalement (ce qui n'est pas recommandé). La raison est que snappy n'active pas `SNAPPY_HAVE_X86_CRC32`. [#55049](https://github.com/ClickHouse/ClickHouse/pull/55049) ([monchickey](https://github.com/monchickey)).
* Résolution d'un problème lors du lancement autonome de `clickhouse-keeper` depuis le paquet `clickhouse-server`. [#55226](https://github.com/ClickHouse/ClickHouse/pull/55226) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Dans les tests, la version de RabbitMQ a été mise à jour vers 3.12.6. La collecte des logs pour les tests RabbitMQ a également été améliorée. [#55424](https://github.com/ClickHouse/ClickHouse/pull/55424) ([Ilya Yatsishin](https://github.com/qoega)).
* La différence entre les messages d'erreur d'openssl et de boringssl a été modifiée pour corriger le test fonctionnel. [#55975](https://github.com/ClickHouse/ClickHouse/pull/55975) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Utilisation du dépôt upstream pour apache datasketches. [#55787](https://github.com/ClickHouse/ClickHouse/pull/55787) ([Nikita Taranov](https://github.com/nickitat)).

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

* Ne plus créer de liens physiques pour les fichiers d’index inversé dans une mutation [#47663](https://github.com/ClickHouse/ClickHouse/pull/47663) ([cangyin](https://github.com/cangyin)).
* Correction d’un bug de la fonction `match` (regex) : avec un motif contenant une alternance, elle produisait une condition de clé incorrecte. Clôture #53222. [#54696](https://github.com/ClickHouse/ClickHouse/pull/54696) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de l’erreur 'Cannot find column' dans l’optimisation de lecture dans l’ordre avec ARRAY JOIN [#51746](https://github.com/ClickHouse/ClickHouse/pull/51746) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Prise en charge des sous-colonnes expérimentales manquantes de `Object(Nullable(json))` dans les requêtes. [#54052](https://github.com/ClickHouse/ClickHouse/pull/54052) ([zps](https://github.com/VanDarkholme7)).
* Réintégration du correctif pour `accurateCastOrNull` [#54629](https://github.com/ClickHouse/ClickHouse/pull/54629) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Correction de la détection de `DEFAULT` pour les colonnes d’une table Distributed créée sans AS [#55060](https://github.com/ClickHouse/ClickHouse/pull/55060) ([Vitaly Baranov](https://github.com/vitlibar)).
* Nettoyage approprié en cas d’exception dans le constructeur de ShellCommandSource [#55103](https://github.com/ClickHouse/ClickHouse/pull/55103) ([Alexander Gololobov](https://github.com/davenger)).
* Correction d’un interblocage lors de la mise à jour d’un rôle attribué via LDAP [#55119](https://github.com/ClickHouse/ClickHouse/pull/55119) ([Julian Maicher](https://github.com/jmaicher)).
* Désactivation de la mise à jour des statistiques d’erreur pour les exceptions internes [#55128](https://github.com/ClickHouse/ClickHouse/pull/55128) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction d’un interblocage dans les sauvegardes [#55132](https://github.com/ClickHouse/ClickHouse/pull/55132) ([alesapin](https://github.com/alesapin)).
* Correction de la récupération des fichiers du stockage Iceberg [#55144](https://github.com/ClickHouse/ClickHouse/pull/55144) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’élagage des partitions pour les colonnes supplémentaires dans le Set. [#55172](https://github.com/ClickHouse/ClickHouse/pull/55172) ([Amos Bird](https://github.com/amosbird)).
* Correction du recalcul des index de saut dans les requêtes ALTER UPDATE lorsque la table utilise la granularité adaptative [#55202](https://github.com/ClickHouse/ClickHouse/pull/55202) ([Duc Canh Le](https://github.com/canhld94)).
* Correctif pour le téléchargement en arrière-plan dans le cache fs [#55252](https://github.com/ClickHouse/ClickHouse/pull/55252) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Évite d’éventuelles fuites de mémoire dans les compresseurs en cas d’absence de finalisation du buffer [#55262](https://github.com/ClickHouse/ClickHouse/pull/55262) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’exécution des fonctions sur des colonnes creuses [#55275](https://github.com/ClickHouse/ClickHouse/pull/55275) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la fusion incorrecte de Nested pour SELECT FINAL FROM SummingMergeTree [#55276](https://github.com/ClickHouse/ClickHouse/pull/55276) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un bug empêchant la suppression d’une partition détachée dans un MergeTree répliqué sur S3 sans zero copy [#55309](https://github.com/ClickHouse/ClickHouse/pull/55309) ([alesapin](https://github.com/alesapin)).
* Correction d’un crash dans MergeSortingPartialResultTransform (en raison de zéro chunk après `remerge`) [#55335](https://github.com/ClickHouse/ClickHouse/pull/55335) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une race condition dans CreatingSetsTransform (en cas d’erreurs) due à la levée d’une exception partagée [#55338](https://github.com/ClickHouse/ClickHouse/pull/55338) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’optimisation « trash » (dans une certaine mesure) [#55353](https://github.com/ClickHouse/ClickHouse/pull/55353) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige une fuite dans StorageHDFS [#55370](https://github.com/ClickHouse/ClickHouse/pull/55370) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’analyse des tableaux dans l’opérateur CAST [#55417](https://github.com/ClickHouse/ClickHouse/pull/55417) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige le filtrage sur les colonnes virtuelles avec un filtre OR dans une requête [#55418](https://github.com/ClickHouse/ClickHouse/pull/55418) ([Azat Khuzhin](https://github.com/azat)).
* Corrige des problèmes de connexion à MongoDB [#55419](https://github.com/ClickHouse/ClickHouse/pull/55419) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige la représentation des booléens dans l’interface MySQL [#55427](https://github.com/ClickHouse/ClickHouse/pull/55427) ([Serge Klochkov](https://github.com/slvrtrn)).
* Corrige le formatage de DateTime dans le protocole texte MySQL ainsi que le signalement des types LowCardinality(Nullable(T)) [#55479](https://github.com/ClickHouse/ClickHouse/pull/55479) ([Serge Klochkov](https://github.com/slvrtrn)).
* Fait en sorte que `use_mysql_types_in_show_columns` n’affecte que `SHOW COLUMNS` [#55481](https://github.com/ClickHouse/ClickHouse/pull/55481) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige l’analyse incorrecte de `DW_FORM_ref_addr` par le symboliseur de pile, qui provoquait parfois un plantage [#55483](https://github.com/ClickHouse/ClickHouse/pull/55483) ([Michael Kolupaev](https://github.com/al13n321)).
* Détruit la fibre en cas d’exception dans cancelBefore dans AsyncTaskExecutor [#55516](https://github.com/ClickHouse/ClickHouse/pull/55516) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige le non-fonctionnement des Query Parameters avec des handlers HTTP personnalisés [#55521](https://github.com/ClickHouse/ClickHouse/pull/55521) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige la vérification des données non prises en charge pour le format Values [#55527](https://github.com/ClickHouse/ClickHouse/pull/55527) ([Azat Khuzhin](https://github.com/azat)).
* Corrige 'Invalid cursor state' dans ODBC lors de l’interaction avec MS SQL Server [#55558](https://github.com/ClickHouse/ClickHouse/pull/55558) ([vdimir](https://github.com/vdimir)).
* Corrige le temps d’exécution maximal et le mode de dépassement 'break' [#55577](https://github.com/ClickHouse/ClickHouse/pull/55577) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige un plantage dans QueryNormalizer avec des alias cycliques [#55602](https://github.com/ClickHouse/ClickHouse/pull/55602) ([vdimir](https://github.com/vdimir)).
* Désactive une optimisation erronée et ajoute un test [#55609](https://github.com/ClickHouse/ClickHouse/pull/55609) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Fusion [#52352](https://github.com/ClickHouse/ClickHouse/issues/52352) [#55621](https://github.com/ClickHouse/ClickHouse/pull/55621) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute un test pour éviter un tri Decimal incorrect [#55662](https://github.com/ClickHouse/ClickHouse/pull/55662) ([Amos Bird](https://github.com/amosbird)).
* Corrige la barre de progression pour les fonctions Cluster s3 et azure avec une URL sans globs [#55666](https://github.com/ClickHouse/ClickHouse/pull/55666) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige le filtrage sur les colonnes virtuelles avec un filtre OR dans une requête (nouvelle soumission) [#55678](https://github.com/ClickHouse/ClickHouse/pull/55678) ([Azat Khuzhin](https://github.com/azat)).
* Correctifs et améliorations pour le stockage Iceberg [#55695](https://github.com/ClickHouse/ClickHouse/pull/55695) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige une race condition dans CreatingSetsTransform (v2) [#55786](https://github.com/ClickHouse/ClickHouse/pull/55786) ([Azat Khuzhin](https://github.com/azat)).
* Lève une exception lors de l'analyse d'une chaîne invalide comme float si precise\_float\_parsing est à true [#55861](https://github.com/ClickHouse/ClickHouse/pull/55861) ([李扬](https://github.com/taiyang-li)).
* Désactive le pushdown des prédicats si la CTE contient des fonctions avec état [#55871](https://github.com/ClickHouse/ClickHouse/pull/55871) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige normalize ASTSelectWithUnionQuery, qui supprimait `FORMAT` de la requête [#55887](https://github.com/ClickHouse/ClickHouse/pull/55887) ([flynn](https://github.com/ucasfl)).
* Tente de corriger un segfault possible dans le format d'entrée ORC natif [#55891](https://github.com/ClickHouse/ClickHouse/pull/55891) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige les fonctions de fenêtre dans le cas de colonnes creuses. [#55895](https://github.com/ClickHouse/ClickHouse/pull/55895) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* correction : StorageNull prend en charge les sous-colonnes [#55912](https://github.com/ClickHouse/ClickHouse/pull/55912) ([FFish](https://github.com/wxybear)).
* N'inscrit pas dans le journal des erreurs les erreurs réessayables pour Replicated mutate/merge [#55944](https://github.com/ClickHouse/ClickHouse/pull/55944) ([Azat Khuzhin](https://github.com/azat)).
* Corrige `SHOW DATABASES LIMIT <N>` [#55962](https://github.com/ClickHouse/ClickHouse/pull/55962) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige le schéma Protobuf généré automatiquement pour les champs contenant un trait de soulignement [#55974](https://github.com/ClickHouse/ClickHouse/pull/55974) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige dateTime64ToSnowflake64() avec une échelle autre que celle par défaut [#55983](https://github.com/ClickHouse/ClickHouse/pull/55983) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige l'entrée/sortie de la colonne de dictionnaire Arrow [#55989](https://github.com/ClickHouse/ClickHouse/pull/55989) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la récupération du schéma depuis le registre de schémas dans AvroConfluent [#55991](https://github.com/ClickHouse/ClickHouse/pull/55991) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige 'Block structure mismatch' avec des ALTER et INSERT concurrents dans une table Buffer [#55995](https://github.com/ClickHouse/ClickHouse/pull/55995) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige le calcul incorrect de l'espace libre pour la stratégie JBOD least\_used [#56030](https://github.com/ClickHouse/ClickHouse/pull/56030) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un problème de scalaire manquant lors de l'évaluation de sous-requêtes à l'intérieur des fonctions de table [#56057](https://github.com/ClickHouse/ClickHouse/pull/56057) ([Amos Bird](https://github.com/amosbird)).
* Corrige un résultat de requête erroné lorsque http\_write\_exception\_in\_output\_format=1 [#56135](https://github.com/ClickHouse/ClickHouse/pull/56135) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige le cache de schéma pour la bascule JSON->JSONEachRow lorsque les paramètres sont modifiés [#56172](https://github.com/ClickHouse/ClickHouse/pull/56172) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute un gestionnaire d'erreurs à odbc-bridge [#56185](https://github.com/ClickHouse/ClickHouse/pull/56185) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).

### <a id="239" /> Version de ClickHouse 23.9, 2023-09-28. [Présentation](https://presentations.clickhouse.com/2023-release-23.9/), [Vidéo](https://www.youtube.com/watch?v=yS8YU-rBpMM)

<Frame>
  <iframe src="https://www.youtube.com/embed/yS8YU-rBpMM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Changement rétro-incompatible
</div>

* Suppression de l'option de configuration `status_info` et du statut des Dictionaries du handler Prometheus par défaut. [#54090](https://github.com/ClickHouse/ClickHouse/pull/54090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le cache expérimental de métadonnées des parts est supprimé du code source. [#54215](https://github.com/ClickHouse/ClickHouse/pull/54215) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Désactivation par défaut du paramètre `input_format_json_try_infer_numbers_from_strings`, afin de ne plus essayer d'inférer des nombres à partir de chaînes dans les formats JSON par défaut, pour éviter d'éventuelles erreurs d'analyse lorsque les données d'échantillon contiennent des chaînes qui ressemblent à des nombres. [#55099](https://github.com/ClickHouse/ClickHouse/pull/55099) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Amélioration de l’inférence de schéma pour les formats JSON : 1) Il est désormais possible d’inférer des tuples nommés à partir d’objets JSON sans utiliser le type JSON Experimental, grâce au paramètre `input_format_json_try_infer_named_tuples_from_objects` dans les formats JSON. Auparavant, sans le type JSON Experimental, nous ne pouvions inférer les objets JSON qu’en tant que Strings ou Maps ; il est désormais possible d’inférer un Tuple nommé. Le type Tuple obtenu contiendra toutes les clés des objets lus dans l’échantillon de données lors de l’inférence de schéma. Cela peut être utile pour lire des données JSON structurées sans objets clairsemés. Ce paramètre est activé par défaut. 2) Possibilité d’analyser un JSON array dans une colonne de type String avec le paramètre `input_format_json_read_arrays_as_strings`. Cela peut aider à lire des tableaux contenant des valeurs de types différents. 3) Possibilité d’utiliser le type String pour les clés JSON dont le type est inconnu (`null`/`[]`/`{}`) dans les données d’échantillon avec le paramètre `input_format_json_infer_incomplete_types_as_strings`. Désormais, dans les formats JSON, nous pouvons lire n’importe quelle valeur dans une colonne String et éviter l’erreur `Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps` lors de l’inférence de schéma en utilisant le type String pour les types inconnus, ce qui permet de lire les données correctement. [#54427](https://github.com/ClickHouse/ClickHouse/pull/54427) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge de l’IO scheduling pour les disques distants. La Storage configuration des disk types `s3`, `s3_plain`, `hdfs` et `azure_blob_storage` peut désormais contenir les éléments `read_resource` et `write_resource`, qui stockent des noms de resource. Les politiques d’ordonnancement de ces resources peuvent être configurées dans une section distincte de la server configuration, `resources`. Les queries peuvent être marquées à l’aide du paramètre `workload` et classées via la section `workload_classifiers` de la server configuration afin d’atteindre différents objectifs d’ordonnancement des resources. Plus de détails dans [la documentation](/fr/concepts/features/configuration/server-config/workload-scheduling). [#47009](https://github.com/ClickHouse/ClickHouse/pull/47009) ([Sergei Trifonov](https://github.com/serxa)). Ajout du type de nœud d’IO scheduling `bandwidth_limit`. Il permet de spécifier les contraintes `max_speed` et `max_burst` sur le trafic transitant par ce nœud. [#54618](https://github.com/ClickHouse/ClickHouse/pull/54618) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout d’un nouveau type d’authentication basé sur des clés SSH. Il fonctionne uniquement avec le native TCP protocol. [#41109](https://github.com/ClickHouse/ClickHouse/pull/41109) ([George Gamezardashvili](https://github.com/InfJoker)).
* Ajout d’une nouvelle column `_block_number` pour les MergeTree tables. [#44532](https://github.com/ClickHouse/ClickHouse/issues/44532). [#47532](https://github.com/ClickHouse/ClickHouse/pull/47532) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Ajout de la clause `IF EMPTY` pour les requêtes `DROP TABLE`. [#48915](https://github.com/ClickHouse/ClickHouse/pull/48915) ([Pavel Novitskiy](https://github.com/pnovitskiy)).
* Les fonctions SQL `toString(datetime, timezone)` et `formatDateTime(datetime, format, timezone)` prennent désormais en charge des arguments de fuseau horaire non constants. [#53680](https://github.com/ClickHouse/ClickHouse/pull/53680) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout de la prise en charge de `ALTER TABLE MODIFY COMMENT`. Remarque : quelque chose de similaire avait été ajouté il y a longtemps par un contributeur externe, mais cette fonctionnalité ne fonctionnait pas du tout et ne faisait qu’induire les utilisateurs en erreur. Cela clôt [#36377](https://github.com/ClickHouse/ClickHouse/issues/36377). [#51304](https://github.com/ClickHouse/ClickHouse/pull/51304) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Remarque : cette commande ne se propage pas entre les répliques, de sorte que les répliques d’une table peuvent avoir des commentaires différents.
* Ajout de `GCD`, c.-à-d. le « plus grand commun diviseur », comme nouveau codec de compression de données. Ce codec calcule le GCD de toutes les valeurs d’une colonne, puis divise chaque valeur par ce GCD. Le codec GCD est un codec de préparation des données (similaire à Delta et DoubleDelta) et ne peut pas être utilisé seul. Il fonctionne avec les types de données entiers, décimaux et date/heure. Un cas d’utilisation pertinent du codec GCD est celui de valeurs de colonne qui varient (augmentent/diminuent) par multiples du GCD, par ex. 24 - 28 - 16 - 24 - 8 - 24 (en supposant que GCD = 4). [#53149](https://github.com/ClickHouse/ClickHouse/pull/53149) ([Alexander Nam](https://github.com/seshWCS)).
* Deux nouveaux alias de type ont été ajoutés : `DECIMAL(P)` (raccourci de `DECIMAL(P, 0)`) et `DECIMAL` (raccourci de `DECIMAL(10, 0)`). Cela rend ClickHouse plus compatible avec le dialecte SQL de MySQL. [#53328](https://github.com/ClickHouse/ClickHouse/pull/53328) ([Val Doroshchuk](https://github.com/valbok)).
* Ajout d’une nouvelle table de journal système `backup_log` pour suivre toutes les opérations `BACKUP` et `RESTORE`. [#53638](https://github.com/ClickHouse/ClickHouse/pull/53638) ([Victor Krasnov](https://github.com/sirvickr)).
* Ajout d’un paramètre de format `output_format_markdown_escape_special_characters` (par défaut : false). Ce paramètre indique si les caractères spéciaux comme `!`, `#`, `$`, etc. doivent être échappés (c.-à-d. préfixés par une barre oblique inverse) dans le format de sortie `Markdown`. [#53860](https://github.com/ClickHouse/ClickHouse/pull/53860) ([irenjj](https://github.com/irenjj)).
* Ajout de la fonction `decodeHTMLComponent`. [#54097](https://github.com/ClickHouse/ClickHouse/pull/54097) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de `peak_threads_usage` à la table `query_log`. [#54335](https://github.com/ClickHouse/ClickHouse/pull/54335) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Ajout de la prise en charge de `SHOW FUNCTIONS` dans clickhouse-client. [#54337](https://github.com/ClickHouse/ClickHouse/pull/54337) ([Julia Kartseva](https://github.com/wat-ze-hex)).
* Ajout de la fonction `toDaysSinceYearZero` avec l’alias `TO_DAYS` (pour la compatibilité avec MySQL), qui renvoie le nombre de jours écoulés depuis le `0001-01-01` (dans le calendrier grégorien proleptique). [#54479](https://github.com/ClickHouse/ClickHouse/pull/54479) ([Robert Schulze](https://github.com/rschu1ze)). La fonction `toDaysSinceYearZero` prend désormais aussi en charge les arguments de type `DateTime` et `DateTime64`. [#54856](https://github.com/ClickHouse/ClickHouse/pull/54856) ([Serge Klochkov](https://github.com/slvrtrn)).
* Ajout des fonctions `YYYYMMDDtoDate`, `YYYYMMDDtoDate32`, `YYYYMMDDhhmmssToDateTime` et `YYYYMMDDhhmmssToDateTime64`. Elles convertissent une date ou une date avec heure encodée sous forme d’entier (par ex. 20230911) en date native ou en date avec heure native. Elles offrent ainsi la fonctionnalité inverse des fonctions existantes `YYYYMMDDToDate`, `YYYYMMDDToDateTime`, `YYYYMMDDhhmmddToDateTime`, `YYYYMMDDhhmmddToDateTime64`. [#54509](https://github.com/ClickHouse/ClickHouse/pull/54509) ([Quanfa Fu](https://github.com/dentiscalprum)) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de plusieurs fonctions de distance entre chaînes, notamment `byteHammingDistance` et `editDistance`. [#54935](https://github.com/ClickHouse/ClickHouse/pull/54935) ([flynn](https://github.com/ucasfl)).
* Possibilité de spécifier, pour les identifiants d’authentification des utilisateurs, une date d’expiration et, éventuellement, une heure, avec la clause `VALID UNTIL datetime`. [#51261](https://github.com/ClickHouse/ClickHouse/pull/51261) ([Nikolay Degterinsky](https://github.com/evillique)).
* Autorise les URL au format S3 pour les fonctions de table `s3`, `gcs`, `oss`. L’URL est automatiquement convertie en URL HTTP. Exemple : `'s3://clickhouse-public-datasets/hits.csv'` est convertie en `'https://clickhouse-public-datasets.s3.amazonaws.com/hits.csv'`. [#54931](https://github.com/ClickHouse/ClickHouse/pull/54931) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajoute le nouveau paramètre `print_pretty_type_names` pour afficher de manière lisible les noms de types profondément imbriqués, comme Tuple/Maps/Arrays. [#55095](https://github.com/ClickHouse/ClickHouse/pull/55095) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Accélère la lecture depuis S3 en activant les préchargements par défaut. [#53709](https://github.com/ClickHouse/ClickHouse/pull/53709) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ne lit plus implicitement les colonnes de clé primaire et de version dans les parts isolées lorsque cela n'est pas nécessaire pour les requêtes avec FINAL. [#53919](https://github.com/ClickHouse/ClickHouse/pull/53919) ([Duc Canh Le](https://github.com/canhld94)).
* Optimise le group by sur des clés constantes. Optimisera les requêtes avec group by `_file/_path` après [https://github.com/ClickHouse/ClickHouse/pull/53529](https://github.com/ClickHouse/ClickHouse/pull/53529). [#53549](https://github.com/ClickHouse/ClickHouse/pull/53549) ([Kruglov Pavel](https://github.com/Avogar)).
* Améliore les performances du tri pour les colonnes `Decimal`. Améliore les performances de l'insertion dans `MergeTree` si ORDER BY contient une colonne `Decimal`. Améliore les performances du tri lorsque les données sont déjà triées ou presque. [#35961](https://github.com/ClickHouse/ClickHouse/pull/35961) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances pour l'analyse de requêtes de grande taille. Corrige [#51224](https://github.com/ClickHouse/ClickHouse/issues/51224). [#51469](https://github.com/ClickHouse/ClickHouse/pull/51469) ([frinkr](https://github.com/frinkr)).
* Optimisation permettant de réécrire `COUNT(DISTINCT ...)` et diverses variantes de `uniq` en `count` lorsqu'ils sont sélectionnés à partir d'une sous-requête avec GROUP BY. [#52082](https://github.com/ClickHouse/ClickHouse/pull/52082) [#52645](https://github.com/ClickHouse/ClickHouse/pull/52645) ([JackyWoo](https://github.com/JackyWoo)).
* Supprime les appels manuels à `mmap/mremap/munmap` et délègue tout ce travail à `jemalloc`, ce qui améliore légèrement les performances. [#52792](https://github.com/ClickHouse/ClickHouse/pull/52792) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige une consommation CPU élevée lors de l'utilisation de NATS. [#54399](https://github.com/ClickHouse/ClickHouse/pull/54399) ([Vasilev Pyotr](https://github.com/vahpetr)).
* Puisque nous utilisons des instructions distinctes pour exécuter `toString` avec un argument datetime, il est possible d'améliorer légèrement les performances pour les arguments non datetime et de simplifier certaines parties du code. Suite de [#53680](https://github.com/ClickHouse/ClickHouse/issues/53680). [#54443](https://github.com/ClickHouse/ClickHouse/pull/54443) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Au lieu de sérialiser les éléments JSON dans un `std::stringstream`, cette PR tente de placer directement le résultat de la sérialisation dans `ColumnString`. [#54613](https://github.com/ClickHouse/ClickHouse/pull/54613) ([lgbo](https://github.com/lgbo-ustc)).
* Active l'optimisation ORDER BY pour lire les données dans l'ordre correspondant depuis une table MergeTree lorsque celle-ci est derrière une vue. [#54628](https://github.com/ClickHouse/ClickHouse/pull/54628) ([Vitaly Baranov](https://github.com/vitlibar)).
* Améliore les fonctions SQL JSON en réutilisant `GeneratorJSONPath` et en supprimant plusieurs pointeurs partagés. [#54735](https://github.com/ClickHouse/ClickHouse/pull/54735) ([lgbo](https://github.com/lgbo-ustc)).
* Keeper tente de regrouper les requêtes de flush pour de meilleures performances. [#53049](https://github.com/ClickHouse/ClickHouse/pull/53049) ([Antonio Andelic](https://github.com/antonio2368)).
* Désormais, `clickhouse-client` traite les fichiers en parallèle dans le cas de `INFILE 'glob_expression'`. Clôt [#54218](https://github.com/ClickHouse/ClickHouse/issues/54218). [#54533](https://github.com/ClickHouse/ClickHouse/pull/54533) ([Max K.](https://github.com/mkaynov)).
* Permet d'utiliser la clé primaire pour la fonction IN lorsque les types des colonnes de la clé primaire diffèrent de ceux des colonnes situées à droite de la fonction `IN`. Exemple : `SELECT id FROM test_table WHERE id IN (SELECT '5')`. Corrige [#48936](https://github.com/ClickHouse/ClickHouse/issues/48936). [#54544](https://github.com/ClickHouse/ClickHouse/pull/54544) ([Maksim Kita](https://github.com/kitaisreal)).
* Hash JOIN tente de réduire les tampons internes lorsqu'ils consomment la moitié de la mémoire maximale disponible (définie par `max_bytes_in_join`). [#54584](https://github.com/ClickHouse/ClickHouse/pull/54584) ([vdimir](https://github.com/vdimir)).
* Respecte `max_block_size` pour ARRAY JOIN afin d'éviter d'éventuelles erreurs OOM. Corrige [#54290](https://github.com/ClickHouse/ClickHouse/issues/54290). [#54664](https://github.com/ClickHouse/ClickHouse/pull/54664) ([李扬](https://github.com/taiyang-li)).
* Réutilise les connexions HTTP dans la fonction de table `s3`. [#54812](https://github.com/ClickHouse/ClickHouse/pull/54812) ([Michael Kolupaev](https://github.com/al13n321)).
* Remplace la recherche linéaire dans `MergeTreeRangeReader::Stream::ceilRowsToCompleteGranules` par une recherche binaire. [#54869](https://github.com/ClickHouse/ClickHouse/pull/54869) ([usurai](https://github.com/usurai)).

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

* La création des index `Annoy` peut désormais être parallélisée à l'aide du paramètre `max_threads_for_annoy_index_creation`. [#54047](https://github.com/ClickHouse/ClickHouse/pull/54047) ([Robert Schulze](https://github.com/rschu1ze)).
* Les répliques parallèles sur Distributed ne lisent pas depuis toutes les répliques [#54199](https://github.com/ClickHouse/ClickHouse/pull/54199) ([Igor Nikonov](https://github.com/devcrafter)).

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

* Permet de remplacer les noms de fichiers de colonnes trop longs dans les data parts `MergeTree` par des hachages de noms. Cela permet d’éviter l’erreur `File name too long` dans certains cas. [#50612](https://github.com/ClickHouse/ClickHouse/pull/50612) ([Anton Popov](https://github.com/CurtizJ)).
* Interprète les données au format `JSON` comme `JSONEachRow` en cas d’échec de l’analyse des métadonnées. Cela permet de lire les fichiers avec l’extension `.json` même si leur format réel est JSONEachRow. Clôt [#45740](https://github.com/ClickHouse/ClickHouse/issues/45740). [#54405](https://github.com/ClickHouse/ClickHouse/pull/54405) ([Kruglov Pavel](https://github.com/Avogar)).
* Produit un JSON/XML valide en cas d’exception pendant l’exécution d’une requête HTTP. Ajout du paramètre `http_write_exception_in_output_format` pour activer/désactiver ce comportement (activé par défaut). [#52853](https://github.com/ClickHouse/ClickHouse/pull/52853) ([Kruglov Pavel](https://github.com/Avogar)).
* La vue `information_schema.tables` inclut désormais un nouveau champ `data_length` qui indique la taille approximative des données sur disque. Nécessaire pour exécuter les requêtes générées par Amazon QuickSight. [#55037](https://github.com/ClickHouse/ClickHouse/pull/55037) ([Robert Schulze](https://github.com/rschu1ze)).
* L’interface MySQL a bénéficié d’une implémentation minimale des prepared statements, suffisante pour permettre une connexion de Tableau Online à ClickHouse via le connecteur MySQL. [#54115](https://github.com/ClickHouse/ClickHouse/pull/54115) ([Serge Klochkov](https://github.com/slvrtrn)). Remarque : l’implémentation des prepared statements reste très limitée ; la liaison d’arguments n’est pas encore prise en charge, car elle n’est pas nécessaire dans ce cas d’usage particulier de Tableau Online. Elle sera ajoutée ultérieurement si nécessaire, après des tests approfondis de Tableau Online en cas de problème constaté.
* Prise en charge des modes de correspondance insensibles à la casse et dot-all dans les dictionnaires `regexp_tree`. [#50906](https://github.com/ClickHouse/ClickHouse/pull/50906) ([Johann Gan](https://github.com/johanngan)).
* Amélioration de Keeper : ajout d’une commande Keeper `createIfNotExists`. [#48855](https://github.com/ClickHouse/ClickHouse/pull/48855) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Inférence des types entiers plus précise, correction de [#51236](https://github.com/ClickHouse/ClickHouse/issues/51236). [#53003](https://github.com/ClickHouse/ClickHouse/pull/53003) ([Chen768959](https://github.com/Chen768959)).
* Ajout de la résolution des jeux de caractères dans les littéraux de chaîne pour MaterializedMySQL. [#53220](https://github.com/ClickHouse/ClickHouse/pull/53220) ([Val Doroshchuk](https://github.com/valbok)).
* Correction d’un problème subtil affectant le table engine `EmbeddedRocksDB`, rarement utilisé, dans un scénario extrêmement rare : il arrive parfois que le table engine `EmbeddedRocksDB` ne ferme pas correctement les fichiers sur NFS après l’exécution de `DROP TABLE`. [#53502](https://github.com/ClickHouse/ClickHouse/pull/53502) ([Mingliang Pan](https://github.com/liangliangpan)).
* `RESTORE TABLE ON CLUSTER` doit créer des tables répliquées avec un UUID identique sur les hôtes. Sinon, la macro `{uuid}` dans le chemin ZooKeeper ne peut pas fonctionner correctement après RESTORE. Cette PR implémente ce comportement. [#53765](https://github.com/ClickHouse/ClickHouse/pull/53765) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout du paramètre de restauration `restore_broken_parts_as_detached` : si sa valeur est true, le processus RESTORE ne s’arrête pas sur les parts endommagées pendant la restauration ; à la place, toutes les parts endommagées sont copiées dans le dossier `detached` avec le préfixe \`broken-from-backup'. Si sa valeur est false, le processus RESTORE s’arrête sur la première part endommagée (le cas échéant). La valeur par défaut est false. [#53877](https://github.com/ClickHouse/ClickHouse/pull/53877) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout du champ `elapsed_ns` aux en-têtes HTTP X-ClickHouse-Progress et X-ClickHouse-Summary. [#54179](https://github.com/ClickHouse/ClickHouse/pull/54179) ([joelynch](https://github.com/joelynch)).
* Implémentation des commandes `reconfig` ([https://github.com/ClickHouse/ClickHouse/pull/49450](https://github.com/ClickHouse/ClickHouse/pull/49450)), `sync` et `exists` pour keeper-client. [#54201](https://github.com/ClickHouse/ClickHouse/pull/54201) ([pufit](https://github.com/pufit)).
* `clickhouse-local` et `clickhouse-client` permettent désormais de spécifier le paramètre `--query` plusieurs fois, par ex. `./clickhouse-client --query "SELECT 1" --query "SELECT 2"`. Cette syntaxe est légèrement plus intuitive que `./clickhouse-client --multiquery "SELECT  1;S ELECT 2"`, un peu plus facile à utiliser dans des scripts (par ex. `queries.push_back('--query "$q"')`) et plus cohérente avec le comportement du paramètre existant `--queries-file` (par ex. `./clickhouse client --queries-file queries1.sql --queries-file queries2.sql`). [#54249](https://github.com/ClickHouse/ClickHouse/pull/54249) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la précision sub-second à `formatReadableTimeDelta`. [#54250](https://github.com/ClickHouse/ClickHouse/pull/54250) ([Andrey Zvonov](https://github.com/zvonand)).
* Activation de `allow_remove_stale_moving_parts` par défaut. [#54260](https://github.com/ClickHouse/ClickHouse/pull/54260) ([vdimir](https://github.com/vdimir)).
* Correction de l'utilisation du comptage mis en cache et amélioration de la barre de progression pour la lecture d'archives. [#54271](https://github.com/ClickHouse/ClickHouse/pull/54271) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge des identifiants S3 via SSO. Pour définir un profil à utiliser avec SSO, définissez la variable d'environnement `AWS_PROFILE`. [#54347](https://github.com/ClickHouse/ClickHouse/pull/54347) ([Antonio Andelic](https://github.com/antonio2368)).
* Prise en charge de NULL comme valeur par défaut pour les types imbriqués Array/Tuple/Map dans les formats d'entrée. Clôt [#51100](https://github.com/ClickHouse/ClickHouse/issues/51100). [#54351](https://github.com/ClickHouse/ClickHouse/pull/54351) ([Kruglov Pavel](https://github.com/Avogar)).
* Autorise la lecture de certaines configurations inhabituelles de chunks dans les formats Arrow/Parquet. [#54370](https://github.com/ClickHouse/ClickHouse/pull/54370) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout de l'alias `STD` à la fonction `stddevPop` pour la compatibilité avec MySQL. Clôt [#54274](https://github.com/ClickHouse/ClickHouse/issues/54274). [#54382](https://github.com/ClickHouse/ClickHouse/pull/54382) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de la fonction `addDate` pour la compatibilité avec MySQL et de `subDate` pour plus de cohérence. Référence : [#54275](https://github.com/ClickHouse/ClickHouse/issues/54275). [#54400](https://github.com/ClickHouse/ClickHouse/pull/54400) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de `modification_time` à `system.detached_parts`. [#54506](https://github.com/ClickHouse/ClickHouse/pull/54506) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d'un paramètre `splitby_max_substrings_includes_remaining_string` qui contrôle si les fonctions "splitBy\*()" avec l'argument "max\_substring" > 0 incluent le reste de la chaîne (le cas échéant) dans le tableau de résultats (sémantique Python/Spark) ou non. Le comportement par défaut ne change pas. [#54518](https://github.com/ClickHouse/ClickHouse/pull/54518) ([Robert Schulze](https://github.com/rschu1ze)).
* Amélioration de l'inférence des types entiers pour les champs `Int64`/`UInt64`. Suite de [#53003](https://github.com/ClickHouse/ClickHouse/pull/53003). Cela fonctionne désormais aussi pour les types imbriqués comme les Arrays d'Arrays et pour des fonctions comme `map/tuple`. Issue : [#51236](https://github.com/ClickHouse/ClickHouse/issues/51236). [#54553](https://github.com/ClickHouse/ClickHouse/pull/54553) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d’opérations sur les tableaux pour la multiplication, la division et le modulo avec un scalaire. Cela fonctionne dans les deux sens, par exemple `5 * [5, 5]` et `[5, 5] * 5` : les deux cas sont possibles. [#54608](https://github.com/ClickHouse/ClickHouse/pull/54608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout d’un argument `version` optionnel à la commande `rm` dans `keeper-client` pour rendre les suppressions plus sûres. [#54708](https://github.com/ClickHouse/ClickHouse/pull/54708) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Empêche systemd d’arrêter le serveur (ce qui peut entraîner une perte de données lors de l’utilisation de tables Buffer). [#54744](https://github.com/ClickHouse/ClickHouse/pull/54744) ([Azat Khuzhin](https://github.com/azat)).
* Ajout du champ `is_deterministic` à la table système `system.functions`, qui indique si le résultat d’une fonction est stable entre deux invocations (avec exactement les mêmes entrées) ou non. [#54766](https://github.com/ClickHouse/ClickHouse/pull/54766) [#55035](https://github.com/ClickHouse/ClickHouse/pull/55035) ([Robert Schulze](https://github.com/rschu1ze)).
* Les vues du schéma `information_schema` ont été rendues plus compatibles avec les vues équivalentes de MySQL (c.-à-d. qu’elles ont été modifiées et étendues), au point que Tableau Online peut désormais se connecter à ClickHouse. Plus précisément : 1. Le type du champ `information_schema.tables.table_type` est passé de Enum8 à String. 2. Ajout des champs `table_comment` et `table_collation` à la vue `information_schema.table`. 3. Ajout des vues `information_schema.key_column_usage` et `referential_constraints`. 4. Remplacement des alias en majuscules dans les vues `information_schema` par des colonnes explicites en majuscules. [#54773](https://github.com/ClickHouse/ClickHouse/pull/54773) ([Serge Klochkov](https://github.com/slvrtrn)).
* Le cache de requêtes renvoie désormais une erreur si vous essayez de mettre en cache le résultat d’une requête contenant une fonction non déterministe telle que `now`, `randomString` ou `dictGet`. Par rapport au comportement précédent (où le résultat n’était simplement pas mis en cache), cela réduit la confusion et les effets de surprise. [#54801](https://github.com/ClickHouse/ClickHouse/pull/54801) ([Robert Schulze](https://github.com/rschu1ze)).
* Interdiction des colonnes spéciales comme materialized/ephemeral/alias pour les stockages `file`/`s3`/`url`/..., correction de l’insert dans des colonnes éphémères depuis des fichiers. Résout [#53477](https://github.com/ClickHouse/ClickHouse/issues/53477). [#54803](https://github.com/ClickHouse/ClickHouse/pull/54803) ([Kruglov Pavel](https://github.com/Avogar)).
* La collecte des métadonnées pour les sauvegardes est désormais plus configurable. [#54804](https://github.com/ClickHouse/ClickHouse/pull/54804) ([Vitaly Baranov](https://github.com/vitlibar)).
* Le fichier de log de `clickhouse-local` (s’il est activé avec l’option --server\_logs\_file) fera désormais précéder chaque ligne d’un horodatage, de l’identifiant du thread, etc., comme `clickhouse-server`. [#54807](https://github.com/ClickHouse/ClickHouse/pull/54807) ([Michael Kolupaev](https://github.com/al13n321)).
* Champ `is_obsolete` dans la table `system.merge_tree_settings` : il vaut désormais 1 pour les paramètres merge tree obsolètes. Auparavant, seule la description indiquait qu’un paramètre était obsolète. [#54837](https://github.com/ClickHouse/ClickHouse/pull/54837) ([Robert Schulze](https://github.com/rschu1ze)).
* Il est désormais possible d’utiliser le pluriel avec les littéraux d’intervalle. `INTERVAL 2 HOURS` doit être équivalent à `INTERVAL 2 HOUR`. [#54860](https://github.com/ClickHouse/ClickHouse/pull/54860) ([Jordi Villar](https://github.com/jrdi)).
* Autorise systématiquement la création d’une projection avec une clé primaire `Nullable`. Cela corrige [#54814](https://github.com/ClickHouse/ClickHouse/issues/54814). [#54895](https://github.com/ClickHouse/ClickHouse/pull/54895) ([Amos Bird](https://github.com/amosbird)).
* Nouvelle tentative des opérations S3 de la sauvegarde après un échec dû à une réinitialisation de la connexion. [#54900](https://github.com/ClickHouse/ClickHouse/pull/54900) ([Vitaly Baranov](https://github.com/vitlibar)).
* Le message d’exception est désormais exact lorsque la valeur maximale d’un paramètre est inférieure à la valeur minimale. [#54925](https://github.com/ClickHouse/ClickHouse/pull/54925) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* `LIKE`, `match` et d’autres fonctions de correspondance par expressions régulières permettent désormais d’effectuer des correspondances avec des motifs contenant des sous-chaînes non UTF-8, avec repli sur une correspondance binaire. Exemple : vous pouvez utiliser `string LIKE '\xFE\xFF%'` pour détecter le BOM. Clôt [#54486](https://github.com/ClickHouse/ClickHouse/issues/54486). [#54942](https://github.com/ClickHouse/ClickHouse/pull/54942) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de l’événement de profil `ContextLockWaitMicroseconds`. [#55029](https://github.com/ClickHouse/ClickHouse/pull/55029) ([Maksim Kita](https://github.com/kitaisreal)).
* Keeper ajuste désormais dynamiquement les niveaux de log. [#50372](https://github.com/ClickHouse/ClickHouse/pull/50372) ([helifu](https://github.com/helifu)).
* Ajout de la fonction `timestamp` pour la compatibilité avec MySQL. Clôt [#54275](https://github.com/ClickHouse/ClickHouse/issues/54275). [#54639](https://github.com/ClickHouse/ClickHouse/pull/54639) ([Nikolay Degterinsky](https://github.com/evillique)).

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

* Mise à niveau du compilateur des builds officiels et d’intégration continue de ClickHouse, de Clang 16 vers 17. [#53831](https://github.com/ClickHouse/ClickHouse/pull/53831) ([Robert Schulze](https://github.com/rschu1ze)).
* Régénération des données tld pour les recherches (`tldLookup.generated.cpp`). [#54269](https://github.com/ClickHouse/ClickHouse/pull/54269) ([Bharat Nallan](https://github.com/bharatnc)).
* Suppression du lien symbolique redondant `clickhouse-keeper-client`. [#54587](https://github.com/ClickHouse/ClickHouse/pull/54587) ([Tomas Barton](https://github.com/deric)).
* Utilisation de `/usr/bin/env` pour localiser bash — cela prend désormais en charge Nix OS. [#54603](https://github.com/ClickHouse/ClickHouse/pull/54603) ([Fionera](https://github.com/fionera)).
* CMake a ajouté l’option `PROFILE_CPU`, nécessaire pour exécuter `perf record` sans utiliser de graphe d’appels DWARF. [#54917](https://github.com/ClickHouse/ClickHouse/pull/54917) ([Maksim Kita](https://github.com/kitaisreal)).
* Si l’éditeur de liens n’est pas LLD, arrêt avec une erreur fatale. [#55036](https://github.com/ClickHouse/ClickHouse/pull/55036) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La bibliothèque utilisée pour gérer (encoder/décoder) les valeurs base64 a été remplacée, de Turbo-Base64 vers aklomp-base64. Les deux bénéficient d’une accélération SIMD sur x86 et ARM, mais 1. la licence de la seconde (BSD-2) est plus favorable à ClickHouse, Turbo-Base64 étant entre-temps passé à GPL-3, 2. avec davantage d’étoiles sur GitHub, aklomp-base64 semble plus pérenne, 3. aklomp-base64 dispose d’une API légèrement plus agréable (même si cela reste subjectif), et 4. aklomp-base64 ne nous oblige pas à contourner des bugs (comme une initialisation non thread-safe). Remarque : aklomp-base64 rejette les valeurs base64 sans padding, tandis que Turbo-Base64 les décode au mieux. La RFC-4648 laisse ouverte la question de savoir si le padding est obligatoire ou non, mais selon le contexte, cela peut constituer un changement de comportement à connaître. [#54119](https://github.com/ClickHouse/ClickHouse/pull/54119) ([Mikhail Koviazin](https://github.com/mkmkme)).

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

* Correction de REPLACE/MOVE PARTITION avec la zero-copy replication (remarque : « zero-copy replication » est une fonctionnalité Experimental) [#54193](https://github.com/ClickHouse/ClickHouse/pull/54193) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction des verrous zero copy avec des hardlinks (remarque : « zero-copy replication » est une fonctionnalité Experimental) [#54859](https://github.com/ClickHouse/ClickHouse/pull/54859) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction des déchets zero copy (remarque : « zero-copy replication » est une fonctionnalité Experimental) [#54550](https://github.com/ClickHouse/ClickHouse/pull/54550) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Transmission du délai d’expiration des nouvelles tentatives HTTP en millisecondes (il était incorrect auparavant). [#54438](https://github.com/ClickHouse/ClickHouse/pull/54438) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’un message d’erreur trompeur dans OUTFILE avec `CapnProto`/`Protobuf` [#52870](https://github.com/ClickHouse/ClickHouse/pull/52870) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du rapport récapitulatif avec les parallel replicas et LIMIT [#53050](https://github.com/ClickHouse/ClickHouse/pull/53050) ([Raúl Marín](https://github.com/Algunenano)).
* Correction du throttling des BACKUPs depuis/vers S3 (lorsque la copie native n’était pas utilisée), ainsi qu’à quelques autres endroits [#53336](https://github.com/ClickHouse/ClickHouse/pull/53336) ([Azat Khuzhin](https://github.com/azat)).
* Correction du throttling des IO lors de la copie de répertoires entiers [#53338](https://github.com/ClickHouse/ClickHouse/pull/53338) ([Azat Khuzhin](https://github.com/azat)).
* Correction : les actions déplacées vers la condition prewhere peuvent perdre une colonne [#53492](https://github.com/ClickHouse/ClickHouse/pull/53492) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction d’une erreur interne lors du remplacement par des parts identiques octet pour octet [#53735](https://github.com/ClickHouse/ClickHouse/pull/53735) ([Pedro Riera](https://github.com/priera)).
* Correction : exiger les colonnes utilisées dans l’expression interpolate [#53754](https://github.com/ClickHouse/ClickHouse/pull/53754) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de l’initialisation de Cluster Discovery et de la configuration des points de défaillance dans la config [#54113](https://github.com/ClickHouse/ClickHouse/pull/54113) ([vdimir](https://github.com/vdimir)).
* Correction de problèmes dans `accurateCastOrNull` [#54136](https://github.com/ClickHouse/ClickHouse/pull/54136) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Correction de la clé primaire Nullable avec le modificateur FINAL [#54164](https://github.com/ClickHouse/ClickHouse/pull/54164) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une erreur qui empêchait l’insertion de nouvelles données dans une materialized view répliquée en présence de données dupliquées. [#54184](https://github.com/ClickHouse/ClickHouse/pull/54184) ([Pedro Riera](https://github.com/priera)).
* Correction : autoriser `IPv6` pour le bloom filter [#54200](https://github.com/ClickHouse/ClickHouse/pull/54200) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction d’une incompatibilité de type possible avec `IPv4` [#54212](https://github.com/ClickHouse/ClickHouse/pull/54212) ([Bharat Nallan](https://github.com/bharatnc)).
* Correction de `system.data_skipping_indices` pour les index recréés [#54225](https://github.com/ClickHouse/ClickHouse/pull/54225) ([Artur Malchanau](https://github.com/Hexta)).
* Correction d’un conflit de noms dans multiple join rewriter v2 [#54240](https://github.com/ClickHouse/ClickHouse/pull/54240) ([Tao Wang](https://github.com/wangtZJU)).
* Correction d’erreurs inattendues dans `system.errors` après un join [#54306](https://github.com/ClickHouse/ClickHouse/pull/54306) ([vdimir](https://github.com/vdimir)).
* Corrige `isZeroOrNull(NULL)` [#54316](https://github.com/ClickHouse/ClickHouse/pull/54316) ([flynn](https://github.com/ucasfl)).
* Correction : parallel replicas sur Distributed avec `prefer_localhost_replica` = 1 [#54334](https://github.com/ClickHouse/ClickHouse/pull/54334) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige une erreur logique dans la fusion verticale + ReplacingMergeTree + le nettoyage via OPTIMIZE [#54368](https://github.com/ClickHouse/ClickHouse/pull/54368) ([alesapin](https://github.com/alesapin)).
* Corrige une erreur possible `URI contains invalid characters` dans la table function `s3` [#54373](https://github.com/ClickHouse/ClickHouse/pull/54373) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un segfault dans l’optimisation AST de la fonction `arrayExists` [#54379](https://github.com/ClickHouse/ClickHouse/pull/54379) ([Nikolay Degterinsky](https://github.com/evillique)).
* Vérifie l’overflow avant l’addition dans la fonction `analysisOfVariance` [#54385](https://github.com/ClickHouse/ClickHouse/pull/54385) ([Antonio Andelic](https://github.com/antonio2368)).
* Reproduit et corrige le bug dans removeSharedRecursive [#54430](https://github.com/ClickHouse/ClickHouse/pull/54430) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige un résultat potentiellement incorrect avec SimpleAggregateFunction dans PREWHERE et FINAL [#54436](https://github.com/ClickHouse/ClickHouse/pull/54436) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le filtrage des parts avec indexHint lorsque l’analyzer n’est pas utilisé [#54449](https://github.com/ClickHouse/ClickHouse/pull/54449) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les projections agrégées avec des états normalized [#54480](https://github.com/ClickHouse/ClickHouse/pull/54480) ([Amos Bird](https://github.com/amosbird)).
* `clickhouse-local` : correction liée au paramètre multiquery [#54498](https://github.com/ClickHouse/ClickHouse/pull/54498) ([CuiShuoGuo](https://github.com/bakam412)).
* `clickhouse-local` prend en charge l’argument de ligne de commande `--database` [#54503](https://github.com/ClickHouse/ClickHouse/pull/54503) ([vdimir](https://github.com/vdimir)).
* Corrige une parsing error possible dans les formats `-WithNames` avec `input_format_with_names_use_header` désactivé [#54513](https://github.com/ClickHouse/ClickHouse/pull/54513) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un cas rare d’erreur CHECKSUM\_DOESNT\_MATCH [#54549](https://github.com/ClickHouse/ClickHouse/pull/54549) ([alesapin](https://github.com/alesapin)).
* Corrige le tri de UNION ALL sur des résultats déjà triés [#54564](https://github.com/ClickHouse/ClickHouse/pull/54564) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige l’installation du snapshot dans Keeper [#54572](https://github.com/ClickHouse/ClickHouse/pull/54572) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une condition de concurrence dans `ColumnUnique` [#54575](https://github.com/ClickHouse/ClickHouse/pull/54575) ([Nikita Taranov](https://github.com/nickitat)).
* Index Annoy/Usearch : corrige LOGICAL\_ERROR pendant la construction avec des valeurs par défaut [#54600](https://github.com/ClickHouse/ClickHouse/pull/54600) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige la sérialisation de `ColumnDecimal` [#54601](https://github.com/ClickHouse/ClickHouse/pull/54601) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige l’inférence de schéma pour les fonctions \*Cluster avec des noms de colonnes contenant des espaces [#54635](https://github.com/ClickHouse/ClickHouse/pull/54635) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l’utilisation de la structure des tables d’insertion en présence de valeurs par défaut et de colonnes d’insertion explicites [#54655](https://github.com/ClickHouse/ClickHouse/pull/54655) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction : éviter d’utiliser une regex de correspondance, susceptible de contenir une alternance, comme condition sur la clé. [#54696](https://github.com/ClickHouse/ClickHouse/pull/54696) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de ReplacingMergeTree avec vertical merge et nettoyage [#54706](https://github.com/ClickHouse/ClickHouse/pull/54706) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction des virtual columns qui avaient des valeurs incorrectes après ORDER BY [#54811](https://github.com/ClickHouse/ClickHouse/pull/54811) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction du filtrage des parts avec indexHint lorsque l’analyzer n’est pas utilisé [#54825](https://github.com/ClickHouse/ClickHouse/pull/54825) [#54449](https://github.com/ClickHouse/ClickHouse/pull/54449) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un segfault de Keeper lors de l’arrêt [#54841](https://github.com/ClickHouse/ClickHouse/pull/54841) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de `Invalid number of rows in Chunk` dans MaterializedPostgreSQL [#54844](https://github.com/ClickHouse/ClickHouse/pull/54844) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Déplacement des paramètres de format Obsolete dans une section distincte [#54855](https://github.com/ClickHouse/ClickHouse/pull/54855) ([Kruglov Pavel](https://github.com/Avogar)).
* Reconstruction de `minmax_count_projection` lorsque la partition key est modifiée [#54943](https://github.com/ClickHouse/ClickHouse/pull/54943) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un CAST incorrect vers `ColumnVector<Int128>` dans la fonction `if` [#55019](https://github.com/ClickHouse/ClickHouse/pull/55019) ([Kruglov Pavel](https://github.com/Avogar)).
* Empêche l’attachement de parts provenant de tables avec des projections ou des index différents [#55062](https://github.com/ClickHouse/ClickHouse/pull/55062) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Stocke NULL dans la map du résultat scalaire lorsque le résultat de la sous-requête est vide [#52240](https://github.com/ClickHouse/ClickHouse/pull/52240) ([vdimir](https://github.com/vdimir)).
* Correction : `FINAL` produit des read ranges invalides dans un cas rare [#54934](https://github.com/ClickHouse/ClickHouse/pull/54934) ([Nikita Taranov](https://github.com/nickitat)).
* Correction : quorum d’insert sans nouvelles tentatives de Keeper [#55026](https://github.com/ClickHouse/ClickHouse/pull/55026) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction de l’état simple avec Nullable [#55030](https://github.com/ClickHouse/ClickHouse/pull/55030) ([Pedro Riera](https://github.com/priera)).

### <a id="238" /> Version de ClickHouse 23.8 LTS, 2023-08-31. [Présentation](https://presentations.clickhouse.com/2023-release-23.8/), [Vidéo](https://www.youtube.com/watch?v=d1_pyoWcydk)

<Frame>
  <iframe src="https://www.youtube.com/embed/d1_pyoWcydk" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Changement rétro-incompatible
</div>

* Si un disque dynamique contient un nom, il doit être spécifié sous la forme `disk = disk(name = 'disk_name'`, ...) dans les arguments de la fonction disk. Dans la version précédente, il pouvait être spécifié sous la forme `disk = disk_<disk_name>(...)`, ce qui n’est désormais plus pris en charge. [#52820](https://github.com/ClickHouse/ClickHouse/pull/52820) ([Kseniia Sumarokova](https://github.com/kssenii)).
* `clickhouse-benchmark` établira des connexions en parallèle lorsqu’il est lancé avec `--concurrency` supérieur à 1. Auparavant, il était inutilisable si vous l’exécutiez avec 1000 connexions concurrentes entre l’Europe et les États-Unis. Le calcul du QPS est désormais correct pour les connexions à forte latence. Changement rétro-incompatible : l’option de sortie JSON de `clickhouse-benchmark` a été supprimée. Si vous utilisiez cette option, vous pouvez extraire les données de `system.query_log` au format JSON comme solution de contournement. [#53293](https://github.com/ClickHouse/ClickHouse/pull/53293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La colonne `microseconds` est supprimée de `system.text_log`, et la colonne `milliseconds` est supprimée de `system.metric_log`, car elles sont redondantes en présence de la colonne `event_time_microseconds`. [#53601](https://github.com/ClickHouse/ClickHouse/pull/53601) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La fonctionnalité de metadata cache est désormais obsolète. Elle est Experimental et nous ne l’avons jamais utilisée. Cette fonctionnalité est dangereuse : [#51182](https://github.com/ClickHouse/ClickHouse/issues/51182). La system table `system.merge_tree_metadata_cache` est supprimée. Le metadata cache reste disponible dans cette version, mais sera bientôt supprimé. Cela clôt [#39197](https://github.com/ClickHouse/ClickHouse/issues/39197). [#51303](https://github.com/ClickHouse/ClickHouse/pull/51303) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Désactivation de la prise en charge de 3DES dans les connexions TLS. [#52893](https://github.com/ClickHouse/ClickHouse/pull/52893) ([Kenji Noguchi](https://github.com/knoguchi)).

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

* Importation directe depuis des archives zip/7z/tar. Exemple : `file('*.zip :: *.csv')`. [#50321](https://github.com/ClickHouse/ClickHouse/pull/50321) ([nikitakeba](https://github.com/nikitakeba)).
* Ajout de la colonne `ptr` à `system.trace_log` pour `trace_type = 'MemorySample'`. Cette colonne contient une adresse d’allocation. Ajout de la fonction `flameGraph`, qui permet de générer un flamegraph de la mémoire allouée et non libérée. Remaniement de [#38391](https://github.com/ClickHouse/ClickHouse/issues/38391). [#45322](https://github.com/ClickHouse/ClickHouse/pull/45322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout de la table function `azureBlobStorageCluster`. L’ensemble des fonctionnalités prises en charge est très proche de celui de la table function `s3Cluster`. [#50795](https://github.com/ClickHouse/ClickHouse/pull/50795) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Autorise l’utilisation de `cluster`, `clusterAllReplicas`, `remote` et `remoteSecure` sans nom de table dans l’issue [#50808](https://github.com/ClickHouse/ClickHouse/issues/50808). [#50848](https://github.com/ClickHouse/ClickHouse/pull/50848) ([Yangkuan Liu](https://github.com/LiuYangkuan)).
* Une system table pour surveiller les consumers Kafka. [#50999](https://github.com/ClickHouse/ClickHouse/pull/50999) ([Ilya Golshtein](https://github.com/ilejn)).
* Ajout du paramètre `max_sessions_for_user`. [#51724](https://github.com/ClickHouse/ClickHouse/pull/51724) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Nouvelles fonctions `toUTCTimestamp/fromUTCTimestamp` pour se comporter comme `to_utc_timestamp/from_utc_timestamp` de Spark. [#52117](https://github.com/ClickHouse/ClickHouse/pull/52117) ([KevinyhZou](https://github.com/KevinyhZou)).
* Ajout des nouvelles fonctions `structureToCapnProtoSchema`/`structureToProtobufSchema`, qui convertissent la structure d’une table ClickHouse en schéma au format CapnProto/Protobuf. Permet d’importer/exporter des données au format CapnProto/Protobuf sans schéma de format externe, en utilisant un schéma autogenerated à partir de la structure de la table (contrôlé par les paramètres `format_capn_proto_use_autogenerated_schema`/`format_protobuf_use_autogenerated_schema`). Permet d’exporter le schéma autogenerated lors de l’import/export à l’aide du paramètre `output_format_schema`. [#52278](https://github.com/ClickHouse/ClickHouse/pull/52278) ([Kruglov Pavel](https://github.com/Avogar)).
* Un nouveau field `query_cache_usage` dans `system.query_log` indique désormais si et comment le query cache a été utilisé. [#52384](https://github.com/ClickHouse/ClickHouse/pull/52384) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout des nouvelles fonctions `startsWithUTF8` et `endsWithUTF8`. [#52555](https://github.com/ClickHouse/ClickHouse/pull/52555) ([李扬](https://github.com/taiyang-li)).
* Autorise un nombre variable de colonnes dans TSV/CustomSeparated/JSONCompactEachRow, et permet à la schema inference de fonctionner avec un nombre variable de colonnes. Ajout des paramètres `input_format_tsv_allow_variable_number_of_columns`, `input_format_custom_allow_variable_number_of_columns`, `input_format_json_compact_allow_variable_number_of_columns`. [#52692](https://github.com/ClickHouse/ClickHouse/pull/52692) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout des requêtes `SYSTEM STOP/START PULLING REPLICATION LOG` (pour tester `ReplicatedMergeTree`). [#52881](https://github.com/ClickHouse/ClickHouse/pull/52881) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Autorise l’exécution de fonctions constantes non déterministes dans les mutations sur l’initiateur. [#53129](https://github.com/ClickHouse/ClickHouse/pull/53129) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout du format d’entrée `One`, qui ne lit aucune donnée et renvoie toujours une seule ligne avec la colonne `dummy` de type `UInt8` et la valeur `0`, comme `system.one`. Il peut être utilisé avec les colonnes virtuelles `_file/_path` pour lister les fichiers dans les table functions file/s3/url/hdfs/etc sans lire aucune donnée. [#53209](https://github.com/ClickHouse/ClickHouse/pull/53209) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la fonction `tupleConcat`. Clôt [#52759](https://github.com/ClickHouse/ClickHouse/issues/52759). [#53239](https://github.com/ClickHouse/ClickHouse/pull/53239) ([Nikolay Degterinsky](https://github.com/evillique)).
* Prise en charge de l’opération `TRUNCATE DATABASE`. [#53261](https://github.com/ClickHouse/ClickHouse/pull/53261) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout du paramètre `max_threads_for_indexes` pour limiter le nombre de threads utilisés pour le traitement de la clé primaire. [#53313](https://github.com/ClickHouse/ClickHouse/pull/53313) ([jorisgio](https://github.com/jorisgio)).
* Réintroduction des fonctions SipHash avec clé. [#53525](https://github.com/ClickHouse/ClickHouse/pull/53525) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* ([#52755](https://github.com/ClickHouse/ClickHouse/issues/52755) , [#52895](https://github.com/ClickHouse/ClickHouse/issues/52895)) Ajout des fonctions `arrayRotateLeft`, `arrayRotateRight`, `arrayShiftLeft`, `arrayShiftRight`. [#53557](https://github.com/ClickHouse/ClickHouse/pull/53557) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Ajout de la colonne `name` à `system.clusters` comme alias de `cluster`. [#53605](https://github.com/ClickHouse/ClickHouse/pull/53605) ([irenjj](https://github.com/irenjj)).
* Le tableau de bord avancé permet désormais l’édition en masse (enregistrement/chargement). [#53608](https://github.com/ClickHouse/ClickHouse/pull/53608) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le tableau de bord avancé propose désormais une option pour agrandir les graphiques et les déplacer. [#53622](https://github.com/ClickHouse/ClickHouse/pull/53622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la prise en charge de l’addition et de la soustraction de tableaux : `[5,2] + [1,7]`. La division et la multiplication n’ont pas été implémentées en raison de l’ambiguïté entre la multiplication terme à terme et le produit scalaire des arguments. Clôt [#49939](https://github.com/ClickHouse/ClickHouse/issues/49939). [#52625](https://github.com/ClickHouse/ClickHouse/pull/52625) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout de la prise en charge des littéraux de chaîne comme noms de table. Clôt [#52178](https://github.com/ClickHouse/ClickHouse/issues/52178). [#52635](https://github.com/ClickHouse/ClickHouse/pull/52635) ([hendrik-m](https://github.com/hendrik-m)).

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

* Ajout du nouveau moteur de table `S3Queue` pour l’import de données en streaming depuis S3. Résout [#37012](https://github.com/ClickHouse/ClickHouse/issues/37012). [#49086](https://github.com/ClickHouse/ClickHouse/pull/49086) ([s-kat](https://github.com/s-kat)). Il n’est pas prêt à l’emploi. Ne l’utilisez pas.
* Activation de la lecture parallèle à partir des répliques via une table distribuée. En lien avec [#49708](https://github.com/ClickHouse/ClickHouse/issues/49708). [#53005](https://github.com/ClickHouse/ClickHouse/pull/53005) ([Igor Nikonov](https://github.com/devcrafter)).
* Ajout d’une prise en charge expérimentale de HNSW comme méthode de recherche approximative de voisins. [#53447](https://github.com/ClickHouse/ClickHouse/pull/53447) ([Davit Vardanyan](https://github.com/davvard)). Cette fonctionnalité est actuellement destinée à ceux qui poursuivent le travail sur son implémentation. Ne l’utilisez pas.

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

* Pushdown des filtres Parquet. C.-à-d. que lors de la lecture de fichiers Parquet, les groupes de lignes (fragments du fichier) sont ignorés en fonction de la condition WHERE et des valeurs min/max de chaque colonne. En particulier, si le fichier est approximativement trié sur une colonne, les requêtes qui filtrent sur une courte plage de cette colonne seront beaucoup plus rapides. [#52951](https://github.com/ClickHouse/ClickHouse/pull/52951) ([Michael Kolupaev](https://github.com/al13n321)).
* Optimisation de la lecture des petits groupes de lignes en les regroupant par lots dans Parquet. Corrige [#53069](https://github.com/ClickHouse/ClickHouse/issues/53069). [#53281](https://github.com/ClickHouse/ClickHouse/pull/53281) ([Kruglov Pavel](https://github.com/Avogar)).
* Optimisation de `count` à partir de fichiers dans la plupart des formats d'entrée. Corrige [#44334](https://github.com/ClickHouse/ClickHouse/issues/44334). [#53637](https://github.com/ClickHouse/ClickHouse/pull/53637) ([Kruglov Pavel](https://github.com/Avogar)).
* Utilisation d'un filtre par fichier/chemin avant la lecture dans les fonctions de table `url`/`file`/`hdfs`. [#53529](https://github.com/ClickHouse/ClickHouse/pull/53529) ([Kruglov Pavel](https://github.com/Avogar)).
* Activation de la compilation JIT pour AArch64, PowerPC, SystemZ, RISC-V. [#38217](https://github.com/ClickHouse/ClickHouse/pull/38217) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout du paramètre `rewrite_count_distinct_if_with_count_distinct_implementation` pour réécrire `countDistinctIf` avec `count_distinct_implementation`. Corrige [#30642](https://github.com/ClickHouse/ClickHouse/issues/30642). [#46051](https://github.com/ClickHouse/ClickHouse/pull/46051) ([flynn](https://github.com/ucasfl)).
* Accélération de la fusion des états des fonctions d'agrégation `uniq` et `uniqExact` en parallélisant la conversion avant la fusion. [#50748](https://github.com/ClickHouse/ClickHouse/pull/50748) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimisation des performances d'agrégation d'une clé String Nullable lors de l'utilisation d'un grand nombre de clés de longueur variable. [#51399](https://github.com/ClickHouse/ClickHouse/pull/51399) ([LiuNeng](https://github.com/liuneng1994)).
* Ajout d'un passage dans l'analyseur pour l'optimisation des filtres temporels avec préimage. Les expériences de performance de SSB sur le matériel ICX (processeur Intel Xeon Platinum 8380, 80 cœurs, 160 threads) montrent que ce changement pourrait apporter un gain de 8,5 % sur la moyenne géométrique du QPS lorsque l'analyseur expérimental est activé. [#52091](https://github.com/ClickHouse/ClickHouse/pull/52091) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Optimisation de la fusion si tous les ensembles de hachage sont à un seul niveau dans la fonction `uniqExact` (COUNT DISTINCT). [#52973](https://github.com/ClickHouse/ClickHouse/pull/52973) ([Jiebin Sun](https://github.com/jiebinn)).
* Moteur de table `Join` : ne pas cloner la structure de données du hash join avec toutes les colonnes. [#53046](https://github.com/ClickHouse/ClickHouse/pull/53046) ([Duc Canh Le](https://github.com/canhld94)).
* Implémentation du format d'entrée `ORC` natif sans la bibliothèque "apache arrow" afin d'améliorer les performances. [#53324](https://github.com/ClickHouse/ClickHouse/pull/53324) ([李扬](https://github.com/taiyang-li)).
* Le tableau de bord demandera au serveur de compresser les données, ce qui est utile pour les grandes plages temporelles sur des connexions Internet lentes. Par exemple, un graphique avec 86400 points peut représenter 1,5 Mo non compressés et 60 Ko compressés avec `br`. [#53569](https://github.com/ClickHouse/ClickHouse/pull/53569) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Meilleure utilisation du pool de threads pour les opérations BACKUP et RESTORE. [#53649](https://github.com/ClickHouse/ClickHouse/pull/53649) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Charger les métadonnées du cache du système de fichiers au démarrage, en parallèle. Configuré par le paramètre de cache `load_metadata_threads` (par défaut : 1). Lié à [#52037](https://github.com/ClickHouse/ClickHouse/issues/52037). [#52943](https://github.com/ClickHouse/ClickHouse/pull/52943) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Amélioration de `move_primary_key_columns_to_end_of_prewhere`. [#53337](https://github.com/ClickHouse/ClickHouse/pull/53337) ([Han Fei](https://github.com/hanfei1991)).
* Cela optimise l'interaction avec ClickHouse Keeper. Auparavant, l'appelant pouvait enregistrer plusieurs fois le même callback de watch. Dans ce cas, chaque entrée consommait de la mémoire et le même callback était appelé plusieurs fois, ce qui n'avait guère de sens. Pour éviter cela, l'appelant devait implémenter une logique empêchant d'ajouter plusieurs fois le même watch. Avec ce changement, cette déduplication est effectuée en interne si le callback de watch est transmis via shared\_ptr. [#53452](https://github.com/ClickHouse/ClickHouse/pull/53452) ([Alexander Gololobov](https://github.com/davenger)).
* Mettre en cache le nombre de lignes dans les fichiers pour count dans les fonctions file/s3/url/hdfs/azure. Le cache peut être activé ou désactivé via le paramètre `use_cache_for_count_from_files` (activé par défaut). Suite de [https://github.com/ClickHouse/ClickHouse/pull/53637](https://github.com/ClickHouse/ClickHouse/pull/53637). [#53692](https://github.com/ClickHouse/ClickHouse/pull/53692) ([Kruglov Pavel](https://github.com/Avogar)).
* Une gestion plus rigoureuse des threads améliore les performances de la table function S3 de plus de \~25 % sur un grand nombre de fichiers. [#53668](https://github.com/ClickHouse/ClickHouse/pull/53668) ([pufit](https://github.com/pufit)).

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

* Ajout de la configuration/du paramètre `stderr_reaction` pour contrôler la réaction (none, log ou throw) lorsque stderr d’une commande externe contient des données. Cela facilite le débogage des commandes externes. [#43210](https://github.com/ClickHouse/ClickHouse/pull/43210) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la colonne `partition` à `system part_log` et à la table Merge. [#48990](https://github.com/ClickHouse/ClickHouse/pull/48990) ([Jianfei Hu](https://github.com/incfly)).
* Les tailles des caches (index) uncompressed/mark, mmap et de requêtes peuvent désormais être configurées dynamiquement à l’exécution (sans redémarrage du serveur). [#51446](https://github.com/ClickHouse/ClickHouse/pull/51446) ([Robert Schulze](https://github.com/rschu1ze)).
* Si un dictionnaire est créé avec une clé complexe, la variante de layout "complex key" est choisie automatiquement. [#49587](https://github.com/ClickHouse/ClickHouse/pull/49587) ([xiebin](https://github.com/xbthink)).
* Ajout du paramètre `use_concurrency_control` pour mieux tester la nouvelle fonctionnalité de contrôle de la concurrence. [#49618](https://github.com/ClickHouse/ClickHouse/pull/49618) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de suggestions pour les noms de bases de données et de tables mal saisis. [#49801](https://github.com/ClickHouse/ClickHouse/pull/49801) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Lors de la lecture de petits fichiers HDFS via Gluten, nous avons constaté que cela prenait plus de temps qu’une query exécutée directement via Spark. Des améliorations ont donc été apportées sur ce point. [#50063](https://github.com/ClickHouse/ClickHouse/pull/50063) ([KevinyhZou](https://github.com/KevinyhZou)).
* Il y avait trop de logs d’erreur inutiles après l’expiration de la session, ce qui ne nous convenait pas. [#50171](https://github.com/ClickHouse/ClickHouse/pull/50171) ([helifu](https://github.com/helifu)).
* Introduction de sessions ZooKeeper de fallback limitées dans le temps. Correction de la colonne `index` dans system.zookeeper\_connection pour les adresses DNS. [#50424](https://github.com/ClickHouse/ClickHouse/pull/50424) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Ajout de la possibilité de consigner un événement lorsque max\_partitions\_per\_insert\_block est atteint. [#50948](https://github.com/ClickHouse/ClickHouse/pull/50948) ([Sean Haynes](https://github.com/seandhaynes)).
* Ajout de plusieurs commandes personnalisées à clickhouse-keeper-client (principalement pour faciliter le débogage de ClickHouse). [#51117](https://github.com/ClickHouse/ClickHouse/pull/51117) ([pufit](https://github.com/pufit)).
* Mise à jour de la vérification de la connection string dans la table function `azureBlobStorage`, car une connection string avec "sas" ne commence pas toujours par l’endpoint `default`, et mise à jour de l’URL de connexion pour inclure le token "sas" après l’ajout du Container Azure à l’URL. [#51141](https://github.com/ClickHouse/ClickHouse/pull/51141) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction de la description des ensembles de filtrage dans l’algorithme de JOIN `full_sorting_merge`. [#51329](https://github.com/ClickHouse/ClickHouse/pull/51329) ([Tanay Tummalapalli](https://github.com/ttanay)).
* Correction de la consommation mémoire dans `Aggregator` lorsque `max_block_size` est très élevé. [#51566](https://github.com/ClickHouse/ClickHouse/pull/51566) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout de la commande `SYSTEM SYNC FILESYSTEM CACHE`. Elle compare l’état en mémoire du cache du système de fichiers à son état sur disque et corrige l’état en mémoire si nécessaire. Cela n’est utile que si vous effectuez des interventions manuelles sur les données stockées sur disque, ce qui est fortement déconseillé. [#51622](https://github.com/ClickHouse/ClickHouse/pull/51622) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Tentative de création d’un resolver de proxy générique pour CH, tout en conservant la rétrocompatibilité avec le resolver de proxy existant dans la configuration du stockage S3. [#51749](https://github.com/ClickHouse/ClickHouse/pull/51749) ([Arthur Passos](https://github.com/arthurpassos)).
* Prise en charge de la lecture des sous-colonnes de Tuple à partir des fonctions de table file/s3/hdfs/url/azureBlobStorage. [#51806](https://github.com/ClickHouse/ClickHouse/pull/51806) ([Kruglov Pavel](https://github.com/Avogar)).
* La fonction `arrayIntersect` renvoie désormais les valeurs dans l’ordre correspondant au premier argument. Corrige [#27622](https://github.com/ClickHouse/ClickHouse/issues/27622). [#51850](https://github.com/ClickHouse/ClickHouse/pull/51850) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout de nouvelles requêtes permettant de créer/supprimer des entités d’accès dans le stockage d’accès spécifié, ou de déplacer des entités d’accès d’un stockage d’accès à un autre. [#51912](https://github.com/ClickHouse/ClickHouse/pull/51912) ([pufit](https://github.com/pufit)).
* Les requêtes `ALTER TABLE FREEZE` ne sont pas répliquées dans le moteur de base de données Replicated. [#52064](https://github.com/ClickHouse/ClickHouse/pull/52064) ([Mike Kot](https://github.com/myrrc)).
* Ajout de la possibilité de vider les tables système en cas d’arrêt inattendu. [#52174](https://github.com/ClickHouse/ClickHouse/pull/52174) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Correction du cas où la fonction de table `s3` refusait de fonctionner avec des URL présignées. Corrige [#50846](https://github.com/ClickHouse/ClickHouse/issues/50846). [#52310](https://github.com/ClickHouse/ClickHouse/pull/52310) ([chen](https://github.com/xiedeyantu)).
* Ajout de la colonne `name` comme alias de `event` et `metric` dans les tables `system.events` et `system.metrics`. Corrige [#51257](https://github.com/ClickHouse/ClickHouse/issues/51257). [#52315](https://github.com/ClickHouse/ClickHouse/pull/52315) ([chen](https://github.com/xiedeyantu)).
* Ajout de la prise en charge de la syntaxe `CREATE UNIQUE INDEX` dans le parseur, comme no-op, pour une meilleure compatibilité SQL. L’index `UNIQUE` n’est pas pris en charge. Définissez `create_index_ignore_unique = 1` pour ignorer le mot-clé UNIQUE dans les requêtes. [#52320](https://github.com/ClickHouse/ClickHouse/pull/52320) ([Ilya Yatsishin](https://github.com/qoega)).
* Ajout de la prise en charge des macros prédéfinies (`{database}` et `{table}`) dans certains paramètres du moteur Kafka : topic, consumer, client\_id, etc. [#52386](https://github.com/ClickHouse/ClickHouse/pull/52386) ([Yury Bogomolov](https://github.com/ybogo)).
* Désactivation de la mise à jour du cache du système de fichiers pendant les opérations de backup/restore. Le cache du système de fichiers ne doit pas être mis à jour pendant ces opérations ; il semble que cela ne fasse que ralentir le processus sans bénéfice (car la commande BACKUP peut lire beaucoup de données, et il est inutile de placer toutes ces données dans le cache du système de fichiers pour les en évincer immédiatement). [#52402](https://github.com/ClickHouse/ClickHouse/pull/52402) ([Vitaly Baranov](https://github.com/vitlibar)).
* La configuration du S3 endpoint permet de l’utiliser à partir de la racine et ajoute automatiquement '/' si nécessaire. [#47809](https://github.com/ClickHouse/ClickHouse/issues/47809). [#52600](https://github.com/ClickHouse/ClickHouse/pull/52600) ([xiaolei565](https://github.com/xiaolei565)).
* Pour clickhouse-local, prise en charge des options positionnelles et initialisation des paramètres globaux des UDF (user\_scripts\_path et user\_defined\_executable\_functions\_config). [#52643](https://github.com/ClickHouse/ClickHouse/pull/52643) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* `system.asynchronous_metrics` inclut désormais les métriques "QueryCacheEntries" et "QueryCacheBytes" pour inspecter le query cache. [#52650](https://github.com/ClickHouse/ClickHouse/pull/52650) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la possibilité d’utiliser le paramètre `s3_storage_class` dans la clause `SETTINGS` de l’instruction `BACKUP` pour les backups vers S3. [#52658](https://github.com/ClickHouse/ClickHouse/pull/52658) ([Roman Vasin](https://github.com/rvasin)).
* Ajout de l’utilitaire `print-backup-info.py`, qui analyse un fichier de métadonnées de sauvegarde et affiche des informations sur la sauvegarde. [#52690](https://github.com/ClickHouse/ClickHouse/pull/52690) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ferme [#49510](https://github.com/ClickHouse/ClickHouse/issues/49510). Actuellement, les noms de bases de données et de tables sont sensibles à la casse, mais les outils de BI interrogent `information_schema` tantôt en minuscules, tantôt en majuscules. C’est pourquoi nous avons la base de données `information_schema`, qui contient des tables en minuscules, comme `information_schema.tables`, et la base de données `INFORMATION_SCHEMA`, qui contient des tables en majuscules, comme `INFORMATION_SCHEMA.TABLES`. Mais certains outils interrogent `INFORMATION_SCHEMA.tables` et `information_schema.TABLES`. La solution proposée consiste à dupliquer les tables en minuscules et en majuscules dans les bases de données `information_schema` et `INFORMATION_SCHEMA`. [#52695](https://github.com/ClickHouse/ClickHouse/pull/52695) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* La requête `CHECK TABLE` offre de meilleures performances et une meilleure ergonomie (envoi des mises à jour de progression, possibilité d’annulation). [#52745](https://github.com/ClickHouse/ClickHouse/pull/52745) ([vdimir](https://github.com/vdimir)).
* Ajout de la prise en charge de `modulo`, `intDiv` et `intDivOrZero` pour les tuples, en les appliquant à chacun des éléments du tuple. [#52758](https://github.com/ClickHouse/ClickHouse/pull/52758) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Recherche des fichiers de configuration `yaml` et `yml` par défaut dans clickhouse-client après `xml`. [#52767](https://github.com/ClickHouse/ClickHouse/pull/52767) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lors de la fusion dans une configuration dont la racine n’est pas `clickhouse`, les configurations avec un nom de nœud racine différent étaient simplement ignorées, sans exception. [#52770](https://github.com/ClickHouse/ClickHouse/pull/52770) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Il est désormais possible de spécifier une taille minimale (`memory_profiler_sample_min_allocation_size`) et maximale (`memory_profiler_sample_max_allocation_size`) pour les allocations suivies par le profileur mémoire par échantillonnage. [#52779](https://github.com/ClickHouse/ClickHouse/pull/52779) ([alesapin](https://github.com/alesapin)).
* Ajout du paramètre `precise_float_parsing` pour changer de méthode d’analyse des nombres à virgule flottante (rapide/précise). [#52791](https://github.com/ClickHouse/ClickHouse/pull/52791) ([Andrey Zvonov](https://github.com/zvonand)).
* Utilisation des mêmes paths par défaut pour `clickhouse-keeper` (lien symbolique) que pour `clickhouse-keeper` (exécutable). [#52861](https://github.com/ClickHouse/ClickHouse/pull/52861) ([Vitaly Baranov](https://github.com/vitlibar)).
* Amélioration du message d’erreur pour la table function `remote`. Ferme [#40220](https://github.com/ClickHouse/ClickHouse/issues/40220). [#52959](https://github.com/ClickHouse/ClickHouse/pull/52959) ([jiyoungyoooo](https://github.com/jiyoungyoooo)).
* Ajout de la possibilité de spécifier une politique de stockage personnalisée dans la clause `SETTINGS` des requêtes `RESTORE`. [#52970](https://github.com/ClickHouse/ClickHouse/pull/52970) ([Victor Krasnov](https://github.com/sirvickr)).
* Ajout de la possibilité de limiter les requêtes S3 lors des opérations de sauvegarde (`BACKUP` et `RESTORE` respectent désormais `s3_max_[get/put]_[rps/burst]`). [#52974](https://github.com/ClickHouse/ClickHouse/pull/52974) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Ajout de paramètres pour ignorer la clause ON CLUSTER dans les requêtes de gestion des fonctions définies par l’utilisateur répliquées ou des entités de contrôle d’accès avec stockage répliqué. [#52975](https://github.com/ClickHouse/ClickHouse/pull/52975) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Actions EXPLAIN pour l’étape JOIN. [#53006](https://github.com/ClickHouse/ClickHouse/pull/53006) ([Maksim Kita](https://github.com/kitaisreal)).
* `hasTokenOrNull` et `hasTokenCaseInsensitiveOrNull` renvoient désormais NULL pour des motifs de recherche vides. [#53059](https://github.com/ClickHouse/ClickHouse/pull/53059) ([ltrk2](https://github.com/ltrk2)).
* Possibilité de restreindre les chemins autorisés pour les caches du système de fichiers. Surtout utile pour les disques dynamiques. Si `filesystem_caches_path` est spécifié dans la configuration du serveur, tous les chemins des caches du système de fichiers seront limités à ce répertoire. Par exemple, si le `path` dans la configuration du cache est relatif, il sera placé dans `filesystem_caches_path` ; si le `path` dans la configuration du cache est absolu, il devra se trouver à l’intérieur de `filesystem_caches_path`. Si `filesystem_caches_path` n’est pas spécifié dans la configuration, le comportement restera le même que dans les versions précédentes. [#53124](https://github.com/ClickHouse/ClickHouse/pull/53124) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de plusieurs commandes personnalisées (principalement pour faciliter le débogage de ClickHouse). [#53127](https://github.com/ClickHouse/ClickHouse/pull/53127) ([pufit](https://github.com/pufit)).
* Ajout d’informations de diagnostic sur le nom de fichier lors de l’inférence de schéma, ce qui aide lors du traitement de plusieurs fichiers avec des globs. [#53135](https://github.com/ClickHouse/ClickHouse/pull/53135) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le client chargera les suggestions via la connexion principale si la seconde connexion n’est pas autorisée à créer une session. [#53177](https://github.com/ClickHouse/ClickHouse/pull/53177) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Ajout de la clause EXCEPT à la requête `SYSTEM STOP/START LISTEN QUERIES [ALL/DEFAULT/CUSTOM]`, par exemple `SYSTEM STOP LISTEN QUERIES ALL EXCEPT TCP, HTTP`. [#53280](https://github.com/ClickHouse/ClickHouse/pull/53280) ([Nikolay Degterinsky](https://github.com/evillique)).
* La valeur par défaut de `max_concurrent_queries` passe de 100 à 1000. Il est acceptable d’avoir de nombreuses requêtes concurrentes si elles ne sont pas lourdes et attendent principalement le réseau. Remarque : ne confondez pas requêtes concurrentes et QPS : par exemple, le serveur ClickHouse peut gérer des dizaines de milliers de QPS avec moins de 100 requêtes concurrentes. [#53285](https://github.com/ClickHouse/ClickHouse/pull/53285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Limitation du nombre de fusions d’optimisation de partitions concurrentes en arrière-plan. [#53405](https://github.com/ClickHouse/ClickHouse/pull/53405) ([Duc Canh Le](https://github.com/canhld94)).
* Ajout du paramètre `allow_moving_table_directory_to_trash`, qui permet d’ignorer l’erreur `Directory for table data already exists` lors de la réplication ou de la récupération d’une base de données `Replicated`. [#53425](https://github.com/ClickHouse/ClickHouse/pull/53425) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Si les paramètres serveur `asynchronous_metrics_update_period_s` et `asynchronous_heavy_metrics_update_period_s` sont incorrectement configurés à 0, cela échouera désormais proprement au lieu d’interrompre l’application. [#53428](https://github.com/ClickHouse/ClickHouse/pull/53428) ([Robert Schulze](https://github.com/rschu1ze)).
* Le serveur ClickHouse respecte désormais les limites mémoire modifiées via les cgroups lors du rechargement de sa configuration. [#53455](https://github.com/ClickHouse/ClickHouse/pull/53455) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la possibilité de désactiver le flush des tables Distributed lors d’un `DETACH`, d’un `DROP` ou de l’arrêt du serveur. [#53501](https://github.com/ClickHouse/ClickHouse/pull/53501) ([Azat Khuzhin](https://github.com/azat)).
* La fonction `domainRFC` prend désormais en charge IPv6 entre crochets. [#53506](https://github.com/ClickHouse/ClickHouse/pull/53506) ([Chen768959](https://github.com/Chen768959)).
* Utilisation d’un timeout plus long pour les requêtes S3 CopyObject, utilisées dans les sauvegardes. [#53533](https://github.com/ClickHouse/ClickHouse/pull/53533) ([Michael Kolupaev](https://github.com/al13n321)).
* Ajout du paramètre serveur `aggregate_function_group_array_max_element_size`. Ce paramètre permet de limiter la taille des tableaux pour la fonction `groupArray` lors de la sérialisation. La valeur par défaut est `16777215`. [#53550](https://github.com/ClickHouse/ClickHouse/pull/53550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* `SCHEMA` a été ajouté comme alias de `DATABASE` afin d’améliorer la compatibilité avec MySQL. [#53587](https://github.com/ClickHouse/ClickHouse/pull/53587) ([Daniël van Eeden](https://github.com/dveeden)).
* Ajout de métriques asynchrones sur les tables de la base de données système. Par exemple, `TotalBytesOfMergeTreeTablesSystem`. Cela clôt [#53603](https://github.com/ClickHouse/ClickHouse/issues/53603). [#53604](https://github.com/ClickHouse/ClickHouse/pull/53604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* L’éditeur SQL de l’UI Play et le dashboard n’utiliseront pas Grammarly. [#53614](https://github.com/ClickHouse/ClickHouse/pull/53614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* En tant que paramètres de niveau expert, il est désormais possible de (1) configurer le size\_ratio (c.-à-d. la taille relative de la protected queue) des caches d’index mark et uncompressed, (2) configurer la cache policy des caches d’index mark et d’index uncompressed. [#53657](https://github.com/ClickHouse/ClickHouse/pull/53657) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la validation des informations client dans le Query packet de TCPHandler. [#53673](https://github.com/ClickHouse/ClickHouse/pull/53673) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Nouvelle tentative de chargement des parts en cas d’erreurs réseau lors des interactions avec Microsoft Azure. [#53750](https://github.com/ClickHouse/ClickHouse/pull/53750) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Les stacktraces des exceptions sont désormais propagées, y compris pour les exceptions des vues matérialisées. [#53766](https://github.com/ClickHouse/ClickHouse/pull/53766) ([Ilya Golshtein](https://github.com/ilejn)).
* Si aucun hostname ni port n’est spécifié, le client Keeper tentera de rechercher une connection string dans le config.xml de ClickHouse. [#53769](https://github.com/ClickHouse/ClickHouse/pull/53769) ([pufit](https://github.com/pufit)).
* Ajout de l’événement de profile `PartsLockMicroseconds`, qui indique le nombre de microsecondes pendant lesquelles le verrou sur les data parts est maintenu dans la famille de table engine MergeTree. [#53797](https://github.com/ClickHouse/ClickHouse/pull/53797) ([alesapin](https://github.com/alesapin)).
* La limite de reconnexion dans les limites RAFT pour Keeper est désormais configurable. Cette configuration peut aider Keeper à rétablir plus rapidement la connexion avec ses pairs si la connexion actuelle est rompue. [#53817](https://github.com/ClickHouse/ClickHouse/pull/53817) ([Pengyuan Bian](https://github.com/bianpengyuan)).
* Les clés étrangères sont ignorées dans la définition des tables afin d’améliorer la compatibilité avec MySQL, pour éviter à l’utilisateur de devoir réécrire la partie correspondante de son SQL ; voir [#53380](https://github.com/ClickHouse/ClickHouse/issues/53380). [#53864](https://github.com/ClickHouse/ClickHouse/pull/53864) ([jsc0218](https://github.com/jsc0218)).

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

* Ne pas exposer les symboles du binaire ClickHouse à l’éditeur de liens dynamique. Cela pourrait corriger [#43933](https://github.com/ClickHouse/ClickHouse/issues/43933). [#47475](https://github.com/ClickHouse/ClickHouse/pull/47475) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’un lien symbolique `clickhouse-keeper-client` au paquet clickhouse-server. [#51882](https://github.com/ClickHouse/ClickHouse/pull/51882) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajout de [https://github.com/elliotchance/sqltest](https://github.com/elliotchance/sqltest) à la CI pour signaler la conformité à SQL 2016. [#52293](https://github.com/ClickHouse/ClickHouse/pull/52293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mise à niveau de PRQL vers la version 0.9.3. [#53060](https://github.com/ClickHouse/ClickHouse/pull/53060) ([Maximilian Roos](https://github.com/max-sixty)).
* Les tables système issues des vérifications CI sont exportées vers ClickHouse Cloud. [#53086](https://github.com/ClickHouse/ClickHouse/pull/53086) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les données de profilage du compilateur (`-ftime-trace`) sont téléversées vers ClickHouse Cloud. [#53100](https://github.com/ClickHouse/ClickHouse/pull/53100) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Accélération des builds Debug et Tidy. [#53178](https://github.com/ClickHouse/ClickHouse/pull/53178) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Accélération du build en supprimant des tonnes de code inutile. L’un des fichiers d’en-tête fréquemment inclus avait été empoisonné par boost. [#53180](https://github.com/ClickHouse/ClickHouse/pull/53180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression d’encore plus de code inutile. [#53182](https://github.com/ClickHouse/ClickHouse/pull/53182) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La fonction `arrayAUC` utilisait de lourds templates C++ — ils ont été supprimés. [#53183](https://github.com/ClickHouse/ClickHouse/pull/53183) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Certaines unités de traduction étaient systématiquement reconstruites, indépendamment de ccache. La cause a été identifiée et corrigée. [#53184](https://github.com/ClickHouse/ClickHouse/pull/53184) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les données de profilage du compilateur (`-ftime-trace`) sont téléversées vers ClickHouse Cloud, deuxième tentative après [#53100](https://github.com/ClickHouse/ClickHouse/issues/53100). [#53213](https://github.com/ClickHouse/ClickHouse/pull/53213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportation des logs de la CI pour les tests stateful vers ClickHouse Cloud. [#53351](https://github.com/ClickHouse/ClickHouse/pull/53351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportation des logs de la CI pour les tests de stress. [#53353](https://github.com/ClickHouse/ClickHouse/pull/53353) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportation des logs de la CI pour le fuzzer. [#53354](https://github.com/ClickHouse/ClickHouse/pull/53354) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Préservation des paramètres d’environnement dans la commande `clickhouse start`. Corrige [#51962](https://github.com/ClickHouse/ClickHouse/issues/51962). [#53418](https://github.com/ClickHouse/ClickHouse/pull/53418) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Suite à [#53418](https://github.com/ClickHouse/ClickHouse/issues/53418). Petites améliorations de install\_check.py, avec ajout de tests pour vérifier la transmission correcte des variables d’environnement au processus principal lors de `init.d start`. [#53457](https://github.com/ClickHouse/ClickHouse/pull/53457) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Réorganisation de la gestion des fichiers dans CMake pour éviter d’éventuels doublons. Par exemple, `indexHint.cpp` est dupliqué à la fois dans `dbms_sources` et `clickhouse_functions_sources`. [#53621](https://github.com/ClickHouse/ClickHouse/pull/53621) ([Amos Bird](https://github.com/amosbird)).
* Mise à niveau de snappy vers la version 1.1.10. [#53672](https://github.com/ClickHouse/ClickHouse/pull/53672) ([李扬](https://github.com/taiyang-li)).
* Légère amélioration du build CMake grâce au nettoyage de certaines dependencies et à la suppression de quelques doublons. Chaque commit inclut une courte description des modifications apportées. [#53759](https://github.com/ClickHouse/ClickHouse/pull/53759) ([Amos Bird](https://github.com/amosbird)).

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

* Ne pas réinitialiser l’index Annoy (expérimental) lors de sa construction avec plus d’un mark [#51325](https://github.com/ClickHouse/ClickHouse/pull/51325) ([Tian Xinhui](https://github.com/xinhuitian)).
* Corriger l’utilisation des répertoires temporaires pendant RESTORE [#51493](https://github.com/ClickHouse/ClickHouse/pull/51493) ([Azat Khuzhin](https://github.com/azat)).
* Corriger l’arithmétique binaire pour Nullable(IPv4) [#51642](https://github.com/ClickHouse/ClickHouse/pull/51642) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Prendre en charge les types de données IPv4 et IPv6 comme attributs de dictionnaire [#51756](https://github.com/ClickHouse/ClickHouse/pull/51756) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corriger la somme de contrôle des marks compressés [#51777](https://github.com/ClickHouse/ClickHouse/pull/51777) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corriger le cas où une virgule était interprétée à tort comme faisant partie d’un datetime lors du parsing CSV en mode best effort [#51950](https://github.com/ClickHouse/ClickHouse/pull/51950) ([Kruglov Pavel](https://github.com/Avogar)).
* Ne pas lever d’exception lorsqu’une UDF exécutable a des paramètres [#51961](https://github.com/ClickHouse/ClickHouse/pull/51961) ([Nikita Taranov](https://github.com/nickitat)).
* Corriger le recalcul des skip indexes et des projections dans les requêtes `ALTER DELETE` [#52530](https://github.com/ClickHouse/ClickHouse/pull/52530) ([Anton Popov](https://github.com/CurtizJ)).
* MaterializedMySQL : corriger la boucle infinie dans ReadBuffer::read [#52621](https://github.com/ClickHouse/ClickHouse/pull/52621) ([Val Doroshchuk](https://github.com/valbok)).
* Charger les suggestions uniquement avec le dialecte `clickhouse` [#52628](https://github.com/ClickHouse/ClickHouse/pull/52628) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Initialiser et détruire le canal ares à la demande [#52634](https://github.com/ClickHouse/ClickHouse/pull/52634) ([Arthur Passos](https://github.com/arthurpassos)).
* Corriger le filtrage par colonnes virtuelles avec une expression OR [#52653](https://github.com/ClickHouse/ClickHouse/pull/52653) ([Azat Khuzhin](https://github.com/azat)).
* Corriger un crash dans la fonction `tuple` avec un argument de colonne sparse [#52659](https://github.com/ClickHouse/ClickHouse/pull/52659) ([Anton Popov](https://github.com/CurtizJ)).
* Corriger les named collections sur le cluster [#52687](https://github.com/ClickHouse/ClickHouse/pull/52687) ([Al Korgun](https://github.com/alkorgun)).
* Corriger la lecture d’une colonne inutile dans le cas d’un `PREWHERE` en plusieurs étapes [#52689](https://github.com/ClickHouse/ClickHouse/pull/52689) ([Anton Popov](https://github.com/CurtizJ)).
* Corriger un résultat de tri inattendu sur plusieurs colonnes avec la direction nulls first [#52761](https://github.com/ClickHouse/ClickHouse/pull/52761) ([copperybean](https://github.com/copperybean)).
* Corriger une data race lors de la reconfiguration de Keeper [#52804](https://github.com/ClickHouse/ClickHouse/pull/52804) ([Antonio Andelic](https://github.com/antonio2368)).
* Corriger le tri des colonnes sparse avec une limite élevée [#52827](https://github.com/ClickHouse/ClickHouse/pull/52827) ([Anton Popov](https://github.com/CurtizJ)).
* ClickHouse Keeper : corriger l’implémentation du serveur avec poll [#52833](https://github.com/ClickHouse/ClickHouse/pull/52833) ([Andy Fiddaman](https://github.com/citrus-it)).
* Faire en sorte que l’analyseur regexp reconnaisse les groupes de capture nommés [#52840](https://github.com/ClickHouse/ClickHouse/pull/52840) ([Han Fei](https://github.com/hanfei1991)).
* Corriger une assertion possible dans `~PushingAsyncPipelineExecutor` dans clickhouse-local [#52862](https://github.com/ClickHouse/ClickHouse/pull/52862) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la lecture d’un `Nested(Array(LowCardinality(...)))` vide [#52949](https://github.com/ClickHouse/ClickHouse/pull/52949) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de nouveaux tests pour session\_log et correction de l’incohérence entre la connexion et la déconnexion. [#52958](https://github.com/ClickHouse/ClickHouse/pull/52958) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Correction d’une fuite de mot de passe dans show create mysql table [#52962](https://github.com/ClickHouse/ClickHouse/pull/52962) ([Duc Canh Le](https://github.com/canhld94)).
* Conversion d’un format de colonne sparse en format complet dans CreateSetAndFilterOnTheFlyStep [#53000](https://github.com/ClickHouse/ClickHouse/pull/53000) ([vdimir](https://github.com/vdimir)).
* Correction d’une rare race condition lors de la suppression d’un répertoire de préfixe de clé vide dans le cache FS [#53055](https://github.com/ClickHouse/ClickHouse/pull/53055) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de ZstdDeflatingWriteBuffer, qui tronquait parfois la sortie [#53064](https://github.com/ClickHouse/ClickHouse/pull/53064) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction de query\_id dans part\_log avec les requêtes de flush asynchrones [#53103](https://github.com/ClickHouse/ClickHouse/pull/53103) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’une possible erreur du cache "Read unexpected size" [#53121](https://github.com/ClickHouse/ClickHouse/pull/53121) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactivation du nouvel encodeur Parquet [#53130](https://github.com/ClickHouse/ClickHouse/pull/53130) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de l’exception "Not-ready Set" [#53162](https://github.com/ClickHouse/ClickHouse/pull/53162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’échappement des caractères dans le moteur PostgreSQL [#53250](https://github.com/ClickHouse/ClickHouse/pull/53250) ([Nikolay Degterinsky](https://github.com/evillique)).
* Table session\_log Experimental : ajout de nouveaux tests pour session\_log et correction de l’incohérence entre la connexion et la déconnexion. [#53255](https://github.com/ClickHouse/ClickHouse/pull/53255) ([Alexey Gerasimchuck](https://github.com/Demilivor)). Correction de l’incohérence entre la réussite de la connexion et la déconnexion [#53302](https://github.com/ClickHouse/ClickHouse/pull/53302) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Correction de l’ajout d’intervalles inférieurs à la seconde à DateTime [#53309](https://github.com/ClickHouse/ClickHouse/pull/53309) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction de l’erreur "Context has expired" dans les dictionnaires [#53342](https://github.com/ClickHouse/ClickHouse/pull/53342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du format AST incorrect d’une projection normale [#53347](https://github.com/ClickHouse/ClickHouse/pull/53347) ([Amos Bird](https://github.com/amosbird)).
* Interdiction d’utiliser use\_structure\_from\_insertion\_table\_in\_table\_functions lors de l’exécution de Scalar [#53348](https://github.com/ClickHouse/ClickHouse/pull/53348) ([flynn](https://github.com/ucasfl)).
* Correction du chargement d’une base de données lazy lors d’une requête select sur system.table [#53372](https://github.com/ClickHouse/ClickHouse/pull/53372) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction de system.data\_skipping\_indices pour MaterializedMySQL [#53381](https://github.com/ClickHouse/ClickHouse/pull/53381) ([Filipp Ozinov](https://github.com/bakwc)).
* Corrige le traitement d’un retour chariot isolé dans le moteur de segmentation de fichiers TSV [#53407](https://github.com/ClickHouse/ClickHouse/pull/53407) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige correctement l’erreur `Context has expired` [#53433](https://github.com/ClickHouse/ClickHouse/pull/53433) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige `timeout_overflow_mode` lorsqu’une sous-requête se trouve dans la partie droite de IN [#53439](https://github.com/ClickHouse/ClickHouse/pull/53439) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige un comportement inattendu dans [#53152](https://github.com/ClickHouse/ClickHouse/issues/53152) [#53440](https://github.com/ClickHouse/ClickHouse/pull/53440) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Corrige l’erreur d’analyse de la fonction JSON\_QUERY lorsque le chemin ne contient que des nombres [#53470](https://github.com/ClickHouse/ClickHouse/pull/53470) ([KevinyhZou](https://github.com/KevinyhZou)).
* Corrige l’ordre incorrect des colonnes pour les requêtes avec FINAL parallèle. [#53489](https://github.com/ClickHouse/ClickHouse/pull/53489) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige les requêtes SELECT sur ReplacingMergeTree avec do\_not\_merge\_across\_partitions\_select\_final [#53511](https://github.com/ClickHouse/ClickHouse/pull/53511) ([Vasily Nemkov](https://github.com/Enmk)).
* Vide d’abord la file d’attente d’async insert lors de l’arrêt [#53547](https://github.com/ClickHouse/ClickHouse/pull/53547) ([joelynch](https://github.com/joelynch)).
* Corrige un crash dans une jointure sur une colonne sparse [#53548](https://github.com/ClickHouse/ClickHouse/pull/53548) ([vdimir](https://github.com/vdimir)).
* Corrige une UB possible dans le skipping index Set pour les fonctions avec des arguments incorrects [#53559](https://github.com/ClickHouse/ClickHouse/pull/53559) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une UB possible dans les index inversés (fonctionnalité expérimentale) [#53560](https://github.com/ClickHouse/ClickHouse/pull/53560) ([Azat Khuzhin](https://github.com/azat)).
* Correction : l’expression interpolate prend la colonne source au lieu de l’alias du même nom issu de l’expression select. [#53572](https://github.com/ClickHouse/ClickHouse/pull/53572) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige le nombre de granules écartées dans EXPLAIN PLAN index=1 [#53616](https://github.com/ClickHouse/ClickHouse/pull/53616) ([wangxiaobo](https://github.com/wzb5212)).
* Gère correctement les totaux et les extrêmes avec `DelayedSource` [#53644](https://github.com/ClickHouse/ClickHouse/pull/53644) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un blocage du cache Set préparé dans le pipeline de mutation [#53645](https://github.com/ClickHouse/ClickHouse/pull/53645) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un bug sur les mutations avec des sous-colonnes de type JSON dans les prédicats des requêtes UPDATE et DELETE. [#53677](https://github.com/ClickHouse/ClickHouse/pull/53677) ([VanDarkholme7](https://github.com/VanDarkholme7)).
* Corrige le pushdown des filtres pour la jointure full\_sorting\_merge [#53699](https://github.com/ClickHouse/ClickHouse/pull/53699) ([vdimir](https://github.com/vdimir)).
* Tente de corriger un bug avec `NULL::LowCardinality(Nullable(...)) NOT IN` [#53706](https://github.com/ClickHouse/ClickHouse/pull/53706) ([Andrey Zvonov](https://github.com/zvonand)).
* Correction : DISTINCT trié avec des colonnes sparse [#53711](https://github.com/ClickHouse/ClickHouse/pull/53711) ([Igor Nikonov](https://github.com/devcrafter)).
* `transform` : gère correctement la colonne `default` avec plusieurs lignes [#53742](https://github.com/ClickHouse/ClickHouse/pull/53742) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Correction d’un crash du fuzzer dans parseDateTime [#53764](https://github.com/ClickHouse/ClickHouse/pull/53764) ([Robert Schulze](https://github.com/rschu1ze)).
* MaterializedPostgreSQL : correction d’une exception non interceptée dans getCreateTableQueryImpl [#53832](https://github.com/ClickHouse/ClickHouse/pull/53832) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un segfault possible lors de l’utilisation du moteur PostgreSQL [#53847](https://github.com/ClickHouse/ClickHouse/pull/53847) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’alias named\_collection\_admin [#54066](https://github.com/ClickHouse/ClickHouse/pull/54066) ([Kseniia Sumarokova](https://github.com/kssenii)).

### <a id="237" /> Version 23.7 de ClickHouse, 2023-07-27. [Présentation](https://presentations.clickhouse.com/2023-release-23.7/), [Vidéo](https://www.youtube.com/watch?v=TI1kONfON18)

<Frame>
  <iframe src="https://www.youtube.com/embed/TI1kONfON18" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Changement rétro-incompatible
</div>

* Ajout du type d'accès `NAMED COLLECTION` (alias `USE NAMED COLLECTION`, `NAMED COLLECTION USAGE`). Cette PR est rétro-incompatible, car ce type d'accès est désactivé par défaut (puisque le type d'accès parent `NAMED COLLECTION ADMIN` l'est également). Proposé dans [#50277](https://github.com/ClickHouse/ClickHouse/issues/50277). Pour l'accorder, utilisez `GRANT NAMED COLLECTION ON collection_name TO user` ou `GRANT NAMED COLLECTION ON * TO user` ; pour pouvoir accorder ces grants, `named_collection_admin` est requis dans la config (auparavant nommé `named_collection_control`, il restera donc disponible comme alias). [#50625](https://github.com/ClickHouse/ClickHouse/pull/50625) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'une faute de frappe dans le nom de la colonne `system.parts` `last_removal_attemp_time`. Elle s'appelle désormais `last_removal_attempt_time`. [#52104](https://github.com/ClickHouse/ClickHouse/pull/52104) ([filimonov](https://github.com/filimonov)).
* La version de `distributed_ddl_entry_format_version` passe par défaut à 5 (ce qui active la transmission d'OpenTelemetry et de initial\_query\_idd). Cela empêchera de traiter les entrées existantes de distributed DDL après une *rétrogradation* (mais notez qu'en général, il ne devrait pas y avoir de telles entrées non traitées). [#52128](https://github.com/ClickHouse/ClickHouse/pull/52128) ([Azat Khuzhin](https://github.com/azat)).
* Vérification des métadonnées des projections de la même manière que pour les métadonnées ordinaires. Cette modification peut empêcher le serveur de démarrer s'il existe une table avec une projection invalide. Par exemple, une projection qui créait des colonnes positionnelles dans la PK (par ex. `projection p (select * order by 1, 4)`), ce qui n'est pas autorisé dans la PK d'une table et peut provoquer un crash pendant `insert`/`merge`. Supprimez ces projections avant la mise à jour. Corrige [#52353](https://github.com/ClickHouse/ClickHouse/issues/52353). [#52361](https://github.com/ClickHouse/ClickHouse/pull/52361) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* La fonctionnalité expérimentale `hashid` a été supprimée en raison d'un bug. La qualité de son implémentation était discutable dès le départ, et elle n'a jamais dépassé le stade expérimental. Cela clôt [#52406](https://github.com/ClickHouse/ClickHouse/issues/52406). [#52449](https://github.com/ClickHouse/ClickHouse/pull/52449) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Ajout du moteur de base de données `Overlay` pour combiner plusieurs bases de données en une seule. Ajout du moteur de base de données `Filesystem` pour représenter un répertoire du système de fichiers comme un ensemble de tables implicitement disponibles, avec formats et structures détectés automatiquement. Un nouveau moteur de base de données `S3` permet d’interagir en lecture seule avec le stockage S3 en représentant un préfixe comme un ensemble de tables. Un nouveau moteur de base de données `HDFS` permet d’interagir avec le stockage HDFS de la même manière. [#48821](https://github.com/ClickHouse/ClickHouse/pull/48821) ([alekseygolub](https://github.com/alekseygolub)).
* Ajout de la prise en charge des disques externes dans Keeper pour stocker les snapshots et les logs. [#50098](https://github.com/ClickHouse/ClickHouse/pull/50098) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la prise en charge des globs de sélection multi-répertoires (`{}`). [#50559](https://github.com/ClickHouse/ClickHouse/pull/50559) ([Andrey Zvonov](https://github.com/zvonand)).
* Le Kafka connector peut récupérer un schéma Avro depuis un schema registry avec une authentification basique à l’aide d’identifiants encodés dans l’URL. [#49664](https://github.com/ClickHouse/ClickHouse/pull/49664) ([Ilya Golshtein](https://github.com/ilejn)).
* Ajout de la fonction `arrayJaccardIndex`, qui calcule la similarité de Jaccard entre deux tableaux. [#50076](https://github.com/ClickHouse/ClickHouse/pull/50076) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Ajout d’une colonne `is_obsolete` à `system.settings` et aux tables similaires. Ferme [#50819](https://github.com/ClickHouse/ClickHouse/issues/50819). [#50826](https://github.com/ClickHouse/ClickHouse/pull/50826) ([flynn](https://github.com/ucasfl)).
* Implémentation de la prise en charge des éléments chiffrés dans le fichier de configuration. Ajout de la possibilité d’utiliser du texte chiffré dans les éléments feuilles du fichier de configuration. Le texte est chiffré à l’aide des codecs de chiffrement de la section `<encryption_codecs>`. [#50986](https://github.com/ClickHouse/ClickHouse/pull/50986) ([Roman Vasin](https://github.com/rvasin)).
* L’algorithme Grace Hash Join s’applique désormais aux FULL et RIGHT JOIN. [#49483](https://github.com/ClickHouse/ClickHouse/issues/49483). [#51013](https://github.com/ClickHouse/ClickHouse/pull/51013) ([lgbo](https://github.com/lgbo-ustc)).
* Ajout de la requête `SYSTEM STOP LISTEN` pour une terminaison plus propre. Ferme [#47972](https://github.com/ClickHouse/ClickHouse/issues/47972). [#51016](https://github.com/ClickHouse/ClickHouse/pull/51016) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout des options `input_format_csv_allow_variable_number_of_columns`. [#51273](https://github.com/ClickHouse/ClickHouse/pull/51273) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Encore une fonctionnalité ennuyeuse : ajout de la fonction `substring_index`, comme dans Spark ou MySQL. [#51472](https://github.com/ClickHouse/ClickHouse/pull/51472) ([李扬](https://github.com/taiyang-li)).
* Ajout d’une table système `jemalloc_bins` pour afficher les statistiques des bins jemalloc. Exemple : `SELECT *, size * (nmalloc - ndalloc) AS allocated_bytes FROM system.jemalloc_bins WHERE allocated_bytes > 0 ORDER BY allocated_bytes DESC LIMIT 10`. Profitez-en. [#51674](https://github.com/ClickHouse/ClickHouse/pull/51674) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout du format `RowBinaryWithDefaults` avec un octet supplémentaire avant chaque colonne servant d’indicateur pour utiliser la valeur par défaut de la colonne. Ferme [#50854](https://github.com/ClickHouse/ClickHouse/issues/50854). [#51695](https://github.com/ClickHouse/ClickHouse/pull/51695) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout du paramètre `default_temporary_table_engine`. Identique à `default_table_engine`, mais pour les tables temporaires. [#51292](https://github.com/ClickHouse/ClickHouse/issues/51292). [#51708](https://github.com/ClickHouse/ClickHouse/pull/51708) ([velavokr](https://github.com/velavokr)).
* Ajout de nouvelles fonctions `initcap` / `initcapUTF8` qui convertissent la première lettre de chaque mot en majuscule et le reste en minuscules. [#51735](https://github.com/ClickHouse/ClickHouse/pull/51735) ([Dmitry Kardymon](https://github.com/kardymonds)).
* La commande Create table prend désormais en charge la syntaxe `PRIMARY KEY` dans la définition d’une colonne. Les colonnes sont ajoutées à l’index primaire dans le même ordre que celui dans lequel elles sont définies. [#51881](https://github.com/ClickHouse/ClickHouse/pull/51881) ([Ilya Yatsishin](https://github.com/qoega)).
* Ajout de la possibilité d’utiliser des spécificateurs de format de date et d’heure dans les noms des fichiers journaux et des fichiers journaux d’erreurs, soit dans les fichiers de configuration (balises `log` et `errorlog`), soit dans les arguments de ligne de commande (`--log-file` et `--errorlog-file`). [#51945](https://github.com/ClickHouse/ClickHouse/pull/51945) ([Victor Krasnov](https://github.com/sirvickr)).
* Ajout de la statistique de pic de consommation mémoire aux en-têtes HTTP. [#51946](https://github.com/ClickHouse/ClickHouse/pull/51946) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Ajout de nouvelles fonctions `hasSubsequence` (+ versions `CaseInsensitive` et `UTF8`) pour rechercher des sous-séquences dans des chaînes. [#52050](https://github.com/ClickHouse/ClickHouse/pull/52050) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Ajout de `array_agg` comme alias de `groupArray` pour la compatibilité avec PostgreSQL. Clôt [#52100](https://github.com/ClickHouse/ClickHouse/issues/52100). ### Entrée de documentation pour les changements visibles par les utilisateurs. [#52135](https://github.com/ClickHouse/ClickHouse/pull/52135) ([flynn](https://github.com/ucasfl)).
* Ajout de `any_value` comme alias de compatibilité pour la fonction d’agrégation `any`. Clôt [#52140](https://github.com/ClickHouse/ClickHouse/issues/52140). [#52147](https://github.com/ClickHouse/ClickHouse/pull/52147) ([flynn](https://github.com/ucasfl)).
* Ajout de la fonction d’agrégation `array_concat_agg` pour la compatibilité avec BigQuery ; c’est un alias de `groupArrayArray`. Clôt [#52139](https://github.com/ClickHouse/ClickHouse/issues/52139). [#52149](https://github.com/ClickHouse/ClickHouse/pull/52149) ([flynn](https://github.com/ucasfl)).
* Ajout de `OCTET_LENGTH` comme alias de `length`. Clôt [#52153](https://github.com/ClickHouse/ClickHouse/issues/52153). [#52176](https://github.com/ClickHouse/ClickHouse/pull/52176) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Ajout de la fonction `firstLine` pour extraire la première ligne d’une chaîne sur plusieurs lignes. Cela clôt [#51172](https://github.com/ClickHouse/ClickHouse/issues/51172). [#52209](https://github.com/ClickHouse/ClickHouse/pull/52209) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Implémentation du formatage de style KQL pour le type de données `Interval`. Cela n’est nécessaire que pour assurer la compatibilité avec le langage de requête `Kusto`. [#45671](https://github.com/ClickHouse/ClickHouse/pull/45671) ([ltrk2](https://github.com/ltrk2)).
* Ajout de la query `SYSTEM FLUSH ASYNC INSERT QUEUE`, qui vide toutes les insertions asynchrones en attente vers les tables de destination. Ajout d’un paramètre côté serveur `async_insert_queue_flush_on_shutdown` (`true` par défaut), qui détermine s’il faut vider la file d’attente des insertions asynchrones lors d’un arrêt propre. Le paramètre `async_insert_threads` est désormais un paramètre côté serveur. [#49160](https://github.com/ClickHouse/ClickHouse/pull/49160) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout des alias `current_database` et de la nouvelle fonction `current_schemas` pour la compatibilité avec PostgreSQL. [#51076](https://github.com/ClickHouse/ClickHouse/pull/51076) ([Pedro Riera](https://github.com/priera)).
* Ajout d’un alias pour les fonctions `today` (désormais aussi disponible sous les noms `curdate`/`current_date`) et `now` (`current_timestamp`). [#52106](https://github.com/ClickHouse/ClickHouse/pull/52106) ([Lloyd-Pottiger](https://github.com/Lloyd-Pottiger)).
* Prise en charge de `async_deduplication_token` pour les insertions asynchrones. [#52136](https://github.com/ClickHouse/ClickHouse/pull/52136) ([Han Fei](https://github.com/hanfei1991)).
* Ajout du nouveau paramètre `disable_url_encoding`, qui permet de désactiver le décodage/l’encodage du chemin de l’URI dans le moteur URL. [#52337](https://github.com/ClickHouse/ClickHouse/pull/52337) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Active par défaut la sélection automatique du format de sérialisation sparse. Cela améliore les performances. Ce format est pris en charge depuis la version 22.1. Après ce changement, il pourrait ne plus être possible de revenir à une version antérieure à 22.1. Une régression de version peut nécessiter de définir `ratio_of_defaults_for_sparse_serialization=0.9375` [55153](https://github.com/ClickHouse/ClickHouse/issues/55153). Vous pouvez désactiver l’utilisation du format de sérialisation sparse en définissant le paramètre `ratio_of_defaults_for_sparse_serialization = 1` pour vos tables MergeTree. [#49631](https://github.com/ClickHouse/ClickHouse/pull/49631) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Active par défaut les paramètres `move_all_conditions_to_prewhere` et `enable_multiple_prewhere_read_steps`. [#46365](https://github.com/ClickHouse/ClickHouse/pull/46365) ([Alexander Gololobov](https://github.com/davenger)).
* Améliore les performances de certaines requêtes en optimisant l’allocator. [#46416](https://github.com/ClickHouse/ClickHouse/pull/46416) ([Azat Khuzhin](https://github.com/azat)).
* Nous utilisons désormais des tâches de taille fixe dans `MergeTreePrefetchedReadPool`, comme dans `MergeTreeReadPool`. De plus, nous utilisons maintenant un pool de connexions pour les requêtes S3. [#49732](https://github.com/ClickHouse/ClickHouse/pull/49732) ([Nikita Taranov](https://github.com/nickitat)).
* Davantage de pushdown vers le côté droit de la jointure. [#50532](https://github.com/ClickHouse/ClickHouse/pull/50532) ([Nikita Taranov](https://github.com/nickitat)).
* Améliore la jointure grace\_hash en réservant la taille de la table de hachage (resoumission). [#50875](https://github.com/ClickHouse/ClickHouse/pull/50875) ([lgbo](https://github.com/lgbo-ustc)).
* L’attente sur un verrou dans `OpenedFileCache` pouvait parfois être sensible. Nous l’avons segmenté en plusieurs sous-maps (chacune avec son propre verrou) pour éviter la contention. [#51341](https://github.com/ClickHouse/ClickHouse/pull/51341) ([Nikita Taranov](https://github.com/nickitat)).
* Déplace les conditions portant sur les colonnes de clé primaire à la fin de la chaîne PREWHERE. L’idée est que les conditions sur les colonnes de PK seront probablement utilisées lors de l’analyse de la PK et n’apporteront donc pas grand-chose de plus au filtrage PREWHERE. [#51958](https://github.com/ClickHouse/ClickHouse/pull/51958) ([Alexander Gololobov](https://github.com/davenger)).
* Accélère `COUNT(DISTINCT)` pour les types String en intégrant SipHash directement dans le code. Les tests de performance de *OnTime* sur la machine ICX (processeur Intel Xeon Platinum 8380, 80 cœurs, 160 threads) montrent que ce changement peut apporter une amélioration de *11.6%* du QPS de la requête *Q8*, sans impact sur les autres. [#52036](https://github.com/ClickHouse/ClickHouse/pull/52036) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Active `allow_vertical_merges_from_compact_to_wide_parts` par défaut. Cela réduira l’utilisation mémoire pendant les merges. [#52295](https://github.com/ClickHouse/ClickHouse/pull/52295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige une analyse incorrecte des projections qui invalide les clés primaires. Ce problème ne se produit que lorsque `query_plan_optimize_primary_key = 1, query_plan_optimize_projection = 1`. Corrige [#48823](https://github.com/ClickHouse/ClickHouse/issues/48823). Corrige [#51173](https://github.com/ClickHouse/ClickHouse/issues/51173). [#52308](https://github.com/ClickHouse/ClickHouse/pull/52308) ([Amos Bird](https://github.com/amosbird)).
* Réduit le nombre d’appels système dans `FileCache::loadMetadata`, ce qui accélère le démarrage du server si le filesystem cache est configuré. [#52435](https://github.com/ClickHouse/ClickHouse/pull/52435) ([Raúl Marín](https://github.com/Algunenano)).
* Permet de définir une limite inférieure stricte pour la taille des segments de fichier en téléchargeant les données restantes en arrière-plan. La taille minimale d’un segment de fichier (si la taille réelle du fichier est supérieure) se configure via le paramètre de cache `boundary_alignment`, avec `4Mi` par défaut. Le nombre de threads d’arrière-plan se configure via le paramètre de cache `background_download_threads`, avec `2` par défaut. De plus, `max_file_segment_size` a été augmenté de `8Mi` à `32Mi` dans cette PR. [#51000](https://github.com/ClickHouse/ClickHouse/pull/51000) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Réduction des timeouts par défaut pour S3, de 30 secondes à 3 secondes, et pour les autres connexions HTTP, de 180 secondes à 30 secondes. [#51171](https://github.com/ClickHouse/ClickHouse/pull/51171) ([Michael Kolupaev](https://github.com/al13n321)).
* Nouveau paramètre `merge_tree_determine_task_size_by_prewhere_columns` ajouté. S’il est défini sur `true`, seules les tailles des colonnes de la section `PREWHERE` seront prises en compte pour déterminer la taille de la tâche de lecture. Sinon, toutes les colonnes de la requête sont prises en compte. [#52606](https://github.com/ClickHouse/ClickHouse/pull/52606) ([Nikita Taranov](https://github.com/nickitat)).

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

* Utiliser read\_bytes/total\_bytes\_to\_read pour la barre de progression dans les fonctions de table s3/file/url/... afin de mieux indiquer la progression. [#51286](https://github.com/ClickHouse/ClickHouse/pull/51286) ([Kruglov Pavel](https://github.com/Avogar)).
* Introduction d'un paramètre de table `wait_for_unique_parts_send_before_shutdown_ms`, qui spécifie le temps pendant lequel une réplique attend avant de fermer le handler interserver pour les envois répliqués. Correction également d'une incohérence dans l'arrêt des tables et des handlers interserver : désormais, le serveur arrête d'abord les tables, puis ferme ensuite les handlers interserver. [#51851](https://github.com/ClickHouse/ClickHouse/pull/51851) ([alesapin](https://github.com/alesapin)).
* Autoriser le `FETCH` SQL standard sans `OFFSET`. Voir [https://antonz.org/sql-fetch/](https://antonz.org/sql-fetch/). [#51293](https://github.com/ClickHouse/ClickHouse/pull/51293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autoriser le filtrage des en-têtes HTTP pour les fonctions de table URL/S3 avec la nouvelle section `http_forbid_headers` dans la configuration. Les correspondances exactes et les filtres regexp sont pris en charge. [#51038](https://github.com/ClickHouse/ClickHouse/pull/51038) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ne pas afficher dans les logs de messages indiquant `16 EiB` d'espace libre, car cela n'a pas de sens. Cela clôt [#49320](https://github.com/ClickHouse/ClickHouse/issues/49320). [#49342](https://github.com/ClickHouse/ClickHouse/pull/49342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Vérifier correctement la limite de la fonction `sleepEachRow`. Ajout d'un paramètre `function_sleep_max_microseconds_per_block`. Cela est nécessaire pour le fuzzer de requêtes générique. [#49343](https://github.com/ClickHouse/ClickHouse/pull/49343) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de deux problèmes dans les fonctions `geoHash`. [#50066](https://github.com/ClickHouse/ClickHouse/pull/50066) ([李扬](https://github.com/taiyang-li)).
* Journaliser les requêtes de flush d'async insert dans `system.query_log`. [#51160](https://github.com/ClickHouse/ClickHouse/pull/51160) ([Raúl Marín](https://github.com/Algunenano)).
* Les fonctions `date_diff` et `age` prennent désormais en charge les unités milliseconde et microseconde, et fonctionnent avec une précision à la microseconde. [#51291](https://github.com/ClickHouse/ClickHouse/pull/51291) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Amélioration de l'analyse du path dans clickhouse-keeper-client. [#51359](https://github.com/ClickHouse/ClickHouse/pull/51359) ([Azat Khuzhin](https://github.com/azat)).
* Un produit tiers dépendant de ClickHouse (Gluten: a Plugin to Double Spark SQL's Performance) comportait un bug. Ce correctif évite un heap overflow dans ce produit tiers lors de la lecture depuis HDFS. [#51386](https://github.com/ClickHouse/ClickHouse/pull/51386) ([李扬](https://github.com/taiyang-li)).
* Ajout de la possibilité de désactiver la copie native pour S3 (paramètre `allow_s3_native_copy` pour BACKUP/RESTORE, et `s3_allow_native_copy` pour les disques `s3`/`s3_plain`). [#51448](https://github.com/ClickHouse/ClickHouse/pull/51448) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la colonne `primary_key_size` à la table `system.parts` pour afficher la taille sur disque de la clé primaire compressée. Clôt [#51400](https://github.com/ClickHouse/ClickHouse/issues/51400). [#51496](https://github.com/ClickHouse/ClickHouse/pull/51496) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Autoriser l'exécution de `clickhouse-local` sans procfs, sans répertoire personnel existant et sans plugin de résolution de noms de glibc. [#51518](https://github.com/ClickHouse/ClickHouse/pull/51518) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de l’espace réservé `%a` pour le nom de fichier complet dans le paramètre `rename&#95;files&#95;after&#95;processing`. [#51603](https://github.com/ClickHouse/ClickHouse/pull/51603) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la colonne `modification_time` à `system.parts_columns`. [#51685](https://github.com/ClickHouse/ClickHouse/pull/51685) ([Azat Khuzhin](https://github.com/azat)).
* Ajout du nouveau paramètre `input_format_csv_use_default_on_bad_values` au format CSV, qui permet d’insérer une valeur par défaut lorsque l’analyse d’un champ individuel échoue. [#51716](https://github.com/ClickHouse/ClickHouse/pull/51716) ([KevinyhZou](https://github.com/KevinyhZou)).
* Ajout d’un flush du journal de crash sur le disque après un crash inattendu. [#51720](https://github.com/ClickHouse/ClickHouse/pull/51720) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Correction du comportement sur la page du tableau de bord, où les erreurs sans rapport avec l’authentification n’étaient pas affichées. Correction également du comportement de chevauchement des graphiques. [#51744](https://github.com/ClickHouse/ClickHouse/pull/51744) ([Zach Naimon](https://github.com/ArctypeZach)).
* Autorisation de la conversion de UUID en UInt128. [#51765](https://github.com/ClickHouse/ClickHouse/pull/51765) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Ajout de la prise en charge des arguments Nullable pour la fonction `range`. [#51767](https://github.com/ClickHouse/ClickHouse/pull/51767) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Conversion des conditions du type `toyear(x) = c` en `c1 <= x < c2`. [#51795](https://github.com/ClickHouse/ClickHouse/pull/51795) ([Han Fei](https://github.com/hanfei1991)).
* Amélioration de la compatibilité MySQL de l’instruction `SHOW INDEX`. [#51796](https://github.com/ClickHouse/ClickHouse/pull/51796) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de `use_structure_from_insertion_table_in_table_functions`, qui ne fonctionnait pas avec les colonnes `MATERIALIZED` et `ALIAS`. Ferme [#51817](https://github.com/ClickHouse/ClickHouse/issues/51817). Ferme [#51019](https://github.com/ClickHouse/ClickHouse/issues/51019). [#51825](https://github.com/ClickHouse/ClickHouse/pull/51825) ([flynn](https://github.com/ucasfl)).
* Le dictionnaire cache ne demande désormais que des clés uniques à la source. Ferme [#51762](https://github.com/ClickHouse/ClickHouse/issues/51762). [#51853](https://github.com/ClickHouse/ClickHouse/pull/51853) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction du cas où les paramètres n’étaient pas appliqués à une requête EXPLAIN lorsqu’un FORMAT était fourni. [#51859](https://github.com/ClickHouse/ClickHouse/pull/51859) ([Nikita Taranov](https://github.com/nickitat)).
* Autorisation de SETTINGS avant FORMAT dans la requête DESCRIBE TABLE pour assurer la compatibilité avec la requête SELECT. Ferme [#51544](https://github.com/ClickHouse/ClickHouse/issues/51544). [#51899](https://github.com/ClickHouse/ClickHouse/pull/51899) ([Nikolay Degterinsky](https://github.com/evillique)).
* Les entiers encodés en Var-Int (par exemple utilisés par le protocole natif) peuvent désormais utiliser toute la plage sur 64 bits. Il est conseillé aux clients tiers de mettre à jour leur code var-int en conséquence. [#51905](https://github.com/ClickHouse/ClickHouse/pull/51905) ([Robert Schulze](https://github.com/rschu1ze)).
* Mise à jour des certificats lorsqu’ils changent, sans qu’il soit nécessaire d’exécuter manuellement SYSTEM RELOAD CONFIG. [#52030](https://github.com/ClickHouse/ClickHouse/pull/52030) ([Mike Kot](https://github.com/myrrc)).
* Ajout du paramètre `allow_create_index_without_type`, qui permet d’ignorer les requêtes `ADD INDEX` sans `TYPE` spécifié. Les requêtes SQL standard réussiront simplement sans modifier le schéma de la table. [#52056](https://github.com/ClickHouse/ClickHouse/pull/52056) ([Ilya Yatsishin](https://github.com/qoega)).
* Les messages de log sont écrits dans `system.text_log` dès le démarrage du serveur. [#52113](https://github.com/ClickHouse/ClickHouse/pull/52113) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Lorsque le endpoint HTTP possède plusieurs adresses IP et que la première est inaccessible, une exception de timeout était levée. La création de session gère désormais tous les endpoints résolus. [#52116](https://github.com/ClickHouse/ClickHouse/pull/52116) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Le input format Avro prend désormais en charge Union même s'il ne contient qu'un seul type. Clôt [#52131](https://github.com/ClickHouse/ClickHouse/issues/52131). [#52137](https://github.com/ClickHouse/ClickHouse/pull/52137) ([flynn](https://github.com/ucasfl)).
* Ajout du paramètre `optimize_use_implicit_projections` pour désactiver les projections implicites (actuellement, uniquement la projection `min_max_count`). [#52152](https://github.com/ClickHouse/ClickHouse/pull/52152) ([Amos Bird](https://github.com/amosbird)).
* Il était possible d'utiliser la fonction `hasToken` pour provoquer une boucle infinie. Ce n'est plus possible. Clôt [#52156](https://github.com/ClickHouse/ClickHouse/issues/52156). [#52160](https://github.com/ClickHouse/ClickHouse/pull/52160) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Crée les ancêtres ZK de manière optimiste. [#52195](https://github.com/ClickHouse/ClickHouse/pull/52195) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de [#50582](https://github.com/ClickHouse/ClickHouse/issues/50582). Évite l'erreur `Not found column ... in block` dans certains cas de lecture ordonnée et de constantes. [#52259](https://github.com/ClickHouse/ClickHouse/pull/52259) ([Chen768959](https://github.com/Chen768959)).
* Vérifie le plus tôt possible côté ClickHouse si les primitives Geo S2 sont invalides. Clôt : [#27090](https://github.com/ClickHouse/ClickHouse/issues/27090). [#52260](https://github.com/ClickHouse/ClickHouse/pull/52260) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Réajoute les informations QueryAccessInfo de projection manquantes lorsque `query_plan_optimize_projection = 1`. Corrige [#50183](https://github.com/ClickHouse/ClickHouse/issues/50183). Corrige [#50093](https://github.com/ClickHouse/ClickHouse/issues/50093). [#52327](https://github.com/ClickHouse/ClickHouse/pull/52327) ([Amos Bird](https://github.com/amosbird)).
* Lorsque `ZooKeeperRetriesControl` relance une erreur, il est plus utile de voir sa stack trace d'origine plutôt que celle de `ZooKeeperRetriesControl` lui-même. [#52347](https://github.com/ClickHouse/ClickHouse/pull/52347) ([Vitaly Baranov](https://github.com/vitlibar)).
* Attend le verrou de zero copy replication même si certains disks ne le prennent pas en charge. [#52376](https://github.com/ClickHouse/ClickHouse/pull/52376) ([Raúl Marín](https://github.com/Algunenano)).
* Désormais, le port interserver ne sera fermé qu'après l'arrêt des tables. [#52498](https://github.com/ClickHouse/ClickHouse/pull/52498) ([alesapin](https://github.com/alesapin)).

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

* L'écriture de fichiers Parquet est 10x plus rapide ; elle est désormais multithreadée. La vitesse est presque la même qu'en lecture. [#49367](https://github.com/ClickHouse/ClickHouse/pull/49367) ([Michael Kolupaev](https://github.com/al13n321)). Ce comportement est contrôlé par le paramètre `output_format_parquet_use_custom_encoder`, désactivé par défaut, car cette fonctionnalité n'est pas encore optimale.
* Ajout de la prise en charge de [PRQL](https://prql-lang.org/) comme langage de requête. [#50686](https://github.com/ClickHouse/ClickHouse/pull/50686) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Il est désormais possible d'ajouter un nom de disque pour les disques personnalisés. Auparavant, les disques personnalisés utilisaient un nom de disque généré en interne. Cela est maintenant possible avec `disk = disk_<name>(...)` (par ex. le disque portera le nom `name`). [#51552](https://github.com/ClickHouse/ClickHouse/pull/51552) ([Kseniia Sumarokova](https://github.com/kssenii)). Cette syntaxe peut être modifiée dans cette version.
* (experimental MaterializedMySQL) Correction d'un plantage lorsque `mysqlxx::Pool::Entry` est utilisé après sa déconnexion. [#52063](https://github.com/ClickHouse/ClickHouse/pull/52063) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) `CREATE TABLE ... AS SELECT` .. est désormais pris en charge dans MaterializedMySQL. [#52067](https://github.com/ClickHouse/ClickHouse/pull/52067) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Introduction de la conversion automatique des types texte en UTF-8 pour MaterializedMySQL. [#52084](https://github.com/ClickHouse/ClickHouse/pull/52084) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Les chaînes UTF-8 non entre guillemets sont désormais prises en charge dans le DDL pour MaterializedMySQL. [#52318](https://github.com/ClickHouse/ClickHouse/pull/52318) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Les commentaires entre guillemets doubles sont désormais pris en charge dans MaterializedMySQL. [#52355](https://github.com/ClickHouse/ClickHouse/pull/52355) ([Val Doroshchuk](https://github.com/valbok)).
* Mise à niveau d'Intel QPL de v1.1.0 vers v1.2.0 2. mise à niveau d'Intel accel-config de v3.5 vers v4.0 3. correction d'un problème où les défauts Device IOTLB ont un impact important sur les performances des accélérateurs IAA. [#52180](https://github.com/ClickHouse/ClickHouse/pull/52180) ([jasperzhu](https://github.com/jinjunzh)).
* Le paramètre `session_timezone` (nouveau dans la version 23.6) repasse au statut expérimental. [#52445](https://github.com/ClickHouse/ClickHouse/pull/52445) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de la commande ZooKeeper `reconfig` pour ClickHouse Keeper avec reconfiguration incrémentielle, qui peut être activée via le paramètre `keeper_server.enable_reconfiguration`. Prise en charge de l'ajout et de la suppression de serveurs, ainsi que de la modification de leurs priorités. [#49450](https://github.com/ClickHouse/ClickHouse/pull/49450) ([Mike Kot](https://github.com/myrrc)). Il semble que cette fonctionnalité soit incomplète.

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

* Ajout de builds ClickHouse expérimentales pour Linux RISC-V 64 dans la CI. [#31398](https://github.com/ClickHouse/ClickHouse/pull/31398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d'une vérification de test d'intégration avec l'analyseur activé. [#50926](https://github.com/ClickHouse/ClickHouse/pull/50926) [#52210](https://github.com/ClickHouse/ClickHouse/pull/52210) ([Dmitry Novik](https://github.com/novikd)).
* Builds reproductibles pour Rust. [#52395](https://github.com/ClickHouse/ClickHouse/pull/52395) ([Azat Khuzhin](https://github.com/azat)).
* Mise à jour des dépendances Cargo. [#51721](https://github.com/ClickHouse/ClickHouse/pull/51721) ([Raúl Marín](https://github.com/Algunenano)).
* La fonction `CHColumnToArrowColumn::fillArrowArrayWithArrayColumnData` fonctionne désormais avec des tableaux Nullable, qui ne sont pas possibles dans ClickHouse, mais sont nécessaires pour Gluten. [#52112](https://github.com/ClickHouse/ClickHouse/pull/52112) ([李扬](https://github.com/taiyang-li)).
* Nous avons mis à jour la bibliothèque CCTZ vers la branche master, mais cela n'entraîne aucun changement visible pour l'utilisateur. [#52124](https://github.com/ClickHouse/ClickHouse/pull/52124) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La table `system.licenses` inclut désormais la bibliothèque Poco issue d'un fork. Cela résout [#52066](https://github.com/ClickHouse/ClickHouse/issues/52066). [#52127](https://github.com/ClickHouse/ClickHouse/pull/52127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Vérifiez qu'il n'existe aucun cas de mauvaise ponctuation : espace avant une virgule, comme dans `Hello ,world` au lieu de `Hello, world`. [#52549](https://github.com/ClickHouse/ClickHouse/pull/52549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Correction de syncTables dans MaterializedPostgreSQL [#49698](https://github.com/ClickHouse/ClickHouse/pull/49698) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la projection avec optimize\_aggregators\_of\_group\_by\_keys [#49709](https://github.com/ClickHouse/ClickHouse/pull/49709) ([Amos Bird](https://github.com/amosbird)).
* Correction de optimize\_skip\_unused\_shards avec les JOIN [#51037](https://github.com/ClickHouse/ClickHouse/pull/51037) ([Azat Khuzhin](https://github.com/azat)).
* Correction de formatDateTime() avec un datetime64 négatif fractionnaire [#51290](https://github.com/ClickHouse/ClickHouse/pull/51290) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Les fonctions `hasToken*` étaient totalement incorrectes. Ajout d'un test pour [#43358](https://github.com/ClickHouse/ClickHouse/issues/43358) [#51378](https://github.com/ClickHouse/ClickHouse/pull/51378) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de l'optimisation qui déplace les fonctions avant le tri [#51481](https://github.com/ClickHouse/ClickHouse/pull/51481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d'une incompatibilité de structure de bloc dans Pipe::unitePipes pour FINAL [#51492](https://github.com/ClickHouse/ClickHouse/pull/51492) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d'un SIGSEGV pour les clusters dont tous les shards ont un poids nul (corrige INSERT INTO FUNCTION clusterAllReplicas()) [#51545](https://github.com/ClickHouse/ClickHouse/pull/51545) ([Azat Khuzhin](https://github.com/azat)).
* Correction du timeout pour les hedged requests [#51582](https://github.com/ClickHouse/ClickHouse/pull/51582) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'une erreur logique dans ANTI join avec NULL [#51601](https://github.com/ClickHouse/ClickHouse/pull/51601) ([vdimir](https://github.com/vdimir)).
* Correction du déplacement des conditions 'IN' vers PREWHERE [#51610](https://github.com/ClickHouse/ClickHouse/pull/51610) ([Alexander Gololobov](https://github.com/davenger)).
* Ne pas appliquer PredicateExpressionsOptimizer pour ASOF/ANTI join [#51633](https://github.com/ClickHouse/ClickHouse/pull/51633) ([vdimir](https://github.com/vdimir)).
* Correction de l'async insert avec deduplication pour ReplicatedMergeTree utilisant des algorithmes de merging [#51676](https://github.com/ClickHouse/ClickHouse/pull/51676) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de la lecture depuis une colonne vide dans `parseSipHashKey` [#51804](https://github.com/ClickHouse/ClickHouse/pull/51804) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d'un segfault lors de la création d'une table EmbeddedRocksdb invalide [#51847](https://github.com/ClickHouse/ClickHouse/pull/51847) ([Duc Canh Le](https://github.com/canhld94)).
* Correction des inserts dans les tables MongoDB [#51876](https://github.com/ClickHouse/ClickHouse/pull/51876) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction d'un interblocage à l'arrêt de DatabaseCatalog [#51908](https://github.com/ClickHouse/ClickHouse/pull/51908) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction d'une erreur dans les opérateurs de sous-requête [#51922](https://github.com/ClickHouse/ClickHouse/pull/51922) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de la connexion asynchrone aux hôtes ayant plusieurs adresses IP [#51934](https://github.com/ClickHouse/ClickHouse/pull/51934) ([Kruglov Pavel](https://github.com/Avogar)).
* Ne pas supprimer les entrées après ActionsDAG::merge [#51947](https://github.com/ClickHouse/ClickHouse/pull/51947) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Vérifie le compteur de références dans `RemoveManyObjectStorageOperation::finalize` au lieu de `execute` [#51954](https://github.com/ClickHouse/ClickHouse/pull/51954) ([vdimir](https://github.com/vdimir)).
* Autorise les UDF paramétriques [#51964](https://github.com/ClickHouse/ClickHouse/pull/51964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Petit correctif de `toDateTime64()` pour les dates postérieures au 2283-12-31 [#52130](https://github.com/ClickHouse/ClickHouse/pull/52130) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrige le tuple ORDER BY des fonctions WINDOW [#52145](https://github.com/ClickHouse/ClickHouse/pull/52145) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige une analyse incorrecte des projections lorsque l’expression d’agrégation contient des fonctions monotones [#52151](https://github.com/ClickHouse/ClickHouse/pull/52151) ([Amos Bird](https://github.com/amosbird)).
* Corrige une erreur dans les fonctions `groupArrayMoving` [#52161](https://github.com/ClickHouse/ClickHouse/pull/52161) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Désactive la jointure directe pour le dictionnaire de plage [#52187](https://github.com/ClickHouse/ClickHouse/pull/52187) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige le test des mutations sticky (ainsi qu’une condition de concurrence extrêmement rare) [#52197](https://github.com/ClickHouse/ClickHouse/pull/52197) ([alesapin](https://github.com/alesapin)).
* Corrige une condition de concurrence sur le disque Web [#52211](https://github.com/ClickHouse/ClickHouse/pull/52211) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une data race dans `Connection::setAsyncCallback` sur un paquet inconnu provenant du serveur [#52219](https://github.com/ClickHouse/ClickHouse/pull/52219) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la suppression des données temporaires au démarrage et ajoute un test [#52275](https://github.com/ClickHouse/ClickHouse/pull/52275) ([vdimir](https://github.com/vdimir)).
* N’utilise pas les projections minmax\_count lors du comptage de colonnes Nullable [#52297](https://github.com/ClickHouse/ClickHouse/pull/52297) ([Amos Bird](https://github.com/amosbird)).
* MergeTree/ReplicatedMergeTree doivent utiliser le fuseau horaire du serveur pour les entrées de journal [#52325](https://github.com/ClickHouse/ClickHouse/pull/52325) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la vue paramétrée avec CTE et usages multiples [#52328](https://github.com/ClickHouse/ClickHouse/pull/52328) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Désactive les expression templates pour les intervalles de temps [#52335](https://github.com/ClickHouse/ClickHouse/pull/52335) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige `apply_snapshot` dans Keeper [#52358](https://github.com/ClickHouse/ClickHouse/pull/52358) ([Antonio Andelic](https://github.com/antonio2368)).
* Met à jour `build-osx.md` [#52377](https://github.com/ClickHouse/ClickHouse/pull/52377) ([AlexBykovski](https://github.com/AlexBykovski)).
* Corrige le blocage de `countSubstrings` avec un needle vide et un haystack en colonne [#52409](https://github.com/ClickHouse/ClickHouse/pull/52409) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige une projection standard avec une table Merge [#52432](https://github.com/ClickHouse/ClickHouse/pull/52432) ([Amos Bird](https://github.com/amosbird)).
* Corrige une possible double libération dans Aggregator [#52439](https://github.com/ClickHouse/ClickHouse/pull/52439) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige l’insertion dans le moteur Buffer [#52440](https://github.com/ClickHouse/ClickHouse/pull/52440) ([Vasily Nemkov](https://github.com/Enmk)).
* L’implémentation de AnyHash n’était pas conforme. [#52448](https://github.com/ClickHouse/ClickHouse/pull/52448) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Vérification de la profondeur de récursion dans OptimizedRegularExpression [#52451](https://github.com/ClickHouse/ClickHouse/pull/52451) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d’une condition de concurrence dans DatabaseReplicated::startupTables()/canExecuteReplicatedMetadataAlter() [#52490](https://github.com/ClickHouse/ClickHouse/pull/52490) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un plantage dans la fonction `transform` [#52513](https://github.com/ClickHouse/ClickHouse/pull/52513) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de lightweight delete après la suppression d’une projection [#52517](https://github.com/ClickHouse/ClickHouse/pull/52517) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’erreur possible "Cannot drain connections: cancel first" [#52585](https://github.com/ClickHouse/ClickHouse/pull/52585) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="236" /> Version de ClickHouse 23.6, 2023-06-29. [Présentation](https://presentations.clickhouse.com/2023-release-23.6/), [Vidéo](https://www.youtube.com/watch?v=cuf_hYn7dqU)

<Frame>
  <iframe src="https://www.youtube.com/embed/cuf_hYn7dqU" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change-6">
  #### changement non rétrocompatible
</div>

* Suppression de la fonctionnalité `do_not_evict_index_and_mark_files` du cache fs. Cette fonctionnalité ne faisait qu'empirer les choses. [#51253](https://github.com/ClickHouse/ClickHouse/pull/51253) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suppression de la prise en charge d'ALTER pour LIVE VIEW Experimental. [#51287](https://github.com/ClickHouse/ClickHouse/pull/51287) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réduction des valeurs par défaut de `http_max_field_value_size` et `http_max_field_name_size` à 128 KiB. [#51163](https://github.com/ClickHouse/ClickHouse/pull/51163) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Les métriques CGroups liées au CPU sont remplacées par une seule métrique, `CGroupMaxCPU`, pour en faciliter l'utilisation. Les métriques d'utilisation du CPU `Normalized` seront normalisées en fonction des limites de CGroups, au lieu du nombre total de CPU, lorsqu'elles sont définies. Ceci clôt [#50836](https://github.com/ClickHouse/ClickHouse/issues/50836). [#50835](https://github.com/ClickHouse/ClickHouse/pull/50835) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* La fonction `transform`, ainsi que `CASE` avec correspondance sur les valeurs, prennent désormais en charge tous les types de données. Résout [#29730](https://github.com/ClickHouse/ClickHouse/issues/29730). Résout [#32387](https://github.com/ClickHouse/ClickHouse/issues/32387). Résout [#50827](https://github.com/ClickHouse/ClickHouse/issues/50827). Résout [#31336](https://github.com/ClickHouse/ClickHouse/issues/31336). Résout [#40493](https://github.com/ClickHouse/ClickHouse/issues/40493). [#51351](https://github.com/ClickHouse/ClickHouse/pull/51351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de l'option `--rename_files_after_processing <pattern>`. Résout [#34207](https://github.com/ClickHouse/ClickHouse/issues/34207). [#49626](https://github.com/ClickHouse/ClickHouse/pull/49626) ([alekseygolub](https://github.com/alekseygolub)).
* Ajout de la prise en charge du modificateur `TRUNCATE` dans la clause `INTO OUTFILE`. Il est recommandé d'utiliser `APPEND` ou `TRUNCATE` avec `INTO OUTFILE` lorsque le fichier existe. [#50950](https://github.com/ClickHouse/ClickHouse/pull/50950) ([alekar](https://github.com/alekar)).
* Ajout du moteur de table `Redis` et de la fonction de table `redis`. Cela permet d'interroger des serveurs Redis externes. [#50150](https://github.com/ClickHouse/ClickHouse/pull/50150) ([JackyWoo](https://github.com/JackyWoo)).
* Possibilité d'ignorer les fichiers vides dans les fonctions de table file/s3/url/hdfs à l'aide des paramètres `s3_skip_empty_files`, `hdfs_skip_empty_files`, `engine_file_skip_empty_files`, `engine_url_skip_empty_files`. [#50364](https://github.com/ClickHouse/ClickHouse/pull/50364) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d'un nouveau paramètre nommé `use_mysql_types_in_show_columns` pour modifier l'instruction SQL `SHOW COLUMNS` afin d'afficher les types équivalents à ceux de MySQL lorsqu'un client est connecté via le port de compatibilité MySQL. [#49577](https://github.com/ClickHouse/ClickHouse/pull/49577) ([Thomas Panetti](https://github.com/tpanetti)).
* `clickhouse-client` peut désormais être appelé avec une chaîne de connexion au lieu de "--host", "--port", "--user", etc. [#50689](https://github.com/ClickHouse/ClickHouse/pull/50689) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Ajout du paramètre `session_timezone` ; il est utilisé comme fuseau horaire par défaut pour une session lorsqu'aucun fuseau horaire n'est explicitement spécifié. [#44149](https://github.com/ClickHouse/ClickHouse/pull/44149) ([Andrey Zvonov](https://github.com/zvonand)).
* Le codec DEFLATE\_QPL est désormais contrôlé via le paramètre serveur "enable\_deflate\_qpl\_codec" (par défaut : false) au lieu du paramètre "allow\_experimental\_codecs". DEFLATE\_QPL n'est donc plus expérimental. [#50775](https://github.com/ClickHouse/ClickHouse/pull/50775) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Amélioration de la planification des tâches de sélection des fusions et de nettoyage dans `ReplicatedMergeTree`. Ces tâches ne seront pas exécutées trop հաճախ lorsqu'il n'y a rien à fusionner ou à nettoyer. Ajout des paramètres `max_merge_selecting_sleep_ms`, `merge_selecting_sleep_slowdown_factor`, `max_cleanup_delay_period` et `cleanup_thread_preferred_points_per_iteration`. Cela devrait résoudre [#31919](https://github.com/ClickHouse/ClickHouse/issues/31919). [#50107](https://github.com/ClickHouse/ClickHouse/pull/50107) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Activation de la descente des filtres à travers les jointures croisées. [#50605](https://github.com/ClickHouse/ClickHouse/pull/50605) ([Han Fei](https://github.com/hanfei1991)).
* Amélioration des performances lorsque QueryProfiler est activé grâce à l'utilisation d'un `timer_id` local au thread au lieu d'un objet global. [#48778](https://github.com/ClickHouse/ClickHouse/pull/48778) ([Jiebin Sun](https://github.com/jiebinn)).
* Réécriture du format d'entrée/sortie CapnProto pour en améliorer les performances. Les noms de colonnes et les champs CapnProto sont désormais traités sans tenir compte de la casse ; correction de la lecture/écriture des champs de structures imbriquées. [#49752](https://github.com/ClickHouse/ClickHouse/pull/49752) ([Kruglov Pavel](https://github.com/Avogar)).
* Optimisation des performances d'écriture de Parquet pour les threads parallèles. [#50102](https://github.com/ClickHouse/ClickHouse/pull/50102) ([Hongbin Ma](https://github.com/binmahone)).
* Désactivation de `parallelize_output_from_storages` pour le traitement des MATERIALIZED VIEWs et des stockages ne contenant qu'un seul block. [#50214](https://github.com/ClickHouse/ClickHouse/pull/50214) ([Azat Khuzhin](https://github.com/azat)).
* Fusion de la PR [#46558](https://github.com/ClickHouse/ClickHouse/pull/46558). Évite la permutation de blocks lors du tri si le block est déjà trié. [#50697](https://github.com/ClickHouse/ClickHouse/pull/50697) ([Alexey Milovidov](https://github.com/alexey-milovidov), [Maksim Kita](https://github.com/kitaisreal)).
* Exécution en parallèle de plusieurs requêtes de listing vers ZooKeeper afin d'accélérer la lecture depuis la table system.zookeeper. [#51042](https://github.com/ClickHouse/ClickHouse/pull/51042) ([Alexander Gololobov](https://github.com/davenger)).
* Accélération de l'initialisation des tables de lookup DateTime pour les fuseaux horaires. Cela devrait réduire le temps de démarrage/connexion de clickhouse-client, en particulier dans les builds de débogage, car cette étape est assez lourde. [#51347](https://github.com/ClickHouse/ClickHouse/pull/51347) ([Alexander Gololobov](https://github.com/davenger)).
* Correction de la lenteur des data lakes due aux requêtes head synchrones. (Problème lié à la lenteur d'Iceberg/DeltaLake/Hudi lorsqu'il y a beaucoup de fichiers.) [#50976](https://github.com/ClickHouse/ClickHouse/pull/50976) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ne plus lire toutes les colonnes de la table de droite dans un GLOBAL JOIN. [#50721](https://github.com/ClickHouse/ClickHouse/pull/50721) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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

* Prise en charge des répliques parallèles par l’analyseur. [#50441](https://github.com/ClickHouse/ClickHouse/pull/50441) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout d’un délai d’attente aléatoire avant l’exécution de fusions/mutations volumineuses afin de mieux répartir la charge entre les répliques en cas de réplication zero-copy. [#51282](https://github.com/ClickHouse/ClickHouse/pull/51282) ([alesapin](https://github.com/alesapin)).
* Ne pas répliquer les requêtes `ALTER PARTITION` ni les mutations via la base de données `Replicated` si elle ne comporte qu’un seul shard et que la table sous-jacente est `ReplicatedMergeTree`. [#51049](https://github.com/ClickHouse/ClickHouse/pull/51049) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* Assouplit les seuils de « Too many parts » pour les adapter aux usages actuels. Rétablit la contre-pression pendant les requêtes d’`insert` de longue durée. [#50856](https://github.com/ClickHouse/ClickHouse/pull/50856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permet de convertir une IPv6 en adresse IPv4 pour le CIDR ::ffff:0:0/96 (adresses IPv4 mappées). [#49759](https://github.com/ClickHouse/ClickHouse/pull/49759) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Met à jour le protocole MongoDB pour prendre en charge MongoDB 5.1 et les versions plus récentes. La prise en charge des versions utilisant l’ancien protocole (\<3.6) est conservée. Corrige [#45621](https://github.com/ClickHouse/ClickHouse/issues/45621), [#49879](https://github.com/ClickHouse/ClickHouse/issues/49879). [#50061](https://github.com/ClickHouse/ClickHouse/pull/50061) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajoute le paramètre `input_format_max_bytes_to_read_for_schema_inference` pour limiter le nombre d’octets lus lors de l’inférence de schéma. Corrige [#50577](https://github.com/ClickHouse/ClickHouse/issues/50577). [#50592](https://github.com/ClickHouse/ClickHouse/pull/50592) ([Kruglov Pavel](https://github.com/Avogar)).
* Respecte le paramètre `input_format_null_as_default` lors de l’inférence de schéma. [#50602](https://github.com/ClickHouse/ClickHouse/pull/50602) ([Kruglov Pavel](https://github.com/Avogar)).
* Permet d’ignorer les lignes vides finales dans les formats CSV/TSV/CustomSeparated via les paramètres `input_format_csv_skip_trailing_empty_lines`, `input_format_tsv_skip_trailing_empty_lines` et `input_format_custom_skip_trailing_empty_lines` (désactivés par défaut). Corrige [#49315](https://github.com/ClickHouse/ClickHouse/issues/49315). [#50635](https://github.com/ClickHouse/ClickHouse/pull/50635) ([Kruglov Pavel](https://github.com/Avogar)).
* Les fonctions "toDateOrDefault|OrNull" et "accuateCast\[OrDefault|OrNull]" analysent désormais correctement les arguments numériques. [#50709](https://github.com/ClickHouse/ClickHouse/pull/50709) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Prend en charge les fichiers CSV avec des délimiteurs de champ composés d’espaces ou de `\t`, ces délimiteurs étant également pris en charge dans Spark. [#50712](https://github.com/ClickHouse/ClickHouse/pull/50712) ([KevinyhZou](https://github.com/KevinyhZou)).
* Les paramètres `number_of_mutations_to_delay` et `number_of_mutations_to_throw` sont désormais activés par défaut, avec les valeurs 500 et 1000 respectivement. [#50726](https://github.com/ClickHouse/ClickHouse/pull/50726) ([Anton Popov](https://github.com/CurtizJ)).
* Le dashboard affiche correctement les valeurs manquantes. Cela corrige [#50831](https://github.com/ClickHouse/ClickHouse/issues/50831). [#50832](https://github.com/ClickHouse/ClickHouse/pull/50832) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute la possibilité d’utiliser, dans les fonctions `parseDateTimeBestEffort*` et `parseDateTime64BestEffort*`, des arguments de date et d’heure au format de timestamp syslog. [#50925](https://github.com/ClickHouse/ClickHouse/pull/50925) ([Victor Krasnov](https://github.com/sirvickr)).
* Le paramètre de ligne de commande "--password" dans clickhouse-client ne peut désormais être spécifié qu’une seule fois. [#50966](https://github.com/ClickHouse/ClickHouse/pull/50966) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Utilise `hash_of_all_files` de `system.parts` pour vérifier l’identité des parts lors des sauvegardes sur cluster. [#50997](https://github.com/ClickHouse/ClickHouse/pull/50997) ([Vitaly Baranov](https://github.com/vitlibar)).
* La table système zookeeper\_connection connected\_time indique l’heure à laquelle la connexion est établie (format standard), et session\_uptime\_elapsed\_seconds a été ajoutée pour indiquer la durée de la session de connexion établie (en secondes). [#51026](https://github.com/ClickHouse/ClickHouse/pull/51026) ([郭小龙](https://github.com/guoxiaolongzte)).
* Amélioration de la barre de progression pour les fonctions de table file/S3/hdfs/url grâce à l’utilisation de la taille des blocs des données source et d’un comptage incrémental de la taille totale dans chaque thread. Correction de la barre de progression pour les fonctions \*Cluster. Cela résout [#47250](https://github.com/ClickHouse/ClickHouse/issues/47250). [#51088](https://github.com/ClickHouse/ClickHouse/pull/51088) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de total\_bytes\_to\_read au paquet Progress dans le protocole TCP pour améliorer la barre de progression. [#51158](https://github.com/ClickHouse/ClickHouse/pull/51158) ([Kruglov Pavel](https://github.com/Avogar)).
* Amélioration de la vérification des data parts sur les disques avec cache du système de fichiers. [#51164](https://github.com/ClickHouse/ClickHouse/pull/51164) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de current\_elements\_num, qui était parfois incorrect dans le cache fs. [#51242](https://github.com/ClickHouse/ClickHouse/pull/51242) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="buildtestingpackaging-improvement-6">
  #### amélioration de la compilation, des tests et du packaging
</div>

* Ajout d'un keeper-client intégré au binaire Keeper autonome. [#50964](https://github.com/ClickHouse/ClickHouse/pull/50964) ([pufit](https://github.com/pufit)).
* La version effective de LZ4 est désormais utilisée. [#50621](https://github.com/ClickHouse/ClickHouse/pull/50621) ([Nikita Taranov](https://github.com/nickitat)).
* Le serveur ClickHouse affichera la liste des paramètres modifiés en cas d'erreur fatale. Cela corrige [#51137](https://github.com/ClickHouse/ClickHouse/issues/51137). [#51138](https://github.com/ClickHouse/ClickHouse/pull/51138) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Possibilité de compiler ClickHouse avec clang-17. [#51300](https://github.com/ClickHouse/ClickHouse/pull/51300) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le check [SQLancer](https://github.com/sqlancer/sqlancer) est désormais considéré comme stable, car les bogues qu'il avait déclenchés ont été corrigés. Les échecs du check SQLancer seront désormais signalés avec le statut de check échoué. [#51340](https://github.com/ClickHouse/ClickHouse/pull/51340) ([Ilya Yatsishin](https://github.com/qoega)).
* Découpage de l'énorme `RUN` du Dockerfile en blocs conditionnels plus petits. Installation des outils nécessaires à la demande dans la même couche `RUN`, puis suppression de ceux-ci. Mise à niveau de l'OS une seule fois au début. Utilisation d'une méthode moderne pour vérifier le dépôt signé. Rétrogradation du dépôt de base vers ubuntu:20.04 pour résoudre les problèmes sur les anciennes versions de Docker. Mise à niveau de la version de golang pour corriger les vulnérabilités de golang. [#51504](https://github.com/ClickHouse/ClickHouse/pull/51504) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).

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

* Signaler correctement l’état de chargement des dictionnaires exécutables [#48775](https://github.com/ClickHouse/ClickHouse/pull/48775) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Mutation correcte des index de saut et des projections [#50104](https://github.com/ClickHouse/ClickHouse/pull/50104) ([Amos Bird](https://github.com/amosbird)).
* Nettoyage des parts déplacées [#50489](https://github.com/ClickHouse/ClickHouse/pull/50489) ([vdimir](https://github.com/vdimir)).
* Correction de la rétrocompatibilité du hachage des types IP dans les fonctions d’agrégation [#50551](https://github.com/ClickHouse/ClickHouse/pull/50551) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction du nombre de lignes erroné renvoyé par les tables de la famille Log après un truncate [#50585](https://github.com/ClickHouse/ClickHouse/pull/50585) ([flynn](https://github.com/ucasfl)).
* Correction d’un bug dans la fusion parallèle de `uniqExact` [#50590](https://github.com/ClickHouse/ClickHouse/pull/50590) ([Nikita Taranov](https://github.com/nickitat)).
* Annulation des modifications récentes de grace hash join [#50699](https://github.com/ClickHouse/ClickHouse/pull/50699) ([vdimir](https://github.com/vdimir)).
* Query Cache : tentative de correction d’un cast incorrect de `ColumnConst` vers `ColumnVector<char8_t>` [#50704](https://github.com/ClickHouse/ClickHouse/pull/50704) ([Robert Schulze](https://github.com/rschu1ze)).
* Éviter de stocker dans Keeper des logs contenant une opération inconnue [#50751](https://github.com/ClickHouse/ClickHouse/pull/50751) ([Antonio Andelic](https://github.com/antonio2368)).
* Prise en charge de DateTime64 par SummingMergeTree [#50797](https://github.com/ClickHouse/ClickHouse/pull/50797) ([Jordi Villar](https://github.com/jrdi)).
* Ajout d’un paramètre de compatibilité pour les fuseaux horaires non constants [#50834](https://github.com/ClickHouse/ClickHouse/pull/50834) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction du hachage des paramètres LDAP dans les entrées du cache [#50865](https://github.com/ClickHouse/ClickHouse/pull/50865) ([Julian Maicher](https://github.com/jmaicher)).
* Dans le format Parquet, utiliser comme solution de repli l’analyse d’un grand entier à partir de String au lieu de lever une exception [#50873](https://github.com/ClickHouse/ClickHouse/pull/50873) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une vérification trop fréquente du fichier de verrouillage pendant l’écriture d’une sauvegarde [#50889](https://github.com/ClickHouse/ClickHouse/pull/50889) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ne pas appliquer de projection si la lecture ordonnée était activée. [#50923](https://github.com/ClickHouse/ClickHouse/pull/50923) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une situation de concurrence dans l’itérateur Azure blob storage [#50936](https://github.com/ClickHouse/ClickHouse/pull/50936) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction de la propagation erronée de `sort_description` dans `CreatingSets` [#50955](https://github.com/ClickHouse/ClickHouse/pull/50955) ([Nikita Taranov](https://github.com/nickitat)).
* Correction de l’analyse des métadonnées optionnelles d’Iceberg v2 [#50974](https://github.com/ClickHouse/ClickHouse/pull/50974) ([Kseniia Sumarokova](https://github.com/kssenii)).
* MaterializedMySQL : conserver les parenthèses pour les redéfinitions de tables vides [#50977](https://github.com/ClickHouse/ClickHouse/pull/50977) ([Val Doroshchuk](https://github.com/valbok)).
* Correction d’un plantage dans BackupCoordinationStageSync::setError() [#51012](https://github.com/ClickHouse/ClickHouse/pull/51012) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’un dysfonctionnement subtil du copy-on-write du dictionnaire ColumnLowCardinality [#51064](https://github.com/ClickHouse/ClickHouse/pull/51064) ([Michael Kolupaev](https://github.com/al13n321)).
* Génère des IV sûrs [#51086](https://github.com/ClickHouse/ClickHouse/pull/51086) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrige l’inefficacité du query cache pour les SELECT avec des sous-requêtes [#51132](https://github.com/ClickHouse/ClickHouse/pull/51132) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige l’index Set avec une comparaison constante Nullable. [#51205](https://github.com/ClickHouse/ClickHouse/pull/51205) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un plantage dans les fonctions s3 et s3Cluster [#51209](https://github.com/ClickHouse/ClickHouse/pull/51209) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige un plantage lié aux expressions compilées [#51231](https://github.com/ClickHouse/ClickHouse/pull/51231) ([LiuNeng](https://github.com/liuneng1994)).
* Corrige une erreur d’utilisation après libération dans StorageURL lors d’un changement d’URL [#51260](https://github.com/ClickHouse/ClickHouse/pull/51260) ([Michael Kolupaev](https://github.com/al13n321)).
* Met à jour la vérification de la vue paramétrée [#51272](https://github.com/ClickHouse/ClickHouse/pull/51272) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige l’écriture multiple du même fichier dans la sauvegarde [#51299](https://github.com/ClickHouse/ClickHouse/pull/51299) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige un échec du fuzzer dans ActionsDAG [#51301](https://github.com/ClickHouse/ClickHouse/pull/51301) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Supprime les éléments parasites de la fonction `transform` [#51350](https://github.com/ClickHouse/ClickHouse/pull/51350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

### <a id="235" /> version de ClickHouse 23.5, 2023-06-08. [Présentation](https://presentations.clickhouse.com/2023-release-23.5/), [Vidéo](https://www.youtube.com/watch?v=o8Gj1ClU71M)

<Frame>
  <iframe src="https://www.youtube.com/embed/o8Gj1ClU71M" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="upgrade-notes">
  #### Notes de mise à niveau
</div>

* Compresser les marks et la clé primaire par défaut. Cela réduit considérablement le temps des requêtes à froid. Notes de mise à niveau : la prise en charge des marks compressés et de la clé primaire compressée a été ajoutée dans la version 22.9. Si vous avez activé les marks compressés ou la clé primaire compressée, ou si vous avez installé la version 23.5 ou une version plus récente, dans laquelle les marks compressés ou la clé primaire compressée sont activés par défaut, vous ne pourrez pas revenir à la version 22.8 ou antérieure. Vous pouvez également désactiver explicitement les marks compressés ou les clés primaires compressées en spécifiant les paramètres `compress_marks` et `compress_primary_key` dans la section `<merge_tree>` du fichier de configuration du serveur. **Notes de mise à niveau :** Si vous effectuez la mise à niveau depuis une version antérieure à 22.9, vous devez soit mettre à niveau toutes les répliques en même temps, soit désactiver la compression avant la mise à niveau, soit passer par une version intermédiaire où les marks compressés sont pris en charge sans être activés par défaut, comme 23.3. [#42587](https://github.com/ClickHouse/ClickHouse/pull/42587) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Faire en sorte que le stockage objet local fonctionne de manière cohérente avec le stockage objet S3, corriger le problème d'ajout en fin (ferme [#48465](https://github.com/ClickHouse/ClickHouse/issues/48465)) et le rendre configurable comme stockage indépendant. Ce changement n'est pas rétrocompatible, car le cache au-dessus du stockage objet local n'est pas compatible avec les versions précédentes. [#48791](https://github.com/ClickHouse/ClickHouse/pull/48791) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La fonctionnalité expérimentale « in-memory data parts » a été supprimée. Le format de données est toujours pris en charge, mais les paramètres sont sans effet, et des parts au format compact ou wide seront utilisées à la place. Cela ferme [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409). [#49429](https://github.com/ClickHouse/ClickHouse/pull/49429) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les valeurs par défaut des paramètres `parallelize_output_from_storages` et `input_format_parquet_preserve_order` ont été modifiées. Cela permet à ClickHouse de réordonner les lignes lors de la lecture de fichiers (par ex. CSV ou Parquet), ce qui améliore fortement les performances dans de nombreux cas. Pour retrouver l'ancien comportement de préservation de l'ordre, utilisez `parallelize_output_from_storages = 0`, `input_format_parquet_preserve_order = 1`. [#49479](https://github.com/ClickHouse/ClickHouse/pull/49479) ([Michael Kolupaev](https://github.com/al13n321)).
* Rendre les projections prêtes pour la production. Ajouter le paramètre `optimize_use_projections` pour contrôler si les projections seront sélectionnées pour les requêtes SELECT. Le paramètre `allow_experimental_projection_optimization` est obsolète et n'a aucun effet. [#49719](https://github.com/ClickHouse/ClickHouse/pull/49719) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Marquer `joinGet` comme non déterministe (comme `dictGet`). Cela permet de les utiliser dans des mutations sans paramètre supplémentaire. [#49843](https://github.com/ClickHouse/ClickHouse/pull/49843) ([Azat Khuzhin](https://github.com/azat)).
* Annuler la modification « `groupArray` returns cannot be nullable » (en raison d'une rupture de compatibilité binaire pour `groupArray`/`groupArrayLast`/`groupArraySample` sur les types `Nullable`, ce qui entraînera probablement `TOO_LARGE_ARRAY_SIZE` ou `CANNOT_READ_ALL_DATA`). [#49971](https://github.com/ClickHouse/ClickHouse/pull/49971) ([Azat Khuzhin](https://github.com/azat)).
* Le paramètre `enable_memory_bound_merging_of_aggregation_results` est activé par défaut. Si vous effectuez une mise à jour depuis une version antérieure à 22.12, nous vous recommandons de définir ce paramètre sur `false` jusqu'à la fin de la mise à jour. [#50319](https://github.com/ClickHouse/ClickHouse/pull/50319) ([Nikita Taranov](https://github.com/nickitat)).

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

* Ajout du moteur de stockage AzureBlobStorage et de la table function azureBlobStorage. L’ensemble des fonctionnalités prises en charge est très similaire à celui du stockage/de la table function S3 \[#50604] ([https://github.com/ClickHouse/ClickHouse/pull/50604](https://github.com/ClickHouse/ClickHouse/pull/50604)) ([alesapin](https://github.com/alesapin)) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni).
* Ajout du client CLI natif de ClickHouse Keeper, disponible via `clickhouse keeper-client` [#47414](https://github.com/ClickHouse/ClickHouse/pull/47414) ([pufit](https://github.com/pufit)).
* Ajout de la table function `urlCluster`. Refactorisation de toutes les table functions \*Cluster afin de réduire la duplication de code. La schema inference fonctionne désormais pour toutes les signatures possibles des fonctions \*Cluster ainsi que pour les named collections. Clôt [#38499](https://github.com/ClickHouse/ClickHouse/issues/38499). [#45427](https://github.com/ClickHouse/ClickHouse/pull/45427) ([attack204](https://github.com/attack204)), Pavel Kruglov.
* Le query cache peut désormais être utilisé pour des workloads de production. [#47977](https://github.com/ClickHouse/ClickHouse/pull/47977) ([Robert Schulze](https://github.com/rschu1ze)). Le query cache prend désormais en charge les queries avec le modificateur totals et extremes. [#48853](https://github.com/ClickHouse/ClickHouse/pull/48853) ([Robert Schulze](https://github.com/rschu1ze)). Le paramètre `allow_experimental_query_cache` est désormais obsolete, pour des raisons de rétrocompatibilité. Il a été supprimé dans [https://github.com/ClickHouse/ClickHouse/pull/47977](https://github.com/ClickHouse/ClickHouse/pull/47977). [#49934](https://github.com/ClickHouse/ClickHouse/pull/49934) ([Timur Solodovnikov](https://github.com/tsolodov)).
* Les data types géographiques (`Point`, `Ring`, `Polygon` et `MultiPolygon`) sont prêts pour la production. [#50022](https://github.com/ClickHouse/ClickHouse/pull/50022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la schema inference aux table engines PostgreSQL, MySQL, MeiliSearch et SQLite. Clôt [#49972](https://github.com/ClickHouse/ClickHouse/issues/49972). [#50000](https://github.com/ClickHouse/ClickHouse/pull/50000) ([Nikolay Degterinsky](https://github.com/evillique)).
* Le type de password dans des queries telles que `CREATE USER u IDENTIFIED BY 'p'` sera automatiquement défini selon le paramètre `default_password_type` dans le `config.xml` du server. Clôt [#42915](https://github.com/ClickHouse/ClickHouse/issues/42915). [#44674](https://github.com/ClickHouse/ClickHouse/pull/44674) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout du type de password authentication bcrypt. Clôt [#34599](https://github.com/ClickHouse/ClickHouse/issues/34599). [#44905](https://github.com/ClickHouse/ClickHouse/pull/44905) ([Nikolay Degterinsky](https://github.com/evillique)).
* Introduction du nouveau keyword `INTO OUTFILE 'file.txt' APPEND`. [#48880](https://github.com/ClickHouse/ClickHouse/pull/48880) ([alekar](https://github.com/alekar)).
* Ajout de la table `system.zookeeper_connection`, qui affiche des informations sur les connections à Keeper. [#45245](https://github.com/ClickHouse/ClickHouse/pull/45245) ([mateng915](https://github.com/mateng0915)).
* Ajout de la nouvelle fonction `generateRandomStructure`, qui génère une structure de table aléatoire. Elle peut être utilisée en combinaison avec la table function `generateRandom`. [#47409](https://github.com/ClickHouse/ClickHouse/pull/47409) ([Kruglov Pavel](https://github.com/Avogar)).
* Autorise l’utilisation de `CASE` sans branche `ELSE` et étend `transform` pour prendre en charge davantage de types. Corrige également certains problèmes qui faisaient que transform() renvoyait des résultats incorrects lorsque des types Decimal étaient mélangés à d’autres types numériques. [#48300](https://github.com/ClickHouse/ClickHouse/pull/48300) ([Salvatore Mesoraca](https://github.com/aiven-sal)). This closes #2655. This closes #9596. This closes #38666.
* Ajout du [chiffrement côté serveur avec des clés KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) pour les tables S3, ainsi que du paramètre `header` pour les disques S3. Résout [#48723](https://github.com/ClickHouse/ClickHouse/issues/48723). [#48724](https://github.com/ClickHouse/ClickHouse/pull/48724) ([Johann Gan](https://github.com/johanngan)).
* Ajout de MemoryTracker pour les tâches d’arrière-plan (merges et mutations). Introduction des paramètres `merges_mutations_memory_usage_soft_limit` et `merges_mutations_memory_usage_to_ram_ratio`, qui définissent la limite mémoire souple pour les merges et mutations. Si cette limite est atteinte, ClickHouse ne planifiera plus de nouvelles tâches de merge ou de mutation. La Metric `MergesMutationsMemoryTracking` est également ajoutée afin d’observer l’utilisation mémoire actuelle des tâches d’arrière-plan. Nouvelle soumission de [#46089](https://github.com/ClickHouse/ClickHouse/issues/46089). Résout [#48774](https://github.com/ClickHouse/ClickHouse/issues/48774). [#48787](https://github.com/ClickHouse/ClickHouse/pull/48787) ([Dmitry Novik](https://github.com/novikd)).
* La fonction `dotProduct` fonctionne avec les `Array`. [#49050](https://github.com/ClickHouse/ClickHouse/pull/49050) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Prise en charge de l’instruction `SHOW INDEX` pour améliorer la compatibilité avec MySQL. [#49158](https://github.com/ClickHouse/ClickHouse/pull/49158) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la prise en charge des colonnes virtuelles `_file` et `_path` dans la fonction de table `url`. - Amélioration du message d’erreur pour la fonction de table `url`. - résout [#49231](https://github.com/ClickHouse/ClickHouse/issues/49231) - résout [#49232](https://github.com/ClickHouse/ClickHouse/issues/49232). [#49356](https://github.com/ClickHouse/ClickHouse/pull/49356) ([Ziyi Tan](https://github.com/Ziy1-Tan)).
* Ajout du champ `grants` dans le fichier users.xml, ce qui permet de spécifier des droits pour les utilisateurs. [#49381](https://github.com/ClickHouse/ClickHouse/pull/49381) ([pufit](https://github.com/pufit)).
* Prise en charge des jointures full/right à l’aide de l’algorithme grace hash join. [#49483](https://github.com/ClickHouse/ClickHouse/pull/49483) ([lgbo](https://github.com/lgbo-ustc)).
* Le modificateur `WITH FILL` regroupe le remplissage par préfixe de tri. Contrôlé par le paramètre `use_with_fill_by_sorting_prefix` (activé par défaut). En lien avec [#33203](https://github.com/ClickHouse/ClickHouse/issues/33203)#issuecomment-1418736794. [#49503](https://github.com/ClickHouse/ClickHouse/pull/49503) ([Igor Nikonov](https://github.com/devcrafter)).
* `clickhouse-client` accepte désormais les requêtes après "--multiquery" lorsque "--query" (ou "-q") est absent. Exemple : clickhouse-client --multiquery "select 1; select 2;". [#49870](https://github.com/ClickHouse/ClickHouse/pull/49870) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Ajout d’un `handshake_timeout` distinct pour recevoir le paquet Hello depuis une réplique. Résout [#48854](https://github.com/ClickHouse/ClickHouse/issues/48854). [#49948](https://github.com/ClickHouse/ClickHouse/pull/49948) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d’une fonction "space" qui répète un espace autant de fois qu’indiqué. [#50103](https://github.com/ClickHouse/ClickHouse/pull/50103) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de l’option --input\_format\_csv\_trim\_whitespaces. [#50215](https://github.com/ClickHouse/ClickHouse/pull/50215) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Autorise la fonction `dictGetAll` pour les dictionnaires regexp tree à renvoyer, sous forme de tableaux, les valeurs issues de plusieurs correspondances. Clôt [#50254](https://github.com/ClickHouse/ClickHouse/issues/50254). [#50255](https://github.com/ClickHouse/ClickHouse/pull/50255) ([Johann Gan](https://github.com/johanngan)).
* Ajout de la fonction `toLastDayOfWeek` pour arrondir une date ou une date avec heure au samedi ou au dimanche supérieur le plus proche. [#50315](https://github.com/ClickHouse/ClickHouse/pull/50315) ([Victor Krasnov](https://github.com/sirvickr)).
* Possibilité d’ignorer un index de saut en spécifiant `ignore_data_skipping_indices`. [#50329](https://github.com/ClickHouse/ClickHouse/pull/50329) ([Boris Kuschel](https://github.com/bkuschel)).
* Ajout de la table `system.user_processes` et de la requête `SHOW USER PROCESSES` pour afficher les informations mémoire et les ProfileEvents au niveau utilisateur. [#50492](https://github.com/ClickHouse/ClickHouse/pull/50492) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ajout du paramètre de serveur et de format `display_secrets_in_show_and_select` pour afficher les secrets des tables, bases de données, fonctions de table et dictionnaires. Ajout du privilège `displaySecretsInShowAndSelect`, qui contrôle quels utilisateurs peuvent voir les secrets. [#46528](https://github.com/ClickHouse/ClickHouse/pull/46528) ([Mike Kot](https://github.com/myrrc)).
* Autorise la définition d’une ROW POLICY pour toutes les tables appartenant à une DATABASE. [#47640](https://github.com/ClickHouse/ClickHouse/pull/47640) ([Ilya Golshtein](https://github.com/ilejn)).

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

* Compresse par défaut les marks et la clé primaire. Cela réduit considérablement le temps des requêtes à froid. Notes de mise à niveau : la prise en charge des marks compressés et de la clé primaire a été ajoutée dans la version 22.9. Si vous avez activé les marks compressés ou la clé primaire, ou installé la version 23.5 ou ultérieure, qui active par défaut les marks compressés ou la clé primaire, vous ne pourrez pas revenir à la version 22.8 ou antérieure. Vous pouvez également désactiver explicitement les marks compressés ou la clé primaire en spécifiant les paramètres `compress_marks` et `compress_primary_key` dans la section `<merge_tree>` du fichier de configuration du serveur. [#42587](https://github.com/ClickHouse/ClickHouse/pull/42587) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le nouveau paramètre s3\_max\_inflight\_parts\_for\_one\_file définit la limite du nombre de parts chargées simultanément via une requête de multipart upload pour un même fichier. [#49961](https://github.com/ClickHouse/ClickHouse/pull/49961) ([Sema Checherinda](https://github.com/CheSema)).
* Lors de la lecture de plusieurs fichiers, réduit le nombre de threads de parsing parallèles pour chaque fichier. Résout [#42192](https://github.com/ClickHouse/ClickHouse/issues/42192). [#46661](https://github.com/ClickHouse/ClickHouse/pull/46661) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Utilise la projection d’agrégation uniquement si elle lit moins de granules qu’une lecture normale. Cela devrait aider lorsque la requête touche la PK de la table, mais pas la projection. Corrige [#49150](https://github.com/ClickHouse/ClickHouse/issues/49150). [#49417](https://github.com/ClickHouse/ClickHouse/pull/49417) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ne stocke pas de blocks dans `ANY` hash join si rien n’est inséré. [#48633](https://github.com/ClickHouse/ClickHouse/pull/48633) ([vdimir](https://github.com/vdimir)).
* Corrige l’aggregate combinator `-If` lorsqu’il est compilé en JIT, et active la compilation JIT pour les aggregate functions. Clôt [#48120](https://github.com/ClickHouse/ClickHouse/issues/48120). [#49083](https://github.com/ClickHouse/ClickHouse/pull/49083) ([Igor Nikonov](https://github.com/devcrafter)).
* Pour la lecture depuis des tables distantes, nous utilisons des tasks plus petites (au lieu de lire la part entière) afin de permettre le stealing de tasks \* la task size est déterminée par la taille des columns à lire \* utilise toujours des buffers de 1mb pour la lecture depuis S3 \* les limites des segments de cache sont alignées sur 1mb afin qu’ils conservent une taille correcte même avec de petites tasks. Cela devrait également éviter la fragmentation. [#49287](https://github.com/ClickHouse/ClickHouse/pull/49287) ([Nikita Taranov](https://github.com/nickitat)).
* Paramètres introduits : - `merge_max_block_size_bytes` pour limiter la quantité de mémoire utilisée pour les opérations en arrière-plan. - `vertical_merge_algorithm_min_bytes_to_activate` pour ajouter une condition supplémentaire à l’activation des vertical merges. [#49313](https://github.com/ClickHouse/ClickHouse/pull/49313) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* La taille par défaut d’un read buffer pour la lecture depuis le local filesystem a été modifiée pour une valeur légèrement meilleure. Deux nouveaux paramètres ont également été introduits : `max_read_buffer_size_local_fs` et `max_read_buffer_size_remote_fs`. [#49321](https://github.com/ClickHouse/ClickHouse/pull/49321) ([Nikita Taranov](https://github.com/nickitat)).
* Améliore l’utilisation mémoire et la vitesse des dictionnaires `SPARSE_HASHED`/`HASHED` (par ex. `SPARSE_HASHED` consomme désormais 2.6x moins de mémoire et est \~2x plus rapide). [#49380](https://github.com/ClickHouse/ClickHouse/pull/49380) ([Azat Khuzhin](https://github.com/azat)).
* Optimise les tables `system.query_log` et `system.query_thread_log` en appliquant `LowCardinality` lorsque cela est pertinent. Les requêtes sur ces tables seront plus rapides. [#49530](https://github.com/ClickHouse/ClickHouse/pull/49530) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Meilleures performances pour la lecture de fichiers `Parquet` locaux (grâce à la lecture en parallèle). [#49539](https://github.com/ClickHouse/ClickHouse/pull/49539) ([Michael Kolupaev](https://github.com/al13n321)).
* Améliore les performances de `RIGHT/FULL JOIN` jusqu'à un facteur 2 dans certains scénarios, en particulier lors de la jointure d'une petite table de gauche avec une grande table de droite. [#49585](https://github.com/ClickHouse/ClickHouse/pull/49585) ([lgbo](https://github.com/lgbo-ustc)).
* Améliore les performances de BLAKE3 de 11 % en activant LTO pour Rust. [#49600](https://github.com/ClickHouse/ClickHouse/pull/49600) ([Azat Khuzhin](https://github.com/azat)). Il atteint désormais les performances de C++.
* Optimise la structure de `system.opentelemetry_span_log`. Utilise `LowCardinality` lorsque c'est pertinent. Bien que cette table soit globalement mal conçue (elle utilise le type de données Map même pour les attributs courants), elle sera légèrement meilleure. [#49647](https://github.com/ClickHouse/ClickHouse/pull/49647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Tente de préallouer la taille de la table de hachage dans la jointure `grace_hash`. [#49816](https://github.com/ClickHouse/ClickHouse/pull/49816) ([lgbo](https://github.com/lgbo-ustc)).
* Fusion parallèle des états `uniqExactIf`. Clôt [#49885](https://github.com/ClickHouse/ClickHouse/issues/49885). [#50285](https://github.com/ClickHouse/ClickHouse/pull/50285) ([flynn](https://github.com/ucasfl)).
* Amélioration de Keeper : ajoute la requête `CheckNotExists` à Keeper, ce qui permet d'améliorer les performances des tables Replicated. [#48897](https://github.com/ClickHouse/ClickHouse/pull/48897) ([Antonio Andelic](https://github.com/antonio2368)).
* Améliorations des performances de Keeper : évite de sérialiser deux fois la même requête pendant le traitement. Met en cache les résultats de désérialisation des requêtes volumineuses. Contrôlé par le nouveau paramètre de coordination `min_request_size_for_cache`. [#49004](https://github.com/ClickHouse/ClickHouse/pull/49004) ([Antonio Andelic](https://github.com/antonio2368)).
* Réduit le nombre de requêtes ZooKeeper `List` lors de la sélection des parts à fusionner lorsque de nombreuses partitions n'ont rien à fusionner. [#49637](https://github.com/ClickHouse/ClickHouse/pull/49637) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Revoit le verrouillage dans le cache FS [#44985](https://github.com/ClickHouse/ClickHouse/pull/44985) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactive les parallel replicas pures si une optimisation triviale de `count` est possible. [#50594](https://github.com/ClickHouse/ClickHouse/pull/50594) ([Raúl Marín](https://github.com/Algunenano)).
* N'envoie pas de requête HEAD pour toutes les clés lors de l'inférence de schéma Iceberg, uniquement pour celles utilisées pour lire les données. [#50203](https://github.com/ClickHouse/ClickHouse/pull/50203) ([Kruglov Pavel](https://github.com/Avogar)).
* Le paramètre `enable_memory_bound_merging_of_aggregation_results` est désormais activé par défaut. [#50319](https://github.com/ClickHouse/ClickHouse/pull/50319) ([Nikita Taranov](https://github.com/nickitat)).

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

* Le codec `DEFLATE_QPL` abaisse la version minimale de SIMD à SSE 4.2. [modification de la documentation dans qpl](https://github.com/intel/qpl/commit/3f8f5cea27739f5261e8fd577dc233ffe88bf679) - Intel® QPL s'appuie sur un répartiteur de kernels à l'exécution et sur une vérification cpuid pour choisir la ou les meilleures implémentations disponibles (sse/avx2/avx512) - restructuration du fichier CMake pour le build de qpl dans ClickHouse afin de l'aligner sur la dernière version upstream de qpl. [#49811](https://github.com/ClickHouse/ClickHouse/pull/49811) ([jasperzhu](https://github.com/jinjunzh)).
* Ajout d'une prise en charge initiale des JOIN avec des répliques parallèles pures. [#49544](https://github.com/ClickHouse/ClickHouse/pull/49544) ([Raúl Marín](https://github.com/Algunenano)).
* Davantage de parallélisme pour la suppression des parties `Outdated` avec la "réplication zero-copy". [#49630](https://github.com/ClickHouse/ClickHouse/pull/49630) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Répliques parallèles : 1) Correction d'une erreur `NOT_FOUND_COLUMN_IN_BLOCK` lors de l'utilisation de répliques parallèles avec un stockage non répliqué lorsque le paramètre `parallel_replicas_for_non_replicated_merge_tree` est désactivé 2) Désormais, `allow_experimental_parallel_reading_from_replicas` peut prendre 3 valeurs possibles - 0, 1 et 2. 0 - désactivé, 1 - activé, avec désactivation silencieuse en cas d'échec (dans le cas de FINAL ou JOIN), 2 - activé, lève une exception en cas d'échec. 3) Si le modificateur FINAL est utilisé dans une requête SELECT et que les répliques parallèles sont activées, ClickHouse essaiera de les désactiver si `allow_experimental_parallel_reading_from_replicas` est défini sur 1 et lèvera une exception sinon. [#50195](https://github.com/ClickHouse/ClickHouse/pull/50195) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Lorsque les répliques parallèles sont activées, elles ignoreront toujours les serveurs indisponibles (ce comportement est contrôlé par le paramètre `skip_unavailable_shards`, activé par défaut et qu'il est seulement possible de désactiver). Ceci clôt : [#48565](https://github.com/ClickHouse/ClickHouse/issues/48565). [#50293](https://github.com/ClickHouse/ClickHouse/pull/50293) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* La commande `BACKUP` ne déchiffre pas les données des disques chiffrés lors de la création d’une sauvegarde. À la place, les données sont stockées dans la sauvegarde sous forme chiffrée. Ces sauvegardes ne peuvent être restaurées que sur un disque chiffré avec la même liste de clés de chiffrement (ou une liste étendue). [#48896](https://github.com/ClickHouse/ClickHouse/pull/48896) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de la possibilité d’utiliser des tables temporaires dans la clause FROM de ATTACH PARTITION FROM et REPLACE PARTITION FROM. [#49436](https://github.com/ClickHouse/ClickHouse/pull/49436) ([Roman Vasin](https://github.com/rvasin)).
* Ajout du paramètre `async_insert` pour les tables `MergeTree`. Il a la même signification que le paramètre `async_insert` au niveau de la requête et active les insertions asynchrones pour une table donnée. Remarque : il n’a aucun effet pour les requêtes d’insertion exécutées depuis `clickhouse-client` ; dans ce cas, utilisez le paramètre au niveau de la requête. [#49122](https://github.com/ClickHouse/ClickHouse/pull/49122) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la prise en charge des suffixes de taille dans les paramètres des instructions de création de quota. [#49087](https://github.com/ClickHouse/ClickHouse/pull/49087) ([Eridanus](https://github.com/Eridanus117)).
* Extension de `first_value` et `last_value` pour accepter NULL. [#46467](https://github.com/ClickHouse/ClickHouse/pull/46467) ([lgbo](https://github.com/lgbo-ustc)).
* Ajout des alias `str_to_map` et `mapFromString` pour `extractKeyValuePairs`. Clôt [https://github.com/clickhouse/clickhouse/issues/47185](https://github.com/clickhouse/clickhouse/issues/47185). [#49466](https://github.com/ClickHouse/ClickHouse/pull/49466) ([flynn](https://github.com/ucasfl)).
* Ajout de la prise en charge de CGroup version 2 pour les métriques asynchrones sur l’utilisation et la disponibilité de la mémoire. Ceci clôt [#37983](https://github.com/ClickHouse/ClickHouse/issues/37983). [#45999](https://github.com/ClickHouse/ClickHouse/pull/45999) ([sichenzhao](https://github.com/sichenzhao)).
* Les fonctions de table de cluster doivent toujours ignorer les shards indisponibles. Clôt [#46314](https://github.com/ClickHouse/ClickHouse/issues/46314). [#46765](https://github.com/ClickHouse/ClickHouse/pull/46765) ([zk\_kiger](https://github.com/zk-kiger)).
* Autorisation des colonnes vides dans l’en-tête des fichiers CSV. [#47496](https://github.com/ClickHouse/ClickHouse/pull/47496) ([你不要过来啊](https://github.com/iiiuwioajdks)).
* Ajout de la table function `gcs`, compatible S3, pour Google Cloud Storage. Comme les fonctions `oss` et `cosn`, il s’agit simplement d’un alias de la table function `s3` et elle n’apporte aucune nouvelle fonctionnalité. [#47815](https://github.com/ClickHouse/ClickHouse/pull/47815) ([Kuba Kaflik](https://github.com/jkaflik)).
* Ajout de la possibilité d’utiliser une taille stricte des parts pour S3 (compatibilité avec CloudFlare R2 S3 Storage). [#48492](https://github.com/ClickHouse/ClickHouse/pull/48492) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de nouvelles colonnes contenant des informations sur les répliques de bases de données `Replicated` dans `system.clusters` : `database_shard_name`, `database_replica_name`, `is_active`. Ajout d’une clause facultative `FROM SHARD` à la requête `SYSTEM DROP DATABASE REPLICA`. [#48548](https://github.com/ClickHouse/ClickHouse/pull/48548) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajout d’une nouvelle colonne `zookeeper_name` dans `system.replicas`, pour indiquer dans quel cluster ZooKeeper (auxiliaire) sont stockées les métadonnées de la table répliquée. [#48549](https://github.com/ClickHouse/ClickHouse/pull/48549) ([cangyin](https://github.com/cangyin)).
* L’opérateur `IN` prend en charge la comparaison entre `Date` et `Date32`. Clôt [#48736](https://github.com/ClickHouse/ClickHouse/issues/48736). [#48806](https://github.com/ClickHouse/ClickHouse/pull/48806) ([flynn](https://github.com/ucasfl)).
* Prise en charge des codes d’effacement dans `HDFS`, auteur : @M1eyu2018, @tomscut. [#48833](https://github.com/ClickHouse/ClickHouse/pull/48833) ([M1eyu](https://github.com/M1eyu2018)).
* Implémente SYSTEM DROP REPLICA depuis des clusters ZooKeeper auxiliaires, peut clore [#48931](https://github.com/ClickHouse/ClickHouse/issues/48931). [#48932](https://github.com/ClickHouse/ClickHouse/pull/48932) ([wangxiaobo](https://github.com/wzb5212)).
* Ajout du type de données Array à MongoDB. Clôt [#48598](https://github.com/ClickHouse/ClickHouse/issues/48598). [#48983](https://github.com/ClickHouse/ClickHouse/pull/48983) ([Nikolay Degterinsky](https://github.com/evillique)).
* Prise en charge du stockage des types de données `Interval` dans les tables. [#49085](https://github.com/ClickHouse/ClickHouse/pull/49085) ([larryluogit](https://github.com/larryluogit)).
* Autorise l’utilisation de la fonction de fenêtre `ntile` sans définition explicite de la fenêtre : `ntile(3) OVER (ORDER BY a)`, clôt [#46763](https://github.com/ClickHouse/ClickHouse/issues/46763). [#49093](https://github.com/ClickHouse/ClickHouse/pull/49093) ([vdimir](https://github.com/vdimir)).
* Ajout de paramètres (`number_of_mutations_to_delay`, `number_of_mutations_to_throw`) pour retarder ou faire échouer les requêtes `ALTER` qui créent des mutations (`ALTER UPDATE`, `ALTER DELETE`, `ALTER MODIFY COLUMN`, ...) lorsque la table comporte déjà beaucoup de mutations inachevées. [#49117](https://github.com/ClickHouse/ClickHouse/pull/49117) ([Anton Popov](https://github.com/CurtizJ)).
* Intercepte l’exception provenant de `create_directories` dans le cache du système de fichiers. [#49203](https://github.com/ClickHouse/ClickHouse/pull/49203) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Copie les exemples intégrés dans un nouveau champ `example` de `system.functions` afin de compléter le champ `description`. [#49222](https://github.com/ClickHouse/ClickHouse/pull/49222) ([Dan Roscigno](https://github.com/DanRoscigno)).
* Active les options de connexion pour le dictionnaire MongoDB. Exemple : `xml <source> <mongodb> <host>localhost</host> <port>27017</port> <user></user> <password></password> <db>test</db> <collection>dictionary_source</collection> <options>ssl=true</options> </mongodb> </source>` ### Entrée de documentation pour les changements visibles par l’utilisateur. [#49225](https://github.com/ClickHouse/ClickHouse/pull/49225) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ajout d’un alias `asymptotic` pour la méthode de calcul `asymp` de `kolmogorovSmirnovTest`. Documentation améliorée. [#49286](https://github.com/ClickHouse/ClickHouse/pull/49286) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Les fonctions d’agrégation groupBitAnd/Or/Xor fonctionnent désormais sur des données entières signées. Cela les rend cohérentes avec le comportement des fonctions scalaires bitAnd/Or/Xor. [#49292](https://github.com/ClickHouse/ClickHouse/pull/49292) ([exmy](https://github.com/exmy)).
* Scinde la documentation des fonctions en champs plus détaillés. [#49300](https://github.com/ClickHouse/ClickHouse/pull/49300) ([Robert Schulze](https://github.com/rschu1ze)).
* Utilise plusieurs threads partagés entre toutes les tables d’un serveur pour charger les data parts obsolètes. La taille du pool et de sa file d’attente est contrôlée par les paramètres `max_outdated_parts_loading_thread_pool_size` et `outdated_part_loading_thread_pool_queue_size`. [#49317](https://github.com/ClickHouse/ClickHouse/pull/49317) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ne surestimez pas la taille des données traitées pour les colonnes `LowCardinality` lorsqu'elles partagent des dictionnaires entre les blocs. Cela corrige [#49322](https://github.com/ClickHouse/ClickHouse/issues/49322). Voir aussi [#48745](https://github.com/ClickHouse/ClickHouse/issues/48745). [#49323](https://github.com/ClickHouse/ClickHouse/pull/49323) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le writer Parquet utilise désormais une taille de row group appropriée lorsqu'il est invoqué via `OUTFILE`. [#49325](https://github.com/ClickHouse/ClickHouse/pull/49325) ([Michael Kolupaev](https://github.com/al13n321)).
* Autorise les mots-clés restreints comme `ARRAY` en tant qu'alias si l'alias est entre guillemets. Corrige [#49324](https://github.com/ClickHouse/ClickHouse/issues/49324). [#49360](https://github.com/ClickHouse/ClickHouse/pull/49360) ([Nikolay Degterinsky](https://github.com/evillique)).
* Les tâches de chargement et de suppression des data parts ont été déplacées vers des pools partagés à l'échelle du serveur, au lieu de pools par table. La taille des pools est contrôlée via les settings `max_active_parts_loading_thread_pool_size`, `max_outdated_parts_loading_thread_pool_size` et `max_parts_cleaning_thread_pool_size` dans la config de niveau supérieur. Les settings au niveau de la table `max_part_loading_threads` et `max_part_removal_threads` sont devenus obsolètes. [#49474](https://github.com/ClickHouse/ClickHouse/pull/49474) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Autorise `?password=pass` dans l'URL de l'interface Play. Le mot de passe est remplacé dans l'historique du navigateur. [#49505](https://github.com/ClickHouse/ClickHouse/pull/49505) ([Mike Kot](https://github.com/myrrc)).
* Autorise la lecture d'objets de taille nulle depuis des systèmes de fichiers distants. (car les fichiers vides ne sont pas sauvegardés, il peut donc y avoir zéro blob dans le fichier de métadonnées). Corrige [#49480](https://github.com/ClickHouse/ClickHouse/issues/49480). [#49519](https://github.com/ClickHouse/ClickHouse/pull/49519) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Attache le MemoryTracker du thread à `total_memory_tracker` après le détachement de `ThreadGroup`. [#49527](https://github.com/ClickHouse/ClickHouse/pull/49527) ([Dmitry Novik](https://github.com/novikd)).
* Corrige les vues paramétrées lorsqu'un paramètre de requête est utilisé plusieurs fois dans la requête. [#49556](https://github.com/ClickHouse/ClickHouse/pull/49556) ([Azat Khuzhin](https://github.com/azat)).
* Libère la mémoire allouée au dernier snapshot de ProfileEvents envoyé dans le contexte d'une requête. Suite de [#47564](https://github.com/ClickHouse/ClickHouse/issues/47564). [#49561](https://github.com/ClickHouse/ClickHouse/pull/49561) ([Dmitry Novik](https://github.com/novikd)).
* La fonction "makeDate" propose désormais une surcharge compatible MySQL (arguments année et jour de l'année). [#49603](https://github.com/ClickHouse/ClickHouse/pull/49603) ([Robert Schulze](https://github.com/rschu1ze)).
* Prise en charge de la table function `dictionary` pour `RegExpTreeDictionary`. [#49666](https://github.com/ClickHouse/ClickHouse/pull/49666) ([Han Fei](https://github.com/hanfei1991)).
* Ajout d'une policy d'ordonnancement IO équitable pondérée. Ajout d'un gestionnaire de ressources dynamique, qui permet de mettre à jour la hiérarchie d'ordonnancement IO à l'exécution sans redémarrer le serveur. [#49671](https://github.com/ClickHouse/ClickHouse/pull/49671) ([Sergei Trifonov](https://github.com/serxa)).
* Ajoute une requête compose après le multipart upload vers GCS. Cela permet d'utiliser l'opération de copie sur des objets téléversés via le multipart upload. Il est recommandé de définir `s3_strict_upload_part_size` sur une valeur donnée, car la requête compose peut échouer sur des objets créés à partir de parts de tailles différentes. [#49693](https://github.com/ClickHouse/ClickHouse/pull/49693) ([Antonio Andelic](https://github.com/antonio2368)).
* Pour la fonction `extractKeyValuePairs` : amélioration de la logique d’analyse « best-effort » afin d’accepter `key_value_delimiter` comme élément valide de la valeur. Cela simplifie aussi les branchements et pourrait même légèrement améliorer les performances. [#49760](https://github.com/ClickHouse/ClickHouse/pull/49760) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout du champ `initial_query_id` à system.processors\_profile\_log [#49777](https://github.com/ClickHouse/ClickHouse/pull/49777) ([helifu](https://github.com/helifu)).
* Les tables de logs système peuvent désormais avoir des clés de tri personnalisées. [#49778](https://github.com/ClickHouse/ClickHouse/pull/49778) ([helifu](https://github.com/helifu)).
* Un nouveau champ `partitions` a été ajouté à `system.query_log` pour indiquer quelles partitions participent au calcul. [#49779](https://github.com/ClickHouse/ClickHouse/pull/49779) ([helifu](https://github.com/helifu)).
* Ajout du paramètre `enable_the_endpoint_id_with_zookeeper_name_prefix` pour `ReplicatedMergeTree` (désactivé par défaut). Lorsqu’il est activé, il ajoute le nom du cluster ZooKeeper à l’endpoint de communication interserveur de la table. Cela évite les erreurs `Duplicate interserver IO endpoint` lorsqu’il existe des tables répliquées avec le même chemin, mais des ZooKeeper auxiliaires différents. [#49780](https://github.com/ClickHouse/ClickHouse/pull/49780) ([helifu](https://github.com/helifu)).
* Ajout des paramètres de requête à `clickhouse-local`. Clôture [#46561](https://github.com/ClickHouse/ClickHouse/issues/46561). [#49785](https://github.com/ClickHouse/ClickHouse/pull/49785) ([Nikolay Degterinsky](https://github.com/evillique)).
* Chargement des dictionnaires et des fonctions depuis YAML désormais autorisé par défaut. Dans les versions précédentes, cela nécessitait de modifier `dictionaries_config` ou `user_defined_executable_functions_config` dans le fichier de configuration, car ils attendaient des fichiers `*.xml`. [#49812](https://github.com/ClickHouse/ClickHouse/pull/49812) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le Kafka table engine permet désormais d’utiliser des colonnes alias. [#49824](https://github.com/ClickHouse/ClickHouse/pull/49824) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Ajout d’un paramètre pour limiter le nombre maximal de paires produites par `extractKeyValuePairs`, afin d’éviter une consommation excessive de mémoire. [#49836](https://github.com/ClickHouse/ClickHouse/pull/49836) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout de la prise en charge du cas (inhabituel) où les arguments de l’opérateur `IN` sont des tuples à un seul élément. [#49844](https://github.com/ClickHouse/ClickHouse/pull/49844) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* La fonction `bitHammingDistance` prend en charge les types de données `String` et `FixedString`. Clôture [#48827](https://github.com/ClickHouse/ClickHouse/issues/48827). [#49858](https://github.com/ClickHouse/ClickHouse/pull/49858) ([flynn](https://github.com/ucasfl)).
* Correction des erreurs de réinitialisation du timeout dans le client sous OS X. [#49863](https://github.com/ClickHouse/ClickHouse/pull/49863) ([alekar](https://github.com/alekar)).
* Ajout de la prise en charge des grands entiers, tels que UInt128, Int128, UInt256 et Int256, dans la fonction `bitCount`. Cela permet de calculer la distance de Hamming sur de grands masques de bits pour les applications d’IA. [#49867](https://github.com/ClickHouse/ClickHouse/pull/49867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Utilisation d’empreintes à la place des identifiants de clé dans les disques chiffrés. Cela simplifie la configuration des disques chiffrés. [#49882](https://github.com/ClickHouse/ClickHouse/pull/49882) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout du type de données UUID à PostgreSQL. Clôture [#49739](https://github.com/ClickHouse/ClickHouse/issues/49739). [#49894](https://github.com/ClickHouse/ClickHouse/pull/49894) ([Nikolay Degterinsky](https://github.com/evillique)).
* La fonction `toUnixTimestamp` accepte désormais les arguments `Date` et `Date32`. [#49989](https://github.com/ClickHouse/ClickHouse/pull/49989) ([Victor Krasnov](https://github.com/sirvickr)).
* N’imputer les dictionnaires qu’à la mémoire du serveur. [#49995](https://github.com/ClickHouse/ClickHouse/pull/49995) ([Azat Khuzhin](https://github.com/azat)).
* Le serveur autorisera l’utilisation des paramètres `SQL_*`, tels que `SQL_AUTO_IS_NULL`, comme opérations sans effet pour la compatibilité MySQL. Cela résout [#49927](https://github.com/ClickHouse/ClickHouse/issues/49927). [#50013](https://github.com/ClickHouse/ClickHouse/pull/50013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Préserver initial\_query\_id pour les requêtes ON CLUSTER, ce qui est utile pour l’introspection (avec `distributed_ddl_entry_format_version=5`). [#50015](https://github.com/ClickHouse/ClickHouse/pull/50015) ([Azat Khuzhin](https://github.com/azat)).
* Préserver la rétrocompatibilité des paramètres renommés à l’aide d’alias (`allow_experimental_projection_optimization` pour `optimize_use_projections`, `allow_experimental_lightweight_delete` pour `enable_lightweight_delete`). [#50044](https://github.com/ClickHouse/ClickHouse/pull/50044) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge du passage du FQDN via le paramètre my\_hostname pour enregistrer le nœud du cluster dans Keeper. Ajout du paramètre invisible pour prendre en charge plusieurs groupes de calcul. Un groupe de calcul, en tant que cluster, est invisible pour les autres groupes de calcul. [#50186](https://github.com/ClickHouse/ClickHouse/pull/50186) ([Yangkuan Liu](https://github.com/LiuYangkuan)).
* Correction d’un problème où PostgreSQL lisait toutes les données même lorsque `LIMIT n` était spécifié. [#50187](https://github.com/ClickHouse/ClickHouse/pull/50187) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de nouveaux profile events pour les requêtes avec sous-requêtes (`QueriesWithSubqueries`/`SelectQueriesWithSubqueries`/`InsertQueriesWithSubqueries`). [#50204](https://github.com/ClickHouse/ClickHouse/pull/50204) ([Azat Khuzhin](https://github.com/azat)).
* Ajout du champ roles dans le fichier users.xml, ce qui permet de spécifier des rôles avec des grants via un fichier de configuration. [#50278](https://github.com/ClickHouse/ClickHouse/pull/50278) ([pufit](https://github.com/pufit)).
* Signaler `CGroupCpuCfsPeriod` et `CGroupCpuCfsQuota` dans AsynchronousMetrics. - Respecter les limites de mémoire cgroup v2 au démarrage du serveur. [#50379](https://github.com/ClickHouse/ClickHouse/pull/50379) ([alekar](https://github.com/alekar)).
* Ajout d’un handler de signal pour SIGQUIT afin qu’il fonctionne de la même manière que SIGINT. Résout [#50298](https://github.com/ClickHouse/ClickHouse/issues/50298). [#50435](https://github.com/ClickHouse/ClickHouse/pull/50435) ([Nikolay Degterinsky](https://github.com/evillique)).
* En cas d’échec de l’analyse JSON en raison de la grande taille de l’objet, afficher la dernière position afin de faciliter le débogage. [#50474](https://github.com/ClickHouse/ClickHouse/pull/50474) ([Valentin Alexeev](https://github.com/valentinalexeev)).
* Prise en charge des décimaux sans taille fixe. Résout [#49130](https://github.com/ClickHouse/ClickHouse/issues/49130). [#50586](https://github.com/ClickHouse/ClickHouse/pull/50586) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Nouveau `keeper-bench`, amélioré. Tout peut être personnalisé à partir d’un fichier YAML/XML : - générateur de requêtes - chaque type de générateur de requêtes peut avoir un ensemble spécifique de champs - des requêtes multiples peuvent être générées simplement en faisant la même chose sous la clé `multi` - pour chaque requête ou sous-requête dans `multi`, un champ `weight` peut être défini pour contrôler la distribution - définir les arbres à configurer pour une exécution de test - les hôtes peuvent être définis avec tous les timeouts personnalisables, et il est possible de contrôler le nombre de sessions à générer pour chaque hôte - les entiers définis avec les champs `min_value` et `max_value` sont des générateurs de nombres aléatoires. [#48547](https://github.com/ClickHouse/ClickHouse/pull/48547) ([Antonio Andelic](https://github.com/antonio2368)).
* Io\_uring n’est pas pris en charge sur macOS ; ne le choisissez pas lors de l’exécution de tests en local afin d’éviter des échecs occasionnels. [#49250](https://github.com/ClickHouse/ClickHouse/pull/49250) ([Frank Chen](https://github.com/FrankChen021)).
* Prise en charge de l’injection de fautes nommée pour les tests. [#49361](https://github.com/ClickHouse/ClickHouse/pull/49361) ([Han Fei](https://github.com/hanfei1991)).
* Permet d’exécuter ClickHouse sur des OS où l’appel système `prctl` (contrôle des processus) n’est pas disponible, comme AWS Lambda. [#49538](https://github.com/ClickHouse/ClickHouse/pull/49538) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du conflit de build entre contrib/isa-l et isa-l dans qpl [49296](https://github.com/ClickHouse/ClickHouse/issues/49296). [#49584](https://github.com/ClickHouse/ClickHouse/pull/49584) ([jasperzhu](https://github.com/jinjunzh)).
* Les utilitaires ne sont désormais compilés que s’ils sont explicitement demandés ("-DENABLE\_UTILS=1"), au lieu de l’être par défaut, ce qui réduit les temps d’édition de liens dans les builds de développement typiques. [#49620](https://github.com/ClickHouse/ClickHouse/pull/49620) ([Robert Schulze](https://github.com/rschu1ze)).
* Déplace la description de build de idxd-config dans un fichier CMake distinct afin d’éviter sa suppression accidentelle à l’avenir. [#49651](https://github.com/ClickHouse/ClickHouse/pull/49651) ([jasperzhu](https://github.com/jinjunzh)).
* Ajout d’un check CI avec analyzer activé dans la branche master. Suite de [#49562](https://github.com/ClickHouse/ClickHouse/issues/49562). [#49668](https://github.com/ClickHouse/ClickHouse/pull/49668) ([Dmitry Novik](https://github.com/novikd)).
* Passage à LLVM/clang 16. [#49678](https://github.com/ClickHouse/ClickHouse/pull/49678) ([Azat Khuzhin](https://github.com/azat)).
* Permet de compiler ClickHouse avec clang-17. [#49851](https://github.com/ClickHouse/ClickHouse/pull/49851) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#50410](https://github.com/ClickHouse/ClickHouse/pull/50410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* ClickHouse est désormais plus facile à intégrer dans d’autres projets CMake. [#49991](https://github.com/ClickHouse/ClickHouse/pull/49991) ([Amos Bird](https://github.com/amosbird)). (Ce qui est fortement déconseillé — Alexey Milovidov).
* Correction d’une journalisation QEMU supplémentaire et étrange après [#47151](https://github.com/ClickHouse/ClickHouse/issues/47151), voir [https://s3.amazonaws.com/clickhouse-test-reports/50078/a4743996ee4f3583884d07bcd6501df0cfdaa346/stateless\&#95;tests\&#95;\&#95;release\&#95;\&#95;databasereplicated\&#95;\&#95;\[3\&#95;4\].html](https://s3.amazonaws.com/clickhouse-test-reports/50078/a4743996ee4f3583884d07bcd6501df0cfdaa346/stateless\&#95;tests\&#95;\&#95;release\&#95;\&#95;databasereplicated\&#95;\&#95;\[3\&#95;4].html). [#50442](https://github.com/ClickHouse/ClickHouse/pull/50442) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* ClickHouse peut fonctionner sous Linux RISC-V 6.1.22. Cela clôt [#50456](https://github.com/ClickHouse/ClickHouse/issues/50456). [#50457](https://github.com/ClickHouse/ClickHouse/pull/50457) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mise à niveau de Protobuf interne vers la v3.18 (corrige le faux positif CVE-2022-1941). [#50400](https://github.com/ClickHouse/ClickHouse/pull/50400) ([Robert Schulze](https://github.com/rschu1ze)).
* Mise à niveau de libxml2 interne vers la v2.10.4 (corrige les faux positifs CVE-2023-28484 et CVE-2023-29469). [#50402](https://github.com/ClickHouse/ClickHouse/pull/50402) ([Robert Schulze](https://github.com/rschu1ze)).
* Mise à niveau de c-ares vers la v1.19.1 (faux positifs CVE-2023-32067, CVE-2023-31130, CVE-2023-31147). [#50403](https://github.com/ClickHouse/ClickHouse/pull/50403) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction du faux positif CVE-2022-2469 dans libgsasl. [#50404](https://github.com/ClickHouse/ClickHouse/pull/50404) ([Robert Schulze](https://github.com/rschu1ze)).

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

* ActionsDAG : corrige une optimisation incorrecte [#47584](https://github.com/ClickHouse/ClickHouse/pull/47584) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Gère correctement les snapshots concurrents dans Keeper [#48466](https://github.com/ClickHouse/ClickHouse/pull/48466) ([Antonio Andelic](https://github.com/antonio2368)).
* MergeTreeMarksLoader conserve DataPart au lieu de DataPartStorage [#48515](https://github.com/ClickHouse/ClickHouse/pull/48515) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction de l’état de Sequence [#48603](https://github.com/ClickHouse/ClickHouse/pull/48603) ([Ilya Golshtein](https://github.com/ilejn)).
* Vérifie la concurrence de Back/Restore après des échecs précédents [#48726](https://github.com/ClickHouse/ClickHouse/pull/48726) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction : l’ATTACH d’une table avec un path ZK inexistant n’augmente pas la métrique ReadonlyReplica [#48954](https://github.com/ClickHouse/ClickHouse/pull/48954) ([wangxiaobo](https://github.com/wzb5212)).
* Corrige un possible appel à terminate dû à une exception non interceptée à certains endroits [#49112](https://github.com/ClickHouse/ClickHouse/pull/49112) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l’erreur « key not found » pour les requêtes avec plusieurs StorageJoin [#49137](https://github.com/ClickHouse/ClickHouse/pull/49137) ([vdimir](https://github.com/vdimir)).
* Corrige un résultat de requête incorrect lors de l’utilisation d’une clé primaire Nullable [#49172](https://github.com/ClickHouse/ClickHouse/pull/49172) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige `reinterpretAs*()` sur les machines big-endian [#49198](https://github.com/ClickHouse/ClickHouse/pull/49198) ([Suzy Wang](https://github.com/SuzyWangIBMer)).
* (Experimental zero-copy replication) Verrouille les parts zero-copy de façon plus atomique [#49211](https://github.com/ClickHouse/ClickHouse/pull/49211) ([alesapin](https://github.com/alesapin)).
* Corrige une condition de concurrence lors du chargement des outdated parts [#49223](https://github.com/ClickHouse/ClickHouse/pull/49223) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige le cas où toutes les key value sont NULL et où group utilise rollup, ce qui renvoie un résultat incorrect [#49282](https://github.com/ClickHouse/ClickHouse/pull/49282) ([Shuai li](https://github.com/loneylee)).
* Corrige le calcul de load\_factor pour les Dictionaries HASHED avec SHARDS [#49319](https://github.com/ClickHouse/ClickHouse/pull/49319) ([Azat Khuzhin](https://github.com/azat)).
* Interdit de configurer des CODECs de compression pour les colonnes alias [#49363](https://github.com/ClickHouse/ClickHouse/pull/49363) ([Timur Solodovnikov](https://github.com/tsolodov)).
* Corrige un bug dans la suppression d’un répertoire de part existant [#49365](https://github.com/ClickHouse/ClickHouse/pull/49365) ([alesapin](https://github.com/alesapin)).
* Corrige correctement GCS lorsque HMAC est utilisé [#49390](https://github.com/ClickHouse/ClickHouse/pull/49390) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un bug de fuzzing lorsque le Set de la sous-requête n’est pas construit lors de la lecture depuis remote() [#49425](https://github.com/ClickHouse/ClickHouse/pull/49425) ([Alexander Gololobov](https://github.com/davenger)).
* Inverse `shutdown_wait_unfinished_queries` [#49427](https://github.com/ClickHouse/ClickHouse/pull/49427) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* (Experimental zero-copy replication) Corrige un autre bug zero-copy [#49473](https://github.com/ClickHouse/ClickHouse/pull/49473) ([alesapin](https://github.com/alesapin)).
* Corrige le paramètre de base de données Postgres [#49481](https://github.com/ClickHouse/ClickHouse/pull/49481) ([Mal Curtis](https://github.com/snikch)).
* Gère correctement les arguments de `s3Cluster` [#49490](https://github.com/ClickHouse/ClickHouse/pull/49490) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un bug dans le destructeur de TraceCollector. [#49508](https://github.com/ClickHouse/ClickHouse/pull/49508) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige le dysfonctionnement de AsynchronousReadIndirectBufferFromRemoteFS lors de seeks courts [#49525](https://github.com/ClickHouse/ClickHouse/pull/49525) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige l'ordre de chargement des dictionnaires [#49560](https://github.com/ClickHouse/ClickHouse/pull/49560) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Interdit le changement du type de données d'une colonne Object('json') [#49563](https://github.com/ClickHouse/ClickHouse/pull/49563) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige le test de stress (Erreur logique : Expected 7134 >= 11030) [#49623](https://github.com/ClickHouse/ClickHouse/pull/49623) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un bug dans DISTINCT [#49628](https://github.com/ClickHouse/ClickHouse/pull/49628) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction : DISTINCT dans l'ordre avec des valeurs égales à zéro dans des colonnes non triées [#49636](https://github.com/ClickHouse/ClickHouse/pull/49636) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige une erreur de décalage d'une unité sur les grands entiers, détectée par UBSan avec le fuzzer [#49645](https://github.com/ClickHouse/ClickHouse/pull/49645) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la lecture depuis des colonnes creuses après redémarrage [#49660](https://github.com/ClickHouse/ClickHouse/pull/49660) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige une assertion dans SpanHolder::finish() avec des fibres [#49673](https://github.com/ClickHouse/ClickHouse/pull/49673) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige les fonctions à court-circuit et les mutations avec des arguments creux [#49716](https://github.com/ClickHouse/ClickHouse/pull/49716) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l'écriture des fichiers ajoutés aux sauvegardes incrémentielles [#49725](https://github.com/ClickHouse/ClickHouse/pull/49725) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige l'erreur "There is no physical column \_row\_exists in table" qui se produit lors d'une mutation de suppression légère sur une table avec une colonne Object. [#49737](https://github.com/ClickHouse/ClickHouse/pull/49737) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige un problème msan dans randomStringUTF8(uneven number) [#49750](https://github.com/ClickHouse/ClickHouse/pull/49750) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige la fonction d'agrégation kolmogorovSmirnovTest [#49768](https://github.com/ClickHouse/ClickHouse/pull/49768) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Corrige les alias de paramètres dans le protocole natif [#49776](https://github.com/ClickHouse/ClickHouse/pull/49776) ([Azat Khuzhin](https://github.com/azat)).
* Corrige `arrayMap` avec un tableau de tuples à argument unique [#49789](https://github.com/ClickHouse/ClickHouse/pull/49789) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige les paramètres de limitation du débit des IO/BACKUPs par requête [#49797](https://github.com/ClickHouse/ClickHouse/pull/49797) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la définition de NULL dans un profil [#49831](https://github.com/ClickHouse/ClickHouse/pull/49831) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige un bug lié aux projections et au paramètre aggregate\_functions\_null\_for\_empty (pour query\_plan\_optimize\_projection) [#49873](https://github.com/ClickHouse/ClickHouse/pull/49873) ([Amos Bird](https://github.com/amosbird)).
* Corrige le traitement des batchs en attente pour les INSERT asynchrones de Distributed après un redémarrage [#49884](https://github.com/ClickHouse/ClickHouse/pull/49884) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une assertion dans CacheMetadata::doCleanup [#49914](https://github.com/ClickHouse/ClickHouse/pull/49914) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige `is_prefix` dans OptimizeRegularExpression [#49919](https://github.com/ClickHouse/ClickHouse/pull/49919) ([Han Fei](https://github.com/hanfei1991)).
* Corrige les métriques `WriteBufferFromS3Bytes`, `WriteBufferFromS3Microseconds` et `WriteBufferFromS3RequestsErrors` [#49930](https://github.com/ClickHouse/ClickHouse/pull/49930) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Corrige l'encodage IPv6 dans Protobuf [#49933](https://github.com/ClickHouse/ClickHouse/pull/49933) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige une possible erreur logique en cas de mauvais parsing de Nullable dans les formats texte [#49960](https://github.com/ClickHouse/ClickHouse/pull/49960) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute le paramètre output\_format\_parquet\_compliant\_nested\_types pour produire des fichiers Parquet plus compatibles [#50001](https://github.com/ClickHouse/ClickHouse/pull/50001) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige une erreur logique dans le test de stress "Not enough space to add ..." [#50021](https://github.com/ClickHouse/ClickHouse/pull/50021) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Évite un interblocage au démarrage d'une table dans le thread d'attach de `ReplicatedMergeTree` [#50026](https://github.com/ClickHouse/ClickHouse/pull/50026) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une assertion dans SpanHolder::finish() avec les fibers, tentative 2 [#50034](https://github.com/ClickHouse/ClickHouse/pull/50034) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute le bon échappement pour la sérialisation du contexte OpenTelemetry DDL [#50045](https://github.com/ClickHouse/ClickHouse/pull/50045) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le signalement des projection parts endommagées [#50052](https://github.com/ClickHouse/ClickHouse/pull/50052) ([Amos Bird](https://github.com/amosbird)).
* Corrige le traitement de l'inégalité avec NaN dans la compilation JIT [#50056](https://github.com/ClickHouse/ClickHouse/pull/50056) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige un crash dans le cas d'une base de données Replicated sans arguments [#50058](https://github.com/ClickHouse/ClickHouse/pull/50058) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un crash avec `multiIf`, une condition constante et des arguments Nullable [#50123](https://github.com/ClickHouse/ClickHouse/pull/50123) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige une analyse d'index invalide pour les clés liées à Date [#50153](https://github.com/ClickHouse/ClickHouse/pull/50153) ([Amos Bird](https://github.com/amosbird)).
* N'autorise pas la modification de ORDER BY lorsqu'il n'y a pas de colonnes ORDER BY [#50154](https://github.com/ClickHouse/ClickHouse/pull/50154) ([Han Fei](https://github.com/hanfei1991)).
* Corrige une analyse d'index défaillante lorsqu'un opérateur binaire contient un argument constant NULL [#50177](https://github.com/ClickHouse/ClickHouse/pull/50177) ([Amos Bird](https://github.com/amosbird)).
* clickhouse-client : interdire l’utilisation simultanée de `--query` et `--queries-file` [#50210](https://github.com/ClickHouse/ClickHouse/pull/50210) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Correction d’un comportement indéfini dans les extensions INTO OUTFILE (APPEND / AND STDOUT) et WATCH EVENTS [#50216](https://github.com/ClickHouse/ClickHouse/pull/50216) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la gestion des espaces en fin de ligne dans le format CustomSeparatedIgnoreSpaces [#50224](https://github.com/ClickHouse/ClickHouse/pull/50224) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l’analyse des métadonnées Iceberg [#50232](https://github.com/ClickHouse/ClickHouse/pull/50232) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un SELECT Distributed imbriqué dans la clause WITH [#50234](https://github.com/ClickHouse/ClickHouse/pull/50234) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un problème msan dans keyed siphash [#50245](https://github.com/ClickHouse/ClickHouse/pull/50245) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de bogues dans les sockets Poco en mode non bloquant, avec utilisation de vrais sockets non bloquants [#50252](https://github.com/ClickHouse/ClickHouse/pull/50252) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du calcul de checksum pour les entrées de sauvegarde [#50264](https://github.com/ClickHouse/ClickHouse/pull/50264) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’un problème de NaN dans les fonctions de comparaison [#50287](https://github.com/ClickHouse/ClickHouse/pull/50287) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un problème de clé Nullable dans l’aggregation JIT [#50291](https://github.com/ClickHouse/ClickHouse/pull/50291) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction du crash de clickhouse-local lors de l’écriture d’une sortie Arrow ou Parquet vide [#50328](https://github.com/ClickHouse/ClickHouse/pull/50328) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction d’un crash lorsque Pool::Entry::disconnect() est appelé [#50334](https://github.com/ClickHouse/ClickHouse/pull/50334) ([Val Doroshchuk](https://github.com/valbok)).
* Amélioration de la récupération d’une part en conservant le verrou du répertoire plus longtemps [#50339](https://github.com/ClickHouse/ClickHouse/pull/50339) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction des fonctions bitShift\* lorsque les deux arguments sont constants [#50343](https://github.com/ClickHouse/ClickHouse/pull/50343) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un interblocage de Keeper en cas d’exception lors du prétraitement des requêtes. [#50387](https://github.com/ClickHouse/ClickHouse/pull/50387) ([frinkr](https://github.com/frinkr)).
* Correction du hachage des valeurs entières const [#50421](https://github.com/ClickHouse/ClickHouse/pull/50421) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de merge\_tree\_min\_rows\_for\_seek/merge\_tree\_min\_bytes\_for\_seek pour les index de saut de données [#50432](https://github.com/ClickHouse/ClickHouse/pull/50432) ([Azat Khuzhin](https://github.com/azat)).
* Limiter le nombre de tâches en cours pour le chargement des parties obsolètes [#50450](https://github.com/ClickHouse/ClickHouse/pull/50450) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correctif Keeper : appliquer l’état non validé après l’installation du snapshot [#50483](https://github.com/ClickHouse/ClickHouse/pull/50483) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un repliement de constantes incorrect [#50536](https://github.com/ClickHouse/ClickHouse/pull/50536) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d’une logical error dans le test de stress (Not enough space to add ...) [#50583](https://github.com/ClickHouse/ClickHouse/pull/50583) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la conversion de Null en LowCardinality(Nullable) dans la table function values [#50637](https://github.com/ClickHouse/ClickHouse/pull/50637) ([Kruglov Pavel](https://github.com/Avogar)).
* Annulation d’une optimisation invalide de RegExpTreeDictionary [#50642](https://github.com/ClickHouse/ClickHouse/pull/50642) ([Johann Gan](https://github.com/johanngan)).

### <a id="234" /> Version 23.4 de ClickHouse, 2023-04-26. [Présentation](https://presentations.clickhouse.com/2023-release-23.4/), [Vidéo](https://www.youtube.com/watch?v=4rrf6bk_mOg)

<Frame>
  <iframe src="https://www.youtube.com/embed/4rrf6bk_mOg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change-7">
  #### Changement non rétrocompatible
</div>

* Le Formatter `%M` dans la fonction formatDateTime() affiche désormais le nom du mois au lieu des minutes. Cela aligne le comportement sur celui de MySQL. Le comportement précédent peut être rétabli à l’aide du paramètre "formatdatetime\_parsedatetime\_m\_is\_month\_name = 0". [#47246](https://github.com/ClickHouse/ClickHouse/pull/47246) ([Robert Schulze](https://github.com/rschu1ze)).
* Cette modification n’a de sens que si vous utilisez le cache du système de fichiers virtuel. Si `path` dans la configuration du cache du système de fichiers virtuel n’est pas vide et n’est pas un chemin absolu, il sera alors placé dans `<répertoire de données du serveur ClickHouse>/caches/<path_from_cache_config>`. [#48784](https://github.com/ClickHouse/ClickHouse/pull/48784) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les index primaires/secondaires et les clés de tri ayant des expressions identiques sont désormais rejetés. Ce comportement peut être désactivé à l’aide du paramètre `allow_suspicious_indices`. [#48536](https://github.com/ClickHouse/ClickHouse/pull/48536) ([凌涛](https://github.com/lingtaolf)).

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

* Prise en charge des nouvelles fonctions d’agrégation `quantileGK`/`quantilesGK`, similaires à [approx\_percentile](https://spark.apache.org/docs/latest/api/sql/index.html#approx_percentile) dans Spark. L’algorithme de Greenwald-Khanna est décrit ici : [http://infolab.stanford.edu/\~datar/courses/cs361a/papers/quantiles.pdf](http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf). [#46428](https://github.com/ClickHouse/ClickHouse/pull/46428) ([李扬](https://github.com/taiyang-li)).
* Ajout de l’instruction `SHOW COLUMNS`, qui affiche des informations synthétiques issues de system.columns. [#48017](https://github.com/ClickHouse/ClickHouse/pull/48017) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout des modificateurs `LIGHTWEIGHT` et `PULL` pour la query `SYSTEM SYNC REPLICA`. La version `LIGHTWEIGHT` attend uniquement les fetches et les drop-ranges (les merges et les mutations sont ignorés). La version `PULL` récupère les nouvelles entrées depuis ZooKeeper sans les attendre. Corrige [#47794](https://github.com/ClickHouse/ClickHouse/issues/47794). [#48085](https://github.com/ClickHouse/ClickHouse/pull/48085) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajout de la fonction `kafkaMurmurHash` pour assurer la compatibilité avec Kafka DefaultPartitioner. Clôt [#47834](https://github.com/ClickHouse/ClickHouse/issues/47834). [#48185](https://github.com/ClickHouse/ClickHouse/pull/48185) ([Nikolay Degterinsky](https://github.com/evillique)).
* Permet de créer facilement un utilisateur avec les mêmes grants que l’utilisateur courant à l’aide de `GRANT CURRENT GRANTS`. [#48262](https://github.com/ClickHouse/ClickHouse/pull/48262) ([pufit](https://github.com/pufit)).
* Ajout de la fonction d’agrégation statistique `kolmogorovSmirnovTest`. Clôt [#48228](https://github.com/ClickHouse/ClickHouse/issues/48228). [#48325](https://github.com/ClickHouse/ClickHouse/pull/48325) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Ajout d’une colonne `lost_part_count` à la table `system.replicas`. La valeur de cette colonne indique le nombre total de lost parts dans la table correspondante. Cette valeur est stockée dans ZooKeeper et peut être utilisée à la place de l’événement de profile `ReplicatedDataLoss`, qui n’est pas persistant, pour le monitoring. [#48526](https://github.com/ClickHouse/ClickHouse/pull/48526) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout de la fonction `soundex` à des fins de compatibilité. Clôt [#39880](https://github.com/ClickHouse/ClickHouse/issues/39880). [#48567](https://github.com/ClickHouse/ClickHouse/pull/48567) ([FriendLey](https://github.com/FriendLey)).
* Prise en charge du type `Map` pour JSONExtract. [#48629](https://github.com/ClickHouse/ClickHouse/pull/48629) ([李扬](https://github.com/taiyang-li)).
* Ajout du format `PrettyJSONEachRow` pour produire du JSON joliment formaté avec des délimiteurs de nouvelle ligne et une indentation de 4 espaces. [#48898](https://github.com/ClickHouse/ClickHouse/pull/48898) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout du format d’entrée `ParquetMetadata` pour lire les métadonnées d’un fichier Parquet. [#48911](https://github.com/ClickHouse/ClickHouse/pull/48911) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la fonction `extractKeyValuePairs` pour extraire des paires clé-valeur à partir de chaînes. Les chaînes d’entrée peuvent contenir du bruit (c.-à-d. des fichiers journaux / elles n’ont pas besoin d’être formatées à 100 % au format clé-valeur) ; l’algorithme recherchera les paires clé-valeur correspondant aux arguments passés à la fonction. À ce jour, la fonction accepte les arguments suivants : `data_column` (obligatoire), `key_value_pair_delimiter` (par défaut `:`), `pair_delimiters` (par défaut `\space \, \;`) et `quoting_character` (par défaut des guillemets doubles). [#43606](https://github.com/ClickHouse/ClickHouse/pull/43606) ([Arthur Passos](https://github.com/arthurpassos)).
* Les fonctions replaceOne(), replaceAll(), replaceRegexpOne() et replaceRegexpAll() peuvent désormais être appelées avec des arguments `pattern` et `replacement` non constants. [#46589](https://github.com/ClickHouse/ClickHouse/pull/46589) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de fonctions permettant de travailler avec des colonnes de type `Map` : `mapConcat`, `mapSort`, `mapExists`. [#48071](https://github.com/ClickHouse/ClickHouse/pull/48071) ([Anton Popov](https://github.com/CurtizJ)).

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

* La lecture des fichiers au format `Parquet` est désormais bien plus rapide. Les E/S et le décodage sont parallélisés (via le paramètre `max_threads`), et seules les plages de données nécessaires sont lues. [#47964](https://github.com/ClickHouse/ClickHouse/pull/47964) ([Michael Kolupaev](https://github.com/al13n321)).
* Lorsqu’une mutation avec IN (subquery) est exécutée, comme ici : `ALTER TABLE t UPDATE col='new value' WHERE id IN (SELECT id FROM huge_table)`, et que la table `t` comporte plusieurs parts, un set pour la subquery `SELECT id FROM huge_table` est construit en mémoire pour chaque part. S’il y a beaucoup de parts, cela peut consommer beaucoup de mémoire (et entraîner un OOM) ainsi que du CPU. La solution consiste à introduire un cache de courte durée de vie des sets en cours de construction par les tâches de mutation. Si une autre tâche de la même mutation s’exécute en parallèle, elle peut rechercher le set dans le cache, attendre sa construction, puis le réutiliser. [#46835](https://github.com/ClickHouse/ClickHouse/pull/46835) ([Alexander Gololobov](https://github.com/davenger)).
* Vérifier les dependencies uniquement si nécessaire lors de l’application des requêtes `ALTER TABLE`. [#48062](https://github.com/ClickHouse/ClickHouse/pull/48062) ([Raúl Marín](https://github.com/Algunenano)).
* Optimisation de la fonction `mapUpdate`. [#48118](https://github.com/ClickHouse/ClickHouse/pull/48118) ([Anton Popov](https://github.com/CurtizJ)).
* Désormais, une query interne vers la réplique locale est envoyée explicitement, et les données qu’elle retourne sont reçues via l’interface loopback. Le paramètre `prefer_localhost_replica` n’est pas respecté pour les parallel replicas. Cela améliore la planification et simplifie le code : l’initiateur est uniquement responsable de la coordination du processus de lecture et de la fusion des résultats, tout en répondant en continu aux requêtes pendant que toutes les queries secondaires lisent les données. Remarque : l’utilisation de l’interface loopback est moins performante, mais sans cela, certaines répliques pourraient manquer de tâches, ce qui ralentirait encore davantage l’exécution des requêtes et empêcherait d’exploiter toutes les ressources disponibles. L’initialisation du coordinator est désormais encore plus lazy. Toutes les requêtes entrantes contiennent des informations sur l’algorithme de lecture ; nous initialisons le coordinator avec ces informations à l’arrivée de la première requête. Si une réplique décide de lire avec un algorithme différent, une exception sera levée et la query sera abandonnée. [#48246](https://github.com/ClickHouse/ClickHouse/pull/48246) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ne pas construire de set pour la partie droite de la clause `IN` avec subquery lorsqu’il est utilisé uniquement pour l’analyse des skip indexes et que ceux-ci sont désactivés par le paramètre (`use_skip_indexes=0`). Auparavant, cela pouvait affecter les performances des queries. [#48299](https://github.com/ClickHouse/ClickHouse/pull/48299) ([Anton Popov](https://github.com/CurtizJ)).
* Le query processing est parallélisé juste après la lecture de `FROM file(...)`. Lié à [#38755](https://github.com/ClickHouse/ClickHouse/issues/38755). [#48525](https://github.com/ClickHouse/ClickHouse/pull/48525) ([Igor Nikonov](https://github.com/devcrafter)). Le query processing est parallélisé juste après la lecture depuis n’importe quelle data source. Les data sources concernées sont principalement des storages simples ou externes, comme les table functions `url`, `file`. [#48727](https://github.com/ClickHouse/ClickHouse/pull/48727) ([Igor Nikonov](https://github.com/devcrafter)). Ce comportement est contrôlé par le paramètre `parallelize_output_from_storages`, qui n’est pas activé par défaut.
* Réduction de la contention sur le mutex de ThreadPool (peut améliorer les performances en présence d’un très grand nombre de petits jobs). [#48750](https://github.com/ClickHouse/ClickHouse/pull/48750) ([Sergei Trifonov](https://github.com/serxa)).
* Réduction de la memory usage pour plusieurs mutations `ALTER DELETE`. [#48522](https://github.com/ClickHouse/ClickHouse/pull/48522) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Suppression des tentatives de connection excessives si le paramètre `skip_unavailable_shards` est activé. [#48771](https://github.com/ClickHouse/ClickHouse/pull/48771) ([Azat Khuzhin](https://github.com/azat)).

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

* Les entrées du cache de requêtes sont désormais regroupées jusqu’à max\_block\_size et compressées. [#45912](https://github.com/ClickHouse/ClickHouse/pull/45912) ([Robert Schulze](https://github.com/rschu1ze)).
* Il est désormais possible de définir des quotas par utilisateur dans le cache de requêtes. [#48284](https://github.com/ClickHouse/ClickHouse/pull/48284) ([Robert Schulze](https://github.com/rschu1ze)).
* Quelques corrections pour les répliques parallèles [#48433](https://github.com/ClickHouse/ClickHouse/pull/48433) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Mise en œuvre de la réplication zero-copy (une fonctionnalité expérimentale) sur des disques chiffrés. [#48741](https://github.com/ClickHouse/ClickHouse/pull/48741) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Augmente la valeur par défaut de `connect_timeout_with_failover_ms` à 1000 ms (en raison de l’ajout de connexions asynchrones dans [https://github.com/ClickHouse/ClickHouse/pull/47229](https://github.com/ClickHouse/ClickHouse/pull/47229)). Clôt [#5188](https://github.com/ClickHouse/ClickHouse/issues/5188). [#49009](https://github.com/ClickHouse/ClickHouse/pull/49009) ([Kruglov Pavel](https://github.com/Avogar)).
* Plusieurs améliorations autour des data lakes : - Prise en charge de `Iceberg` avec des données non partitionnées. - Prise en charge du format `Iceberg` en version v2 (auparavant, seule la v1 était prise en charge) - Prise en charge de la lecture des données partitionnées pour `DeltaLake`/`Hudi` - Lecture plus rapide des métadonnées `DeltaLake` grâce à l’utilisation des fichiers de checkpoint de Delta - Correction de lectures `Hudi` incorrectes : auparavant, la sélection des données à lire était erronée et, par conséquent, seules les tables de petite taille pouvaient être lues correctement - Ces engines prennent désormais en compte les mises à jour des données modifiées (auparavant, l’état était défini lors de la création de la table) - Ajout de tests appropriés pour `Iceberg`/`DeltaLake`/`Hudi` avec spark. [#47307](https://github.com/ClickHouse/ClickHouse/pull/47307) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute une connexion asynchrone au socket ainsi qu’une écriture asynchrone vers le socket. Rend asynchrones, sur tous les shards, la création des connexions et l’envoi des query/external tables. Remanie le code avec des fibres. Clôt [#46931](https://github.com/ClickHouse/ClickHouse/issues/46931). Nous pourrons ensuite augmenter la valeur par défaut de `connect_timeout_with_failover_ms` ([https://github.com/ClickHouse/ClickHouse/issues/5188](https://github.com/ClickHouse/ClickHouse/issues/5188)). [#47229](https://github.com/ClickHouse/ClickHouse/pull/47229) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge des sections de config `keeper`/`keeper_server` comme alternative à `zookeeper`. Clôt [#34766](https://github.com/ClickHouse/ClickHouse/issues/34766), [#34767](https://github.com/ClickHouse/ClickHouse/issues/34767). [#35113](https://github.com/ClickHouse/ClickHouse/pull/35113) ([李扬](https://github.com/taiyang-li)).
* Il est désormais possible de définir l’indicateur *secure* dans named\_collections pour un Dictionary avec une source de type ClickHouse table. Réfère à [#38450](https://github.com/ClickHouse/ClickHouse/issues/38450). [#46323](https://github.com/ClickHouse/ClickHouse/pull/46323) ([Ilya Golshtein](https://github.com/ilejn)).
* La fonction `bitCount` prend en charge les data types `FixedString` et `String`. [#49044](https://github.com/ClickHouse/ClickHouse/pull/49044) ([flynn](https://github.com/ucasfl)).
* Ajout de retries configurables pour toutes les opérations avec \[Zoo]Keeper pour les query Backup. [#47224](https://github.com/ClickHouse/ClickHouse/pull/47224) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Active `use_environment_credentials` pour S3 par défaut, afin que toute la chaîne du provider soit construite automatiquement. [#47397](https://github.com/ClickHouse/ClickHouse/pull/47397) ([Antonio Andelic](https://github.com/antonio2368)).
* Actuellement, la fonction JSON\_VALUE est similaire à la fonction get\_json\_object de spark, qui permet d’obtenir une valeur à partir d’une chaîne JSON à l’aide d’un path comme '\$.key'. Il subsiste toutefois quelques différences : - 1. get\_json\_object de spark renvoie null lorsque le path n’existe pas, tandis que JSON\_VALUE renvoie une chaîne vide ; - 2. get\_json\_object de spark renvoie une valeur de type complexe, telle qu’un objet JSON ou un tableau JSON, tandis que JSON\_VALUE renvoie une chaîne vide. [#47494](https://github.com/ClickHouse/ClickHouse/pull/47494) ([KevinyhZou](https://github.com/KevinyhZou)).
* Pour `use_structure_from_insertion_table_in_table_functions`, propagation plus souple de la structure de la table d’insert vers la table function. Correction d’un problème de mapping des noms et d’utilisation des virtual columns. Le paramètre 'auto' n’est plus nécessaire. [#47962](https://github.com/ClickHouse/ClickHouse/pull/47962) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ne pas continuer à tenter de se connecter à Keeper si la requête est interrompue ou dépasse les limites. [#47985](https://github.com/ClickHouse/ClickHouse/pull/47985) ([Raúl Marín](https://github.com/Algunenano)).
* Prise en charge de la sortie/entrée d’Enum dans `BSONEachRow`, autorise tous les types de clés pour `Map` et évite des calculs supplémentaires en sortie. [#48122](https://github.com/ClickHouse/ClickHouse/pull/48122) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge de davantage de types ClickHouse dans les formats `ORC`/`Arrow`/`Parquet` : Enum(8|16), (U)Int(128|256), Decimal256 (pour ORC), autorise la lecture d’IPv4 à partir de valeurs Int32 (ORC produit IPv4 en Int32, et nous ne pouvions pas le relire), corrige la lecture de Nullable(IPv6) à partir de données binaires pour `ORC`. [#48126](https://github.com/ClickHouse/ClickHouse/pull/48126) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout des colonnes `perform_ttl_move_on_insert`, `load_balancing` pour la table `system.storage_policies`, modification du type de la colonne `volume_type` en `Enum8`. [#48167](https://github.com/ClickHouse/ClickHouse/pull/48167) ([lizhuoyu5](https://github.com/lzydmxy)).
* Ajout de la prise en charge de la commande `BACKUP ALL`, qui sauvegarde toutes les tables et bases de données, y compris les temporaires et les systèmes. [#48189](https://github.com/ClickHouse/ClickHouse/pull/48189) ([Vitaly Baranov](https://github.com/vitlibar)).
* La fonction mapFromArrays prend en charge le type `Map` en entrée. [#48207](https://github.com/ClickHouse/ClickHouse/pull/48207) ([李扬](https://github.com/taiyang-li)).
* La sortie de certaines commandes SHOW PROCESSLIST est désormais triée. [#48241](https://github.com/ClickHouse/ClickHouse/pull/48241) ([Robert Schulze](https://github.com/rschu1ze)).
* Limitation de débit par requête/par serveur pour les IO distantes/IO locales/sauvegardes (paramètres serveur : `max_remote_read_network_bandwidth_for_server`, `max_remote_write_network_bandwidth_for_server`, `max_local_read_bandwidth_for_server`, `max_local_write_bandwidth_for_server`, `max_backup_bandwidth_for_server`, paramètres : `max_remote_read_network_bandwidth`, `max_remote_write_network_bandwidth`, `max_local_read_bandwidth`, `max_local_write_bandwidth`, `max_backup_bandwidth`). [#48242](https://github.com/ClickHouse/ClickHouse/pull/48242) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge de davantage de types dans le format `CapnProto` : Map, (U)Int(128|256), Decimal(128|256). Autorise les conversions d’entiers lors de l’entrée/sortie. [#48257](https://github.com/ClickHouse/ClickHouse/pull/48257) ([Kruglov Pavel](https://github.com/Avogar)).
* Ne pas lever CURRENT\_WRITE\_BUFFER\_IS\_EXHAUSTED dans un fonctionnement normal. [#48288](https://github.com/ClickHouse/ClickHouse/pull/48288) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout du nouveau paramètre `keeper_map_strict_mode`, qui impose des garanties supplémentaires sur les opérations effectuées sur les tables `KeeperMap`. [#48293](https://github.com/ClickHouse/ClickHouse/pull/48293) ([Antonio Andelic](https://github.com/antonio2368)).
* Vérifie que le type de clé primaire d’un dictionnaire simple est un type entier non signé natif. Ajout du paramètre `check_dictionary_primary_key` pour la compatibilité (définissez `check_dictionary_primary_key =false` pour désactiver la vérification). [#48335](https://github.com/ClickHouse/ClickHouse/pull/48335) ([lizhuoyu5](https://github.com/lzydmxy)).
* Ne pas répliquer les mutations pour `KeeperMap`, car cela est inutile. [#48354](https://github.com/ClickHouse/ClickHouse/pull/48354) ([Antonio Andelic](https://github.com/antonio2368)).
* Autorise l’écriture/la lecture d’un tuple non nommé sous forme de Message imbriqué au format Protobuf. Les éléments du Tuple et les champs du Message sont mis en correspondance par position. [#48390](https://github.com/ClickHouse/ClickHouse/pull/48390) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge des paramètres `additional_table_filters` et `additional_result_filter` dans le nouveau planner. Ajout également d'une entrée dans la documentation pour `additional_result_filter`. [#48405](https://github.com/ClickHouse/ClickHouse/pull/48405) ([Dmitry Novik](https://github.com/novikd)).
* `parseDateTime` prend désormais en charge la chaîne de format '%f' (secondes fractionnaires). [#48420](https://github.com/ClickHouse/ClickHouse/pull/48420) ([Robert Schulze](https://github.com/rschu1ze)).
* La chaîne de format "%f" dans formatDateTime() affiche désormais "000000" si la valeur formatée ne comporte pas de secondes fractionnaires ; le comportement précédent (un seul zéro) peut être rétabli à l'aide du paramètre "formatdatetime\_f\_prints\_single\_zero = 1". [#48422](https://github.com/ClickHouse/ClickHouse/pull/48422) ([Robert Schulze](https://github.com/rschu1ze)).
* Ne plus répliquer DELETE et TRUNCATE pour KeeperMap. [#48434](https://github.com/ClickHouse/ClickHouse/pull/48434) ([Antonio Andelic](https://github.com/antonio2368)).
* Génération de Decimals et de Bools valides dans la fonction generateRandom. [#48436](https://github.com/ClickHouse/ClickHouse/pull/48436) ([Kruglov Pavel](https://github.com/Avogar)).
* Autoriser les virgules finales dans la liste d'expressions d'une requête SELECT, par exemple `SELECT a, b, c, FROM table`. Clôt [#37802](https://github.com/ClickHouse/ClickHouse/issues/37802). [#48438](https://github.com/ClickHouse/ClickHouse/pull/48438) ([Nikolay Degterinsky](https://github.com/evillique)).
* Les paramètres client `--user` et `--password` remplacent désormais les variables d'environnement `CLICKHOUSE_USER` et `CLICKHOUSE_PASSWORD`. Clôt [#38909](https://github.com/ClickHouse/ClickHouse/issues/38909). [#48440](https://github.com/ClickHouse/ClickHouse/pull/48440) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de tentatives supplémentaires lors du chargement des data parts dans les tables `MergeTree` en cas d'erreurs réessayables. [#48442](https://github.com/ClickHouse/ClickHouse/pull/48442) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la prise en charge des data types `Date`, `Date32`, `DateTime`, `DateTime64` dans les fonctions `arrayMin`, `arrayMax`, `arrayDifference`. Clôt [#21645](https://github.com/ClickHouse/ClickHouse/issues/21645). [#48445](https://github.com/ClickHouse/ClickHouse/pull/48445) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de la prise en charge de la macro `{server_uuid}`. Elle est utile pour identifier les répliques dans les clusters avec autoscaling lorsque de nouvelles répliques sont constamment ajoutées et supprimées à l'exécution. Cela clôt [#48554](https://github.com/ClickHouse/ClickHouse/issues/48554). [#48563](https://github.com/ClickHouse/ClickHouse/pull/48563) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le script d'installation créera un lien physique au lieu de copier le fichier lorsque c'est possible. [#48578](https://github.com/ClickHouse/ClickHouse/pull/48578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de la syntaxe `SHOW TABLE`, équivalente à `SHOW CREATE TABLE`. Clôt [#48580](https://github.com/ClickHouse/ClickHouse/issues/48580). [#48591](https://github.com/ClickHouse/ClickHouse/pull/48591) ([flynn](https://github.com/ucasfl)).
* Les buffers temporaires HTTP prennent désormais en charge l'éviction des données du cache du système de fichiers virtuel. [#48664](https://github.com/ClickHouse/ClickHouse/pull/48664) ([Vladimir C](https://github.com/vdimir)).
* L'inférence de schéma fonctionne désormais pour `CREATE AS SELECT`. Clôt [#47599](https://github.com/ClickHouse/ClickHouse/issues/47599). [#48679](https://github.com/ClickHouse/ClickHouse/pull/48679) ([flynn](https://github.com/ucasfl)).
* Ajout d’un paramètre `replicated_max_mutations_in_one_entry` pour `ReplicatedMergeTree`, qui permet de limiter le nombre de commandes de mutation par entrée `MUTATE_PART` (10000 par défaut). [#48731](https://github.com/ClickHouse/ClickHouse/pull/48731) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Dans les types AggregateFunction, les octets Arena inutilisés ne sont plus comptabilisés comme `read_bytes`. [#48745](https://github.com/ClickHouse/ClickHouse/pull/48745) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige certains paramètres liés à MySQL qui n’étaient pas gérés avec la source de dictionnaire MySQL + collection nommée. Clôt [#48402](https://github.com/ClickHouse/ClickHouse/issues/48402). [#48759](https://github.com/ClickHouse/ClickHouse/pull/48759) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Si un utilisateur définissait `max_single_part_upload_size` sur une valeur très élevée, cela pouvait provoquer un crash en raison d’un bug dans le SDK AWS S3. Cela corrige [#47679](https://github.com/ClickHouse/ClickHouse/issues/47679). [#48816](https://github.com/ClickHouse/ClickHouse/pull/48816) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige une data race dans `RabbitMQ` ([rapport](https://pastila.nl/?004f7100/de1505289ab5bb355e67ebe6c7cc8707)) et refactorise le code. [#48845](https://github.com/ClickHouse/ClickHouse/pull/48845) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute les alias `name` et `part_name` à `system.parts` et `system.part_log`. Clôt [#48718](https://github.com/ClickHouse/ClickHouse/issues/48718). [#48850](https://github.com/ClickHouse/ClickHouse/pull/48850) ([sichenzhao](https://github.com/sichenzhao)).
* Les fonctions "arrayDifferenceSupport()", "arrayCumSum()" et "arrayCumSumNonNegative()" prennent désormais en charge des tableaux d’entrée de types entiers larges (U)Int128/256. [#48866](https://github.com/ClickHouse/ClickHouse/pull/48866) ([cluster](https://github.com/infdahai)).
* L’historique multiligne dans clickhouse-client n’est désormais plus rempli d’espaces. Cela rend le collage plus naturel. [#48870](https://github.com/ClickHouse/ClickHouse/pull/48870) ([Joanna Hulboj](https://github.com/jh0x)).
* Apporte une légère amélioration pour le cas rare où ClickHouse s’exécute dans LXC avec LXCFS. LXCFS présente un problème : il renvoie parfois l’erreur "Transport endpoint is not connected" lors de la lecture d’un fichier dans `/proc`. Cette erreur était correctement consignée dans le journal serveur de ClickHouse. Nous contournons désormais aussi ce problème en rouvrant le fichier. Il s’agit d’un changement minime. [#48922](https://github.com/ClickHouse/ClickHouse/pull/48922) ([Real](https://github.com/RunningXie)).
* Améliore la comptabilisation mémoire des prefetches. Rend aléatoires les paramètres de prefetch dans la CI. [#48973](https://github.com/ClickHouse/ClickHouse/pull/48973) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Définit correctement les headers pour les opérations de copie natives sur GCS. [#48981](https://github.com/ClickHouse/ClickHouse/pull/48981) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajoute la prise en charge de noms de paramètres en ligne de commande avec des tirets au lieu de traits de soulignement, par exemple `--max-threads` au lieu de `--max_threads`. Prend également en charge les tirets Unicode comme `—` au lieu de `--` : c’est utile lorsque vous communiquez avec une équipe d’une autre entreprise et qu’un responsable de cette équipe a copié-collé du code depuis MS Word. [#48985](https://github.com/ClickHouse/ClickHouse/pull/48985) ([alekseygolub](https://github.com/alekseygolub)).
* Ajout d’un mécanisme de repli vers l’authentification par mot de passe lorsque l’authentification avec un certificat utilisateur SSL échoue. Clôture de [#48974](https://github.com/ClickHouse/ClickHouse/issues/48974). [#48989](https://github.com/ClickHouse/ClickHouse/pull/48989) ([Nikolay Degterinsky](https://github.com/evillique)).
* Amélioration du tableau de bord intégré. Clôture de [#46671](https://github.com/ClickHouse/ClickHouse/issues/46671). [#49036](https://github.com/ClickHouse/ClickHouse/pull/49036) ([Kevin Zhang](https://github.com/Kinzeng)).
* Ajout d’événements de profil pour les messages de journalisation, afin de voir facilement le nombre de messages par niveau de gravité. [#49042](https://github.com/ClickHouse/ClickHouse/pull/49042) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans les versions précédentes, le format `LineAsString` se comportait de manière incohérente selon que l’analyse parallèle était activée ou non, en présence de sauts de ligne DOS ou MacOS Classic. Clôture de [#49039](https://github.com/ClickHouse/ClickHouse/issues/49039). [#49052](https://github.com/ClickHouse/ClickHouse/pull/49052) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le message d’exception concernant le paramètre de requête non analysé indiquera également le nom du paramètre. Réimplémentation de [#48878](https://github.com/ClickHouse/ClickHouse/issues/48878). Clôture de [#48772](https://github.com/ClickHouse/ClickHouse/issues/48772). [#49061](https://github.com/ClickHouse/ClickHouse/pull/49061) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="buildtestingpackaging-improvement-6">
  #### amélioration de la compilation, des tests et du packaging
</div>

* Mise à jour des fuseaux horaires. Les éléments suivants ont été mis à jour : Africa/Cairo, Africa/Casablanca, Africa/El\_Aaiun, America/Bogota, America/Cambridge\_Bay, America/Ciudad\_Juarez, America/Godthab, America/Inuvik, America/Iqaluit, America/Nuuk, America/Ojinaga, America/Pangnirtung, America/Rankin\_Inlet, America/Resolute, America/Whitehorse, America/Yellowknife, Asia/Gaza, Asia/Hebron, Asia/Kuala\_Lumpur, Asia/Singapore, Canada/Yukon, Egypt, Europe/Kirov, Europe/Volgograd, Singapore. [#48572](https://github.com/ClickHouse/ClickHouse/pull/48572) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réduction du nombre de dépendances dans les fichiers d’en-tête pour accélérer la compilation. [#47984](https://github.com/ClickHouse/ClickHouse/pull/47984) ([Dmitry Novik](https://github.com/novikd)).
* Randomisation de la compression des marks et des index dans les tests. [#48286](https://github.com/ClickHouse/ClickHouse/pull/48286) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mise à niveau de ZSTD interne de 1.5.4 à 1.5.5. [#46797](https://github.com/ClickHouse/ClickHouse/pull/46797) ([Robert Schulze](https://github.com/rschu1ze)).
* Randomisation des fusions verticales de parts compactes vers des wide parts dans les tests. [#48287](https://github.com/ClickHouse/ClickHouse/pull/48287) ([Raúl Marín](https://github.com/Algunenano)).
* Prise en charge de la somme de contrôle CRC32 dans HDFS. Correction de problèmes de performance. [#48614](https://github.com/ClickHouse/ClickHouse/pull/48614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression des vestiges de la prise en charge de GCC. [#48671](https://github.com/ClickHouse/ClickHouse/pull/48671) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout d’une exécution CI avec la nouvelle infrastructure de l’analyseur activée. [#48719](https://github.com/ClickHouse/ClickHouse/pull/48719) ([Dmitry Novik](https://github.com/novikd)).

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

* Corrige system.query\_views\_log pour les vues matérialisées alimentées depuis des threads d’arrière-plan [#46668](https://github.com/ClickHouse/ClickHouse/pull/46668) ([Azat Khuzhin](https://github.com/azat)).
* Corrige plusieurs bogues liés à `RENAME COLUMN` [#46946](https://github.com/ClickHouse/ClickHouse/pull/46946) ([alesapin](https://github.com/alesapin)).
* Corrige quelques problèmes mineurs de coloration syntaxique dans clickhouse-format [#47610](https://github.com/ClickHouse/ClickHouse/pull/47610) ([Natasha Murashkina](https://github.com/murfel)).
* Corrige un bogue dans libc++ de LLVM entraînant un crash lors du téléversement de parts vers S3 lorsque leur taille dépasse INT\_MAX [#47693](https://github.com/ClickHouse/ClickHouse/pull/47693) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un dépassement de capacité dans la fonction `sparkbar` [#48121](https://github.com/ClickHouse/ClickHouse/pull/48121) ([Vladimir C](https://github.com/vdimir)).
* Corrige une condition de concurrence dans S3 [#48190](https://github.com/ClickHouse/ClickHouse/pull/48190) ([Anton Popov](https://github.com/CurtizJ)).
* Désactive le JIT pour les fonctions d’agrégation en raison d’un comportement incohérent [#48195](https://github.com/ClickHouse/ClickHouse/pull/48195) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le formatage de ALTER (mineur) [#48289](https://github.com/ClickHouse/ClickHouse/pull/48289) ([Natasha Murashkina](https://github.com/murfel)).
* Corrige l’utilisation du CPU dans RabbitMQ (elle s'était dégradée dans la version 23.2 après [#44404](https://github.com/ClickHouse/ClickHouse/issues/44404)) [#48311](https://github.com/ClickHouse/ClickHouse/pull/48311) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un crash dans EXPLAIN PIPELINE pour Merge sur Distributed [#48320](https://github.com/ClickHouse/ClickHouse/pull/48320) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la sérialisation de LowCardinality en tant que dictionnaire Arrow [#48361](https://github.com/ClickHouse/ClickHouse/pull/48361) ([Kruglov Pavel](https://github.com/Avogar)).
* Réinitialise le téléchargeur pour le segment de fichier du cache dans TemporaryFileStream [#48386](https://github.com/ClickHouse/ClickHouse/pull/48386) ([Vladimir C](https://github.com/vdimir)).
* Corrige un possible blocage de SYSTEM SYNC REPLICA en cas de DROP/REPLACE PARTITION [#48391](https://github.com/ClickHouse/ClickHouse/pull/48391) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une erreur au démarrage lors du chargement d’une table distribuée dépendant d’un dictionnaire [#48419](https://github.com/ClickHouse/ClickHouse/pull/48419) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ne vérifie pas les dépendances lors du renommage automatique des tables système [#48431](https://github.com/ClickHouse/ClickHouse/pull/48431) ([Raúl Marín](https://github.com/Algunenano)).
* Met à jour uniquement les lignes affectées dans le moteur de stockage KeeperMap [#48435](https://github.com/ClickHouse/ClickHouse/pull/48435) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un segfault possible dans le cache VFS [#48469](https://github.com/ClickHouse/ClickHouse/pull/48469) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La fonction `toTimeZone` génère une erreur lorsqu’aucune chaîne constante n’est fournie [#48471](https://github.com/ClickHouse/ClickHouse/pull/48471) ([Jordi Villar](https://github.com/jrdi)).
* Corrige une logical error avec IPv4 dans Protobuf et ajoute la prise en charge de Date32 [#48486](https://github.com/ClickHouse/ClickHouse/pull/48486) ([Kruglov Pavel](https://github.com/Avogar)).
* Le flag "changed" dans system.settings était calculé de manière incorrecte pour les paramètres à plusieurs valeurs [#48516](https://github.com/ClickHouse/ClickHouse/pull/48516) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige le stockage `Memory` lorsque la compression est activée [#48517](https://github.com/ClickHouse/ClickHouse/pull/48517) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige le mode bracketed-paste qui perturbait la saisie du mot de passe en cas de reconnexion du client [#48528](https://github.com/ClickHouse/ClickHouse/pull/48528) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige la map imbriquée pour les clés de type IP et UUID [#48556](https://github.com/ClickHouse/ClickHouse/pull/48556) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige une exception non interceptée en cas de chargeur parallèle pour les dictionnaires hachés [#48571](https://github.com/ClickHouse/ClickHouse/pull/48571) ([Azat Khuzhin](https://github.com/azat)).
* La fonction d'agrégation `groupArray` fonctionne désormais correctement sur un résultat vide avec des types Nullable [#48593](https://github.com/ClickHouse/ClickHouse/pull/48593) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige un bug dans Keeper lorsqu'un nœud n'est parfois pas créé avec le schéma `auth` dans l'ACL. [#48595](https://github.com/ClickHouse/ClickHouse/pull/48595) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Autorise les opérateurs de comparaison IPv4 avec UInt [#48611](https://github.com/ClickHouse/ClickHouse/pull/48611) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige une erreur possible du cache [#48636](https://github.com/ClickHouse/ClickHouse/pull/48636) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les async inserts avec des données vides ne lèveront plus d'exception. [#48663](https://github.com/ClickHouse/ClickHouse/pull/48663) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige les dépendances de table en cas d'échec de RENAME TABLE [#48683](https://github.com/ClickHouse/ClickHouse/pull/48683) ([Azat Khuzhin](https://github.com/azat)).
* Si la clé primaire contient des colonnes dupliquées (ce qui n'est possible que pour les projections), cela pouvait entraîner un bug dans les versions précédentes [#48838](https://github.com/ClickHouse/ClickHouse/pull/48838) ([Amos Bird](https://github.com/amosbird)).
* Corrige une race condition dans ZooKeeper lors de l'attente de fin de send\_thread/receive\_thread [#48849](https://github.com/ClickHouse/ClickHouse/pull/48849) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige l'erreur de nom de part inattendu lors de la tentative de suppression d'une part detached ignorée avec la réplication zero copy [#48862](https://github.com/ClickHouse/ClickHouse/pull/48862) ([Michael Lex](https://github.com/mlex)).
* Corrige la lecture d'une colonne Parquet/Arrow `Date32` dans une colonne autre que `Date32` [#48864](https://github.com/ClickHouse/ClickHouse/pull/48864) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l'erreur `UNKNOWN_IDENTIFIER` lors d'une sélection depuis une table avec une row policy et une colonne contenant des points [#48976](https://github.com/ClickHouse/ClickHouse/pull/48976) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l'agrégation de chaînes Nullable vides [#48999](https://github.com/ClickHouse/ClickHouse/pull/48999) ([LiuNeng](https://github.com/liuneng1994)).

### <a id="233" /> version de ClickHouse 23.3 LTS, 2023-03-30. [Présentation](https://presentations.clickhouse.com/2023-release-23.3/), [Vidéo](https://www.youtube.com/watch?v=ISaGUjvBNao)

<Frame>
  <iframe src="https://www.youtube.com/embed/ISaGUjvBNao" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="upgrade-notes">
  #### Notes de mise à niveau
</div>

* Les lightweight DELETE sont prêts pour la production et activés par défaut. La requête `DELETE` pour les tables MergeTree est désormais disponible par défaut.
* Le comportement des fonctions `*domain*RFC` et `netloc` a légèrement changé : l'ensemble des symboles autorisés dans l'autorité de l'URL a été assoupli afin de mieux respecter la conformité. [#46841](https://github.com/ClickHouse/ClickHouse/pull/46841) ([Azat Khuzhin](https://github.com/azat)).
* La création de tables basées sur KafkaEngine avec des instructions DEFAULT/EPHEMERAL/ALIAS/MATERIALIZED pour les colonnes est désormais interdite. [#47138](https://github.com/ClickHouse/ClickHouse/pull/47138) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* La fonctionnalité « asynchronous connection drain » a été supprimée. Les paramètres et les métriques associés l'ont également été. Comme il s'agissait d'une fonctionnalité interne, cette suppression ne devrait pas affecter les utilisateurs qui n'en avaient jamais entendu parler. [#47486](https://github.com/ClickHouse/ClickHouse/pull/47486) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Prise en charge du type de données `Decimal` 256 bits (plus de 38 chiffres) dans `arraySum`/`Min`/`Max`/`Avg`/`Product`, `arrayCumSum`/`CumSumNonNegative`, `arrayDifference`, la construction de tableaux, l'opérateur IN, les paramètres de requête, `groupArrayMovingSum`, les fonctions statistiques, `min`/`max`/`any`/`argMin`/`argMax`, le protocole PostgreSQL wire, le moteur de table MySQL et sa fonction, `sumMap`, `mapAdd`, `mapSubtract`, `arrayIntersect`. Prise en charge également des grands entiers dans `arrayIntersect`. Les fonctions d'agrégation statistiques faisant intervenir des moments (comme `corr` ou différents `TTest`) utiliseront `Float64` comme représentation interne (elles utilisaient auparavant `Decimal128`, mais cela n'avait pas d'intérêt), et ces fonctions peuvent désormais renvoyer `nan` au lieu de `inf` en cas de variance infinie. Certaines fonctions étaient autorisées avec les types de données `Decimal256`, mais renvoyaient `Decimal128` dans les versions précédentes ; c'est désormais corrigé. Cela résout [#47569](https://github.com/ClickHouse/ClickHouse/issues/47569). Cela résout [#44864](https://github.com/ClickHouse/ClickHouse/issues/44864). Cela résout [#28335](https://github.com/ClickHouse/ClickHouse/issues/28335). [#47594](https://github.com/ClickHouse/ClickHouse/pull/47594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `backup_threads` et `restore_threads` deviennent des paramètres serveur (au lieu de paramètres utilisateur). [#47881](https://github.com/ClickHouse/ClickHouse/pull/47881) ([Azat Khuzhin](https://github.com/azat)).
* Ne pas autoriser les index secondaires constants et non déterministes. [#46839](https://github.com/ClickHouse/ClickHouse/pull/46839) ([Anton Popov](https://github.com/CurtizJ)).

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

* Ajout d’un nouveau mode de répartition du travail entre les répliques à l’aide des paramètres `parallel_replicas_custom_key` et `parallel_replicas_custom_key_filter_type`. Si le cluster se compose d’un seul shard avec plusieurs répliques, jusqu’à `max_parallel_replicas` seront sélectionnées aléatoirement et traitées comme des shards. Pour chaque shard, un filtre correspondant est ajouté à la requête sur le nœud initiateur avant d’être envoyé au shard. Si le cluster se compose de plusieurs shards, le comportement sera identique à celui de `sample_key`, avec la possibilité de définir une clé arbitraire. [#45108](https://github.com/ClickHouse/ClickHouse/pull/45108) ([Antonio Andelic](https://github.com/antonio2368)).
* Option d’affichage d’un résultat partiel en cas d’annulation : ajout du paramètre de requête `partial_result_on_first_cancel`, qui permet à une requête annulée (par ex. avec Ctrl-C) de renvoyer un résultat partiel. [#45689](https://github.com/ClickHouse/ClickHouse/pull/45689) ([Alexey Perevyshin](https://github.com/alexX512)).
* Ajout de la prise en charge de moteurs de table arbitraires pour les tables temporaires (à l’exception des moteurs Replicated et KeeperMap). Clôt [#31497](https://github.com/ClickHouse/ClickHouse/issues/31497). [#46071](https://github.com/ClickHouse/ClickHouse/pull/46071) ([Roman Vasin](https://github.com/rvasin)).
* Ajout de la prise en charge de la réplication des fonctions SQL définies par l’utilisateur via un stockage centralisé dans Keeper. [#46085](https://github.com/ClickHouse/ClickHouse/pull/46085) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Implémentation de `system.server_settings` (similaire à `system.settings`), qui contiendra les configurations du serveur. [#46550](https://github.com/ClickHouse/ClickHouse/pull/46550) ([pufit](https://github.com/pufit)).
* Prise en charge de la requête `UNDROP TABLE`. Clôt [#46811](https://github.com/ClickHouse/ClickHouse/issues/46811). [#47241](https://github.com/ClickHouse/ClickHouse/pull/47241) ([chen](https://github.com/xiedeyantu)).
* Autorisation de grants distincts pour les collections nommées (par ex. pour pouvoir accorder l’accès `SHOW/CREATE/ALTER/DROP named collection` uniquement à certaines collections, au lieu de toutes en une seule fois). Clôt [#40894](https://github.com/ClickHouse/ClickHouse/issues/40894). Ajout d’un nouveau type d’accès `NAMED_COLLECTION_CONTROL`, qui n’est pas accordé à l’utilisateur default sauf s’il est explicitement ajouté à la config utilisateur (il est requis pour pouvoir faire `GRANT ALL`) ; de plus, `show_named_collections` n’a plus besoin d’être spécifié manuellement pour l’utilisateur default afin de disposer de tous les droits d’accès, comme c’était le cas en 23.2. [#46241](https://github.com/ClickHouse/ClickHouse/pull/46241) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Autorisation des disques personnalisés imbriqués. Auparavant, les disques personnalisés ne prenaient en charge qu’une structure de disque plate. [#47106](https://github.com/ClickHouse/ClickHouse/pull/47106) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Introduction de la fonction `widthBucket` (avec l’alias `WIDTH_BUCKET` pour des raisons de compatibilité). [#42974](https://github.com/ClickHouse/ClickHouse/issues/42974). [#46790](https://github.com/ClickHouse/ClickHouse/pull/46790) ([avoiderboi](https://github.com/avoiderboi)).
* Ajout des nouvelles fonctions `parseDateTime`/`parseDateTimeInJodaSyntax` selon la chaîne de format spécifiée. `parseDateTime` convertit String en DateTime selon la syntaxe MySQL, `parseDateTimeInJodaSyntax` selon la syntaxe Joda. [#46815](https://github.com/ClickHouse/ClickHouse/pull/46815) ([李扬](https://github.com/taiyang-li)).
* Utilisation de `dummy UInt8` comme structure par défaut pour la table function `null`. Clôt [#46930](https://github.com/ClickHouse/ClickHouse/issues/46930). [#47006](https://github.com/ClickHouse/ClickHouse/pull/47006) ([flynn](https://github.com/ucasfl)).
* Prise en charge du format de date avec virgule, comme `Dec 15, 2021`, dans la fonction `parseDateTimeBestEffort`. Clôt [#46816](https://github.com/ClickHouse/ClickHouse/issues/46816). [#47071](https://github.com/ClickHouse/ClickHouse/pull/47071) ([chen](https://github.com/xiedeyantu)).
* Ajout des paramètres `http_wait_end_of_query` et `http_response_buffer_size`, qui correspondent aux paramètres d’URL `wait_end_of_query` et `buffer_size` de l’interface HTTP. Cela permet de modifier ces paramètres dans les profils. [#47108](https://github.com/ClickHouse/ClickHouse/pull/47108) ([Vladimir C](https://github.com/vdimir)).
* Ajout de la table `system.dropped_tables`, qui affiche les tables supprimées des bases de données `Atomic`, mais pas encore complètement retirées. [#47364](https://github.com/ClickHouse/ClickHouse/pull/47364) ([chen](https://github.com/xiedeyantu)).
* Ajout de `INSTR` comme alias de `positionCaseInsensitive` pour la compatibilité avec MySQL. Clôt [#47529](https://github.com/ClickHouse/ClickHouse/issues/47529). [#47535](https://github.com/ClickHouse/ClickHouse/pull/47535) ([flynn](https://github.com/ucasfl)).
* Ajout de la fonction `toDecimalString`, qui permet de convertir des nombres en chaîne avec une précision fixe. [#47838](https://github.com/ClickHouse/ClickHouse/pull/47838) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajout d’un paramètre MergeTree `max_number_of_mutations_for_replica`. Il limite le nombre de part mutations par replica à la valeur spécifiée. Zéro signifie qu’il n’y a pas de limite sur le nombre de mutations par replica (l’exécution peut néanmoins rester contrainte par d’autres paramètres). [#48047](https://github.com/ClickHouse/ClickHouse/pull/48047) ([Vladimir C](https://github.com/vdimir)).
* Ajout de la fonction liée à Map `mapFromArrays`, qui permet de créer une map à partir d’une paire de tableaux. [#31125](https://github.com/ClickHouse/ClickHouse/pull/31125) ([李扬](https://github.com/taiyang-li)).
* Permet de contrôler la compression dans les output formats Parquet/ORC/Arrow et ajoute la prise en charge d’un plus grand nombre d’input formats de compression. Cela clôt [#13541](https://github.com/ClickHouse/ClickHouse/issues/13541). [#47114](https://github.com/ClickHouse/ClickHouse/pull/47114) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de l’authentication par certificat utilisateur SSL au native protocol. Clôt [#47077](https://github.com/ClickHouse/ClickHouse/issues/47077). [#47596](https://github.com/ClickHouse/ClickHouse/pull/47596) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout des variantes \*OrNull() et \*OrZero() pour `parseDateTime`, ainsi que de l’alias `str_to_date` pour la compatibilité avec MySQL. [#48000](https://github.com/ClickHouse/ClickHouse/pull/48000) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de l’operator `REGEXP` (similaire aux operators "LIKE", "IN", "MOD", etc.) pour une meilleure compatibilité avec MySQL [#47869](https://github.com/ClickHouse/ClickHouse/pull/47869) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Les marks en mémoire sont désormais compressés et utilisent 3 à 6 fois moins de mémoire. [#47290](https://github.com/ClickHouse/ClickHouse/pull/47290) ([Michael Kolupaev](https://github.com/al13n321)).
* Les sauvegardes portant sur un très grand nombre de fichiers étaient incroyablement lentes dans les versions précédentes. Ce n’est plus le cas. Elles sont désormais incroyablement rapides. [#47251](https://github.com/ClickHouse/ClickHouse/pull/47251) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Introduction d’un pool de threads distinct pour les opérations d’IO des sauvegardes. Cela permettra de le dimensionner indépendamment des autres pools et d’améliorer les performances. [#47174](https://github.com/ClickHouse/ClickHouse/pull/47174) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Utilisation de requêtes MultiRead et de tentatives de réexécution pour collecter les métadonnées à l’étape finale du traitement des sauvegardes. [#47243](https://github.com/ClickHouse/ClickHouse/pull/47243) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Si une sauvegarde et les données à restaurer se trouvent toutes deux dans S3, une copie server-side sera désormais utilisée. [#47546](https://github.com/ClickHouse/ClickHouse/pull/47546) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de lectures excessives dans les queries avec `FINAL`. [#47801](https://github.com/ClickHouse/ClickHouse/pull/47801) ([Nikita Taranov](https://github.com/nickitat)).
* Le paramètre `max_final_threads` sera défini sur le nombre de cœurs au démarrage du server (selon le même algorithme que pour `max_threads`). Cela améliore la concurrence de l’exécution de `final` sur les servers disposant d’un grand nombre de CPU. [#47915](https://github.com/ClickHouse/ClickHouse/pull/47915) ([Nikita Taranov](https://github.com/nickitat)).
* Autorise l’exécution du pipeline de lecture pour le dictionnaire DIRECT avec une source CLICKHOUSE sur plusieurs threads. Pour l’activer, définissez `dictionary_use_async_executor=1` dans la section `SETTINGS` de la source dans l’instruction `CREATE DICTIONARY`. [#47986](https://github.com/ClickHouse/ClickHouse/pull/47986) ([Vladimir C](https://github.com/vdimir)).
* Optimise les performances des agrégations avec une seule clé Nullable. [#45772](https://github.com/ClickHouse/ClickHouse/pull/45772) ([LiuNeng](https://github.com/liuneng1994)).
* Ajout de l’utilisation de l’index `tokenbf_v1` en minuscules pour `hasTokenOrNull`, `hasTokenCaseInsensitive` et `hasTokenCaseInsensitiveOrNull`. [#46252](https://github.com/ClickHouse/ClickHouse/pull/46252) ([ltrk2](https://github.com/ltrk2)).
* Optimise les fonctions `position` et `LIKE` en recherchant les deux premiers caractères à l’aide de SIMD. [#46289](https://github.com/ClickHouse/ClickHouse/pull/46289) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimise les queries sur `system.detached_parts`, qui peuvent être très volumineuses. Plusieurs sources ont été ajoutées en tenant compte de la limite de taille des blocks ; dans chaque block, un pool de threads d’IO est utilisé pour calculer la taille de la part, c’est-à-dire pour effectuer les appels système en parallèle. [#46624](https://github.com/ClickHouse/ClickHouse/pull/46624) ([Sema Checherinda](https://github.com/CheSema)).
* Augmente la default value de `max_replicated_merges_in_queue` pour les tables ReplicatedMergeTree, de 16 à 1000. Cela permet d’accélérer les opérations de merge en arrière-plan sur les clusters comportant un très grand nombre de répliques, comme les clusters à stockage partagé dans ClickHouse Cloud. [#47050](https://github.com/ClickHouse/ClickHouse/pull/47050) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de `clickhouse-copier` pour utiliser `GROUP BY` au lieu de `DISTINCT` afin d’obtenir la liste des partitions. Pour les grandes tables, cela a réduit le temps du select de plus de 500 s à moins de 1 s. [#47386](https://github.com/ClickHouse/ClickHouse/pull/47386) ([Clayton McClure](https://github.com/cmcclure-twilio)).
* Correction d’une dégradation des performances dans `ASOF JOIN`. [#47544](https://github.com/ClickHouse/ClickHouse/pull/47544) ([Ongkong](https://github.com/ongkong)).
* Davantage de traitement par lots dans Keeper. Amélioration des performances en évitant de scinder les lots lors des requêtes de lecture. [#47978](https://github.com/ClickHouse/ClickHouse/pull/47978) ([Antonio Andelic](https://github.com/antonio2368)).
* Autorisation de PREWHERE pour Merge avec des expressions DEFAULT différentes pour les colonnes. [#46831](https://github.com/ClickHouse/ClickHouse/pull/46831) ([Azat Khuzhin](https://github.com/azat)).

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

* Répliques parallèles : amélioration des performances globales grâce à une meilleure utilisation de la réplique locale, et désactivation par défaut de la lecture avec des répliques parallèles à partir d’un MergeTree non répliqué. [#47858](https://github.com/ClickHouse/ClickHouse/pull/47858) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Prise en charge du push down des filtres vers la table de gauche pour les JOIN avec les tables `Join`, `Dictionary` et `EmbeddedRocksDB` si l’analyseur expérimental est activé. [#47280](https://github.com/ClickHouse/ClickHouse/pull/47280) ([Maksim Kita](https://github.com/kitaisreal)).
* Désormais, ReplicatedMergeTree avec la réplication zero copy génère moins de charge sur Keeper. [#47676](https://github.com/ClickHouse/ClickHouse/pull/47676) ([alesapin](https://github.com/alesapin)).
* Correction de la création d’une vue matérialisée avec MaterializedPostgreSQL [#40807](https://github.com/ClickHouse/ClickHouse/pull/40807) ([Maksim Buren](https://github.com/maks-buren630501)).

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

* Active `input_format_json_ignore_unknown_keys_in_named_tuple` par défaut. [#46742](https://github.com/ClickHouse/ClickHouse/pull/46742) ([Kruglov Pavel](https://github.com/Avogar)).
* Autorise l’ignorance des erreurs lors de l’envoi vers MATERIALIZED VIEW (ajout du nouveau paramètre `materialized_views_ignore_errors`, défini par défaut sur `false`, mais forcé à `true` pour le flush des logs vers les tables `system.*_log`, sans condition). [#46658](https://github.com/ClickHouse/ClickHouse/pull/46658) ([Azat Khuzhin](https://github.com/azat)).
* Suit en mémoire la file de fichiers des envois distribués. [#45491](https://github.com/ClickHouse/ClickHouse/pull/45491) ([Azat Khuzhin](https://github.com/azat)).
* Désormais, les en-têtes `X-ClickHouse-Query-Id` et `X-ClickHouse-Timezone` sont ajoutés aux réponses pour toutes les requêtes via le protocole HTTP. Auparavant, cela n’était fait que pour les requêtes `SELECT`. [#46364](https://github.com/ClickHouse/ClickHouse/pull/46364) ([Anton Popov](https://github.com/CurtizJ)).
* Tables externes depuis `MongoDB` : prise en charge de la connexion à un Replica Set via un URI avec une liste d’hôtes:ports, ainsi que de l’option readPreference dans les dictionnaires MongoDB. Exemple d’URI : mongodb://db0.example.com:27017,db1.example.com:27017,db2.example.com:27017/?replicaSet=myRepl\&readPreference=primary. [#46524](https://github.com/ClickHouse/ClickHouse/pull/46524) ([artem-yadr](https://github.com/artem-yadr)).
* Cette amélioration devrait être invisible pour vous. Réimplémente l’analyse des projections sur la base du plan de requête. Ajoute le paramètre `query_plan_optimize_projection=1` pour basculer entre l’ancienne et la nouvelle version. Corrige [#44963](https://github.com/ClickHouse/ClickHouse/issues/44963). [#46537](https://github.com/ClickHouse/ClickHouse/pull/46537) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Utilise par défaut le format Parquet v2 au lieu de v1 comme format de sortie. Ajoute le paramètre `output_format_parquet_version` pour contrôler la version de Parquet, valeurs possibles : `1.0`, `2.4`, `2.6`, `2.latest` (par défaut). [#46617](https://github.com/ClickHouse/ClickHouse/pull/46617) ([Kruglov Pavel](https://github.com/Avogar)).
* Il est désormais possible d’utiliser la nouvelle syntaxe de configuration pour configurer des topics Kafka contenant des points (`.`) dans leur nom. [#46752](https://github.com/ClickHouse/ClickHouse/pull/46752) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige les heuristiques qui vérifient les motifs hyperscan pour détecter des répétitions problématiques. [#46819](https://github.com/ClickHouse/ClickHouse/pull/46819) ([Robert Schulze](https://github.com/rschu1ze)).
* Ne signale pas l’existence d’un nœud ZK dans system.errors lorsqu’un bloc a été créé de manière concurrente par une autre réplique. [#46820](https://github.com/ClickHouse/ClickHouse/pull/46820) ([Raúl Marín](https://github.com/Algunenano)).
* Augmente la limite du nombre de fichiers ouverts dans `clickhouse-local`. Il pourra lire depuis des tables `web` sur des serveurs disposant d’un très grand nombre de cœurs CPU. Ne réduit pas la cadence de lecture depuis le moteur de table URL en cas de trop grand nombre de fichiers ouverts. Cela clôt [#46852](https://github.com/ClickHouse/ClickHouse/issues/46852). [#46853](https://github.com/ClickHouse/ClickHouse/pull/46853) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les exceptions levées lorsque des nombres ne peuvent pas être analysés ont désormais un message plus facile à lire. [#46917](https://github.com/ClickHouse/ClickHouse/pull/46917) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajoute une mise à jour de `system.backups` après chaque tâche traitée pour suivre la progression des sauvegardes. [#46989](https://github.com/ClickHouse/ClickHouse/pull/46989) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Autoriser la conversion de types dans le format d’entrée Native. Ajouter le paramètre `input_format_native_allow_types_conversion` pour la contrôler (activé par défaut). [#46990](https://github.com/ClickHouse/ClickHouse/pull/46990) ([Kruglov Pavel](https://github.com/Avogar)).
* Autoriser l’utilisation d’IPv4 dans la fonction `range` pour générer des plages d’IP. [#46995](https://github.com/ClickHouse/ClickHouse/pull/46995) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Améliorer le message d’exception lorsqu’il est impossible de déplacer une part d’un volume/disque vers un autre. [#47032](https://github.com/ClickHouse/ClickHouse/pull/47032) ([alesapin](https://github.com/alesapin)).
* Prise en charge du type `Bool` dans la fonction `JSONType`. Auparavant, le type `Null` était renvoyé par erreur pour les valeurs booléennes. [#47046](https://github.com/ClickHouse/ClickHouse/pull/47046) ([Anton Popov](https://github.com/CurtizJ)).
* Utiliser le paramètre `_request_body` pour configurer des requêtes HTTP prédéfinies. [#47086](https://github.com/ClickHouse/ClickHouse/pull/47086) ([Constantine Peresypkin](https://github.com/pkit)).
* Indentation automatique dans le SQL Editor de l’UI intégrée lorsqu’on appuie sur Entrée. [#47113](https://github.com/ClickHouse/ClickHouse/pull/47113) ([Alexey Korepanov](https://github.com/alexkorep)).
* L’auto-extraction avec 'sudo' tentera d’attribuer aux fichiers extraits l’uid et le gid de l’utilisateur en cours d’exécution. [#47116](https://github.com/ClickHouse/ClickHouse/pull/47116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Auparavant, le second argument de la fonction `repeat` n’acceptait qu’un type entier non signé, ce qui signifiait qu’il ne pouvait pas accepter des valeurs telles que -1. Ce comportement différait de celui de la fonction Spark. Dans cette mise à jour, la fonction `repeat` a été modifiée pour s’aligner sur le comportement de la fonction Spark. Elle accepte désormais les mêmes types d’entrée, y compris les entiers négatifs. Des tests approfondis ont été effectués pour vérifier la validité de l’implémentation mise à jour. [#47134](https://github.com/ClickHouse/ClickHouse/pull/47134) ([KevinyhZou](https://github.com/KevinyhZou)). Remarque : l’entrée du changelog a été réécrite par ChatGPT.
* Supprimer la partie `::__1` des stacktraces. Afficher `std::basic_string<char, ...` comme `String` dans les stacktraces. [#47171](https://github.com/ClickHouse/ClickHouse/pull/47171) ([Mike Kot](https://github.com/myrrc)).
* Réimplémenter le mode interserver pour éviter les attaques par rejeu (à noter que ce changement reste rétrocompatible avec les anciennes versions du serveur). [#47213](https://github.com/ClickHouse/ClickHouse/pull/47213) ([Azat Khuzhin](https://github.com/azat)).
* Améliorer la reconnaissance des groupes d’expressions régulières et affiner le dictionnaire regexp\_tree. [#47218](https://github.com/ClickHouse/ClickHouse/pull/47218) ([Han Fei](https://github.com/hanfei1991)).
* Amélioration de Keeper : ajout du nouveau 4LW `clrs` pour nettoyer les ressources utilisées par Keeper (par exemple, libérer la mémoire inutilisée). [#47256](https://github.com/ClickHouse/ClickHouse/pull/47256) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajouter des arguments facultatifs aux codecs `DoubleDelta(bytes_size)`, `Gorilla(bytes_size)`, `FPC(level, float_size)` ; cela permet d’utiliser ces codecs sans type de colonne dans `clickhouse-compressor`. Corriger d’éventuels arrêts brutaux et erreurs arithmétiques dans `clickhouse-compressor` avec ces codecs. Correctif : [https://github.com/ClickHouse/ClickHouse/discussions/47262](https://github.com/ClickHouse/ClickHouse/discussions/47262). [#47271](https://github.com/ClickHouse/ClickHouse/pull/47271) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajouter la prise en charge des types BigInt à la fonction `runningDifference`. Résout [#47194](https://github.com/ClickHouse/ClickHouse/issues/47194). [#47322](https://github.com/ClickHouse/ClickHouse/pull/47322) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajouter une marge avant expiration pour les identifiants S3 qui ont une date d’expiration, afin d’éviter les erreurs `ExpiredToken` dans certains cas limites. Elle est configurable via `expiration_window_seconds` ; la valeur par défaut est de 120 secondes. [#47423](https://github.com/ClickHouse/ClickHouse/pull/47423) ([Antonio Andelic](https://github.com/antonio2368)).
* Prise en charge de Decimal et Date32 dans le format `Avro`. [#47434](https://github.com/ClickHouse/ClickHouse/pull/47434) ([Kruglov Pavel](https://github.com/Avogar)).
* Ne pas démarrer le serveur si une conversion interrompue de `Ordinary` vers `Atomic` est détectée ; afficher un message d’erreur plus clair avec des instructions de dépannage. [#47487](https://github.com/ClickHouse/ClickHouse/pull/47487) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajouter une nouvelle colonne `kind` à `system.opentelemetry_span_log`. Cette colonne contient la valeur de [SpanKind](https://opentelemetry.io/docs/reference/specification/trace/api/#spankind) définie dans OpenTelemetry. [#47499](https://github.com/ClickHouse/ClickHouse/pull/47499) ([Frank Chen](https://github.com/FrankChen021)).
* Autoriser la lecture/écriture de tableaux imbriqués au format `Protobuf` en utilisant uniquement le nom du champ racine comme nom de colonne. Auparavant, le nom de colonne devait contenir tous les noms de champs imbriqués (par exemple `a.b.c Array(Array(Array(UInt32)))`) ; il est désormais possible d’utiliser simplement `a Array(Array(Array(UInt32)))`. [#47650](https://github.com/ClickHouse/ClickHouse/pull/47650) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d’un modificateur `STRICT` optionnel pour `SYSTEM SYNC REPLICA`, qui fait attendre la requête jusqu’à ce que la file de réplication soit vide (exactement comme avant [https://github.com/ClickHouse/ClickHouse/pull/45648](https://github.com/ClickHouse/ClickHouse/pull/45648)). [#47659](https://github.com/ClickHouse/ClickHouse/pull/47659) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Amélioration du nommage de certains logs de spans OpenTelemetry. [#47667](https://github.com/ClickHouse/ClickHouse/pull/47667) ([Frank Chen](https://github.com/FrankChen021)).
* Empêcher l’utilisation de chaînes trop longues de modificateurs de fonctions d’agrégation (elles peuvent entraîner des requêtes lentes à l’étape d’analyse). Cela clôt [#47715](https://github.com/ClickHouse/ClickHouse/issues/47715). [#47716](https://github.com/ClickHouse/ClickHouse/pull/47716) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge des sous-requêtes dans les parameterized views ; résout [#46741](https://github.com/ClickHouse/ClickHouse/issues/46741) [#47725](https://github.com/ClickHouse/ClickHouse/pull/47725) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction d’une fuite de mémoire dans l’intégration MySQL (reproductible avec `connection_auto_close=1`). [#47732](https://github.com/ClickHouse/ClickHouse/pull/47732) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Amélioration de la gestion des erreurs dans le code lié aux paramètres Decimal, avec à la clé des messages d’erreur plus explicites. Auparavant, lorsque des paramètres Decimal incorrects étaient fournis, le message d’erreur généré était peu clair ou peu utile. Cette mise à jour corrige ce point en fournissant des informations plus détaillées et plus utiles, ce qui facilite l’identification et la correction des problèmes liés aux paramètres Decimal. [#47812](https://github.com/ClickHouse/ClickHouse/pull/47812) ([Yu Feng](https://github.com/Vigor-jpg)). Remarque : cette entrée du changelog a été réécrite par ChatGPT.
* Le paramètre `exact_rows_before_limit` est utilisé pour faire en sorte que `rows_before_limit_at_least` reflète précisément le nombre de lignes renvoyées avant que la limite ne soit atteinte. Cette pull request corrige les problèmes rencontrés lorsque la requête implique un traitement distribué sur plusieurs shards ou des opérations de tri. Avant cette mise à jour, ces scénarios ne fonctionnaient pas comme prévu. [#47874](https://github.com/ClickHouse/ClickHouse/pull/47874) ([Amos Bird](https://github.com/amosbird)).
* Introspection des métriques des ThreadPools. [#47880](https://github.com/ClickHouse/ClickHouse/pull/47880) ([Azat Khuzhin](https://github.com/azat)).
* Ajout des événements de profil `WriteBufferFromS3Microseconds` et `WriteBufferFromS3RequestsErrors`. [#47885](https://github.com/ClickHouse/ClickHouse/pull/47885) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout des options `--link` et `--noninteractive` (`-y`) à l’installation de ClickHouse. Clôt [#47750](https://github.com/ClickHouse/ClickHouse/issues/47750). [#47887](https://github.com/ClickHouse/ClickHouse/pull/47887) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de l’exception `UNKNOWN_TABLE` lors d’un ATTACH sur une vue matérialisée dont certaines tables dépendantes ne sont pas disponibles. Cela peut être utile lors d’une tentative de restauration de l’état à partir d’une sauvegarde. [#47975](https://github.com/ClickHouse/ClickHouse/pull/47975) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Correction du cas où le chemin (facultatif) n’est pas ajouté à une configuration de disque chiffré. [#47981](https://github.com/ClickHouse/ClickHouse/pull/47981) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge des CTE dans les vues paramétrées. Implémentation : mise à jour pour autoriser les paramètres de requête lors de l’évaluation de sous-requêtes scalaires. [#48065](https://github.com/ClickHouse/ClickHouse/pull/48065) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Prise en charge des grands entiers `(U)Int128/(U)Int256`, de `Map` avec n’importe quel type de clé et de `DateTime64` avec n’importe quelle précision (et pas seulement 3 et 6). [#48119](https://github.com/ClickHouse/ClickHouse/pull/48119) ([Kruglov Pavel](https://github.com/Avogar)).
* Possibilité d’ignorer les erreurs liées à des valeurs d’enum inconnues dans les formats d’entrée par ligne. [#48133](https://github.com/ClickHouse/ClickHouse/pull/48133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="buildtestingpackaging-improvement-9">
  #### amélioration du build/des tests/du packaging
</div>

* ClickHouse se compile désormais avec `C++23`. [#47424](https://github.com/ClickHouse/ClickHouse/pull/47424) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout du fuzzing des requêtes `EXPLAIN` dans l’AST Fuzzer. [#47803](https://github.com/ClickHouse/ClickHouse/pull/47803) [#47852](https://github.com/ClickHouse/ClickHouse/pull/47852) ([flynn](https://github.com/ucasfl)).
* Sépare le test de stress et la vérification automatisée de rétrocompatibilité (désormais Upgrade check). [#44879](https://github.com/ClickHouse/ClickHouse/pull/44879) ([Kruglov Pavel](https://github.com/Avogar)).
* Mise à jour de l’image Ubuntu pour Docker afin d’atténuer certains faux signalements de sécurité. [#46784](https://github.com/ClickHouse/ClickHouse/pull/46784) ([Julio Jimenez](https://github.com/juliojimenez)). Veuillez noter que ClickHouse n’a aucune dépendance et ne nécessite pas Docker.
* Ajoute une invite permettant de supprimer un téléchargement `clickhouse` existant lors de l’installation de ClickHouse via `curl | sh`. L’invite est : "ClickHouse binary clickhouse already exists. Overwrite? \[y/N]". [#46859](https://github.com/ClickHouse/ClickHouse/pull/46859) ([Dan Roscigno](https://github.com/DanRoscigno)).
* Corrige une erreur au démarrage du serveur sur d’anciennes distributions (par ex. Amazon Linux 2) et sur ARM, lorsque les symboles de glibc 2.28 sont introuvables. [#47008](https://github.com/ClickHouse/ClickHouse/pull/47008) ([Robert Schulze](https://github.com/rschu1ze)).
* Prépare la prise en charge de clang 16. [#47027](https://github.com/ClickHouse/ClickHouse/pull/47027) ([Amos Bird](https://github.com/amosbird)).
* Ajout d’une vérification CI garantissant que ClickHouse peut s’exécuter avec une ancienne glibc sur ARM. [#47063](https://github.com/ClickHouse/ClickHouse/pull/47063) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajoute une vérification de style pour empêcher une utilisation incorrecte de la macro `NDEBUG`. [#47699](https://github.com/ClickHouse/ClickHouse/pull/47699) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Accélère légèrement la compilation. [#47714](https://github.com/ClickHouse/ClickHouse/pull/47714) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Met à jour `vectorscan` vers 5.4.9. [#47955](https://github.com/ClickHouse/ClickHouse/pull/47955) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajoute un test unitaire pour vérifier que la journalisation fatale d’Apache Arrow n’interrompt pas l’exécution. Il couvre les modifications de [ClickHouse/arrow#16](https://github.com/ClickHouse/arrow/pull/16). [#47958](https://github.com/ClickHouse/ClickHouse/pull/47958) ([Arthur Passos](https://github.com/arthurpassos)).
* Restaure la possibilité de démarrer le build natif du serveur ClickHouse en mode débogage sur macOS. [#48050](https://github.com/ClickHouse/ClickHouse/pull/48050) ([Robert Schulze](https://github.com/rschu1ze)). Remarque : cette modification n’est pertinente que pour le développement, car les builds officiels de ClickHouse sont réalisés en compilation croisée.

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

* Correction de la réinitialisation du parser de formats, avec test du traitement des messages incorrects dans `Kafka` [#45693](https://github.com/ClickHouse/ClickHouse/pull/45693) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du calcul de la taille des données dans Keeper [#46086](https://github.com/ClickHouse/ClickHouse/pull/46086) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un bug dans les tentatives automatiques de la requête `DROP TABLE` avec des tables `ReplicatedMergeTree` et des bases de données `Atomic`. Dans de rares cas, cela pouvait entraîner les erreurs `Can't get data for node /zk_path/log_pointer` et `The specified key does not exist` si la session ZooKeeper expirait pendant le DROP et qu’une nouvelle table répliquée avec le même chemin dans ZooKeeper était créée en parallèle. [#46384](https://github.com/ClickHouse/ClickHouse/pull/46384) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction d’une récursion incorrecte d’alias lors de la normalisation des requêtes, qui empêchait l’exécution de certaines d’entre elles. [#46609](https://github.com/ClickHouse/ClickHouse/pull/46609) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de la sérialisation/désérialisation d’IPv4/IPv6 dans les formats binaires [#46616](https://github.com/ClickHouse/ClickHouse/pull/46616) ([Kruglov Pavel](https://github.com/Avogar)).
* ActionsDAG : ne pas modifier le résultat de `and` pendant l’optimisation [#46653](https://github.com/ClickHouse/ClickHouse/pull/46653) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Amélioration de l’annulation des requêtes lorsqu’un client se termine inopinément [#46681](https://github.com/ClickHouse/ClickHouse/pull/46681) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction des opérations arithmétiques dans l’optimisation des agrégations [#46705](https://github.com/ClickHouse/ClickHouse/pull/46705) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’un possible arrêt brutal de `clickhouse-local` lors de l’inférence de schéma JSONEachRow [#46731](https://github.com/ClickHouse/ClickHouse/pull/46731) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la modification d’un rôle expiré [#46772](https://github.com/ClickHouse/ClickHouse/pull/46772) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de l’accumulation incorrecte des colonnes PREWHERE combinées à partir de plusieurs étapes [#46785](https://github.com/ClickHouse/ClickHouse/pull/46785) ([Alexander Gololobov](https://github.com/davenger)).
* Utilisation de la plage initiale pour récupérer la taille du fichier dans le tampon de lecture HTTP. Sans ce changement, certains fichiers distants ne pouvaient pas être traités. [#46824](https://github.com/ClickHouse/ClickHouse/pull/46824) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de la barre de progression incorrecte lors de l’utilisation des tables URL [#46830](https://github.com/ClickHouse/ClickHouse/pull/46830) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un rapport MSan dans la fonction `maxIntersections` [#46847](https://github.com/ClickHouse/ClickHouse/pull/46847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d’un bug dans le type de données `Map` [#46856](https://github.com/ClickHouse/ClickHouse/pull/46856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de résultats erronés pour certaines recherches LIKE lorsque le motif LIKE contient des caractères entre guillemets qui ne peuvent pas être échappés [#46875](https://github.com/ClickHouse/ClickHouse/pull/46875) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction : WITH FILL pouvait provoquer un arrêt brutal lorsque le Filling Transform traitait un bloc vide [#46897](https://github.com/ClickHouse/ClickHouse/pull/46897) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de l’inférence des dates et des entiers à partir de chaînes dans JSON [#46972](https://github.com/ClickHouse/ClickHouse/pull/46972) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un bug dans le choix du disque pour la zero-copy replication pendant le fetch [#47010](https://github.com/ClickHouse/ClickHouse/pull/47010) ([alesapin](https://github.com/alesapin)).
* Corrige une faute de frappe dans la définition du service systemd [#47051](https://github.com/ClickHouse/ClickHouse/pull/47051) ([Palash Goel](https://github.com/palash-goel)).
* Corrige l’erreur NOT\_IMPLEMENTED avec CROSS JOIN et algorithm = auto [#47068](https://github.com/ClickHouse/ClickHouse/pull/47068) ([Vladimir C](https://github.com/vdimir)).
* Corrige le problème empêchant la table 'ReplicatedMergeTree' d’insérer deux données similaires lorsque 'part\_type' est configuré en mode 'InMemory' (fonctionnalité expérimentale). [#47121](https://github.com/ClickHouse/ClickHouse/pull/47121) ([liding1992](https://github.com/liding1992)).
* Dictionnaires externes / library-bridge : corrige l’erreur "méthode de bibliothèque inconnue 'extDict\_libClone'" [#47136](https://github.com/ClickHouse/ClickHouse/pull/47136) ([alex filatov](https://github.com/phil-88)).
* Corrige une race condition dans un grace hash join avec une limite [#47153](https://github.com/ClickHouse/ClickHouse/pull/47153) ([Vladimir C](https://github.com/vdimir)).
* Corrige la prise en charge de PREWHERE pour les colonnes explicites [#47154](https://github.com/ClickHouse/ClickHouse/pull/47154) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un interblocage possible dans Query Status [#47161](https://github.com/ClickHouse/ClickHouse/pull/47161) ([Kruglov Pavel](https://github.com/Avogar)).
* Interdit insert select sur la même table `Join`, car cela entraîne un interblocage [#47260](https://github.com/ClickHouse/ClickHouse/pull/47260) ([Vladimir C](https://github.com/vdimir)).
* Ignore les partitions fusionnées pour les merges `min_age_to_force_merge_seconds` [#47303](https://github.com/ClickHouse/ClickHouse/pull/47303) ([Antonio Andelic](https://github.com/antonio2368)).
* Modifie find\_first\_symbols afin qu’il fonctionne comme prévu pour find\_first\_not\_symbols [#47304](https://github.com/ClickHouse/ClickHouse/pull/47304) ([Arthur Passos](https://github.com/arthurpassos)).
* Corrige l’inférence des grands nombres dans les CSV [#47410](https://github.com/ClickHouse/ClickHouse/pull/47410) ([Kruglov Pavel](https://github.com/Avogar)).
* Désactive l’optimiseur d’expressions logiques pour les expressions avec alias. [#47451](https://github.com/ClickHouse/ClickHouse/pull/47451) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige une erreur dans `decodeURLComponent` [#47457](https://github.com/ClickHouse/ClickHouse/pull/47457) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le graphe EXPLAIN avec projection [#47473](https://github.com/ClickHouse/ClickHouse/pull/47473) ([flynn](https://github.com/ucasfl)).
* Corrige les paramètres de requête [#47488](https://github.com/ClickHouse/ClickHouse/pull/47488) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Vue paramétrée : correction d’un bug. [#47495](https://github.com/ClickHouse/ClickHouse/pull/47495) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Fuzzer des formats de données, et correctifs associés. [#47519](https://github.com/ClickHouse/ClickHouse/pull/47519) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la vérification de monotonie pour `DateTime64` [#47526](https://github.com/ClickHouse/ClickHouse/pull/47526) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l’erreur "block structure mismatch" pour une colonne Nullable LowCardinality [#47537](https://github.com/ClickHouse/ClickHouse/pull/47537) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correctif d’un bug dans Apache Parquet [#45878](https://github.com/ClickHouse/ClickHouse/issues/45878) [#47538](https://github.com/ClickHouse/ClickHouse/pull/47538) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l’analyse parallèle de `BSONEachRow` lorsque la taille du document est invalide [#47540](https://github.com/ClickHouse/ClickHouse/pull/47540) ([Kruglov Pavel](https://github.com/Avogar)).
* Préservation de l’erreur dans `system.distribution_queue` lors de `SYSTEM FLUSH DISTRIBUTED` [#47541](https://github.com/ClickHouse/ClickHouse/pull/47541) ([Azat Khuzhin](https://github.com/azat)).
* Vérification de la présence de colonnes dupliquées dans le format `BSONEachRow` [#47609](https://github.com/ClickHouse/ClickHouse/pull/47609) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l’attente du verrou zero copy lors d’un déplacement [#47631](https://github.com/ClickHouse/ClickHouse/pull/47631) ([alesapin](https://github.com/alesapin)).
* Correction de l’agrégation par partition [#47634](https://github.com/ClickHouse/ClickHouse/pull/47634) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d’un bug dans la sérialisation d’un tuple sous forme de tableau dans le format `BSONEachRow` [#47690](https://github.com/ClickHouse/ClickHouse/pull/47690) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un plantage dans `polygonsSymDifferenceCartesian` [#47702](https://github.com/ClickHouse/ClickHouse/pull/47702) ([pufit](https://github.com/pufit)).
* Correction de la lecture de fichiers compressés du moteur de stockage `File` avec la compression `zlib` et `gzip` [#47796](https://github.com/ClickHouse/ClickHouse/pull/47796) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration de la détection des requêtes vides pour PostgreSQL (avec le driver pgx pour Go) [#47854](https://github.com/ClickHouse/ClickHouse/pull/47854) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la vérification de monotonie de DateTime pour les types LowCardinality [#47860](https://github.com/ClickHouse/ClickHouse/pull/47860) ([Antonio Andelic](https://github.com/antonio2368)).
* Utilisation de restore\_threads (et non de backup\_threads) pour RESTORE ASYNC [#47861](https://github.com/ClickHouse/ClickHouse/pull/47861) ([Azat Khuzhin](https://github.com/azat)).
* Correction de DROP COLUMN avec ReplicatedMergeTree contenant des projections [#47883](https://github.com/ClickHouse/ClickHouse/pull/47883) ([Antonio Andelic](https://github.com/antonio2368)).
* Correctif pour la récupération d’une base de données Replicated [#47901](https://github.com/ClickHouse/ClickHouse/pull/47901) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correctif urgent pour des avertissements HTTP trop verbeux [#47903](https://github.com/ClickHouse/ClickHouse/pull/47903) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction de "Field value too long" dans `catboostEvaluate` [#47970](https://github.com/ClickHouse/ClickHouse/pull/47970) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de [#36971](https://github.com/ClickHouse/ClickHouse/issues/36971) : Watchdog : quitter avec un code non nul si le processus enfant se termine [#47973](https://github.com/ClickHouse/ClickHouse/pull/47973) ([Коренберг Марк](https://github.com/socketpair)).
* Correctif pour "index file `cidx` is unexpectedly long" [#48010](https://github.com/ClickHouse/ClickHouse/pull/48010) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction de la requête MaterializedPostgreSQL pour récupérer les attributs (replica-identity) [#48015](https://github.com/ClickHouse/ClickHouse/pull/48015) ([Solomatov Sergei](https://github.com/solomatovs)).
* parseDateTime() : corrige un UB (débordement d’entier signé) [#48019](https://github.com/ClickHouse/ClickHouse/pull/48019) ([Robert Schulze](https://github.com/rschu1ze)).
* Utilise des noms uniques pour les Records dans Avro afin d’éviter de réutiliser leur schéma [#48057](https://github.com/ClickHouse/ClickHouse/pull/48057) ([Kruglov Pavel](https://github.com/Avogar)).
* Configure correctement les timeouts des sockets TCP/HTTP dans Keeper [#48108](https://github.com/ClickHouse/ClickHouse/pull/48108) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un possible appel de membre sur un pointeur NULL dans le format `Avro` [#48184](https://github.com/ClickHouse/ClickHouse/pull/48184) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="232" /> Version 23.2 de ClickHouse, 2023-02-23. [Présentation](https://presentations.clickhouse.com/2023-release-23.2/), [Vidéo](https://www.youtube.com/watch?v=2o0vRMMIrkY)

<Frame>
  <iframe src="https://www.youtube.com/embed/2o0vRMMIrkY" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Changement rétro-incompatible
</div>

* Étend la fonction "toDayOfWeek()" (alias : "DAYOFWEEK") avec un argument de mode qui indique si la semaine commence le lundi ou le dimanche, et si le comptage démarre à 0 ou à 1. Par souci de cohérence avec les autres fonctions de date et d’heure, l’argument de mode a été inséré entre les arguments time et time zone. Cela casse l’usage existant de la syntaxe à 2 arguments (jusqu’alors non documentée) "toDayOfWeek(time, time\_zone)". Pour corriger cela, il faut réécrire la fonction sous la forme "toDayOfWeek(time, 0, time\_zone)". [#45233](https://github.com/ClickHouse/ClickHouse/pull/45233) ([Robert Schulze](https://github.com/rschu1ze)).
* Renomme le paramètre `max_query_cache_size` en `filesystem_cache_max_download_size`. [#45614](https://github.com/ClickHouse/ClickHouse/pull/45614) ([Kseniia Sumarokova](https://github.com/kssenii)).
* L’utilisateur `default` n’aura pas, par défaut, les autorisations pour le type d’accès `SHOW NAMED COLLECTION` (par exemple, l’utilisateur `default` ne pourra plus accorder ALL à d’autres utilisateurs comme auparavant ; cette PR est donc rétro-incompatible). [#46010](https://github.com/ClickHouse/ClickHouse/pull/46010) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Si la clause SETTINGS est spécifiée avant la clause FORMAT, les paramètres s’appliqueront également au formatage. [#46003](https://github.com/ClickHouse/ClickHouse/pull/46003) ([Azat Khuzhin](https://github.com/azat)).
* Supprime la prise en charge du paramètre `materialized_postgresql_allow_automatic_update` (qui était désactivé par défaut). [#46106](https://github.com/ClickHouse/ClickHouse/pull/46106) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Améliore légèrement les performances de `countDigits` sur des jeux de données réalistes. Cela a permis de clore [#44518](https://github.com/ClickHouse/ClickHouse/issues/44518). Dans les versions précédentes, `countDigits(0)` renvoyait `0` ; désormais, il renvoie `1`, ce qui est plus correct et conforme à la documentation existante. [#46187](https://github.com/ClickHouse/ClickHouse/pull/46187) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interdit la création de nouvelles colonnes compressées par une combinaison des codecs "Delta" ou "DoubleDelta", suivis des codecs "Gorilla" ou "FPC". Cela peut être contourné en utilisant le paramètre "allow\_suspicious\_codecs = true". [#45652](https://github.com/ClickHouse/ClickHouse/pull/45652) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Ajout de `StorageIceberg` et de la fonction de table `iceberg` pour accéder au stockage de tables Iceberg sur S3. [#45384](https://github.com/ClickHouse/ClickHouse/pull/45384) ([flynn](https://github.com/ucasfl)).
* Permet de configurer le stockage avec `SETTINGS disk = '<disk_name>'` (au lieu de `storage_policy`) ainsi qu’avec une création explicite de disque via `SETTINGS disk = disk(type=s3, ...)`. [#41976](https://github.com/ClickHouse/ClickHouse/pull/41976) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Expose les compteurs `ProfileEvents` dans `system.part_log`. [#38614](https://github.com/ClickHouse/ClickHouse/pull/38614) ([Bharat Nallan](https://github.com/bharatnc)).
* Enrichissement du moteur `ReplacingMergeTree` existant pour permettre les insertions en double. Cela combine les avantages de `ReplacingMergeTree` et de `CollapsingMergeTree` dans un seul moteur MergeTree. Les données supprimées ne sont pas renvoyées lors des requêtes, mais ne sont pas non plus supprimées du disque. [#41005](https://github.com/ClickHouse/ClickHouse/pull/41005) ([youennL-cs](https://github.com/youennL-cs)).
* Ajout de la fonction `generateULID`. Clôt [#36536](https://github.com/ClickHouse/ClickHouse/issues/36536). [#44662](https://github.com/ClickHouse/ClickHouse/pull/44662) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de la fonction d’agrégation `corrMatrix`, qui calcule la corrélation pour chaque paire de colonnes. De plus, comme les fonctions d’agrégation `covarSamp` et `covarPop` sont similaires à `corr`, j’ajoute également `covarSampMatrix` et `covarPopMatrix`. @alexey-milovidov clôt [#44587](https://github.com/ClickHouse/ClickHouse/issues/44587). [#44680](https://github.com/ClickHouse/ClickHouse/pull/44680) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Introduction de la fonction `arrayShuffle` pour effectuer des permutations aléatoires de tableaux. [#45271](https://github.com/ClickHouse/ClickHouse/pull/45271) ([Joanna Hulboj](https://github.com/jh0x)).
* Prise en charge du type `FIXED_SIZE_BINARY` dans Arrow, de `FIXED_LENGTH_BYTE_ARRAY` dans `Parquet`, avec correspondance vers `FixedString`. Ajout des paramètres `output_format_parquet_fixed_string_as_fixed_byte_array/output_format_arrow_fixed_string_as_fixed_byte_array` pour contrôler le type de sortie par défaut de `FixedString`. Clôt [#45326](https://github.com/ClickHouse/ClickHouse/issues/45326). [#45340](https://github.com/ClickHouse/ClickHouse/pull/45340) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d’une nouvelle colonne `last_exception_time` à `system.replication&#95;queue`. [#45457](https://github.com/ClickHouse/ClickHouse/pull/45457) ([Frank Chen](https://github.com/FrankChen021)).
* Ajout de deux nouvelles fonctions permettant d'utiliser des clés/seeds définis par l'utilisateur avec SipHash{64,128}. [#45513](https://github.com/ClickHouse/ClickHouse/pull/45513) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Autorise une version à trois arguments pour la table function `format`. Clôture [#45808](https://github.com/ClickHouse/ClickHouse/issues/45808). [#45873](https://github.com/ClickHouse/ClickHouse/pull/45873) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Ajoute la prise en charge du format `JodaTime` pour 'x','w','S'. Voir [https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html). [#46073](https://github.com/ClickHouse/ClickHouse/pull/46073) ([zk\_kiger](https://github.com/zk-kiger)).
* Prise en charge de la window function `ntile`. ([lgbo](https://github.com/lgbo-ustc)).
* Ajoute le setting `final` pour appliquer implicitement le modifier `FINAL` à chaque table. [#40945](https://github.com/ClickHouse/ClickHouse/pull/40945) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout des fonctions `arrayPartialSort` et `arrayPartialReverseSort`. [#46296](https://github.com/ClickHouse/ClickHouse/pull/46296) ([Joanna Hulboj](https://github.com/jh0x)).
* Le nouveau parameter HTTP `client_protocol_version` permet de définir une protocol version client pour les réponses HTTP utilisant le Native format. [#40397](https://github.com/ClickHouse/ClickHouse/issues/40397). [#46360](https://github.com/ClickHouse/ClickHouse/pull/46360) ([Geoff Genz](https://github.com/genzgd)).
* Ajoute la nouvelle fonction `regexpExtract`, semblable à la fonction Spark `REGEXP_EXTRACT` pour des raisons de compatibilité. Elle est similaire à la fonction existante `extract`. [#46469](https://github.com/ClickHouse/ClickHouse/pull/46469) ([李扬](https://github.com/taiyang-li)).
* Ajoute la nouvelle fonction `JSONArrayLength`, qui renvoie le nombre d'éléments dans le JSON array le plus externe. La fonction renvoie NULL si la JSON string d'entrée n'est pas valide. [#46631](https://github.com/ClickHouse/ClickHouse/pull/46631) ([李扬](https://github.com/taiyang-li)).

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

* La logique introduite fonctionne si la condition PREWHERE est une conjonction de plusieurs conditions (cond1 AND cond2 AND ... ). Elle regroupe en étapes les conditions qui nécessitent la lecture des mêmes colonnes. Après chaque étape, la partie correspondante de la condition complète est calculée et les lignes obtenues peuvent être filtrées. Cela permet de lire moins de lignes aux étapes suivantes, économisant ainsi de la bande passante d’IO et réduisant la quantité de calculs. Cette logique est désactivée par défaut pour le moment. Elle sera activée par défaut dans une future release, une fois qu’il aura été établi qu’elle n’entraîne pas de régressions. Il est donc fortement recommandé de l’utiliser à des fins de test. Elle peut être contrôlée par 2 paramètres : "enable\_multiple\_prewhere\_read\_steps" et "move\_all\_conditions\_to\_prewhere". [#46140](https://github.com/ClickHouse/ClickHouse/pull/46140) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout d’une option permettant d’agréger les partitions indépendamment si la clé de partition de la table et la clé de groupement sont compatibles. Contrôlée par le paramètre `allow_aggregate_partitions_independently`. Désactivée par défaut en raison de son applicabilité limitée (veuillez vous référer à la documentation). [#45364](https://github.com/ClickHouse/ClickHouse/pull/45364) ([Nikita Taranov](https://github.com/nickitat)).
* Autorise l’utilisation de l’algorithme de fusion verticale avec des parts au format Compact. Cela permettra au serveur ClickHouse d’utiliser beaucoup moins de mémoire pour les opérations en arrière-plan. Cela clôt [#46084](https://github.com/ClickHouse/ClickHouse/issues/46084). [#45681](https://github.com/ClickHouse/ClickHouse/pull/45681) [#46282](https://github.com/ClickHouse/ClickHouse/pull/46282) ([Anton Popov](https://github.com/CurtizJ)).
* Optimise le lecteur `Parquet` en utilisant un lecteur par lots. [#45878](https://github.com/ClickHouse/ClickHouse/pull/45878) ([LiuNeng](https://github.com/liuneng1994)).
* Ajoute une nouvelle méthode `io_uring` pour `local_filesystem_read_method`, basée sur le sous-système Linux asynchrone [io\_uring](https://kernel.dk/io_uring.pdf), ce qui améliore presque systématiquement les performances de lecture par rapport à la méthode par défaut `pread`. [#38456](https://github.com/ClickHouse/ClickHouse/pull/38456) ([Saulius Valatka](https://github.com/sauliusvl)).
* Réécrit les fonctions d’agrégation avec une expression `if` comme argument lorsqu’elles sont logiquement équivalentes. Par exemple, `avg(if(cond, col, null))` peut être réécrit en avgIf(cond, col). Cela améliore les performances. [#44730](https://github.com/ClickHouse/ClickHouse/pull/44730) ([李扬](https://github.com/taiyang-li)).
* Améliore les performances des fonctions lower/upper grâce aux instructions avx512. [#37894](https://github.com/ClickHouse/ClickHouse/pull/37894) ([yaqi-zhao](https://github.com/yaqi-zhao)).
* Supprime la limitation selon laquelle, sur les systèmes avec >=32 cœurs et SMT désactivé, ClickHouse n’utilise que la moitié des cœurs (cas où l’Hyper-Threading est désactivé dans le BIOS). [#44973](https://github.com/ClickHouse/ClickHouse/pull/44973) ([Robert Schulze](https://github.com/rschu1ze)).
* Améliore les performances de la fonction `multiIf` grâce à une exécution colonnaire, avec une accélération de 2,3x. [#45296](https://github.com/ClickHouse/ClickHouse/pull/45296) ([李扬](https://github.com/taiyang-li)).
* Ajoute un chemin rapide pour la fonction `position` lorsque la sous-chaîne recherchée est vide. [#45382](https://github.com/ClickHouse/ClickHouse/pull/45382) ([李扬](https://github.com/taiyang-li)).
* Active l’optimisation `query_plan_remove_redundant_sorting` par défaut. Optimisation implémentée dans [#45420](https://github.com/ClickHouse/ClickHouse/issues/45420). [#45567](https://github.com/ClickHouse/ClickHouse/pull/45567) ([Igor Nikonov](https://github.com/devcrafter)).
* Augmente la taille des chunks de HTTP Transfer Encoding afin d’améliorer les performances des grandes requêtes utilisant l’interface HTTP. [#45593](https://github.com/ClickHouse/ClickHouse/pull/45593) ([Geoff Genz](https://github.com/genzgd)).
* Correction des performances des requêtes `SELECT` courtes lisant des tables comportant un grand nombre de colonnes `Array`/`Map`/`Nested`. [#45630](https://github.com/ClickHouse/ClickHouse/pull/45630) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration des performances du filtrage sur les grands entiers et les types Decimal. [#45949](https://github.com/ClickHouse/ClickHouse/pull/45949) ([李扬](https://github.com/taiyang-li)).
* Ce changement peut réduire efficacement le surcoût lié à l’obtention du filtre depuis ColumnNullable(UInt8) et améliorer les performances globales des requêtes. Pour évaluer son impact, nous avons utilisé le benchmark TPC-H en remplaçant les types de colonnes non Nullable par des types Nullable, puis nous avons mesuré le QPS des requêtes comme indicateur de performance. [#45962](https://github.com/ClickHouse/ClickHouse/pull/45962) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Le type des colonnes virtuelles `_part` et `_partition_id` devient `LowCardinality(String)`. Closes [#45964](https://github.com/ClickHouse/ClickHouse/issues/45964). [#45975](https://github.com/ClickHouse/ClickHouse/pull/45975) ([flynn](https://github.com/ucasfl)).
* Amélioration des performances de conversion de Decimal lorsque la scale ne change pas. [#46095](https://github.com/ClickHouse/ClickHouse/pull/46095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permet d’augmenter le prefetching pour read data. [#46168](https://github.com/ClickHouse/ClickHouse/pull/46168) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Réécriture de `arrayExists(x -> x = 1, arr)` en `has(arr, 1)`, ce qui améliore les performances d’un facteur de 1,34. [#46188](https://github.com/ClickHouse/ClickHouse/pull/46188) ([李扬](https://github.com/taiyang-li)).
* Correction d’une utilisation mémoire excessive pour les vertical merges sur des disk non distants. Respect de `max_insert_delayed_streams_for_parallel_write` pour les disk distants. [#46275](https://github.com/ClickHouse/ClickHouse/pull/46275) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Mise à jour de zstd vers la v1.5.4. Elle apporte quelques améliorations mineures en termes de performances et de compression ratio. Si vous exécutez des réplique avec différentes versions de ClickHouse, vous pourrez voir des messages d’erreur explicites `Data after merge/mutation is not byte-identical to data on another replicas.` accompagnés d’une explication. Ces messages sont normaux et ne doivent pas vous inquiéter. [#46280](https://github.com/ClickHouse/ClickHouse/pull/46280) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de la dégradation des performances causée par [#39737](https://github.com/ClickHouse/ClickHouse/issues/39737). [#46309](https://github.com/ClickHouse/ClickHouse/pull/46309) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le handle `replicas_status` répondra rapidement, même en cas de replication queue volumineuse. [#46310](https://github.com/ClickHouse/ClickHouse/pull/46310) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la prise en charge d’avx512 pour l’aggregate function `sum`, les fonctions arithmétiques unaires et les fonctions de comparaison. [#37870](https://github.com/ClickHouse/ClickHouse/pull/37870) ([zhao zhou](https://github.com/zzachimed)).
* Réécriture du code autour de la distribution des marks et de la coordination globale de la lecture afin d’obtenir l’amélioration des performances maximale. This closes [#34527](https://github.com/ClickHouse/ClickHouse/issues/34527). [#43772](https://github.com/ClickHouse/ClickHouse/pull/43772) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Suppression des clauses DISTINCT redondantes dans les query (subqueries). Implémentée sur la base du query plan. Cette optimisation est similaire à `optimize_duplicate_order_by_and_distinct` pour les clauses DISTINCT. Elle peut être activée via le paramètre `query_plan_remove_redundant_distinct`. Lié à [#42648](https://github.com/ClickHouse/ClickHouse/issues/42648). [#44176](https://github.com/ClickHouse/ClickHouse/pull/44176) ([Igor Nikonov](https://github.com/devcrafter)).
* Quelques optimisations de réécriture de requêtes : `sumIf(123, cond) -> 123 * countIf(1, cond)`, `sum(if(cond, 123, 0)) -> 123 * countIf(cond)`, `sum(if(cond, 0, 123)) -> 123 * countIf(not(cond))` [#44728](https://github.com/ClickHouse/ClickHouse/pull/44728) ([李扬](https://github.com/taiyang-li)).
* Amélioration de l'interaction entre la fusion contrainte par la mémoire et l'agrégation in order dans la partie supérieure du plan de requête. Auparavant, dans certains cas, nous revenions à un tri explicite pour AIO alors que ce n'était en réalité pas nécessaire. [#45892](https://github.com/ClickHouse/ClickHouse/pull/45892) ([Nikita Taranov](https://github.com/nickitat)).
* Les fusions concurrentes sont désormais planifiées en round-robin par défaut afin de garantir un fonctionnement équitable et sans risque de famine. Auparavant, sur des shards fortement surchargés, les grosses fusions pouvaient parfois être privées de ressources par des fusions plus petites en raison de l'utilisation d'une planification à priorité stricte. Ajout de l'option de config du serveur `background_merges_mutations_scheduling_policy` pour sélectionner l'algorithme de planification (`round_robin` ou `shortest_task_first`). [#46247](https://github.com/ClickHouse/ClickHouse/pull/46247) ([Sergei Trifonov](https://github.com/serxa)).

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

* Activer les retries pour `INSERT` par défaut en cas de perte de session ZooKeeper. Nous l’utilisons déjà en production. [#46308](https://github.com/ClickHouse/ClickHouse/pull/46308) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la possibilité d’ignorer les clés inconnues dans un objet JSON pour les named tuples (`input_format_json_ignore_unknown_keys_in_named_tuple`). [#45678](https://github.com/ClickHouse/ClickHouse/pull/45678) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge de l’optimisation de la clause `where` avec déplacement de l’expression de la sorting key vers `prewhere` pour les query avec `final`. [#38893](https://github.com/ClickHouse/ClickHouse/issues/38893). [#38950](https://github.com/ClickHouse/ClickHouse/pull/38950) ([hexiaoting](https://github.com/hexiaoting)).
* Ajout de nouvelles metrics pour les backups : num\_processed\_files et processed\_files\_size, qui décrivent le nombre réel de fichiers traités. [#42244](https://github.com/ClickHouse/ClickHouse/pull/42244) ([Aleksandr](https://github.com/AVMusorin)).
* Ajout de retries en cas d’erreurs DNS interserveurs. [#43179](https://github.com/ClickHouse/ClickHouse/pull/43179) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Amélioration de Keeper : tentative de préallocation d’espace sur le disk pour éviter les problèmes imprévus liés au manque d’espace. Introduction du setting `max_log_file_size` pour définir la taille maximale des fichiers de log Raft de Keeper. [#44370](https://github.com/ClickHouse/ClickHouse/pull/44370) ([Antonio Andelic](https://github.com/antonio2368)).
* Optimisation du comportement de la logique de l’API de délai d’une replica lorsque la replica est en lecture seule. [#45148](https://github.com/ClickHouse/ClickHouse/pull/45148) ([mateng915](https://github.com/mateng0915)).
* Demander le password dans clickhouse-client de manière interactive lorsque le mot de passe vide est incorrect. Closes [#46702](https://github.com/ClickHouse/ClickHouse/issues/46702). [#46730](https://github.com/ClickHouse/ClickHouse/pull/46730) ([Nikolay Degterinsky](https://github.com/evillique)).
* Marquer comme suspecte la compression `Gorilla` sur les columns de type non-Float\*. [#45376](https://github.com/ClickHouse/ClickHouse/pull/45376) ([Robert Schulze](https://github.com/rschu1ze)).
* Afficher le nom de la replica qui exécute une fusion dans la column `postpone_reason`. [#45458](https://github.com/ClickHouse/ClickHouse/pull/45458) ([Frank Chen](https://github.com/FrankChen021)).
* Enregistrer la stack trace de l’exception dans part\_log. [#45459](https://github.com/ClickHouse/ClickHouse/pull/45459) ([Frank Chen](https://github.com/FrankChen021)).
* Le Dictionary `regexp_tree` a été peaufiné et est désormais compatible avec [https://github.com/ua-parser/uap-core](https://github.com/ua-parser/uap-core). [#45631](https://github.com/ClickHouse/ClickHouse/pull/45631) ([Han Fei](https://github.com/hanfei1991)).
* Mise à jour de la vérification de `SYSTEM SYNC REPLICA`, ce qui résout [#45508](https://github.com/ClickHouse/ClickHouse/issues/45508) [#45648](https://github.com/ClickHouse/ClickHouse/pull/45648) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Renommer le setting `replication_alter_partitions_sync` en `alter_sync`. [#45659](https://github.com/ClickHouse/ClickHouse/pull/45659) ([Antonio Andelic](https://github.com/antonio2368)).
* La table function `generateRandom` et l’engine prennent désormais en charge les data types `LowCardinality`. C’est utile pour les tests ; par exemple, vous pouvez écrire `INSERT INTO table SELECT * FROM generateRandom() LIMIT 1000`. Cela est nécessaire pour le Débogage de [#45590](https://github.com/ClickHouse/ClickHouse/issues/45590). [#45661](https://github.com/ClickHouse/ClickHouse/pull/45661) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le cache expérimental de résultats de requêtes propose désormais des paramètres de configuration plus modulaires. [#45679](https://github.com/ClickHouse/ClickHouse/pull/45679) ([Robert Schulze](https://github.com/rschu1ze)).
* "query result cache" a été renommé en "query cache". [#45682](https://github.com/ClickHouse/ClickHouse/pull/45682) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la commande `SYSTEM SYNC FILE CACHE`. Elle exécute l'appel système `sync`. [#8921](https://github.com/ClickHouse/ClickHouse/issues/8921). [#45685](https://github.com/ClickHouse/ClickHouse/pull/45685) ([DR](https://github.com/freedomDR)).
* Ajout d'un nouveau paramètre S3 `allow_head_object_request`. Cette PR rend optionnelle (et désactivée par défaut) l'utilisation de la requête `GetObjectAttributes` au lieu de `HeadObject`, introduite dans [https://github.com/ClickHouse/ClickHouse/pull/45288](https://github.com/ClickHouse/ClickHouse/pull/45288). [#45701](https://github.com/ClickHouse/ClickHouse/pull/45701) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de la possibilité de remplacer les paramètres de connexion en fonction du nom de la connexion (autrement dit, il n'est plus nécessaire de stocker un mot de passe pour chaque connexion : vous pouvez tout mettre dans `~/.clickhouse-client/config.xml` et même utiliser des fichiers d'historique distincts pour chacune, ce qui peut également être utile). [#45715](https://github.com/ClickHouse/ClickHouse/pull/45715) ([Azat Khuzhin](https://github.com/azat)).
* Format Arrow : prise en charge du type duration. Ferme [#45669](https://github.com/ClickHouse/ClickHouse/issues/45669). [#45750](https://github.com/ClickHouse/ClickHouse/pull/45750) ([flynn](https://github.com/ucasfl)).
* Extension de la journalisation dans le cache de requêtes afin de faciliter l'analyse du comportement de la mise en cache. [#45751](https://github.com/ClickHouse/ClickHouse/pull/45751) ([Robert Schulze](https://github.com/rschu1ze)).
* Les paramètres du cache de requêtes au niveau du serveur peuvent désormais être reconfigurés à l'exécution. [#45758](https://github.com/ClickHouse/ClickHouse/pull/45758) ([Robert Schulze](https://github.com/rschu1ze)).
* Masquage du mot de passe dans les logs lorsque les arguments d'une fonction de table sont spécifiés via une named collection. [#45774](https://github.com/ClickHouse/ClickHouse/pull/45774) ([Vitaly Baranov](https://github.com/vitlibar)).
* Amélioration du client S3 interne pour déduire correctement les régions et les redirections selon les différents types d'URL. [#45783](https://github.com/ClickHouse/ClickHouse/pull/45783) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la prise en charge des types Map, IPv4 et IPv6 dans generateRandom. Principalement utile pour les tests. [#45785](https://github.com/ClickHouse/ClickHouse/pull/45785) ([Raúl Marín](https://github.com/Algunenano)).
* Prise en charge de empty/notEmpty pour les types IP. [#45799](https://github.com/ClickHouse/ClickHouse/pull/45799) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* La colonne `num_processed_files` a été scindée en deux colonnes : `num_files` (pour BACKUP) et `files_read` (pour RESTORE). La colonne `processed_files_size` a été scindée en deux colonnes : `total_size` (pour BACKUP) et `bytes_read` (pour RESTORE). [#45800](https://github.com/ClickHouse/ClickHouse/pull/45800) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de la prise en charge de la requête `SHOW ENGINES` pour la compatibilité avec MySQL. [#45859](https://github.com/ClickHouse/ClickHouse/pull/45859) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Amélioration de la façon dont l'obfuscateur traite les requêtes. [#45867](https://github.com/ClickHouse/ClickHouse/pull/45867) ([Raúl Marín](https://github.com/Algunenano)).
* Améliore le comportement de la conversion en Date pour la valeur limite 65535 (2149-06-06). [#46042](https://github.com/ClickHouse/ClickHouse/pull/46042) [#45914](https://github.com/ClickHouse/ClickHouse/pull/45914) ([Joanna Hulboj](https://github.com/jh0x)).
* Ajoute le paramètre `check_referential_table_dependencies` pour vérifier les dépendances référentielles lors d'un `DROP TABLE`. Cette PR résout [#38326](https://github.com/ClickHouse/ClickHouse/issues/38326). [#45936](https://github.com/ClickHouse/ClickHouse/pull/45936) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige `tupleElement` pour qu'il renvoie `Null` lorsqu'il reçoit un argument `Null`. Ferme [#45894](https://github.com/ClickHouse/ClickHouse/issues/45894). [#45952](https://github.com/ClickHouse/ClickHouse/pull/45952) ([flynn](https://github.com/ucasfl)).
* Déclenche une erreur lorsqu'aucun fichier ne correspond au wildcard S3. Ferme [#45587](https://github.com/ClickHouse/ClickHouse/issues/45587). [#45957](https://github.com/ClickHouse/ClickHouse/pull/45957) ([chen](https://github.com/xiedeyantu)).
* Utilise les données d'état du cluster pour vérifier les opérations concurrentes de backup/restore. [#45982](https://github.com/ClickHouse/ClickHouse/pull/45982) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Client ClickHouse : utilise une correspondance "exacte" pour la recherche floue, avec une gestion correcte de l'insensibilité à la casse et un algorithme plus adapté à la correspondance des requêtes SQL. [#46000](https://github.com/ClickHouse/ClickHouse/pull/46000) ([Azat Khuzhin](https://github.com/azat)).
* Interdit la syntaxe incorrecte de création de View `CREATE View X TO Y AS SELECT`. Ferme [#4331](https://github.com/ClickHouse/ClickHouse/issues/4331). [#46043](https://github.com/ClickHouse/ClickHouse/pull/46043) ([flynn](https://github.com/ucasfl)).
* La famille de moteurs `Log` prend désormais en charge le paramètre `storage_policy`. Ferme [#43421](https://github.com/ClickHouse/ClickHouse/issues/43421). [#46044](https://github.com/ClickHouse/ClickHouse/pull/46044) ([flynn](https://github.com/ucasfl)).
* Améliore le format `JSONColumns` lorsque le résultat est vide. Ferme [#46024](https://github.com/ClickHouse/ClickHouse/issues/46024). [#46053](https://github.com/ClickHouse/ClickHouse/pull/46053) ([flynn](https://github.com/ucasfl)).
* Ajoute une implémentation de référence pour SipHash128. [#46065](https://github.com/ClickHouse/ClickHouse/pull/46065) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Ajoute une nouvelle métrique pour enregistrer les temps d'allocation et le nombre d'octets via mmap. [#46068](https://github.com/ClickHouse/ClickHouse/pull/46068) ([李扬](https://github.com/taiyang-li)).
* Actuellement, pour des fonctions comme `leftPad`, `rightPad`, `leftPadUTF8`, `rightPadUTF8`, le deuxième argument `length` doit être de type UInt8|16|32|64|128|256. C'est trop restrictif pour les utilisateurs de ClickHouse et, de plus, ce n'est pas cohérent avec d'autres fonctions similaires comme `arrayResize`, `substring`, etc. [#46103](https://github.com/ClickHouse/ClickHouse/pull/46103) ([李扬](https://github.com/taiyang-li)).
* Corrige une assertion dans la fonction `welchTTest` dans une build de Débogage lorsque la statistique résultante est NaN. Uniformise le comportement avec celui d'autres fonctions similaires. Modifie le comportement de `studentTTest` pour renvoyer NaN au lieu de lever une exception, car le comportement précédent n'était pas pratique. Ceci ferme [#41176](https://github.com/ClickHouse/ClickHouse/issues/41176) Ceci ferme [#42162](https://github.com/ClickHouse/ClickHouse/issues/42162). [#46141](https://github.com/ClickHouse/ClickHouse/pull/46141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Utilisation plus pratique des grands entiers et de ORDER BY WITH FILL. Permet d’utiliser des entiers simples pour les points de début et de fin dans WITH FILL avec ORDER BY sur de grands entiers (128 bits et 256 bits). Corrige le résultat erroné pour les grands entiers avec des points de début ou de fin négatifs. Cela résout [#16733](https://github.com/ClickHouse/ClickHouse/issues/16733). [#46152](https://github.com/ClickHouse/ClickHouse/pull/46152) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout des colonnes `parts`, `active_parts` et `total_marks` à `system.tables` dans le cadre du [ticket](https://github.com/ClickHouse/ClickHouse/issues/44336). [#46161](https://github.com/ClickHouse/ClickHouse/pull/46161) ([attack204](https://github.com/attack204)).
* Les fonctions "multi\[Fuzzy]Match(Any|AnyIndex|AllIndices}" rejettent désormais les expressions régulières qui risquent d’être évaluées très lentement dans vectorscan. [#46167](https://github.com/ClickHouse/ClickHouse/pull/46167) ([Robert Schulze](https://github.com/rschu1ze)).
* Lorsque `insert_null_as_default` est activé et que la colonne n’a pas de valeur par défaut définie, la valeur par défaut du type de colonne est utilisée. Cette PR corrige également l’utilisation des valeurs par défaut pour les nulls dans le cas des colonnes LowCardinality. [#46171](https://github.com/ClickHouse/ClickHouse/pull/46171) ([Kruglov Pavel](https://github.com/Avogar)).
* Privilégie les clés d’accès explicitement définies pour les clients S3. Si `use_environment_credentials` est défini sur `true` et que l’utilisateur a fourni la clé d’accès via une requête ou la config, celle-ci sera utilisée à la place de celle provenant de la variable d’environnement. [#46191](https://github.com/ClickHouse/ClickHouse/pull/46191) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout d’un alias "DATE\_FORMAT()" pour la fonction "formatDateTime()" afin d’améliorer la compatibilité avec le dialecte SQL de MySQL, et extension de la fonction `formatDateTime` avec les substitutions "a", "b", "c", "h", "i", "k", "l" "r", "s", "W". ### Entrée de documentation pour les changements visibles par l’utilisateur Description courte lisible par l’utilisateur : `DATE_FORMAT` est un alias de `formatDateTime`. Formate une valeur Time selon la format string donnée. Format est une expression constante ; vous ne pouvez donc pas avoir plusieurs formats pour une seule colonne de résultat. (Fournir un lien vers [formatDateTime](/fr/reference/functions/regular-functions/date-time-functions#formatDateTime)). [#46302](https://github.com/ClickHouse/ClickHouse/pull/46302) ([Jake Bamrah](https://github.com/JakeBamrah)).
* Ajout de `ProfileEvents` et `CurrentMetrics` concernant les tâches de rappel pour les répliques parallèles (tables `s3Cluster` et `MergeTree`). [#46313](https://github.com/ClickHouse/ClickHouse/pull/46313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la prise en charge de `DELETE` et `UPDATE` pour les tables utilisant le moteur de stockage `KeeperMap`. [#46330](https://github.com/ClickHouse/ClickHouse/pull/46330) ([Antonio Andelic](https://github.com/antonio2368)).
* Autorise l’écriture de requêtes RENAME avec des paramètres de requête. Résout [#45778](https://github.com/ClickHouse/ClickHouse/issues/45778). [#46407](https://github.com/ClickHouse/ClickHouse/pull/46407) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige les requêtes SELECT paramétrées avec le transformateur REPLACE. Résout [#33002](https://github.com/ClickHouse/ClickHouse/issues/33002). [#46420](https://github.com/ClickHouse/ClickHouse/pull/46420) ([Nikolay Degterinsky](https://github.com/evillique)).
* Exclut du calcul de la métrique asynchrone "NumberOfDatabases" la base de données interne utilisée pour les tables temporaires/externes. Cela rend le comportement cohérent avec la table système "system.databases". [#46435](https://github.com/ClickHouse/ClickHouse/pull/46435) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la colonne `last_exception_time` à la table distribution\_queue. [#46564](https://github.com/ClickHouse/ClickHouse/pull/46564) ([Aleksandr](https://github.com/AVMusorin)).
* Prise en charge de la clause IN avec un paramètre dans les vues paramétrées. [#46583](https://github.com/ClickHouse/ClickHouse/pull/46583) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Les collections nommées ne sont plus chargées au démarrage du serveur (elles le sont désormais lors du premier accès). [#46607](https://github.com/ClickHouse/ClickHouse/pull/46607) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="buildtestingpackaging-improvement-10">
  #### Amélioration du build/des tests/du packaging
</div>

* Introduction de GWP-ASan, implémenté par le runtime LLVM. Cela clôt [#27039](https://github.com/ClickHouse/ClickHouse/issues/27039). [#45226](https://github.com/ClickHouse/ClickHouse/pull/45226) ([Han Fei](https://github.com/hanfei1991)).
* Nous voulons rendre nos tests moins stables et plus sujets à des échecs intermittents : ajout d'une randomisation des paramètres de MergeTree dans les tests. [#38983](https://github.com/ClickHouse/ClickHouse/pull/38983) ([Anton Popov](https://github.com/CurtizJ)).
* Activation de la prise en charge de HDFS sur PowerPC, ce qui permet de corriger les tests fonctionnels suivants : 02113\_hdfs\_assert.sh, 02244\_hdfs\_cluster.sql et 02368\_cancel\_write\_into\_hdfs.sh. [#44949](https://github.com/ClickHouse/ClickHouse/pull/44949) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Ajout du fichier systemd.service pour clickhouse-keeper. Corrige [#44293](https://github.com/ClickHouse/ClickHouse/issues/44293). [#45568](https://github.com/ClickHouse/ClickHouse/pull/45568) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Le fork de poco de ClickHouse a été déplacé de "contrib/" vers "base/poco/". [#46075](https://github.com/ClickHouse/ClickHouse/pull/46075) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout d'une option à `clickhouse-watchdog` pour redémarrer le processus enfant. Cela n'a pas beaucoup d'utilité. [#46312](https://github.com/ClickHouse/ClickHouse/pull/46312) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Si la variable d'environnement `CLICKHOUSE_DOCKER_RESTART_ON_EXIT` est définie sur 1, le conteneur Docker exécutera `clickhouse-server` comme processus enfant au lieu du processus principal, et le redémarrera lorsqu'il s'arrêtera. [#46391](https://github.com/ClickHouse/ClickHouse/pull/46391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du fichier de service systemd. [#46461](https://github.com/ClickHouse/ClickHouse/pull/46461) ([SuperDJY](https://github.com/cmsxbc)).
* La version minimale de Clang requise pour compiler ClickHouse passe de 12 à 15. [#46710](https://github.com/ClickHouse/ClickHouse/pull/46710) ([Robert Schulze](https://github.com/rschu1ze)).
* Mise à niveau d'Intel QPL de v0.3.0 vers v1.0.0 2. Compilation de libaccel-config et liaison statique à la bibliothèque QPL au lieu d'une liaison dynamique. [#45809](https://github.com/ClickHouse/ClickHouse/pull/45809) ([jasperzhu](https://github.com/jinjunzh)).

<div id="bug-fix-user-visible-misbehavior-in-official-stable-release">
  #### Correction de bug (dysfonctionnement perceptible par l’utilisateur dans la version stable officielle)
</div>

* Purge les données exactement selon `rabbitmq_flush_interval_ms` ou `rabbitmq_max_block_size` dans `StorageRabbitMQ`. Ferme [#42389](https://github.com/ClickHouse/ClickHouse/issues/42389). Ferme [#45160](https://github.com/ClickHouse/ClickHouse/issues/45160). [#44404](https://github.com/ClickHouse/ClickHouse/pull/44404) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Utilise PODArray pour le rendu dans la fonction sparkBar, afin de pouvoir contrôler l’utilisation de la mémoire. Ferme [#44467](https://github.com/ClickHouse/ClickHouse/issues/44467). [#44489](https://github.com/ClickHouse/ClickHouse/pull/44489) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige le renvoi d’un élément de tableau non trié par les fonctions (quantilesExactExclusive, quantilesExactInclusive). [#45379](https://github.com/ClickHouse/ClickHouse/pull/45379) ([wujunfu](https://github.com/wujunfu)).
* Corrige une exception non interceptée dans HTTPHandler lorsque OpenTelemetry est activé. [#45456](https://github.com/ClickHouse/ClickHouse/pull/45456) ([Frank Chen](https://github.com/FrankChen021)).
* N’infère pas de dates à partir de nombres à 8 chiffres. Cela pouvait entraîner la lecture de données erronées. [#45581](https://github.com/ClickHouse/ClickHouse/pull/45581) ([Kruglov Pavel](https://github.com/Avogar)).
* Correctifs pour utiliser correctement le paramètre `odbc_bridge_use_connection_pooling`. [#45591](https://github.com/ClickHouse/ClickHouse/pull/45591) ([Bharat Nallan](https://github.com/bharatnc)).
* Lorsque le callback dans le cache est appelé, il est possible que ce cache ait déjà été détruit. Pour garantir la sécurité, nous capturons les membres par valeur. Cela est également sûr pour la planification des tâches, car elle sera désactivée avant la destruction du stockage. Résout [#45548](https://github.com/ClickHouse/ClickHouse/issues/45548). [#45601](https://github.com/ClickHouse/ClickHouse/pull/45601) ([Han Fei](https://github.com/hanfei1991)).
* Corrige une corruption des données lorsque les codecs Delta ou DoubleDelta sont combinés avec le codec Gorilla. [#45615](https://github.com/ClickHouse/ClickHouse/pull/45615) ([Robert Schulze](https://github.com/rschu1ze)).
* Vérifie correctement les types lors de l’utilisation d’un index N-gram Bloom filter afin d’éviter des lectures invalides. [#45617](https://github.com/ClickHouse/ClickHouse/pull/45617) ([Antonio Andelic](https://github.com/antonio2368)).
* Quelques segfaults ont été signalés autour de `c-ares`. Ils avaient été introduits dans mes précédentes pull requests. Je les ai corrigés avec l’aide d’Alexander Tokmakov. [#45629](https://github.com/ClickHouse/ClickHouse/pull/45629) ([Arthur Passos](https://github.com/arthurpassos)).
* Corrige la description de clé en cas de clés primaires dupliquées. Cela peut se produire dans les projections. Voir [#45590](https://github.com/ClickHouse/ClickHouse/issues/45590) pour plus de détails. [#45686](https://github.com/ClickHouse/ClickHouse/pull/45686) ([Amos Bird](https://github.com/amosbird)).
* Définit la méthode et le niveau de compression pour les sauvegardes. Ferme [#45690](https://github.com/ClickHouse/ClickHouse/issues/45690). [#45737](https://github.com/ClickHouse/ClickHouse/pull/45737) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Il faut utiliser `select_query_typed.limitByOffset` au lieu de `select_query_typed.limitOffset`. [#45817](https://github.com/ClickHouse/ClickHouse/pull/45817) ([刘陶峰](https://github.com/taofengliu)).
* Lors de l’utilisation de l’analyseur expérimental, des requêtes comme `SELECT number FROM numbers(100) LIMIT 10 OFFSET 10;` donnent des résultats erronés (résultat vide pour cette requête SQL). Cela est dû à une étape d’OFFSET inutile ajoutée par le planificateur. [#45822](https://github.com/ClickHouse/ClickHouse/pull/45822) ([刘陶峰](https://github.com/taofengliu)).
* Rétrocompatibilité : autorisation d’une conversion implicite par réduction de UInt64 vers IPv4, requise pour l’expression "INSERT ... VALUES ...". [#45865](https://github.com/ClickHouse/ClickHouse/pull/45865) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction du parseur IPv6 pour les adresses IPv4 mixtes dont le premier octet est omis (comme `::.1.2.3`). [#45871](https://github.com/ClickHouse/ClickHouse/pull/45871) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout de la colonne `query_kind` à la table `system.processes` et à la requête `SHOW PROCESSLIST`. Suppression du code dupliqué. Cela corrige un bug : le paramètre de configuration global `max_concurrent_select_queries` n’était pas respecté pour les requêtes avec des chaînes `INTERSECT` ou `EXCEPT`. [#45872](https://github.com/ClickHouse/ClickHouse/pull/45872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d’un plantage dans la fonction `stochasticLinearRegression`. Signalé par WingFuzz. [#45985](https://github.com/ClickHouse/ClickHouse/pull/45985) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un plantage dans les requêtes `SELECT` avec les modificateurs `INTERSECT` et `EXCEPT` qui lisent des données depuis des tables avec des colonnes sparse activées (contrôlées par le paramètre `ratio_of_defaults_for_sparse_serialization`). [#45987](https://github.com/ClickHouse/ClickHouse/pull/45987) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’optimisation de lecture dans l’ordre pour le tri DESC avec FINAL, corrige [#45815](https://github.com/ClickHouse/ClickHouse/issues/45815). [#46009](https://github.com/ClickHouse/ClickHouse/pull/46009) ([Vladimir C](https://github.com/vdimir)).
* Correction de la lecture de colonnes imbriquées inexistantes sur plusieurs niveaux dans des compact parts. [#46045](https://github.com/ClickHouse/ClickHouse/pull/46045) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la colonne `elapsed` dans `system.processes` (erreur d’un facteur 10). [#46047](https://github.com/ClickHouse/ClickHouse/pull/46047) ([Azat Khuzhin](https://github.com/azat)).
* Correctif complémentaire pour le remplacement des types de domaine IP (IPv4, IPv6) par des types natifs [https://github.com/ClickHouse/ClickHouse/pull/43221](https://github.com/ClickHouse/ClickHouse/pull/43221). [#46087](https://github.com/ClickHouse/ClickHouse/pull/46087) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de la substitution de variables d’environnement dans la configuration lorsqu’un paramètre a déjà une valeur. Cela corrige [#46131](https://github.com/ClickHouse/ClickHouse/issues/46131). Cela corrige [#9547](https://github.com/ClickHouse/ClickHouse/issues/9547). [#46144](https://github.com/ClickHouse/ClickHouse/pull/46144) ([pufit](https://github.com/pufit)).
* Correction d’un push down de prédicat incorrect avec des grouping sets. Corrige [#45947](https://github.com/ClickHouse/ClickHouse/issues/45947). [#46151](https://github.com/ClickHouse/ClickHouse/pull/46151) ([flynn](https://github.com/ucasfl)).
* Correction d’un possible blocage du pipeline sur `fulls_sorting_join` avec des clés constantes. [#46175](https://github.com/ClickHouse/ClickHouse/pull/46175) ([Vladimir C](https://github.com/vdimir)).
* Ne jamais réécrire les fonctions tuple en littéraux pendant le formatage afin d’éviter des résultats incorrects. [#46232](https://github.com/ClickHouse/ClickHouse/pull/46232) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Correction d’une possible erreur de dépassement de limites lors de la lecture de LowCardinality(Nullable) au format Arrow. [#46270](https://github.com/ClickHouse/ClickHouse/pull/46270) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction des requêtes `SYSTEM UNFREEZE` qui échouaient avec l’exception `CANNOT_PARSE_INPUT_ASSERTION_FAILED`. [#46325](https://github.com/ClickHouse/ClickHouse/pull/46325) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrige un plantage possible causé par un dépassement de capacité d’entier lors de la désérialisation de l’état d’agrégation d’une fonction qui stocke une HashTable. [#46349](https://github.com/ClickHouse/ClickHouse/pull/46349) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un `LOGICAL_ERROR` possible dans les insertions asynchrones lorsque des données invalides sont envoyées au format `VALUES`. [#46350](https://github.com/ClickHouse/ClickHouse/pull/46350) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un LOGICAL\_ERROR lors d’une tentative d’exécution de `ALTER ... MOVE PART ... TO TABLE`. Ce type de requête n’a en réalité jamais été pris en charge. [#46359](https://github.com/ClickHouse/ClickHouse/pull/46359) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige l’inférence de schéma de s3Cluster pour un insert select distribué exécuté en parallèle lorsque `parallel_distributed_insert_select` est activé. [#46381](https://github.com/ClickHouse/ClickHouse/pull/46381) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige les requêtes comme `ALTER TABLE ... UPDATE nested.arr1 = nested.arr2 ...`, où `arr1` et `arr2` sont des champs de la même colonne `Nested`. [#46387](https://github.com/ClickHouse/ClickHouse/pull/46387) ([Anton Popov](https://github.com/CurtizJ)).
* Le scheduler peut ne pas parvenir à planifier une tâche. Si cela se produit, l’ensemble du MulityPartUpload doit être abandonné et `UploadHelper` doit attendre les tâches déjà planifiées. [#46451](https://github.com/ClickHouse/ClickHouse/pull/46451) ([Dmitry Novik](https://github.com/novikd)).
* Corrige `PREWHERE` pour Merge avec des types par défaut différents (corrige certains `NOT_FOUND_COLUMN_IN_BLOCK` lorsque le type par défaut de la colonne diffère, autorise aussi `PREWHERE` lorsque le type de la colonne est identique dans toutes les tables, et l’interdit uniquement s’il diffère). [#46454](https://github.com/ClickHouse/ClickHouse/pull/46454) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un plantage pouvant survenir lorsque des valeurs constantes sont utilisées dans `ORDER BY`. Corrige [#46466](https://github.com/ClickHouse/ClickHouse/issues/46466). [#46493](https://github.com/ClickHouse/ClickHouse/pull/46493) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ne pas lever d’exception si le paramètre `disk` est spécifié au niveau de la requête, mais que `storage_policy` est défini dans la section de config des paramètres merge tree. `disk` remplacera le paramètre défini dans la config. [#46533](https://github.com/ClickHouse/ClickHouse/pull/46533) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige le traitement incorrect d’un argument constant `LowCardinality` dans la fonction `arrayMap`. Ce bug pouvait entraîner un segfault en release, ainsi qu’une erreur logique `Bad cast` dans une build de débogage. [#46569](https://github.com/ClickHouse/ClickHouse/pull/46569) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* corrige [#46557](https://github.com/ClickHouse/ClickHouse/issues/46557). [#46611](https://github.com/ClickHouse/ClickHouse/pull/46611) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige les redémarrages en boucle de l’unité systemd clickhouse-server si le server ne peut pas démarrer en 1 min 30 s (désactivation de la logique de timeout pour le démarrage de clickhouse-server depuis le service systemd). [#46613](https://github.com/ClickHouse/ClickHouse/pull/46613) ([Azat Khuzhin](https://github.com/azat)).
* Les buffers mémoire alloués pendant les insertions asynchrones étaient désalloués dans le contexte global et les compteurs MemoryTracker pour l’utilisateur et la requête correspondants n’étaient pas correctement mis à jour. Cela entraînait de faux positifs d’exceptions OOM. [#46622](https://github.com/ClickHouse/ClickHouse/pull/46622) ([Dmitry Novik](https://github.com/novikd)).
* Mise à jour pour ne plus effacer on\_expression de table\_join, car elle est utilisée par de futures exécutions d’analyse ; résout [#45185](https://github.com/ClickHouse/ClickHouse/issues/45185). [#46487](https://github.com/ClickHouse/ClickHouse/pull/46487) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).

### <a id="231" /> Version 23.1 de ClickHouse, 2023-01-26. [Présentation](https://presentations.clickhouse.com/2023-release-23.1/), [Vidéo](https://www.youtube.com/watch?v=zYSZXBnTMSE)

<Frame>
  <iframe src="https://www.youtube.com/embed/zYSZXBnTMSE" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="clickhouse-release-231">
  ### Version 23.1 de ClickHouse
</div>

<div id="upgrade-notes">
  #### Notes de mise à niveau
</div>

* La requête `SYSTEM RESTART DISK` devient sans effet. [#44647](https://github.com/ClickHouse/ClickHouse/pull/44647) ([alesapin](https://github.com/alesapin)).
* L’option `PREALLOCATE` pour les dictionnaires `HASHED`/`SPARSE_HASHED` devient sans effet. [#45388](https://github.com/ClickHouse/ClickHouse/pull/45388) ([Azat Khuzhin](https://github.com/azat)). Elle n’apporte plus d’avantage significatif.
* Interdire le codec `Gorilla` sur les colonnes dont le type n’est ni `Float32` ni `Float64`. [#45252](https://github.com/ClickHouse/ClickHouse/pull/45252) ([Robert Schulze](https://github.com/rschu1ze)). Cela n’avait aucun intérêt et entraînait des incohérences.
* Les quorum inserts parallèles peuvent fonctionner incorrectement avec les tables `*MergeTree` créées avec la syntaxe obsolète. Par conséquent, la prise en charge des quorum inserts parallèles est entièrement désactivée pour ces tables. Cela n’affecte pas les tables créées avec la nouvelle syntaxe. [#45430](https://github.com/ClickHouse/ClickHouse/pull/45430) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Utiliser la requête `GetObjectAttributes` au lieu de la requête `HeadObject` pour obtenir la taille d’un objet dans AWS S3. Cette modification corrige, par exemple, la gestion des endpoints sans région explicite après la mise à jour du SDK AWS. [#45288](https://github.com/ClickHouse/ClickHouse/pull/45288) ([Vitaly Baranov](https://github.com/vitlibar)). AWS S3 et Minio sont testés, mais gardez à l’esprit que divers services S3-compatible (GCS, R2, B2) peuvent présenter de subtiles incompatibilités. Cette modification peut également vous obliger à ajuster l’ACL pour autoriser la requête `GetObjectAttributes`.
* Interdire les chemins dans les noms de fuseau horaire. Par exemple, un nom de fuseau horaire comme `/usr/share/zoneinfo/Asia/Aden` n’est pas autorisé ; il faut utiliser le nom de la base de données des fuseaux horaires IANA, comme `Asia/Aden`. [#44225](https://github.com/ClickHouse/ClickHouse/pull/44225) ([Kruglov Pavel](https://github.com/Avogar)).
* Les requêtes combinant un equijoin et des expressions constantes (par ex., `JOIN ON t1.x = t2.x AND 1 = 1`) sont interdites en raison de résultats incorrects. [#44016](https://github.com/ClickHouse/ClickHouse/pull/44016) ([Vladimir C](https://github.com/vdimir)).

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

* Source de dictionnaire permettant d’extraire des clés en parcourant un arbre d’expressions régulières. Peut être utilisée pour l’analyse du user-agent. [#40878](https://github.com/ClickHouse/ClickHouse/pull/40878) ([Vage Ogannisian](https://github.com/nooblose)). [#43858](https://github.com/ClickHouse/ClickHouse/pull/43858) ([Han Fei](https://github.com/hanfei1991)).
* Ajout de la prise en charge des vues paramétrées : il est désormais possible de spécifier des paramètres de requête pour le moteur de table View. Résout [#40907](https://github.com/ClickHouse/ClickHouse/issues/40907). [#41687](https://github.com/ClickHouse/ClickHouse/pull/41687) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Ajout des fonctions `quantileInterpolatedWeighted`/`quantilesInterpolatedWeighted`. [#38252](https://github.com/ClickHouse/ClickHouse/pull/38252) ([Bharat Nallan](https://github.com/bharatnc)).
* Prise en charge d’ARRAY JOIN pour le type `Map`, comme la fonction "explode" dans Spark. [#43239](https://github.com/ClickHouse/ClickHouse/pull/43239) ([李扬](https://github.com/taiyang-li)).
* Prise en charge des littéraux SQL standard pour les chaînes binaires et hexadécimales. [#43785](https://github.com/ClickHouse/ClickHouse/pull/43785) ([Mo Xuan](https://github.com/mo-avatar)).
* Permet le formatage de `DateTime` dans le style Joda-Time. Reportez-vous à [la documentation Joda-Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html). [#43818](https://github.com/ClickHouse/ClickHouse/pull/43818) ([李扬](https://github.com/taiyang-li)).
* Ajout d’un Formatter de secondes fractionnaires (`%f`) pour `formatDateTime`. [#44060](https://github.com/ClickHouse/ClickHouse/pull/44060) ([ltrk2](https://github.com/ltrk2)). [#44497](https://github.com/ClickHouse/ClickHouse/pull/44497) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout de la fonction `age` pour calculer la différence entre deux dates ou deux valeurs de date et d’heure, exprimée en nombre d’unités complètes. Corrige [#41115](https://github.com/ClickHouse/ClickHouse/issues/41115). [#44421](https://github.com/ClickHouse/ClickHouse/pull/44421) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de la source `Null` pour les dictionnaires. Corrige [#44240](https://github.com/ClickHouse/ClickHouse/issues/44240). [#44502](https://github.com/ClickHouse/ClickHouse/pull/44502) ([mayamika](https://github.com/mayamika)).
* Permet de configurer la classe de stockage S3 avec l’option de configuration `s3_storage_class`, par exemple `<s3_storage_class>STANDARD/INTELLIGENT_TIERING</s3_storage_class>`. Corrige [#44443](https://github.com/ClickHouse/ClickHouse/issues/44443). [#44707](https://github.com/ClickHouse/ClickHouse/pull/44707) ([chen](https://github.com/xiedeyantu)).
* Insère des valeurs par défaut en cas d’éléments manquants dans un objet JSON lors de l’analyse d’un named tuple. Ajout du paramètre `input_format_json_defaults_for_missing_elements_in_named_tuple`, qui contrôle ce comportement. Corrige [#45142](https://github.com/ClickHouse/ClickHouse/issues/45142)#issuecomment-1380153217. [#45231](https://github.com/ClickHouse/ClickHouse/pull/45231) ([Kruglov Pavel](https://github.com/Avogar)).
* Enregistre le temps de démarrage du serveur dans ProfileEvents (`ServerStartupMilliseconds`). Résout [#43188](https://github.com/ClickHouse/ClickHouse/issues/43188). [#45250](https://github.com/ClickHouse/ClickHouse/pull/45250) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Refactorisation et amélioration des moteurs de streaming Kafka/RabbitMQ/NATS, avec ajout de la prise en charge de tous les formats, ainsi qu’une légère refactorisation des formats : - Correction de la production de messages dans les formats basés sur les lignes avec suffixes/préfixes. Désormais, chaque message est entièrement formaté avec tous les délimiteurs et peut être réanalysé à l’aide du input format. - Prise en charge des formats basés sur des blocs comme Native, Parquet, ORC, etc. Chaque bloc est formaté comme un message distinct. Le nombre de lignes dans un message dépend de la taille du bloc ; vous pouvez donc le contrôler via le paramètre `max_block_size`. - Ajout de nouveaux paramètres de moteur `kafka_max_rows_per_message/rabbitmq_max_rows_per_message/nats_max_rows_per_message`. Ils contrôlent le nombre de lignes formatées dans un message dans les formats basés sur les lignes. Valeur par défaut : 1. - Correction de la forte consommation de mémoire dans le table engine NATS. - Prise en charge de données binaires arbitraires dans le producteur NATS (auparavant, cela ne fonctionnait qu’avec des chaînes contenant \0 à la fin) - Ajout des paramètres de moteur Kafka/RabbitMQ/NATS manquants dans la documentation. - Refactorisation de la production et de la consommation dans Kafka/RabbitMQ/NATS, en les dissociant de la sémantique de WriteBuffers/ReadBuffers. - Refactorisation des output formats : suppression des callbacks sur chaque ligne utilisés dans Kafka/RabbitMQ/NATS (désormais, nous n’y utilisons plus de callbacks), possibilité d’utiliser IRowOutputFormat directement, clarification des délimiteurs de fin de ligne et entre les lignes, possibilité de réinitialiser le format de sortie pour recommencer le formatage - Ajout d’une implémentation correcte dans la fonction formatRow (bonus après la refactorisation des formats). [#42777](https://github.com/ClickHouse/ClickHouse/pull/42777) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge de la lecture/écriture des tables `Nested` sous forme de `List` de `Struct` au format `CapnProto`. Lecture/écriture de `Decimal32/64` comme `Int32/64`. Ferme [#43319](https://github.com/ClickHouse/ClickHouse/issues/43319). [#43379](https://github.com/ClickHouse/ClickHouse/pull/43379) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d’une colonne `message_format_string` à `system.text_log`. La colonne contient un pattern utilisé pour formater le message. [#44543](https://github.com/ClickHouse/ClickHouse/pull/44543) ([Alexander Tokmakov](https://github.com/tavplubix)). Cela permet d’effectuer diverses analyses sur les logs de ClickHouse.
* Essai de détection automatique des headers avec noms de colonnes (et éventuellement types) pour les input formats CSV/TSV/CustomSeparated.
  Ajout des paramètres input\_format\_tsv/csv/custom\_detect\_header qui activent ce comportement (activé par défaut). Ferme [#44640](https://github.com/ClickHouse/ClickHouse/issues/44640). [#44953](https://github.com/ClickHouse/ClickHouse/pull/44953) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Ajout d’un index inversé expérimental en tant que nouveau type d’index secondaire pour une recherche textuelle efficace. [#38667](https://github.com/ClickHouse/ClickHouse/pull/38667) ([larryluogit](https://github.com/larryluogit)).
* Ajout d’un cache des résultats de requête expérimental. [#43797](https://github.com/ClickHouse/ClickHouse/pull/43797) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout d’un sous-système d’ordonnancement extensible et configurable pour les requêtes d’E/S (pas encore intégré au code d’E/S lui-même). [#41840](https://github.com/ClickHouse/ClickHouse/pull/41840) ([Sergei Trifonov](https://github.com/serxa)). Cette fonctionnalité ne fait absolument rien, profitez-en.
* Ajout de `SYSTEM DROP DATABASE REPLICA`, qui supprime les métadonnées d’une réplique morte d’une base de données `Replicated`. Résout [#41794](https://github.com/ClickHouse/ClickHouse/issues/41794). [#42807](https://github.com/ClickHouse/ClickHouse/pull/42807) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* Ne pas charger les parties inactives au démarrage des tables `MergeTree`. [#42181](https://github.com/ClickHouse/ClickHouse/pull/42181) ([Anton Popov](https://github.com/CurtizJ)).
* Latence de lecture améliorée depuis le stockage `S3` et la fonction de table `s3` en présence d’un grand nombre de petits fichiers. Désormais, les paramètres `remote_filesystem_read_method` et `remote_filesystem_read_prefetch` prennent effet lors de la lecture depuis le stockage `S3`. [#43726](https://github.com/ClickHouse/ClickHouse/pull/43726) ([Anton Popov](https://github.com/CurtizJ)).
* Optimisation de la lecture des champs de struct dans les fichiers Parquet/ORC. Seuls les champs nécessaires sont chargés. [#44484](https://github.com/ClickHouse/ClickHouse/pull/44484) ([lgbo](https://github.com/lgbo-ustc)).
* L’algorithme d’agrégation à deux niveaux avait été désactivé par erreur pour les requêtes via l’interface HTTP. Il a été réactivé, ce qui entraîne une nette amélioration des performances. [#45450](https://github.com/ClickHouse/ClickHouse/pull/45450) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout de la prise en charge de mmap pour StorageFile, ce qui devrait améliorer les performances de clickhouse-local. [#43927](https://github.com/ClickHouse/ClickHouse/pull/43927) ([pufit](https://github.com/pufit)).
* Ajout de la prise en charge du sharding dans HashedDictionary pour permettre un chargement parallèle (mise à l’échelle presque linéaire selon le nombre de shards). [#40003](https://github.com/ClickHouse/ClickHouse/pull/40003) ([Azat Khuzhin](https://github.com/azat)).
* Accélération de l’analyse des requêtes. [#42284](https://github.com/ClickHouse/ClickHouse/pull/42284) ([Raúl Marín](https://github.com/Algunenano)).
* Remplacement systématique de la chaîne OR `expr = x1 OR ... OR expr = xN` par `expr IN (x1, ..., xN)` lorsque `expr` est une colonne `LowCardinality`. Le paramètre `optimize_min_equality_disjunction_chain_length` est ignoré dans ce cas. [#42889](https://github.com/ClickHouse/ClickHouse/pull/42889) ([Guo Wangyang](https://github.com/guowangy)).
* Légère amélioration des performances grâce à l’optimisation du code autour de ThreadStatus. [#43586](https://github.com/ClickHouse/ClickHouse/pull/43586) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Optimisation de l’évaluation de la logique ternaire par colonne grâce à l’auto-vectorisation. Lors du test de performance de ce [microbenchmark](https://github.com/ZhiguoZh/ClickHouse/blob/20221123-ternary-logic-opt-example/src/Functions/examples/associative_applier_perf.cpp), nous avons observé un **gain de performance** maximal de **21x** sur la plateforme ICX (CPU Intel Xeon Platinum 8380). [#43669](https://github.com/ClickHouse/ClickHouse/pull/43669) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Éviter si possible d’acquérir des verrous de lecture dans la table `system.tables`. [#43840](https://github.com/ClickHouse/ClickHouse/pull/43840) ([Raúl Marín](https://github.com/Algunenano)).
* Optimisation de ThreadPool. Les tests de performance de SSB (Star Schema Benchmark) sur la plateforme ICX (CPU Intel Xeon Platinum 8380, 80 cœurs, 160 threads) montrent que ce changement pourrait réduire efficacement de **75 %** la contention sur le verrou ThreadPoolImpl::mutex, augmenter l’utilisation du CPU et améliorer les performances globales de **2,4 %**. [#44308](https://github.com/ClickHouse/ClickHouse/pull/44308) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Désormais, l’optimisation de la prédiction de la taille de la table de hachage n’est appliquée que si la taille de la table de hachage en cache est suffisamment grande (les seuils ont été déterminés empiriquement et codés en dur). [#44455](https://github.com/ClickHouse/ClickHouse/pull/44455) ([Nikita Taranov](https://github.com/nickitat)).
* Légère amélioration des performances pour la lecture asynchrone depuis des systèmes de fichiers distants. [#44868](https://github.com/ClickHouse/ClickHouse/pull/44868) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d'une voie rapide pour : - `col like '%%'`; - `col like '%'`; - `col not like '%'`; - `col not like '%'`; - `match(col, '.*')`. [#45244](https://github.com/ClickHouse/ClickHouse/pull/45244) ([李扬](https://github.com/taiyang-li)).
* Améliore légèrement l'optimisation du cas le plus courant pour le filtrage (clause WHERE). [#45289](https://github.com/ClickHouse/ClickHouse/pull/45289) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout d'informations de monotonie pour `toUnixTimestamp64*` afin de permettre davantage d'optimisations algébriques pour l'analyse des index. [#44116](https://github.com/ClickHouse/ClickHouse/pull/44116) ([Nikita Taranov](https://github.com/nickitat)).
* Autorise la configuration des données temporaires pour le traitement des requêtes (spilling to disk) à fonctionner avec le cache du système de fichiers (en utilisant l'espace du disque de cache) [#43972](https://github.com/ClickHouse/ClickHouse/pull/43972) ([Vladimir C](https://github.com/vdimir)). Cela améliore principalement [ClickHouse Cloud](https://console.clickhouse.cloud/), mais peut aussi être utilisé pour des déploiements autogérés, si vous savez ce que vous faites.
* La table `system.replicas` effectue désormais en parallèle la récupération du statut des répliques. Résout [#43918](https://github.com/ClickHouse/ClickHouse/issues/43918). [#43998](https://github.com/ClickHouse/ClickHouse/pull/43998) ([Nikolay Degterinsky](https://github.com/evillique)).
* Optimise la consommation mémoire lors des sauvegardes vers S3 : les fichiers destinés à S3 sont désormais copiés directement sans utiliser `WriteBufferFromS3` (qui pouvait consommer beaucoup de mémoire). [#45188](https://github.com/ClickHouse/ClickHouse/pull/45188) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout d'un cache pour les identifiants de block asynchrones. Cela réduira le nombre de requêtes vers ZooKeeper lorsque nous activerons la déduplication des async inserts. [#45106](https://github.com/ClickHouse/ClickHouse/pull/45106) ([Han Fei](https://github.com/hanfei1991)).

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

* Utiliser la structure de la table d’insertion dans generateRandom sans argument. [#45239](https://github.com/ClickHouse/ClickHouse/pull/45239) ([Kruglov Pavel](https://github.com/Avogar)).
* Autoriser la conversion implicite en entiers des nombres à virgule flottante stockés dans les champs de chaîne de JSON dans les fonctions `JSONExtract`. Par ex. `JSONExtract('{"a": "1000.111"}', 'a', 'UInt64')` -> `1000`, alors qu’auparavant cela renvoyait 0. [#45432](https://github.com/ClickHouse/ClickHouse/pull/45432) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout des champs `supports_parallel_parsing` et `supports_parallel_formatting` à la table `system.formats` pour améliorer l’introspection. [#45499](https://github.com/ClickHouse/ClickHouse/pull/45499) ([Anton Popov](https://github.com/CurtizJ)).
* Améliorer la lecture des champs CSV au format CustomSeparated/Template. Closes [#42352](https://github.com/ClickHouse/ClickHouse/issues/42352) Closes [#39620](https://github.com/ClickHouse/ClickHouse/issues/39620). [#43332](https://github.com/ClickHouse/ClickHouse/pull/43332) ([Kruglov Pavel](https://github.com/Avogar)).
* Uniformiser la mesure du temps écoulé des requêtes. [#43455](https://github.com/ClickHouse/ClickHouse/pull/43455) ([Raúl Marín](https://github.com/Algunenano)).
* Améliorer l’utilisation automatique de la structure de la table d’insertion dans les fonctions de table file/hdfs/s3 lorsque des colonnes virtuelles sont présentes dans une requête SELECT, ce qui corrige les erreurs possibles `Block structure mismatch` ou `number of columns mismatch`. [#43695](https://github.com/ClickHouse/ClickHouse/pull/43695) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajouter la prise en charge des arguments signés dans la fonction `range`. Fixes [#43333](https://github.com/ClickHouse/ClickHouse/issues/43333). [#43733](https://github.com/ClickHouse/ClickHouse/pull/43733) ([sanyu](https://github.com/wineternity)).
* Supprimer les tris redondants, par exemple les tris liés aux clauses ORDER BY dans les sous-requêtes. Implémenté à partir du plan de requête. Cela réalise une optimisation similaire à `optimize_duplicate_order_by_and_distinct` concernant les clauses `ORDER BY`, mais de façon plus générique, car elle s’applique à toutes les étapes de tri redondantes (et pas seulement à celles causées par une clause ORDER BY) ainsi qu’aux sous-requêtes de n’importe quelle profondeur. Lié à [#42648](https://github.com/ClickHouse/ClickHouse/issues/42648). [#43905](https://github.com/ClickHouse/ClickHouse/pull/43905) ([Igor Nikonov](https://github.com/devcrafter)).
* Ajouter la possibilité de désactiver la déduplication des fichiers pour BACKUP (pour les backups sans déduplication, ATTACH peut être utilisé à la place d’un RESTORE complet). Par exemple `BACKUP foo TO S3(...) SETTINGS deduplicate_files=0` (par défaut `deduplicate_files=1`). [#43947](https://github.com/ClickHouse/ClickHouse/pull/43947) ([Azat Khuzhin](https://github.com/azat)).
* Refactoriser et améliorer l’inférence de schéma pour les formats texte. Ajouter le nouveau paramètre `schema_inference_make_columns_nullable`, qui contrôle si les types de résultat sont rendus `Nullable` (activé par défaut). [#44019](https://github.com/ClickHouse/ClickHouse/pull/44019) ([Kruglov Pavel](https://github.com/Avogar)).
* Amélioration de la prise en charge du protocole `PROXYv1`. [#44135](https://github.com/ClickHouse/ClickHouse/pull/44135) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajouter dans la table `system.parts` des informations sur la dernière vérification de part effectuée par les threads de nettoyage. [#44244](https://github.com/ClickHouse/ClickHouse/pull/44244) ([Dmitry Novik](https://github.com/novikd)).
* Désactiver les fonctions de table pour les insertions en mode readonly. [#44290](https://github.com/ClickHouse/ClickHouse/pull/44290) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Ajouter un paramètre `simultaneous_parts_removal_limit` pour limiter le nombre de parts traitées lors d’une itération de CleanupThread. [#44461](https://github.com/ClickHouse/ClickHouse/pull/44461) ([Dmitry Novik](https://github.com/novikd)).
* Ne pas initialiser ReadBufferFromS3 lorsque seules des colonnes virtuelles sont nécessaires dans une requête. Cela peut être utile pour [#44246](https://github.com/ClickHouse/ClickHouse/issues/44246). [#44493](https://github.com/ClickHouse/ClickHouse/pull/44493) ([chen](https://github.com/xiedeyantu)).
* Empêche les suggestions de noms de colonnes en double. Corrige [#44130](https://github.com/ClickHouse/ClickHouse/issues/44130). [#44519](https://github.com/ClickHouse/ClickHouse/pull/44519) ([Joanna Hulboj](https://github.com/jh0x)).
* Autorise la substitution de macro dans l’endpoint de disks. Résout [#40951](https://github.com/ClickHouse/ClickHouse/issues/40951). [#44533](https://github.com/ClickHouse/ClickHouse/pull/44533) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Améliore l’inférence de schéma lorsque `input_format_json_read_object_as_string` est activé. [#44546](https://github.com/ClickHouse/ClickHouse/pull/44546) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute un paramètre au niveau utilisateur, `database_replicated_allow_replicated_engine_arguments`, qui permet d’interdire la création de tables `ReplicatedMergeTree` avec des arguments dans `DatabaseReplicated`. [#44566](https://github.com/ClickHouse/ClickHouse/pull/44566) ([alesapin](https://github.com/alesapin)).
* Empêche les utilisateurs de spécifier par erreur la valeur zéro (invalide) pour `index_granularity`. Corrige [#44536](https://github.com/ClickHouse/ClickHouse/issues/44536). [#44578](https://github.com/ClickHouse/ClickHouse/pull/44578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la possibilité de définir le chemin du fichier keytab du service dans le paramètre `keytab` de la section `kerberos` de config.xml. [#44594](https://github.com/ClickHouse/ClickHouse/pull/44594) ([Roman Vasin](https://github.com/rvasin)).
* Utilise la partie déjà saisie de la requête pour la recherche floue (transmise à la bibliothèque `skim`, écrite en Rust et liée statiquement à ClickHouse). [#44600](https://github.com/ClickHouse/ClickHouse/pull/44600) ([Azat Khuzhin](https://github.com/azat)).
* Active `input_format_json_read_objects_as_strings` par défaut afin de pouvoir lire des objets JSON imbriqués tant que le type JSON Object est expérimental. [#44657](https://github.com/ClickHouse/ClickHouse/pull/44657) ([Kruglov Pavel](https://github.com/Avogar)).
* Amélioration de la déduplication des insertions asynchrones : lorsque des utilisateurs effectuent des insertions asynchrones en double, les doublons sont dédupliqués en mémoire avant d’interroger Keeper. [#44682](https://github.com/ClickHouse/ClickHouse/pull/44682) ([Han Fei](https://github.com/hanfei1991)).
* Le format d’entrée/sortie `Avro` analysera le type bool comme le type bool de ClickHouse. [#44684](https://github.com/ClickHouse/ClickHouse/pull/44684) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge du type Bool dans Arrow/Parquet/ORC. Corrige [#43970](https://github.com/ClickHouse/ClickHouse/issues/43970). [#44698](https://github.com/ClickHouse/ClickHouse/pull/44698) ([Kruglov Pavel](https://github.com/Avogar)).
* N'analyse pas de manière trop gourmande au-delà des guillemets lors de la lecture des UUIDs : cela peut conduire à analyser par erreur des données incorrectes comme si elles étaient valides. [#44686](https://github.com/ClickHouse/ClickHouse/pull/44686) ([Raúl Marín](https://github.com/Algunenano)).
* Infère UInt64 en cas de débordement de Int64 et corrige certaines transformations dans l’inférence de schéma. [#44696](https://github.com/ClickHouse/ClickHouse/pull/44696) ([Kruglov Pavel](https://github.com/Avogar)).
* Auparavant, la résolution des dépendances dans la base de données `Replicated` était effectuée de manière bricolée ; elle est désormais réalisée correctement à l’aide d’un graphe explicite. [#44697](https://github.com/ClickHouse/ClickHouse/pull/44697) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction de `output_format_pretty_row_numbers`, qui ne préserve pas le compteur d’un bloc à l’autre. Clôt [#44815](https://github.com/ClickHouse/ClickHouse/issues/44815). [#44832](https://github.com/ClickHouse/ClickHouse/pull/44832) ([flynn](https://github.com/ucasfl)).
* Ne plus signaler d’erreurs dans `system.errors` lorsque des parts sont fusionnées en concurrence avec le processus de nettoyage en arrière-plan. [#44874](https://github.com/ClickHouse/ClickHouse/pull/44874) ([Raúl Marín](https://github.com/Algunenano)).
* Optimisation et correction des métriques pour INSERT asynchrone sur Distributed. [#44922](https://github.com/ClickHouse/ClickHouse/pull/44922) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de paramètres pour interdire les sauvegardes et restaurations concurrentes, ce qui résout [#43891](https://github.com/ClickHouse/ClickHouse/issues/43891). Implémentation : \* Ajout de paramètres au niveau du server pour interdire les sauvegardes et restaurations concurrentes, lus et définis lors de la création de BackupWorker dans Context. \* Les paramètres sont définis sur true par défaut. \* Avant de démarrer une sauvegarde ou une restauration, ajout d’une vérification pour voir si d’autres sauvegardes/restaurations sont en cours. Pour les requêtes internes, la vérification détermine si elles proviennent du nœud lui-même à l’aide de backup\_uuid. [#45072](https://github.com/ClickHouse/ClickHouse/pull/45072) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Ajout du paramètre de config `<storage_policy>` pour les logs système. [#45320](https://github.com/ClickHouse/ClickHouse/pull/45320) ([Stig Bakken](https://github.com/stigsb)).

<div id="buildtestingpackaging-improvement-10">
  #### Amélioration du build/des tests/du packaging
</div>

* Liaison statique avec la bibliothèque `skim` (écrite en Rust) pour la recherche floue dans l'historique local de clickhouse client. [#44239](https://github.com/ClickHouse/ClickHouse/pull/44239) ([Azat Khuzhin](https://github.com/azat)).
* Nous avons supprimé la prise en charge de la liaison dynamique à cause de Rust. En réalité, Rust n'est qu'un prétexte pour cette suppression, que nous voulions de toute façon effectuer. [#44828](https://github.com/ClickHouse/ClickHouse/pull/44828) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression de la dépendance à l'outil `adduser` dans les paquets, car nous ne l'utilisons pas. Cela corrige [#44934](https://github.com/ClickHouse/ClickHouse/issues/44934). [#45011](https://github.com/ClickHouse/ClickHouse/pull/45011) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La bibliothèque `SQLite` a été mise à jour vers sa dernière version. Elle est utilisée pour les engines d'intégration SQLite de database et de table. Un faux positif dans un rapport TSan a également été corrigé. Cela clôt [#45027](https://github.com/ClickHouse/ClickHouse/issues/45027). [#45031](https://github.com/ClickHouse/ClickHouse/pull/45031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Modifications de CRC-32 pour résoudre le problème de collision WeakHash sur PowerPC. [#45144](https://github.com/ClickHouse/ClickHouse/pull/45144) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Mise à jour des submodules aws-c\* [#43020](https://github.com/ClickHouse/ClickHouse/pull/43020) ([Vitaly Baranov](https://github.com/vitlibar)).
* Fusion automatique des backport PR au vert et des PR approuvées au vert [#41110](https://github.com/ClickHouse/ClickHouse/pull/41110) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Mise en place d'un [site web](https://aretestsgreenyet.com/) pour afficher le statut de la CI de ClickHouse. [Source](https://github.com/ClickHouse/aretestsgreenyet).

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

* Remplace les types de domaine IP (IPv4, IPv6) par native. [#43221](https://github.com/ClickHouse/ClickHouse/pull/43221) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). Cela corrige automatiquement certaines implémentations manquantes dans le code.
* Corrige le processus de sauvegarde si des mutations sont interrompues pendant la sauvegarde. [#45351](https://github.com/ClickHouse/ClickHouse/pull/45351) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige le message d’exception `Invalid number of rows in Chunk`. [#41404](https://github.com/ClickHouse/ClickHouse/issues/41404). [#42126](https://github.com/ClickHouse/ClickHouse/pull/42126) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige l’utilisation possible d’une valeur non initialisée après l’exécution d’expressions après le tri. Clôt [#43386](https://github.com/ClickHouse/ClickHouse/issues/43386) [#43635](https://github.com/ClickHouse/ClickHouse/pull/43635) ([Kruglov Pavel](https://github.com/Avogar)).
* Améliore la gestion de NULL dans les combinators d’agrégation, corrige un possible segfault/erreur logique lors de l’utilisation de l’optimisation peu courante `optimize_rewrite_sum_if_to_count_if`. Clôt [#43758](https://github.com/ClickHouse/ClickHouse/issues/43758). [#43813](https://github.com/ClickHouse/ClickHouse/pull/43813) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige les contraintes de paramètres des requêtes CREATE USER/ROLE. [#43993](https://github.com/ClickHouse/ClickHouse/pull/43993) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige un bug lié à une valeur par défaut non analysable pour la colonne `EPHEMERAL` dans les métadonnées de la table. [#44026](https://github.com/ClickHouse/ClickHouse/pull/44026) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige l’analyse d’une version invalide dans le paramètre de compatibilité. [#44224](https://github.com/ClickHouse/ClickHouse/pull/44224) ([Kruglov Pavel](https://github.com/Avogar)).
* Aligne la soustraction d’un intervalle à partir d’un DateTime sur l’addition. [#44241](https://github.com/ClickHouse/ClickHouse/pull/44241) ([ltrk2](https://github.com/ltrk2)).
* Supprime les limites sur la taille maximale du résultat pour une vue. [#44261](https://github.com/ClickHouse/ClickHouse/pull/44261) ([lizhuoyu5](https://github.com/lzydmxy)).
* Corrige une possible erreur logique dans le cache si `do_not_evict_index_and_mrk_files=1`. Clôt [#42142](https://github.com/ClickHouse/ClickHouse/issues/42142). [#44268](https://github.com/ClickHouse/ClickHouse/pull/44268) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une possible interruption trop précoce de l’écriture dans le cache en écriture directe (la mise en cache pouvait être arrêtée en raison d’une hypothèse erronée alors qu’elle n’aurait pas dû l’être). [#44289](https://github.com/ClickHouse/ClickHouse/pull/44289) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un possible crash dans le cas où la fonction `IN` avec des arguments constants était utilisée comme argument constant avec `LowCardinality`. Corrige [#44221](https://github.com/ClickHouse/ClickHouse/issues/44221). [#44346](https://github.com/ClickHouse/ClickHouse/pull/44346) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige la prise en charge des paramètres complexes (comme les Array) des fonctions d’agrégation paramétriques. Cela clôt [#30975](https://github.com/ClickHouse/ClickHouse/issues/30975). La fonction d’agrégation `sumMapFiltered` était inutilisable dans les requêtes distribuées avant ce changement. [#44358](https://github.com/ClickHouse/ClickHouse/pull/44358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la lecture d’ObjectId dans l’inférence de schéma BSON. [#44382](https://github.com/ClickHouse/ClickHouse/pull/44382) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige une condition de concurrence pouvant entraîner la suppression prématurée de parts temporaires avant la fin de la fusion dans ReplicatedMergeTree. Ce problème pouvait provoquer des erreurs telles que `No such file or directory: xxx`. Corrige [#43983](https://github.com/ClickHouse/ClickHouse/issues/43983). [#44383](https://github.com/ClickHouse/ClickHouse/pull/44383) ([alesapin](https://github.com/alesapin)).
* Certaines requêtes invalides `SYSTEM ... ON CLUSTER` se comportaient de manière inattendue lorsqu’aucun nom de cluster n’était spécifié. Le problème est corrigé : désormais, les requêtes invalides lèvent `SYNTAX_ERROR`, comme prévu. Corrige [#44264](https://github.com/ClickHouse/ClickHouse/issues/44264). [#44387](https://github.com/ClickHouse/ClickHouse/pull/44387) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige la lecture du type Map au format ORC. [#44400](https://github.com/ClickHouse/ClickHouse/pull/44400) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la lecture des colonnes absentes des données d’entrée dans les formats Parquet/ORC. Auparavant, cela pouvait entraîner l’erreur `INCORRECT_NUMBER_OF_COLUMNS`. Ferme [#44333](https://github.com/ClickHouse/ClickHouse/issues/44333). [#44405](https://github.com/ClickHouse/ClickHouse/pull/44405) ([Kruglov Pavel](https://github.com/Avogar)).
* Auparavant, la fonction `bar` utilisait le même caractère '▋' (U+258B "Left five eighths block") pour afficher les barres 5/8 et 6/8. Ce changement corrige ce comportement en utilisant '▊' (U+258A "Left three quarters block") pour afficher la barre 6/8. [#44410](https://github.com/ClickHouse/ClickHouse/pull/44410) ([Alexander Gololobov](https://github.com/davenger)).
* Le fait de placer les paramètres de profil après les contraintes des paramètres de profil dans le fichier de configuration rendait ces contraintes inopérantes. [#44411](https://github.com/ClickHouse/ClickHouse/pull/44411) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige `SYNTAX_ERROR` lors de l’exécution de requêtes `EXPLAIN AST INSERT` avec des données. Ferme [#44207](https://github.com/ClickHouse/ClickHouse/issues/44207). [#44413](https://github.com/ClickHouse/ClickHouse/pull/44413) ([save-my-heart](https://github.com/save-my-heart)).
* Corrige la lecture d’une valeur booléenne avec CRLF au format CSV. Ferme [#44401](https://github.com/ClickHouse/ClickHouse/issues/44401). [#44442](https://github.com/ClickHouse/ClickHouse/pull/44442) ([Kruglov Pavel](https://github.com/Avogar)).
* N’exécute plus and/or/if/multiIf sur un dictionnaire LowCardinality, afin que le type de résultat ne puisse pas être LowCardinality. Cela pouvait entraîner l’erreur `Illegal column ColumnLowCardinality` dans certains cas. Corrige [#43603](https://github.com/ClickHouse/ClickHouse/issues/43603). [#44469](https://github.com/ClickHouse/ClickHouse/pull/44469) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige les mutations avec le paramètre `max_streams_for_merge_tree_reading`. [#44472](https://github.com/ClickHouse/ClickHouse/pull/44472) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un déréférencement potentiel de pointeur nul avec GROUPING SETS dans ASTSelectQuery::formatImpl ([#43049](https://github.com/ClickHouse/ClickHouse/issues/43049)). [#44479](https://github.com/ClickHouse/ClickHouse/pull/44479) ([Robert Schulze](https://github.com/rschu1ze)).
* Valide les types dans les arguments des fonctions de table, les arguments de la fonction CAST et l’inférence de schéma JSONAsObject conformément aux paramètres. [#44501](https://github.com/ClickHouse/ClickHouse/pull/44501) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la fonction IN avec LowCardinality et une colonne const, ferme [#44503](https://github.com/ClickHouse/ClickHouse/issues/44503). [#44506](https://github.com/ClickHouse/ClickHouse/pull/44506) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’un bug dans la normalisation d’une expression `DEFAULT` dans une instruction `CREATE TABLE`. Le second argument de la fonction `in` (ou l’argument droit de l’opérateur `IN`) pouvait être remplacé par le résultat de son évaluation lors de l’exécution de la requête CREATE. Corrige [#44496](https://github.com/ClickHouse/ClickHouse/issues/44496). [#44547](https://github.com/ClickHouse/ClickHouse/pull/44547) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Les projections ne fonctionnent pas en présence de WITH ROLLUP, WITH CUBE et WITH TOTALS. Dans les versions précédentes, une requête produisait une exception au lieu d’ignorer l’utilisation des projections. Cela clôt [#44614](https://github.com/ClickHouse/ClickHouse/issues/44614). Cela clôt [#42772](https://github.com/ClickHouse/ClickHouse/issues/42772). [#44615](https://github.com/ClickHouse/ClickHouse/pull/44615) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les blocs asynchrones n’étaient pas nettoyés, car la fonction `get all blocks sorted by time` ne récupérait pas les blocs asynchrones. [#44651](https://github.com/ClickHouse/ClickHouse/pull/44651) ([Han Fei](https://github.com/hanfei1991)).
* Correction de `LOGICAL_ERROR` `The top step of the right pipeline should be ExpressionStep` pour les JOIN avec sous-requête, UNION et TOTALS. Corrige [#43687](https://github.com/ClickHouse/ClickHouse/issues/43687). [#44673](https://github.com/ClickHouse/ClickHouse/pull/44673) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Évite l’exception `std::out_of_range` dans le moteur de table Executable. [#44681](https://github.com/ClickHouse/ClickHouse/pull/44681) ([Kruglov Pavel](https://github.com/Avogar)).
* Ne pas appliquer `optimize_syntax_fuse_functions` aux quantiles sur l’AST, clôt [#44712](https://github.com/ClickHouse/ClickHouse/issues/44712). [#44713](https://github.com/ClickHouse/ClickHouse/pull/44713) ([Vladimir C](https://github.com/vdimir)).
* Correction d’un bug lié à un type incorrect dans la table Merge et PREWHERE, clôt [#43324](https://github.com/ClickHouse/ClickHouse/issues/43324). [#44716](https://github.com/ClickHouse/ClickHouse/pull/44716) ([Vladimir C](https://github.com/vdimir)).
* Correction d’un plantage possible lors de l’arrêt (pendant la destruction de TraceCollector). Corrige [#44757](https://github.com/ClickHouse/ClickHouse/issues/44757). [#44758](https://github.com/ClickHouse/ClickHouse/pull/44758) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un plantage possible lors du traitement distribué des requêtes. Le plantage pouvait se produire si une requête avec totals ou extremes renvoyait un résultat vide et qu’il y avait des types incompatibles entre les tables Distributed et locales. Corrige [#44738](https://github.com/ClickHouse/ClickHouse/issues/44738). [#44760](https://github.com/ClickHouse/ClickHouse/pull/44760) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de fsync pour les fetches (`min_compressed_bytes_to_fsync_after_fetch`)/petits fichiers (ttl.txt, columns.txt) dans les mutations (`min_rows_to_fsync_after_merge`/`min_compressed_bytes_to_fsync_after_merge`). [#44781](https://github.com/ClickHouse/ClickHouse/pull/44781) ([Azat Khuzhin](https://github.com/azat)).
* Une rare race condition pouvait se produire lors de l’interrogation des tables `system.parts` ou `system.parts_columns` en présence de parts déplacées entre différents disks. Introduit dans [#41145](https://github.com/ClickHouse/ClickHouse/issues/41145). [#44809](https://github.com/ClickHouse/ClickHouse/pull/44809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige l’erreur `Context has expired`, qui pouvait apparaître lorsque l’optimisation des projections était activée. Le problème peut être reproduit avec certaines fonctions, comme `dictHas/dictGet`, qui utilisent le contexte à l’exécution. Corrige [#44844](https://github.com/ClickHouse/ClickHouse/issues/44844). [#44850](https://github.com/ClickHouse/ClickHouse/pull/44850) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correctif pour l’erreur `Cannot read all data`, qui pouvait se produire lors de la lecture du dictionnaire `LowCardinality` depuis un système de fichiers distant. Corrige [#44709](https://github.com/ClickHouse/ClickHouse/issues/44709). [#44875](https://github.com/ClickHouse/ClickHouse/pull/44875) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ignore les cas où les capteurs de surveillance matérielle ne peuvent pas être lus, au lieu d’afficher un message d’exception complet dans les logs. [#44895](https://github.com/ClickHouse/ClickHouse/pull/44895) ([Raúl Marín](https://github.com/Algunenano)).
* Utilise la valeur `max_delay_to_insert` lorsque le temps calculé pour différer INSERT dépasse la valeur du paramètre. Lié à [#44902](https://github.com/ClickHouse/ClickHouse/issues/44902). [#44916](https://github.com/ClickHouse/ClickHouse/pull/44916) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige l’erreur `Different order of columns in UNION subquery` pour les requêtes avec `UNION`. Corrige [#44866](https://github.com/ClickHouse/ClickHouse/issues/44866). [#44920](https://github.com/ClickHouse/ClickHouse/pull/44920) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Le délai pour INSERT peut être calculé de manière incorrecte, ce qui peut conduire à toujours utiliser le paramètre `max_delay_to_insert` comme délai au lieu de la valeur correcte. Utilise une formule simple `max_delay_to_insert * (parts_over_threshold/max_allowed_parts_over_threshold)`, c.-à-d. que le délai augmente proportionnellement au nombre de parts au-dessus du seuil. Clôt [#44902](https://github.com/ClickHouse/ClickHouse/issues/44902). [#44954](https://github.com/ClickHouse/ClickHouse/pull/44954) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige une erreur alter table TTL lorsqu’une wide part possède le masque lightweight delete. [#44959](https://github.com/ClickHouse/ClickHouse/pull/44959) ([Mingliang Pan](https://github.com/liangliangpan)).
* Correctif complémentaire pour le remplacement des types de domaine IP (IPv4, IPv6) par des types natifs [#43221](https://github.com/ClickHouse/ClickHouse/issues/43221). [#45024](https://github.com/ClickHouse/ClickHouse/pull/45024) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correctif complémentaire pour le remplacement des types de domaine IP (IPv4, IPv6) par des types natifs [https://github.com/ClickHouse/ClickHouse/pull/43221](https://github.com/ClickHouse/ClickHouse/pull/43221). [#45043](https://github.com/ClickHouse/ClickHouse/pull/45043) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Un dépassement de tampon était possible dans le parseur. Découvert par le fuzzer. [#45047](https://github.com/ClickHouse/ClickHouse/pull/45047) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige une possible erreur de type cannot-read-all-data dans le moteur de stockage FileLog. Clôt [#45051](https://github.com/ClickHouse/ClickHouse/issues/45051), [#38257](https://github.com/ClickHouse/ClickHouse/issues/38257). [#45057](https://github.com/ClickHouse/ClickHouse/pull/45057) ([Kseniia Sumarokova](https://github.com/kssenii)).
* L’agrégation économe en mémoire (paramètre `distributed_aggregation_memory_efficient`) est désactivée lorsque des grouping sets sont présents dans la requête. [#45058](https://github.com/ClickHouse/ClickHouse/pull/45058) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige le dictionnaire `RANGE_HASHED` afin de compter les colonnes de plage comme faisant partie de la clé primaire lors des mises à jour lorsque `update_field` est spécifié. Clôt [#44588](https://github.com/ClickHouse/ClickHouse/issues/44588). [#45061](https://github.com/ClickHouse/ClickHouse/pull/45061) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige l'erreur `Cannot capture column` pour l'argument capturé `LowCardinality` d'une lambda imbriquée. Corrige [#45028](https://github.com/ClickHouse/ClickHouse/issues/45028). [#45065](https://github.com/ClickHouse/ClickHouse/pull/45065) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un résultat de requête incorrect avec `additional_table_filters` (le filtre supplémentaire n'était pas appliqué) lorsque la projection minmax/count est utilisée. [#45133](https://github.com/ClickHouse/ClickHouse/pull/45133) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un bogue dans la fonction `histogram`, qui acceptait des valeurs négatives. [#45147](https://github.com/ClickHouse/ClickHouse/pull/45147) ([simpleton](https://github.com/rgzntrade)).
* Corrige la nullabilité incorrecte des colonnes dans StoreageJoin, clôt [#44940](https://github.com/ClickHouse/ClickHouse/issues/44940). [#45184](https://github.com/ClickHouse/ClickHouse/pull/45184) ([Vladimir C](https://github.com/vdimir)).
* Corrige le rechargement du paramètre `background_fetches_pool_size` (augmentation à l'exécution). [#45189](https://github.com/ClickHouse/ClickHouse/pull/45189) ([Raúl Marín](https://github.com/Algunenano)).
* Traite correctement les requêtes `SELECT` sur les moteurs KV (p. ex. KeeperMap, EmbeddedRocksDB) utilisant `IN` sur la clé avec une sous-requête produisant un type différent. [#45215](https://github.com/ClickHouse/ClickHouse/pull/45215) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une erreur logique dans SEMI JOIN & join\_use\_nulls dans certains cas, clôt [#45163](https://github.com/ClickHouse/ClickHouse/issues/45163), clôt [#45209](https://github.com/ClickHouse/ClickHouse/issues/45209). [#45230](https://github.com/ClickHouse/ClickHouse/pull/45230) ([Vladimir C](https://github.com/vdimir)).
* Corrige un heap-use-after-free lors de la lecture depuis S3. [#45253](https://github.com/ClickHouse/ClickHouse/pull/45253) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un bogue lorsque le type Avro Union est \['null', Nested type], clôt [#45275](https://github.com/ClickHouse/ClickHouse/issues/45275). Corrige un bogue qui déduit incorrectement le type `bytes` comme `Float`. [#45276](https://github.com/ClickHouse/ClickHouse/pull/45276) ([flynn](https://github.com/ucasfl)).
* Lève une exception appropriée lorsqu'un PREWHERE explicite ne peut pas être utilisé avec une table utilisant le moteur de stockage `Merge`. [#45319](https://github.com/ClickHouse/ClickHouse/pull/45319) ([Antonio Andelic](https://github.com/antonio2368)).
* Sous WSL1 Ubuntu, l'exécutable auto-extractible de ClickHouse ne parvient pas à se décompresser en raison d'une incohérence : /proc/self/maps signale l'inode d'un fichier 32 bits, tandis que stat signale un inode 64 bits. [#45339](https://github.com/ClickHouse/ClickHouse/pull/45339) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige une condition de concurrence au démarrage d'une table Distributed (ce qui pouvait conduire à traiter plusieurs fois le fichier d'un async INSERT). [#45360](https://github.com/ClickHouse/ClickHouse/pull/45360) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un crash possible lors de la lecture depuis le stockage `S3` et la fonction de table `s3` lorsque la requête `ListObject` a échoué. [#45371](https://github.com/ClickHouse/ClickHouse/pull/45371) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l'exception `SELECT ... FROM system.dictionaries` lorsqu'un dictionnaire a une structure invalide (par ex. un type incorrect dans la config XML). [#45399](https://github.com/ClickHouse/ClickHouse/pull/45399) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrige l'inférence de schéma de s3Cluster lorsque la structure de la table d'insertion est utilisée dans les requêtes `INSERT INTO ... SELECT * FROM s3Cluster`. [#45422](https://github.com/ClickHouse/ClickHouse/pull/45422) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un bug dans l'analyse de JSON/BSONEachRow via HTTP qui pouvait entraîner l'utilisation de valeurs par défaut pour certaines colonnes au lieu des valeurs des données. [#45424](https://github.com/ClickHouse/ClickHouse/pull/45424) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un bug (Code: 632. DB::Exception: Données inattendues ... après une valeur IPv6 analysée ...) lié à l'analyse typée des types IP depuis une source texte. [#45425](https://github.com/ClickHouse/ClickHouse/pull/45425) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ferme [#45297](https://github.com/ClickHouse/ClickHouse/issues/45297) Ajoute une vérification des expressions régulières vides. [#45428](https://github.com/ClickHouse/ClickHouse/pull/45428) ([Han Fei](https://github.com/hanfei1991)).
* Corrige un possible blocage de requête (probablement distribuée). [#45448](https://github.com/ClickHouse/ClickHouse/pull/45448) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un interblocage possible lorsque `allow_asynchronous_read_from_io_pool_for_merge_tree` est activé, en cas d'exception provenant de `ThreadPool::schedule`. [#45481](https://github.com/ClickHouse/ClickHouse/pull/45481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige le cas possible d'une table encore utilisée après DETACH. [#45493](https://github.com/ClickHouse/ClickHouse/pull/45493) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un arrêt rare lorsqu'une requête est annulée et qu'une analyse parallèle a été utilisée pendant son exécution. [#45498](https://github.com/ClickHouse/ClickHouse/pull/45498) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige une condition de concurrence entre la création d'une table Distributed et un INSERT dans celle-ci (pouvait entraîner CANNOT\_LINK pendant l'INSERT dans la table). [#45502](https://github.com/ClickHouse/ClickHouse/pull/45502) ([Azat Khuzhin](https://github.com/azat)).
* Ajoute la valeur par défaut appropriée (SLRU) au getter de la stratégie de cache. Ferme [#45514](https://github.com/ClickHouse/ClickHouse/issues/45514). [#45524](https://github.com/ClickHouse/ClickHouse/pull/45524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Interdit ARRAY JOIN dans les mutations. Ferme [#42637](https://github.com/ClickHouse/ClickHouse/issues/42637) [#44447](https://github.com/ClickHouse/ClickHouse/pull/44447) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correctif pour les astérisques qualifiés avec un nom d'alias de table et un transformateur de colonnes. Résout [#44736](https://github.com/ClickHouse/ClickHouse/issues/44736). [#44755](https://github.com/ClickHouse/ClickHouse/pull/44755) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).

<div id="changelog-for-2022">
  ## [Historique des modifications de 2022](/fr/resources/changelogs/oss/2022)
</div>
