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

# Historique des modifications 2021

> Historique des modifications pour 2021

<div id="clickhouse-release-v2112-2021-12-15">
  ### Version de ClickHouse v21.12, 2021-12-15. [Présentation](https://presentations.clickhouse.com/2021-release-21.12/), [Vidéo](https://www.youtube.com/watch?v=6qi_S9CEqa4)
</div>

<Frame>
  <iframe src="https://www.youtube.com/embed/6qi_S9CEqa4" 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 d’une fonctionnalité qui avait auparavant un comportement indésirable.* Ne plus autoriser le direct select pour Kafka/RabbitMQ/FileLog. Cela peut être activé en définissant `stream_like_engine_allow_direct_select`. Le direct select ne sera pas autorisé même si ce paramètre est activé, s’il existe une vue matérialisée attachée. Pour Kafka et RabbitMQ, le direct select, s’il est autorisé, ne validera pas les messages par défaut. Pour activer les commits avec le direct select, l’utilisateur doit utiliser le paramètre au niveau du stockage `kafka{rabbitmq}_commit_on_select=1` (valeur par défaut : `0`). [#31053](https://github.com/ClickHouse/ClickHouse/pull/31053) ([Kseniia Sumarokova](https://github.com/kssenii)).
* *Léger changement de comportement d’une nouvelle fonction.* Renvoie une chaîne non entre guillemets dans JSON\_VALUE. Clôt [#27965](https://github.com/ClickHouse/ClickHouse/issues/27965). [#31008](https://github.com/ClickHouse/ClickHouse/pull/31008) ([Kseniia Sumarokova](https://github.com/kssenii)).
* *Renommage d’un paramètre.* Ajout de la prise en charge d’une représentation NULL personnalisée pour les formats d’entrée TSV/CSV. Correction de la désérialisation de Nullable(String) dans les formats d’entrée TSV/CSV/JSONCompactStringsEachRow/JSONStringsEachRow. Renommage de `output_format_csv_null_representation` et `output_format_tsv_null_representation` en `format_csv_null_representation` et `format_tsv_null_representation`, respectivement. [#30497](https://github.com/ClickHouse/ClickHouse/pull/30497) ([Kruglov Pavel](https://github.com/Avogar)).
* *Dépréciation supplémentaire de code déjà inutilisé.* Cela ne concerne que les utilisateurs de versions de ClickHouse antérieures à 20.6. Le mécanisme d’« élection du leader » a été supprimé de `ReplicatedMergeTree`, car plusieurs leaders sont pris en charge depuis la version 20.6. Si vous effectuez une mise à niveau depuis une version plus ancienne et qu’une réplique exécutant cette ancienne version est leader, le serveur ne démarrera pas après la mise à niveau. Arrêtez les répliques sur l’ancienne version pour permettre le démarrage de la nouvelle. Après cela, il ne sera plus possible de revenir à une version antérieure à 20.6. [#32140](https://github.com/ClickHouse/ClickHouse/pull/32140) ([tavplubix](https://github.com/tavplubix)).

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

* Implémentation d’un plus grand nombre de commandes ZooKeeper Four Letter Words dans ClickHouse Keeper : [https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc\&#95;zkCommands](https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc\&#95;zkCommands). [#28981](https://github.com/ClickHouse/ClickHouse/pull/28981) ([JackyWoo](https://github.com/JackyWoo)). Désormais, `clickhouse-keeper` est complet sur le plan fonctionnel.
* Prise en charge du type de données `Bool`. [#31072](https://github.com/ClickHouse/ClickHouse/pull/31072) ([kevin wan](https://github.com/MaxWk)).
* Prise en charge de `PARTITION BY` dans les stockages File, URL et HDFS, ainsi qu’avec la fonction de table `INSERT INTO`. Closes [#30273](https://github.com/ClickHouse/ClickHouse/issues/30273). [#30690](https://github.com/ClickHouse/ClickHouse/pull/30690) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de `CONSTRAINT ... ASSUME ...` (sans vérification lors de `INSERT`). Ajout de la transformation de requête en CNF ([https://github.com/ClickHouse/ClickHouse/issues/11749](https://github.com/ClickHouse/ClickHouse/issues/11749)) pour une optimisation plus pratique. Ajout d’une réécriture simple de requête à l’aide de contraintes (correspondance simple uniquement pour l’instant, avec prise en charge ultérieure de \<,=,>...). Ajout de la possibilité de remplacer des colonnes lourdes par des colonnes légères lorsque c’est possible. [#18787](https://github.com/ClickHouse/ClickHouse/pull/18787) ([Nikita Vasilev](https://github.com/nikvas0)).
* Authentification Basic pour les fonctions http/url. [#31648](https://github.com/ClickHouse/ClickHouse/pull/31648) ([michael1589](https://github.com/michael1589)).
* Prise en charge du type `INTERVAL` dans la clause `STEP` pour le modificateur `WITH FILL`. [#30927](https://github.com/ClickHouse/ClickHouse/pull/30927) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la prise en charge de la lecture en parallèle de plusieurs fichiers et des motifs génériques dans la clause `FROM INFILE`. [#30135](https://github.com/ClickHouse/ClickHouse/pull/30135) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Ajout de la prise en charge des paramètres de requête `Identifier` pour les tables et les bases de données. Closes [#27226](https://github.com/ClickHouse/ClickHouse/issues/27226). [#28668](https://github.com/ClickHouse/ClickHouse/pull/28668) ([Nikolay Degterinsky](https://github.com/evillique)).
* *TLDR : améliorations majeures de l’exhaustivité et de la cohérence des formats texte.* Refactorisation des formats `TSV`, `TSVRaw`, `CSV`, `JSONCompactEachRow` et `JSONCompactStringsEachRow`, suppression des duplications de code, ajout d’une interface de base pour les formats avec les suffixes `-WithNames` et `-WithNamesAndTypes`. Ajout des formats `CSVWithNamesAndTypes`, `TSVRawWithNames`, `TSVRawWithNamesAndTypes`, `JSONCompactEachRowWIthNames`, `JSONCompactStringsEachRowWIthNames`, `RowBinaryWithNames`. Prise en charge du parsing parallèle pour les formats `TSVWithNamesAndTypes`, `TSVRaw(WithNames/WIthNamesAndTypes)`, `CSVWithNamesAndTypes`, `JSONCompactEachRow(WithNames/WIthNamesAndTypes)`, `JSONCompactStringsEachRow(WithNames/WIthNamesAndTypes)`. Prise en charge du mapping des colonnes et de la vérification des types pour le format `RowBinaryWithNamesAndTypes`. Ajout du paramètre `input_format_with_types_use_header`, qui indique s’il faut vérifier que les types écrits au format `<format_name>WIthNamesAndTypes` correspondent à la structure de la table. Ajout du paramètre `input_format_csv_empty_as_default`, utilisé dans le format CSV à la place de `input_format_defaults_for_omitted_fields` (car ce paramètre ne doit pas contrôler `csv_empty_as_default`). Correction de l’utilisation du paramètre `input_format_defaults_for_omitted_fields` (il n’était utilisé que comme `csv_empty_as_default`, alors qu’il doit contrôler le calcul des expressions par défaut pour les champs omis). Correction de l’entrée/sortie Nullable dans le format `TSVRaw`, ce qui rend ce format entièrement compatible avec l’insertion en TSV. Correction de l’insertion de NULL dans `LowCardinality(Nullable)` lorsque `input_format_null_as_default` est activé (auparavant, des valeurs par défaut étaient insérées à la place des véritables NULL). Correction de la désérialisation des chaînes dans les formats `JSONStringsEachRow`/`JSONCompactStringsEachRow` (les chaînes n’étaient analysées que jusqu’au premier '\n' ou '\t'). Ajout de la possibilité d’utiliser la règle d’échappement `Raw` dans le format d’entrée Template. Ajout d’informations de diagnostic pour le format d’entrée `JSONCompactEachRow(WithNames/WIthNamesAndTypes)`. Correction d’un bug de parsing parallèle des formats `-WithNames` lorsque le paramètre `min_chunk_bytes_for_parallel_parsing` est inférieur au nombre d’octets d’une seule ligne. [#30178](https://github.com/ClickHouse/ClickHouse/pull/30178) ([Kruglov Pavel](https://github.com/Avogar)). Possibilité d’imprimer/d’analyser les noms et les types des colonnes dans le format d’entrée/sortie `CustomSeparated`. Ajout des formats `CustomSeparatedWithNames/WithNamesAndTypes`, similaires à `TSVWithNames/WithNamesAndTypes`. [#31434](https://github.com/ClickHouse/ClickHouse/pull/31434) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge d’Aliyun OSS Storage. [#31286](https://github.com/ClickHouse/ClickHouse/pull/31286) ([cfcz48](https://github.com/cfcz48)).
* Expose tous les paramètres du pool global de threads dans le fichier de configuration. [#31285](https://github.com/ClickHouse/ClickHouse/pull/31285) ([Tomáš Hromada](https://github.com/gyfis)).
* Introduction des window functions `exponentialTimeDecayedSum`, `exponentialTimeDecayedMax`, `exponentialTimeDecayedCount` et `exponentialTimeDecayedAvg`, plus efficaces que `exponentialMovingAverage` pour de plus grandes fenêtres. Davantage de cas d’usage sont également couverts. [#29799](https://github.com/ClickHouse/ClickHouse/pull/29799) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Ajout d’une option pour compresser les logs avec LZ4 avant leur écriture dans un fichier. Ferme [#23860](https://github.com/ClickHouse/ClickHouse/issues/23860). [#29219](https://github.com/ClickHouse/ClickHouse/pull/29219) ([Nikolay Degterinsky](https://github.com/evillique)).
* Prise en charge de `JOIN ON 1 = 1`, qui a la sémantique d’un CROSS JOIN. Cela ferme [#25578](https://github.com/ClickHouse/ClickHouse/issues/25578). [#25894](https://github.com/ClickHouse/ClickHouse/pull/25894) ([Vladimir C](https://github.com/vdimir)).
* Ajout du combinator Map pour le type `Map`. - Renommage de l’ancien `sum-, min-, max- Map` pour les tableaux mappés en `sum-, min-, max- MappedArrays`. [#24539](https://github.com/ClickHouse/ClickHouse/pull/24539) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Permettre de relancer la lecture via HTTP en cas d’échec. Corrige [#29696](https://github.com/ClickHouse/ClickHouse/issues/29696). [#29894](https://github.com/ClickHouse/ClickHouse/pull/29894) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* `WINDOW VIEW` pour activer le stream processing dans ClickHouse. [#8331](https://github.com/ClickHouse/ClickHouse/pull/8331) ([vxider](https://github.com/Vxider)).
* Suppression de la prise en charge de l'utilisation des bases de données Ordinary avec `MaterializedMySQL`. [#31292](https://github.com/ClickHouse/ClickHouse/pull/31292) ([Stig Bakken](https://github.com/stigsb)).
* Implémentation des commandes BACKUP et RESTORE pour la famille Log. Cette fonctionnalité est en cours de développement. [#30688](https://github.com/ClickHouse/ClickHouse/pull/30688) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Réduction de l’utilisation de la mémoire lors de la lecture des formats `Parquet`, `ORC` et `Arrow` via `s3` / `url` / `hdfs` (contrôlée par le paramètre `input_format_allow_seeks`, activé par défaut). Ajout également du paramètre `remote_read_min_bytes_for_seek` pour contrôler les seeks. Clôt [#10461](https://github.com/ClickHouse/ClickHouse/issues/10461). Clôt [#16857](https://github.com/ClickHouse/ClickHouse/issues/16857). [#30936](https://github.com/ClickHouse/ClickHouse/pull/30936) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d’optimisations pour les conditions constantes dans `JOIN ON`, voir [#26928](https://github.com/ClickHouse/ClickHouse/issues/26928). [#27021](https://github.com/ClickHouse/ClickHouse/pull/27021) ([Vladimir C](https://github.com/vdimir)).
* Prise en charge du formatting parallèle pour tous les formats texte, sauf `JSONEachRowWithProgress` et `PrettyCompactMonoBlock`. [#31489](https://github.com/ClickHouse/ClickHouse/pull/31489) ([Kruglov Pavel](https://github.com/Avogar)).
* Accélération de `count` sur les colonnes Nullable. [#31806](https://github.com/ClickHouse/ClickHouse/pull/31806) ([Raúl Marín](https://github.com/Algunenano)).
* Accélération des fonctions d’agrégation `avg` et `sumCount`. [#31694](https://github.com/ClickHouse/ClickHouse/pull/31694) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration des performances des formats de sortie JSON et XML. [#31673](https://github.com/ClickHouse/ClickHouse/pull/31673) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration des performances de la synchronisation des données vers un périphérique de blocs. Cela clôt [#31181](https://github.com/ClickHouse/ClickHouse/issues/31181). [#31229](https://github.com/ClickHouse/ClickHouse/pull/31229) ([zhanglistar](https://github.com/zhanglistar)).
* Correction d’un problème de performances des requêtes dans les tables `LiveView`. Corrige [#30831](https://github.com/ClickHouse/ClickHouse/issues/30831). [#31006](https://github.com/ClickHouse/ClickHouse/pull/31006) ([vzakaznikov](https://github.com/vzakaznikov)).
* Accélération de l’analyse des requêtes. [#31949](https://github.com/ClickHouse/ClickHouse/pull/31949) ([Raúl Marín](https://github.com/Algunenano)).
* Permet de scinder les règles de rollup de `GraphiteMergeTree` pour les métriques simples et celles avec tags (champ `rule_type` facultatif). [#25122](https://github.com/ClickHouse/ClickHouse/pull/25122) ([Michail Safronov](https://github.com/msaf1980)).
* Suppression des requêtes `DESC TABLE` superflues pour `remote()` (dans le cas de `remote('127.1', system.one)` (c.-à-d. lorsqu’un identifiant est utilisé comme db.table au lieu d’une chaîne), une requête `DESC TABLE` superflue était émise). [#32019](https://github.com/ClickHouse/ClickHouse/pull/32019) ([Azat Khuzhin](https://github.com/azat)).
* Optimisation de la fonction `tupleElement` pour lire une sous-colonne lorsque le paramètre `optimize_functions_to_subcolumns` est activé. [#31261](https://github.com/ClickHouse/ClickHouse/pull/31261) ([Anton Popov](https://github.com/CurtizJ)).
* Optimisation de la fonction `mapContains` pour lire la sous-colonne `key` lorsque le paramètre `optimize_functions_to_subcolumns` est activé. [#31218](https://github.com/ClickHouse/ClickHouse/pull/31218) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout des paramètres `merge_tree_min_rows_for_concurrent_read_for_remote_filesystem` et `merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem`. [#30970](https://github.com/ClickHouse/ClickHouse/pull/30970) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignore les mutations de partitions différentes dans `StorageMergeTree`. [#21326](https://github.com/ClickHouse/ClickHouse/pull/21326) ([Vladimir Chebotarev](https://github.com/excitoon)).

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

* Ne pas autoriser la suppression d'une table ou d'un dictionnaire si d'autres tables ou dictionnaires en dépendent. [#30977](https://github.com/ClickHouse/ClickHouse/pull/30977) ([tavplubix](https://github.com/tavplubix)).
* Autoriser le versionnement des états des fonctions d'agrégation. Il est désormais possible d'introduire des modifications rétrocompatibles dans le format de sérialisation des états des fonctions d'agrégation. Clôture [#12552](https://github.com/ClickHouse/ClickHouse/issues/12552). [#24820](https://github.com/ClickHouse/ClickHouse/pull/24820) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge de la syntaxe `ALTER MODIFY COLUMN` de type PostgreSQL. [#32003](https://github.com/ClickHouse/ClickHouse/pull/32003) ([SuperDJY](https://github.com/cmsxbc)).
* Ajout de la prise en charge de `update_field` pour `RangeHashedDictionary` et `ComplexKeyRangeHashedDictionary`. [#32185](https://github.com/ClickHouse/ClickHouse/pull/32185) ([Maksim Kita](https://github.com/kitaisreal)).
* Les fonctions `murmurHash3_128` et `sipHash128` acceptent désormais un nombre arbitraire d'arguments. Cela clôt [#28774](https://github.com/ClickHouse/ClickHouse/issues/28774). [#28965](https://github.com/ClickHouse/ClickHouse/pull/28965) ([小路](https://github.com/nicelulu)).
* Prise en charge de l'expression par défaut pour le stockage `HDFS` et optimisation de la récupération lorsque la source est orientée colonnes. [#32256](https://github.com/ClickHouse/ClickHouse/pull/32256) ([李扬](https://github.com/taiyang-li)).
* Amélioration du nom d'opération d'un span OpenTelemetry. [#32234](https://github.com/ClickHouse/ClickHouse/pull/32234) ([Frank Chen](https://github.com/FrankChen021)).
* Utilisation de `Content-Type: application/x-ndjson` ([http://ndjson.org/](http://ndjson.org/)) pour le format de sortie `JSONEachRow`. [#32223](https://github.com/ClickHouse/ClickHouse/pull/32223) ([Dmitriy Dorofeev](https://github.com/deem0n)).
* Amélioration de l'ignorance des champs inconnus avec la règle d'échappement entre guillemets dans les formats Template/CustomSeparated. Auparavant, seules les chaînes entre guillemets pouvaient être ignorées ; désormais, il est possible d'ignorer des valeurs de n'importe quel type. [#32204](https://github.com/ClickHouse/ClickHouse/pull/32204) ([Kruglov Pavel](https://github.com/Avogar)).
* Désormais, `clickhouse-keeper` refuse de démarrer ou d'appliquer des modifications de configuration lorsqu'elles contiennent des ID ou des points de terminaison dupliqués. Corrige [#31339](https://github.com/ClickHouse/ClickHouse/issues/31339). [#32121](https://github.com/ClickHouse/ClickHouse/pull/32121) ([alesapin](https://github.com/alesapin)).
* Définir le Content-Type dans les paquets HTTP émis par URL engine. [#32113](https://github.com/ClickHouse/ClickHouse/pull/32113) ([Frank Chen](https://github.com/FrankChen021)).
* Renvoyer le Content-Type 'application/json' pour le format `JSONEachRow` si `output_format_json_array_of_rows` est activé. [#32112](https://github.com/ClickHouse/ClickHouse/pull/32112) ([Frank Chen](https://github.com/FrankChen021)).
* Autoriser l'analyse de `+` avant les valeurs `Float32`/`Float64`. [#32079](https://github.com/ClickHouse/ClickHouse/pull/32079) ([Kruglov Pavel](https://github.com/Avogar)).
* Autoriser un paramètre `hdfs_replication` configuré par l'utilisateur pour `DiskHDFS` et `StorageHDFS`. Clôture [#32039](https://github.com/ClickHouse/ClickHouse/issues/32039). [#32049](https://github.com/ClickHouse/ClickHouse/pull/32049) ([leosunli](https://github.com/leosunli)).
* Ajout des champs ClickHouse `exception` et `exception_code` au journal des spans OpenTelemetry. [#32040](https://github.com/ClickHouse/ClickHouse/pull/32040) ([Frank Chen](https://github.com/FrankChen021)).
* Amélioration de la durée dans le journal des spans OpenTelemetry : elle était nulle au niveau de la requête en cas d'exception de requête. [#32038](https://github.com/ClickHouse/ClickHouse/pull/32038) ([Frank Chen](https://github.com/FrankChen021)).
* Corrige le problème qui empêchait la création de `LowCardinality` sur `Int256`. [#31832](https://github.com/ClickHouse/ClickHouse/pull/31832) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Recrée les tables `system.*_log` en cas de différence de moteur/partition\_by. [#31824](https://github.com/ClickHouse/ClickHouse/pull/31824) ([Azat Khuzhin](https://github.com/azat)).
* `MaterializedMySQL` : corrige le problème avec une table nommée 'table'. [#31781](https://github.com/ClickHouse/ClickHouse/pull/31781) ([Håvard Kvålen](https://github.com/havardk)).
* Source de dictionnaire ClickHouse : prise en charge des connexions prédéfinies. Ferme [#31705](https://github.com/ClickHouse/ClickHouse/issues/31705). [#31749](https://github.com/ClickHouse/ClickHouse/pull/31749) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permet d’utiliser une configuration de connexions prédéfinies pour les engines Kafka et RabbitMQ (de la même manière que pour les autres table engines d’intégration). [#31691](https://github.com/ClickHouse/ClickHouse/pull/31691) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Réaffiche toujours l’invite lors de la navigation dans l’historique de clickhouse-client. Cela améliore l’utilisation lors de la manipulation de queries très longues qui ne tiennent pas à l’écran. [#31675](https://github.com/ClickHouse/ClickHouse/pull/31675) ([alexey-milovidov](https://github.com/alexey-milovidov)) (auteur : Amos Bird).
* Ajoute des raccourcis clavier pour naviguer dans l’historique (au lieu des lignes/dans l’historique). [#31641](https://github.com/ClickHouse/ClickHouse/pull/31641) ([Azat Khuzhin](https://github.com/azat)).
* Améliore les vérifications de `max_execution_time`. Corrige certains cas où les vérifications de timeout ne s’exécutaient pas et où la query pouvait durer trop longtemps. [#31636](https://github.com/ClickHouse/ClickHouse/pull/31636) ([Raúl Marín](https://github.com/Algunenano)).
* Message d’exception amélioré lorsque `users.xml` ne peut pas être chargé en raison d’un hash de mot de passe incorrect. Cela ferme [#24126](https://github.com/ClickHouse/ClickHouse/issues/24126). [#31557](https://github.com/ClickHouse/ClickHouse/pull/31557) ([Vitaly Baranov](https://github.com/vitlibar)).
* Utilise les noms du shard et de la replica à partir des arguments de la base de données `Replicated` lors de l’expansion des macros dans les arguments `ReplicatedMergeTree` si ces macros ne sont pas définies dans la config. Ferme [#31471](https://github.com/ClickHouse/ClickHouse/issues/31471). [#31488](https://github.com/ClickHouse/ClickHouse/pull/31488) ([tavplubix](https://github.com/tavplubix)).
* Meilleure analyse pour la projection `min/max/count`. Désormais, avec `allow_experimental_projection_optimization` activé, la projection virtuelle `min/max/count` peut être utilisée avec des colonnes de la partition key. [#31474](https://github.com/ClickHouse/ClickHouse/pull/31474) ([Amos Bird](https://github.com/amosbird)).
* Ajoute la prise en charge de `--pager` pour `clickhouse-local`. [#31457](https://github.com/ClickHouse/ClickHouse/pull/31457) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’attente de l’éditeur pendant l’édition interactive d’une query (`waitpid()` renvoie -1 sur `SIGWINCH` et `EDITOR` ainsi que `clickhouse-local`/`clickhouse-client` fonctionnent en concurrence). [#31456](https://github.com/ClickHouse/ClickHouse/pull/31456) ([Azat Khuzhin](https://github.com/azat)).
* Déclenche une exception s’il y a des données parasites après un field dans le format `JSONCompactStrings(EachRow)`. [#31455](https://github.com/ClickHouse/ClickHouse/pull/31455) ([Kruglov Pavel](https://github.com/Avogar)).
* La valeur par défaut des settings `http_send_timeout` et `http_receive_timeout` est passée de 1800 (30 minutes) à 180 (3 minutes). [#31450](https://github.com/ClickHouse/ClickHouse/pull/31450) ([tavplubix](https://github.com/tavplubix)).
* `MaterializedMySQL` gère désormais les requêtes DDL `CREATE TABLE ... LIKE ...`. [#31410](https://github.com/ClickHouse/ClickHouse/pull/31410) ([Stig Bakken](https://github.com/stigsb)).
* Renvoie une requête create artificielle lors de l’exécution de `show create table` sur les tables système. [#31391](https://github.com/ClickHouse/ClickHouse/pull/31391) ([SuperDJY](https://github.com/cmsxbc)).
* Auparavant, la progression n’était affichée que pour la table function `numbers`. Désormais, elle l’est aussi pour `numbers_mt`. [#31318](https://github.com/ClickHouse/ClickHouse/pull/31318) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les rôles initiaux de l’utilisateur sont désormais utilisés pour déterminer les row policies, voir [#31080](https://github.com/ClickHouse/ClickHouse/issues/31080). [#31262](https://github.com/ClickHouse/ClickHouse/pull/31262) ([Vitaly Baranov](https://github.com/vitlibar)).
* Si un obsolete setting est modifié, un avertissement est affiché dans `system.warnings`. [#31252](https://github.com/ClickHouse/ClickHouse/pull/31252) ([tavplubix](https://github.com/tavplubix)).
* Amélioration du backoff pour les tasks de nettoyage en arrière-plan dans `MergeTree`. Les Settings `merge_tree_clear_old_temporary_directories_interval_seconds` et `merge_tree_clear_old_parts_interval_seconds` ont été déplacés des paramètres utilisateur vers les paramètres de MergeTree. [#31180](https://github.com/ClickHouse/ClickHouse/pull/31180) ([tavplubix](https://github.com/tavplubix)).
* Désormais, chaque replica n’enverra au client que des informations incrémentales sur les compteurs de profile events. [#31155](https://github.com/ClickHouse/ClickHouse/pull/31155) ([Dmitry Novik](https://github.com/novikd)). Cela rend l’option `--hardware_utilization` de `clickhouse-client` utilisable.
* L’édition multiligne est désormais activée par défaut dans `clickhouse-client`. Cela corrige [#31121](https://github.com/ClickHouse/ClickHouse/issues/31121). [#31123](https://github.com/ClickHouse/ClickHouse/pull/31123) ([Amos Bird](https://github.com/amosbird)).
* Normalisation des noms de fonctions pour les requêtes `ALTER`. Cela permet d’éviter les incohérences de métadonnées entre la création de tables avec index/projections et l’ajout d’index/projections via des commandes alter. Il s’agit d’une PR de suivi de [https://github.com/ClickHouse/ClickHouse/pull/20174](https://github.com/ClickHouse/ClickHouse/pull/20174). À classer parmi les améliorations, car aucun bogue n’a été signalé et le scénario reste assez rare. [#31095](https://github.com/ClickHouse/ClickHouse/pull/31095) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge du modifier `IF EXISTS` pour la requête `RENAME DATABASE`/`TABLE`/`DICTIONARY`. Si cette directive est utilisée, aucune erreur ne sera renvoyée si le DATABASE/TABLE/DICTIONARY à renommer n’existe pas. [#31081](https://github.com/ClickHouse/ClickHouse/pull/31081) ([victorgao](https://github.com/kafka1991)).
* Annuler les vertical merges lorsqu’une partition est supprimée. Il s’agit d’un suivi de [https://github.com/ClickHouse/ClickHouse/pull/25684](https://github.com/ClickHouse/ClickHouse/pull/25684) et de [https://github.com/ClickHouse/ClickHouse/pull/30996](https://github.com/ClickHouse/ClickHouse/pull/30996). [#31057](https://github.com/ClickHouse/ClickHouse/pull/31057) ([Amos Bird](https://github.com/amosbird)).
* La session locale au sein d’une dictionary source ClickHouse n’enverra plus ses événements au session log. Cela corrige un interblocage possible (alerte tsan) lors de l’arrêt. Cette PR corrige également l’instabilité de `test_dictionaries_dependency_xml/`. [#31013](https://github.com/ClickHouse/ClickHouse/pull/31013) ([Vitaly Baranov](https://github.com/vitlibar)).
* Réduction des verrous dans la commande ALTER. [#31010](https://github.com/ClickHouse/ClickHouse/pull/31010) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’option `--verbose` dans le mode interactif de `clickhouse-local` et ajout de la possibilité de journaliser dans un fichier. [#30881](https://github.com/ClickHouse/ClickHouse/pull/30881) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout des commandes `\l`, `\d`, `\c` dans `clickhouse-client`, comme dans MySQL et PostgreSQL. [#30876](https://github.com/ClickHouse/ClickHouse/pull/30876) ([Pavel Medvedev](https://github.com/pmed)).
* Pour clickhouse-local ou clickhouse-client : si l'option `--interactive` est utilisée avec `--query` ou `--queries-file`, celles-ci sont d'abord exécutées comme en mode non interactif, puis le mode interactif est lancé. [#30851](https://github.com/ClickHouse/ClickHouse/pull/30851) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l'erreur possible "The local set of parts of X doesn't look like the set of parts in ZooKeeper" (si DROP échoue lors de la suppression de znodes dans ZooKeeper). [#30826](https://github.com/ClickHouse/ClickHouse/pull/30826) ([Azat Khuzhin](https://github.com/azat)).
* Le format Avro fonctionne avec Kafka. Ajout du paramètre `output_format_avro_rows_in_file`. [#30351](https://github.com/ClickHouse/ClickHouse/pull/30351) ([Ilya Golshtein](https://github.com/ilejn)).
* Possibilité de spécifier un ou plusieurs schémas PostgreSQL pour une base de données `MaterializedPostgreSQL`. Clôt [#28901](https://github.com/ClickHouse/ClickHouse/issues/28901). Clôt [#29324](https://github.com/ClickHouse/ClickHouse/issues/29324). [#28933](https://github.com/ClickHouse/ClickHouse/pull/28933) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Remplacement des ports par défaut de communication interne de clickhouse-keeper, de 44444 à 9234. Corrige [#30879](https://github.com/ClickHouse/ClickHouse/issues/30879). [#31799](https://github.com/ClickHouse/ClickHouse/pull/31799) ([alesapin](https://github.com/alesapin)).
* Implémentation de la fonction transform avec des arguments Decimal. [#31839](https://github.com/ClickHouse/ClickHouse/pull/31839) ([李帅](https://github.com/loneylee)).
* Correction d'un arrêt brutal sur le serveur de débogage et de l'erreur `DB::Exception: std::out_of_range: basic_string` sur le serveur de release en cas d'URL HDFS invalide, grâce à une vérification supplémentaire de la structure de l'URL HDFS. [#31042](https://github.com/ClickHouse/ClickHouse/pull/31042) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d'une assertion possible dans la table function / le moteur `hdfs`, avec ajout d'un test. [#31036](https://github.com/ClickHouse/ClickHouse/pull/31036) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Corrige les alias de group by / order by / limit by lorsque les arguments positionnels sont activés. Clôt [#31173](https://github.com/ClickHouse/ClickHouse/issues/31173). [#31741](https://github.com/ClickHouse/ClickHouse/pull/31741) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige l'utilisation du table engine `Buffer` avec le type `Map`. Corrige [#30546](https://github.com/ClickHouse/ClickHouse/issues/30546). [#31742](https://github.com/ClickHouse/ClickHouse/pull/31742) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige la lecture des tables `MergeTree` lorsque `use_uncompressed_cache` est activé. [#31826](https://github.com/ClickHouse/ClickHouse/pull/31826) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige le comportement lorsque des mutations sans travail à effectuer restent bloquées (avec le paramètre `empty_result_for_aggregation_by_empty_set` activé). [#32358](https://github.com/ClickHouse/ClickHouse/pull/32358) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige le saut de colonnes lors de l'écriture en Protobuf. Cette PR corrige [#31160](https://github.com/ClickHouse/ClickHouse/issues/31160), voir le commentaire [#31160](https://github.com/ClickHouse/ClickHouse/issues/31160)#issuecomment-980595318. [#31988](https://github.com/ClickHouse/ClickHouse/pull/31988) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige un bug lors de la suppression de colonnes inutiles dans une sous-requête. S'il y a une fonction d'agrégation dans une requête sans group by, ne pas la supprimer même si elle est inutile. [#32289](https://github.com/ClickHouse/ClickHouse/pull/32289) ([dongyifeng](https://github.com/dyf6372)).
* La limite de quota n'était pas atteinte, mais elle était tout de même considérée comme dépassée. Cette PR corrige [#31174](https://github.com/ClickHouse/ClickHouse/issues/31174). [#31337](https://github.com/ClickHouse/ClickHouse/pull/31337) ([sunny](https://github.com/sunny19930321)).
* Corrige SHOW GRANTS lorsque des révocations partielles sont utilisées. Cette PR corrige [#31138](https://github.com/ClickHouse/ClickHouse/issues/31138). [#31249](https://github.com/ClickHouse/ClickHouse/pull/31249) ([Vitaly Baranov](https://github.com/vitlibar)).
* La quantité de mémoire était mal estimée lorsque ClickHouse s'exécutait dans des conteneurs avec des limites cgroup. [#31157](https://github.com/ClickHouse/ClickHouse/pull/31157) ([Pavel Medvedev](https://github.com/pmed)).
* Corrige les requêtes `ALTER ... MATERIALIZE COLUMN ...` lorsque le type de données de l'expression par défaut n'est pas le même que celui de la colonne. [#32348](https://github.com/ClickHouse/ClickHouse/pull/32348) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un crash avec SIGFPE dans la fonction d'agrégation `avgWeighted` avec un argument `Decimal`. Corrige [#32053](https://github.com/ClickHouse/ClickHouse/issues/32053). [#32303](https://github.com/ClickHouse/ClickHouse/pull/32303) ([tavplubix](https://github.com/tavplubix)).
* Le serveur pouvait ne pas démarrer avec l'erreur `Cannot attach 1 tables due to cyclic dependencies` si la table `Dictionary` pointait vers un dictionnaire XML du même nom. C'est corrigé. Corrige [#31315](https://github.com/ClickHouse/ClickHouse/issues/31315). [#32288](https://github.com/ClickHouse/ClickHouse/pull/32288) ([tavplubix](https://github.com/tavplubix)).
* Corrige une erreur d'analyse lors de la désérialisation de NaN pour `Nullable(Float)` avec la règle d'échappement `Quoted`. [#32190](https://github.com/ClickHouse/ClickHouse/pull/32190) ([Kruglov Pavel](https://github.com/Avogar)).
* Dictionnaires XML : les identifiants utilisés dans la requête CREATE de la table peuvent être qualifiés avec `default_database` lors d'une mise à niveau vers une version plus récente. Clôt [#31963](https://github.com/ClickHouse/ClickHouse/issues/31963). [#32187](https://github.com/ClickHouse/ClickHouse/pull/32187) ([Maksim Kita](https://github.com/kitaisreal)).
* Le nombre de répliques actives pouvait être déterminé de manière incorrecte lors d'une insertion avec quorum si le paramètre `replicated_can_become_leader` était désactivé sur certaines répliques. C'est corrigé. [#32157](https://github.com/ClickHouse/ClickHouse/pull/32157) ([tavplubix](https://github.com/tavplubix)).
* Dictionaries : correction des cas où `{condition}` ne fonctionne pas pour des requêtes de base de données personnalisées. [#32117](https://github.com/ClickHouse/ClickHouse/pull/32117) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction de `CAST` depuis `Nullable` avec `cast_keep_nullable` (erreur `PARAMETER_OUT_OF_BOUND` auparavant, par exemple avec `toUInt32OrDefault(toNullable(toUInt32(1)))`). [#32080](https://github.com/ClickHouse/ClickHouse/pull/32080) ([Azat Khuzhin](https://github.com/azat)).
* Correction de CREATE TABLE pour Join Storage dans certains cas rares. Ferme [#31680](https://github.com/ClickHouse/ClickHouse/issues/31680). [#32066](https://github.com/ClickHouse/ClickHouse/pull/32066) ([SuperDJY](https://github.com/cmsxbc)).
* Correction de l'erreur `Directory ... already exists and is not empty` lors du détachement d'une part. [#32063](https://github.com/ClickHouse/ClickHouse/pull/32063) ([tavplubix](https://github.com/tavplubix)).
* `MaterializedMySQL` (fonctionnalité expérimentale) : correction d'une mauvaise interprétation des données `DECIMAL` provenant de MySQL. [#31990](https://github.com/ClickHouse/ClickHouse/pull/31990) ([Håvard Kvålen](https://github.com/havardk)).
* Le moteur `FileLog` (fonctionnalité expérimentale) créait inutilement un répertoire de métadonnées lorsque la création de la table échouait. Corrige [#31962](https://github.com/ClickHouse/ClickHouse/issues/31962). [#31967](https://github.com/ClickHouse/ClickHouse/pull/31967) ([flynn](https://github.com/ucasfl)).
* Certaines entrées `GET_PART` pouvaient rester bloquées dans la file de réplication si une part était perdue sur toutes les répliques et qu'il n'y avait pas d'autres parts dans la même partition. C'est corrigé dans les cas où la clé de partition ne contient que des colonnes de types entiers ou `Date[Time]`. Corrige [#31485](https://github.com/ClickHouse/ClickHouse/issues/31485). [#31887](https://github.com/ClickHouse/ClickHouse/pull/31887) ([tavplubix](https://github.com/tavplubix)).
* Correction des fonctions `empty` et `notEmpty` avec des arguments de type `UUID`. Corrige [#31819](https://github.com/ClickHouse/ClickHouse/issues/31819). [#31883](https://github.com/ClickHouse/ClickHouse/pull/31883) ([Anton Popov](https://github.com/CurtizJ)).
* Le chemin de configuration a été changé de `keeper_server.session_timeout_ms` à `keeper_server.coordination_settings.session_timeout_ms` lors de la construction d'un `KeeperTCPHandler`. Même chose pour `operation_timeout`. [#31859](https://github.com/ClickHouse/ClickHouse/pull/31859) ([JackyWoo](https://github.com/JackyWoo)).
* Correction d'un cast invalide du type `Nullable` lorsqu'une clé primaire nullable est utilisée. (La clé primaire nullable est une fonctionnalité déconseillée : veuillez ne pas l'utiliser.) Corrige [#31075](https://github.com/ClickHouse/ClickHouse/issues/31075). [#31823](https://github.com/ClickHouse/ClickHouse/pull/31823) ([Amos Bird](https://github.com/amosbird)).
* Correction d'un crash dans un UDF récursif en SQL. Ferme [#30856](https://github.com/ClickHouse/ClickHouse/issues/30856). [#31820](https://github.com/ClickHouse/ClickHouse/pull/31820) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d'un crash lorsque la fonction `dictGet` avec type est utilisée pour un attribut de dictionnaire dont le type est `Nullable`. Corrige [#30980](https://github.com/ClickHouse/ClickHouse/issues/30980). [#31800](https://github.com/ClickHouse/ClickHouse/pull/31800) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige un crash en cas de résultat vide d’une requête ODBC (avec certains pilotes ODBC). Résout [#31465](https://github.com/ClickHouse/ClickHouse/issues/31465). [#31766](https://github.com/ClickHouse/ClickHouse/pull/31766) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige la désactivation du query profiler (dans le cas de `query_profiler_real_time_period_ns>0`/`query_profiler_cpu_time_period_ns>0`, le query profiler pouvait rester activé même après la fin de la requête). [#31740](https://github.com/ClickHouse/ClickHouse/pull/31740) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un rare segfault sur des requêtes `ATTACH PARTITION` concurrentes. [#31738](https://github.com/ClickHouse/ClickHouse/pull/31738) ([tavplubix](https://github.com/tavplubix)).
* Corrige une condition de concurrence dans le format de sortie JSONEachRowWithProgress lorsque des données et des lignes de progression sont mélangées dans la sortie. [#31736](https://github.com/ClickHouse/ClickHouse/pull/31736) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l’erreur `there are no such cluster here` lors de l’exécution d’une requête `ON CLUSTER` si le nom de cluster spécifié est celui d’une base de données `Replicated`. [#31723](https://github.com/ClickHouse/ClickHouse/pull/31723) ([tavplubix](https://github.com/tavplubix)).
* Corrige une exception dans certains cas d’utilisation de la fonction `decrypt` sur des colonnes Nullable. Cela résout [#31662](https://github.com/ClickHouse/ClickHouse/issues/31662). Cela résout [#31426](https://github.com/ClickHouse/ClickHouse/issues/31426). [#31707](https://github.com/ClickHouse/ClickHouse/pull/31707) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige la fonction `ngrams` lorsque la chaîne contient des caractères UTF-8. [#31706](https://github.com/ClickHouse/ClickHouse/pull/31706) ([yandd](https://github.com/yandd)).
* Les Settings `input_format_allow_errors_num` et `input_format_allow_errors_ratio` ne fonctionnaient pas pour l’analyse des types de domaine, tels que `IPv4` ; c’est corrigé. Corrige [#31686](https://github.com/ClickHouse/ClickHouse/issues/31686). [#31697](https://github.com/ClickHouse/ClickHouse/pull/31697) ([tavplubix](https://github.com/tavplubix)).
* Corrige une exception de pointeur nul dans `MATERIALIZE COLUMN`. [#31679](https://github.com/ClickHouse/ClickHouse/pull/31679) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* La requête `RENAME TABLE` fonctionnait incorrectement lors d’une tentative de renommage d’un dictionnaire DDL dans une base de données `Ordinary` ; c’est corrigé. [#31638](https://github.com/ClickHouse/ClickHouse/pull/31638) ([tavplubix](https://github.com/tavplubix)).
* Implémente la fonction d’agrégation `sparkbar` comme prévu, voir : [#26175](https://github.com/ClickHouse/ClickHouse/issues/26175)#issuecomment-960353867, [commentaire](https://github.com/ClickHouse/ClickHouse/issues/26175#issuecomment-961155065). [#31624](https://github.com/ClickHouse/ClickHouse/pull/31624) ([小路](https://github.com/nicelulu)).
* Corrige la génération d’un JSON invalide lorsque seuls les noms de colonnes contiennent des séquences UTF-8 invalides. [#31534](https://github.com/ClickHouse/ClickHouse/pull/31534) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Désactive `partial_merge_join_left_table_buffer_bytes` tant que le bug dans cette optimisation n’est pas corrigé. Voir [#31009](https://github.com/ClickHouse/ClickHouse/issues/31009)). Supprime l’option redondante `partial_merge_join_optimizations`. [#31528](https://github.com/ClickHouse/ClickHouse/pull/31528) ([Vladimir C](https://github.com/vdimir)).
* Corrige la progression pour les requêtes `INSERT SELECT` courtes. [#31510](https://github.com/ClickHouse/ClickHouse/pull/31510) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un comportement incorrect avec `group by` et les arguments positionnels. Clôt [#31280](https://github.com/ClickHouse/ClickHouse/issues/31280)#issuecomment-968696186. [#31420](https://github.com/ClickHouse/ClickHouse/pull/31420) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Résout `nullptr` dans le fournisseur d’identifiants STS pour S3. [#31409](https://github.com/ClickHouse/ClickHouse/pull/31409) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Supprime la fonction `notLike` de l’analyse d’index, car elle était incorrecte. [#31169](https://github.com/ClickHouse/ClickHouse/pull/31169) ([sundyli](https://github.com/sundy-li)).
* Corrige un bug dans Keeper pouvant empêcher le démarrage lorsque certains logs de coordination ont été perdus et qu’un snapshot plus récent que le dernier log est présent. [#31150](https://github.com/ClickHouse/ClickHouse/pull/31150) ([alesapin](https://github.com/alesapin)).
* Réécrit correctement la table distribuée de droite dans une jointure locale. Résout [#25809](https://github.com/ClickHouse/ClickHouse/issues/25809). [#31105](https://github.com/ClickHouse/ClickHouse/pull/31105) ([abel-cheng](https://github.com/abel-cheng)).
* Corrige la table `Merge` avec des alias et `WHERE` (cela ne fonctionnait pas du tout auparavant). Clôt [#28802](https://github.com/ClickHouse/ClickHouse/issues/28802). [#31044](https://github.com/ClickHouse/ClickHouse/pull/31044) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige JSON\_VALUE/JSON\_QUERY avec des identifiants entre guillemets. Cela permet d’avoir des espaces dans le chemin JSON. Clôt [#30971](https://github.com/ClickHouse/ClickHouse/issues/30971). [#31003](https://github.com/ClickHouse/ClickHouse/pull/31003) ([Kseniia Sumarokova](https://github.com/kssenii)).
* L’utilisation de la fonction `formatRow` avec des formats non orientés lignes provoquait un segfault. Cette fonction n’est plus autorisée avec de tels formats (car cela n’a pas de sens). [#31001](https://github.com/ClickHouse/ClickHouse/pull/31001) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un bug qui cassait les requêtes `SELECT` lorsqu’elles survenaient après la suppression d’une vue matérialisée. Trouvé dans [#30691](https://github.com/ClickHouse/ClickHouse/issues/30691). [#30997](https://github.com/ClickHouse/ClickHouse/pull/30997) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignore la vérification `max_partition_size_to_drop` dans le cas de ATTACH PARTITION ... FROM et MOVE PARTITION ... [#30995](https://github.com/ClickHouse/ClickHouse/pull/30995) ([Amr Alaa](https://github.com/amralaa-MSFT)).
* Corrige certains cas limites avec les opérateurs `INTERSECT` et `EXCEPT`. Clôt [#30803](https://github.com/ClickHouse/ClickHouse/issues/30803). [#30965](https://github.com/ClickHouse/ClickHouse/pull/30965) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Correction d’un résultat de filtrage erroné sur les builds non x86. Cela clôt [#31417](https://github.com/ClickHouse/ClickHouse/issues/31417). Cela clôt [#31524](https://github.com/ClickHouse/ClickHouse/issues/31524). [#31574](https://github.com/ClickHouse/ClickHouse/pull/31574) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Rendre le build de ClickHouse entièrement reproductible (identique octet pour octet sur différentes machines). Cela clôt [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#31899](https://github.com/ClickHouse/ClickHouse/pull/31899) ([alexey-milovidov](https://github.com/alexey-milovidov)). Supprimer des binaires le chemin du filesystem vers le répertoire de build afin de permettre des builds reproductibles. Cela était nécessaire pour [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#31838](https://github.com/ClickHouse/ClickHouse/pull/31838) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Utiliser nos propres CMakeLists pour `zlib-ng`, `cassandra`, `mariadb-connector-c`, ainsi que `xz`, `re2`, `sentry`, `gsasl`, `arrow`, `protobuf`. Cela est nécessaire pour [#20151](https://github.com/ClickHouse/ClickHouse/issues/20151). Fait partie de [#9226](https://github.com/ClickHouse/ClickHouse/issues/9226). Une petite étape vers la suppression des éléments pénibles du système de build. [#30599](https://github.com/ClickHouse/ClickHouse/pull/30599) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Builds hermétiques : utiliser une version fixe de libc et s’assurer qu’aucun fichier source ou binaire du système d’exploitation hôte n’est utilisé pendant la compilation. Cela clôt [#27133](https://github.com/ClickHouse/ClickHouse/issues/27133). Cela clôt [#21435](https://github.com/ClickHouse/ClickHouse/issues/21435). Cela clôt [#30462](https://github.com/ClickHouse/ClickHouse/issues/30462). [#30011](https://github.com/ClickHouse/ClickHouse/pull/30011) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de la fonction `getFuzzerData()` pour faciliter le fuzzing de fonctions spécifiques. Cela clôt [#23227](https://github.com/ClickHouse/ClickHouse/issues/23227). [#27526](https://github.com/ClickHouse/ClickHouse/pull/27526) ([Alexey Boykov](https://github.com/mathalex)).
* Configuration plus appropriée des capabilities dans Docker. [#31802](https://github.com/ClickHouse/ClickHouse/pull/31802) ([Constantine Peresypkin](https://github.com/pkit)).
* Activer les options de compilation clang `-fstrict-vtable-pointers`, `-fwhole-program-vtables`. [#20151](https://github.com/ClickHouse/ClickHouse/pull/20151) ([Maksim Kita](https://github.com/kitaisreal)).
* Éviter le téléchargement d’archives de toolchain pour la compilation croisée vers FreeBSD. [#31672](https://github.com/ClickHouse/ClickHouse/pull/31672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Support initial de risc-v. Voir development/build-cross-riscv pour les particularités et la commande de compilation testée. [#31309](https://github.com/ClickHouse/ClickHouse/pull/31309) ([Vladimir Smirnov](https://github.com/Civil)).
* Prise en charge de la compilation sur une machine arm avec le paramètre "-DENABLE\_TESTS=OFF". [#31007](https://github.com/ClickHouse/ClickHouse/pull/31007) ([zhanghuajie](https://github.com/zhanghuajieHIT)).

<div id="clickhouse-release-v2111-2021-11-09">
  ### Version de ClickHouse v21.11, 2021-11-09. [Présentation](https://presentations.clickhouse.com/2021-release-21.11/), [Vidéo](https://www.youtube.com/watch?v=xb64zoPYvqQ)
</div>

<Frame>
  <iframe src="https://www.youtube.com/embed/xb64zoPYvqQ" 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>

* Modification de l'ordre des arguments json\_path et json dans les fonctions SQL/JSON (pour rester cohérent avec la norme). Ferme [#30449](https://github.com/ClickHouse/ClickHouse/issues/30449). [#30474](https://github.com/ClickHouse/ClickHouse/pull/30474) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suppression du paramètre de table `MergeTree` `write_final_mark`. Il sera désormais toujours à `true`. [#30455](https://github.com/ClickHouse/ClickHouse/pull/30455) ([Kseniia Sumarokova](https://github.com/kssenii)). Aucune action n'est requise, toutes les tables sont compatibles avec la nouvelle version.
* La fonction `bayesAB` a été supprimée. Merci de nous aider à réintroduire cette fonction, actualisée. Cela ferme [#26233](https://github.com/ClickHouse/ClickHouse/issues/26233). [#29934](https://github.com/ClickHouse/ClickHouse/pull/29934) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ceci n'est pertinent que si vous avez déjà commencé à utiliser la prise en charge expérimentale de `clickhouse-keeper`. Désormais, les snapshots de ClickHouse Keeper sont compressés avec le codec `ZSTD` par défaut, au lieu de la compression par blocs LZ4 personnalisée de ClickHouse. Ce comportement peut être désactivé avec le paramètre de coordination `compress_snapshots_with_zstd_format` (il doit être identique sur toutes les répliques du quorum). Cette rétro-incompatibilité est assez rare et ne peut se produire que lorsqu'un nouveau nœud envoie un snapshot (ce qui arrive en cas de recovery) à un ancien nœud qui n'est pas capable de lire les snapshots au format ZSTD. [#29417](https://github.com/ClickHouse/ClickHouse/pull/29417) ([alesapin](https://github.com/alesapin)).

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

* Le nouveau mode `INSERT` asynchrone permet d’accumuler les données insérées et de les stocker en arrière-plan en un seul batch. Côté client, il peut être activé en définissant `async_insert` pour les requêtes `INSERT` avec des données intégrées à la requête ou dans un buffer séparé (par exemple pour les requêtes `INSERT` via le protocole HTTP). Si `wait_for_async_insert` vaut true (par défaut), le client attendra que les données soient écrites dans la table. Côté serveur, il est contrôlé par les settings `async_insert_threads`, `async_insert_max_data_size` et `async_insert_busy_timeout_ms`. Implémente [#18282](https://github.com/ClickHouse/ClickHouse/issues/18282). [#27537](https://github.com/ClickHouse/ClickHouse/pull/27537) ([Anton Popov](https://github.com/CurtizJ)). [#20557](https://github.com/ClickHouse/ClickHouse/pull/20557) ([Ivan](https://github.com/abyss7)). Remarques sur les performances : avec les inserts asynchrones, vous pouvez effectuer jusqu’à environ 10 000 requêtes `INSERT` individuelles par seconde. Il reste donc recommandé d’insérer par batchs si vous souhaitez atteindre des performances de plusieurs millions de lignes insérées par seconde.
* Ajout d’un mode interactif pour `clickhouse-local`. Vous pouvez ainsi simplement exécuter `clickhouse-local` pour obtenir une interface ClickHouse en ligne de commande sans vous connecter à un serveur, et traiter des données provenant de fichiers et de sources de données externes. Fusion du code de `clickhouse-client` et de `clickhouse-local`. Closes [#7203](https://github.com/ClickHouse/ClickHouse/issues/7203). Closes [#25516](https://github.com/ClickHouse/ClickHouse/issues/25516). Closes [#22401](https://github.com/ClickHouse/ClickHouse/issues/22401). [#26231](https://github.com/ClickHouse/ClickHouse/pull/26231) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la prise en charge des user defined functions exécutables (scriptables). Il s’agit d’UDFs pouvant être écrites dans n’importe quel langage de programmation. [#28803](https://github.com/ClickHouse/ClickHouse/pull/28803) ([Maksim Kita](https://github.com/kitaisreal)).
* Autorise des connexions prédéfinies à des sources de données externes. Cela permet d’éviter d’avoir à spécifier des credentials ou des adresses lors de l’utilisation de sources de données externes, celles-ci pouvant être référencées par leur nom à la place. Closes [#28367](https://github.com/ClickHouse/ClickHouse/issues/28367). [#28577](https://github.com/ClickHouse/ClickHouse/pull/28577) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la database `INFORMATION_SCHEMA` avec les vues `SCHEMATA`, `TABLES`, `VIEWS` et `COLUMNS`, correspondant aux tables de la database `system`. Closes [#9770](https://github.com/ClickHouse/ClickHouse/issues/9770). [#28691](https://github.com/ClickHouse/ClickHouse/pull/28691) ([tavplubix](https://github.com/tavplubix)).
* Prise en charge de `EXISTS (subquery)`. Closes [#6852](https://github.com/ClickHouse/ClickHouse/issues/6852). [#29731](https://github.com/ClickHouse/ClickHouse/pull/29731) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Logging de session pour l’audit. Enregistrement de tous les événements de connexion et de déconnexion, réussis comme échoués, dans une nouvelle table `system.session_log`. [#22415](https://github.com/ClickHouse/ClickHouse/pull/22415) ([Vasily Nemkov](https://github.com/Enmk)) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge des fonctions multidimensionnelles de cosine distance et d’euclidean distance, ainsi que des distances et normes L1, L2, Lp et Linf. Produit scalaire sur les tuples et divers operators arithmétiques sur les tuples. Cela clôt entièrement [#4509](https://github.com/ClickHouse/ClickHouse/issues/4509), et même plus encore. [#27933](https://github.com/ClickHouse/ClickHouse/pull/27933) ([Alexey Boykov](https://github.com/mathalex)).
* Ajout de la prise en charge de la compression et de la décompression pour `INTO OUTFILE` et `FROM INFILE` (avec autodétection ou avec un paramètre optionnel supplémentaire). [#27135](https://github.com/ClickHouse/ClickHouse/pull/27135) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Ajout de la prise en charge de CORS (Cross Origin Resource Sharing) avec la requête HTTP `OPTIONS`. Cela signifie que Grafana fonctionnera désormais avec des requêtes serverless sans contournements. Clôture [#18693](https://github.com/ClickHouse/ClickHouse/issues/18693). [#29155](https://github.com/ClickHouse/ClickHouse/pull/29155) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Les requêtes avec JOIN ON prennent désormais en charge les disjonctions (OR). [#21320](https://github.com/ClickHouse/ClickHouse/pull/21320) ([Ilya Golshtein](https://github.com/ilejn)).
* Ajout de la fonction `tokens`. Elle permet de découper une chaîne en tokens en utilisant des caractères ASCII non alphanumériques comme séparateurs. [#29981](https://github.com/ClickHouse/ClickHouse/pull/29981) ([Maksim Kita](https://github.com/kitaisreal)). Ajout de la fonction `ngrams` pour extraire des ngrams du texte. Clôture [#29699](https://github.com/ClickHouse/ClickHouse/issues/29699). [#29738](https://github.com/ClickHouse/ClickHouse/pull/29738) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de fonctions de normalisation Unicode : `normalizeUTF8NFC`, `normalizeUTF8NFD`, `normalizeUTF8NFKC`, `normalizeUTF8NFKD`. [#28633](https://github.com/ClickHouse/ClickHouse/pull/28633) ([darkkeks](https://github.com/darkkeks)).
* Consommation en streaming des fichiers de logs applicatifs dans ClickHouse avec le moteur de table `FileLog`. C'est comme le moteur `Kafka` ou `RabbitMQ`, mais pour les logs en ajout seul et avec rotation dans le système de fichiers local. Clôture [#6953](https://github.com/ClickHouse/ClickHouse/issues/6953). [#25969](https://github.com/ClickHouse/ClickHouse/pull/25969) ([flynn](https://github.com/ucasfl)) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout du format de sortie `CapnProto`, refactorisation du format d'entrée `CapnProto`. [#29291](https://github.com/ClickHouse/ClickHouse/pull/29291) ([Kruglov Pavel](https://github.com/Avogar)).
* Autorise l'écriture d'un nombre dans une requête sous forme de littéral binaire. Exemple : `SELECT 0b001;`. [#29304](https://github.com/ClickHouse/ClickHouse/pull/29304) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout du type de dictionnaire `hashed_array`. Il permet d'économiser de la mémoire lors de l'utilisation de dictionnaires avec plusieurs attributs. Clôture [#30236](https://github.com/ClickHouse/ClickHouse/issues/30236). [#30242](https://github.com/ClickHouse/ClickHouse/pull/30242) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction `JSONExtractKeys`. [#30056](https://github.com/ClickHouse/ClickHouse/pull/30056) ([Vitaly](https://github.com/orloffv)).
* Ajout d'une fonction `getOSKernelVersion` : elle renvoie une chaîne contenant la version du noyau de l'OS. [#29755](https://github.com/ClickHouse/ClickHouse/pull/29755) ([Memo](https://github.com/Joeywzr)).
* Ajout des fonctions `MD4` et `SHA384`. MD4 est une fonction de hachage obsolète et non sécurisée ; elle ne peut être utilisée que dans les rares cas où MD4 est déjà utilisée dans un ancien système et où vous devez obtenir exactement le même résultat. [#29602](https://github.com/ClickHouse/ClickHouse/pull/29602) ([Nikita Tikhomirov](https://github.com/NSTikhomirov)).
* HSTS peut être activé pour le serveur HTTP de ClickHouse en définissant `hsts_max_age` dans le fichier de configuration avec une valeur positive. [#29516](https://github.com/ClickHouse/ClickHouse/pull/29516) ([凌涛](https://github.com/lingtaolf)).
* Prise en charge de Huawei OBS Storage. Clôture [#24294](https://github.com/ClickHouse/ClickHouse/issues/24294). [#29511](https://github.com/ClickHouse/ClickHouse/pull/29511) ([kevin wan](https://github.com/MaxWk)).
* Nouvelle fonction `mapContainsKeyLike` pour obtenir la map dont la clé correspond à une expression régulière simple. [#29471](https://github.com/ClickHouse/ClickHouse/pull/29471) ([凌涛](https://github.com/lingtaolf)). Nouvelle fonction `mapExtractKeyLike` pour obtenir la map en ne conservant que les éléments correspondant au motif spécifié. [#30793](https://github.com/ClickHouse/ClickHouse/pull/30793) ([凌涛](https://github.com/lingtaolf)).
* Implémentation de `ALTER TABLE x MODIFY COMMENT`. [#29264](https://github.com/ClickHouse/ClickHouse/pull/29264) ([Vasily Nemkov](https://github.com/Enmk)).
* Ajoute des fonctions d’inspection H3 absentes de ClickHouse mais disponibles via l’API H3 : [https://h3geo.org/docs/api/inspection](https://h3geo.org/docs/api/inspection). [#29209](https://github.com/ClickHouse/ClickHouse/pull/29209) ([Bharat Nallan](https://github.com/bharatnc)).
* Autorise `ALTER TABLE FETCH` et `ATTACH` non répliqués dans les bases de données Replicated. [#29202](https://github.com/ClickHouse/ClickHouse/pull/29202) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Ajoute le paramètre `output_format_csv_null_representation` : identique à `output_format_tsv_null_representation`, mais pour la sortie CSV. [#29123](https://github.com/ClickHouse/ClickHouse/pull/29123) ([PHO](https://github.com/depressed-pho)).
* Ajoute la fonction `zookeeperSessionUptime()`, qui renvoie la durée de la session ZooKeeper actuelle en secondes. [#28983](https://github.com/ClickHouse/ClickHouse/pull/28983) ([tavplubix](https://github.com/tavplubix)).
* Implémente la fonction `h3ToGeoBoundary`. [#28952](https://github.com/ClickHouse/ClickHouse/pull/28952) ([Ivan Veselov](https://github.com/fuzzERot)).
* Ajoute la fonction d’agrégation `exponentialMovingAverage`, qui peut être utilisée comme fonction de fenêtre. Clôt [#27511](https://github.com/ClickHouse/ClickHouse/issues/27511). [#28914](https://github.com/ClickHouse/ClickHouse/pull/28914) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autorise l’inclusion des sous-colonnes des colonnes de table dans le résultat de la requête `DESCRIBE` (activable avec le paramètre `describe_include_subcolumns`). [#28905](https://github.com/ClickHouse/ClickHouse/pull/28905) ([Anton Popov](https://github.com/CurtizJ)).
* `Executable` et `ExecutablePool` ajoutent l’option `send_chunk_header`. Si cette option est activée, le nombre de lignes du chunk `rows&#95;count`, suivi d’un saut de ligne, est envoyé au client avant le chunk. [#28833](https://github.com/ClickHouse/ClickHouse/pull/28833) ([Maksim Kita](https://github.com/kitaisreal)).
* `tokenbf_v1` et `ngram` prennent en charge le type Map avec une clé de type String ou FixedSring. Cela améliore le data skipping dans les requêtes avec filtre sur une clé de map. `sql CREATE TABLE map_tokenbf ( row_id UInt32, map Map(String, String), INDEX map_tokenbf map TYPE ngrambf_v1(4,256,2,0) GRANULARITY 1 ) Engine=MergeTree() Order by id ` Avec la table ci-dessus, la requête `select * from map_tokebf where map['K']='V'` ignorera le granule qui ne contient pas la clé `A`. Bien sûr, le nombre de lignes ignorées dépend de la `granularity` et de `index_granularity` définies. [#28511](https://github.com/ClickHouse/ClickHouse/pull/28511) ([凌涛](https://github.com/lingtaolf)).
* Envoie les profile events du serveur au client. Un nouveau packet type `ProfileEvents` a été introduit. Clôt [#26177](https://github.com/ClickHouse/ClickHouse/issues/26177). [#28364](https://github.com/ClickHouse/ClickHouse/pull/28364) ([Dmitry Novik](https://github.com/novikd)).
* Ajoute des opérations de décalage de bits pour les types de données `FixedString` et `String`. Clôt [#27763](https://github.com/ClickHouse/ClickHouse/issues/27763). [#28325](https://github.com/ClickHouse/ClickHouse/pull/28325) ([小路](https://github.com/nicelulu)).
* Prise en charge de l'ajout et de la suppression dynamiques de tables à répliquer depuis PostgreSQL dans le moteur de base de données MaterializedPostgreSQL. Prise en charge d'ALTER pour les paramètres de la base de données. Résout [#27573](https://github.com/ClickHouse/ClickHouse/issues/27573). [#28301](https://github.com/ClickHouse/ClickHouse/pull/28301) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la fonction accurateCastOrDefault(x, T). Résout [#21330](https://github.com/ClickHouse/ClickHouse/issues/21330). Auteur : @taiyang-li. [#23028](https://github.com/ClickHouse/ClickHouse/pull/23028) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout des fonctions `toUUIDOrDefault`, `toUInt8/16/32/64/256OrDefault`, `toInt8/16/32/64/128/256OrDefault`, qui permettent à l'utilisateur de définir une valeur par défaut (non NULL) en cas d'échec de l'analyse de chaîne. [#21330](https://github.com/ClickHouse/ClickHouse/pull/21330) ([taiyang-li](https://github.com/taiyang-li)).

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

* Les background merges peuvent désormais se préempter entre eux et sont planifiés avec des priorités appropriées. Les merges de longue durée n’empêcheront donc plus les merges courts de s’exécuter. Cela permet de mieux planifier et contrôler l’exécution des merges. Cela réduit le risque d’obtenir l’erreur "too many parts". [#22381](https://github.com/ClickHouse/ClickHouse/issues/22381). [#25165](https://github.com/ClickHouse/ClickHouse/pull/25165) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Ajout de la possibilité d’exécuter plus de merges et de mutations que le nombre de threads dans le background pool. Les merges et les mutations seront exécutés étape par étape en fonction de leur taille (les plus petites étant prioritaires). Le ratio entre le nombre de tâches et de threads d’exécution est contrôlé par le paramètre `background_merges_mutations_concurrency_ratio`, défini sur 2 par défaut. [#29140](https://github.com/ClickHouse/ClickHouse/pull/29140) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Autorise l’utilisation de reads asynchrones pour les remote filesystems. Réduit le nombre d’opérations `seek` lors de la lecture depuis des remote filesystems. Cela améliore considérablement les performances et permet aux disks expérimentaux `web` et `s3` d’être plus rapides qu’EBS dans certaines conditions. [#29205](https://github.com/ClickHouse/ClickHouse/pull/29205) ([Kseniia Sumarokova](https://github.com/kssenii)). Par ailleurs, le type de disk `web` (dataset statique hébergé sur un serveur web) passe du statut expérimental à un statut prêt pour la production.
* Les queries avec `INTO OUTFILE` dans `clickhouse-client` utiliseront plusieurs threads. Correction du problème de clignotement de la barre de progression lors de l’utilisation de `INTO OUTFILE`. Ceci clôt [#30873](https://github.com/ClickHouse/ClickHouse/issues/30873). Ceci clôt [#30872](https://github.com/ClickHouse/ClickHouse/issues/30872). [#30886](https://github.com/ClickHouse/ClickHouse/pull/30886) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Réduit la quantité de données compressed redondantes lues depuis le disk pour certains types de queries `SELECT` (uniquement pour la famille d’engines `MergeTree`). [#30111](https://github.com/ClickHouse/ClickHouse/pull/30111) ([alesapin](https://github.com/alesapin)).
* Supprime certains appels `seek` redondants lors de la lecture de blocks compressed dans la famille des table engines MergeTree. [#29766](https://github.com/ClickHouse/ClickHouse/pull/29766) ([alesapin](https://github.com/alesapin)).
* Permet à la table function `url` de traiter plusieurs URL en parallèle. Ceci clôt [#29670](https://github.com/ClickHouse/ClickHouse/issues/29670) et clôt [#29671](https://github.com/ClickHouse/ClickHouse/issues/29671). [#29673](https://github.com/ClickHouse/ClickHouse/pull/29673) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Améliore les performances de l’aggregation dans l’ordre de la primary key (avec le paramètre `optimize_aggregation_in_order` activé). [#30266](https://github.com/ClickHouse/ClickHouse/pull/30266) ([Anton Popov](https://github.com/CurtizJ)).
* Désormais, ClickHouse utilise le DNS cache lors de la communication avec S3 externe. [#29999](https://github.com/ClickHouse/ClickHouse/pull/29999) ([alesapin](https://github.com/alesapin)).
* Ajoute la prise en charge du pushdown de `IS NULL`/`IS NOT NULL` vers des databases externes (par ex. MySQL). [#29463](https://github.com/ClickHouse/ClickHouse/pull/29463) ([Azat Khuzhin](https://github.com/azat)). Transforme `isNull`/`isNotNull` en `IS NULL`/`IS NOT NULL` (pour les dbs externes, par ex. MySQL). [#29446](https://github.com/ClickHouse/ClickHouse/pull/29446) ([Azat Khuzhin](https://github.com/azat)).
* Les queries `SELECT` sur des tables Dictionary utiliseront plusieurs threads. [#30500](https://github.com/ClickHouse/ClickHouse/pull/30500) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances du filtrage (opération WHERE) des columns `Decimal`. [#30431](https://github.com/ClickHouse/ClickHouse/pull/30431) ([Jun Jin](https://github.com/vesslanjin)).
* Supprime le code à branchements dans l’opération de filtre grâce à une meilleure implémentation avec `popcnt`/`ctz`, plus performante. [#29881](https://github.com/ClickHouse/ClickHouse/pull/29881) ([Jun Jin](https://github.com/vesslanjin)).
* Améliore la fonction tout-en-un de génération du masque d’octets du filtre (utilisée pour l’opérateur WHERE) à l’aide des instructions SSE/AVX2/AVX512. Notez que, par défaut, ClickHouse utilise uniquement SSE ; cela n’est donc pertinent que pour les builds personnalisés. [#30014](https://github.com/ClickHouse/ClickHouse/pull/30014) ([jasperzhu](https://github.com/jinjunzh)). [#30670](https://github.com/ClickHouse/ClickHouse/pull/30670) ([jasperzhu](https://github.com/jinjunzh)).
* Améliore les performances de la fonction d’agrégation SUM pour les nombres à virgule flottante Nullable. [#28906](https://github.com/ClickHouse/ClickHouse/pull/28906) ([Raúl Marín](https://github.com/Algunenano)).
* Accélère le processus de chargement des parts lorsque plusieurs disques sont utilisés. L’idée est similaire à [https://github.com/ClickHouse/ClickHouse/pull/16423](https://github.com/ClickHouse/ClickHouse/pull/16423) . L’environnement de production montre une amélioration : 24 min -> 16 min . [#28363](https://github.com/ClickHouse/ClickHouse/pull/28363) ([Amos Bird](https://github.com/amosbird)).
* Réduit la taille par défaut des parts pour les multipart uploads S3 afin de diminuer l’utilisation mémoire. [#28679](https://github.com/ClickHouse/ClickHouse/pull/28679) ([ianton-ru](https://github.com/ianton-ru)).
* Accélère la fonction `bitmapAnd`. [#28332](https://github.com/ClickHouse/ClickHouse/pull/28332) ([dddounaiking](https://github.com/OodounaikingoO)).
* Supprime les notifications de mutation sous-optimales dans `StorageMergeTree` lorsque des merges sont toujours en cours. [#27552](https://github.com/ClickHouse/ClickHouse/pull/27552) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Tente d’améliorer les performances de la comparaison de chaînes. [#28767](https://github.com/ClickHouse/ClickHouse/pull/28767) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* L’index de clé primaire et le filtre de partition peuvent fonctionner sur un tuple. [#29281](https://github.com/ClickHouse/ClickHouse/pull/29281) ([凌涛](https://github.com/lingtaolf)).
* Si une requête contient plusieurs fonctions d’agrégation quantile avec les mêmes arguments mais un paramètre de niveau différent, elles seront fusionnées et exécutées en un seul passage si le setting `optimize_syntax_fuse_functions` est activé. [#26657](https://github.com/ClickHouse/ClickHouse/pull/26657) ([hexiaoting](https://github.com/hexiaoting)).
* Désormais, l’agrégation min-max sur la première expression de la clé primaire est optimisée par projection. Cela concerne [#329](https://github.com/ClickHouse/ClickHouse/issues/329). [#29918](https://github.com/ClickHouse/ClickHouse/pull/29918) ([Amos Bird](https://github.com/amosbird)).

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

* Ajout de la possibilité de modifier la configuration des nœuds (dans le fichier `.xml`) pour ClickHouse Keeper. [#30372](https://github.com/ClickHouse/ClickHouse/pull/30372) ([alesapin](https://github.com/alesapin)).
* Ajout de la fonction d’agrégation `sparkbar`. Cela clôture [#26175](https://github.com/ClickHouse/ClickHouse/issues/26175). [#27481](https://github.com/ClickHouse/ClickHouse/pull/27481) ([小路](https://github.com/nicelulu)). Note : cette fonction présente un défaut et son comportement sera modifié dans les versions futures.

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

* Permettre à l’utilisateur de modifier les niveaux de journalisation sans redémarrage. [#29586](https://github.com/ClickHouse/ClickHouse/pull/29586) ([Nikolay Degterinsky](https://github.com/evillique)).
* Plusieurs améliorations pour les SQL UDF. Les requêtes de manipulation des SQL User Defined Functions prennent désormais en charge la clause ON CLUSTER. Exemple : `CREATE FUNCTION test_function ON CLUSTER 'cluster' AS x -> x + 1;`. Corrige [#30666](https://github.com/ClickHouse/ClickHouse/issues/30666). [#30734](https://github.com/ClickHouse/ClickHouse/pull/30734) ([Maksim Kita](https://github.com/kitaisreal)). Prise en charge des syntaxes `CREATE OR REPLACE` et `CREATE IF NOT EXISTS`. [#30454](https://github.com/ClickHouse/ClickHouse/pull/30454) ([Maksim Kita](https://github.com/kitaisreal)). Ajout de la prise en charge de `DROP IF EXISTS`. Exemple : `DROP FUNCTION IF EXISTS test_function`. [#30437](https://github.com/ClickHouse/ClickHouse/pull/30437) ([Maksim Kita](https://github.com/kitaisreal)). Prise en charge des lambdas. Exemple : `CREATE FUNCTION lambda_function AS x -> arrayMap(element -> element * 2, x);`. [#30435](https://github.com/ClickHouse/ClickHouse/pull/30435) ([Maksim Kita](https://github.com/kitaisreal)). Prise en charge des fonctions SQL définies par l’utilisateur pour `clickhouse-local`. [#30179](https://github.com/ClickHouse/ClickHouse/pull/30179) ([Maksim Kita](https://github.com/kitaisreal)).
* Activer globalement le Profiler mémoire par query (avec `memory_profiler_step` = 4MiB). [#29455](https://github.com/ClickHouse/ClickHouse/pull/29455) ([Azat Khuzhin](https://github.com/azat)).
* Ajout des columns `data_compressed_bytes`, `data_uncompressed_bytes`, `marks_bytes` dans `system.data_skipping_indices`. Ajout des columns `secondary_indices_compressed_bytes`, `secondary_indices_uncompressed_bytes`, `secondary_indices_marks_bytes` dans `system.parts`. Corrige [#29697](https://github.com/ClickHouse/ClickHouse/issues/29697). [#29896](https://github.com/ClickHouse/ClickHouse/pull/29896) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajouter l’alias `table` à `system.tables` et l’alias `database` à `system.databases` [#29677](https://github.com/ClickHouse/ClickHouse/issues/29677). [#29882](https://github.com/ClickHouse/ClickHouse/pull/29882) ([kevin wan](https://github.com/MaxWk)).
* Résoudre correctement les interdépendances entre les tables au démarrage du server. Corrige [#8004](https://github.com/ClickHouse/ClickHouse/issues/8004), corrige [#15170](https://github.com/ClickHouse/ClickHouse/issues/15170). [#28373](https://github.com/ClickHouse/ClickHouse/pull/28373) ([tavplubix](https://github.com/tavplubix)).
* Éviter l’error "Division by zero" lorsque le dénominateur est Nullable dans les fonctions `divide`, `intDiv` et `modulo`. Corrige [#22621](https://github.com/ClickHouse/ClickHouse/issues/22621). [#28352](https://github.com/ClickHouse/ClickHouse/pull/28352) ([Kruglov Pavel](https://github.com/Avogar)).
* Permettre d’analyser les values du Data type `Date` dans les text formats au format `YYYYMMDD`, en plus de `YYYY-MM-DD`. Cela corrige [#30870](https://github.com/ClickHouse/ClickHouse/issues/30870). [#30871](https://github.com/ClickHouse/ClickHouse/pull/30871) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Web UI : afficher des barres dans les cell de table. [#29792](https://github.com/ClickHouse/ClickHouse/pull/29792) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* L'utilisateur peut désormais créer des dictionnaires avec des commentaires : `CREATE DICTIONARY ... COMMENT 'vaue'` ... [#29899](https://github.com/ClickHouse/ClickHouse/pull/29899) ([Vasily Nemkov](https://github.com/Enmk)). Les utilisateurs peuvent désormais définir des commentaires sur une base de données dans l'instruction `CREATE DATABASE` ... [#29429](https://github.com/ClickHouse/ClickHouse/pull/29429) ([Vasily Nemkov](https://github.com/Enmk)).
* Introduction du paramètre `compiled_expression_cache_elements_size`. Si jamais vous avez besoin d'utiliser ce paramètre, vous saurez déjà à quoi il sert. [#30667](https://github.com/ClickHouse/ClickHouse/pull/30667) ([Maksim Kita](https://github.com/kitaisreal)).
* clickhouse-format prend désormais en charge l'option `--query`. Dans les versions précédentes, il fallait passer la requête via stdin. [#29325](https://github.com/ClickHouse/ClickHouse/pull/29325) ([凌涛](https://github.com/lingtaolf)).
* Prise en charge de `ALTER TABLE` pour les tables des bases de données `Memory`. Les bases de données `Memory` sont utilisées dans `clickhouse-local`. [#30866](https://github.com/ClickHouse/ClickHouse/pull/30866) ([tavplubix](https://github.com/tavplubix)).
* Les arrays de tous les types sérialisables sont désormais pris en charge par `arrayStringConcat`. [#30840](https://github.com/ClickHouse/ClickHouse/pull/30840) ([Nickita Taranov](https://github.com/nickitat)).
* ClickHouse tient désormais compte des limitations de docker/cgroups pour déterminer la quantité de mémoire système. Voir [#25662](https://github.com/ClickHouse/ClickHouse/issues/25662). [#30574](https://github.com/ClickHouse/ClickHouse/pull/30574) ([Pavel Medvedev](https://github.com/pmed)).
* La structure de table récupérée pour la base de données PostgreSQL est désormais plus fiable. [#30477](https://github.com/ClickHouse/ClickHouse/pull/30477) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge complète des arguments positionnels dans GROUP BY et ORDER BY. [#30433](https://github.com/ClickHouse/ClickHouse/pull/30433) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Autorise l'extraction sous forme de chaîne d'un élément qui n'est pas une chaîne avec JSONExtractString. Voir [pull/25452#issuecomment-927123287](https://github.com/ClickHouse/ClickHouse/pull/25452#issuecomment-927123287). [#30426](https://github.com/ClickHouse/ClickHouse/pull/30426) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la possibilité d'utiliser la clause FINAL dans les requêtes SELECT sur `GraphiteMergeTree`. [#30360](https://github.com/ClickHouse/ClickHouse/pull/30360) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Améliorations mineures du clonage de replica et de la mise en file d'attente du fetch pour les parts corrompues, ce qui devrait éviter de très rares blocages des entrées `GET_PART` dans la replication queue. [#30346](https://github.com/ClickHouse/ClickHouse/pull/30346) ([tavplubix](https://github.com/tavplubix)).
* Autorise les liens symboliques vers des fichiers dans le répertoire `user_files` pour la table function file. [#30309](https://github.com/ClickHouse/ClickHouse/pull/30309) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la comparaison de `Date32` avec `Date`, `DateTime`, `DateTime64` et `String`. [#30219](https://github.com/ClickHouse/ClickHouse/pull/30219) ([liang.huang](https://github.com/lhuang09287750)).
* Autorise la suppression de l'expression `SAMPLE BY` des tables `MergeTree` (`ALTER TABLE <table> REMOVE SAMPLE BY`). [#30180](https://github.com/ClickHouse/ClickHouse/pull/30180) ([Anton Popov](https://github.com/CurtizJ)).
* Désormais, `Keeper` (dans `clickhouse-server`) démarrera de manière asynchrone s'il peut se connecter à un autre nœud. [#30170](https://github.com/ClickHouse/ClickHouse/pull/30170) ([alesapin](https://github.com/alesapin)).
* Désormais, `clickhouse-client` prend en charge l'édition multiligne native. [#30143](https://github.com/ClickHouse/ClickHouse/pull/30143) ([Amos Bird](https://github.com/amosbird)).
* Dictionnaires `polygon` (géocodage inverse) : ajout de la prise en charge de la lecture du contenu du dictionnaire avec la méthode de requête SELECT si le paramètre `store_polygon_key_column` = true. Clôt [#30090](https://github.com/ClickHouse/ClickHouse/issues/30090). [#30142](https://github.com/ClickHouse/ClickHouse/pull/30142) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout du logo ClickHouse à l’interface Play. [#29674](https://github.com/ClickHouse/ClickHouse/pull/29674) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Message d’exception amélioré lors de la lecture d’une colonne depuis des formats pris en charge par Arrow, comme `Arrow`, `ArrowStream`, `Parquet` et `ORC`. Clôt [#29926](https://github.com/ClickHouse/ClickHouse/issues/29926). [#29927](https://github.com/ClickHouse/ClickHouse/pull/29927) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’une situation de concurrence entre flush et le démarrage dans les tables `Buffer`. Cela peut se produire dans les tests. [#29930](https://github.com/ClickHouse/ClickHouse/pull/29930) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une inversion de l’ordre des verrous entre `DROP TABLE` pour `DatabaseMemory` et `LiveView`. Live View est une fonctionnalité expérimentale. La base de données Memory est utilisée dans clickhouse-local. [#29929](https://github.com/ClickHouse/ClickHouse/pull/29929) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une inversion de l’ordre des verrous entre le rechargement périodique du dictionnaire et celui de la config. [#29928](https://github.com/ClickHouse/ClickHouse/pull/29928) ([Azat Khuzhin](https://github.com/azat)).
* Mise à jour des fichiers zoneinfo vers la version 2021c. [#29925](https://github.com/ClickHouse/ClickHouse/pull/29925) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de la possibilité de configurer les tentatives de nouvelle exécution et les délais entre celles-ci pour `clickhouse-copier`. [#29921](https://github.com/ClickHouse/ClickHouse/pull/29921) ([Azat Khuzhin](https://github.com/azat)).
* Ajout du paramètre serveur `shutdown_wait_unfinished_queries` pour permettre d’attendre la fin des requêtes en cours d’exécution jusqu’à la durée `shutdown_wait_unfinished`. Cela concerne [#24451](https://github.com/ClickHouse/ClickHouse/issues/24451). [#29914](https://github.com/ClickHouse/ClickHouse/pull/29914) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la possibilité de tracer le pic d’utilisation de la mémoire (avec un nouveau trace\_type dans `system.trace_log` : `MemoryPeak`). [#29858](https://github.com/ClickHouse/ClickHouse/pull/29858) ([Azat Khuzhin](https://github.com/azat)).
* Tables externes PostgreSQL : ajout du préfixe de table partitionnée 'p' à la requête de récupération de l’index d’identité de réplica. [#29828](https://github.com/ClickHouse/ClickHouse/pull/29828) ([Shoh Jahon](https://github.com/Shohjahon)).
* Application de `max_untracked_memory`/`memory_profiler_step`/`memory_profiler_sample_probability` pendant les opérations de mutation/fusion afin de profiler l’utilisation de la mémoire lors des fusions. [#29681](https://github.com/ClickHouse/ClickHouse/pull/29681) ([Azat Khuzhin](https://github.com/azat)).
* Obfuscateur de requêtes : `clickhouse-format --obfuscate` fonctionne désormais avec davantage de types de requêtes. [#29672](https://github.com/ClickHouse/ClickHouse/pull/29672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du problème suivant : `clickhouse-format --obfuscate` ne peut pas traiter les requêtes avec des dictionnaires intégrés (fonctions `regionTo...`). [#29667](https://github.com/ClickHouse/ClickHouse/pull/29667) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du traitement incorrect de Nullable dans les fonctions JSON. Cela corrige [#29615](https://github.com/ClickHouse/ClickHouse/issues/29615). Marqué comme amélioration car [https://github.com/ClickHouse/ClickHouse/pull/28012](https://github.com/ClickHouse/ClickHouse/pull/28012) n’est pas publié. [#29659](https://github.com/ClickHouse/ClickHouse/pull/29659) ([Amos Bird](https://github.com/amosbird)).
* Augmentation de `listen_backlog` par défaut (pour l’aligner sur la valeur par défaut des versions plus récentes du noyau Linux). [#29643](https://github.com/ClickHouse/ClickHouse/pull/29643) ([Azat Khuzhin](https://github.com/azat)).
* Rechargement des dictionnaires, des modèles et des fonctions exécutables définies par l’utilisateur si la config du serveur `dictionaries_config`, `models_config`, `user_defined_executable_functions_config` change. Clôt [#28142](https://github.com/ClickHouse/ClickHouse/issues/28142). [#29529](https://github.com/ClickHouse/ClickHouse/pull/29529) ([Maksim Kita](https://github.com/kitaisreal)).
* Suppression d’une restriction inutile sur le nom des projections. Désormais, le nom d’une projection peut commencer par `tmp_`. [#29520](https://github.com/ClickHouse/ClickHouse/pull/29520) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’erreur `There is no query or query context has expired` dans les mutations avec des sous-requêtes imbriquées. Les sous-requêtes ne sont pas autorisées dans une mutation si la table est répliquée et que le paramètre `allow_nondeterministic_mutations` est désactivé. [#29495](https://github.com/ClickHouse/ClickHouse/pull/29495) ([tavplubix](https://github.com/tavplubix)).
* Application des changements de config à `max_concurrent_queries` à chaud (sans redémarrage). [#29414](https://github.com/ClickHouse/ClickHouse/pull/29414) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout du paramètre `use_skip_indexes`. [#29405](https://github.com/ClickHouse/ClickHouse/pull/29405) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la prise en charge de `FREEZE` pour les parts en mémoire (pour les sauvegardes). [#29376](https://github.com/ClickHouse/ClickHouse/pull/29376) ([Mo Xuan](https://github.com/mo-avatar)).
* Transmission de `initial query&#95;id` pour `clickhouse-benchmark` (auparavant, si vous exécutiez une requête distante via `clickhouse-benchmark`, les requêtes sur les shards n’étaient pas associées à la requête initiale via `initial_query_id`). [#29364](https://github.com/ClickHouse/ClickHouse/pull/29364) ([Azat Khuzhin](https://github.com/azat)).
* Index de saut `tokenbf_v1` et `ngrambf_v1` : ajout de la prise en charge du type de données `Array` avec une clé de type `String` ou `FixedString`. [#29280](https://github.com/ClickHouse/ClickHouse/pull/29280) ([Maksim Kita](https://github.com/kitaisreal)). Les index de saut `tokenbf_v1` et `ngrambf_v1` prennent désormais en charge le type de données `Map` avec une clé de type `String` ou `FixedString`. Auteur : @lingtaolf. [#29220](https://github.com/ClickHouse/ClickHouse/pull/29220) ([Maksim Kita](https://github.com/kitaisreal)).
* Fonction `has` : ajout de la prise en charge du type de données `Map`. [#29267](https://github.com/ClickHouse/ClickHouse/pull/29267) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout du paramètre `compress_logs` pour ClickHouse Keeper, qui permet de compresser les logs de ClickHouse Keeper (pour la machine à états répliquée) en `ZSTD`. Implémente : [#26977](https://github.com/ClickHouse/ClickHouse/issues/26977). [#29223](https://github.com/ClickHouse/ClickHouse/pull/29223) ([alesapin](https://github.com/alesapin)).
* Ajout d’un paramètre `external_table_strict_query` - il force la transmission de l’intégralité de l’expression WHERE dans les requêtes vers des bases de données externes, même si elle est incompatible. [#29206](https://github.com/ClickHouse/ClickHouse/pull/29206) ([Azat Khuzhin](https://github.com/azat)).
* Désactivation des projections lorsque `ARRAY JOIN` est utilisé. Dans les versions précédentes, l’analyse des projections pouvait casser les alias dans `ARRAY JOIN`. [#29139](https://github.com/ClickHouse/ClickHouse/pull/29139) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge d’un plus grand nombre de types dans le format d’entrée/sortie `MsgPack`. [#29077](https://github.com/ClickHouse/ClickHouse/pull/29077) ([Kruglov Pavel](https://github.com/Avogar)).
* Autorise la lecture et l’écriture de colonnes `LowCardinality` au format d’entrée/sortie `ORC`. [#29062](https://github.com/ClickHouse/ClickHouse/pull/29062) ([Kruglov Pavel](https://github.com/Avogar)).
* Un `SELECT` sur `system.distributed_ddl_queue` pouvait afficher des valeurs incorrectes ; c’est corrigé. [#29061](https://github.com/ClickHouse/ClickHouse/pull/29061) ([tavplubix](https://github.com/tavplubix)).
* Corrige le comportement en présence de méthodes inconnues pour les connexions HTTP. Résout [#29050](https://github.com/ClickHouse/ClickHouse/issues/29050). [#29057](https://github.com/ClickHouse/ClickHouse/pull/29057) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* `clickhouse-keeper` : corrige un bug dans `clickhouse-keeper-converter` qui pouvait entraîner une perte partielle de données lors d’une restauration à partir des logs ZooKeeper (et non d’un snapshot). [#29030](https://github.com/ClickHouse/ClickHouse/pull/29030) ([小路](https://github.com/nicelulu)). Corrige un bug dans `clickhouse-keeper-converter` qui pouvait entraîner une désérialisation incorrecte des logs ZooKeeper. [#29071](https://github.com/ClickHouse/ClickHouse/pull/29071) ([小路](https://github.com/nicelulu)).
* Applique les paramètres des requêtes `CREATE ... AS SELECT` (corrige [#28810](https://github.com/ClickHouse/ClickHouse/issues/28810)). [#28962](https://github.com/ClickHouse/ClickHouse/pull/28962) ([Azat Khuzhin](https://github.com/azat)).
* Respecte le paramètre de base de données par défaut pour ALTER TABLE ... ON CLUSTER ... REPLACE/MOVE PARTITION FROM/TO ... [#28955](https://github.com/ClickHouse/ClickHouse/pull/28955) ([anneji-dev](https://github.com/anneji-dev)).
* Protocole gRPC : permet de modifier la compression côté serveur depuis le client. [#28953](https://github.com/ClickHouse/ClickHouse/pull/28953) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ignore l’exception "no data" lors de la lecture des capteurs thermiques pour les métriques asynchrones. Cela clôt [#28852](https://github.com/ClickHouse/ClickHouse/issues/28852). [#28882](https://github.com/ClickHouse/ClickHouse/pull/28882) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige une rare condition de concurrence logique pouvant provoquer l’erreur `Dictionary not found` pour un dictionnaire existant. [#28853](https://github.com/ClickHouse/ClickHouse/pull/28853) ([tavplubix](https://github.com/tavplubix)).
* Assouplit la vérification des fonctions imbriquées pour le combinator If (mais interdit les combinators identiques imbriqués). [#28828](https://github.com/ClickHouse/ClickHouse/pull/28828) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une exception potentiellement non interceptée lors de l’arrêt du serveur. [#28761](https://github.com/ClickHouse/ClickHouse/pull/28761) ([Azat Khuzhin](https://github.com/azat)).
* Interdit le nettoyage des répertoires tmp susceptibles d’être utilisés par une mutation/fusion active si la mutation/fusion est exceptionnellement longue. [#28760](https://github.com/ClickHouse/ClickHouse/pull/28760) ([Azat Khuzhin](https://github.com/azat)).
* Autorise l’optimisation `optimize_arithmetic_operations_in_aggregate_functions = 1` lorsqu’un alias est utilisé. [#28746](https://github.com/ClickHouse/ClickHouse/pull/28746) ([Amos Bird](https://github.com/amosbird)).
* Implémente le paramètre `detach_not_byte_identical_parts` pour `ReplicatedMergeTree`, qui détache au lieu de supprimer les parts non identiques octet par octet (après fusion/mutation). [#28708](https://github.com/ClickHouse/ClickHouse/pull/28708) ([Azat Khuzhin](https://github.com/azat)).
* Implémente le paramètre `max_suspicious_broken_parts_bytes` pour `MergeTree` (afin de limiter la taille totale de toutes les parts corrompues ; la valeur par défaut est `1GiB`). [#28707](https://github.com/ClickHouse/ClickHouse/pull/28707) ([Azat Khuzhin](https://github.com/azat)).
* Activer l’expansion des macros dans les paramètres de table `RabbitMQ`. [#28683](https://github.com/ClickHouse/ClickHouse/pull/28683) ([Vitaly Baranov](https://github.com/vitlibar)).
* Rétablir la possibilité de lire les données d’une table avec le moteur `Log` sur plusieurs threads. [#28125](https://github.com/ClickHouse/ClickHouse/pull/28125) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corriger le comportement incorrect de la gestion des colonnes NULL dans les fonctions JSON. Cela corrige [#27930](https://github.com/ClickHouse/ClickHouse/issues/27930). [#28012](https://github.com/ClickHouse/ClickHouse/pull/28012) ([Amos Bird](https://github.com/amosbird)).
* Permettre de définir, indépendamment des colonnes, la taille du cache Mark/Uncompressed pour les indices de saut. [#27961](https://github.com/ClickHouse/ClickHouse/pull/27961) ([Amos Bird](https://github.com/amosbird)).
* Permettre de combiner des JOIN avec `USING` avec d’autres types de JOIN. [#23881](https://github.com/ClickHouse/ClickHouse/pull/23881) ([darkkeks](https://github.com/darkkeks)).
* Mettre à jour le sous-module aws-sdk pour la limitation de débit dans Yandex Cloud S3. [#30646](https://github.com/ClickHouse/ClickHouse/pull/30646) ([ianton-ru](https://github.com/ianton-ru)).
* Corriger la libération de l’ID de requête et de l’ID de session à la fin du traitement de la requête lors du traitement d’un appel gRPC. [#29954](https://github.com/ClickHouse/ClickHouse/pull/29954) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corriger l’arrêt d’`AccessControlManager` afin de stabiliser un test instable. [#29951](https://github.com/ClickHouse/ClickHouse/pull/29951) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corriger une assertion échouée lors de la lecture depuis `HDFS`. Mettre à jour la bibliothèque libhdfs3 pour permettre son exécution dans les tests en mode Débogage. Clôture [#29251](https://github.com/ClickHouse/ClickHouse/issues/29251). Clôture [#27814](https://github.com/ClickHouse/ClickHouse/issues/27814). [#29276](https://github.com/ClickHouse/ClickHouse/pull/29276) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Ajout de la prise en charge des builds FreeBSD pour les machines Aarch64. [#29952](https://github.com/ClickHouse/ClickHouse/pull/29952) ([MikaelUrankar](https://github.com/MikaelUrankar)).
* Les sous-modules récursifs ne sont plus nécessaires pour ClickHouse. [#30315](https://github.com/ClickHouse/ClickHouse/pull/30315) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* ClickHouse peut désormais être compilé statiquement avec Musl. Cette fonctionnalité est ajoutée à titre expérimental et ne prend pas en charge la compilation de `odbc-bridge`, `library-bridge`, l'intégration avec CatBoost ni certaines bibliothèques. [#30248](https://github.com/ClickHouse/ClickHouse/pull/30248) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Activation de `Protobuf`, `Arrow`, `ORC`, `Parquet` pour les builds `AArch64` et `Darwin` (macOS). Cela clôt [#29248](https://github.com/ClickHouse/ClickHouse/issues/29248). Cela clôt [#28018](https://github.com/ClickHouse/ClickHouse/issues/28018). [#30015](https://github.com/ClickHouse/ClickHouse/pull/30015) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de la cross-compilation pour PowerPC (powerpc64le). Cela clôt [#9589](https://github.com/ClickHouse/ClickHouse/issues/9589). Activation de la prise en charge de l'interaction avec MySQL pour AArch64 et PowerPC. Cela clôt [#26301](https://github.com/ClickHouse/ClickHouse/issues/26301). [#30010](https://github.com/ClickHouse/ClickHouse/pull/30010) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ne conserver que les fichiers requis dans les toolchains de cross-compilation. Les inclure comme sous-modules (ils étaient auparavant téléchargés sous forme de tarballs). [#29974](https://github.com/ClickHouse/ClickHouse/pull/29974) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mise en œuvre dans ClickHouse d'une approche de fuzzing tenant compte de la structure pour le parseur d'instructions SELECT. [#30012](https://github.com/ClickHouse/ClickHouse/pull/30012) ([Paul](https://github.com/PaulCher)).
* Activation de l'évaluateur expérimental d'expressions constexpr pour clang afin d'accélérer la compilation du code de Template. [#29668](https://github.com/ClickHouse/ClickHouse/pull/29668) ([myrrc](https://github.com/myrrc)).
* Ajout de la possibilité de compiler avec une version plus récente de glibc sans utiliser de nouveaux symboles. [#29594](https://github.com/ClickHouse/ClickHouse/pull/29594) ([Azat Khuzhin](https://github.com/azat)).
* Réduction de la taille du binaire de build Debug grâce à une option d'optimisation de clang. [#28736](https://github.com/ClickHouse/ClickHouse/pull/28736) ([flynn](https://github.com/ucasfl)).
* Désormais, toutes les images de la CI seront placées dans un dépôt Docker Hub distinct. [#28656](https://github.com/ClickHouse/ClickHouse/pull/28656) ([alesapin](https://github.com/alesapin)).
* Amélioration de la prise en charge de la compilation avec clang-13. [#28046](https://github.com/ClickHouse/ClickHouse/pull/28046) ([Sergei Semin](https://github.com/syominsergey)).
* Ajout de la possibilité d'afficher les profile events bruts dans `clickhouse-client` (cela peut être utile pour le débogage et les tests). [#30064](https://github.com/ClickHouse/ClickHouse/pull/30064) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d'une dépendance temporelle pour l'unité clickhouse-server (initialisation systemd et sysvinit). [#28891](https://github.com/ClickHouse/ClickHouse/pull/28891) ([Azat Khuzhin](https://github.com/azat)).
* Rechargement du cache de stacktrace lorsqu'un symbole est rechargé. [#28137](https://github.com/ClickHouse/ClickHouse/pull/28137) ([Amos Bird](https://github.com/amosbird)).

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

* Les fonctions de recherche case-insensitive dans les chaînes UTF-8, comme `positionCaseInsensitiveUTF8` et `countSubstringsCaseInsensitiveUTF8`, pouvaient dans de très rares cas trouver des sous-chaînes qui ne correspondaient pas réellement ; c'est corrigé. [#30663](https://github.com/ClickHouse/ClickHouse/pull/30663) ([tavplubix](https://github.com/tavplubix)).
* Correction de la lecture d'un fichier vide sur un disk chiffré. [#30494](https://github.com/ClickHouse/ClickHouse/pull/30494) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de la transformation d'une chaîne de disjonctions en `IN` (contrôlée par le paramètre `optimize_min_equality_disjunction_chain_length`) dans les requêtes distribuées avec le paramètre `legacy_column_name_of_tuple_literal = 0`. [#28658](https://github.com/ClickHouse/ClickHouse/pull/28658) ([Anton Popov](https://github.com/CurtizJ)).
* Autorise l'utilisation d'une colonne matérialisée comme clé de sharding dans une table distribuée, même si `insert_allow_materialized_columns=0`. [#28637](https://github.com/ClickHouse/ClickHouse/pull/28637) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de `ORDER BY ... WITH FILL` lorsque `TO` et `FROM` sont définis et qu'aucune ligne n'est présente dans le jeu de résultats. [#30888](https://github.com/ClickHouse/ClickHouse/pull/30888) ([Anton Popov](https://github.com/CurtizJ)).
* Correction du fait que l'index Set n'était pas utilisé dans les expressions AND/OR lorsqu'il y avait plus de deux opérandes. Cela corrige [#30416](https://github.com/ClickHouse/ClickHouse/issues/30416). [#30887](https://github.com/ClickHouse/ClickHouse/pull/30887) ([Amos Bird](https://github.com/amosbird)).
* Correction d'un plantage lorsqu'une projection avec fonction de hachage est matérialisée. Cela corrige [#30861](https://github.com/ClickHouse/ClickHouse/issues/30861). Le problème est similaire à [https://github.com/ClickHouse/ClickHouse/pull/28560](https://github.com/ClickHouse/ClickHouse/pull/28560) et provient d'une mauvaise compréhension de l'invariant de vacuité de l'en-tête. [#30877](https://github.com/ClickHouse/ClickHouse/pull/30877) ([Amos Bird](https://github.com/amosbird)).
* Correction d'une ambiguïté lors de l'extraction du nom du ZooKeeper auxiliaire à partir du ZooKeeper path dans `ReplicatedMergeTree`. Auparavant, le server pouvait ne pas démarrer avec `Unknown auxiliary ZooKeeper name` si le ZooKeeper path contenait un deux-points. Corrige [#29052](https://github.com/ClickHouse/ClickHouse/issues/29052). Il était également possible de spécifier un ZooKeeper path ne commençant pas par une barre oblique, mais cet usage est désormais obsolète et la création de nouvelles tables avec un tel path n'est plus autorisée. Les barres obliques et les deux-points dans les noms de ZooKeeper auxiliaires ne sont pas non plus autorisés. [#30822](https://github.com/ClickHouse/ClickHouse/pull/30822) ([tavplubix](https://github.com/tavplubix)).
* Nettoyage du répertoire temporaire lorsque localBackup échouait pour une raison quelconque. [#30797](https://github.com/ClickHouse/ClickHouse/pull/30797) ([ianton-ru](https://github.com/ianton-ru)).
* Correction d'une condition de concurrence entre `REPLACE/MOVE PARTITION` et les fusions en arrière-plan dans `MergeTree` non répliqué, qui pouvait laisser une partie des données déplacées/remplacées dans la partition. Corrige [#29327](https://github.com/ClickHouse/ClickHouse/issues/29327). [#30717](https://github.com/ClickHouse/ClickHouse/pull/30717) ([tavplubix](https://github.com/tavplubix)).
* Correction de PREWHERE avec WHERE dans le cas d'un PREWHERE toujours vrai. [#30668](https://github.com/ClickHouse/ClickHouse/pull/30668) ([Azat Khuzhin](https://github.com/azat)).
* L'optimisation de push down de Limit pouvait provoquer une erreur `Cannot find column`. Corrige [#30438](https://github.com/ClickHouse/ClickHouse/issues/30438). [#30562](https://github.com/ClickHouse/ClickHouse/pull/30562) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout des parenthèses manquantes pour les réécritures de `isNotNull`/`isNull` en `IS [NOT] NULL` (corrige les requêtes contenant quelque chose comme `isNotNull(1)+isNotNull(2)`). [#30520](https://github.com/ClickHouse/ClickHouse/pull/30520) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un interblocage sur ALTER avec une sous-requête scalaire sur la même table, résout [#30461](https://github.com/ClickHouse/ClickHouse/issues/30461). [#30492](https://github.com/ClickHouse/ClickHouse/pull/30492) ([Vladimir C](https://github.com/vdimir)).
* Correction d'un segfault pouvant se produire si la session expirait pendant l'exécution de REPLACE PARTITION. [#30432](https://github.com/ClickHouse/ClickHouse/pull/30432) ([tavplubix](https://github.com/tavplubix)).
* Les requêtes avec une condition comme `IN (subquery)` pouvaient renvoyer un résultat incorrect lorsqu'une projection agrégée était appliquée. Correction de la création des ensembles pour les projections. [#30310](https://github.com/ClickHouse/ClickHouse/pull/30310) ([Amos Bird](https://github.com/amosbird)).
* Correction de la résolution des alias de colonnes dans les requêtes JOIN lorsque la projection est activée. Cela corrige [#30146](https://github.com/ClickHouse/ClickHouse/issues/30146). [#30293](https://github.com/ClickHouse/ClickHouse/pull/30293) ([Amos Bird](https://github.com/amosbird)).
* Correction de certains problèmes dans la fonction `replaceRegexpAll`. [#30292](https://github.com/ClickHouse/ClickHouse/pull/30292) ([Memo](https://github.com/Joeywzr)).
* Correction de l'analyse de l'option `preallocate` à partir de la configuration de layout pour ComplexKeyHashedDictionary et ComplexKeySparseHashedDictionary. [#30246](https://github.com/ClickHouse/ClickHouse/pull/30246) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction de la fonction `[I]LIKE`. Résout [#28661](https://github.com/ClickHouse/ClickHouse/issues/28661). [#30244](https://github.com/ClickHouse/ClickHouse/pull/30244) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction d'un crash avec shortcircuit et lowcardinality dans multiIf. [#30243](https://github.com/ClickHouse/ClickHouse/pull/30243) ([Raúl Marín](https://github.com/Algunenano)).
* Correction du calcul de bytes\_allocated dans FlatDictionary et HashedDictionary pour les attributs Nullable. [#30238](https://github.com/ClickHouse/ClickHouse/pull/30238) ([Maksim Kita](https://github.com/kitaisreal)).
* Autorisation des identifiants commençant par des chiffres dans les JOIN multiples. [#30230](https://github.com/ClickHouse/ClickHouse/pull/30230) ([Vladimir C](https://github.com/vdimir)).
* Correction de la lecture depuis `MergeTree` avec `max_read_buffer_size = 0` (quand l'utilisateur veut se tirer une balle dans le pied) (cela peut entraîner les exceptions `Can't adjust last granule`, `LOGICAL_ERROR`, voire une perte de données). [#30192](https://github.com/ClickHouse/ClickHouse/pull/30192) ([Azat Khuzhin](https://github.com/azat)).
* Correction de `pread_fake_async`/`pread_threadpool` avec `min_bytes_to_use_direct_io`. [#30191](https://github.com/ClickHouse/ClickHouse/pull/30191) ([Azat Khuzhin](https://github.com/azat)).
* Correction du cas où INSERT SELECT remplissait incorrectement une colonne matérialisée à partir d'une colonne Nullable. [#30189](https://github.com/ClickHouse/ClickHouse/pull/30189) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge des arguments Nullable dans la fonction `initializeAggregation`. [#30177](https://github.com/ClickHouse/ClickHouse/pull/30177) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l'erreur `Port is already connected` pour les requêtes avec `GLOBAL IN` et `WITH TOTALS`. Uniquement pour 21.9 et 21.10. [#30086](https://github.com/ClickHouse/ClickHouse/pull/30086) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une condition de concurrence entre MOVE PARTITION et les merges/mutations pour MergeTree. [#30074](https://github.com/ClickHouse/ClickHouse/pull/30074) ([Azat Khuzhin](https://github.com/azat)).
* Une base de données `Memory` supprimée pouvait réapparaître après le redémarrage du serveur ; c’est corrigé ([#29795](https://github.com/ClickHouse/ClickHouse/issues/29795)). Ajout également du paramètre `force_remove_data_recursively_on_drop` comme solution de contournement à l’erreur `Directory not empty` lors de la suppression d’une base de données `Ordinary` (car il n’est pas possible de supprimer manuellement les restes de données dans un environnement cloud). [#30054](https://github.com/ClickHouse/ClickHouse/pull/30054) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un plantage de sample avec `tuple()`, clôt [#30004](https://github.com/ClickHouse/ClickHouse/issues/30004). [#30016](https://github.com/ClickHouse/ClickHouse/pull/30016) ([flynn](https://github.com/ucasfl)).
* Tentative de clôture de l’issue : [#29965](https://github.com/ClickHouse/ClickHouse/issues/29965). [#29976](https://github.com/ClickHouse/ClickHouse/pull/29976) ([hexiaoting](https://github.com/hexiaoting)).
* Correction d’une possible condition de concurrence entre `FileChecker` et `StorageLog`/`StorageStripeLog`. [#29959](https://github.com/ClickHouse/ClickHouse/pull/29959) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une condition de concurrence entre `LogSink::writeMarks()` et `LogSource` dans `StorageLog`. [#29946](https://github.com/ClickHouse/ClickHouse/pull/29946) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une fuite potentielle de ressources liée à la limite de query concurrentes des tables MergeTree introduite dans [https://github.com/ClickHouse/ClickHouse/pull/19544](https://github.com/ClickHouse/ClickHouse/pull/19544). [#29879](https://github.com/ClickHouse/ClickHouse/pull/29879) ([Amos Bird](https://github.com/amosbird)).
* Correction de la vérification de recréation des system tables (elle ne détectait pas les changements dans les valeurs d’enum). [#29857](https://github.com/ClickHouse/ClickHouse/pull/29857) ([Azat Khuzhin](https://github.com/azat)).
* MaterializedMySQL : correction d’un problème où, si la connexion à MySQL était perdue, seule une partie d’une transaction pouvait être traitée. [#29837](https://github.com/ClickHouse/ClickHouse/pull/29837) ([Håvard Kvålen](https://github.com/havardk)).
* Évite l’erreur `Timeout exceeded: elapsed 18446744073.709553 seconds`, qui pouvait survenir dans des cas extrêmement rares, probablement en raison d’un bug du kernel. Corrige [#29154](https://github.com/ClickHouse/ClickHouse/issues/29154). [#29811](https://github.com/ClickHouse/ClickHouse/pull/29811) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un cast incorrect dans la query `ATTACH TABLE ... FROM 'path'` lorsqu’un littéral non chaîne est utilisé à la place du path. Cela peut entraîner la lecture d’une mémoire non initialisée. [#29790](https://github.com/ClickHouse/ClickHouse/pull/29790) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de l’accès concurrent à `LowCardinality` pendant `GROUP BY` (en combinaison avec des tables `Buffer`, cela peut entraîner des problèmes). [#29782](https://github.com/ClickHouse/ClickHouse/pull/29782) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un `GROUP BY` incorrect (plusieurs rows avec les mêmes keys dans le résultat) dans le cas d’une distributed query lorsque les shards avaient des versions mixtes `<= 21.3` et `>= 21.4`, que la key de `GROUP BY` comportait plusieurs columns toutes de taille fixe, et que la two-level aggregation était activée (voir `group_by_two_level_threshold` et `group_by_two_level_threshold_bytes`). Corrige [#29580](https://github.com/ClickHouse/ClickHouse/issues/29580). [#29735](https://github.com/ClickHouse/ClickHouse/pull/29735) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction du comportement incorrect du paramètre `materialized_postgresql_tables_list` au redémarrage du serveur. Signalé dans [#28529](https://github.com/ClickHouse/ClickHouse/issues/28529). [#29686](https://github.com/ClickHouse/ClickHouse/pull/29686) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La condition du prédicat de filtrage pouvait être perdue après l’optimisation de push-down. [#29625](https://github.com/ClickHouse/ClickHouse/pull/29625) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de la compilation JIT des expressions avec alias et de l’évaluation court-circuitée des expressions. Clôt [#29403](https://github.com/ClickHouse/ClickHouse/issues/29403). [#29574](https://github.com/ClickHouse/ClickHouse/pull/29574) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un segfault rare dans la query `ALTER MODIFY` lors de l’utilisation d’un identifiant de table incorrect dans une expression `DEFAULT` telle que `x.y.z...`. Corrige [#29184](https://github.com/ClickHouse/ClickHouse/issues/29184). [#29573](https://github.com/ClickHouse/ClickHouse/pull/29573) ([alesapin](https://github.com/alesapin)).
* Correction d’un déréférencement de pointeur nul pour `GROUP BY WITH TOTALS HAVING` (lorsque la colonne de `HAVING` n’était pas sélectionnée). [#29553](https://github.com/ClickHouse/ClickHouse/pull/29553) ([Azat Khuzhin](https://github.com/azat)).
* Évite les deadlocks lors de lectures et d’écritures simultanées sur des tables utilisant le moteur de table Join. [#29544](https://github.com/ClickHouse/ClickHouse/pull/29544) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’un bug dans la vérification `pathStartsWith`, dû à un problème d’utilisation de `std::mismatch` : ` The behavior is undefined if the second range is shorter than the first range.`. [#29531](https://github.com/ClickHouse/ClickHouse/pull/29531) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Dans ODBC bridge, ajout de retries pour l’erreur Invalid cursor state. Il s’agit d’une erreur sur laquelle une nouvelle tentative est possible. Clôt [#29473](https://github.com/ClickHouse/ClickHouse/issues/29473). [#29518](https://github.com/ClickHouse/ClickHouse/pull/29518) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’analyse incorrecte du nom de table lors du chargement de la base de données `Lazy`. Corrige [#29456](https://github.com/ClickHouse/ClickHouse/issues/29456). [#29476](https://github.com/ClickHouse/ClickHouse/pull/29476) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un possible `Block structure mismatch` pour des sous-requêtes avec prédicat `HAVING` poussé vers le bas. Corrige [#29010](https://github.com/ClickHouse/ClickHouse/issues/29010). [#29475](https://github.com/ClickHouse/ClickHouse/pull/29475) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’erreur logique `Cannot capture columns` dans les fonctions greatest/least. Clôt [#29334](https://github.com/ClickHouse/ClickHouse/issues/29334). [#29454](https://github.com/ClickHouse/ClickHouse/pull/29454) ([Kruglov Pavel](https://github.com/Avogar)).
* Moteur de table RocksDB : correction d’une race condition lors de l’ouverture de plusieurs DB (et réactivation de certains tests qui déclenchent le problème en CI). [#29393](https://github.com/ClickHouse/ClickHouse/pull/29393) ([Azat Khuzhin](https://github.com/azat)).
* Correction du fait que le stockage d’accès replicated ne s’arrêtait pas proprement en cas de mauvaise configuration. [#29388](https://github.com/ClickHouse/ClickHouse/pull/29388) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Suppression de la window function `nth_value`, car elle n’est pas sûre du point de vue mémoire. Cela clôt [#29347](https://github.com/ClickHouse/ClickHouse/issues/29347). [#29348](https://github.com/ClickHouse/ClickHouse/pull/29348) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige les fusions verticales des parties de projection. Cela corrige [#29253](https://github.com/ClickHouse/ClickHouse/issues/29253). Cette PR corrige également plusieurs problèmes de fusion/mutation de projections introduits dans [https://github.com/ClickHouse/ClickHouse/pull/25165](https://github.com/ClickHouse/ClickHouse/pull/25165). [#29337](https://github.com/ClickHouse/ClickHouse/pull/29337) ([Amos Bird](https://github.com/amosbird)).
* Corrige les requêtes DDL bloquées sur une base de données Replicated lors de l’ajout d’une nouvelle réplique. [#29328](https://github.com/ClickHouse/ClickHouse/pull/29328) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Corrige les délais d’expiration de connexion (`send_timeout`/`receive_timeout`). [#29282](https://github.com/ClickHouse/ClickHouse/pull/29282) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’exception possible `Table columns structure in ZooKeeper is different from local table structure` lors de la recréation ou de la création de nouvelles répliques de `ReplicatedMergeTree`, lorsqu’une des colonnes de la table possède des expressions par défaut avec des fonctions insensibles à la casse. [#29266](https://github.com/ClickHouse/ClickHouse/pull/29266) ([Anton Popov](https://github.com/CurtizJ)).
* Renvoie au client (via TCP) l’erreur standard `Database doesn't exist error` (`UNKNOWN_DATABASE`) au lieu de `Attempt to read after eof` (`ATTEMPT_TO_READ_AFTER_EOF`). [#29229](https://github.com/ClickHouse/ClickHouse/pull/29229) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un segfault lors d’une insertion dans une colonne de type LowCardinality(Nullable) au format d’entrée Avro. [#29132](https://github.com/ClickHouse/ClickHouse/pull/29132) ([Kruglov Pavel](https://github.com/Avogar)).
* N’autorise plus la réutilisation d’informations d’authentification précédentes dans le cas d’un secret inter-serveur (auparavant, un INSERT via Buffer/Kafka vers une table Distributed avec un secret inter-serveur configuré pour ce cluster pouvait réutiliser l’utilisateur précédemment défini pour cette connexion). [#29060](https://github.com/ClickHouse/ClickHouse/pull/29060) ([Azat Khuzhin](https://github.com/azat)).
* Gère `any_join_distinct_right_table_keys` lors d’une jointure avec un dictionnaire, résout [#29007](https://github.com/ClickHouse/ClickHouse/issues/29007). [#29014](https://github.com/ClickHouse/ClickHouse/pull/29014) ([Vladimir C](https://github.com/vdimir)).
* Corrige l’erreur "Not found column ... in block" lors d’une jointure sur une colonne alias, résout [#26980](https://github.com/ClickHouse/ClickHouse/issues/26980). [#29008](https://github.com/ClickHouse/ClickHouse/pull/29008) ([Vladimir C](https://github.com/vdimir)).
* Corrige le nombre de threads utilisés dans la sous-requête `GLOBAL IN` (elle était exécutée sur un seul thread depuis le correctif du bug [#19414](https://github.com/ClickHouse/ClickHouse/issues/19414)). [#28997](https://github.com/ClickHouse/ClickHouse/pull/28997) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige de mauvaises optimisations de ORDER BY s’il contient WITH FILL. Cela résout [#28908](https://github.com/ClickHouse/ClickHouse/issues/28908). Cela résout [#26049](https://github.com/ClickHouse/ClickHouse/issues/26049). [#28910](https://github.com/ClickHouse/ClickHouse/pull/28910) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige les fonctions array d’ordre supérieur (`SIGSEGV` pour `arrayCompact`/`ILLEGAL_COLUMN` pour `arrayDifference`/`arrayCumSumNonNegative`) avec des constantes. [#28904](https://github.com/ClickHouse/ClickHouse/pull/28904) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’attente d’une mutation avec `mutations_sync=2`. [#28889](https://github.com/ClickHouse/ClickHouse/pull/28889) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les requêtes vers des bases de données externes (c.-à-d. MySQL) avec plusieurs colonnes dans IN (c.-à-d. `(k,v) IN ((1, 2))`). [#28888](https://github.com/ClickHouse/ClickHouse/pull/28888) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug avec `LowCardinality` dans l’évaluation avec court-circuit des fonctions. Clôt [#28884](https://github.com/ClickHouse/ClickHouse/issues/28884). [#28887](https://github.com/ClickHouse/ClickHouse/pull/28887) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la lecture des sous-colonnes à partir de parts compactes. [#28873](https://github.com/ClickHouse/ClickHouse/pull/28873) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige une condition de concurrence entre `DROP PART` et `REPLACE/MOVE PARTITION` qui pouvait, dans de rares cas, faire diverger les répliques. [#28864](https://github.com/ClickHouse/ClickHouse/pull/28864) ([tavplubix](https://github.com/tavplubix)).
* Corrige la compilation des expressions avec évaluation à court-circuit. [#28821](https://github.com/ClickHouse/ClickHouse/pull/28821) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un cas extrêmement rare où les répliques ReplicatedMergeTree peuvent diverger après un redémarrage brutal de toutes les répliques. L’erreur ressemble à `Part ... intersects (previous|next) part ...`. [#28817](https://github.com/ClickHouse/ClickHouse/pull/28817) ([alesapin](https://github.com/alesapin)).
* Améliore la vérification qu’une connexion est utilisable et intercepte également toute exception lors de l’arrêt de `RabbitMQ`, par précaution. [#28797](https://github.com/ClickHouse/ClickHouse/pull/28797) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une condition de concurrence bénigne dans ReplicatedMergeTreeQueue. Cela ne devrait pas être visible par l’utilisateur, mais peut entraîner des bugs subtils. [#28734](https://github.com/ClickHouse/ClickHouse/pull/28734) ([alesapin](https://github.com/alesapin)).
* Corrige un possible crash pour `SELECT` avec une projection d’agrégation partiellement créée en cas d’exception. [#28700](https://github.com/ClickHouse/ClickHouse/pull/28700) ([Amos Bird](https://github.com/amosbird)).
* Corrige le coredump lors de la création de tables distribuées lorsque les paramètres fournis sont incorrects. [#28686](https://github.com/ClickHouse/ClickHouse/pull/28686) ([Zhiyong Wang](https://github.com/ljcui)).
* Ajoute les alias Settings.Names et Settings.Values pour la table system.processes. [#28685](https://github.com/ClickHouse/ClickHouse/pull/28685) ([Vitaly](https://github.com/orloffv)).
* Prise en charge de la bibliothèque S2 Geometry : corrige le nombre d’arguments requis par les fonctions `s2RectAdd` et `s2RectContains`. [#28663](https://github.com/ClickHouse/ClickHouse/pull/28663) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige une conversion invalide de type constant lorsqu’une clé primaire Nullable ou LowCardinality est utilisée. [#28636](https://github.com/ClickHouse/ClickHouse/pull/28636) ([Amos Bird](https://github.com/amosbird)).
* Corrige "Column is not under aggregate function and not in GROUP BY" avec PREWHERE (corrige [#28461](https://github.com/ClickHouse/ClickHouse/issues/28461)). [#28502](https://github.com/ClickHouse/ClickHouse/pull/28502) ([Azat Khuzhin](https://github.com/azat)).

<div id="clickhouse-release-v2110-2021-10-16">
  ### Version de ClickHouse v21.10, 2021-10-16. [Présentation](https://presentations.clickhouse.com/2021-release-21.10/), [Vidéo](https://www.youtube.com/watch?v=b9MeoOtAivQ)
</div>

<Frame>
  <iframe src="https://www.youtube.com/embed/b9MeoOtAivQ" 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>

* Désormais, les paramètres suivants au niveau de la table MergeTree : `replicated_max_parallel_sends`, `replicated_max_parallel_sends_for_table`, `replicated_max_parallel_fetches`, `replicated_max_parallel_fetches_for_table` n’ont plus aucun effet. Ils n’ont jamais vraiment bien fonctionné et ont été remplacés par `max_replicated_fetches_network_bandwidth`, `max_replicated_sends_network_bandwidth` et `background_fetches_pool_size`. [#28404](https://github.com/ClickHouse/ClickHouse/pull/28404) ([alesapin](https://github.com/alesapin)).

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

* Ajout d'une fonctionnalité permettant de créer des fonctions définies par l'utilisateur (UDF) sous forme d'expressions lambda. Syntaxe `CREATE FUNCTION {function_name} as ({parameters}) -> {function core}`. Exemple `CREATE FUNCTION plus_one as (a) -> a + 1`. Auteurs @Realist007. [#27796](https://github.com/ClickHouse/ClickHouse/pull/27796) ([Maksim Kita](https://github.com/kitaisreal)) [#23978](https://github.com/ClickHouse/ClickHouse/pull/23978) ([Realist007](https://github.com/Realist007)).
* Ajout du moteur de stockage `Executable` et de la fonction de table `executable`. Cela permet le traitement des données avec des scripts externes en continu. [#28102](https://github.com/ClickHouse/ClickHouse/pull/28102) ([Maksim Kita](https://github.com/kitaisreal)) ([ruct](https://github.com/ruct)).
* Ajout du moteur de stockage `ExecutablePool`. Similaire à `Executable`, mais il utilise un pool de processus persistants. [#28518](https://github.com/ClickHouse/ClickHouse/pull/28518) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la requête `ALTER TABLE ... MATERIALIZE COLUMN`. [#27038](https://github.com/ClickHouse/ClickHouse/pull/27038) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Prise en charge de l'écriture partitionnée dans la fonction de table `s3`. [#23051](https://github.com/ClickHouse/ClickHouse/pull/23051) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Prise en charge du format de compression `lz4` (en plus de `gz`, `bz2`, `xz`, `zstd`) pour l'import/export de données. [#25310](https://github.com/ClickHouse/ClickHouse/pull/25310) ([Bharat Nallan](https://github.com/bharatnc)).
* Prise en charge des arguments positionnels avec le paramètre `enable_positional_arguments`. Résout [#2592](https://github.com/ClickHouse/ClickHouse/issues/2592). [#27530](https://github.com/ClickHouse/ClickHouse/pull/27530) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge des paramètres utilisateur liés aux formats de fichier dans la clause `SETTINGS` de la requête `CREATE` pour les tables `s3`. Cela résout [#27580](https://github.com/ClickHouse/ClickHouse/issues/27580). [#28037](https://github.com/ClickHouse/ClickHouse/pull/28037) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Prise en charge de la connexion SSL pour le moteur `RabbitMQ`. [#28365](https://github.com/ClickHouse/ClickHouse/pull/28365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la fonction `getServerPort` pour obtenir le port du serveur. Si le port n'est pas utilisé par le serveur, la fonction lève une exception. [#27900](https://github.com/ClickHouse/ClickHouse/pull/27900) ([Amos Bird](https://github.com/amosbird)).
* Ajout de fonctions de conversion entre « snowflake id » et `DateTime`, `DateTime64`. Voir [#27058](https://github.com/ClickHouse/ClickHouse/issues/27058). [#27704](https://github.com/ClickHouse/ClickHouse/pull/27704) ([jasine](https://github.com/jasine)).
* Ajout de la fonction `SHA512`. [#27830](https://github.com/ClickHouse/ClickHouse/pull/27830) ([zhanglistar](https://github.com/zhanglistar)).
* Ajout du paramètre `log_queries_probability`, qui permet à l'utilisateur de n'écrire dans query\_log qu'un échantillon de requêtes. Résout [#16609](https://github.com/ClickHouse/ClickHouse/issues/16609). [#27527](https://github.com/ClickHouse/ClickHouse/pull/27527) ([Nikolay Degterinsky](https://github.com/evillique)).

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

* Type de disque `web` permettant de stocker des tables en lecture seule sur un serveur web sous forme de fichiers statiques. Voir [#23982](https://github.com/ClickHouse/ClickHouse/issues/23982). [#25251](https://github.com/ClickHouse/ClickHouse/pull/25251) ([Kseniia Sumarokova](https://github.com/kssenii)). Cela est surtout utile pour faciliter les tests sur un stockage partagé et l’importation de jeux de données. Son utilisation n’est pas recommandée avant la version 21.11.
* Ajout des nouvelles commandes `BACKUP` et `RESTORE`. [#21945](https://github.com/ClickHouse/ClickHouse/pull/21945) ([Vitaly Baranov](https://github.com/vitlibar)). Cette fonctionnalité est encore en développement et n’est pas destinée à être utilisée dans la version actuelle.

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

* Accélération des fonctions d’agrégation `sumIf` et `countIf`. [#28272](https://github.com/ClickHouse/ClickHouse/pull/28272) ([Raúl Marín](https://github.com/Algunenano)).
* Création d’une projection virtuelle pour les index `minmax`. Désormais, lorsque `allow_experimental_projection_optimization` est activé, les requêtes utilisent l’index minmax au lieu de lire les données lorsque c’est possible. [#26286](https://github.com/ClickHouse/ClickHouse/pull/26286) ([Amos Bird](https://github.com/amosbird)).
* Ajout de deux vérifications dans `sequenceMatch` et `sequenceCount`, permettant une sortie anticipée lorsqu’une partie déterministe du motif de séquence est absente de la liste des événements. Cette modification débloque de nombreuses requêtes qui échouaient auparavant parce qu’elles atteignaient la limite d’opérations, et accélère globalement le pipeline. [#27729](https://github.com/ClickHouse/ClickHouse/pull/27729) ([Jakub Kuklis](https://github.com/jkuklis)).
* Amélioration de l’analyse de la clé primaire grâce à des informations de monotonie garanties sur les fonctions binaires, notamment la division par une constante non nulle. [#28302](https://github.com/ClickHouse/ClickHouse/pull/28302) ([Amos Bird](https://github.com/amosbird)).
* La condition de filtre `hasAll` exploite désormais les index de saut de données de type bloom filter. [#27984](https://github.com/ClickHouse/ClickHouse/pull/27984) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Accélération du chargement des `data parts` en différant le démarrage de la table. [#28313](https://github.com/ClickHouse/ClickHouse/pull/28313) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un nombre potentiellement excessif de conditions déplacées de `WHERE` vers `PREWHERE` (optimisation contrôlée par le paramètre `optimize_move_to_prewhere`). [#28139](https://github.com/ClickHouse/ClickHouse/pull/28139) ([lthaooo](https://github.com/lthaooo)).
* Activation par défaut de `optimize_distributed_group_by_sharding_key`. [#28105](https://github.com/ClickHouse/ClickHouse/pull/28105) ([Azat Khuzhin](https://github.com/azat)).

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

* Vérifier le nom du cluster avant de créer une table `Distributed` et ne pas autoriser la création d’une table avec un nom de cluster incorrect. Corrige [#27832](https://github.com/ClickHouse/ClickHouse/issues/27832). [#27927](https://github.com/ClickHouse/ClickHouse/pull/27927) ([tavplubix](https://github.com/tavplubix)).
* Ajouter la fonction d’agrégation `quantileBFloat16Weighted`, sur le modèle des autres fonctions quantile...Weighted. Résout [#27745](https://github.com/ClickHouse/ClickHouse/issues/27745). [#27758](https://github.com/ClickHouse/ClickHouse/pull/27758) ([Ivan Novitskiy](https://github.com/RedClusive)).
* Autoriser la création de dictionnaires avec une liste d’attributs vide. [#27905](https://github.com/ClickHouse/ClickHouse/pull/27905) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajouter dans `clickhouse-client` une documentation interactive expliquant comment réinitialiser le mot de passe. C’est utile lorsque l’utilisateur a installé ClickHouse, configuré le mot de passe, puis l’oublie aussitôt. Voir [#27750](https://github.com/ClickHouse/ClickHouse/issues/27750). [#27903](https://github.com/ClickHouse/ClickHouse/pull/27903) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prendre en charge le cas où les données sont encapsulées dans un tableau avec le format d’entrée `JSONAsString`. Résout [#25517](https://github.com/ClickHouse/ClickHouse/issues/25517). [#25633](https://github.com/ClickHouse/ClickHouse/pull/25633) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajouter une nouvelle colonne `last_queue_update_exception` à la table `system.replicas`. [#26843](https://github.com/ClickHouse/ClickHouse/pull/26843) ([nvartolomei](https://github.com/nvartolomei)).
* Prendre en charge les reconnexions en cas de basculement pour les tables `MaterializedPostgreSQL`. Résout [#28529](https://github.com/ClickHouse/ClickHouse/issues/28529). [#28614](https://github.com/ClickHouse/ClickHouse/pull/28614) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Générer un UUID de serveur unique au premier démarrage du serveur. [#20089](https://github.com/ClickHouse/ClickHouse/pull/20089) ([Bharat Nallan](https://github.com/bharatnc)).
* Introduire le paramètre `connection_wait_timeout` (5 secondes par défaut, 0 pour ne pas attendre) pour le moteur `MySQL`. [#28474](https://github.com/ClickHouse/ClickHouse/pull/28474) ([Azat Khuzhin](https://github.com/azat)).
* Ne pas autoriser la création de `MaterializedPostgreSQL` avec des arguments invalides. Résout [#28423](https://github.com/ClickHouse/ClickHouse/issues/28423). [#28430](https://github.com/ClickHouse/ClickHouse/pull/28430) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Utiliser un véritable fichier tmp au lieu de "rows\_sources" prédéfini pour les fusions verticales. Cela évite de générer des répertoires parasites sur les disques tmp. [#28299](https://github.com/ClickHouse/ClickHouse/pull/28299) ([Amos Bird](https://github.com/amosbird)).
* Ajouter `libhdfs3_conf` à la config du serveur au lieu d’exporter la variable d’environnement `LIBHDFS3_CONF` dans clickhouse-server.service. Cela sert à configurer l’interaction avec HDFS. [#28268](https://github.com/ClickHouse/ClickHouse/pull/28268) ([Zhichang Yu](https://github.com/yuzhichang)).
* Corriger la suppression de parts à l’état Temporary, qui peut entraîner une exception inattendue (`Part %name% doesn't exist`). Corrige [#23661](https://github.com/ClickHouse/ClickHouse/issues/23661). [#28221](https://github.com/ClickHouse/ClickHouse/pull/28221) [#28221](https://github.com/ClickHouse/ClickHouse/issues/28221)) ([Azat Khuzhin](https://github.com/azat)).
* Corrige `zookeeper_log.address` (avant le premier correctif de cette PR, l’adresse était toujours `::`) et réduit le nombre d’appels à `getpeername(2)` pour cette colonne (comme `getpeername()` était appelé chaque fois qu’une entrée était ajoutée à `zookeeper_log`, cette adresse est désormais mise en cache dans le client zookeeper pour éviter cela). [#28212](https://github.com/ClickHouse/ClickHouse/pull/28212) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge des conversions implicites entre l’index de l’opérateur `[]` et une clé de type `Map` (par ex. différents types `Int`, `String` et `FixedString`). [#28096](https://github.com/ClickHouse/ClickHouse/pull/28096) ([Anton Popov](https://github.com/CurtizJ)).
* Prise en charge de la clause `ON CONFLICT` lors de l’insertion dans un PostgreSQL table engine ou une table function. Clôt [#27727](https://github.com/ClickHouse/ClickHouse/issues/27727). [#28081](https://github.com/ClickHouse/ClickHouse/pull/28081) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Assouplit les restrictions sur le type de données `Enum` pour permettre l’attachement de données compatibles. Clôt [#26672](https://github.com/ClickHouse/ClickHouse/issues/26672). [#28028](https://github.com/ClickHouse/ClickHouse/pull/28028) ([Dmitry Novik](https://github.com/novikd)).
* Ajoute un paramètre `empty_result_for_aggregation_by_constant_keys_on_empty_set` pour contrôler le comportement du regroupement par clés constantes sur un ensemble vide. Cela rétablit l’ancien comportement de [#6842](https://github.com/ClickHouse/ClickHouse/issues/6842). [#27932](https://github.com/ClickHouse/ClickHouse/pull/27932) ([Amos Bird](https://github.com/amosbird)).
* Ajout du paramètre `replication_wait_for_inactive_replica_timeout`. Il permet de spécifier combien de temps attendre que des répliques inactives exécutent la requête `ALTER`/`OPTIMZE`/`TRUNCATE` (la valeur par défaut est de 120 secondes). Si `replication_alter_partitions_sync` vaut 2 et que certaines répliques restent inactives plus de `replication_wait_for_inactive_replica_timeout` secondes, alors `UNFINISHED` sera levée. [#27931](https://github.com/ClickHouse/ClickHouse/pull/27931) ([tavplubix](https://github.com/tavplubix)).
* Prise en charge d’un argument lambda pour le transformateur de colonnes `APPLY`, permettant d’appliquer des fonctions avec plus d’un argument. Cela concerne [#27877](https://github.com/ClickHouse/ClickHouse/issues/27877). [#27901](https://github.com/ClickHouse/ClickHouse/pull/27901) ([Amos Bird](https://github.com/amosbird)).
* Active `tcp_keep_alive_timeout` par défaut. [#27882](https://github.com/ClickHouse/ClickHouse/pull/27882) ([Azat Khuzhin](https://github.com/azat)).
* Améliore l’annulation des requêtes distantes (si le serveur distant s’est arrêté anormalement). [#27881](https://github.com/ClickHouse/ClickHouse/pull/27881) ([Azat Khuzhin](https://github.com/azat)).
* Utilise l’upload par copie multipart pour les objets S3 volumineux. [#27858](https://github.com/ClickHouse/ClickHouse/pull/27858) ([ianton-ru](https://github.com/ianton-ru)).
* Autorise le parcours des liens symboliques pour le chemin du dictionnaire de bibliothèque. [#27815](https://github.com/ClickHouse/ClickHouse/pull/27815) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désormais, `ALTER MODIFY COLUM` `T` vers `Nullable(T)` ne nécessite plus de mutation. [#27787](https://github.com/ClickHouse/ClickHouse/pull/27787) ([victorgao](https://github.com/kafka1991)).
* N’ignore plus silencieusement les erreurs et ne comptabilise plus les délais dans `ReadBufferFromS3`. [#27484](https://github.com/ClickHouse/ClickHouse/pull/27484) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Améliore `ALTER ... MATERIALIZE TTL` en recalculant uniquement les métadonnées, sans exécuter d’action TTL réelle. [#27019](https://github.com/ClickHouse/ClickHouse/pull/27019) ([lthaooo](https://github.com/lthaooo)).
* Autorise la lecture de la liste des domaines de premier niveau personnalisés sans nouvelle ligne en fin de fichier. [#28213](https://github.com/ClickHouse/ClickHouse/pull/28213) ([Azat Khuzhin](https://github.com/azat)).

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

* Corrige les cas où la lecture de données compressées depuis `carbon-clickhouse` échoue avec 'attempt to read after end of file'. Clôt [#26149](https://github.com/ClickHouse/ClickHouse/issues/26149). [#28150](https://github.com/ClickHouse/ClickHouse/pull/28150) ([FArthur-cmd](https://github.com/FArthur-cmd)).
* Corrige la vérification des grants d’accès lors de l’exécution de l’instruction `GRANT WITH REPLACE` avec la clause `ON CLUSTER`. Cette PR améliore le correctif [#27001](https://github.com/ClickHouse/ClickHouse/pull/27701). [#27983](https://github.com/ClickHouse/ClickHouse/pull/27983) ([Vitaly Baranov](https://github.com/vitlibar)).
* Autorise la sélection avec `extremes = 1` sur une colonne de type `LowCardinality(UUID)`. [#27918](https://github.com/ClickHouse/ClickHouse/pull/27918) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige le transtypage de style PostgreSQL (opérateur `::`) avec des nombres négatifs. [#27876](https://github.com/ClickHouse/ClickHouse/pull/27876) ([Anton Popov](https://github.com/CurtizJ)).
* Après [#26864](https://github.com/ClickHouse/ClickHouse/pull/26864), corrige l’arrêt de `NamedSessionStorage` : les contextes de session stockés dans `NamedSessionStorage` sont désormais détruits avant le contexte global. [#27875](https://github.com/ClickHouse/ClickHouse/pull/27875) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige un bug dans le mode "strict" de `windowFunnel`. Cela corrige [#27469](https://github.com/ClickHouse/ClickHouse/issues/27469). [#27563](https://github.com/ClickHouse/ClickHouse/pull/27563) ([achimbab](https://github.com/achimbab)).
* Corrige une boucle infinie lors de la lecture d’une archive `bzip2` tronquée. [#28543](https://github.com/ClickHouse/ClickHouse/pull/28543) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un chevauchement d’UUID dans `DROP TABLE` pour le DDL interne de `MaterializedMySQL`. MaterializedMySQL est une fonctionnalité expérimentale. [#28533](https://github.com/ClickHouse/ClickHouse/pull/28533) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’erreur `There is no subcolumn` lors d’un SELECT sur des tables qui comportent des colonnes `Nested` et des colonnes scalaires avec un point dans leur nom et le même préfixe que `Nested` (par exemple `n.id UInt32, n.arr1 Array(UInt64), n.arr2 Array(UInt64)`). [#28531](https://github.com/ClickHouse/ClickHouse/pull/28531) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un bug pouvant entraîner l’erreur `Existing table metadata in ZooKeeper differs in sorting key expression.` après un ALTER de `ReplicatedVersionedCollapsingMergeTree`. Corrige [#28515](https://github.com/ClickHouse/ClickHouse/issues/28515). [#28528](https://github.com/ClickHouse/ClickHouse/pull/28528) ([alesapin](https://github.com/alesapin)).
* Corrige une possible fuite de watches ZooKeeper (problème mineur) lors du traitement en arrière-plan de la queue de DDL distribué. Clôt [#26036](https://github.com/ClickHouse/ClickHouse/issues/26036). [#28446](https://github.com/ClickHouse/ClickHouse/pull/28446) ([tavplubix](https://github.com/tavplubix)).
* Corrige l’absence de guillemets autour des noms de table dans le moteur `MaterializedPostgreSQL`. Clôt [#28316](https://github.com/ClickHouse/ClickHouse/issues/28316). [#28433](https://github.com/ClickHouse/ClickHouse/pull/28433) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige le comportement incorrect des lignes non jointes issues d’une colonne `Nullable`. Clôt [#27691](https://github.com/ClickHouse/ClickHouse/issues/27691). [#28349](https://github.com/ClickHouse/ClickHouse/pull/28349) ([vdimir](https://github.com/vdimir)).
* Corrige l’optimisation de l’index NOT-IN lorsque toutes les colonnes de clé ne sont pas utilisées. Cela corrige [#28120](https://github.com/ClickHouse/ClickHouse/issues/28120). [#28315](https://github.com/ClickHouse/ClickHouse/pull/28315) ([Amos Bird](https://github.com/amosbird)).
* Corrige des parts qui se chevauchent, dues au remplacement d’une nouvelle part par une part vide. [#28310](https://github.com/ClickHouse/ClickHouse/pull/28310) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un résultat incohérent dans les requêtes avec `ORDER BY` et les tables `Merge` lorsque le paramètre `optimize_read_in_order` est activé. [#28266](https://github.com/ClickHouse/ClickHouse/pull/28266) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige une possible lecture de mémoire non initialisée pour les requêtes avec le type `Nullable(LowCardinality)` et le paramètre `extremes` défini sur 1. Corrige [#28165](https://github.com/ClickHouse/ClickHouse/issues/28165). [#28205](https://github.com/ClickHouse/ClickHouse/pull/28205) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Plusieurs petites corrections pour les projections. Voir la description détaillée dans la PR. [#28178](https://github.com/ClickHouse/ClickHouse/pull/28178) ([Amos Bird](https://github.com/amosbird)).
* Corrige des `segfault` extrêmement rares à l’arrêt, dus à un ordre incorrect dans l’arrêt du rechargeur de contexte/configuration. [#28088](https://github.com/ClickHouse/ClickHouse/pull/28088) ([nvartolomei](https://github.com/nvartolomei)).
* Corrige la gestion de la valeur NULL avec le type `Nullable(String)` dans la fonction `JSONExtract`. Cela corrige [#27929](https://github.com/ClickHouse/ClickHouse/issues/27929) et [#27930](https://github.com/ClickHouse/ClickHouse/issues/27930). Cela a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/25452](https://github.com/ClickHouse/ClickHouse/pull/25452). [#27939](https://github.com/ClickHouse/ClickHouse/pull/27939) ([Amos Bird](https://github.com/amosbird)).
* Plusieurs corrections pour le nouvel outil `clickhouse-keeper`. Corrige un bug rare dans `clickhouse-keeper` où le client peut recevoir une réponse de watch avant la réponse à la requête correspondante. [#28197](https://github.com/ClickHouse/ClickHouse/pull/28197) ([alesapin](https://github.com/alesapin)). Corrige un comportement incorrect dans `clickhouse-keeper` lorsque des watches de liste (`getChildren`) sont déclenchées par des requêtes `set` sur les enfants. [#28190](https://github.com/ClickHouse/ClickHouse/pull/28190) ([alesapin](https://github.com/alesapin)). Corrige un cas rare où des modifications des paramètres de `clickhouse-keeper` peuvent entraîner une perte de logs et le blocage du serveur. [#28360](https://github.com/ClickHouse/ClickHouse/pull/28360) ([alesapin](https://github.com/alesapin)). Corrige un bug dans `clickhouse-keeper` pouvant entraîner des logs sans fin lorsque `rotate_logs_interval` est réduit. [#28152](https://github.com/ClickHouse/ClickHouse/pull/28152) ([alesapin](https://github.com/alesapin)).

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

* Activer Thread Fuzzer dans le test de stress. Thread Fuzzer est une fonctionnalité de ClickHouse qui permet de tester davantage de permutations d’ordonnancement des threads et de découvrir plus de problèmes potentiels. Cela clôt [#9813](https://github.com/ClickHouse/ClickHouse/issues/9813). Cela clôt [#9814](https://github.com/ClickHouse/ClickHouse/issues/9814). Cela clôt [#9515](https://github.com/ClickHouse/ClickHouse/issues/9515). Cela clôt [#9516](https://github.com/ClickHouse/ClickHouse/issues/9516). [#27538](https://github.com/ClickHouse/ClickHouse/pull/27538) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajouter un nouveau niveau de log `test` pour les environnements de test. Il est encore plus verbeux que `trace`, qui est la valeur par défaut. [#28559](https://github.com/ClickHouse/ClickHouse/pull/28559) ([alesapin](https://github.com/alesapin)).
* Afficher les informations d’état de Git lors de l’étape de configuration de CMake. [#28047](https://github.com/ClickHouse/ClickHouse/pull/28047) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Basculer temporairement le dépôt apt d’Ubuntu vers le miroir ru.archive.ubuntu.com, car celui par défaut (archive.ubuntu.com) ne répond pas depuis notre CI. [#28016](https://github.com/ClickHouse/ClickHouse/pull/28016) ([Ilya Yatsishin](https://github.com/qoega)).

<div id="clickhouse-release-v219-2021-09-09">
  ### Version de ClickHouse v21.9, 2021-09-09
</div>

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

* Ne plus afficher les zéros finaux dans la représentation textuelle des types `Decimal`. Exemple : `1.23` sera affiché au lieu de `1.230000` pour un décimal d’échelle 6. Cela clôt [#15794](https://github.com/ClickHouse/ClickHouse/issues/15794). Cela peut introduire une légère incompatibilité si vos applications s’appuyaient d’une façon ou d’une autre sur ces zéros finaux. La sérialisation dans les formats de sortie peut être contrôlée avec le paramètre `output_format_decimal_trailing_zeros`. L’implémentation de `toString` et la conversion en String sont modifiées de manière inconditionnelle. [#27680](https://github.com/ClickHouse/ClickHouse/pull/27680) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ne pas autoriser l’application d’une aggregate function paramétrique avec le combinator `-Merge` à l’état d’une aggregate function si cet état a été produit par une aggregate function avec des paramètres différents. Par exemple, l’état de `fooState(42)(x)` ne peut pas être finalisé avec `fooMerge(s)` ni `fooMerge(123)(s)` ; les paramètres doivent être spécifiés explicitement comme dans `fooMerge(42)(s)` et doivent être identiques. Cela n’affecte pas certaines aggregate functions spéciales comme `quantile` et `sequence*`, qui utilisent des paramètres uniquement pour la finalisation. [#26847](https://github.com/ClickHouse/ClickHouse/pull/26847) ([tavplubix](https://github.com/tavplubix)).
* Dans clickhouse-local, toujours traiter les adresses locales avec un port comme distantes. [#26736](https://github.com/ClickHouse/ClickHouse/pull/26736) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige le problème suivant : dans certaines query complexes avec des alias de column identiques aux noms des expressions, un mauvais CAST peut se produire. Cela corrige [#25447](https://github.com/ClickHouse/ClickHouse/issues/25447). Cela corrige [#26914](https://github.com/ClickHouse/ClickHouse/issues/26914). Ce correctif peut introduire une incompatibilité avec les versions précédentes : s’il existe différentes expressions portant le même nom, une exception sera levée. Cela peut casser certains cas rares lorsque `enable_optimize_predicate_expression` est défini. [#26639](https://github.com/ClickHouse/ClickHouse/pull/26639) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Désormais, une scalar subquery renvoie toujours un résultat `Nullable` si son type peut être `Nullable`. Cela est nécessaire car, dans le cas d’une subquery vide, son résultat doit être `Null`. Auparavant, il était possible d’obtenir une error signalant des types incompatibles (la déduction de type n’exécute pas la scalar subquery et pouvait utiliser un type non nullable). Une scalar subquery avec un résultat vide qui ne peut pas être converti en `Nullable` (comme `Array` ou `Tuple`) génère désormais une error. Corrige [#25411](https://github.com/ClickHouse/ClickHouse/issues/25411). [#26423](https://github.com/ClickHouse/ClickHouse/pull/26423) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Introduction de la syntaxe des here documents. Exemple : `SELECT $doc$ VALUE $doc$`. [#26671](https://github.com/ClickHouse/ClickHouse/pull/26671) ([Maksim Kita](https://github.com/kitaisreal)). Ce changement est incompatible avec les versions précédentes si la query contient des identifiants comprenant `$` [#28768](https://github.com/ClickHouse/ClickHouse/issues/28768).
* Désormais, les index peuvent gérer les types Nullable, y compris `isNull` et `isNotNull`. [#12433](https://github.com/ClickHouse/ClickHouse/pull/12433) et [#12455](https://github.com/ClickHouse/ClickHouse/pull/12455) ([Amos Bird](https://github.com/amosbird)) et [#27250](https://github.com/ClickHouse/ClickHouse/pull/27250) ([Azat Khuzhin](https://github.com/azat)). Mais cela s’accompagne de modifications du format sur disque, et même si le nouveau server peut lire les anciennes données, l’ancien server ne le peut pas. De plus, si vous avez des data skipping indices `MINMAX`, vous pouvez obtenir l’error `Data after mutation/merge is not byte-identical`, puisque le nouvel index aura l’extension `.idx2` alors qu’auparavant c’était `.idx`. En d’autres termes, dans ce cas, vous ne devez pas retarder la mise à jour de toutes les replicas existantes ; sinon, si une ancienne replica (\<21.9) télécharge des données depuis une nouvelle replica en 21.9+, elle ne pourra pas appliquer l’index à la part téléchargée.

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

* Implémentation de l’évaluation paresseuse des fonctions, corrige [#12587](https://github.com/ClickHouse/ClickHouse/issues/12587). Ajout du paramètre `short_circuit_function_evaluation` pour configurer l’évaluation paresseuse des fonctions. [#23367](https://github.com/ClickHouse/ClickHouse/pull/23367) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge des opérateurs INTERSECT, EXCEPT, ANY et ALL. [#24757](https://github.com/ClickHouse/ClickHouse/pull/24757) ([Kirill Ershov](https://github.com/zdikov)). ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la prise en charge du chiffrement au niveau du système de fichiers virtuel (chiffrement des données au repos) à l’aide de l’algorithme AES-CTR. [#24206](https://github.com/ClickHouse/ClickHouse/pull/24206) ([Latysheva Alexandra](https://github.com/alexelex)). ([Vitaly Baranov](https://github.com/vitlibar)) [#26733](https://github.com/ClickHouse/ClickHouse/pull/26733) [#26377](https://github.com/ClickHouse/ClickHouse/pull/26377) [#26465](https://github.com/ClickHouse/ClickHouse/pull/26465).
* Ajout de fonctions de traitement automatique du langage naturel (NLP) pour la tokenisation, la racinisation, la lemmatisation et la recherche dans les extensions de synonymes. [#24997](https://github.com/ClickHouse/ClickHouse/pull/24997) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de l’intégration avec la bibliothèque de géométrie S2. [#24980](https://github.com/ClickHouse/ClickHouse/pull/24980) ([Andr0901](https://github.com/Andr0901)). ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout du moteur de table, de la table function et du moteur de base de données SQLite. [#24194](https://github.com/ClickHouse/ClickHouse/pull/24194) ([Arslan Gumerov](https://github.com/g-arslan)). ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la prise en charge des requêtes personnalisées pour les dictionary sources `MySQL`, `PostgreSQL`, `ClickHouse`, `JDBC` et `Cassandra`. Corrige [#1270](https://github.com/ClickHouse/ClickHouse/issues/1270). [#26995](https://github.com/ClickHouse/ClickHouse/pull/26995) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout du stockage partagé (répliqué) des utilisateurs, rôles, politiques de lignes, quotas et profils de paramètres via ZooKeeper. [#27426](https://github.com/ClickHouse/ClickHouse/pull/27426) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Ajout de la compression pour `INTO OUTFILE`, avec sélection automatique de l’algorithme de compression. Corrige [#3473](https://github.com/ClickHouse/ClickHouse/issues/3473). [#27134](https://github.com/ClickHouse/ClickHouse/pull/27134) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Ajout de `INSERT ... FROM INFILE`, sur le modèle de `SELECT ... INTO OUTFILE`. [#27655](https://github.com/ClickHouse/ClickHouse/pull/27655) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Ajout du dictionnaire `complex_key_range_hashed`. Corrige [#22029](https://github.com/ClickHouse/ClickHouse/issues/22029). [#27629](https://github.com/ClickHouse/ClickHouse/pull/27629) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge des expressions dans la clause JOIN ON. Corrige [#21868](https://github.com/ClickHouse/ClickHouse/issues/21868). [#24420](https://github.com/ClickHouse/ClickHouse/pull/24420) ([Vladimir C](https://github.com/vdimir)).
* Lorsqu’un client se connecte au serveur, il reçoit des informations sur tous les avertissements déjà collectés par le serveur. (Cela peut être désactivé avec l’option `--no-warnings`.) Ajout de la table `system.warnings` pour collecter les avertissements relatifs à la configuration du serveur. [#26246](https://github.com/ClickHouse/ClickHouse/pull/26246) ([Filatenkov Artur](https://github.com/FArthur-cmd)). [#26282](https://github.com/ClickHouse/ClickHouse/pull/26282) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Autorise l’utilisation d’expressions constantes issues de with et select dans les paramètres de fonction d’agrégation. Résout [#10945](https://github.com/ClickHouse/ClickHouse/issues/10945). [#27531](https://github.com/ClickHouse/ClickHouse/pull/27531) ([abel-cheng](https://github.com/abel-cheng)).
* Ajoute `tupleToNameValuePairs`, une fonction qui transforme un tuple nommé en tableau de paires. [#27505](https://github.com/ClickHouse/ClickHouse/pull/27505) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Ajoute la prise en charge de la méthode de compression `bzip2` pour l’import/export. Résout [#22428](https://github.com/ClickHouse/ClickHouse/issues/22428). [#27377](https://github.com/ClickHouse/ClickHouse/pull/27377) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de la fonction `bitmapSubsetOffsetLimit(bitmap, offset, cardinality_limit)`. Elle crée un sous-ensemble du bitmap en limitant les résultats à `cardinality_limit` avec un décalage de `offset`. [#27234](https://github.com/ClickHouse/ClickHouse/pull/27234) ([DHBin](https://github.com/DHBin)).
* Ajoute la colonne `default_database` à `system.users`. [#27054](https://github.com/ClickHouse/ClickHouse/pull/27054) ([kevin wan](https://github.com/MaxWk)).
* Prise en charge des macros `cluster` dans les fonctions de table 'cluster' et 'clusterAllReplicas'. [#26913](https://github.com/ClickHouse/ClickHouse/pull/26913) ([polyprogrammist](https://github.com/PolyProgrammist)).
* Ajoute de nouvelles fonctions `currentRoles()`, `enabledRoles()`, `defaultRoles()`. [#26780](https://github.com/ClickHouse/ClickHouse/pull/26780) ([Vitaly Baranov](https://github.com/vitlibar)).
* Nouvelles fonctions `currentProfiles()`, `enabledProfiles()`, `defaultProfiles()`. [#26714](https://github.com/ClickHouse/ClickHouse/pull/26714) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajoute des fonctions qui renvoient le (initial\_)query\_id de la requête en cours. Cela résout [#23682](https://github.com/ClickHouse/ClickHouse/issues/23682). [#26410](https://github.com/ClickHouse/ClickHouse/pull/26410) ([Alexey Boykov](https://github.com/mathalex)).
* Ajoute la fonctionnalité `REPLACE GRANT`. [#26384](https://github.com/ClickHouse/ClickHouse/pull/26384) ([Caspian](https://github.com/Cas-pian)).
* La requête `EXPLAIN` dispose maintenant du mode `EXPLAIN ESTIMATE ...`, qui affiche des informations sur les lignes lues, les marks et les parts des tables MergeTree. Résout [#23941](https://github.com/ClickHouse/ClickHouse/issues/23941). [#26131](https://github.com/ClickHouse/ClickHouse/pull/26131) ([fastio](https://github.com/fastio)).
* Ajout de la table `system.zookeeper_log`. Toutes les actions du client ZooKeeper sont journalisées dans cette table. Implémente [#25449](https://github.com/ClickHouse/ClickHouse/issues/25449). [#26129](https://github.com/ClickHouse/ClickHouse/pull/26129) ([tavplubix](https://github.com/tavplubix)).
* Réplication zero-copy pour `ReplicatedMergeTree` sur le stockage `HDFS`. [#25918](https://github.com/ClickHouse/ClickHouse/pull/25918) ([Zhichang Yu](https://github.com/yuzhichang)).
* Autorise l’insertion du type Nested comme tableau de structs dans les formats d’entrée `Arrow`, `ORC` et `Parquet`. [#25902](https://github.com/ClickHouse/ClickHouse/pull/25902) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute un nouveau type de données `Date32` (stocké sous forme de Int32), prenant en charge la même plage de dates que `DateTime64`, le chargement de Parquet date32 dans `Date32` de ClickHouse, et une nouvelle fonction `toDate32` similaire à `toDate`. [#25774](https://github.com/ClickHouse/ClickHouse/pull/25774) ([LiuNeng](https://github.com/liuneng1994)).
* Permet de définir votre base de données par défaut. [#25268](https://github.com/ClickHouse/ClickHouse/issues/25268). [#25687](https://github.com/ClickHouse/ClickHouse/pull/25687) ([kevin wan](https://github.com/MaxWk)).
* Ajoute un paramètre facultatif au moteur `MongoDB` pour accepter des options de chaîne de connexion et prendre en charge les connexions SSL. Résout [#21189](https://github.com/ClickHouse/ClickHouse/issues/21189). Résout [#21041](https://github.com/ClickHouse/ClickHouse/issues/21041). [#22045](https://github.com/ClickHouse/ClickHouse/pull/22045) ([Omar Bazaraa](https://github.com/OmarBazaraa)).

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

* Ajout du codec de compression `AES_128_GCM_SIV`, qui chiffre les colonnes au lieu de les compresser. [#19896](https://github.com/ClickHouse/ClickHouse/pull/19896) ([PHO](https://github.com/depressed-pho)). Sera réécrit, ne pas utiliser.
* Renommage de `MaterializeMySQL` en `MaterializedMySQL`. [#26822](https://github.com/ClickHouse/ClickHouse/pull/26822) ([tavplubix](https://github.com/tavplubix)).

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

* Améliore les performances des requêtes rapides lorsque `max_execution_time = 0` en réduisant le nombre d'appels système à `clock_gettime`. [#27325](https://github.com/ClickHouse/ClickHouse/pull/27325) ([filimonov](https://github.com/filimonov)).
* Spécialise les comparaisons liées aux dates et heures afin d'améliorer les performances. Cela corrige [#27083](https://github.com/ClickHouse/ClickHouse/issues/27083). [#27122](https://github.com/ClickHouse/ClickHouse/pull/27122) ([Amos Bird](https://github.com/amosbird)).
* Partage les descripteurs de fichiers lors de lectures concurrentes des mêmes fichiers. Il n'y a pas de différence de performances notable sous Linux. En revanche, le nombre de fichiers ouverts sera nettement plus faible (de 10 à 100 fois) sur des serveurs typiques, ce qui facilite les opérations. Voir [#26214](https://github.com/ClickHouse/ClickHouse/issues/26214). [#26768](https://github.com/ClickHouse/ClickHouse/pull/26768) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Améliore la latence des requêtes courtes qui nécessitent la lecture de tables comportant un grand nombre de colonnes. [#26371](https://github.com/ClickHouse/ClickHouse/pull/26371) ([Anton Popov](https://github.com/CurtizJ)).
* Ne construit pas de sets pour les index lors de l'analyse d'une requête. [#26365](https://github.com/ClickHouse/ClickHouse/pull/26365) ([Raúl Marín](https://github.com/Algunenano)).
* Vectorise SUM pour les types entiers Nullable avec une représentation native ([David Manzanares](https://github.com/davidmanzanares), [Raúl Marín](https://github.com/Algunenano)). [#26248](https://github.com/ClickHouse/ClickHouse/pull/26248) ([Raúl Marín](https://github.com/Algunenano)).
* Compile les expressions faisant intervenir des colonnes de type `Enum`. [#26237](https://github.com/ClickHouse/ClickHouse/pull/26237) ([Maksim Kita](https://github.com/kitaisreal)).
* Compile les fonctions d'agrégation `groupBitOr`, `groupBitAnd`, `groupBitXor`. [#26161](https://github.com/ClickHouse/ClickHouse/pull/26161) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore l'utilisation mémoire grâce à une meilleure prédiction de la taille des blocs lors de la lecture de colonnes DEFAULT vides. Corrige [#17317](https://github.com/ClickHouse/ClickHouse/issues/17317). [#25917](https://github.com/ClickHouse/ClickHouse/pull/25917) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Réduit l'utilisation mémoire et le nombre de lignes lues dans les requêtes avec `ORDER BY primary_key`. [#25721](https://github.com/ClickHouse/ClickHouse/pull/25721) ([Anton Popov](https://github.com/CurtizJ)).
* Active `distributed_push_down_limit` par défaut. [#27104](https://github.com/ClickHouse/ClickHouse/pull/27104) ([Azat Khuzhin](https://github.com/azat)).
* Rend `toTimeZone` monotone lorsque `timeZone` est une valeur constante afin de prendre en charge l'élagage des partitions lors de l'utilisation de requêtes SQL du type :. [#26261](https://github.com/ClickHouse/ClickHouse/pull/26261) ([huangzhaowei](https://github.com/SaintBacchus)).

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

* Marquer les fonctions de fenêtre comme prêtes pour un usage général. Supprimer le paramètre `allow_experimental_window_functions`. [#27184](https://github.com/ClickHouse/ClickHouse/pull/27184) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Améliorer la compatibilité avec les décalages de fuseau horaire qui ne correspondent pas à un nombre entier de minutes. [#27080](https://github.com/ClickHouse/ClickHouse/pull/27080) ([Raúl Marín](https://github.com/Algunenano)).
* Si le descripteur de fichier de la table `File` est un fichier ordinaire, autoriser sa lecture multiple. Cela permet à `clickhouse-local` de lire plusieurs fois depuis stdin (avec plusieurs requêtes SELECT ou sous-requêtes) si stdin est un fichier ordinaire, par exemple `clickhouse-local --query "SELECT * FROM table UNION ALL SELECT * FROM table" ... < file`. Cela clôt [#11124](https://github.com/ClickHouse/ClickHouse/issues/11124). Coécrit avec ([alexey-milovidov](https://github.com/alexey-milovidov)). [#25960](https://github.com/ClickHouse/ClickHouse/pull/25960) ([BoloniniD](https://github.com/BoloniniD)).
* Supprimer l’analyse d’index en double et éviter d’éventuelles vérifications de limite invalides lors de l’analyse des projections. [#27742](https://github.com/ClickHouse/ClickHouse/pull/27742) ([Amos Bird](https://github.com/amosbird)).
* Autoriser le passage de paramètres de requête dans le corps des requêtes HTTP. [#27706](https://github.com/ClickHouse/ClickHouse/pull/27706) ([Hermano Lustosa](https://github.com/hllustosa)).
* Interdire `arrayJoin` dans les expressions de partition. [#27648](https://github.com/ClickHouse/ClickHouse/pull/27648) ([Raúl Marín](https://github.com/Algunenano)).
* Journaliser l’adresse IP du client en cas d’échec de l’authentification. [#27514](https://github.com/ClickHouse/ClickHouse/pull/27514) ([Misko Lee](https://github.com/imiskolee)).
* Utiliser des octets plutôt que des chaînes pour les données binaires dans le protocole GRPC. [#27431](https://github.com/ClickHouse/ClickHouse/pull/27431) ([Vitaly Baranov](https://github.com/vitlibar)).
* Envoyer une réponse avec un message d’erreur si le port HTTP n’est pas défini et qu’un utilisateur tente d’envoyer une requête HTTP vers le port TCP. [#27385](https://github.com/ClickHouse/ClickHouse/pull/27385) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Ajouter la fonction `_CAST` pour un usage interne, qui ne préservera pas la nullabilité du type, tandis qu’un CAST non interne la préservera conformément au paramètre `cast_keep_nullable`. Clôt [#12636](https://github.com/ClickHouse/ClickHouse/issues/12636). [#27382](https://github.com/ClickHouse/ClickHouse/pull/27382) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajouter le paramètre `log_formatted_queries` pour journaliser une requête formatée supplémentaire dans `system.query_log`. C'est utile pour l’analyse des requêtes normalisées, car des fonctions comme `normalizeQuery` et `normalizeQueryKeepNames` n’analysent ni ne formatent les requêtes afin d’obtenir de meilleures performances. [#27380](https://github.com/ClickHouse/ClickHouse/pull/27380) ([Amos Bird](https://github.com/amosbird)).
* Ajouter deux paramètres, `max_hyperscan_regexp_length` et `max_hyperscan_regexp_total_length`, pour empêcher l’utilisation d’expressions régulières trop volumineuses dans les fonctions liées à Hyperscan, comme `multiMatchAny`. [#27378](https://github.com/ClickHouse/ClickHouse/pull/27378) ([Amos Bird](https://github.com/amosbird)).
* La mémoire consommée par les fonctions d’agrégation bitmap est désormais prise en compte dans les limites de mémoire. Cela clôt [#26555](https://github.com/ClickHouse/ClickHouse/issues/26555). [#27252](https://github.com/ClickHouse/ClickHouse/pull/27252) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajouter un cache de 10 secondes pour le résolveur de proxy S3. [#27216](https://github.com/ClickHouse/ClickHouse/pull/27216) ([ianton-ru](https://github.com/ianton-ru)).
* Scinder le mutex global en constructions individuelles d’expressions régulières. Cela permet d’éviter qu’une construction d’expression régulière trop volumineuse bloque les autres threads concernés. [#27211](https://github.com/ClickHouse/ClickHouse/pull/27211) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge des schémas pour le moteur de base de données PostgreSQL. Clôt [#27166](https://github.com/ClickHouse/ClickHouse/issues/27166). [#27198](https://github.com/ClickHouse/ClickHouse/pull/27198) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suivi de l’utilisation de la mémoire dans clickhouse-client. [#27191](https://github.com/ClickHouse/ClickHouse/pull/27191) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Tentative d’enregistrement de `query_kind` dans `system.query_log` même lorsque la requête ne parvient pas à démarrer. [#27182](https://github.com/ClickHouse/ClickHouse/pull/27182) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la colonne `replica_is_active` à la table `system.replicas`, qui associe le nom de la réplique à son état d’activité. Clôt [#27138](https://github.com/ClickHouse/ClickHouse/issues/27138). [#27180](https://github.com/ClickHouse/ClickHouse/pull/27180) ([Maksim Kita](https://github.com/kitaisreal)).
* Permet de transmettre les paramètres de requête via l’URI du serveur dans l’interface Web. [#27177](https://github.com/ClickHouse/ClickHouse/pull/27177) ([kolsys](https://github.com/kolsys)).
* Ajout d’une nouvelle Metric appelée `MaxPushedDDLEntryID`, qui correspond à l’identifiant maximal d’entrée DDL que le nœud actuel envoie à ZooKeeper. [#27174](https://github.com/ClickHouse/ClickHouse/pull/27174) ([Fuwang Hu](https://github.com/fuwhu)).
* Amélioration de la vérification de la condition d’existence et des nœuds de chaîne vide lors de la création d’un znode par `clickhouse-keeper`. [#27125](https://github.com/ClickHouse/ClickHouse/pull/27125) ([小路](https://github.com/nicelulu)).
* Merge JOIN gère désormais correctement un ensemble vide à droite. [#27078](https://github.com/ClickHouse/ClickHouse/pull/27078) ([Vladimir C](https://github.com/vdimir)).
* Les fonctions peuvent désormais être des constantes au niveau du shard, ce qui signifie que, si elles sont exécutées dans le contexte d’une table distribuée, elles génèrent une colonne normale ; sinon, elles produisent une valeur constante. Parmi elles : `hostName()`, `tcpPort()`, `version()`, `buildId()`, `uptime()`, etc. [#27020](https://github.com/ClickHouse/ClickHouse/pull/27020) ([Amos Bird](https://github.com/amosbird)).
* Mise à jour de `extractAllGroupsHorizontal` : la limite supérieure du nombre de correspondances par ligne peut être définie via un troisième argument facultatif. [#26961](https://github.com/ClickHouse/ClickHouse/pull/26961) ([Vasily Nemkov](https://github.com/Enmk)).
* Expose les statistiques `RocksDB` via la table `system.rocksdb`. Lit les options rocksdb depuis la config de ClickHouse (clés `rocksdb...`). REMARQUE : ClickHouse ne dépend pas de RocksDB, il s’agit simplement de l’un des moteurs de stockage d’intégration supplémentaires. [#26821](https://github.com/ClickHouse/ClickHouse/pull/26821) ([Azat Khuzhin](https://github.com/azat)).
* Journaux internes de RocksDB moins verbeux. REMARQUE : ClickHouse ne dépend pas de RocksDB, il s’agit simplement de l’un des moteurs de stockage d’intégration supplémentaires. Cela clôt [#26252](https://github.com/ClickHouse/ClickHouse/issues/26252). [#26789](https://github.com/ClickHouse/ClickHouse/pull/26789) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* La modification des rôles par défaut n’affecte que les nouvelles sessions. [#26759](https://github.com/ClickHouse/ClickHouse/pull/26759) ([Vitaly Baranov](https://github.com/vitlibar)).
* Watchdog est désactivé par défaut dans Docker. Correctif pour la non-prise en charge de Ctrl+C. [#26757](https://github.com/ClickHouse/ClickHouse/pull/26757) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* `SET PROFILE` applique désormais aussi les contraintes si elles sont définies pour le profil transmis. [#26730](https://github.com/ClickHouse/ClickHouse/pull/26730) ([Vitaly Baranov](https://github.com/vitlibar)).
* Amélioration de la gestion des requêtes `KILL QUERY`. [#26675](https://github.com/ClickHouse/ClickHouse/pull/26675) ([Raúl Marín](https://github.com/Algunenano)).
* La fonction `mapPopulatesSeries` prend en charge le type `Map`. [#26663](https://github.com/ClickHouse/ClickHouse/pull/26663) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Corrige les tentatives de connexion excessives (x2) avec `skip_unavailable_shards`. [#26658](https://github.com/ClickHouse/ClickHouse/pull/26658) ([Azat Khuzhin](https://github.com/azat)).
* Évite que `clickhouse-benchmark` ne se bloque en cas d’échec de connexion (par ex. sur EMFILE). [#26656](https://github.com/ClickHouse/ClickHouse/pull/26656) ([Azat Khuzhin](https://github.com/azat)).
* Permet au moteur Kafka d’utiliser davantage de threads. [#26642](https://github.com/ClickHouse/ClickHouse/pull/26642) ([feihengye](https://github.com/feihengye)).
* Ajoute la prise en charge du round-robin pour `clickhouse-benchmark` (cela ne diffère pas d’une exécution multi-hôte/port classique, sauf pour le rapport de statistiques). [#26607](https://github.com/ClickHouse/ClickHouse/pull/26607) ([Azat Khuzhin](https://github.com/azat)).
* Les dictionnaires exécutables (`executable`, `executable_pool`) peuvent désormais être créés avec une requête DDL via `clickhouse-local`. Clôt [#22355](https://github.com/ClickHouse/ClickHouse/issues/22355). [#26510](https://github.com/ClickHouse/ClickHouse/pull/26510) ([Maksim Kita](https://github.com/kitaisreal)).
* Définit le type de requête client pour les handlers du protocole de compatibilité `mysql` et `postgresql`. [#26498](https://github.com/ClickHouse/ClickHouse/pull/26498) ([anneji-dev](https://github.com/anneji-dev)).
* Applique `LIMIT` au niveau des shards pour les requêtes comme `SELECT * FROM dist ORDER BY key LIMIT 10` avec `distributed_push_down_limit=1`. Évite d’exécuter les étapes `Distinct`/`LIMIT BY` pour les requêtes comme `SELECT DISTINCT shading_key FROM dist ORDER BY key`. Désormais, `distributed_push_down_limit` est respecté par l’optimisation `optimize_distributed_group_by_sharding_key`. [#26466](https://github.com/ClickHouse/ClickHouse/pull/26466) ([Azat Khuzhin](https://github.com/azat)).
* Protobuf a été mis à jour vers la version 3.17.3. Les changelogs sont disponibles sur [https://github.com/protocolbuffers/protobuf/releases](https://github.com/protocolbuffers/protobuf/releases). [#26424](https://github.com/ClickHouse/ClickHouse/pull/26424) ([Ilya Yatsishin](https://github.com/qoega)).
* Active le paramètre `use_hedged_requests`, qui permet d’atténuer les latences de longue traîne sur les grands clusters. [#26380](https://github.com/ClickHouse/ClickHouse/pull/26380) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Améliore le comportement en présence d’un hôte inexistant dans la liste des hôtes autorisés de l’utilisateur. [#26368](https://github.com/ClickHouse/ClickHouse/pull/26368) ([ianton-ru](https://github.com/ianton-ru)).
* Ajoute la possibilité de définir les paramètres du moniteur de répertoire de `Distributed` via CREATE TABLE (par ex. `CREATE TABLE dist (key Int) Engine=Distributed(cluster, db, table) SETTINGS monitor_batch_inserts=1` et autres variantes similaires). [#26336](https://github.com/ClickHouse/ClickHouse/pull/26336) ([Azat Khuzhin](https://github.com/azat)).
* Enregistre l’adresse du serveur dans les URL de l’historique de l’interface web si elle diffère de l’origine de l’interface web. Clôt [#26044](https://github.com/ClickHouse/ClickHouse/issues/26044). [#26322](https://github.com/ClickHouse/ClickHouse/pull/26322) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajoute des événements au profilage des appels à `sleep` / `sleepEachRow`. [#26320](https://github.com/ClickHouse/ClickHouse/pull/26320) ([Raúl Marín](https://github.com/Algunenano)).
* Permet de réutiliser les connexions des shards entre différents clusters. Cela évite également de créer de nouvelles connexions lors de l’utilisation de la fonction de table `cluster`. [#26318](https://github.com/ClickHouse/ClickHouse/pull/26318) ([Amos Bird](https://github.com/amosbird)).
* Contrôle de la période d’exécution du nettoyage des anciens répertoires temporaires via un paramètre doté d’une valeur par défaut. [#26212](https://github.com/ClickHouse/ClickHouse/issues/26212). [#26313](https://github.com/ClickHouse/ClickHouse/pull/26313) ([fastio](https://github.com/fastio)).
* Ajout du paramètre `function_range_max_elements_in_block` pour ajuster le seuil de sécurité du volume de données généré par la fonction `range`. Cela clôt [#26303](https://github.com/ClickHouse/ClickHouse/issues/26303). [#26305](https://github.com/ClickHouse/ClickHouse/pull/26305) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Vérification de la fonction de hachage lors de la création de la table, et non lors de l’échantillonnage. Ajout de paramètres pour MergeTree afin que, si quelqu’un crée une table avec une colonne d’échantillonnage incorrecte mais que l’échantillonnage n’est jamais utilisé, il soit possible de désactiver ces paramètres pour démarrer le serveur sans exception. [#26256](https://github.com/ClickHouse/ClickHouse/pull/26256) ([zhaoyu](https://github.com/zxc111)).
* Ajout du paramètre `output_format_avro_string_column_pattern` pour écrire les colonnes String spécifiées dans Avro sous forme de chaînes plutôt que sous forme d’octets par défaut. Implémente [#22414](https://github.com/ClickHouse/ClickHouse/issues/22414). [#26245](https://github.com/ClickHouse/ClickHouse/pull/26245) ([Ilya Golshtein](https://github.com/ilejn)).
* Ajout d’informations sur la taille des colonnes dans la table `system.columns` pour les tables `Log` et `TinyLog`. Cela clôt [#9001](https://github.com/ClickHouse/ClickHouse/issues/9001). [#26241](https://github.com/ClickHouse/ClickHouse/pull/26241) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ne pas lever d’exception lors de l’interrogation de la table `system.detached_parts` s’il existe une configuration de disque personnalisée et que le répertoire `detached` n’existe pas sur certains disques. Cela clôt [#26078](https://github.com/ClickHouse/ClickHouse/issues/26078). [#26236](https://github.com/ClickHouse/ClickHouse/pull/26236) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Vérification de la présence de fonctions non déterministes dans les clés, y compris dans des expressions constantes comme `now()` et `today()`. Cela clôt [#25875](https://github.com/ClickHouse/ClickHouse/issues/25875). Cela clôt [#11333](https://github.com/ClickHouse/ClickHouse/issues/11333). [#26235](https://github.com/ClickHouse/ClickHouse/pull/26235) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Conversion des data types `timestamp` et `timestamptz` en `DateTime64` dans le PostgreSQL table engine. [#26234](https://github.com/ClickHouse/ClickHouse/pull/26234) ([jasine](https://github.com/jasine)).
* Application d’une analyse agressive de l’index IN pour les projections afin de sélectionner un meilleur candidat de projection. [#26218](https://github.com/ClickHouse/ClickHouse/pull/26218) ([Amos Bird](https://github.com/amosbird)).
* Suppression du keyword GLOBAL pour IN lorsqu’une fonction scalaire est transmise. Dans les versions précédentes, si l’utilisateur spécifiait `GLOBAL IN f(x)`, une exception était levée. [#26217](https://github.com/ClickHouse/ClickHouse/pull/26217) ([Amos Bird](https://github.com/amosbird)).
* Ajout de l’identifiant d’erreur (comme `BAD_ARGUMENTS`) dans les messages d’exception. Cela clôt [#25862](https://github.com/ClickHouse/ClickHouse/issues/25862). [#26172](https://github.com/ClickHouse/ClickHouse/pull/26172) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’une sortie incorrecte avec l’option --progress pour clickhouse-local. La barre de progression sera effacée une fois 100 % atteints, comme c’est déjà le cas pour clickhouse-client. Clôt [#17484](https://github.com/ClickHouse/ClickHouse/issues/17484). [#26128](https://github.com/ClickHouse/ClickHouse/pull/26128) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout du paramètre `merge_selecting_sleep_ms`. [#26120](https://github.com/ClickHouse/ClickHouse/pull/26120) ([lthaooo](https://github.com/lthaooo)).
* Supprime l’utilisation complexe de Linux AIO avec prélecture d’un bloc et la remplace par des E/S synchrones simples avec O\_DIRECT. Dans les versions précédentes, le paramètre `min_bytes_to_use_direct_io` pouvait ne pas fonctionner correctement si `max_threads` était supérieur à un. La lecture avec des E/S directes (désactivées par défaut pour les requêtes et activées par défaut pour les merges volumineux) fonctionnera de manière moins efficace. Cela corrige [#25997](https://github.com/ClickHouse/ClickHouse/issues/25997). [#26003](https://github.com/ClickHouse/ClickHouse/pull/26003) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Effectue un flush de la table `Distributed` lors de la requête `REPLACE TABLE`. Résout [#24566](https://github.com/ClickHouse/ClickHouse/issues/24566) - Ne pas remplacer (ni créer) la table avec la requête `[CREATE OR] REPLACE TABLE ... AS SELECT` si l’insertion dans la nouvelle table échoue. Résout [#23175](https://github.com/ClickHouse/ClickHouse/issues/23175). [#25895](https://github.com/ClickHouse/ClickHouse/pull/25895) ([tavplubix](https://github.com/tavplubix)).
* Ajoute la colonne `views` à system.query\_log, contenant les noms des vues (matérialisées ou live) exécutées par la requête. Ajoute une nouvelle table de logs (`system.query_views_log`) qui contient des informations sur chaque vue exécutée pendant une requête. Modifie l’exécution des vues : lorsqu’une exception est levée pendant l’exécution d’une vue, toute vue déjà démarrée continue à s’exécuter jusqu’à la fin. C’était auparavant le comportement avec parallel\_view\_processing=true, et c’est désormais toujours le cas. - Les vues dépendantes rapportent désormais la progression de lecture au contexte. [#25714](https://github.com/ClickHouse/ClickHouse/pull/25714) ([Raúl Marín](https://github.com/Algunenano)).
* Effectue le drainage des connexions de manière asynchrone à la fin de l’exécution des requêtes distribuées. Un nouveau paramètre serveur est ajouté, `max_threads_for_connection_collector`, qui spécifie le nombre de workers chargés de recycler les connexions en arrière-plan. Si le pool est plein, la connexion sera drainée de manière synchrone, mais un peu différemment d’auparavant : elle est drainée après l’envoi de EOS au client, la requête réussira dès réception d’assez de données, et toute exception sera consignée dans les logs au lieu d’être renvoyée au client. Ajout du paramètre `drain_timeout` (3 secondes par défaut). Le drainage des connexions déconnectera en cas de timeout. [#25674](https://github.com/ClickHouse/ClickHouse/pull/25674) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge de plusieurs inclusions dans la configuration. Il est possible d’inclure la configuration des utilisateurs et celle des serveurs distants depuis plusieurs sources. Placez simplement un élément `<include />` avec l’attribut `from_zk`, `from_env` ou `incl`, et il sera remplacé par la substitution. [#24404](https://github.com/ClickHouse/ClickHouse/pull/24404) ([nvartolomei](https://github.com/nvartolomei)).
* Corrige l’insertion de plusieurs blocs dans une table distribuée avec `insert_distributed_one_random_shard = 1`. Il s’agit d’une fonctionnalité marginale. À classer comme improvement. [#23140](https://github.com/ClickHouse/ClickHouse/pull/23140) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge des clés et valeurs `LowCardinality` et `FixedString` pour le type `Map`. [#21543](https://github.com/ClickHouse/ClickHouse/pull/21543) ([hexiaoting](https://github.com/hexiaoting)).
* Active le rechargement de la configuration du disque local. [#19526](https://github.com/ClickHouse/ClickHouse/pull/19526) ([taiyang-li](https://github.com/taiyang-li)).

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

* Corrige quelques bogues pouvant entraîner une divergence des répliques. [#27808](https://github.com/ClickHouse/ClickHouse/pull/27808) ([tavplubix](https://github.com/tavplubix)).
* Corrige un bogue rare dans `DROP PART` qui peut provoquer l'erreur `Unexpected merged part intersects drop range`. [#27807](https://github.com/ClickHouse/ClickHouse/pull/27807) ([alesapin](https://github.com/alesapin)).
* Évite des plantages avec certains formats lors de la réception d'un message NULL (tombstone) provenant de Kafka. Clôt [#19255](https://github.com/ClickHouse/ClickHouse/issues/19255). [#27794](https://github.com/ClickHouse/ClickHouse/pull/27794) ([filimonov](https://github.com/filimonov)).
* Corrige le filtrage des colonnes avec UNION DISTINCT dans une sous-requête. Clôt [#27578](https://github.com/ClickHouse/ClickHouse/issues/27578). [#27689](https://github.com/ClickHouse/ClickHouse/pull/27689) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une conversion de type incorrecte lorsque des fonctions comme `arrayHas` sont appliquées à des tableaux LowCardinality de Nullable de différents types non numériques, tels que `DateTime` et `DateTime64`. Dans les versions précédentes, une conversion incorrecte se produisait. Dans la nouvelle version, cela entraînera une exception. Cela clôt [#26330](https://github.com/ClickHouse/ClickHouse/issues/26330). [#27682](https://github.com/ClickHouse/ClickHouse/pull/27682) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige la fonction de table PostgreSQL qui entraînait des connexions ne se fermant pas. Clôt [#26088](https://github.com/ClickHouse/ClickHouse/issues/26088). [#27662](https://github.com/ClickHouse/ClickHouse/pull/27662) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un autre cas de l'erreur `Unexpected merged part ... intersecting drop range ...`. [#27656](https://github.com/ClickHouse/ClickHouse/pull/27656) ([tavplubix](https://github.com/tavplubix)).
* Corrige une erreur liée à une colonne aliasée dans une table `Distributed`. [#27652](https://github.com/ClickHouse/ClickHouse/pull/27652) ([Vladimir C](https://github.com/vdimir)).
* Après avoir défini `max_memory_usage*` sur une valeur non nulle, il n'était pas possible de le réinitialiser à 0 (illimité). C'est corrigé. [#27638](https://github.com/ClickHouse/ClickHouse/pull/27638) ([tavplubix](https://github.com/tavplubix)).
* Corrige un débordement inférieur de la valeur temporelle lors de sa construction à partir de composants. Clôt [#27193](https://github.com/ClickHouse/ClickHouse/issues/27193). [#27605](https://github.com/ClickHouse/ClickHouse/pull/27605) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrige un plantage lors de la matérialisation des projections lorsque certaines parties contiennent des colonnes manquantes. Cela corrige [#27512](https://github.com/ClickHouse/ClickHouse/issues/27512). [#27528](https://github.com/ClickHouse/ClickHouse/pull/27528) ([Amos Bird](https://github.com/amosbird)).
* Corrige la métrique `BackgroundMessageBrokerSchedulePoolTask`, probablement mal nommée. [#27452](https://github.com/ClickHouse/ClickHouse/pull/27452) ([Ben](https://github.com/benbiti)).
* Corrige les requêtes distribuées avec zéro shard et agrégation. [#27427](https://github.com/ClickHouse/ClickHouse/pull/27427) ([Azat Khuzhin](https://github.com/azat)).
* Assure la compatibilité lorsque `/proc/meminfo` ne contient pas le suffixe KB. [#27361](https://github.com/ClickHouse/ClickHouse/pull/27361) ([Mike Kot](https://github.com/myrrc)).
* Corrige un résultat incorrect pour une requête avec sécurité au niveau des lignes, PREWHERE et filtre LowCardinality. Corrige [#27179](https://github.com/ClickHouse/ClickHouse/issues/27179). [#27329](https://github.com/ClickHouse/ClickHouse/pull/27329) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d'une validation incorrecte de l'ID de partition pour les tables MergeTree créées avec l'ancienne syntaxe. [#27328](https://github.com/ClickHouse/ClickHouse/pull/27328) ([tavplubix](https://github.com/tavplubix)).
* Correction du protocole MySQL lors de l'utilisation des formats parallèles (CSV / TSV). [#27326](https://github.com/ClickHouse/ClickHouse/pull/27326) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l'erreur `Cannot find column` pour les requêtes avec échantillonnage. Introduite dans [#24574](https://github.com/ClickHouse/ClickHouse/issues/24574). Corrige [#26522](https://github.com/ClickHouse/ClickHouse/issues/26522). [#27301](https://github.com/ClickHouse/ClickHouse/pull/27301) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d'erreurs telles que `Expected ColumnLowCardinality, gotUInt8` ou `Bad cast from type DB::ColumnVector<char8_t> to DB::ColumnLowCardinality` pour certaines requêtes avec `LowCardinality` dans `PREWHERE`. Et surtout, correction de l'absence d'espace dans le message d'erreur. Corrige [#23515](https://github.com/ClickHouse/ClickHouse/issues/23515). [#27298](https://github.com/ClickHouse/ClickHouse/pull/27298) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de `distributed_group_by_no_merge = 2` avec `distributed_push_down_limit = 1` ou `optimize_distributed_group_by_sharding_key = 1` avec `LIMIT BY` et `LIMIT OFFSET`. [#27249](https://github.com/ClickHouse/ClickHouse/pull/27249) ([Azat Khuzhin](https://github.com/azat)). Il s'agit de combinaisons de settings obscures que personne n'utilise.
* Correction d'une mutation bloquée sur des partitions invalides dans un MergeTree non répliqué. [#27248](https://github.com/ClickHouse/ClickHouse/pull/27248) ([Azat Khuzhin](https://github.com/azat)).
* En cas d'ambiguïté, les fonctions lambda donnent la priorité à leurs arguments plutôt qu'aux autres alias ou identifiants. [#27235](https://github.com/ClickHouse/ClickHouse/pull/27235) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de la structure des colonnes dans la jointure par fusion, clôt [#27091](https://github.com/ClickHouse/ClickHouse/issues/27091). [#27217](https://github.com/ClickHouse/ClickHouse/pull/27217) ([Vladimir C](https://github.com/vdimir)).
* Dans de rares cas, la table `system.detached_parts` pouvait contenir des informations incorrectes pour certaines parts ; c'est désormais corrigé. Corrige [#27114](https://github.com/ClickHouse/ClickHouse/issues/27114). [#27183](https://github.com/ClickHouse/ClickHouse/pull/27183) ([tavplubix](https://github.com/tavplubix)).
* Correction d'un problème de mémoire non initialisée dans les fonctions `multiSearch*` avec un Array vide, clôt [#27169](https://github.com/ClickHouse/ClickHouse/issues/27169). [#27181](https://github.com/ClickHouse/ClickHouse/pull/27181) ([Vladimir C](https://github.com/vdimir)).
* Correction de la synchronisation dans GRPCServer. Cette PR corrige [#27024](https://github.com/ClickHouse/ClickHouse/issues/27024). [#27064](https://github.com/ClickHouse/ClickHouse/pull/27064) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de l'analyse de la configuration `cache`, `complex_key_cache`, `ssd_cache`, `complex_key_ssd_cache`. Les options `allow_read_expired_keys`, `max_update_queue_size`, `update_queue_push_timeout_milliseconds`, `query_wait_timeout_milliseconds` n'étaient pas prises en compte pour les dictionnaires d'un type autre que `cache`. [#27032](https://github.com/ClickHouse/ClickHouse/pull/27032) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d'une possible accumulation de mutations due à une situation de concurrence avec DROP\_RANGE. [#27002](https://github.com/ClickHouse/ClickHouse/pull/27002) ([Azat Khuzhin](https://github.com/azat)).
* Désormais, l’ID de partition dans des requêtes comme `ALTER TABLE ... PARTITION ID xxx` est vérifié pour s’assurer de sa validité. Corrige [#25718](https://github.com/ClickHouse/ClickHouse/issues/25718). [#26963](https://github.com/ClickHouse/ClickHouse/pull/26963) ([alesapin](https://github.com/alesapin)).
* Corrige l’erreur "Nom de colonne inconnu" avec plusieurs JOIN dans certains cas, clôt [#26899](https://github.com/ClickHouse/ClickHouse/issues/26899). [#26957](https://github.com/ClickHouse/ClickHouse/pull/26957) ([Vladimir C](https://github.com/vdimir)).
* Corrige la lecture des TLD personnalisés (le traitement s’arrêtait avec un buffer plus petit ou un fichier plus volumineux). [#26948](https://github.com/ClickHouse/ClickHouse/pull/26948) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’erreur `Missing columns: 'xxx'` lorsqu’une colonne `DEFAULT` référence une autre colonne non matérialisée sans expression `DEFAULT`. Corrige [#26591](https://github.com/ClickHouse/ClickHouse/issues/26591). [#26900](https://github.com/ClickHouse/ClickHouse/pull/26900) ([alesapin](https://github.com/alesapin)).
* Corrige le chargement des clés de dictionnaire dans `library-bridge` pour la dictionary source `library`. [#26834](https://github.com/ClickHouse/ClickHouse/pull/26834) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les paramètres des fonctions d’agrégation pouvaient être perdus lors de l’application de certains combinators, provoquant des exceptions comme `Conversion from AggregateFunction(topKArray, Array(String)) to AggregateFunction(topKArray(10), Array(String)) is not supported`. C’est corrigé. Corrige [#26196](https://github.com/ClickHouse/ClickHouse/issues/26196) et [#26433](https://github.com/ClickHouse/ClickHouse/issues/26433). [#26814](https://github.com/ClickHouse/ClickHouse/pull/26814) ([tavplubix](https://github.com/tavplubix)).
* Ajoute la valeur `event_time_microseconds` pour `REMOVE_PART` dans `system.part_log`. Dans les versions précédentes, elle n’était pas définie. [#26720](https://github.com/ClickHouse/ClickHouse/pull/26720) ([Azat Khuzhin](https://github.com/azat)).
* Ne supprime pas les données à l’arrêt d’une table ReplicatedMergeTree afin d’éviter de créer une incohérence entre les données et les métadonnées. [#26716](https://github.com/ClickHouse/ClickHouse/pull/26716) ([nvartolomei](https://github.com/nvartolomei)).
* Il arrivait que `SET ROLE` fonctionne incorrectement ; cette PR corrige le problème. [#26707](https://github.com/ClickHouse/ClickHouse/pull/26707) ([Vitaly Baranov](https://github.com/vitlibar)).
* Quelques corrections pour le formatting parallèle ([https://github.com/ClickHouse/ClickHouse/issues/26694](https://github.com/ClickHouse/ClickHouse/issues/26694)). [#26703](https://github.com/ClickHouse/ClickHouse/pull/26703) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige une possible déréférence de pointeur nul dans les window functions. Corrige [#25276](https://github.com/ClickHouse/ClickHouse/issues/25276). [#26668](https://github.com/ClickHouse/ClickHouse/pull/26668) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Corrige la conversion du fichier d’historique de clickhouse-client (lors d’une mise à niveau depuis le format d’une version de clickhouse-client vieille de 3 ans) lorsque le fichier est vide. [#26589](https://github.com/ClickHouse/ClickHouse/pull/26589) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les noms de fonctions incorrects de groupBitmapAnd/Or/Xor (qui peuvent s’afficher dans certains cas). [#26557](https://github.com/ClickHouse/ClickHouse/pull/26557) ([Amos Bird](https://github.com/amosbird)).
* Met à jour la vérification de la commande `chown` dans l’entrypoint Docker de clickhouse-server. Corrige un bug qui faisait échouer le redémarrage d’un pod du cluster (ou provoquait un timeout) sur Kubernetes. [#26545](https://github.com/ClickHouse/ClickHouse/pull/26545) ([Ky Li](https://github.com/Kylinrix)).
* Corrige un crash lors de l’arrêt de `RabbitMQ` lorsque l’initialisation de `RabbitMQ` n’avait pas été lancée. Clôt [#26504](https://github.com/ClickHouse/ClickHouse/issues/26504). [#26529](https://github.com/ClickHouse/ClickHouse/pull/26529) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige des problèmes avec la requête `CREATE DICTIONARY` lorsque le nom du dictionnaire ou de la base de données était entre guillemets. Clôt [#26491](https://github.com/ClickHouse/ClickHouse/issues/26491). [#26508](https://github.com/ClickHouse/ClickHouse/pull/26508) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige une résolution incorrecte des noms de colonnes après la réécriture des alias de colonnes. Cela corrige [#26432](https://github.com/ClickHouse/ClickHouse/issues/26432). [#26475](https://github.com/ClickHouse/ClickHouse/pull/26475) ([Amos Bird](https://github.com/amosbird)).
* Corrige certains crashs détectés par msan lors du fuzzing. Corrige [#22517](https://github.com/ClickHouse/ClickHouse/issues/22517). [#26428](https://github.com/ClickHouse/ClickHouse/pull/26428) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un flux infini de blocs non joints dans `partial_merge_join`, clôt [#26325](https://github.com/ClickHouse/ClickHouse/issues/26325). [#26374](https://github.com/ClickHouse/ClickHouse/pull/26374) ([Vladimir C](https://github.com/vdimir)).
* Corrige un crash possible lors de la connexion avec un utilisateur supprimé. Cette PR corrige [#26073](https://github.com/ClickHouse/ClickHouse/issues/26073). [#26363](https://github.com/ClickHouse/ClickHouse/pull/26363) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige `optimize_distributed_group_by_sharding_key` pour plusieurs colonnes (provoquait un résultat incorrect avec `optimize_skip_unused_shards=1`/`allow_nondeterministic_optimize_skip_unused_shards=1` et plusieurs colonnes dans l’expression de clé de sharding). [#26353](https://github.com/ClickHouse/ClickHouse/pull/26353) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug rare dans la récupération d’une réplique perdue pouvant entraîner une divergence entre les répliques. [#26321](https://github.com/ClickHouse/ClickHouse/pull/26321) ([tavplubix](https://github.com/tavplubix)).
* Corrige la décompression zstd (pour l’import/export au format d’encapsulation zstd, sans rapport avec les données des tables) lorsqu’il y a des séquences d’échappement à la fin du tampon interne. Clôt [#26013](https://github.com/ClickHouse/ClickHouse/issues/26013). [#26314](https://github.com/ClickHouse/ClickHouse/pull/26314) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une erreur logique sur un join avec totals, clôt [#26017](https://github.com/ClickHouse/ClickHouse/issues/26017). [#26250](https://github.com/ClickHouse/ClickHouse/pull/26250) ([Vladimir C](https://github.com/vdimir)).
* Supprime un saut de ligne superflu dans la colonne `thread_name` de la table `system.stack_trace`. Cela corrige [#24124](https://github.com/ClickHouse/ClickHouse/issues/24124). [#26210](https://github.com/ClickHouse/ClickHouse/pull/26210) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige un crash potentiel si plusieurs expressions `untuple` sont utilisées. [#26179](https://github.com/ClickHouse/ClickHouse/pull/26179) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ne lève pas d’exception dans `toString` pour Nullable Enum si Enum n’a pas de valeur pour zéro, clôt [#25806](https://github.com/ClickHouse/ClickHouse/issues/25806). [#26123](https://github.com/ClickHouse/ClickHouse/pull/26123) ([Vladimir C](https://github.com/vdimir)).
* Correction d’un `sequence_id` incorrect dans les paquets du protocole MySQL que ClickHouse envoie lorsqu’une exception survient pendant l’exécution d’une requête. Cela pouvait amener le client MySQL à réinitialiser la connexion au serveur ClickHouse. Corrige [#21184](https://github.com/ClickHouse/ClickHouse/issues/21184). [#26051](https://github.com/ClickHouse/ClickHouse/pull/26051) ([tavplubix](https://github.com/tavplubix)).
* Correction du cas où `cutToFirstSignificantSubdomainCustom()`/`cutToFirstSignificantSubdomainCustomWithWWW()`/`firstSignificantSubdomainCustom()` renvoie un type incorrect pour les constantes, ce qui empêchait `optimize_skip_unused_shards` de fonctionner. [#26041](https://github.com/ClickHouse/ClickHouse/pull/26041) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un en-tête potentiellement incohérent lors de l’utilisation d’une projection normale avec prewhere. Corrige [#26020](https://github.com/ClickHouse/ClickHouse/issues/26020). [#26038](https://github.com/ClickHouse/ClickHouse/pull/26038) ([Amos Bird](https://github.com/amosbird)).
* Correction de `sharding&#95;key` à partir d’une colonne sans fonction pour `remote()` (auparavant, `select * from remote('127.1', system.one, dummy)` provoquait l’erreur `Unknown column: dummy, there are only columns .`). [#25824](https://github.com/ClickHouse/ClickHouse/pull/25824) ([Azat Khuzhin](https://github.com/azat)).
* Correction des erreurs `Not found column ...` et `Missing column ...` lors de la sélection depuis `MaterializeMySQL`. Corrige [#23708](https://github.com/ClickHouse/ClickHouse/issues/23708), [#24830](https://github.com/ClickHouse/ClickHouse/issues/24830), [#25794](https://github.com/ClickHouse/ClickHouse/issues/25794). [#25822](https://github.com/ClickHouse/ClickHouse/pull/25822) ([tavplubix](https://github.com/tavplubix)).
* Correction de `optimize_skip_unused_shards_rewrite_in` pour les types non `UInt64` (cela pouvait au final sélectionner des shards incorrects ou lever `Cannot infer type of an empty tuple` ou `Function tuple requires at least one argument`). [#25798](https://github.com/ClickHouse/ClickHouse/pull/25798) ([Azat Khuzhin](https://github.com/azat)).

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

* Désormais, nous exécutons les tests Stateful et les stateless tests dans des fuseaux horaires aléatoires. Corrige [#12439](https://github.com/ClickHouse/ClickHouse/issues/12439). La lecture de String comme DateTime et l’écriture de DateTime en String au format Protobuf respectent désormais le fuseau horaire. La lecture de UInt16 comme DateTime dans les formats Arrow et Parquet le traite désormais comme Date, puis le convertit en DateTime en respectant le fuseau horaire de DateTime, car Date est sérialisé en UInt16 dans Arrow et Parquet. GraphiteMergeTree respecte désormais le fuseau horaire pour l’arrondi des heures. Corrige [#5098](https://github.com/ClickHouse/ClickHouse/issues/5098). Auteur : @alexey-milovidov. [#15408](https://github.com/ClickHouse/ClickHouse/pull/15408) ([alesapin](https://github.com/alesapin)).
* `clickhouse-test` prend en charge les tests SQL avec des templates [Jinja2](https://jinja.palletsprojects.com/en/3.0.x/templates/#synopsis). [#26579](https://github.com/ClickHouse/ClickHouse/pull/26579) ([Vladimir C](https://github.com/vdimir)).
* Ajout de la prise en charge de la compilation avec `clang-13`. Cela clôt [#27705](https://github.com/ClickHouse/ClickHouse/issues/27705). [#27714](https://github.com/ClickHouse/ClickHouse/pull/27714) ([alexey-milovidov](https://github.com/alexey-milovidov)). [#27777](https://github.com/ClickHouse/ClickHouse/pull/27777) ([Sergei Semin](https://github.com/syominsergey))
* Ajout d’options CMake pour compiler avec ou sans jeu d’instructions CPU spécifique. Cela concerne [#17469](https://github.com/ClickHouse/ClickHouse/issues/17469) et [#27509](https://github.com/ClickHouse/ClickHouse/issues/27509). [#27508](https://github.com/ClickHouse/ClickHouse/pull/27508) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de l’édition de liens des programmes auxiliaires lors de l’utilisation de bibliothèques dynamiques. [#26958](https://github.com/ClickHouse/ClickHouse/pull/26958) ([Raúl Marín](https://github.com/Algunenano)).
* Mise à jour de RocksDB vers la branche master du `2021-07-16`. [#26411](https://github.com/ClickHouse/ClickHouse/pull/26411) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-v218-2021-08-12">
  ### Version de ClickHouse v21.8, 2021-08-12
</div>

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

* La nouvelle version utilise le type de données `Map` pour les tables de logs système (`system.query_log`, `system.query_thread_log`, `system.processes`, `system.opentelemetry_span_log`). Ces tables seront créées automatiquement avec les nouveaux types de données. Des colonnes virtuelles sont créées pour assurer la compatibilité avec les anciennes requêtes. Clôt [#18698](https://github.com/ClickHouse/ClickHouse/issues/18698). [#23934](https://github.com/ClickHouse/ClickHouse/pull/23934), [#25773](https://github.com/ClickHouse/ClickHouse/pull/25773) ([hexiaoting](https://github.com/hexiaoting), [sundy-li](https://github.com/sundy-li), [Maksim Kita](https://github.com/kitaisreal)). Si vous souhaitez *rétrograder* de la version 21.8 vers des versions antérieures, vous devrez nettoyer manuellement les tables système contenant des logs. Consultez `/var/lib/clickhouse/data/system/*_log`.

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

* Ajout de la prise en charge d'une partie de la norme SQL/JSON. [#24148](https://github.com/ClickHouse/ClickHouse/pull/24148) ([l1tsolaiki](https://github.com/l1tsolaiki), [Kseniia Sumarokova](https://github.com/kssenii)).
* Collecte des métriques système courantes (dans `system.asynchronous_metrics` et `system.asynchronous_metric_log`) concernant l'utilisation du CPU, l'utilisation du disque, l'utilisation de la mémoire, les E/S, le réseau, les fichiers, la charge moyenne, les fréquences du CPU, les capteurs thermiques, les compteurs EDAC, l'uptime du système ; ajout également de métriques sur la gigue d'ordonnancement et le temps passé à collecter ces métriques. Cela fonctionne de manière similaire à `atop` dans ClickHouse et permet d'accéder aux données de monitoring même si vous n'avez installé aucun outil supplémentaire. Ferme [#9430](https://github.com/ClickHouse/ClickHouse/issues/9430). [#24416](https://github.com/ClickHouse/ClickHouse/pull/24416) ([alexey-milovidov](https://github.com/alexey-milovidov), [Yegor Levankov](https://github.com/elevankoff)).
* Ajout du table engine et du database engine MaterializedPostgreSQL. Ce database engine permet de répliquer une base de données entière ou n'importe quel sous-ensemble de ses tables. [#20470](https://github.com/ClickHouse/ClickHouse/pull/20470) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout des nouvelles fonctions `leftPad()`, `rightPad()`, `leftPadUTF8()`, `rightPadUTF8()`. [#26075](https://github.com/ClickHouse/ClickHouse/pull/26075) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout du mot-clé `FIRST` à la commande `ADD INDEX` afin de pouvoir ajouter l'index au début de la liste des index. [#25904](https://github.com/ClickHouse/ClickHouse/pull/25904) ([xjewer](https://github.com/xjewer)).
* Introduction de la table `system.data_skipping_indices`, qui contient des informations sur les data skipping indices existants. Ferme [#7659](https://github.com/ClickHouse/ClickHouse/issues/7659). [#25693](https://github.com/ClickHouse/ClickHouse/pull/25693) ([Dmitry Novik](https://github.com/novikd)).
* Ajout des fonctions `bin`/`unbin`. [#25609](https://github.com/ClickHouse/ClickHouse/pull/25609) ([zhaoyu](https://github.com/zxc111)).
* Prise en charge des types `Map`, `UInt128`, `Int128`, `UInt256` et `Int256` dans les fonctions `mapAdd` et `mapSubtract`. [#25596](https://github.com/ClickHouse/ClickHouse/pull/25596) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Prise en charge de l'expression `DISTINCT ON (columns)`, ferme [#25404](https://github.com/ClickHouse/ClickHouse/issues/25404). [#25589](https://github.com/ClickHouse/ClickHouse/pull/25589) ([Zijie Lu](https://github.com/TszKitLo40)).
* Ajout de la possibilité de réinitialiser un custom setting à sa valeur par défaut et de le supprimer des métadonnées de la table. Cela permet d'annuler la modification sans connaître la valeur par défaut du système/de la config. Ferme [#14449](https://github.com/ClickHouse/ClickHouse/issues/14449). [#17769](https://github.com/ClickHouse/ClickHouse/pull/17769) ([xjewer](https://github.com/xjewer)).
* Affichage des pipelines sous forme de graphes dans l'interface Web si la query `EXPLAIN PIPELINE graph = 1` est soumise. [#26067](https://github.com/ClickHouse/ClickHouse/pull/26067) ([alexey-milovidov](https://github.com/alexey-milovidov)).

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

* Compilation des fonctions d'agrégation. Utilisez l'option `compile_aggregate_expressions` pour l'activer. [#24789](https://github.com/ClickHouse/ClickHouse/pull/24789) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration de la latence des requêtes courtes nécessitant la lecture de tables comportant de nombreuses colonnes. [#26371](https://github.com/ClickHouse/ClickHouse/pull/26371) ([Anton Popov](https://github.com/CurtizJ)).

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

* Utiliser le type de données `Map` pour les tables de logs système (`system.query_log`, `system.query_thread_log`, `system.processes`, `system.opentelemetry_span_log`). Ces tables seront créées automatiquement avec les nouveaux types de données. Des colonnes virtuelles sont créées pour assurer la compatibilité avec les anciennes query. Résout [#18698](https://github.com/ClickHouse/ClickHouse/issues/18698). [#23934](https://github.com/ClickHouse/ClickHouse/pull/23934), [#25773](https://github.com/ClickHouse/ClickHouse/pull/25773) ([hexiaoting](https://github.com/hexiaoting), [sundy-li](https://github.com/sundy-li), [Maksim Kita](https://github.com/kitaisreal)).
* Pour un Dictionary avec une clé complexe ne contenant qu’un seul attribut, permettre de ne pas envelopper l’expression de clé dans un tuple pour les fonctions `dictGet`, `dictHas`. [#26130](https://github.com/ClickHouse/ClickHouse/pull/26130) ([Maksim Kita](https://github.com/kitaisreal)).
* Implémenter la fonction `bin`/`hex` à partir des états `AggregateFunction`. [#26094](https://github.com/ClickHouse/ClickHouse/pull/26094) ([zhaoyu](https://github.com/zxc111)).
* Prendre en charge les arguments de type `UUID` pour les fonctions `empty` et `notEmpty`. Un `UUID` est vide s’il est composé uniquement de zéros (UUID nil). Résout [#3446](https://github.com/ClickHouse/ClickHouse/issues/3446). [#25974](https://github.com/ClickHouse/ClickHouse/pull/25974) ([zhaoyu](https://github.com/zxc111)).
* Ajouter la prise en charge de `SET SQL_SELECT_LIMIT` dans le protocole MySQL. Résout [#17115](https://github.com/ClickHouse/ClickHouse/issues/17115). [#25972](https://github.com/ClickHouse/ClickHouse/pull/25972) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Davantage d’instrumentation pour les interactions réseau : ajout de compteurs pour les octets reçus/envoyés ; ajout de gauges pour les réceptions/envois. Ajout de la documentation manquante. Résout [#5897](https://github.com/ClickHouse/ClickHouse/issues/5897). [#25962](https://github.com/ClickHouse/ClickHouse/pull/25962) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajouter le paramètre `optimize_move_to_prewhere_if_final`. Si une query contient `FINAL`, l’optimisation `move_to_prewhere` ne sera activée que si `optimize_move_to_prewhere` et `optimize_move_to_prewhere_if_final` sont tous deux activés. Résout [#8684](https://github.com/ClickHouse/ClickHouse/issues/8684). [#25940](https://github.com/ClickHouse/ClickHouse/pull/25940) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Autoriser les identifiants complexes entre guillemets pour les tables jointes. Résout [#17861](https://github.com/ClickHouse/ClickHouse/issues/17861). [#25924](https://github.com/ClickHouse/ClickHouse/pull/25924) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajouter la prise en charge des composants Unicode (par ex. chinois, cyrillique) dans les types de données `Nested`. Résout [#25594](https://github.com/ClickHouse/ClickHouse/issues/25594). [#25923](https://github.com/ClickHouse/ClickHouse/pull/25923) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autoriser les fonctions `quantiles*` à fonctionner avec `aggregate_functions_null_for_empty`. Résout [#25892](https://github.com/ClickHouse/ClickHouse/issues/25892). [#25919](https://github.com/ClickHouse/ClickHouse/pull/25919) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autoriser les paramètres des fonctions d’agrégation paramétriques à être des expressions constantes arbitraires (par ex. `1 + 2`), et pas seulement des littéraux. Cela permet également d’utiliser les query parameters (dans les query paramétrées comme `{param:UInt8}`) à l’intérieur des fonctions d’agrégation paramétriques. Résout [#11607](https://github.com/ClickHouse/ClickHouse/issues/11607). [#25910](https://github.com/ClickHouse/ClickHouse/pull/25910) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Déclenche désormais correctement une exception lors de la tentative d'analyse d'un `Date` invalide. Closes [#6481](https://github.com/ClickHouse/ClickHouse/issues/6481). [#25909](https://github.com/ClickHouse/ClickHouse/pull/25909) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de plusieurs inclusions dans la configuration. Il est possible d'inclure la configuration des utilisateurs et celle des serveurs distants depuis plusieurs sources. Il suffit de placer l'élément `<include />` avec l'attribut `from_zk`, `from_env` ou `incl`, et il sera remplacé par la substitution. [#24404](https://github.com/ClickHouse/ClickHouse/pull/24404) ([nvartolomei](https://github.com/nvartolomei)).
* Prise en charge des requêtes avec une colonne nommée `"null"` (elle doit être spécifiée entre accents graves ou entre guillemets doubles) et `ON CLUSTER`. Closes [#24035](https://github.com/ClickHouse/ClickHouse/issues/24035). [#25907](https://github.com/ClickHouse/ClickHouse/pull/25907) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de `LowCardinality`, `Decimal` et `UUID` pour `JSONExtract`. Closes [#24606](https://github.com/ClickHouse/ClickHouse/issues/24606). [#25900](https://github.com/ClickHouse/ClickHouse/pull/25900) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Conversion du fichier d'historique du format `readline` au format `replxx`. [#25888](https://github.com/ClickHouse/ClickHouse/pull/25888) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un problème pouvant entraîner des parties qui se chevauchent après `DROP PART` ou la suppression en arrière-plan d'une partie vide. [#25884](https://github.com/ClickHouse/ClickHouse/pull/25884) ([alesapin](https://github.com/alesapin)).
* Meilleure gestion des parties perdues pour les tables `ReplicatedMergeTree`. Corrige de rares incohérences dans `ReplicationQueue`. Fixes [#10368](https://github.com/ClickHouse/ClickHouse/issues/10368). [#25820](https://github.com/ClickHouse/ClickHouse/pull/25820) ([alesapin](https://github.com/alesapin)).
* Autorise le démarrage de clickhouse-client depuis un répertoire de travail illisible. [#25817](https://github.com/ClickHouse/ClickHouse/pull/25817) ([ianton-ru](https://github.com/ianton-ru)).
* Correction de l'erreur "No available columns" pour le moteur `Merge`. [#25801](https://github.com/ClickHouse/ClickHouse/pull/25801) ([Azat Khuzhin](https://github.com/azat)).
* Le moteur MySQL prend désormais en charge l'échange des commentaires de colonnes entre MySQL et ClickHouse. [#25795](https://github.com/ClickHouse/ClickHouse/pull/25795) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Correction du comportement incohérent d'une constante dans `GROUP BY` sur un ensemble vide. Closes [#6842](https://github.com/ClickHouse/ClickHouse/issues/6842). [#25786](https://github.com/ClickHouse/ClickHouse/pull/25786) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Annule les fusions déjà en cours dans une partition lors de `DROP PARTITION` et `TRUNCATE` pour `ReplicatedMergeTree`. Resolves [#17151](https://github.com/ClickHouse/ClickHouse/issues/17151). [#25684](https://github.com/ClickHouse/ClickHouse/pull/25684) ([tavplubix](https://github.com/tavplubix)).
* Prise en charge du type de données `ENUM&#96;` pour MaterializeMySQL. [#25676](https://github.com/ClickHouse/ClickHouse/pull/25676) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Prise en charge des colonnes matérialisées et des alias dans JOIN, close [#13274](https://github.com/ClickHouse/ClickHouse/issues/13274). [#25634](https://github.com/ClickHouse/ClickHouse/pull/25634) ([Vladimir C](https://github.com/vdimir)).
* Corrige une possible race condition logique entre `ALTER TABLE ... DETACH` et les fusions en arrière-plan. [#25605](https://github.com/ClickHouse/ClickHouse/pull/25605) ([Azat Khuzhin](https://github.com/azat)).
* Fait en sorte que la métrique `NetworkReceiveElapsedMicroseconds` inclue correctement le temps passé à attendre les données du client pour `INSERT`. Clôt [#9958](https://github.com/ClickHouse/ClickHouse/issues/9958). [#25602](https://github.com/ClickHouse/ClickHouse/pull/25602) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de `TRUNCATE TABLE` pour S3 et HDFS. Clôt [#25530](https://github.com/ClickHouse/ClickHouse/issues/25530). [#25550](https://github.com/ClickHouse/ClickHouse/pull/25550) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge du rechargement dynamique de la config pour modifier le nombre de threads dans le pool d'exécution des jobs en arrière-plan (merges, mutations, fetches). [#25548](https://github.com/ClickHouse/ClickHouse/pull/25548) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permet d'extraire un élément non textuel sous forme de chaîne à l'aide de `JSONExtract`. Cela concerne [#25414](https://github.com/ClickHouse/ClickHouse/issues/25414). [#25452](https://github.com/ClickHouse/ClickHouse/pull/25452) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge des expressions régulières dans l'argument `Database` de `StorageMerge`. Clôt [#776](https://github.com/ClickHouse/ClickHouse/issues/776). [#25064](https://github.com/ClickHouse/ClickHouse/pull/25064) ([flynn](https://github.com/ucasfl)).
* Web UI : si la valeur ressemble à une URL, génère automatiquement un lien. [#25965](https://github.com/ClickHouse/ClickHouse/pull/25965) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Fait en sorte que `sudo service clickhouse-server start` fonctionne sur les systèmes avec `systemd`, comme CentOS 8. Clôt [#14298](https://github.com/ClickHouse/ClickHouse/issues/14298). Clôt [#17799](https://github.com/ClickHouse/ClickHouse/issues/17799). [#25921](https://github.com/ClickHouse/ClickHouse/pull/25921) ([alexey-milovidov](https://github.com/alexey-milovidov)).

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

* Correction de `SET ROLE` incorrect dans certains cas. [#26707](https://github.com/ClickHouse/ClickHouse/pull/26707) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’un déréférencement potentiel de `nullptr` dans les fonctions de fenêtre. Correction de [#25276](https://github.com/ClickHouse/ClickHouse/issues/25276). [#26668](https://github.com/ClickHouse/ClickHouse/pull/26668) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Correction de noms de fonction incorrects pour `groupBitmapAnd/Or/Xor`. Correction de [#26557](https://github.com/ClickHouse/ClickHouse/pull/26557) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un crash lors de l’arrêt de RabbitMQ si la configuration de RabbitMQ n’avait pas été démarrée. Clôt [#26504](https://github.com/ClickHouse/ClickHouse/issues/26504). [#26529](https://github.com/ClickHouse/ClickHouse/pull/26529) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de problèmes avec la requête `CREATE DICTIONARY` si le nom du dictionnaire ou de la base de données était entre guillemets. Clôt [#26491](https://github.com/ClickHouse/ClickHouse/issues/26491). [#26508](https://github.com/ClickHouse/ClickHouse/pull/26508) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’une résolution de noms défaillante après la réécriture des alias de colonnes. Correction de [#26432](https://github.com/ClickHouse/ClickHouse/issues/26432). [#26475](https://github.com/ClickHouse/ClickHouse/pull/26475) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un flux infini de blocs non joints dans `partial_merge_join`, clôt [#26325](https://github.com/ClickHouse/ClickHouse/issues/26325). [#26374](https://github.com/ClickHouse/ClickHouse/pull/26374) ([Vladimir C](https://github.com/vdimir)).
* Correction d’un crash possible lors de la connexion avec un utilisateur supprimé. Correction de [#26073](https://github.com/ClickHouse/ClickHouse/issues/26073). [#26363](https://github.com/ClickHouse/ClickHouse/pull/26363) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de `optimize_distributed_group_by_sharding_key` pour plusieurs colonnes (entraîne un résultat incorrect avec `optimize_skip_unused_shards=1`/`allow_nondeterministic_optimize_skip_unused_shards=1` et plusieurs colonnes dans l’expression de clé de sharding). [#26353](https://github.com/ClickHouse/ClickHouse/pull/26353) ([Azat Khuzhin](https://github.com/azat)).
* `CAST` de `Date` vers `DateTime` (ou `DateTime64`) n’utilisait pas le fuseau horaire du type `DateTime`. Cela pouvait également affecter la comparaison entre `Date` et `DateTime`. L’inférence du type commun pour `Date` et `DateTime` n’utilisait pas non plus le fuseau horaire correspondant. Cela affectait les résultats de la fonction `if` et la construction des tableaux. Clôt [#24128](https://github.com/ClickHouse/ClickHouse/issues/24128). [#24129](https://github.com/ClickHouse/ClickHouse/pull/24129) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un bug rare dans la récupération d’une réplique perdue, qui pouvait entraîner une divergence entre répliques. [#26321](https://github.com/ClickHouse/ClickHouse/pull/26321) ([tavplubix](https://github.com/tavplubix)).
* Correction de la décompression zstd lorsqu’il y a des séquences d’échappement à la fin du tampon interne. Clôt [#26013](https://github.com/ClickHouse/ClickHouse/issues/26013). [#26314](https://github.com/ClickHouse/ClickHouse/pull/26314) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une erreur logique sur un join avec totals, clôt [#26017](https://github.com/ClickHouse/ClickHouse/issues/26017). [#26250](https://github.com/ClickHouse/ClickHouse/pull/26250) ([Vladimir C](https://github.com/vdimir)).
* Supprime le saut de ligne superflu dans la colonne `thread_name` de la table `system.stack_trace`. Corrige [#24124](https://github.com/ClickHouse/ClickHouse/issues/24124). [#26210](https://github.com/ClickHouse/ClickHouse/pull/26210) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige `joinGet` avec les colonnes `LowCarinality`, ferme [#25993](https://github.com/ClickHouse/ClickHouse/issues/25993). [#26118](https://github.com/ClickHouse/ClickHouse/pull/26118) ([Vladimir C](https://github.com/vdimir)).
* Corrige un crash possible dans `pointInPolygon` si le paramètre `validate_polygons` est désactivé. [#26113](https://github.com/ClickHouse/ClickHouse/pull/26113) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige le déclenchement d'une exception lors de l'itération sur un répertoire distant inexistant. [#26087](https://github.com/ClickHouse/ClickHouse/pull/26087) ([ianton-ru](https://github.com/ianton-ru)).
* Corrige un crash rare du serveur causé par `abort` dans le client ZooKeeper. Corrige [#25813](https://github.com/ClickHouse/ClickHouse/issues/25813). [#26079](https://github.com/ClickHouse/ClickHouse/pull/26079) ([alesapin](https://github.com/alesapin)).
* Corrige une estimation erronée du nombre de threads pour le join de sous-requête de droite dans certains cas. Ferme [#24075](https://github.com/ClickHouse/ClickHouse/issues/24075). [#26052](https://github.com/ClickHouse/ClickHouse/pull/26052) ([Vladimir C](https://github.com/vdimir)).
* Corrige un `sequence_id` incorrect dans les paquets du protocole MySQL que ClickHouse envoie lorsqu'une exception survient pendant l'exécution d'une requête. Cela pouvait amener le client MySQL à réinitialiser la connexion au serveur ClickHouse. Corrige [#21184](https://github.com/ClickHouse/ClickHouse/issues/21184). [#26051](https://github.com/ClickHouse/ClickHouse/pull/26051) ([tavplubix](https://github.com/tavplubix)).
* Corrige un en-tête potentiellement incohérent lors de l'utilisation d'une projection normale avec `PREWHERE`. Corrige [#26020](https://github.com/ClickHouse/ClickHouse/issues/26020). [#26038](https://github.com/ClickHouse/ClickHouse/pull/26038) ([Amos Bird](https://github.com/amosbird)).
* Corrige le formatage du type `Map` avec des clés entières en `JSON`. [#25982](https://github.com/ClickHouse/ClickHouse/pull/25982) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un interblocage possible lors du déroulement de pile du query profiler. Corrige [#25968](https://github.com/ClickHouse/ClickHouse/issues/25968). [#25970](https://github.com/ClickHouse/ClickHouse/pull/25970) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige un crash lors de l'appel à `dictGet()` avec des arguments invalides. [#25913](https://github.com/ClickHouse/ClickHouse/pull/25913) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige l'authentification `scram-sha-256` pour les moteurs PostgreSQL. Ferme [#24516](https://github.com/ClickHouse/ClickHouse/issues/24516). [#25906](https://github.com/ClickHouse/ClickHouse/pull/25906) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un backoff extrêmement long pour les tâches d'arrière-plan lorsque le background pool est saturé. Corrige [#25836](https://github.com/ClickHouse/ClickHouse/issues/25836). [#25893](https://github.com/ClickHouse/ClickHouse/pull/25893) ([alesapin](https://github.com/alesapin)).
* Corrige la gestion des exceptions ARM avec une taille de page non standard. Corrige [#25512](https://github.com/ClickHouse/ClickHouse/issues/25512), [#25044](https://github.com/ClickHouse/ClickHouse/issues/25044), [#24901](https://github.com/ClickHouse/ClickHouse/issues/24901), [#23183](https://github.com/ClickHouse/ClickHouse/issues/23183), [#20221](https://github.com/ClickHouse/ClickHouse/issues/20221), [#19703](https://github.com/ClickHouse/ClickHouse/issues/19703), [#19028](https://github.com/ClickHouse/ClickHouse/issues/19028), [#18391](https://github.com/ClickHouse/ClickHouse/issues/18391), [#18121](https://github.com/ClickHouse/ClickHouse/issues/18121), [#17994](https://github.com/ClickHouse/ClickHouse/issues/17994), [#12483](https://github.com/ClickHouse/ClickHouse/issues/12483). [#25854](https://github.com/ClickHouse/ClickHouse/pull/25854) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige `sharding&#95;key` à partir d'une colonne sans fonction pour `remote()` (auparavant, `select * from remote('127.1', system.one, dummy)` provoquait l'erreur `Unknown column: dummy, there are only columns .`). [#25824](https://github.com/ClickHouse/ClickHouse/pull/25824) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les erreurs `Not found column ...` et `Missing column ...` lors d'une sélection depuis `MaterializeMySQL`. Corrige [#23708](https://github.com/ClickHouse/ClickHouse/issues/23708), [#24830](https://github.com/ClickHouse/ClickHouse/issues/24830), [#25794](https://github.com/ClickHouse/ClickHouse/issues/25794). [#25822](https://github.com/ClickHouse/ClickHouse/pull/25822) ([tavplubix](https://github.com/tavplubix)).
* Corrige `optimize_skip_unused_shards_rewrite_in` pour les types autres que UInt64 (peut à terme sélectionner des shards incorrects ou renvoyer `Cannot infer type of an empty tuple` ou `Function tuple requires at least one argument`). [#25798](https://github.com/ClickHouse/ClickHouse/pull/25798) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug rare dans la requête `DROP PART` pour les tables `ReplicatedMergeTree`, qui peut entraîner le message d'erreur `Unexpected merged part intersecting drop range`. [#25783](https://github.com/ClickHouse/ClickHouse/pull/25783) ([alesapin](https://github.com/alesapin)).
* Corrige un bug dans `TTL` avec l'expression `GROUP BY` qui empêche d'exécuter `TTL` après la première exécution dans une part. [#25743](https://github.com/ClickHouse/ClickHouse/pull/25743) ([alesapin](https://github.com/alesapin)).
* Permet à StorageMerge d'accéder aux tables avec des alias. Clôt [#6051](https://github.com/ClickHouse/ClickHouse/issues/6051). [#25694](https://github.com/ClickHouse/ClickHouse/pull/25694) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige la lenteur d'un dict join dans certains cas. Clôt [#24209](https://github.com/ClickHouse/ClickHouse/issues/24209). [#25618](https://github.com/ClickHouse/ClickHouse/pull/25618) ([Vladimir C](https://github.com/vdimir)).
* Corrige `ALTER MODIFY COLUMN` sur les colonnes qui participent aux expressions TTL. [#25554](https://github.com/ClickHouse/ClickHouse/pull/25554) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige une assertion dans `PREWHERE` avec un type autre que UInt8. Clôt [#19589](https://github.com/ClickHouse/ClickHouse/issues/19589). [#25484](https://github.com/ClickHouse/ClickHouse/pull/25484) ([Vladimir C](https://github.com/vdimir)).
* Corrige un plantage msan détecté par fuzzing dans certains cas. Corrige [#22517](https://github.com/ClickHouse/ClickHouse/issues/22517). [#26428](https://github.com/ClickHouse/ClickHouse/pull/26428) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Mise à jour de la vérification de la commande `chown` dans le point d’entrée Docker de `clickhouse-server`. Cela corrige l’erreur 'échec du redémarrage du pod du cluster (ou délai d’attente dépassé)' sur Kubernetes. [#26545](https://github.com/ClickHouse/ClickHouse/pull/26545) ([Ky Li](https://github.com/Kylinrix)).

<div id="clickhouse-release-v217-2021-07-09">
  ### Version de ClickHouse v21.7, 2021-07-09
</div>

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

* Amélioration des performances des requêtes avec de grands ensembles définis explicitement. Ajout du paramètre de compatibilité `legacy_column_name_of_tuple_literal`. Il est recommandé de le définir sur `true` lors d'une rolling update du cluster depuis une version antérieure à 21.7 vers une version supérieure. Sinon, les requêtes distribuées avec des ensembles définis explicitement dans la clause `IN` risquent d'échouer pendant la mise à jour. [#25371](https://github.com/ClickHouse/ClickHouse/pull/25371) ([Anton Popov](https://github.com/CurtizJ)).
* Modification incompatible avec les versions antérieures et ultérieures de la taille maximale du tampon dans ClickHouse Keeper (une alternative Experimental à ZooKeeper). Mieux vaut le faire maintenant (avant la mise en production) que plus tard. [#25421](https://github.com/ClickHouse/ClickHouse/pull/25421) ([alesapin](https://github.com/alesapin)).

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

* Prise en charge de la configuration au format YAML en alternative à XML. Corrige [#3607](https://github.com/ClickHouse/ClickHouse/issues/3607). [#21858](https://github.com/ClickHouse/ClickHouse/pull/21858) ([BoloniniD](https://github.com/BoloniniD)).
* Ajoute un moyen de restaurer une table répliquée lorsque les données sont (potentiellement) présentes, mais que les métadonnées ZooKeeper ont été perdues. Résout [#13458](https://github.com/ClickHouse/ClickHouse/issues/13458). [#13652](https://github.com/ClickHouse/ClickHouse/pull/13652) ([Mike Kot](https://github.com/myrrc)).
* Prise en charge des structs et des maps dans Arrow/Parquet/ORC, ainsi que des dictionnaires dans les formats d'entrée/sortie Arrow. Introduit le nouveau paramètre `output_format_arrow_low_cardinality_as_dictionary`. [#24341](https://github.com/ClickHouse/ClickHouse/pull/24341) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge du type `Array` dans les dictionnaires. [#25119](https://github.com/ClickHouse/ClickHouse/pull/25119) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction `bitPositionsToArray`. Corrige [#23792](https://github.com/ClickHouse/ClickHouse/issues/23792). Auteur : \[Kevin Wan] (@MaxWk). [#25394](https://github.com/ClickHouse/ClickHouse/pull/25394) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction `dateName` pour renvoyer des noms tels que 'Friday' ou 'April'. Auteur : \[Daniil Kondratyev] (@dankondr). [#25372](https://github.com/ClickHouse/ClickHouse/pull/25372) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction `toJSONString` pour sérialiser les colonnes dans leur représentation JSON. [#25164](https://github.com/ClickHouse/ClickHouse/pull/25164) ([Amos Bird](https://github.com/amosbird)).
* Désormais, `query_log` comporte deux nouvelles colonnes : `initial_query_start_time` et `initial_query_start_time_microsecond`, qui enregistrent l'heure de début d'une distributed query, le cas échéant. [#25022](https://github.com/ClickHouse/ClickHouse/pull/25022) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la fonction d'agrégation `segmentLengthSum`. [#24250](https://github.com/ClickHouse/ClickHouse/pull/24250) ([flynn](https://github.com/ucasfl)).
* Ajout d'un nouveau paramètre booléen `prefer_global_in_and_join` qui fait de tous les IN/JOIN des GLOBAL IN/JOIN par défaut. [#23434](https://github.com/ClickHouse/ClickHouse/pull/23434) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge des requêtes `ALTER DELETE` pour le table engine `Join`. [#23260](https://github.com/ClickHouse/ClickHouse/pull/23260) ([foolchi](https://github.com/foolchi)).
* Ajout de la fonction d'agrégation `quantileBFloat16`, ainsi que des fonctions correspondantes `quantilesBFloat16` et `medianBFloat16`. Il s'agit d'un estimateur de quantile très simple et rapide, avec une erreur relative ne dépassant pas 0.390625 %. Corrige [#16641](https://github.com/ClickHouse/ClickHouse/issues/16641). [#23204](https://github.com/ClickHouse/ClickHouse/pull/23204) ([Ivan Novitskiy](https://github.com/RedClusive)).
* Implémentation de la fonction `sequenceNextNode()`, utile pour la `flow analysis`. [#19766](https://github.com/ClickHouse/ClickHouse/pull/19766) ([achimbab](https://github.com/achimbab)).

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

* Prise en charge du système de fichiers virtuel sur HDFS. [#11058](https://github.com/ClickHouse/ClickHouse/pull/11058) ([overshov](https://github.com/overshov)) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désormais, ClickHouse Keeper (une alternative expérimentale à ZooKeeper) prend en charge les ACL `digest` de type ZooKeeper. [#24448](https://github.com/ClickHouse/ClickHouse/pull/24448) ([alesapin](https://github.com/alesapin)).

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

* Ajout d'une optimisation qui transforme certaines fonctions en lecture de sous-colonnes afin de réduire la quantité de données lues. Par exemple, l'instruction `col IS NULL` est transformée en lecture de la sous-colonne `col.null`. L'optimisation peut être activée en définissant le paramètre `optimize_functions_to_subcolumns`, qui est actuellement désactivé par défaut. [#24406](https://github.com/ClickHouse/ClickHouse/pull/24406) ([Anton Popov](https://github.com/CurtizJ)).
* Réécriture d'un plus grand nombre de colonnes en expressions d'alias possibles. Cela peut permettre de meilleures optimisations, comme les projections. [#24405](https://github.com/ClickHouse/ClickHouse/pull/24405) ([Amos Bird](https://github.com/amosbird)).
* Un index de type `bloom_filter` peut être utilisé pour des expressions avec la fonction `hasAny` et des tableaux constants. Cela clôt : [#24291](https://github.com/ClickHouse/ClickHouse/issues/24291). [#24900](https://github.com/ClickHouse/ClickHouse/pull/24900) ([Vasily Nemkov](https://github.com/Enmk)).
* Ajout d'une temporisation exponentielle pour reprogrammer une tentative de lecture lorsque les files d'attente RabbitMQ sont vides. (ClickHouse prend en charge l'importation de données depuis RabbitMQ.) Clôt [#24340](https://github.com/ClickHouse/ClickHouse/issues/24340). [#24415](https://github.com/ClickHouse/ClickHouse/pull/24415) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Permet de limiter la bande passante pour la réplication. Ajout de deux paramètres Replicated\*MergeTree : `max_replicated_fetches_network_bandwidth` et `max_replicated_sends_network_bandwidth`, qui permettent de limiter la vitesse maximale des récupérations/envois répliqués pour une table. Ajout de deux paramètres à l’échelle du serveur (dans le profil utilisateur `default`) : `max_replicated_fetches_network_bandwidth_for_server` et `max_replicated_sends_network_bandwidth_for_server`, qui limitent la vitesse maximale de réplication pour toutes les tables. Ces paramètres ne sont pas appliqués avec une précision parfaite. Désactivés par défaut. Corrige [#1821](https://github.com/ClickHouse/ClickHouse/issues/1821). [#24573](https://github.com/ClickHouse/ClickHouse/pull/24573) ([alesapin](https://github.com/alesapin)).
* Contraintes de ressources et isolation pour les bridges ODBC et Library. Utilise un groupe et un utilisateur `clickhouse-bridge` distincts pour les processus de bridge. Définit `oom&#95;score&#95;adj` afin que les bridges soient les premières cibles de l’OOM killer. Définit la RSS maximale à 1 GiB. Clôt [#23861](https://github.com/ClickHouse/ClickHouse/issues/23861). [#25280](https://github.com/ClickHouse/ClickHouse/pull/25280) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d’un lien symbolique autonome `clickhouse-keeper` vers le binaire principal `clickhouse`. Il est désormais possible d’exécuter la coordination sans le serveur ClickHouse principal. [#24059](https://github.com/ClickHouse/ClickHouse/pull/24059) ([alesapin](https://github.com/alesapin)).
* Utilise les paramètres globaux pour les requêtes sur `VIEW`. Corrige le comportement lorsque les requêtes sur `VIEW` utilisent des paramètres locaux, ce qui entraîne des erreurs si les paramètres de `CREATE VIEW` et de `SELECT` sont différents. Pour l’instant, `VIEW` n’utilisera pas ces paramètres modifiés, mais vous pouvez toujours transmettre des paramètres supplémentaires dans la section `SETTINGS` de la requête `CREATE VIEW`. Clôt [#20551](https://github.com/ClickHouse/ClickHouse/issues/20551). [#24095](https://github.com/ClickHouse/ClickHouse/pull/24095) ([Vladimir](https://github.com/vdimir)).
* Au démarrage du serveur, les parts avec un ID de partition incorrect ne seraient jamais supprimées, mais toujours détachées. [#25070](https://github.com/ClickHouse/ClickHouse/issues/25070). [#25166](https://github.com/ClickHouse/ClickHouse/pull/25166) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Augmente la taille du background schedule pool à 128 (paramètre `background_schedule_pool_size`). Cela permet d’éviter le blocage de la replication queue en cas de connexion lente à ZooKeeper. [#25072](https://github.com/ClickHouse/ClickHouse/pull/25072) ([alesapin](https://github.com/alesapin)).
* Ajout du paramètre MergeTree `max_parts_to_merge_at_once`, qui limite le nombre de parts pouvant être fusionnées simultanément en arrière-plan. N’affecte pas la requête `OPTIMIZE FINAL`. Corrige [#1820](https://github.com/ClickHouse/ClickHouse/issues/1820). [#24496](https://github.com/ClickHouse/ClickHouse/pull/24496) ([alesapin](https://github.com/alesapin)).
* Permet d’utiliser l’opérateur `NOT IN` pour le partition pruning. [#24894](https://github.com/ClickHouse/ClickHouse/pull/24894) ([Amos Bird](https://github.com/amosbird)).
* Reconnaît comme locales les adresses IPv4 telles que `127.0.1.1`. Ce changement est controversé et clôt [#23504](https://github.com/ClickHouse/ClickHouse/issues/23504). Michael Filimonov testera cette fonctionnalité. [#24316](https://github.com/ClickHouse/ClickHouse/pull/24316) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Une base de données ClickHouse créée avec MaterializeMySQL (il s’agit d’une fonctionnalité expérimentale) contient désormais tous les commentaires de colonnes de la base de données MySQL matérialisée. [#25199](https://github.com/ClickHouse/ClickHouse/pull/25199) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Ajout de paramètres (`connection_auto_close`/`connection_max_tries`/`connection_pool_size`) pour le moteur de stockage MySQL. [#24146](https://github.com/ClickHouse/ClickHouse/pull/24146) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration du temps de démarrage du moteur Distributed. [#25663](https://github.com/ClickHouse/ClickHouse/pull/25663) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration des tables Distributed. Suppression des répliques de dirname pour internal\_replication=true (ce qui permet d’effectuer un `INSERT` dans Distributed avec un cluster comportant n’importe quel nombre de répliques ; auparavant, seules 15 répliques étaient prises en charge, et au-delà, la création du répertoire pour les blocs asynchrones échouait avec ENAMETOOLONG). [#25513](https://github.com/ClickHouse/ClickHouse/pull/25513) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la prise en charge du type `Interval` pour `LowCardinality`. C’est nécessaire pour les valeurs intermédiaires de certaines expressions. Clôt [#21730](https://github.com/ClickHouse/ClickHouse/issues/21730). [#25410](https://github.com/ClickHouse/ClickHouse/pull/25410) ([Vladimir](https://github.com/vdimir)).
* Ajout de l’opérateur `==` dans les conditions temporelles pour les fonctions `sequenceMatch` et `sequenceCount`. Par exemple : sequenceMatch('(?1)(?t==1)(?2)')(time, data = 1, data = 2). [#25299](https://github.com/ClickHouse/ClickHouse/pull/25299) ([Christophe Kalenzaga](https://github.com/mga-chka)).
* Ajout des paramètres `http_max_fields`, `http_max_field_name_size`, `http_max_field_value_size`. [#25296](https://github.com/ClickHouse/ClickHouse/pull/25296) ([Ivan](https://github.com/abyss7)).
* Ajout de la prise en charge de la fonction `if` avec des types `Decimal` et `Int` dans ses branches. Clôt [#20549](https://github.com/ClickHouse/ClickHouse/issues/20549). Clôt [#10142](https://github.com/ClickHouse/ClickHouse/issues/10142). [#25283](https://github.com/ClickHouse/ClickHouse/pull/25283) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de l’invite dans `clickhouse-client` et affichage d’un message lors de la reconnexion. Clôt [#10577](https://github.com/ClickHouse/ClickHouse/issues/10577). [#25281](https://github.com/ClickHouse/ClickHouse/pull/25281) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du suivi de la mémoire dans la fonction d’agrégation `topK`. Clôt [#25259](https://github.com/ClickHouse/ClickHouse/issues/25259). [#25260](https://github.com/ClickHouse/ClickHouse/pull/25260) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de `topLevelDomain` pour les hôtes IDN (c.-à-d. `example.рф`) ; auparavant, la fonction renvoyait une chaîne vide pour ces hôtes. [#25103](https://github.com/ClickHouse/ClickHouse/pull/25103) ([Azat Khuzhin](https://github.com/azat)).
* Détection de la version du noyau Linux à l’exécution (pour faire fonctionner epoll imbriqué, requis pour `async_socket_for_remote`/`use_hedged_requests`, faute de quoi les requêtes distantes peuvent rester bloquées). [#25067](https://github.com/ClickHouse/ClickHouse/pull/25067) ([Azat Khuzhin](https://github.com/azat)).
* Pour les requêtes distribuées, lorsque `optimize_skip_unused_shards=1`, possibilité d’ignorer un shard avec une condition de type `(sharding key) IN (one-element-tuple)`. (Les Tuples à plusieurs éléments étaient pris en charge. Le Tuple à un seul élément ne fonctionnait pas, car il est analysé comme un littéral.) [#24930](https://github.com/ClickHouse/ClickHouse/pull/24930) ([Amos Bird](https://github.com/amosbird)).
* Amélioration des messages de journalisation des erreurs S3 : plus de doubles espaces lorsque les keys et les buckets sont vides. [#24897](https://github.com/ClickHouse/ClickHouse/pull/24897) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Certaines requêtes nécessitent une analyse sémantique en plusieurs passes. Tentative de réutilisation des sets construits pour `IN` dans ce cas. [#24874](https://github.com/ClickHouse/ClickHouse/pull/24874) ([Amos Bird](https://github.com/amosbird)).
* Respect de `max_distributed_connections` pour `insert_distributed_sync` (sinon, sur de très grands clusters et avec une insertion synchrone, `max_thread_pool_size` peut être épuisé). [#24754](https://github.com/ClickHouse/ClickHouse/pull/24754) ([Azat Khuzhin](https://github.com/azat)).
* Éviter de masquer des erreurs telles que `Limit for rows or bytes to read exceeded` pour les sous-requêtes scalaires. [#24545](https://github.com/ClickHouse/ClickHouse/pull/24545) ([nvartolomei](https://github.com/nvartolomei)).
* Rendre le parseur de String vers Int plus strict afin que `toInt64('+')` lève une exception. [#24475](https://github.com/ClickHouse/ClickHouse/pull/24475) ([Amos Bird](https://github.com/amosbird)).
* Si `SSD_CACHE` est créé à l’aide d’une requête DDL, il ne peut l’être que dans le répertoire `user_files`. [#24466](https://github.com/ClickHouse/ClickHouse/pull/24466) ([Maksim Kita](https://github.com/kitaisreal)).
* PostgreSQL prend désormais en charge la spécification d’un schéma autre que le schéma par défaut pour les requêtes d’insertion. Clôt [#24149](https://github.com/ClickHouse/ClickHouse/issues/24149). [#24413](https://github.com/ClickHouse/ClickHouse/pull/24413) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la résolution des adresses IPv6 (c.-à-d. corrige `select * from remote('[::1]', system.one)`). [#24319](https://github.com/ClickHouse/ClickHouse/pull/24319) ([Azat Khuzhin](https://github.com/azat)).
* Correction des espaces de fin dans la clause FROM avec des sous-requêtes en mode multiligne, et légère amélioration du rendu des requêtes pour le rendre plus lisible. [#24151](https://github.com/ClickHouse/ClickHouse/pull/24151) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration des tables Distributed. Ajout de la possibilité de scinder un lot distribué en cas d’échec (par ex. en raison de limites mémoire ou de corruptions), via `distributed_directory_monitor_split_batch_on_failure` (désactivé par défaut). [#23864](https://github.com/ClickHouse/ClickHouse/pull/23864) ([Azat Khuzhin](https://github.com/azat)).
* Gestion des conflits de noms de colonnes pour le moteur de table `Join`. Clôt [#20309](https://github.com/ClickHouse/ClickHouse/issues/20309). [#23769](https://github.com/ClickHouse/ClickHouse/pull/23769) ([Vladimir](https://github.com/vdimir)).
* Affichage de la progression pour le moteur de table `File` dans `clickhouse-local` et pour les requêtes INSERT dans `clickhouse-client` lorsque les données sont transmises via stdin. Clôt [#18209](https://github.com/ClickHouse/ClickHouse/issues/18209). [#23656](https://github.com/ClickHouse/ClickHouse/pull/23656) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrections de bugs et améliorations de `clickhouse-copier`. Permet de copier des tables avec des schémas différents (mais compatibles). Clôt [#9159](https://github.com/ClickHouse/ClickHouse/issues/9159). Ajout d’un test pour copier ReplacingMergeTree. Clôt [#22711](https://github.com/ClickHouse/ClickHouse/issues/22711). Prise en charge de TTL sur les colonnes et des index de saut de données. Ceux-ci sont simplement supprimés lors de la création de la table `Distributed` interne (la table sous-jacente conservera le TTL et les index de saut). Clôt [#19384](https://github.com/ClickHouse/ClickHouse/issues/19384). Permet de copier les colonnes MATERIALIZED et ALIAS. Cela peut être utile dans certains cas (par exemple, si cette colonne fait partie de la PRIMARY KEY). Cela peut désormais être autorisé en définissant la propriété `allow_to_copy_alias_and_materialized_columns` sur true dans la configuration de la tâche. Clôt [#9177](https://github.com/ClickHouse/ClickHouse/issues/9177). Clôt \[#11007] ([https://github.com/ClickHouse/ClickHouse/issues/11007](https://github.com/ClickHouse/ClickHouse/issues/11007)). Clôt [#9514](https://github.com/ClickHouse/ClickHouse/issues/9514). Ajout de la propriété `allow_to_drop_target_partitions` dans la configuration de la tâche pour supprimer une partition dans la table d’origine avant de déplacer les tables auxiliaires. Clôt [#20957](https://github.com/ClickHouse/ClickHouse/issues/20957). Suppression de la requête `OPTIMIZE DEDUPLICATE`. Ce contournement était nécessaire, car `ALTER TABLE MOVE PARTITION` était réessayé de nombreuses fois et les tables MergeTree simples n’ont pas de déduplication. Clôt [#17966](https://github.com/ClickHouse/ClickHouse/issues/17966). Écrit la progression dans le nœud ZooKeeper au chemin `task_path + /status` au format JSON. Clôt [#20955](https://github.com/ClickHouse/ClickHouse/issues/20955). Prise en charge de ReplicatedTables sans arguments. Clôt [#24834](https://github.com/ClickHouse/ClickHouse/issues/24834) .[#23518](https://github.com/ClickHouse/ClickHouse/pull/23518) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout d’un délai avec backoff entre les tentatives de relecture depuis S3. [#23461](https://github.com/ClickHouse/ClickHouse/pull/23461) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Respect de `insert_allow_materialized_columns` (autorise les colonnes matérialisées) pour INSERT dans une table `Distributed`. [#23349](https://github.com/ClickHouse/ClickHouse/pull/23349) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la possibilité de push down LIMIT pour les requêtes distribuées. [#23027](https://github.com/ClickHouse/ClickHouse/pull/23027) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la réplication zero-copy avec plusieurs volumes S3 (corrige [#22679](https://github.com/ClickHouse/ClickHouse/issues/22679)). [#22864](https://github.com/ClickHouse/ClickHouse/pull/22864) ([ianton-ru](https://github.com/ianton-ru)).
* Résolution du numéro de port réellement attribué lorsqu’un utilisateur demande au système d’exploitation un port disponible quelconque, afin de l’afficher dans le message de journalisation. [#25569](https://github.com/ClickHouse/ClickHouse/pull/25569) ([bnaecker](https://github.com/bnaecker)).
* Correction d’un cas où, parfois, la conversion des tableaux Postgres aboutissait au type de données String au lieu d’un tableau multidimensionnel, car `attndims` fonctionne incorrectement dans certains cas. Clôt [#24804](https://github.com/ClickHouse/ClickHouse/issues/24804). [#25538](https://github.com/ClickHouse/ClickHouse/pull/25538) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la conversion de DateTime avec fuseau horaire pour MySQL, PostgreSQL et ODBC. Clôt [#5057](https://github.com/ClickHouse/ClickHouse/issues/5057). [#25528](https://github.com/ClickHouse/ClickHouse/pull/25528) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Différencie KILL MUTATION selon les tables (corrige l’erreur inattendue `Cancelled mutating parts`). [#25025](https://github.com/ClickHouse/ClickHouse/pull/25025) ([Azat Khuzhin](https://github.com/azat)).
* Permet de déclarer un disque S3 à la racine du bucket (le système de fichiers virtuel S3 est une fonctionnalité expérimentale en cours de développement). [#24898](https://github.com/ClickHouse/ClickHouse/pull/24898) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Active la lecture des sous-colonnes (par exemple, les composants de Tuples) pour les tables distribuées. [#24472](https://github.com/ClickHouse/ClickHouse/pull/24472) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration du protocole de compatibilité MySQL : la fonction `user` renvoie désormais une sortie correcte. Résout [#25697](https://github.com/ClickHouse/ClickHouse/pull/25697). [#25697](https://github.com/ClickHouse/ClickHouse/pull/25697) ([sundyli](https://github.com/sundy-li)).

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

* Amélioration de la rétrocompatibilité. Utilise l’ancienne version de la fonction modulo lorsqu’elle est employée dans la clé de partitionnement. Clôt [#23508](https://github.com/ClickHouse/ClickHouse/issues/23508). [#24157](https://github.com/ClickHouse/ClickHouse/pull/24157) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un bogue extrêmement rare sur des serveurs disposant de peu de mémoire, pouvant empêcher d’effectuer des merges sans redémarrage. Corrige peut-être [#24603](https://github.com/ClickHouse/ClickHouse/issues/24603). [#24872](https://github.com/ClickHouse/ClickHouse/pull/24872) ([alesapin](https://github.com/alesapin)).
* Correction de l’erreur extrêmement rare `Tagging already tagged part` dans la file de réplication lors d’un `alter move/replace partition` concurrent. Corrige peut-être [#22142](https://github.com/ClickHouse/ClickHouse/issues/22142). [#24961](https://github.com/ClickHouse/ClickHouse/pull/24961) ([alesapin](https://github.com/alesapin)).
* Correction d’un crash potentiel lors du calcul des états de fonctions d’agrégation, par agrégation des états de fonctions d’agrégation d’autres fonctions d’agrégation (pas un cas d’utilisation concret). Voir [#24523](https://github.com/ClickHouse/ClickHouse/issues/24523). [#25015](https://github.com/ClickHouse/ClickHouse/pull/25015) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du comportement lorsque la requête `SYSTEM RESTART REPLICA` ou `SYSTEM SYNC REPLICA` ne se termine pas. Ce problème a été détecté sur un serveur disposant d’une quantité de RAM extrêmement faible. [#24457](https://github.com/ClickHouse/ClickHouse/pull/24457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d’un bogue pouvant bloquer le client ZooKeeper dans clickhouse-server. [#24721](https://github.com/ClickHouse/ClickHouse/pull/24721) ([alesapin](https://github.com/alesapin)).
* Si la connexion à ZooKeeper était perdue et qu’une réplique était clonée après son rétablissement, sa file de réplication pouvait contenir des entrées obsolètes. Correction d’une assertion en échec lorsque la file de réplication contient des virtual parts qui se chevauchent. Cela peut rarement se produire si une data part a été perdue. Écrit désormais une erreur dans le journal au lieu d’interrompre le processus. [#24777](https://github.com/ClickHouse/ClickHouse/pull/24777) ([tavplubix](https://github.com/tavplubix)).
* Correction de la perte de la condition `WHERE` dans l’optimisation du plan de requête par expression push-down (paramètre `query_plan_filter_push_down = 1` par défaut). Corrige [#25368](https://github.com/ClickHouse/ClickHouse/issues/25368). [#25370](https://github.com/ClickHouse/ClickHouse/pull/25370) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un bogue pouvant entraîner des parts qui se chevauchent après des merges avec TTL : `Part all_40_40_0 is covered by all_40_40_1 but should be merged into all_40_41_1. This shouldn't happen often.`. [#25549](https://github.com/ClickHouse/ClickHouse/pull/25549) ([alesapin](https://github.com/alesapin)).
* En cas de perte de connexion à ZooKeeper, une table `ReplicatedMergeTree` pouvait attendre la fin des opérations en arrière-plan avant d’essayer de se reconnecter. C’est corrigé : désormais, les opérations en arrière-plan sont arrêtées de force. [#25306](https://github.com/ClickHouse/ClickHouse/pull/25306) ([tavplubix](https://github.com/tavplubix)).
* Correction de l’erreur `Key expression contains comparison between inconvertible types` pour les requêtes avec `ARRAY JOIN` lorsqu’un Array est utilisé dans la clé primaire. Corrige [#8247](https://github.com/ClickHouse/ClickHouse/issues/8247). [#25546](https://github.com/ClickHouse/ClickHouse/pull/25546) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de totaux erronés pour les requêtes `WITH TOTALS` et `WITH FILL`. Corrige [#20872](https://github.com/ClickHouse/ClickHouse/issues/20872). [#25539](https://github.com/ClickHouse/ClickHouse/pull/25539) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une data race lors de l’interrogation de `system.clusters` pendant le rechargement simultané de la configuration du cluster. [#25737](https://github.com/ClickHouse/ClickHouse/pull/25737) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’erreur `No such file or directory` lors du déplacement d’une table `Distributed` entre des bases de données. Corrige [#24971](https://github.com/ClickHouse/ClickHouse/issues/24971). [#25667](https://github.com/ClickHouse/ClickHouse/pull/25667) ([tavplubix](https://github.com/tavplubix)).
* `REPLACE PARTITION` pouvait être ignoré dans de rares cas si la partition source était vide. C’est corrigé. Corrige [#24869](https://github.com/ClickHouse/ClickHouse/issues/24869). [#25665](https://github.com/ClickHouse/ClickHouse/pull/25665) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un bug dans le moteur de base de données `Replicated` qui pouvait, dans de rares cas, amener une réplique à ignorer une requête DDL mise en file d’attente. [#24805](https://github.com/ClickHouse/ClickHouse/pull/24805) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un déréférencement de pointeur nul dans `EXPLAIN AST` sans requête. [#25631](https://github.com/ClickHouse/ClickHouse/pull/25631) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’attente liée à la suppression automatique des parts vides. Cela pouvait entraîner le remplissage complet du pool d’arrière-plan et le blocage de la réplication. [#23315](https://github.com/ClickHouse/ClickHouse/pull/23315) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de la restauration d’une table stockée dans le système de fichiers virtuel S3 (il s’agit d’une fonctionnalité expérimentale non prête pour la production). [#25601](https://github.com/ClickHouse/ClickHouse/pull/25601) ([ianton-ru](https://github.com/ianton-ru)).
* Correction d’un déréférencement de pointeur nul dans le format `Arrow` lors de l’utilisation de `Decimal256`. Ajout de la prise en charge de `Decimal256` pour le format `Arrow`. [#25531](https://github.com/ClickHouse/ClickHouse/pull/25531) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du caractère de soulignement superflu avant les noms des fichiers de configuration prétraités. [#25431](https://github.com/ClickHouse/ClickHouse/pull/25431) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correctif pour l’outil `clickhouse-copier` : correction d’un segfault lorsque sharding\_key est absent de la configuration de tâche du copier. [#25419](https://github.com/ClickHouse/ClickHouse/pull/25419) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction du transformateur de colonne `REPLACE` lorsqu’il est utilisé dans une DDL, en mettant correctement entre guillemets la requête formatée. Cela corrige [#23925](https://github.com/ClickHouse/ClickHouse/issues/23925). [#25391](https://github.com/ClickHouse/ClickHouse/pull/25391) ([Amos Bird](https://github.com/amosbird)).
* Correction de la possibilité d’un comportement non déterministe de la fonction `quantileDeterministic` et de fonctions similaires. Cela clôt [#20480](https://github.com/ClickHouse/ClickHouse/issues/20480). [#25313](https://github.com/ClickHouse/ClickHouse/pull/25313) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de `SimpleAggregateFunction(LowCardinality)` pour `SummingMergeTree`. Corrige [#25134](https://github.com/ClickHouse/ClickHouse/issues/25134). [#25300](https://github.com/ClickHouse/ClickHouse/pull/25300) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une erreur logique avec le message d’exception "Cannot sum Array/Tuple in min/maxMap". [#25298](https://github.com/ClickHouse/ClickHouse/pull/25298) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l’erreur `Bad cast from type DB::ColumnLowCardinality to DB::ColumnVector<char8_t>` pour les requêtes où l’argument `LowCardinality` était utilisé avec IN (ce bug est apparu en 21.6). Corrige [#25187](https://github.com/ClickHouse/ClickHouse/issues/25187). [#25290](https://github.com/ClickHouse/ClickHouse/pull/25290) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige le comportement incorrect de `joinGetOrNull` avec des colonnes non nullables. Cela corrige [#24261](https://github.com/ClickHouse/ClickHouse/issues/24261). [#25288](https://github.com/ClickHouse/ClickHouse/pull/25288) ([Amos Bird](https://github.com/amosbird)).
* Corrige un comportement incorrect et un signalement UBSan sur les grands entiers. Dans les versions précédentes, `CAST(1e19 AS UInt128)` renvoyait zéro. [#25279](https://github.com/ClickHouse/ClickHouse/pull/25279) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige une erreur survenant lors de l’insertion d’un sous-ensemble de colonnes au format CSVWithNames. Corrige [#25129](https://github.com/ClickHouse/ClickHouse/issues/25129). [#25169](https://github.com/ClickHouse/ClickHouse/pull/25169) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* N’utilise pas la projection de la table pour `SELECT` avec `FINAL`. Ce n’est pas encore pris en charge. [#25163](https://github.com/ClickHouse/ClickHouse/pull/25163) ([Amos Bird](https://github.com/amosbird)).
* Corrige une perte possible de parts après une mise à jour vers 21.5 si la table utilisait `UUID` dans la clé de partition. (Il n’est pas recommandé d’utiliser `UUID` dans la clé de partition.) Corrige [#25070](https://github.com/ClickHouse/ClickHouse/issues/25070). [#25127](https://github.com/ClickHouse/ClickHouse/pull/25127) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un crash dans une requête avec une jointure croisée et `joined_subquery_requires_alias = 0`. Corrige [#24011](https://github.com/ClickHouse/ClickHouse/issues/24011). [#25082](https://github.com/ClickHouse/ClickHouse/pull/25082) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un bug avec des maps constantes dans la fonction mapContains, qui provoquait l’erreur `empty column was returned by function mapContains`. Résout [#25077](https://github.com/ClickHouse/ClickHouse/issues/25077). [#25080](https://github.com/ClickHouse/ClickHouse/pull/25080) ([Kruglov Pavel](https://github.com/Avogar)).
* Supprime la possibilité de créer des tables avec des colonnes se référençant elles-mêmes, comme `a UInt32 ALIAS a + 1` ou `b UInt32 MATERIALIZED b`. Corrige [#24910](https://github.com/ClickHouse/ClickHouse/issues/24910), [#24292](https://github.com/ClickHouse/ClickHouse/issues/24292). [#25059](https://github.com/ClickHouse/ClickHouse/pull/25059) ([alesapin](https://github.com/alesapin)).
* Corrige un résultat erroné lors de l’utilisation d’une projection agrégée avec une clé `GROUP BY` *non vide* pour exécuter une requête avec une clé `GROUP BY` *vide*. [#25055](https://github.com/ClickHouse/ClickHouse/pull/25055) ([Amos Bird](https://github.com/amosbird)).
* Corrige la sérialisation des messages imbriqués scindés au format Protobuf. Cette PR corrige [#24647](https://github.com/ClickHouse/ClickHouse/issues/24647). [#25000](https://github.com/ClickHouse/ClickHouse/pull/25000) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige les paramètres limit/offset pour les requêtes distribuées (ignorés sur les nœuds distants). [#24940](https://github.com/ClickHouse/ClickHouse/pull/24940) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un possible heap-buffer-overflow dans le format `Arrow`. [#24922](https://github.com/ClickHouse/ClickHouse/pull/24922) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l’erreur possible 'Cannot read from istream at offset 0' lors de la lecture d’un fichier depuis DiskS3 (le système de fichiers virtuel S3 est une fonctionnalité expérimentale en cours de développement qui ne doit pas être utilisée en production). [#24885](https://github.com/ClickHouse/ClickHouse/pull/24885) ([Pavel Kovalenko](https://github.com/Jokser)).
* Corrige l’exception "Missing columns" lors d’une jointure sur une vue matérialisée distribuée. [#24870](https://github.com/ClickHouse/ClickHouse/pull/24870) ([Azat Khuzhin](https://github.com/azat)).
* Autorisation des valeurs `NULL` dans le protocole de compatibilité PostgreSQL. Résout [#22622](https://github.com/ClickHouse/ClickHouse/issues/22622). [#24857](https://github.com/ClickHouse/ClickHouse/pull/24857) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un bug où l’exception `Mutation was killed` pouvait être renvoyée au client lors de l’attente d’une mutation, alors que celle-ci n’était pas encore chargée en mémoire. [#24809](https://github.com/ClickHouse/ClickHouse/pull/24809) ([alesapin](https://github.com/alesapin)).
* Correction d’un bug dans la désérialisation de l’état du générateur aléatoire, qui pouvait entraîner un comportement non déterministe de certains types de données, comme `AggregateFunction(groupArraySample(N), T))`. [#24538](https://github.com/ClickHouse/ClickHouse/pull/24538) ([tavplubix](https://github.com/tavplubix)).
* Interdiction de construire des uniqXXXXStates à partir d’autres états d’agrégation. [#24523](https://github.com/ClickHouse/ClickHouse/pull/24523) ([Raúl Marín](https://github.com/Algunenano)). Puis réactivation de cette possibilité après suppression effective de la cause racine du problème associé. ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de l’utilisation des tuples dans les requêtes `CREATE .. AS SELECT`. [#24464](https://github.com/ClickHouse/ClickHouse/pull/24464) ([Anton Popov](https://github.com/CurtizJ)).
* Correction du calcul du nombre total d’octets dans la table `Buffer`. Dans la version actuelle de ClickHouse, le compteur total\_writes.bytes diminue excessivement pendant le flush du buffer. Cela entraîne un dépassement de capacité du compteur, et totalBytes renvoie une valeur d’environ 17.44 EB quelque temps après le flush. [#24450](https://github.com/ClickHouse/ClickHouse/pull/24450) ([DimasKovas](https://github.com/DimasKovas)).
* Correction d’informations erronées sur la monotonie de la fonction toWeek. Cela corrige [#24422](https://github.com/ClickHouse/ClickHouse/issues/24422). Ce bug a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/5212](https://github.com/ClickHouse/ClickHouse/pull/5212), puis révélé plus tard par un élagueur de partitions plus intelligent. [#24446](https://github.com/ClickHouse/ClickHouse/pull/24446) ([Amos Bird](https://github.com/amosbird)).
* Lorsque l’authentification des utilisateurs est gérée par LDAP, correction d’un interblocage potentiel pouvant se produire pendant le (re)mappage des rôles LDAP, lorsqu’un groupe LDAP est mappé à un rôle local inexistant. [#24431](https://github.com/ClickHouse/ClickHouse/pull/24431) ([Denis Glazachev](https://github.com/traceon)).
* Dans le message "multipart/form-data", prise en compte du CRLF précédant une frontière comme faisant partie de celle-ci. Corrige [#23905](https://github.com/ClickHouse/ClickHouse/issues/23905). [#24399](https://github.com/ClickHouse/ClickHouse/pull/24399) ([Ivan](https://github.com/abyss7)).
* Correction de drop partition avec de fausses parts intersect. Dans de rares cas, il peut exister des parts dont la version de mutation est supérieure au numéro de bloc actuel. [#24321](https://github.com/ClickHouse/ClickHouse/pull/24321) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un bug lors du déplacement d’une materialized view d’une base de données Ordinary vers une base Atomic (requête `RENAME TABLE`). Désormais, la table interne est déplacée vers la nouvelle base de données en même temps que la materialized view. Corrige [#23926](https://github.com/ClickHouse/ClickHouse/issues/23926). [#24309](https://github.com/ClickHouse/ClickHouse/pull/24309) ([tavplubix](https://github.com/tavplubix)).
* Autorisation des HTTP headers vides. Corrige [#23901](https://github.com/ClickHouse/ClickHouse/issues/23901). [#24285](https://github.com/ClickHouse/ClickHouse/pull/24285) ([Ivan](https://github.com/abyss7)).
* Correction du traitement des mutations (ALTER UPDATE/DELETE) dans les tables Memory. Résout [#24274](https://github.com/ClickHouse/ClickHouse/issues/24274). [#24275](https://github.com/ClickHouse/ClickHouse/pull/24275) ([flynn](https://github.com/ucasfl)).
* Faire en sorte que la propriété LowCardinality de la colonne dans le résultat du JOIN soit la même qu’en entrée, close [#23351](https://github.com/ClickHouse/ClickHouse/issues/23351), close [#20315](https://github.com/ClickHouse/ClickHouse/issues/20315). [#24061](https://github.com/ClickHouse/ClickHouse/pull/24061) ([Vladimir](https://github.com/vdimir)).
* Correctif pour les tables Kafka. Corrige un bug dans le comportement de failover : lorsque Engine = Kafka, la consommation ne pouvait pas démarrer si le même consumer avait auparavant une affectation vide. Closes [#21118](https://github.com/ClickHouse/ClickHouse/issues/21118). [#21267](https://github.com/ClickHouse/ClickHouse/pull/21267) ([filimonov](https://github.com/filimonov)).

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

* Ajout des builds `darwin-aarch64` (Mac M1 / Apple Silicon) dans la CI [#25560](https://github.com/ClickHouse/ClickHouse/pull/25560) ([Ivan](https://github.com/abyss7)) et des liens vers la documentation et le site web ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de l'intégration multiplateforme de ressources binaires dans les exécutables. Fonctionne sur Illumos. [#25146](https://github.com/ClickHouse/ClickHouse/pull/25146) ([bnaecker](https://github.com/bnaecker)).
* Ajout d'options liées aux jointures dans les tests de stress afin d'améliorer le fuzzing. [#25200](https://github.com/ClickHouse/ClickHouse/pull/25200) ([Vladimir](https://github.com/vdimir)).
* Activation de la compilation avec le module S3 sur OSX [#25217](https://github.com/ClickHouse/ClickHouse/issues/25217). [#25218](https://github.com/ClickHouse/ClickHouse/pull/25218) ([kevin wan](https://github.com/MaxWk)).
* Ajout de cas de test d'intégration pour couvrir le pont JDBC. [#25047](https://github.com/ClickHouse/ClickHouse/pull/25047) ([Zhichun Wu](https://github.com/zhicwu)).
* La configuration des tests d'intégration bénéficie d'un traitement spécial pour les dictionnaires. Suppression de la configuration manuelle restante des dictionnaires. [#24728](https://github.com/ClickHouse/ClickHouse/pull/24728) ([Ilya Yatsishin](https://github.com/qoega)).
* Ajout de tests libfuzzer pour la classe YAMLParser. [#24480](https://github.com/ClickHouse/ClickHouse/pull/24480) ([BoloniniD](https://github.com/BoloniniD)).
* Ubuntu 20.04 est désormais utilisé pour exécuter les tests d'intégration, et la version de docker-compose utilisée à cette fin a été mise à jour vers 1.28.2. Les variables d'environnement sont désormais prises en compte par docker-compose. Refonte de test\_dictionaries\_all\_layouts\_separate\_sources pour permettre une exécution en parallèle. [#20393](https://github.com/ClickHouse/ClickHouse/pull/20393) ([Ilya Yatsishin](https://github.com/qoega)).
* Correction d'une erreur TOCTOU dans le script d'installation. [#25277](https://github.com/ClickHouse/ClickHouse/pull/25277) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-216-2021-06-05">
  ### Version 21.6 de ClickHouse, 2021-06-05
</div>

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

* uniqState / uniqHLL12State / uniqCombinedState / uniqCombined64State produisent des états incompatibles avec le type `UUID`. [#33607](https://github.com/ClickHouse/ClickHouse/issues/33607).

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

* La bibliothèque de compression `zstd` a été mise à jour vers la version 1.5.0. Il se peut que des messages « checksum does not match » s’affichent lors de la réplication. Ces messages sont attendus en raison de la mise à jour de l’algorithme de compression et vous pouvez les ignorer. Ils sont purement informatifs et n’indiquent aucun comportement indésirable.
* Le paramètre `compile_expressions` est activé par défaut. Bien qu’il ait été largement testé dans divers scénarios, si vous constatez un comportement indésirable sur vos serveurs, vous pouvez essayer de désactiver ce paramètre.
* Les valeurs de type `UUID` ne peuvent pas être comparées à un entier. Par exemple, au lieu d’écrire `uuid != 0`, utilisez `uuid != '00000000-0000-0000-0000-000000000000'`.

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

* Ajout de l'opérateur de cast de type Postgres (`::`). Par ex. : `[1, 2]::Array(UInt8)`, `0.1::Decimal(4, 4)`, `number::UInt16`. [#23871](https://github.com/ClickHouse/ClickHouse/pull/23871) ([Anton Popov](https://github.com/CurtizJ)).
* Les grands entiers sont désormais prêts pour la production. Ajout de la prise en charge du type de données `UInt128`. Correction des problèmes connus liés au type de données `Decimal256`. Prise en charge des grands entiers dans les dictionnaires. Prise en charge des fonctions `gcd`/`lcm` pour les grands entiers. Prise en charge des grands entiers dans les fonctions conditionnelles et de recherche dans les tableaux. Prise en charge de `LowCardinality(UUID)`. Prise en charge des grands entiers dans la table function `generateRandom` et dans `clickhouse-obfuscator`. Correction d'une erreur lors du renvoi de `UUID` depuis des sous-requêtes scalaires. Cela corrige [#7834](https://github.com/ClickHouse/ClickHouse/issues/7834). Cela corrige [#23936](https://github.com/ClickHouse/ClickHouse/issues/23936). Cela corrige [#4176](https://github.com/ClickHouse/ClickHouse/issues/4176). Cela corrige [#24018](https://github.com/ClickHouse/ClickHouse/issues/24018). Changement incompatible avec les versions précédentes : les valeurs de type `UUID` ne peuvent pas être comparées à des entiers. Par exemple, au lieu d'écrire `uuid != 0`, écrivez `uuid != '00000000-0000-0000-0000-000000000000'`. [#23631](https://github.com/ClickHouse/ClickHouse/pull/23631) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge du type de données `Array` pour l'insertion et la sélection de données aux formats `Arrow`, `Parquet` et `ORC`. [#21770](https://github.com/ClickHouse/ClickHouse/pull/21770) ([taylor12805](https://github.com/taylor12805)).
* Implémentation des commentaires de table. Ferme [#23225](https://github.com/ClickHouse/ClickHouse/issues/23225). [#23548](https://github.com/ClickHouse/ClickHouse/pull/23548) ([flynn](https://github.com/ucasFL)).
* Prise en charge de la création de dictionnaires avec des requêtes DDL dans `clickhouse-local`. Ferme [#22354](https://github.com/ClickHouse/ClickHouse/issues/22354). Ajout de la prise en charge de `DETACH DICTIONARY PERMANENTLY`. Ajout de la prise en charge de `EXCHANGE DICTIONARIES` pour le database engine `Atomic`. Ajout de la prise en charge du déplacement de dictionnaires entre bases de données à l'aide de `RENAME DICTIONARY`. [#23436](https://github.com/ClickHouse/ClickHouse/pull/23436) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction d'agrégation `uniqTheta` pour prendre en charge [Theta Sketch](https://datasketches.apache.org/docs/Theta/ThetaSketchFramework.html) dans ClickHouse. [#23894](https://github.com/ClickHouse/ClickHouse/pull/23894). [#22609](https://github.com/ClickHouse/ClickHouse/pull/22609) ([Ping Yu](https://github.com/pingyu)).
* Ajout de la fonction `splitByRegexp`. [#24077](https://github.com/ClickHouse/ClickHouse/pull/24077) ([abel-cheng](https://github.com/abel-cheng)).
* Ajout de la fonction `arrayProduct`, qui accepte un tableau comme paramètre et renvoie le produit de tous les éléments du tableau. Ferme [#21613](https://github.com/ClickHouse/ClickHouse/issues/21613). [#23782](https://github.com/ClickHouse/ClickHouse/pull/23782) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la colonne `thread_name` à `system.stack_trace`. Cela ferme [#23256](https://github.com/ClickHouse/ClickHouse/issues/23256). [#24124](https://github.com/ClickHouse/ClickHouse/pull/24124) ([abel-cheng](https://github.com/abel-cheng)).
* Si `insert_null_as_default` = 1, insère les valeurs par défaut au lieu de NULL dans les requêtes `INSERT ... SELECT` et `INSERT ... SELECT ... UNION ALL ...`. Ferme [#22832](https://github.com/ClickHouse/ClickHouse/issues/22832). [#23524](https://github.com/ClickHouse/ClickHouse/pull/23524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la prise en charge de l’indication de progression dans `clickhouse-local` avec l’option `--progress`. [#23196](https://github.com/ClickHouse/ClickHouse/pull/23196) ([Egor Savin](https://github.com/Amesaru)).
* Ajout de la prise en charge de la compression HTTP (déterminée par l’en-tête HTTP `Content-Encoding`) dans la source de dictionnaire `http`. Cela corrige [#8912](https://github.com/ClickHouse/ClickHouse/issues/8912). [#23946](https://github.com/ClickHouse/ClickHouse/pull/23946) ([FArthur-cmd](https://github.com/FArthur-cmd)).
* Ajout de `SYSTEM QUERY RELOAD MODEL`, `SYSTEM QUERY RELOAD MODELS`. Clôt [#18722](https://github.com/ClickHouse/ClickHouse/issues/18722). [#23182](https://github.com/ClickHouse/ClickHouse/pull/23182) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout du paramètre `json` (booléen, 0 par défaut) pour la requête `EXPLAIN PLAN`. Lorsqu’il est activé, la sortie de la requête est une unique ligne `JSON`. Il est recommandé d’utiliser le format `TSVRaw` pour éviter les échappements inutiles. [#23082](https://github.com/ClickHouse/ClickHouse/pull/23082) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout du paramètre `indexes` (booléen, désactivé par défaut) à la requête `EXPLAIN PIPELINE`. Lorsqu’il est activé, il affiche les indexes utilisés, le nombre de parts et de granules filtrés pour chaque index appliqué. Pris en charge pour les tables `MergeTree*`. [#22352](https://github.com/ClickHouse/ClickHouse/pull/22352) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* LDAP : implémentation d’une fonctionnalité de détection du user DN à utiliser lors du mapping des groupes Active Directory vers les rôles ClickHouse. [#22228](https://github.com/ClickHouse/ClickHouse/pull/22228) ([Denis Glazachev](https://github.com/traceon)).
* Nouvelle fonction d’agrégation `deltaSumTimestamp` pour sommer la différence entre des lignes consécutives tout en préservant l’ordre lors du merge grâce au stockage des timestamps. [#21888](https://github.com/ClickHouse/ClickHouse/pull/21888) ([Russ Frank](https://github.com/rf)).
* Ajout d’un provider d’informations d’authentification IMDS, moins sécurisé, pour S3, qui fonctionne correctement avec docker. [#21852](https://github.com/ClickHouse/ClickHouse/pull/21852) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Réintroduction de la fonction `indexHint`. Cela concerne [#21238](https://github.com/ClickHouse/ClickHouse/issues/21238). Cela annule [#9542](https://github.com/ClickHouse/ClickHouse/pull/9542). Cela corrige [#9540](https://github.com/ClickHouse/ClickHouse/issues/9540). [#21304](https://github.com/ClickHouse/ClickHouse/pull/21304) ([Amos Bird](https://github.com/amosbird)).

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

* Prise en charge de `PROJECTION` pour les tables `MergeTree*`. [#20202](https://github.com/ClickHouse/ClickHouse/pull/20202) ([Amos Bird](https://github.com/amosbird)).

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

* Le paramètre `compile_expressions` est désormais activé par défaut. Lorsque ce paramètre est activé, les compositions de fonctions simples et d’opérateurs sont compilées en code natif avec LLVM à l’exécution. [#8482](https://github.com/ClickHouse/ClickHouse/pull/8482) ([Maksim Kita](https://github.com/kitaisreal), [alexey-milovidov](https://github.com/alexey-milovidov)). Remarque : si cela vous pose des problèmes, désactivez cette option.
* Mise à jour de la bibliothèque `re2`. Les performances de correspondance des expressions régulières sont améliorées. Cette PR ajoute également la compatibilité avec gcc-11. [#24196](https://github.com/ClickHouse/ClickHouse/pull/24196) ([Raúl Marín](https://github.com/Algunenano)).
* Lecture du format d’entrée ORC par stripe, au lieu de charger toute la table en mémoire en une seule fois, ce qui réduit la consommation de mémoire lorsque le fichier est très volumineux. [#23102](https://github.com/ClickHouse/ClickHouse/pull/23102) ([Chao Ma](https://github.com/godliness)).
* Fusion des fonctions d’agrégation `sum`, `count` et `avg` dans une requête en une seule fonction d’agrégation. L’optimisation est contrôlée par le paramètre `optimize_fuse_sum_count_avg`. Cela est implémenté au moyen d’une nouvelle fonction d’agrégation, `sumCount`. Cette fonction renvoie un tuple de deux champs : `sum` et `count`. [#21337](https://github.com/ClickHouse/ClickHouse/pull/21337) ([hexiaoting](https://github.com/hexiaoting)).
* Mise à jour de `zstd` vers la version 1.5.0. Les performances de la compression sont améliorées de quelques points de pourcentage. [#24135](https://github.com/ClickHouse/ClickHouse/pull/24135) ([Raúl Marín](https://github.com/Algunenano)). Remarque : vous pouvez recevoir des messages indiquant que « checksum does not match » dans la réplication. Ces messages sont attendus en raison de la mise à jour de l’algorithme de compression et vous pouvez les ignorer.
* Performances améliorées des tables `Buffer` : aucun verrou n’est pris pour total\_bytes/total\_rows avec le moteur `Buffer`. [#24066](https://github.com/ClickHouse/ClickHouse/pull/24066) ([Azat Khuzhin](https://github.com/azat)).
* La prise en charge de la préallocation pour les dictionnaires hashed/sparse\_hashed est rétablie. [#23979](https://github.com/ClickHouse/ClickHouse/pull/23979) ([Azat Khuzhin](https://github.com/azat)).
* `async_socket_for_remote` est désormais activé par défaut (ce qui réduit le nombre de threads lors des requêtes sur les tables Distributed avec un fanout important). [#23683](https://github.com/ClickHouse/ClickHouse/pull/23683) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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

* Ajout de la colonne virtuelle `_partition_value` à la famille de tables MergeTree. Elle peut être utilisée pour filtrer les partitions de manière déterministe. Elle est nécessaire pour implémenter le sélecteur de partition pour les mutations. [#23673](https://github.com/ClickHouse/ClickHouse/pull/23673) ([Amos Bird](https://github.com/amosbird)).
* Ajout du paramètre `region` pour le stockage S3 et le disque. [#23846](https://github.com/ClickHouse/ClickHouse/pull/23846) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Possibilité de configurer différents niveaux de log pour différents canaux de journalisation. Clôt [#19569](https://github.com/ClickHouse/ClickHouse/issues/19569). [#23857](https://github.com/ClickHouse/ClickHouse/pull/23857) ([filimonov](https://github.com/filimonov)).
* Conserve le fuseau horaire par défaut pour les opérations sur `DateTime` s'il n'est pas fourni explicitement. Par exemple, si vous ajoutez une seconde à une valeur de type `DateTime` sans fuseau horaire, elle restera un `DateTime` sans fuseau horaire. Dans les versions précédentes, la valeur du fuseau horaire par défaut était explicitement ajoutée au type de données renvoyé, qui devenait alors DateTime('something'). Cela clôt [#4854](https://github.com/ClickHouse/ClickHouse/issues/4854). [#23392](https://github.com/ClickHouse/ClickHouse/pull/23392) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autorise l'utilisateur à spécifier une chaîne vide à la place du nom de la base de données pour le moteur `MySQL`. La base de données par défaut sera utilisée pour les requêtes. Dans les versions précédentes, cela fonctionnait pour les requêtes SELECT et la prise en charge d'INSERT a également été ajoutée. Cela clôt [#19281](https://github.com/ClickHouse/ClickHouse/issues/19281). Cela peut être utile pour travailler avec `Sphinx` ou d'autres bases de données externes compatibles MySQL. [#23319](https://github.com/ClickHouse/ClickHouse/pull/23319) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de `quantile(s)TDigest`. Ajout d'une gestion spéciale des centroïdes singleton conformément à tdunning/t-digest 3.2+. Un bug de sur-compression des centroïdes dans l'implémentation d'une version antérieure de l'algorithme a également été corrigé. [#23314](https://github.com/ClickHouse/ClickHouse/pull/23314) ([Vladimir Chebotarev](https://github.com/excitoon)).
* La fonction `now64` prend désormais en charge un argument de fuseau horaire facultatif. [#24091](https://github.com/ClickHouse/ClickHouse/pull/24091) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrige le cas où une barre de progression en mode interactif dans clickhouse-client, apparaissant au milieu des données, peut réécrire certaines parties des données affichées dans le terminal. Cela clôt [#19283](https://github.com/ClickHouse/ClickHouse/issues/19283). [#23050](https://github.com/ClickHouse/ClickHouse/pull/23050) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige un crash lorsque l'allocation de mémoire échoue dans simdjson. [https://github.com/simdjson/simdjson/pull/1567](https://github.com/simdjson/simdjson/pull/1567) . Classé comme amélioration, car il s'agit d'un bug très rare. [#24147](https://github.com/ClickHouse/ClickHouse/pull/24147) ([Amos Bird](https://github.com/amosbird)).
* Préserve les dictionnaires jusqu'à l'arrêt du stockage (cela évitera d'éventuelles erreurs `external dictionary 'DICT' not found` lors de l'arrêt du serveur pendant le flush final du moteur `Buffer`). [#24068](https://github.com/ClickHouse/ClickHouse/pull/24068) ([Azat Khuzhin](https://github.com/azat)).
* Flush les tables `Buffer` avant d'arrêter les tables (au sein d'une même base de données), afin d'éviter de rejeter des blocks parce que l'underlying table avait déjà été detached (et l'erreur `Destination table default.a_data_01870 doesn't exist. Block of data is discarded` dans le log). [#24067](https://github.com/ClickHouse/ClickHouse/pull/24067) ([Azat Khuzhin](https://github.com/azat)).
* Désormais, `prefer_column_name_to_alias = 1` privilégiera également les noms de colonne pour `group by`, `having` et `order by`. Cela corrige [#23882](https://github.com/ClickHouse/ClickHouse/issues/23882). [#24022](https://github.com/ClickHouse/ClickHouse/pull/24022) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la prise en charge de `ORDER BY WITH FILL` avec `DateTime64`. [#24016](https://github.com/ClickHouse/ClickHouse/pull/24016) ([kevin wan](https://github.com/MaxWk)).
* `DateTime64` peut désormais être utilisé comme version column dans `ReplacingMergeTree`. [#23992](https://github.com/ClickHouse/ClickHouse/pull/23992) ([kevin wan](https://github.com/MaxWk)).
* Journalisation d’informations sur le nom du système d’exploitation, la version du noyau et l’architecture du CPU au démarrage du server. [#23988](https://github.com/ClickHouse/ClickHouse/pull/23988) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge de la spécification du schéma de table pour la dictionary source `postgresql`. Closes [#23958](https://github.com/ClickHouse/ClickHouse/issues/23958). [#23980](https://github.com/ClickHouse/ClickHouse/pull/23980) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d’indications pour les noms des éléments `Enum` (proposition de noms en cas de faute de frappe). Closes [#17112](https://github.com/ClickHouse/ClickHouse/issues/17112). [#23919](https://github.com/ClickHouse/ClickHouse/pull/23919) ([flynn](https://github.com/ucasFL)).
* Mesure du taux de correspondance trouvé (le pourcentage de cas où la Value a été trouvée) pour les Dictionaries (voir `found_rate` dans `system.dictionaries`). [#23916](https://github.com/ClickHouse/ClickHouse/pull/23916) ([Azat Khuzhin](https://github.com/azat)).
* Possibilité d’ajouter des paramètres spécifiques pour les queues via le paramètre de table `rabbitmq_queue_settings_list`. (Closes [#23737](https://github.com/ClickHouse/ClickHouse/issues/23737) and [#23918](https://github.com/ClickHouse/ClickHouse/issues/23918)). L’utilisateur peut désormais contrôler toute la configuration RabbitMQ : si le paramètre de table `rabbitmq_queue_consume` est défini sur `1`, le table engine RabbitMQ se connectera uniquement à la queue spécifiée et n’effectuera aucune configuration côté consumer RabbitMQ, comme la déclaration d’exchange, de queues ou de bindings. (Closes [#21757](https://github.com/ClickHouse/ClickHouse/issues/21757)). Ajout d’un nettoyage approprié lors du drop d’une table RabbitMQ : suppression des queues déclarées par la table ainsi que de tous les exchanges liés, s’ils ont été créés par la table. [#23887](https://github.com/ClickHouse/ClickHouse/pull/23887) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de `broken_data_files`/`broken_data_compressed_bytes` dans `system.distribution_queue`. Ajout d’une métrique pour le nombre de fichiers d’asynchronous insertion dans les Distributed tables marqués comme corrompus (`BrokenDistributedFilesToInsert`). [#23885](https://github.com/ClickHouse/ClickHouse/pull/23885) ([Azat Khuzhin](https://github.com/azat)).
* Les query sur `system.tables` ne passent plus par ZooKeeper. [#23793](https://github.com/ClickHouse/ClickHouse/pull/23793) ([Fuwang Hu](https://github.com/fuwhu)).
* Respect de `lock_acquire_timeout_for_background_operations` pour les query `OPTIMIZE`. [#23623](https://github.com/ClickHouse/ClickHouse/pull/23623) ([Azat Khuzhin](https://github.com/azat)).
* Possibilité de modifier les Settings du disk `S3` à l’exécution via la nouvelle commande SQL `SYSTEM RESTART DISK`. [#23429](https://github.com/ClickHouse/ClickHouse/pull/23429) ([Pavel Kovalenko](https://github.com/Jokser)).
* Si l’utilisateur appliquait une mauvaise configuration en définissant par erreur `max_distributed_connections` à zéro, chaque query vers une table `Distributed` levait une exception avec un message contenant "logical error". Mais il s’agit en réalité d’un comportement attendu, et non d’une logical error ; le message d’exception était donc légèrement incorrect. Cela déclenchait également des checks dans notre environnement CI, qui garantit qu’aucune logical error ne se produit jamais. Désormais, `max_distributed_connections` configuré à zéro sera traité comme la valeur minimum possible (un). [#23348](https://github.com/ClickHouse/ClickHouse/pull/23348) ([Azat Khuzhin](https://github.com/azat)).
* `min_bytes_to_use_mmap_io` est désormais désactivé par défaut. [#23322](https://github.com/ClickHouse/ClickHouse/pull/23322) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge de la nullabilité de `LowCardinality` avec `join_use_nulls`, corrige [#15101](https://github.com/ClickHouse/ClickHouse/issues/15101). [#23237](https://github.com/ClickHouse/ClickHouse/pull/23237) ([vdimir](https://github.com/vdimir)).
* Ajout de la possibilité de restaurer des parts `MergeTree` dans le répertoire `detached` pour le disque `S3`. [#23112](https://github.com/ClickHouse/ClickHouse/pull/23112) ([Pavel Kovalenko](https://github.com/Jokser)).
* Nouvelle tentative en cas d'interruption de connexion HTTP sur S3. [#22988](https://github.com/ClickHouse/ClickHouse/pull/22988) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Ajout des paramètres `external_storage_max_read_rows` et `external_storage_max_read_rows` pour le moteur de table MySQL, la source de dictionnaire et les récupérations mineures de données de MaterializeMySQL. [#22697](https://github.com/ClickHouse/ClickHouse/pull/22697) ([TCeason](https://github.com/TCeason)).
* `MaterializeMySQL` (fonctionnalité expérimentale) : auparavant, MySQL 5.7.9 n'était pas pris en charge en raison d'une incompatibilité SQL. La vérification des paramètres MySQL est désormais laissée à MaterializeMySQL. [#23413](https://github.com/ClickHouse/ClickHouse/pull/23413) ([TCeason](https://github.com/TCeason)).
* Prise en charge de la lecture des sous-colonnes pour les tables distribuées. [#24472](https://github.com/ClickHouse/ClickHouse/pull/24472) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l'utilisation des tuples dans les requêtes `CREATE .. AS SELECT`. [#24464](https://github.com/ClickHouse/ClickHouse/pull/24464) ([Anton Popov](https://github.com/CurtizJ)).
* Prise en charge du format `Parquet` dans les tables `Kafka`. [#23412](https://github.com/ClickHouse/ClickHouse/pull/23412) ([Chao Ma](https://github.com/godliness)).

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

* Utilisation de l’ancienne version de la fonction modulo lorsqu’elle est utilisée dans la clé de partition et la clé primaire. Ferme [#23508](https://github.com/ClickHouse/ClickHouse/issues/23508). [#24157](https://github.com/ClickHouse/ClickHouse/pull/24157) ([Kseniia Sumarokova](https://github.com/kssenii)). C’était une source d’incompatibilité rétroactive dans les versions précédentes.
* Correction du comportement lorsque la requête `SYSTEM RESTART REPLICA` ou `SYSTEM SYNC REPLICA` était traitée indéfiniment. Cela a été détecté sur un serveur avec une quantité de RAM extrêmement faible. [#24457](https://github.com/ClickHouse/ClickHouse/pull/24457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction de la monotonie incorrecte de la fonction `toWeek`. Cela corrige [#24422](https://github.com/ClickHouse/ClickHouse/issues/24422). Ce bug a été introduit dans [#5212](https://github.com/ClickHouse/ClickHouse/pull/5212), puis révélé plus tard par un élagueur de partitions plus intelligent. [#24446](https://github.com/ClickHouse/ClickHouse/pull/24446) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un DROP PARTITION incorrect avec de fausses parts intersectées. Dans de rares cas, il peut y avoir des parts avec une version de mutation supérieure au numéro de block actuel. [#24321](https://github.com/ClickHouse/ClickHouse/pull/24321) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un bug lors du déplacement d’une vue matérialisée d’une base de données Ordinary vers Atomic (requête `RENAME TABLE`). Désormais, la table interne est déplacée vers la nouvelle base de données en même temps que la vue matérialisée. Corrige [#23926](https://github.com/ClickHouse/ClickHouse/issues/23926). [#24309](https://github.com/ClickHouse/ClickHouse/pull/24309) ([tavplubix](https://github.com/tavplubix)).
* Autorisation des en-têtes HTTP vides dans les requêtes client. Corrige [#23901](https://github.com/ClickHouse/ClickHouse/issues/23901). [#24285](https://github.com/ClickHouse/ClickHouse/pull/24285) ([Ivan](https://github.com/abyss7)).
* Définition de `max_threads = 1` pour corriger l’échec des mutations sur les tables `Memory`. Ferme [#24274](https://github.com/ClickHouse/ClickHouse/issues/24274). [#24275](https://github.com/ClickHouse/ClickHouse/pull/24275) ([flynn](https://github.com/ucasFL)).
* Correction d’une faute de frappe dans l’implémentation des tables `Memory`, bug introduit dans [#15127](https://github.com/ClickHouse/ClickHouse/issues/15127). Ferme [#24192](https://github.com/ClickHouse/ClickHouse/issues/24192). [#24193](https://github.com/ClickHouse/ClickHouse/pull/24193) ([张中南](https://github.com/plugine)).
* Correction d’un arrêt anormal du serveur dû au fait que `HDFS` devenait inaccessible pendant l’exécution d’une requête. Ferme [#24117](https://github.com/ClickHouse/ClickHouse/issues/24117). [#24191](https://github.com/ClickHouse/ClickHouse/pull/24191) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un crash lors de la mise à jour d’une colonne `Nested` avec une condition constante. [#24183](https://github.com/ClickHouse/ClickHouse/pull/24183) ([hexiaoting](https://github.com/hexiaoting)).
* Correction d’une condition de concurrence qui pouvait se produire dans RBAC sous forte charge. Cette PR corrige [#24090](https://github.com/ClickHouse/ClickHouse/issues/24090), [#24134](https://github.com/ClickHouse/ClickHouse/issues/24134). [#24176](https://github.com/ClickHouse/ClickHouse/pull/24176) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’un bug rare pouvant conduire à une table partiellement initialisée capable de traiter des write requests (insert/alter/etc.). Désormais, ces tables seront en mode readonly. [#24122](https://github.com/ClickHouse/ClickHouse/pull/24122) ([alesapin](https://github.com/alesapin)).
* Correction d’un problème : `EXPLAIN PIPELINE` avec `SELECT xxx FINAL` affichait un pipeline incorrect. ([hexiaoting](https://github.com/hexiaoting)).
* Correction de l’utilisation d’une valeur constante `DateTime` par rapport à une colonne `DateTime64` dans `WHERE`. [#24100](https://github.com/ClickHouse/ClickHouse/pull/24100) ([Vasily Nemkov](https://github.com/Enmk)).
* Correction d’un crash dans merge JOIN, corrige [#24010](https://github.com/ClickHouse/ClickHouse/issues/24010). [#24013](https://github.com/ClickHouse/ClickHouse/pull/24013) ([vdimir](https://github.com/vdimir)).
* Certaines requêtes `ALTER PARTITION` pouvaient provoquer les erreurs `Part A intersects previous part B` et `Unexpected merged part C intersecting drop range D` dans la replication queue. C’est corrigé. Corrige [#23296](https://github.com/ClickHouse/ClickHouse/issues/23296). [#23997](https://github.com/ClickHouse/ClickHouse/pull/23997) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un SIGSEGV pour GROUP BY externe et ligne de débordement (c.-à-d. des requêtes comme `SELECT FROM GROUP BY WITH TOTALS SETTINGS max_bytes_before_external_group_by>0, max_rows_to_group_by>0, group_by_overflow_mode='any', totals_mode='before_having'`). [#23962](https://github.com/ClickHouse/ClickHouse/pull/23962) ([Azat Khuzhin](https://github.com/azat)).
* Correction du comptage des métriques de clés pour le dictionnaire `CACHE` avec des doublons dans la source (ce qui entraîne des débordements `DictCacheKeysRequestedMiss`). [#23929](https://github.com/ClickHouse/ClickHouse/pull/23929) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’implémentation du pool de connexions du moteur `PostgreSQL`. Corrige [#23897](https://github.com/ClickHouse/ClickHouse/issues/23897). [#23909](https://github.com/ClickHouse/ClickHouse/pull/23909) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de `distributed_group_by_no_merge = 2` avec `GROUP BY` et une fonction d’agrégation encapsulée dans une fonction classique (cassé dans [#23546](https://github.com/ClickHouse/ClickHouse/issues/23546)). Déclenche désormais une exception si quelqu’un essaie d’utiliser `distributed_group_by_no_merge = 2` avec des window functions. Désactive `optimize_distributed_group_by_sharding_key` pour les requêtes avec des window functions. [#23906](https://github.com/ClickHouse/ClickHouse/pull/23906) ([Azat Khuzhin](https://github.com/azat)).
* Correctif pour la fonction de table `s3` : meilleure gestion des erreurs HTTP. Les corps de réponse des erreurs HTTP étaient auparavant ignorés. [#23844](https://github.com/ClickHouse/ClickHouse/pull/23844) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Correctif pour la fonction de table `s3` : meilleure gestion des URI. Correction d’une incompatibilité avec les URL contenant le symbole `+` ; les données avec de telles clés ne pouvaient pas être lues auparavant. [#23822](https://github.com/ClickHouse/ClickHouse/pull/23822) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Correction de l’erreur `Can't initialize pipeline with empty pipe` pour les requêtes avec `GLOBAL IN/JOIN` et `use_hedged_requests`. Corrige [#23431](https://github.com/ClickHouse/ClickHouse/issues/23431). [#23805](https://github.com/ClickHouse/ClickHouse/pull/23805) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de `CLEAR COLUMN`, qui ne fonctionne pas lorsqu’il est référencé par une materialized view. Corrige [#23764](https://github.com/ClickHouse/ClickHouse/issues/23764). [#23781](https://github.com/ClickHouse/ClickHouse/pull/23781) ([flynn](https://github.com/ucasFL)).
* Correction d’une utilisation de mémoire après libération lors de la lecture depuis HDFS si le format `Values` est utilisé. [#23761](https://github.com/ClickHouse/ClickHouse/pull/23761) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Évite une éventuelle erreur "Cannot schedule a task" (si une exception s’était produite) lors d’un INSERT dans Distributed. [#23744](https://github.com/ClickHouse/ClickHouse/pull/23744) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un bug dans la récupération d’une réplique `ReplicatedMergeTree` obsolète. Certaines mises à jour de métadonnées pouvaient être ignorées par une réplique obsolète si une requête `ALTER` était exécutée pendant l’indisponibilité de la réplique. [#23742](https://github.com/ClickHouse/ClickHouse/pull/23742) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un bug avec `Join` et `WITH TOTALS`, corrige [#17718](https://github.com/ClickHouse/ClickHouse/issues/17718). [#23549](https://github.com/ClickHouse/ClickHouse/pull/23549) ([vdimir](https://github.com/vdimir)).
* Correction d’une possible erreur `Block structure mismatch` pour les requêtes avec `UNION`, qui pouvait se produire après une optimisation de pushdown du filtre. Corrige [#23029](https://github.com/ClickHouse/ClickHouse/issues/23029). [#23359](https://github.com/ClickHouse/ClickHouse/pull/23359) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout d’une conversion de type lorsque le paramètre `optimize_skip_unused_shards_rewrite_in` est activé. Cela corrige le rapport MSan. [#23219](https://github.com/ClickHouse/ClickHouse/pull/23219) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’une vérification manquante lors de la mise à jour de sous-colonnes imbriquées, corrige l’issue : [#22353](https://github.com/ClickHouse/ClickHouse/issues/22353). [#22503](https://github.com/ClickHouse/ClickHouse/pull/22503) ([hexiaoting](https://github.com/hexiaoting)).

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

* Prise en charge de la compilation sur Illumos. [#24144](https://github.com/ClickHouse/ClickHouse/pull/24144). Ajoute la prise en charge de la compilation sur les systèmes d’exploitation dérivés de Solaris. [#23746](https://github.com/ClickHouse/ClickHouse/pull/23746) ([bnaecker](https://github.com/bnaecker)).
* Ajout de benchmarks supplémentaires pour les tables de hachage, y compris la Swiss Table de Google (qui semblait plus lente que la table de hachage de ClickHouse dans notre cas d’usage spécifique). [#24111](https://github.com/ClickHouse/ClickHouse/pull/24111) ([Maksim Kita](https://github.com/kitaisreal)).
* Mise à jour de librdkafka de la version 1.6.0-RC3 vers la version 1.6.1. [#23874](https://github.com/ClickHouse/ClickHouse/pull/23874) ([filimonov](https://github.com/filimonov)).
* Toujours activer explicitement `asynchronous-unwind-tables`. Cela peut corriger le profiler de requêtes sur AArch64. [#23602](https://github.com/ClickHouse/ClickHouse/pull/23602) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Éviter une dépendance potentielle de la compilation aux paramètres régionaux et à l’ordre du système de fichiers. Cela permet d’obtenir des builds reproductibles. [#23600](https://github.com/ClickHouse/ClickHouse/pull/23600) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suppression d’une cause de non-déterminisme dans la compilation. Désormais, des builds effectués à des moments différents produiront des binaires identiques octet pour octet. Correction partielle de [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#23559](https://github.com/ClickHouse/ClickHouse/pull/23559) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout d’un outil simple pour mesurer les performances de (Zoo)Keeper. [#23038](https://github.com/ClickHouse/ClickHouse/pull/23038) ([alesapin](https://github.com/alesapin)).

<div id="clickhouse-release-215-2021-05-20">
  ## Version de ClickHouse 21.5, 2021-05-20
</div>

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

* Modification de la comparaison entre les entiers et les nombres à virgule flottante lorsque l’entier n’est pas représentable exactement dans le type de données à virgule flottante. Dans la nouvelle version, la comparaison renverra false, car une erreur d’arrondi se produira. Exemple : `9223372036854775808.0 != 9223372036854775808`, car le nombre `9223372036854775808` n’est pas représentable exactement en nombre à virgule flottante (et `9223372036854775808.0` est arrondi à `9223372036854776000.0`). Mais dans la version précédente, la comparaison indiquait que les nombres étaient égaux, car si le nombre à virgule flottante `9223372036854776000.0` est reconverti en UInt64, il donne `9223372036854775808`. À titre de référence, le langage Python considère également ces nombres comme égaux. Mais ce comportement dépendait du modèle de CPU (avec des résultats différents sur AMD64 et AArch64 pour certains nombres hors plage), nous rendons donc la comparaison plus précise. Elle ne considérera les entiers et les nombres à virgule flottante comme égaux que si l’entier est représenté exactement dans le type à virgule flottante. [#22595](https://github.com/ClickHouse/ClickHouse/pull/22595) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suppression de la prise en charge de `argMin` et `argMax` pour un unique argument `Tuple`. Le code n’était pas sûr du point de vue de la gestion mémoire. Cette fonctionnalité a été ajoutée par erreur et prête à confusion. Ces fonctions pourront être réintroduites plus tard sous d’autres noms. Cela corrige [#22384](https://github.com/ClickHouse/ClickHouse/issues/22384) et annule [#17359](https://github.com/ClickHouse/ClickHouse/issues/17359). [#23393](https://github.com/ClickHouse/ClickHouse/pull/23393) ([alexey-milovidov](https://github.com/alexey-milovidov)).

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

* Ajout des fonctions `dictGetChildren(dictionary, key)`, `dictGetDescendants(dictionary, key, level)`. La fonction `dictGetChildren` renvoie tous les enfants sous la forme d’un tableau d’indices. Il s’agit de la transformation inverse de `dictGetHierarchy`. La fonction `dictGetDescendants` renvoie tous les descendants comme si `dictGetChildren` était appliquée récursivement `level` fois. Une valeur `level` égale à zéro équivaut à l’infini. Amélioration des performances des fonctions `dictGetHierarchy` et `dictIsIn`. Clôt [#14656](https://github.com/ClickHouse/ClickHouse/issues/14656). [#22096](https://github.com/ClickHouse/ClickHouse/pull/22096) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction `dictGetOrNull`. Elle fonctionne comme `dictGet`, mais renvoie `NULL` si la clé est introuvable dans le dictionnaire. Clôt [#22375](https://github.com/ClickHouse/ClickHouse/issues/22375). [#22413](https://github.com/ClickHouse/ClickHouse/pull/22413) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout d’une fonction de table `s3Cluster`, qui permet de traiter en parallèle des fichiers depuis `s3` sur chaque nœud d’un cluster spécifié. [#22012](https://github.com/ClickHouse/ClickHouse/pull/22012) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout de la prise en charge des répliques et des shards dans le moteur de table / la fonction de table MySQL/PostgreSQL. Vous pouvez écrire `SELECT * FROM mysql('host{1,2}-{1|2}', ...)`. Clôt [#20969](https://github.com/ClickHouse/ClickHouse/issues/20969). [#22217](https://github.com/ClickHouse/ClickHouse/pull/22217) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la requête `ALTER TABLE ... FETCH PART ...`. Elle est similaire à `FETCH PARTITION`, mais ne récupère qu’une seule part. [#22706](https://github.com/ClickHouse/ClickHouse/pull/22706) ([turbo jason](https://github.com/songenjie)).
* Ajout d’un paramètre `max_distributed_depth` qui limite la profondeur des requêtes récursives vers les tables `Distributed`. Clôt [#20229](https://github.com/ClickHouse/ClickHouse/issues/20229). [#21942](https://github.com/ClickHouse/ClickHouse/pull/21942) ([flynn](https://github.com/ucasFL)).

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

* Performances de `intDiv` améliorées grâce au dispatch dynamique pour AVX2. Cela résout [#22314](https://github.com/ClickHouse/ClickHouse/issues/22314). [#23000](https://github.com/ClickHouse/ClickHouse/pull/23000) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Performances de lecture du format d'entrée `ArrowStream` améliorées pour les sources autres qu'un fichier local (par ex. une URL). [#22673](https://github.com/ClickHouse/ClickHouse/pull/22673) ([nvartolomei](https://github.com/nvartolomei)).
* Compression désactivée par défaut lors des interactions avec localhost (avec clickhouse-client ou de serveur à serveur pour les requêtes distribuées) via le protocole natif. Cela peut améliorer les performances de certaines opérations d'import/export. Cela résout [#22234](https://github.com/ClickHouse/ClickHouse/issues/22234). [#22237](https://github.com/ClickHouse/ClickHouse/pull/22237) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Exclusion, de la partie droite de la clause IN, des valeurs qui n'appartiennent pas au shard pour les requêtes distribuées (avec `optimize_skip_unused_shards_rewrite_in`, activé par défaut, puisqu'il requiert toujours `optimize_skip_unused_shards`). [#21511](https://github.com/ClickHouse/ClickHouse/pull/21511) ([Azat Khuzhin](https://github.com/azat)).
* Performances améliorées pour la lecture d'un sous-ensemble de colonnes avec un moteur de table de type File et un format orienté colonnes comme Parquet, Arrow ou ORC. Cela résout [#issue:20129](https://github.com/ClickHouse/ClickHouse/issues/20129). [#21302](https://github.com/ClickHouse/ClickHouse/pull/21302) ([keenwolf](https://github.com/keen-wolf)).
* Autorise le déplacement de davantage de conditions vers `PREWHERE`, comme avant la version 21.1 (ajustement des heuristiques internes). Un nombre insuffisant de conditions déplacées pouvait entraîner une baisse des performances. [#23397](https://github.com/ClickHouse/ClickHouse/pull/23397) ([Anton Popov](https://github.com/CurtizJ)).
* Performances des connexions ODBC améliorées et tous les problèmes restants du backlog corrigés. Utilisation de la bibliothèque `nanodbc` au lieu de `Poco::ODBC`. Résout [#9678](https://github.com/ClickHouse/ClickHouse/issues/9678). Ajout de la prise en charge de DateTime64 et Decimal\* pour le moteur de table ODBC. Résout [#21961](https://github.com/ClickHouse/ClickHouse/issues/21961). Correction d'un problème de troncature du texte cyrillique. Résout [#16246](https://github.com/ClickHouse/ClickHouse/issues/16246). Ajout de pools de connexions pour odbc bridge. [#21972](https://github.com/ClickHouse/ClickHouse/pull/21972) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Augmente `max_uri_size` (la taille maximale de l’URL dans l’interface HTTP) à 1 MiB par défaut. Cela clôt [#21197](https://github.com/ClickHouse/ClickHouse/issues/21197). [#22997](https://github.com/ClickHouse/ClickHouse/pull/22997) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Définit `background_fetches_pool_size` à `8`, ce qui est mieux adapté à une utilisation en production avec des insertions fréquentes de petite taille ou un cluster ZooKeeper lent. [#22945](https://github.com/ClickHouse/ClickHouse/pull/22945) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* FlatDictionary ajoute les options `initial_array_size`, `max_array_size`. [#22521](https://github.com/ClickHouse/ClickHouse/pull/22521) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajoute le nouveau paramètre `non_replicated_deduplication_window` pour la déduplication des insertions dans MergeTree non répliqué. [#22514](https://github.com/ClickHouse/ClickHouse/pull/22514) ([alesapin](https://github.com/alesapin)).
* Met à jour les chemins vers les configurations du modèle `CatBoost` lors du rechargement de la configuration. [#22434](https://github.com/ClickHouse/ClickHouse/pull/22434) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge du type `Decimal256` dans les dictionnaires. `Decimal256` est une fonctionnalité expérimentale. Clôt [#20979](https://github.com/ClickHouse/ClickHouse/issues/20979). [#22960](https://github.com/ClickHouse/ClickHouse/pull/22960) ([Maksim Kita](https://github.com/kitaisreal)).
* `async_socket_for_remote` est activé par défaut (utilise moins de threads du système d’exploitation pour les requêtes distribuées). [#23683](https://github.com/ClickHouse/ClickHouse/pull/23683) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de `quantile(s)TDigest`. Ajout d’un traitement spécial des centroïdes singleton conformément à tdunning/t-digest 3.2+. Un bug provoquant une surcompression des centroïdes dans l’implémentation d’une version antérieure de l’algorithme a également été corrigé. [#23314](https://github.com/ClickHouse/ClickHouse/pull/23314) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Rend le nom de fonction `unhex` insensible à la casse pour assurer la compatibilité avec MySQL. [#23229](https://github.com/ClickHouse/ClickHouse/pull/23229) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Implémente les fonctions `arrayHasAny`, `arrayHasAll`, `has`, `indexOf`, `countEqual` pour le cas générique où les types des éléments du Array diffèrent. Dans les versions précédentes, les fonctions `arrayHasAny` et `arrayHasAll` renvoyaient false, tandis que `has`, `indexOf` et `countEqual` levaient une exception. Ajoute également la prise en charge de `Decimal` et des types entiers de grande taille dans les fonctions `has` et similaires. Cela clôt [#20272](https://github.com/ClickHouse/ClickHouse/issues/20272). [#23044](https://github.com/ClickHouse/ClickHouse/pull/23044) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Augmente le seuil du nombre maximal de correspondances dans le résultat de la fonction `extractAllGroupsHorizontal`. [#23036](https://github.com/ClickHouse/ClickHouse/pull/23036) ([Vasily Nemkov](https://github.com/Enmk)).
* N’exécute pas `optimize_skip_unused_shards` pour un cluster à un seul nœud. [#22999](https://github.com/ClickHouse/ClickHouse/pull/22999) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la possibilité d’exécuter ClickHouse Keeper (remplacement expérimental compatible avec ZooKeeper) avec SSL. Le paramètre de configuration `keeper_server.tcp_port_secure` peut être utilisé pour une interaction sécurisée entre le client et le keeper-server. `keeper_server.raft_configuration.secure` peut être utilisé pour activer la communication interne sécurisée entre les nœuds. [#22992](https://github.com/ClickHouse/ClickHouse/pull/22992) ([alesapin](https://github.com/alesapin)).
* Ajout de la possibilité de vider le buffer uniquement en arrière-plan pour les tables `Buffer`. [#22986](https://github.com/ClickHouse/ClickHouse/pull/22986) ([Azat Khuzhin](https://github.com/azat)).
* Lors de la sélection dans une table MergeTree avec NULL dans la condition WHERE, une exception pouvait être levée dans de rares cas. Cela corrige [#20019](https://github.com/ClickHouse/ClickHouse/issues/20019). [#22978](https://github.com/ClickHouse/ClickHouse/pull/22978) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de la gestion des erreurs dans le client HTTP Poco pour AWS. [#22973](https://github.com/ClickHouse/ClickHouse/pull/22973) ([kreuzerkrieg](https://github.com/kreuzerkrieg)).
* Respect de `max_part_removal_threads` pour `ReplicatedMergeTree`. [#22971](https://github.com/ClickHouse/ClickHouse/pull/22971) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un cas limite peu courant dans les paramètres MergeTree lorsque inactive\_parts\_to\_throw\_insert = 0 et inactive\_parts\_to\_delay\_insert > 0. [#22947](https://github.com/ClickHouse/ClickHouse/pull/22947) ([Azat Khuzhin](https://github.com/azat)).
* `dateDiff` fonctionne désormais avec des arguments `DateTime64` (même pour des valeurs hors de la plage de `DateTime`) [#22931](https://github.com/ClickHouse/ClickHouse/pull/22931) ([Vasily Nemkov](https://github.com/Enmk)).
* MaterializeMySQL (fonctionnalité expérimentale) : ajout de la possibilité de répliquer des bases de données MySQL contenant des vues sans échouer. Pour cela, les vues sont ignorées. [#22760](https://github.com/ClickHouse/ClickHouse/pull/22760) ([Christian](https://github.com/cfroystad)).
* Autorise les ROW POLICY RBAC via le protocole PostgreSQL. Cela corrige [#22658](https://github.com/ClickHouse/ClickHouse/issues/22658). Le protocole PostgreSQL est activé par défaut dans la configuration. [#22755](https://github.com/ClickHouse/ClickHouse/pull/22755) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d'une métrique pour suivre le temps passé à attendre le verrou de la Buffer layer. [#22725](https://github.com/ClickHouse/ClickHouse/pull/22725) ([Azat Khuzhin](https://github.com/azat)).
* Autorise l'utilisation de CTE dans une définition de VIEW. Cela corrige [#22491](https://github.com/ClickHouse/ClickHouse/issues/22491). [#22657](https://github.com/ClickHouse/ClickHouse/pull/22657) ([Amos Bird](https://github.com/amosbird)).
* Efface le reste de l'écran et affiche le curseur dans `clickhouse-client` si le programme précédent a laissé des artefacts dans le terminal. Cela corrige [#16518](https://github.com/ClickHouse/ClickHouse/issues/16518). [#22634](https://github.com/ClickHouse/ClickHouse/pull/22634) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Rend le comportement de la fonction `round` cohérent sur les plateformes non x86\_64. L'arrondi au pair le plus proche (arrondi bancaire) est utilisé. [#22582](https://github.com/ClickHouse/ClickHouse/pull/22582) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Vérifie correctement la structure des blocks de données envoyés par les Distributed tables. [#22325](https://github.com/ClickHouse/ClickHouse/pull/22325) ([Azat Khuzhin](https://github.com/azat)).
* Autorise la publication des erreurs Kafka dans une colonne virtuelle du Kafka engine, contrôlée par le paramètre `kafka_handle_error_mode`. [#21850](https://github.com/ClickHouse/ClickHouse/pull/21850) ([fastio](https://github.com/fastio)).
* Ajout des alias `simpleJSONExtract/simpleJSONHas` à `visitParam/visitParamExtract{UInt, Int, Bool, Float, Raw, String}`. Corrige [#21383](https://github.com/ClickHouse/ClickHouse/issues/21383). [#21519](https://github.com/ClickHouse/ClickHouse/pull/21519) ([fastio](https://github.com/fastio)).
* Ajout de `clickhouse-library-bridge` pour les sources de dictionnaire de bibliothèque. Clôt [#9502](https://github.com/ClickHouse/ClickHouse/issues/9502). [#21509](https://github.com/ClickHouse/ClickHouse/pull/21509) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Interdiction de supprimer une colonne si elle est référencée par une vue matérialisée. Clôt [#21164](https://github.com/ClickHouse/ClickHouse/issues/21164). [#21303](https://github.com/ClickHouse/ClickHouse/pull/21303) ([flynn](https://github.com/ucasFL)).
* Prise en charge des informations d’authentification inter-serveurs dynamiques (rotation des informations d’authentification sans interruption de service). [#14113](https://github.com/ClickHouse/ClickHouse/pull/14113) ([johnskopis](https://github.com/johnskopis)).
* Ajout de la prise en charge du moteur Kafka avec des messages au format `Arrow` et `ArrowStream`. [#23415](https://github.com/ClickHouse/ClickHouse/pull/23415) ([Chao Ma](https://github.com/godliness)).
* Correction du point-virgule manquant dans le message d’exception. L’utilisateur pouvait trouver ce message d’exception désagréable à lire. [#23208](https://github.com/ClickHouse/ClickHouse/pull/23208) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction des espaces manquants dans certains messages d’exception concernant le type `LowCardinality`. [#23207](https://github.com/ClickHouse/ClickHouse/pull/23207) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Certaines valeurs étaient formatées avec un alignement centré dans les cellules de tableau au format `Markdown`. Ce n’est plus le cas. [#23096](https://github.com/ClickHouse/ClickHouse/pull/23096) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suppression des détails non essentiels dans les suggestions de clickhouse-client. Cela clôt [#22158](https://github.com/ClickHouse/ClickHouse/issues/22158). [#23040](https://github.com/ClickHouse/ClickHouse/pull/23040) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du calcul du champ `bytes_allocated` dans system.dictionaries pour les dictionnaires sparse\_hashed. [#22867](https://github.com/ClickHouse/ClickHouse/pull/22867) ([Azat Khuzhin](https://github.com/azat)).
* Correction du comptage approximatif du nombre total de lignes lors de la lecture inversée depuis MergeTree. [#22726](https://github.com/ClickHouse/ClickHouse/pull/22726) ([Azat Khuzhin](https://github.com/azat)).
* Correction du cas où il était possible de configurer un dictionnaire avec une source ClickHouse pointant vers lui-même, ce qui entraînait une boucle infinie. Clôt [#14314](https://github.com/ClickHouse/ClickHouse/issues/14314). [#22479](https://github.com/ClickHouse/ClickHouse/pull/22479) ([Maksim Kita](https://github.com/kitaisreal)).

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

* Plusieurs correctifs pour les requêtes hedged. Correction d'une erreur `Can't initialize pipeline with empty pipe` pour les requêtes avec `GLOBAL IN/JOIN` lorsque le paramètre `use_hedged_requests` est activé. Corrige [#23431](https://github.com/ClickHouse/ClickHouse/issues/23431). [#23805](https://github.com/ClickHouse/ClickHouse/pull/23805) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). Correction d'une race condition dans les connexions hedged provoquant un crash. Cela corrige [#22161](https://github.com/ClickHouse/ClickHouse/issues/22161). [#22443](https://github.com/ClickHouse/ClickHouse/pull/22443) ([Kruglov Pavel](https://github.com/Avogar)). Correction d'un crash possible lorsqu'un `unknown packet` était reçu depuis une requête distante (avec `async_socket_for_remote` activé). Corrige [#21167](https://github.com/ClickHouse/ClickHouse/issues/21167). [#23309](https://github.com/ClickHouse/ClickHouse/pull/23309) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction du comportement où la désactivation du paramètre `input_format_with_names_use_header ` faisait ignorer toute l'entrée au format CSVWithNames. Cela corrige [#22406](https://github.com/ClickHouse/ClickHouse/issues/22406). [#23202](https://github.com/ClickHouse/ClickHouse/pull/23202) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d'un problème de timeout de connexion du pont JDBC distant. Clôt [#9609](https://github.com/ClickHouse/ClickHouse/issues/9609). [#23771](https://github.com/ClickHouse/ClickHouse/pull/23771) ([Maksim Kita](https://github.com/kitaisreal), [alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de la logique du chargement initial de `complex_key_hashed` si `update_field` est spécifié. Clôt [#23800](https://github.com/ClickHouse/ClickHouse/issues/23800). [#23824](https://github.com/ClickHouse/ClickHouse/pull/23824) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d'un crash lorsque `PREWHERE` et le filtre de ROW POLICY étaient tous deux appliqués avec un résultat vide. [#23763](https://github.com/ClickHouse/ClickHouse/pull/23763) ([Amos Bird](https://github.com/amosbird)).
* Évite l'erreur possible "Cannot schedule a task" (si une exception s'était produite) lors d'un INSERT dans Distributed. [#23744](https://github.com/ClickHouse/ClickHouse/pull/23744) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d'une exception lorsque les valeurs des deux échantillons sont strictement identiques dans la fonction d'agrégation `mannWhitneyUTest`. Cela corrige [#23646](https://github.com/ClickHouse/ClickHouse/issues/23646). [#23654](https://github.com/ClickHouse/ClickHouse/pull/23654) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d'une défaillance du serveur lorsqu'une insertion de données via HTTP provoquait une exception. Cela corrige [#23512](https://github.com/ClickHouse/ClickHouse/issues/23512). [#23643](https://github.com/ClickHouse/ClickHouse/pull/23643) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d'une mauvaise interprétation de certaines expressions `LIKE` avec des séquences d'échappement. [#23610](https://github.com/ClickHouse/ClickHouse/pull/23610) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du blocage des commandes de redémarrage / arrêt. Clôt [#20214](https://github.com/ClickHouse/ClickHouse/issues/20214). [#23552](https://github.com/ClickHouse/ClickHouse/pull/23552) ([filimonov](https://github.com/filimonov)).
* Correction du matcher `COLUMNS` dans le cas de plusieurs JOIN dans une requête SELECT. Clôt [#22736](https://github.com/ClickHouse/ClickHouse/issues/22736). [#23501](https://github.com/ClickHouse/ClickHouse/pull/23501) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un crash lors de la modification de la valeur par défaut d’une colonne lorsque cette colonne elle-même est utilisée comme paramètre de `ReplacingMergeTree`. [#23483](https://github.com/ClickHouse/ClickHouse/pull/23483) ([hexiaoting](https://github.com/hexiaoting)).
* Correction de cas limites dans les fusions verticales avec `ReplacingMergeTree`. Dans de rares cas, ils pouvaient entraîner des échecs de fusion avec des exceptions comme `Incomplete granules are not allowed while blocks are granules size`. [#23459](https://github.com/ClickHouse/ClickHouse/pull/23459) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un bug qui empêchait le cast d’un littéral de tableau vide vers un tableau de dimension supérieure à 1, par exemple `CAST([] AS Array(Array(String)))`. Clôt [#14476](https://github.com/ClickHouse/ClickHouse/issues/14476). [#23456](https://github.com/ClickHouse/ClickHouse/pull/23456) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un bug où la fonction d’agrégation `deltaSum` produisait un résultat incorrect après la réinitialisation du compteur. [#23437](https://github.com/ClickHouse/ClickHouse/pull/23437) ([Russ Frank](https://github.com/rf)).
* Correction de l’erreur `Cannot unlink file` lors de l’échec de création d’une table ReplicatedMergeTree avec une configuration multidisque. Cela clôt [#21755](https://github.com/ClickHouse/ClickHouse/issues/21755). [#23433](https://github.com/ClickHouse/ClickHouse/pull/23433) ([tavplubix](https://github.com/tavplubix)).
* Correction d’une génération incompatible d’expression constante lors du partition pruning basé sur des colonnes virtuelles. Cela corrige [https://github.com/ClickHouse/ClickHouse/pull/21401#discussion\&#95;r611888913](https://github.com/ClickHouse/ClickHouse/pull/21401#discussion\&#95;r611888913). [#23366](https://github.com/ClickHouse/ClickHouse/pull/23366) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un crash lorsque `join&#95;algorithm` est défini sur 'auto' et qu’un join est effectué avec un Dictionary. Clôt [#23002](https://github.com/ClickHouse/ClickHouse/issues/23002). [#23312](https://github.com/ClickHouse/ClickHouse/pull/23312) ([Vladimir](https://github.com/vdimir)).
* Ne pas assouplir les conditions NOT lors du partition pruning. Cela corrige [#23305](https://github.com/ClickHouse/ClickHouse/issues/23305) et [#21539](https://github.com/ClickHouse/ClickHouse/issues/21539). [#23310](https://github.com/ClickHouse/ClickHouse/pull/23310) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une race condition très rare lors du nettoyage en arrière-plan des anciens blocks. Cela pouvait empêcher la déduplication d’un block s’il était trop proche de la fin de la fenêtre de déduplication. [#23301](https://github.com/ClickHouse/ClickHouse/pull/23301) ([tavplubix](https://github.com/tavplubix)).
* Correction d’une race condition (distributed) très rare entre la création et la suppression de tables ReplicatedMergeTree. Cela pouvait provoquer des exceptions comme `node doesn't exist` lors d’une tentative de création d’une table répliquée. Corrige [#21419](https://github.com/ClickHouse/ClickHouse/issues/21419). [#23294](https://github.com/ClickHouse/ClickHouse/pull/23294) ([tavplubix](https://github.com/tavplubix)).
* Correction de la création via DDL d’un Dictionary à clé simple lorsque la primary key n’est pas le premier attribute. Corrige [#23236](https://github.com/ClickHouse/ClickHouse/issues/23236). [#23262](https://github.com/ClickHouse/ClickHouse/pull/23262) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction de la lecture via ODBC lorsqu’une table contient un grand nombre de noms de colonnes longs. Clôt [#8853](https://github.com/ClickHouse/ClickHouse/issues/8853). [#23215](https://github.com/ClickHouse/ClickHouse/pull/23215) ([Kseniia Sumarokova](https://github.com/kssenii)).
* MaterializeMySQL (fonctionnalité expérimentale) : correction de l’erreur `Not found column` lors d’une sélection depuis `MaterializeMySQL` avec une condition sur la colonne clé. Corrige [#22432](https://github.com/ClickHouse/ClickHouse/issues/22432). [#23200](https://github.com/ClickHouse/ClickHouse/pull/23200) ([tavplubix](https://github.com/tavplubix)).
* Correction de la gestion des alias lorsqu’une sous-requête était optimisée en constante. Corrige [#22924](https://github.com/ClickHouse/ClickHouse/issues/22924). Corrige [#10401](https://github.com/ClickHouse/ClickHouse/issues/10401). [#23191](https://github.com/ClickHouse/ClickHouse/pull/23191) ([Maksim Kita](https://github.com/kitaisreal)).
* Le serveur pouvait ne pas démarrer si le paramètre `data_type_default_nullable` était activé dans le profil `default` ; c’est désormais corrigé. Corrige [#22573](https://github.com/ClickHouse/ClickHouse/issues/22573). [#23185](https://github.com/ClickHouse/ClickHouse/pull/23185) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un crash à l’arrêt dû à un comptage incorrect des connexions en cours. [#23154](https://github.com/ClickHouse/ClickHouse/pull/23154) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de l’erreur `Table .inner_id... doesn't exist` lors d’une sélection depuis une vue matérialisée après l’avoir détachée d’une base de données Atomic puis rattachée. [#23047](https://github.com/ClickHouse/ClickHouse/pull/23047) ([tavplubix](https://github.com/tavplubix)).
* Correction de l’erreur `Cannot find column in ActionsDAG result` qui peut se produire si une sous-requête utilise `untuple`. Corrige [#22290](https://github.com/ClickHouse/ClickHouse/issues/22290). [#22991](https://github.com/ClickHouse/ClickHouse/pull/22991) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’utilisation de colonnes constantes de type `Map` avec des valeurs nullables. [#22939](https://github.com/ClickHouse/ClickHouse/pull/22939) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de `formatDateTime()` sur `DateTime64` et du spécificateur de format "%C" ; correction de `toDateTime64()` pour les grandes valeurs et une échelle non nulle. [#22937](https://github.com/ClickHouse/ClickHouse/pull/22937) ([Vasily Nemkov](https://github.com/Enmk)).
* Correction d’un crash lors de l’utilisation de `mannWhitneyUTest` et `rankCorr` avec des fonctions de fenêtre. Cela corrige [#22728](https://github.com/ClickHouse/ClickHouse/issues/22728). [#22876](https://github.com/ClickHouse/ClickHouse/pull/22876) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* LIVE VIEW (fonctionnalité expérimentale) : correction d’un blocage possible lors d’opérations concurrentes DROP/CREATE de TEMPORARY LIVE VIEW dans `TemporaryLiveViewCleaner`, [voir](https://gist.github.com/vzakaznikov/0c03195960fc86b56bfe2bc73a90019e). [#22858](https://github.com/ClickHouse/ClickHouse/pull/22858) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction du pushdown de `HAVING` lorsque la colonne de filtre est utilisée dans l’agrégation. [#22763](https://github.com/ClickHouse/ClickHouse/pull/22763) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de blocages possibles dans les requêtes ZooKeeper en cas d’exception OOM. Corrige [#22438](https://github.com/ClickHouse/ClickHouse/issues/22438). [#22684](https://github.com/ClickHouse/ClickHouse/pull/22684) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’attente des mutations sur plusieurs répliques pour les moteurs de table ReplicatedMergeTree. Auparavant, une requête de mutation/ALTER pouvait se terminer avant que la mutation ne soit réellement exécutée sur les autres répliques. [#22669](https://github.com/ClickHouse/ClickHouse/pull/22669) ([alesapin](https://github.com/alesapin)).
* Correction d’une exception pour Log avec des types imbriqués sans colonnes dans la clause SELECT. [#22654](https://github.com/ClickHouse/ClickHouse/pull/22654) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’attente illimitée pour les requêtes AWS auxiliaires. [#22594](https://github.com/ClickHouse/ClickHouse/pull/22594) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Correction d’un crash lorsque le client ferme la connexion trop tôt [#22579](https://github.com/ClickHouse/ClickHouse/issues/22579). [#22591](https://github.com/ClickHouse/ClickHouse/pull/22591) ([nvartolomei](https://github.com/nvartolomei)).
* Type de données `Map` (fonctionnalité expérimentale) : correction d’un formatage incorrect de la fonction `map` dans les requêtes distribuées. [#22588](https://github.com/ClickHouse/ClickHouse/pull/22588) ([foolchi](https://github.com/foolchi)).
* Correction de la désérialisation d’une chaîne vide sans saut de ligne à la fin du format TSV. Cela clôt [#20244](https://github.com/ClickHouse/ClickHouse/issues/20244). Contournement possible sans mise à jour de version : définir `input_format_null_as_default` sur zéro. Cette valeur était à zéro dans les anciennes versions. [#22527](https://github.com/ClickHouse/ClickHouse/pull/22527) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’une conversion erronée d’une colonne de type `LowCardinality` dans l’algorithme Merge Join. Clôt [#22386](https://github.com/ClickHouse/ClickHouse/issues/22386), clôt [#22388](https://github.com/ClickHouse/ClickHouse/issues/22388). [#22510](https://github.com/ClickHouse/ClickHouse/pull/22510) ([Vladimir](https://github.com/vdimir)).
* Un dépassement de buffer (en lecture) était possible dans l’index de texte intégral `tokenbf_v1`. Les octets excédentaires ne sont pas utilisés, mais l’opération de lecture peut entraîner un crash dans de rares cas. Cela clôt [#19233](https://github.com/ClickHouse/ClickHouse/issues/19233). [#22421](https://github.com/ClickHouse/ClickHouse/pull/22421) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ne pas limiter la taille des chunks HTTP. Corrige [#21907](https://github.com/ClickHouse/ClickHouse/issues/21907). [#22322](https://github.com/ClickHouse/ClickHouse/pull/22322) ([Ivan](https://github.com/abyss7)).
* Correction d’un bug entraînant une sous-agrégation des données lorsque `optimize_aggregation_in_order` est activé et qu’il y a beaucoup de parts dans la table. Améliore légèrement les performances de l’agrégation lorsque `optimize_aggregation_in_order` est activé. [#21889](https://github.com/ClickHouse/ClickHouse/pull/21889) ([Anton Popov](https://github.com/CurtizJ)).
* Vérifie si la table function view est utilisée comme colonne. Ceci complète #20350. [#21465](https://github.com/ClickHouse/ClickHouse/pull/21465) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’erreur "colonne inconnue" pour les tables avec le moteur `Merge` dans les requêtes avec `JOIN` et agrégation. Clôt [#18368](https://github.com/ClickHouse/ClickHouse/issues/18368), clôt [#22226](https://github.com/ClickHouse/ClickHouse/issues/22226). [#21370](https://github.com/ClickHouse/ClickHouse/pull/21370) ([Vladimir](https://github.com/vdimir)).
* Correction des collisions de noms dans l’optimisation de pushdown. Cela provoquait un filtrage `WHERE` incorrect après FULL JOIN. Clôt [#20497](https://github.com/ClickHouse/ClickHouse/issues/20497). [#20622](https://github.com/ClickHouse/ClickHouse/pull/20622) ([Vladimir](https://github.com/vdimir)).
* Correction d’un bug très rare où un insert avec quorum avec `quorum_parallel=1` n’est pas réellement "quorum" en raison de la déduplication. [#18215](https://github.com/ClickHouse/ClickHouse/pull/18215) ([filimonov](https://github.com/filimonov) - signalé, [alesapin](https://github.com/alesapin) - corrigé).

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

* Exécution des tests stateless en parallèle dans la CI. [#22300](https://github.com/ClickHouse/ClickHouse/pull/22300) ([alesapin](https://github.com/alesapin)).
* Simplification des paquets Debian. Cela corrige [#21698](https://github.com/ClickHouse/ClickHouse/issues/21698). [#22976](https://github.com/ClickHouse/ClickHouse/pull/22976) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de la prise en charge de la compilation de ClickHouse sur Apple M1. [#21639](https://github.com/ClickHouse/ClickHouse/pull/21639) ([changvvb](https://github.com/changvvb)).
* Correction de la compilation de ClickHouse Keeper pour macOS. [#22860](https://github.com/ClickHouse/ClickHouse/pull/22860) ([alesapin](https://github.com/alesapin)).
* Correction de certains tests sur la plateforme AArch64. [#22596](https://github.com/ClickHouse/ClickHouse/pull/22596) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de l'alignement des fonctions afin d'améliorer potentiellement les performances. [#21431](https://github.com/ClickHouse/ClickHouse/pull/21431) ([Danila Kutenin](https://github.com/danlark1)).
* Ajustement de certains tests pour produire des résultats identiques sur amd64 et aarch64 (qemu). Le résultat dépendait d'un comportement du CPU spécifique à l'implémentation. [#22590](https://github.com/ClickHouse/ClickHouse/pull/22590) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autorisation du profilage des requêtes uniquement sur x86\_64. Voir [#15174](https://github.com/ClickHouse/ClickHouse/issues/15174#issuecomment-812954965) et [#15638](https://github.com/ClickHouse/ClickHouse/issues/15638#issuecomment-703805337). Cela clôt [#15638](https://github.com/ClickHouse/ClickHouse/issues/15638). [#22580](https://github.com/ClickHouse/ClickHouse/pull/22580) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autorisation de la compilation avec une version non bundle de xz (lzma) en utilisant l'option CMake `USE_INTERNAL_XZ_LIBRARY=OFF`. [#22571](https://github.com/ClickHouse/ClickHouse/pull/22571) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Activation de `openldap` inclus dans le bundle sur `ppc64le` [#22487](https://github.com/ClickHouse/ClickHouse/pull/22487) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Désactivation des bibliothèques incompatibles (généralement spécifiques à la plateforme) sur `ppc64le` [#22475](https://github.com/ClickHouse/ClickHouse/pull/22475) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Ajout du test Jepsen dans la CI pour ClickHouse Keeper. [#22373](https://github.com/ClickHouse/ClickHouse/pull/22373) ([alesapin](https://github.com/alesapin)).
* Compilation de `jemalloc` avec prise en charge du [profilage du tas](https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Heap-Profiling). [#22834](https://github.com/ClickHouse/ClickHouse/pull/22834) ([nvartolomei](https://github.com/nvartolomei)).
* Évitement d'un UB dans les engines `*Log` lors de la libération du rwlock, due à une libération depuis un autre thread. [#22583](https://github.com/ClickHouse/ClickHouse/pull/22583) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un UB en libérant le rwlock de TinyLog depuis le même thread. [#22560](https://github.com/ClickHouse/ClickHouse/pull/22560) ([Azat Khuzhin](https://github.com/azat)).

<div id="clickhouse-release-214">
  ## Version 21.4 de ClickHouse
</div>

<div id="clickhouse-release-2141-2021-04-12">
  ### Version ClickHouse 21.4.1 2021-04-12
</div>

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

* `toStartOfIntervalFunction` alignera les intervalles horaires sur minuit (dans les versions précédentes, ils étaient alignés sur le début de l’époque Unix). Par exemple, `toStartOfInterval(x, INTERVAL 11 HOUR)` divisera chaque journée en trois intervalles : `00:00:00..10:59:59`, `11:00:00..21:59:59` et `22:00:00..23:59:59`. Ce comportement est plus adapté aux usages pratiques. Cela corrige [#9510](https://github.com/ClickHouse/ClickHouse/issues/9510). [#22060](https://github.com/ClickHouse/ClickHouse/pull/22060) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `Age` et `Precision` dans les configurations de rollup Graphite doivent augmenter d’une rétention à l’autre. Cette contrainte est désormais vérifiée, et une configuration incorrecte lève une exception. [#21496](https://github.com/ClickHouse/ClickHouse/pull/21496) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Correction de `cutToFirstSignificantSubdomainCustom()`/`firstSignificantSubdomainCustom()`, qui renvoyaient un résultat incorrect pour les domaines à 3 niveaux ou plus présents dans la liste personnalisée des domaines de premier niveau. Pour les domaines en entrée correspondant à ces domaines de premier niveau personnalisés, le domaine de troisième niveau était considéré comme le premier domaine significatif. Ce problème est désormais corrigé. Ce changement peut introduire une incompatibilité si la fonction est utilisée, par exemple, dans la clé de sharding. [#21946](https://github.com/ClickHouse/ClickHouse/pull/21946) ([Azat Khuzhin](https://github.com/azat)).
* La colonne `keys` de la table `system.dictionaries` a été remplacée par les colonnes `key.names` et `key.types`. Les colonnes `key.names`, `key.types`, `attribute.names`, `attribute.types` de la table `system.dictionaries` ne nécessitent pas que le dictionnaire soit chargé. [#21884](https://github.com/ClickHouse/ClickHouse/pull/21884) ([Maksim Kita](https://github.com/kitaisreal)).
* Désormais, les répliques qui traitent la commande `ALTER TABLE ATTACH PART[ITION]` recherchent dans leurs dossiers `detached/` avant de récupérer les données depuis d’autres répliques. Comme détail d’implémentation, une nouvelle commande `ATTACH_PART` est introduite dans le journal répliqué. Les parts sont recherchées et comparées à l’aide de leurs sommes de contrôle. [#18978](https://github.com/ClickHouse/ClickHouse/pull/18978) ([Mike Kot](https://github.com/myrrc)). **Remarque** :
  * Les requêtes `ATTACH PART[ITION]` peuvent ne pas fonctionner pendant la mise à niveau du cluster.
  * Il n’est pas possible de revenir à une ancienne version de ClickHouse après l’exécution d’une requête `ALTER ... ATTACH` dans la nouvelle version, car les anciens serveurs ne pourraient pas traiter l’entrée `ATTACH_PART` dans le journal répliqué.
* Dans cette version, un élément vide `<remote_url_allow_hosts></remote_url_allow_hosts>` bloquera tout accès aux hôtes distants, alors que dans les versions précédentes il ne faisait rien. Si vous souhaitez conserver l’ancien comportement et que vous avez un élément `remote_url_allow_hosts` vide dans le fichier de configuration, supprimez-le. [#20058](https://github.com/ClickHouse/ClickHouse/pull/20058) ([Vladimir Chebotarev](https://github.com/excitoon)).

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

* Extension de la plage de `DateTime64` pour prendre en charge les dates de 1925 à 2283. Prise en charge améliorée de `DateTime` autour de la date zéro (`1970-01-01`). [#9404](https://github.com/ClickHouse/ClickHouse/pull/9404) ([alexey-milovidov](https://github.com/alexey-milovidov), [Vasily Nemkov](https://github.com/Enmk)). Toutes les fonctions de date et d’heure ne fonctionnent pas encore sur cette plage de dates étendue.
* Ajout de la prise en charge de l’authentification Kerberos pour les utilisateurs préconfigurés et les requêtes HTTP (GSS-SPNEGO). [#14995](https://github.com/ClickHouse/ClickHouse/pull/14995) ([Denis Glazachev](https://github.com/traceon)).
* Ajout du paramètre `prefer_column_name_to_alias` pour utiliser les noms de colonnes d’origine au lieu des alias. Cela est nécessaire pour mieux respecter les règles d’alias courantes des bases de données. Cela concerne [#9715](https://github.com/ClickHouse/ClickHouse/issues/9715) et [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#22044](https://github.com/ClickHouse/ClickHouse/pull/22044) ([Amos Bird](https://github.com/amosbird)).
* Ajout des fonctions `dictGetChildren(dictionary, key)`, `dictGetDescendants(dictionary, key, level)`. La fonction `dictGetChildren` renvoie tous les enfants sous la forme d’un tableau d’index. Il s’agit d’une transformation inverse de `dictGetHierarchy`. La fonction `dictGetDescendants` renvoie tous les descendants comme si `dictGetChildren` avait été appliquée récursivement `level` fois. Une valeur `level` égale à zéro est équivalente à l’infini. Closes [#14656](https://github.com/ClickHouse/ClickHouse/issues/14656). [#22096](https://github.com/ClickHouse/ClickHouse/pull/22096) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la source de dictionnaire `executable_pool`. Close [#14528](https://github.com/ClickHouse/ClickHouse/issues/14528). [#21321](https://github.com/ClickHouse/ClickHouse/pull/21321) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction de table `dictionary`. Elle fonctionne de la même manière que le moteur `Dictionary`. Closes [#21560](https://github.com/ClickHouse/ClickHouse/issues/21560). [#21910](https://github.com/ClickHouse/ClickHouse/pull/21910) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge du type `Nullable` pour l’attribut `PolygonDictionary`. [#21890](https://github.com/ClickHouse/ClickHouse/pull/21890) ([Maksim Kita](https://github.com/kitaisreal)).
* Les fonctions `dictGet`, `dictHas` utilisent le nom de la base de données courante s’il n’est pas spécifié pour les dictionnaires créés avec DDL. Closes [#21632](https://github.com/ClickHouse/ClickHouse/issues/21632). [#21859](https://github.com/ClickHouse/ClickHouse/pull/21859) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction `dictGetOrNull`. Elle fonctionne comme `dictGet`, mais renvoie `Null` si la clé n’a pas été trouvée dans le dictionnaire. Closes [#22375](https://github.com/ClickHouse/ClickHouse/issues/22375). [#22413](https://github.com/ClickHouse/ClickHouse/pull/22413) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la mise à jour asynchrone dans les dictionnaires `ComplexKeyCache`, `SSDCache`, `SSDComplexKeyCache`. Ajout de la prise en charge du type `Nullable` dans les dictionnaires `Cache`, `ComplexKeyCache`, `SSDCache`, `SSDComplexKeyCache`. Ajout de la prise en charge de la récupération de plusieurs attributs avec les fonctions `dictGet`, `dictGetOrDefault`. Fixes [#21517](https://github.com/ClickHouse/ClickHouse/issues/21517). [#20595](https://github.com/ClickHouse/ClickHouse/pull/20595) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge de la fonction `dictHas` pour `RangeHashedDictionary`. Fixes [#6680](https://github.com/ClickHouse/ClickHouse/issues/6680). [#19816](https://github.com/ClickHouse/ClickHouse/pull/19816) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajoute la fonction `timezoneOf`, qui renvoie le nom du fuseau horaire des types de données `DateTime` ou `DateTime64`. Cela ne résout pas [#9959](https://github.com/ClickHouse/ClickHouse/issues/9959). Corrige les incohérences dans les noms de fonctions : ajoute les alias `timezone` et `timeZone`, ainsi que `toTimezone` et `toTimeZone`, et `timezoneOf` et `timeZoneOf`. [#22001](https://github.com/ClickHouse/ClickHouse/pull/22001) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajoute la nouvelle clause optionnelle `GRANTEES` pour les commandes `CREATE/ALTER USER`. Elle spécifie les utilisateurs ou rôles autorisés à recevoir des grants de cet utilisateur, à condition que celui-ci dispose également de tous les droits d’accès requis avec l’option grant. Par défaut, `GRANTEES ANY` est utilisé, ce qui signifie qu’un utilisateur disposant de l’option grant peut accorder des droits à n’importe qui. Syntaxe : `CREATE USER ... GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]`. [#21641](https://github.com/ClickHouse/ClickHouse/pull/21641) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajoute la nouvelle colonne `slowdowns_count` à `system.clusters`. Lors de l’utilisation de requêtes hedged, elle indique combien de fois nous sommes passés à une autre replica parce que celle-ci répondait lentement. Affiche également la valeur réelle de `errors_count` dans `system.clusters`. [#21480](https://github.com/ClickHouse/ClickHouse/pull/21480) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute la colonne virtuelle `_partition_id` pour les engines `MergeTree*`. Permet d’élaguer les partitions par `_partition_id`. Ajoute la fonction `partitionID()` pour calculer la chaîne d’identifiant de partition. [#21401](https://github.com/ClickHouse/ClickHouse/pull/21401) ([Amos Bird](https://github.com/amosbird)).
* Ajoute la fonction `isIPAddressInRange` pour tester si une adresse IPv4 ou IPv6 est contenue dans un préfixe réseau CIDR donné. [#21329](https://github.com/ClickHouse/ClickHouse/pull/21329) ([PHO](https://github.com/depressed-pho)).
* Ajout de la nouvelle commande SQL `ALTER TABLE 'table_name' UNFREEZE [PARTITION 'part_expr'] WITH NAME 'backup_name'`. Cette commande est nécessaire pour supprimer correctement les partitions 'gelées' de tous les disks. [#21142](https://github.com/ClickHouse/ClickHouse/pull/21142) ([Pavel Kovalenko](https://github.com/Jokser)).
* Prend en charge la conversion implicite du type de clé pour JOIN. [#19885](https://github.com/ClickHouse/ClickHouse/pull/19885) ([Vladimir](https://github.com/vdimir)).

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

* Prise en charge de la frame `RANGE OFFSET` (pour les window functions) pour les types à virgule flottante. Ajout des window functions `lagInFrame`/`leadInFrame`, analogues à `lag`/`lead`, mais qui respectent la frame de la window. Elles sont identiques lorsque la frame est `between unbounded preceding and unbounded following`. Cela résout [#5485](https://github.com/ClickHouse/ClickHouse/issues/5485). [#21895](https://github.com/ClickHouse/ClickHouse/pull/21895) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Réplication zero-copy pour `ReplicatedMergeTree` sur stockage S3. [#16240](https://github.com/ClickHouse/ClickHouse/pull/16240) ([ianton-ru](https://github.com/ianton-ru)).
* Ajout de la possibilité de migrer un S3 disk existant vers le schéma prenant en charge la sauvegarde et la restauration. [#22070](https://github.com/ClickHouse/ClickHouse/pull/22070) ([Pavel Kovalenko](https://github.com/Jokser)).

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

* Prise en charge du formatage en parallèle dans `clickhouse-local` et partout ailleurs. [#21630](https://github.com/ClickHouse/ClickHouse/pull/21630) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Prise en charge de l'analyse en parallèle pour les formats `CSVWithNames` et `TSVWithNames`. Cela corrige [#21085](https://github.com/ClickHouse/ClickHouse/issues/21085). [#21149](https://github.com/ClickHouse/ClickHouse/pull/21149) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Activation de la lecture via mmap IO pour les plages de fichiers à partir de 64 MiB (paramètre `min_bytes_to_use_mmap_io`). Cela peut entraîner une amélioration modérée des performances. [#22326](https://github.com/ClickHouse/ClickHouse/pull/22326) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout d'un cache pour les fichiers lus avec le paramètre `min_bytes_to_use_mmap_io`. Cela améliore significativement les performances (2x ou plus) lorsque la valeur du paramètre est faible, en évitant les appels fréquents à mmap/munmap et les défauts de page qui en résultent. Notez que mmap IO présente des inconvénients majeurs qui le rendent moins fiable en production (par exemple, blocage ou SIGBUS sur des disques défectueux ; utilisation mémoire moins maîtrisable). Néanmoins, il donne de bons résultats dans les benchmarks. [#22206](https://github.com/ClickHouse/ClickHouse/pull/22206) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Évite les copies de données inutiles lors de l'utilisation du codec `NONE`. Veuillez noter que le codec `NONE` est globalement peu utile - il est recommandé de toujours utiliser la compression (`LZ4` est utilisé par défaut). Contrairement à une idée répandue, désactiver la compression n'améliore pas forcément les performances (l'effet inverse est possible). Le codec `NONE` est utile dans certains cas : - lorsque les données ne sont pas compressibles ; - pour des benchmarks synthétiques. [#22145](https://github.com/ClickHouse/ClickHouse/pull/22145) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `GROUP BY` plus rapide avec une faible valeur de `max_rows_to_group_by` et `group_by_overflow_mode='any'`. [#21856](https://github.com/ClickHouse/ClickHouse/pull/21856) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Optimisation des performances des requêtes du type `SELECT ... FINAL ... WHERE`. Désormais, dans les requêtes avec `FINAL`, il est possible de déplacer vers `PREWHERE` les colonnes appartenant à la clé de tri. [#21830](https://github.com/ClickHouse/ClickHouse/pull/21830) ([foolchi](https://github.com/foolchi)).
* Amélioration des performances grâce au remplacement de `memcpy` par une autre implémentation. Cela corrige [#18583](https://github.com/ClickHouse/ClickHouse/issues/18583). [#21520](https://github.com/ClickHouse/ClickHouse/pull/21520) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration des performances de l'agrégation dans l'ordre de la clé de tri (avec le paramètre `optimize_aggregation_in_order` activé). [#19401](https://github.com/ClickHouse/ClickHouse/pull/19401) ([Anton Popov](https://github.com/CurtizJ)).

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

* Ajout d’un pool de connexions pour le moteur de table/base de données PostgreSQL et la source de dictionnaire. Devrait corriger [#21444](https://github.com/ClickHouse/ClickHouse/issues/21444). [#21839](https://github.com/ClickHouse/ClickHouse/pull/21839) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge d’un schéma de table non par défaut pour le moteur de stockage/la fonction de table postgres. Clôt [#21701](https://github.com/ClickHouse/ClickHouse/issues/21701). [#21711](https://github.com/ClickHouse/ClickHouse/pull/21711) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge de la priorité des répliques pour la source de dictionnaire postgres. [#21710](https://github.com/ClickHouse/ClickHouse/pull/21710) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Introduction d’un nouveau paramètre MergeTree, `min_bytes_to_rebalance_partition_over_jbod`, qui permet d’attribuer les nouvelles parts aux différents disques d’un volume JBOD de manière équilibrée. [#16481](https://github.com/ClickHouse/ClickHouse/pull/16481) ([Amos Bird](https://github.com/amosbird)).
* Ajout des valeurs `Grant`, `Revoke` et `System` dans la colonne `query_kind` pour les queries correspondantes dans `system.query_log`. [#21102](https://github.com/ClickHouse/ClickHouse/pull/21102) ([Vasily Nemkov](https://github.com/Enmk)).
* Permet de personnaliser les timeouts des connexions HTTP utilisées pour la réplication indépendamment des autres timeouts HTTP. [#20088](https://github.com/ClickHouse/ClickHouse/pull/20088) ([nvartolomei](https://github.com/nvartolomei)).
* Message d’exception amélioré côté client en cas d’exception pendant que le server écrit des blocks. Dans les versions précédentes, le client pouvait recevoir un message trompeur comme `Data compressed with different methods`. [#22427](https://github.com/ClickHouse/ClickHouse/pull/22427) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de l’error `Directory tmp_fetch_XXX already exists`, qui pouvait se produire après l’échec de la récupération d’une part. Supprime le répertoire temporaire de fetch s’il existe déjà. Corrige [#14197](https://github.com/ClickHouse/ClickHouse/issues/14197). [#22411](https://github.com/ClickHouse/ClickHouse/pull/22411) ([nvartolomei](https://github.com/nvartolomei)).
* Correction d’un rapport MSan pour la fonction `range` avec un argument `UInt256` (la prise en charge des grands entiers est Experimental). Cela clôt [#22157](https://github.com/ClickHouse/ClickHouse/issues/22157). [#22387](https://github.com/ClickHouse/ClickHouse/pull/22387) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de la colonne `current_database` à la table `system.processes`. Elle contient la base de données courante de la query. [#22365](https://github.com/ClickHouse/ClickHouse/pull/22365) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Ajout de fonctionnalités de recherche/navigation dans l’historique insensibles à la casse, ainsi que de déplacement par sous-mots, à `clickhouse-client`. [#22105](https://github.com/ClickHouse/ClickHouse/pull/22105) ([Amos Bird](https://github.com/amosbird)).
* Si un tuple de NULL, par exemple `(NULL, NULL)`, se trouve à gauche de l’opérateur `IN`, avec des tuples de valeurs non-NULL à droite, par exemple `SELECT (NULL, NULL) IN ((0, 0), (3, 1))`, retourne 0 au lieu de lever une exception pour types incompatibles. L’expression peut aussi apparaître en raison de l’optimisation de quelque chose comme `SELECT (NULL, NULL) = (8, 0) OR (NULL, NULL) = (3, 2) OR (NULL, NULL) = (0, 0) OR (NULL, NULL) = (3, 1)`. Cela clôt [#22017](https://github.com/ClickHouse/ClickHouse/issues/22017). [#22063](https://github.com/ClickHouse/ClickHouse/pull/22063) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de la version utilisée de simdjson vers 0.9.1. Cela corrige [#21984](https://github.com/ClickHouse/ClickHouse/issues/21984). [#22057](https://github.com/ClickHouse/ClickHouse/pull/22057) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout d'alias insensibles à la casse pour les fonctions `CONNECTION_ID()` et `VERSION()`. Cela corrige [#22028](https://github.com/ClickHouse/ClickHouse/issues/22028). [#22042](https://github.com/ClickHouse/ClickHouse/pull/22042) ([Eugene Klimov](https://github.com/Slach)).
* Ajout de l'option `strict_increase` à la fonction `windowFunnel` pour ne calculer chaque événement qu'une seule fois (résout [#21835](https://github.com/ClickHouse/ClickHouse/issues/21835)). [#22025](https://github.com/ClickHouse/ClickHouse/pull/22025) ([Vladimir](https://github.com/vdimir)).
* Si la clé de partition d'une table `MergeTree` n'inclut pas de colonnes `Date` ou `DateTime`, mais inclut exactement une colonne `DateTime64`, exposition de ses valeurs dans les colonnes `min_time` et `max_time` des tables `system.parts` et `system.parts_columns`. Ajout des colonnes `min_time` et `max_time` à la table `system.parts_columns` (il y avait une incohérence avec la table `system.parts`). Cela clôt [#18244](https://github.com/ClickHouse/ClickHouse/issues/18244). [#22011](https://github.com/ClickHouse/ClickHouse/pull/22011) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge du paramètre `replication_alter_partitions_sync=1` dans `clickhouse-copier` pour déplacer des partitions d'une table auxiliaire vers la destination. Réduction des délais d'expiration par défaut. Corrige [#21911](https://github.com/ClickHouse/ClickHouse/issues/21911). [#21912](https://github.com/ClickHouse/ClickHouse/pull/21912) ([turbo jason](https://github.com/songenjie)).
* Affichage du chemin vers le répertoire de données des tables `EmbeddedRocksDB` dans les tables système. [#21903](https://github.com/ClickHouse/ClickHouse/pull/21903) ([tavplubix](https://github.com/tavplubix)).
* Ajout de l'événement de profil `HedgedRequestsChangeReplica`, avec passage du délai d'expiration de lecture des données de la seconde à la milliseconde. [#21886](https://github.com/ClickHouse/ClickHouse/pull/21886) ([Kruglov Pavel](https://github.com/Avogar)).
* DiskS3 (fonctionnalité expérimentale en cours de développement). Correction d'un bug qui empêchait de déplacer un répertoire si la destination n'était pas vide et qu'un disque de cache était utilisé. [#21837](https://github.com/ClickHouse/ClickHouse/pull/21837) ([Pavel Kovalenko](https://github.com/Jokser)).
* Amélioration du formatage des types de données `Array` et `Map` dans l'interface web. [#21798](https://github.com/ClickHouse/ClickHouse/pull/21798) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mise à jour des clusters uniquement si leur configuration a été modifiée. [#21685](https://github.com/ClickHouse/ClickHouse/pull/21685) ([Kruglov Pavel](https://github.com/Avogar)).
* Propagation des paramètres de requête et de session pour les requêtes DDL distribuées. Définissez `distributed_ddl_entry_format_version` sur 2 pour l'activer. Ajout du paramètre `distributed_ddl_output_mode`. Modes pris en charge : `none`, `throw` (par défaut), `null_status_on_timeout` et `never_throw`. Corrections et améliorations diverses pour le moteur de base de données `Replicated`. [#21535](https://github.com/ClickHouse/ClickHouse/pull/21535) ([tavplubix](https://github.com/tavplubix)).
* Si `PODArray` était instancié avec une taille d'élément qui n'était ni une fraction ni un multiple de 16, un dépassement de tampon était possible. Aucun bug de ce type n'existe dans les versions actuelles. [#21533](https://github.com/ClickHouse/ClickHouse/pull/21533) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout des colonnes `last_error_time`/`last_error_message`/`last_error_stacktrace`/`remote` dans `system.errors`. [#21529](https://github.com/ClickHouse/ClickHouse/pull/21529) ([Azat Khuzhin](https://github.com/azat)).
* Ajout des alias `simpleJSONExtract/simpleJSONHas` pour `visitParam/visitParamExtract{UInt, Int, Bool, Float, Raw, String}`. Corrige #21383. [#21519](https://github.com/ClickHouse/ClickHouse/pull/21519) ([fastio](https://github.com/fastio)).
* Ajout du paramètre `optimize_skip_unused_shards_limit` pour limiter le nombre de valeurs de clé de sharding pour `optimize_skip_unused_shards`. [#21512](https://github.com/ClickHouse/ClickHouse/pull/21512) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration de `clickhouse-format` pour ne pas lever d’exception lorsqu’il y a des espaces en trop ou un commentaire après la dernière requête, et pour lever plus tôt une exception accompagnée d’un message explicite lors du formatage de `ASTInsertQuery` avec des données. [#21311](https://github.com/ClickHouse/ClickHouse/pull/21311) ([flynn](https://github.com/ucasFL)).
* Amélioration de la prise en charge des clés entières dans le type de données `Map`. [#21157](https://github.com/ClickHouse/ClickHouse/pull/21157) ([Anton Popov](https://github.com/CurtizJ)).
* `MaterializeMySQL` : tentative de reconnexion à MySQL si la connexion est perdue. [#20961](https://github.com/ClickHouse/ClickHouse/pull/20961) ([Håvard Kvålen](https://github.com/havardk)).
* Prise en charge d’un plus grand nombre de cas de réécriture de `CROSS JOIN` en `INNER JOIN`. [#20392](https://github.com/ClickHouse/ClickHouse/pull/20392) ([Vladimir](https://github.com/vdimir)).
* Ne crée plus de parts vides lors d’un INSERT lorsque le paramètre `optimize_on_insert` est activé. Correction de [#20304](https://github.com/ClickHouse/ClickHouse/issues/20304). [#20387](https://github.com/ClickHouse/ClickHouse/pull/20387) ([Kruglov Pavel](https://github.com/Avogar)).
* `MaterializeMySQL` : ajout d’un index minmax de skipping pour la colonne `_version`. [#20382](https://github.com/ClickHouse/ClickHouse/pull/20382) ([Stig Bakken](https://github.com/stigsb)).
* Ajout de l’option `--backslash` à `clickhouse-format`, qui permet d’ajouter une barre oblique inverse à la fin de chaque ligne de la requête formatée. [#21494](https://github.com/ClickHouse/ClickHouse/pull/21494) ([flynn](https://github.com/ucasFL)).
* Désormais, ClickHouse ne lèvera plus d’exception `LOGICAL_ERROR` lorsqu’on essaie d’appliquer une mutation à une part déjà couverte. Correction de [#22013](https://github.com/ClickHouse/ClickHouse/issues/22013). [#22291](https://github.com/ClickHouse/ClickHouse/pull/22291) ([alesapin](https://github.com/alesapin)).

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

* Supprime le socket de l’epoll avant d’annuler le récepteur de paquets dans `HedgedConnections` afin d’éviter une possible condition de concurrence. Corrige [#22161](https://github.com/ClickHouse/ClickHouse/issues/22161). [#22443](https://github.com/ClickHouse/ClickHouse/pull/22443) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute la comptabilisation mémoire (manquante) dans les procédures d’analyse syntaxique en parallèle. Dans les versions précédentes, un OOM était possible lorsque le jeu de résultats contenait de très gros blocs de données. Cela clôt [#22008](https://github.com/ClickHouse/ClickHouse/issues/22008). [#22425](https://github.com/ClickHouse/ClickHouse/pull/22425) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige une exception pouvant se produire lorsque `SELECT` a une condition `WHERE` constante et que la table source a des colonnes dont le nom est un chiffre. [#22270](https://github.com/ClickHouse/ClickHouse/pull/22270) ([LiuNeng](https://github.com/liuneng1994)).
* Corrige l’annulation de requête avec `use_hedged_requests=0` et `async_socket_for_remote=1`. [#22183](https://github.com/ClickHouse/ClickHouse/pull/22183) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une exception non interceptée dans `InterserverIOHTTPHandler`. [#22146](https://github.com/ClickHouse/ClickHouse/pull/22146) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le point d’entrée Docker lorsque `http_port` n’est pas présent dans la configuration. [#22132](https://github.com/ClickHouse/ClickHouse/pull/22132) ([Ewout](https://github.com/devwout)).
* Corrige l’erreur `Invalid number of rows in Chunk` dans `JOIN` avec `TOTALS` et `arrayJoin`. Clôt [#19303](https://github.com/ClickHouse/ClickHouse/issues/19303). [#22129](https://github.com/ClickHouse/ClickHouse/pull/22129) ([Vladimir](https://github.com/vdimir)).
* Corrige le nom du pool de threads d’arrière-plan utilisé pour récupérer les messages de Kafka. Le moteur Kafka avec ce pool de threads défectueux ne consommait pas les messages de la file. [#22122](https://github.com/ClickHouse/ClickHouse/pull/22122) ([fastio](https://github.com/fastio)).
* Corrige l’attente des requêtes `OPTIMIZE` et `ALTER` pour les moteurs de table `ReplicatedMergeTree`. Désormais, la requête ne restera pas bloquée lorsque la table a été détachée ou redémarrée. [#22118](https://github.com/ClickHouse/ClickHouse/pull/22118) ([alesapin](https://github.com/alesapin)).
* Désactive `async_socket_for_remote`/`use_hedged_requests` pour les noyaux Linux bogués. [#22109](https://github.com/ClickHouse/ClickHouse/pull/22109) ([Azat Khuzhin](https://github.com/azat)).
* Point d’entrée Docker : évite le `chown` de `.` lorsque `LOG_PATH` est vide. Clôt [#22100](https://github.com/ClickHouse/ClickHouse/issues/22100). [#22102](https://github.com/ClickHouse/ClickHouse/pull/22102) ([filimonov](https://github.com/filimonov)).
* La fonction `decrypt` ne vérifiait pas la taille minimale des données chiffrées en mode `AEAD`. Cela clôt [#21897](https://github.com/ClickHouse/ClickHouse/issues/21897). [#22064](https://github.com/ClickHouse/ClickHouse/pull/22064) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Dans de rares cas, une fusion pour `CollapsingMergeTree` peut créer un granule avec `index_granularity + 1` lignes. De ce fait, la vérification interne, ajoutée dans [#18928](https://github.com/ClickHouse/ClickHouse/issues/18928) (affecte 21.2 et 21.3), peut échouer avec l’erreur `Incomplete granules are not allowed while blocks are granules size`. Cette erreur empêchait la fusion des parties. [#21976](https://github.com/ClickHouse/ClickHouse/pull/21976) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Retour de [#15454](https://github.com/ClickHouse/ClickHouse/issues/15454), qui pouvait entraîner une augmentation significative de l’utilisation de la mémoire lors du chargement de dictionnaires externes de type haché. Cela clôt [#21935](https://github.com/ClickHouse/ClickHouse/issues/21935). [#21948](https://github.com/ClickHouse/ClickHouse/pull/21948) ([Maksim Kita](https://github.com/kitaisreal)).
* Empêche les chevauchements de connexions hedged (erreur `Unknown packet 9 from server`). [#21941](https://github.com/ClickHouse/ClickHouse/pull/21941) ([Azat Khuzhin](https://github.com/azat)).
* Corrige, dans certains cas, la lecture des requêtes HTTP POST avec le type de contenu "multipart/form-data". [#21936](https://github.com/ClickHouse/ClickHouse/pull/21936) ([Ivan](https://github.com/abyss7)).
* Corrige des résultats `ORDER BY` incorrects lorsqu’une requête contient des window functions et que l’optimisation de lecture dans l’ordre de la primary key est appliquée. Corrige [#21828](https://github.com/ClickHouse/ClickHouse/issues/21828). [#21915](https://github.com/ClickHouse/ClickHouse/pull/21915) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Corrige un interblocage lors de la première exécution d’un modèle catboost. Clôt [#13832](https://github.com/ClickHouse/ClickHouse/issues/13832). [#21844](https://github.com/ClickHouse/ClickHouse/pull/21844) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un résultat de requête incorrect (et un crash possible) pouvant survenir lorsqu’une condition `WHERE` ou `HAVING` est poussée avant `GROUP BY`. Corrige [#21773](https://github.com/ClickHouse/ClickHouse/issues/21773). [#21841](https://github.com/ClickHouse/ClickHouse/pull/21841) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Améliore la gestion des erreurs et la journalisation dans `WriteBufferFromS3`. [#21836](https://github.com/ClickHouse/ClickHouse/pull/21836) ([Pavel Kovalenko](https://github.com/Jokser)).
* Corrige des crashs possibles dans les aggregate functions avec le combinator `Distinct`, lors de l’utilisation de la two-level aggregation. Il s’agit d’un correctif complémentaire à [#18365](https://github.com/ClickHouse/ClickHouse/pull/18365). Ne peut être reproduit qu’en environnement de production. [#21818](https://github.com/ClickHouse/ClickHouse/pull/21818) ([Amos Bird](https://github.com/amosbird)).
* Corrige l’index analysis des scalar subquery. Cela corrige [#21717](https://github.com/ClickHouse/ClickHouse/issues/21717), introduit dans [#18896](https://github.com/ClickHouse/ClickHouse/pull/18896). [#21766](https://github.com/ClickHouse/ClickHouse/pull/21766) ([Amos Bird](https://github.com/amosbird)).
* Corrige un bug dans les table engines `ReplicatedMerge` lorsque la requête `ALTER MODIFY COLUMN` ne modifie pas le type d’une column `Decimal` si sa taille (32 bits ou 64 bits) reste inchangée. [#21728](https://github.com/ClickHouse/ClickHouse/pull/21728) ([alesapin](https://github.com/alesapin)).
* Corrige une attente infinie possible lorsque `OPTIMIZE` et `DROP` sont exécutés concurremment sur `ReplicatedMergeTree`. [#21716](https://github.com/ClickHouse/ClickHouse/pull/21716) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la fonction `arrayElement` avec le type `Map` pour les arguments entiers constants. [#21699](https://github.com/ClickHouse/ClickHouse/pull/21699) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un SIGSEGV sur des attributes inexistants de `ip_trie` avec `access_to_key_from_attributes`. [#21692](https://github.com/ClickHouse/ClickHouse/pull/21692) ([Azat Khuzhin](https://github.com/azat)).
* Le server n’accepte désormais les connections qu’après l’initialisation de `DDLWorker` et des dictionnaires. [#21676](https://github.com/ClickHouse/ClickHouse/pull/21676) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la conversion de type pour les clés des tables de type `Join` (cela provoquait auparavant un SIGSEGV). [#21646](https://github.com/ClickHouse/ClickHouse/pull/21646) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’annulation des requêtes distribuées (par exemple, un simple select sur plusieurs shards avec limit, c.-à-d. `select * from remote('127.{2,3}', system.numbers) limit 100`) avec `async_socket_for_remote=1`. [#21643](https://github.com/ClickHouse/ClickHouse/pull/21643) ([Azat Khuzhin](https://github.com/azat)).
* Correction de `fsync_part_directory` pour la fusion horizontale. [#21642](https://github.com/ClickHouse/ClickHouse/pull/21642) ([Azat Khuzhin](https://github.com/azat)).
* Suppression des colonnes inconnues de la table jointe dans `WHERE` pour les requêtes vers des moteurs de base de données externes (MySQL, PostgreSQL). ferme [#14614](https://github.com/ClickHouse/ClickHouse/issues/14614), ferme [#19288](https://github.com/ClickHouse/ClickHouse/issues/19288) (dup), ferme [#19645](https://github.com/ClickHouse/ClickHouse/issues/19645) (dup). [#21640](https://github.com/ClickHouse/ClickHouse/pull/21640) ([Vladimir](https://github.com/vdimir)).
* `std::terminate` était appelé en cas d’erreur lors de l’écriture de données dans S3. [#21624](https://github.com/ClickHouse/ClickHouse/pull/21624) ([Vladimir](https://github.com/vdimir)).
* Correction de l’erreur possible `Cannot find column` lorsque `optimize_skip_unused_shards` est activé et qu’aucun shard n’est utilisé. [#21579](https://github.com/ClickHouse/ClickHouse/pull/21579) ([Azat Khuzhin](https://github.com/azat)).
* Si une query comporte une condition `WHERE` constante et que le paramètre `optimize_skip_unused_shards` est activé, tous les shards peuvent être ignorés et la query peut renvoyer à tort un résultat vide. [#21550](https://github.com/ClickHouse/ClickHouse/pull/21550) ([Amos Bird](https://github.com/amosbird)).
* Correction du fait que la fonction de table `clusterAllReplicas` renvoyait une valeur `_shard_num` incorrecte. ferme [#21481](https://github.com/ClickHouse/ClickHouse/issues/21481). [#21498](https://github.com/ClickHouse/ClickHouse/pull/21498) ([flynn](https://github.com/ucasFL)).
* Correction du fait que la table S3 conservait d’anciens identifiants après une mise à jour de la configuration. [#21457](https://github.com/ClickHouse/ClickHouse/pull/21457) ([Grigory Pervakov](https://github.com/GrigoryPervakov)).
* Correction d’une condition de concurrence sur l’objet SSL dans `SecureSocket` de Poco. [#21456](https://github.com/ClickHouse/ClickHouse/pull/21456) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction de l’analyse du format `Avro` pour `Kafka`. Corrige [#21437](https://github.com/ClickHouse/ClickHouse/issues/21437). [#21438](https://github.com/ClickHouse/ClickHouse/pull/21438) ([Ilya Golshtein](https://github.com/ilejn)).
* Correction des timeouts de réception et d’envoi, ainsi que de la lecture non bloquante sur le socket sécurisé. [#21429](https://github.com/ClickHouse/ClickHouse/pull/21429) ([Kruglov Pavel](https://github.com/Avogar)).
* Le flag `force_drop_table` ne fonctionnait pas pour `MATERIALIZED VIEW` ; c’est corrigé. Corrige [#18943](https://github.com/ClickHouse/ClickHouse/issues/18943). [#20626](https://github.com/ClickHouse/ClickHouse/pull/20626) ([tavplubix](https://github.com/tavplubix)).
* Correction des collisions de noms dans `PredicateRewriteVisitor`. Cela provoquait un filtrage `WHERE` incorrect après une jointure complète. Ferme [#20497](https://github.com/ClickHouse/ClickHouse/issues/20497). [#20622](https://github.com/ClickHouse/ClickHouse/pull/20622) ([Vladimir](https://github.com/vdimir)).

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

* Ajout de tests [Jepsen](https://github.com/jepsen-io/jepsen) pour ClickHouse Keeper. [#21677](https://github.com/ClickHouse/ClickHouse/pull/21677) ([alesapin](https://github.com/alesapin)).
* Exécution des tests stateless en parallèle dans la CI. Dépend de [#22181](https://github.com/ClickHouse/ClickHouse/issues/22181). [#22300](https://github.com/ClickHouse/ClickHouse/pull/22300) ([alesapin](https://github.com/alesapin)).
* Activation de la vérification de statut pour l’exécution CI de [SQLancer](https://github.com/sqlancer/sqlancer). [#22015](https://github.com/ClickHouse/ClickHouse/pull/22015) ([Ilya Yatsishin](https://github.com/qoega)).
* Divers préparatifs pour les builds PowerPC : activation d’OpenLDAP embarqué sur `ppc64le`. [#22487](https://github.com/ClickHouse/ClickHouse/pull/22487) ([Kfir Itzhak](https://github.com/mastertheknife)). Activation de la compilation sur `ppc64le` avec Clang. [#22476](https://github.com/ClickHouse/ClickHouse/pull/22476) ([Kfir Itzhak](https://github.com/mastertheknife)). Correction de la compilation de Boost sur `ppc64le`. [#22474](https://github.com/ClickHouse/ClickHouse/pull/22474) ([Kfir Itzhak](https://github.com/mastertheknife)). Correction de l’erreur CMake liée à la variable interne `CMAKE_ASM_COMPILE_OBJECT`, non définie sur `ppc64le`. [#22469](https://github.com/ClickHouse/ClickHouse/pull/22469) ([Kfir Itzhak](https://github.com/mastertheknife)). Correction du problème empêchant Fedora/RHEL/CentOS de trouver `libclang_rt.builtins` sur `ppc64le`. [#22458](https://github.com/ClickHouse/ClickHouse/pull/22458) ([Kfir Itzhak](https://github.com/mastertheknife)). Activation de la compilation avec `jemalloc` sur `ppc64le`. [#22447](https://github.com/ClickHouse/ClickHouse/pull/22447) ([Kfir Itzhak](https://github.com/mastertheknife)). Correction de l’intégration de la config de ClickHouse et du fuseau horaire de cctz sur `ppc64le`. [#22445](https://github.com/ClickHouse/ClickHouse/pull/22445) ([Kfir Itzhak](https://github.com/mastertheknife)). Correction de la compilation sur `ppc64le` et utilisation du bon registre de pointeur d’instruction sur `ppc64le`. [#22430](https://github.com/ClickHouse/ClickHouse/pull/22430) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Réactivation de la bibliothèque S3 (AWS) sur `aarch64`. [#22484](https://github.com/ClickHouse/ClickHouse/pull/22484) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Ajout de `tzdata` aux conteneurs Docker, car la lecture des formats `ORC` l’exige. Cela clôt [#14156](https://github.com/ClickHouse/ClickHouse/issues/14156). [#22000](https://github.com/ClickHouse/ClickHouse/pull/22000) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Introduction de 2 arguments pour le Dockerfile de l’image `clickhouse-server` : `deb_location` & `single_binary_location`. [#21977](https://github.com/ClickHouse/ClickHouse/pull/21977) ([filimonov](https://github.com/filimonov)).
* Autorisation de l’utilisation de clang-tidy avec les builds de release en activant les assertions lorsqu’il est utilisé. [#21914](https://github.com/ClickHouse/ClickHouse/pull/21914) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout du nom des binaires llvm-12 à rechercher dans les scripts CMake. Conversions implicites de constantes pour supprimer les avertissements de clang. Mise à jour des sous-modules pour compiler avec CMake 3.19. Suppression des avertissements de récursion dans l’expansion de macro de la bibliothèque `readpassphrase`. L’option obsolète `-fuse-ld` a été remplacée par `--ld-path` pour clang. [#21597](https://github.com/ClickHouse/ClickHouse/pull/21597) ([Ilya Yatsishin](https://github.com/qoega)).
* Mise à jour de `docker/test/testflows/runner/dockerd-entrypoint.sh` pour utiliser le proxy Docker Hub de Yandex, car Docker Hub a mis en place des limites de débit très restrictives [#21551](https://github.com/ClickHouse/ClickHouse/pull/21551) ([vzakaznikov](https://github.com/vzakaznikov)).
* Correction de la compilation de la bibliothèque partagée sous macOS. [#20184](https://github.com/ClickHouse/ClickHouse/pull/20184) ([nvartolomei](https://github.com/nvartolomei)).
* Ajout de l’option `ctime` à `zookeeper-dump-tree`. Elle permet d’exporter la date de création du nœud. [#21842](https://github.com/ClickHouse/ClickHouse/pull/21842) ([Ilya](https://github.com/HumanUser)).

<div id="clickhouse-release-213-lts">
  ## Version 21.3 de ClickHouse (LTS)
</div>

<div id="clickhouse-release-v213-2021-03-12">
  ### Version de ClickHouse v21.3, 2021-03-12
</div>

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

* Il n'est désormais plus possible de créer des tables MergeTree avec l'ancienne syntaxe et un table TTL, car celui-ci est simplement ignoré. L’Attach des anciennes tables reste possible. [#20282](https://github.com/ClickHouse/ClickHouse/pull/20282) ([alesapin](https://github.com/alesapin)).
* Désormais, tous les noms de fonction insensibles à la casse seront réécrits sous leur forme canonique. Cela est nécessaire pour le routage des requêtes de projection (fonctionnalité à venir). [#20174](https://github.com/ClickHouse/ClickHouse/pull/20174) ([Amos Bird](https://github.com/amosbird)).
* Correction de la création de `TTL` lorsque son expression est une fonction et qu’elle coïncide avec la clé `ORDER BY`. Il est désormais possible de définir une agrégation personnalisée pour les colonnes de clé primaire dans `TTL` avec `GROUP BY`. Changement non rétrocompatible : pour les colonnes de clé primaire qui ne figurent pas dans `GROUP BY` et ne sont pas définies explicitement, la fonction `any` est désormais appliquée à la place de `max` à l’expiration du TTL. De plus, si vous utilisez TTL avec `WHERE` ou `GROUP BY`, vous pouvez voir des exceptions lors des merges pendant un rolling update. [#15450](https://github.com/ClickHouse/ClickHouse/pull/15450) ([Anton Popov](https://github.com/CurtizJ)).

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

* Ajout des paramètres du moteur File : `engine_file_empty_if_not_exists` et `engine_file_truncate_on_insert`. [#20620](https://github.com/ClickHouse/ClickHouse/pull/20620) ([M0r64n](https://github.com/M0r64n)).
* Ajout de la fonction d'agrégation `deltaSum` pour additionner les différences entre lignes consécutives. [#20057](https://github.com/ClickHouse/ClickHouse/pull/20057) ([Russ Frank](https://github.com/rf)).
* Nouvelle colonne `event_time_microseconds` dans la table `system.part_log`. [#20027](https://github.com/ClickHouse/ClickHouse/pull/20027) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la fonction `timezoneOffset(datetime)`, qui renvoie le décalage par rapport à l'UTC en secondes. Cela clôt [#issue:19850](https://github.com/ClickHouse/ClickHouse/issues/19850). [#19962](https://github.com/ClickHouse/ClickHouse/pull/19962) ([keenwolf](https://github.com/keen-wolf)).
* Ajout du paramètre `insert_shard_id` pour prendre en charge l'insertion de données dans un shard spécifique depuis une table distribuée. [#19961](https://github.com/ClickHouse/ClickHouse/pull/19961) ([flynn](https://github.com/ucasFL)).
* La fonction `reinterpretAs` a été mise à jour pour prendre en charge les entiers de grande taille. Corrige [#19691](https://github.com/ClickHouse/ClickHouse/issues/19691). [#19858](https://github.com/ClickHouse/ClickHouse/pull/19858) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la prise en charge des clés client pour le chiffrement côté serveur (l'en-tête `x-amz-server-side-encryption-customer-(key/md5)`) dans le client S3. Voir [ce lien](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). Clôt [#19428](https://github.com/ClickHouse/ClickHouse/issues/19428). [#19748](https://github.com/ClickHouse/ClickHouse/pull/19748) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Ajout de l'option `implicit_key` pour la source de dictionnaire `executable`. Elle permet d'éviter d'afficher la clé pour chaque enregistrement si les enregistrements arrivent dans le même ordre que les clés d'entrée. Implémente [#14527](https://github.com/ClickHouse/ClickHouse/issues/14527). [#19677](https://github.com/ClickHouse/ClickHouse/pull/19677) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout des types de quotas `query_selects` et `query_inserts`. [#19603](https://github.com/ClickHouse/ClickHouse/pull/19603) ([JackyWoo](https://github.com/JackyWoo)).
* Ajout de la fonction `extractTextFromHTML` [#19600](https://github.com/ClickHouse/ClickHouse/pull/19600) ([zlx19950903](https://github.com/zlx19950903)), ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Les tables avec le moteur `MergeTree*` disposent désormais de deux nouveaux paramètres au niveau de la table pour contrôler la concurrence des requêtes. Le paramètre `max_concurrent_queries` limite le nombre de requêtes exécutées simultanément liées à cette table. Le paramètre `min_marks_to_honor_max_concurrent_queries` indique d'appliquer le paramètre précédent uniquement si la requête lit au moins ce nombre de marks. [#19544](https://github.com/ClickHouse/ClickHouse/pull/19544) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la fonction `file` pour lire un fichier du répertoire user\_files en tant que String. Elle est différente de la fonction de table `file`. Cela implémente [#issue:18851](https://github.com/ClickHouse/ClickHouse/issues/18851). [#19204](https://github.com/ClickHouse/ClickHouse/pull/19204) ([keenwolf](https://github.com/keen-wolf)).

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

* Ajout du moteur de base de données expérimental `Replicated`. Il réplique les requêtes DDL entre plusieurs hôtes. [#16193](https://github.com/ClickHouse/ClickHouse/pull/16193) ([tavplubix](https://github.com/tavplubix)).
* Ajout d’une prise en charge expérimentale des fonctions de fenêtre, activable avec `allow_experimental_window_functions = 1`. Il s’agit d’une implémentation préliminaire, de qualité alpha, qui ne convient pas à une utilisation en production et évoluera de manière non rétrocompatible dans les prochaines versions. Veuillez consulter [la documentation](https://github.com/ClickHouse/ClickHouse/blob/master/docs/sql-reference/window-functions/index.md#experimental-window-functions) pour obtenir la liste des fonctionnalités prises en charge. [#20337](https://github.com/ClickHouse/ClickHouse/pull/20337) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Ajout de la possibilité de sauvegarder/restaurer les fichiers de métadonnées de DiskS3. [#18377](https://github.com/ClickHouse/ClickHouse/pull/18377) ([Pavel Kovalenko](https://github.com/Jokser)).

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

* Requêtes hedgées pour les requêtes distantes. Lorsque le paramètre `use_hedged_requests` est activé (désactivé par défaut), il permet d’établir plusieurs connexions à différentes répliques pour une requête. Une nouvelle connexion est établie si la ou les connexions existantes à la ou aux répliques n’ont pas pu être établies dans le délai `hedged_connection_timeout` ou si aucune donnée n’a été reçue dans le délai `receive_data_timeout`. La requête utilise la première connexion qui envoie un paquet de progression non vide (ou un paquet de données, si `allow_changing_replica_until_first_data_packet`) ; les autres connexions sont annulées. Les requêtes avec `max_parallel_replicas > 1` sont prises en charge. [#19291](https://github.com/ClickHouse/ClickHouse/pull/19291) ([Kruglov Pavel](https://github.com/Avogar)). Cela permet de réduire significativement les latences en fin de distribution sur de très grands clusters.
* Ajout de la prise en charge de `PREWHERE` (avec activation de l’optimisation correspondante) lorsque des expressions de sécurité au niveau des lignes sont définies pour les tables. [#19576](https://github.com/ClickHouse/ClickHouse/pull/19576) ([Denis Glazachev](https://github.com/traceon)).
* Le paramètre `distributed_aggregation_memory_efficient` est activé par défaut. Il réduit l’utilisation de la mémoire et améliore les performances des requêtes distribuées. [#20599](https://github.com/ClickHouse/ClickHouse/pull/20599) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration des performances de GROUP BY avec plusieurs clés de taille fixe. [#20472](https://github.com/ClickHouse/ClickHouse/pull/20472) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration des performances des fonctions d’agrégation grâce à un aliasing plus strict. [#19946](https://github.com/ClickHouse/ClickHouse/pull/19946) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Accélération de la lecture depuis les tables `Memory` dans des cas extrêmes (lorsque la vitesse de lecture est de l’ordre de 50 GB/sec) grâce à la simplification du pipeline et, par conséquent, à une réduction de la contention sur les verrous lors de l’ordonnancement du pipeline. [#20468](https://github.com/ClickHouse/ClickHouse/pull/20468) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Réimplémentation partielle du serveur HTTP afin de réduire le nombre de copies des données entrantes et sortantes. Cela apporte jusqu’à 1,5× d’amélioration des performances lors de l’insertion de longs enregistrements via HTTP. [#19516](https://github.com/ClickHouse/ClickHouse/pull/19516) ([Ivan](https://github.com/abyss7)).
* Ajout du paramètre `compress` pour les tables `Memory`. S’il est activé, la table utilisera moins de RAM. Sur certaines machines et certains jeux de données, cela peut aussi accélérer les requêtes SELECT, mais ce n’est pas toujours le cas. Ceci clôt [#20093](https://github.com/ClickHouse/ClickHouse/issues/20093). Remarque : il existe plusieurs raisons pour lesquelles les tables Memory peuvent être plus lentes que MergeTree : (1) absence de compression (2) taille statique des blocs (3) absence d’index et de prewhere... [#20168](https://github.com/ClickHouse/ClickHouse/pull/20168) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Légère amélioration du code d’agrégation. [#20978](https://github.com/ClickHouse/ClickHouse/pull/20978) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Réintroduction des spécialisations `intDiv`/`modulo` pour de meilleures performances. Cela corrige [#21293](https://github.com/ClickHouse/ClickHouse/issues/21293) . La régression a été introduite dans [https://github.com/ClickHouse/ClickHouse/pull/18145](https://github.com/ClickHouse/ClickHouse/pull/18145) . [#21307](https://github.com/ClickHouse/ClickHouse/pull/21307) ([Amos Bird](https://github.com/amosbird)).
* Ne plus trop regrouper les blocs sur INSERT SELECT lors d’une insertion dans une table Memory. Dans les versions précédentes, une représentation inefficace des données était créée dans la table Memory après INSERT SELECT. Ceci clôt [#13052](https://github.com/ClickHouse/ClickHouse/issues/13052). [#20169](https://github.com/ClickHouse/ClickHouse/pull/20169) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’au moins un cas où l’analyseur DataType pouvait avoir une complexité exponentielle (détecté par le fuzzer). Ceci clôt [#20096](https://github.com/ClickHouse/ClickHouse/issues/20096). [#20132](https://github.com/ClickHouse/ClickHouse/pull/20132) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Paralléliser SELECT avec FINAL pour une part unique de niveau > 0 lorsque le paramètre `do_not_merge_across_partitions_select_final` est défini sur 1. [#19375](https://github.com/ClickHouse/ClickHouse/pull/19375) ([Kruglov Pavel](https://github.com/Avogar)).
* Ne remplir que les colonnes demandées lors des requêtes sur `system.parts` et `system.parts_columns`. Corrige [#19570](https://github.com/ClickHouse/ClickHouse/issues/19570). [#21035](https://github.com/ClickHouse/ClickHouse/pull/21035) ([Anmol Arora](https://github.com/anmolarora)).
* Effectuer des optimisations algébriques sur les expressions arithmétiques dans la fonction d’agrégation `avg`. Corrige [#20092](https://github.com/ClickHouse/ClickHouse/issues/20092). [#20183](https://github.com/ClickHouse/ClickHouse/pull/20183) ([flynn](https://github.com/ucasFL)).

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

* Méthodes de compression insensibles à la casse pour les fonctions de table. Correction également de la méthode de compression LZMA, qui était vérifiée en majuscules. [#21416](https://github.com/ClickHouse/ClickHouse/pull/21416) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Ajout de deux paramètres pour retarder l’insertion ou renvoyer une erreur lorsqu’il y a trop de parts inactives. Cela est utile lorsque le serveur ne parvient pas à nettoyer les parts assez rapidement. [#20178](https://github.com/ClickHouse/ClickHouse/pull/20178) ([Amos Bird](https://github.com/amosbird)).
* Meilleure compatibilité avec les clients MySQL : 1. mysql jdbc 2. mycli. [#21367](https://github.com/ClickHouse/ClickHouse/pull/21367) ([Amos Bird](https://github.com/amosbird)).
* Interdiction de supprimer une colonne si elle est référencée par une vue matérialisée. Closes [#21164](https://github.com/ClickHouse/ClickHouse/issues/21164). [#21303](https://github.com/ClickHouse/ClickHouse/pull/21303) ([flynn](https://github.com/ucasFL)).
* La source de dictionnaire MySQL va désormais réessayer en cas d’échecs de connexion inattendus (Lost connection to MySQL server during query), qui se produisent parfois sur des connexions SSL/TLS. [#21237](https://github.com/ClickHouse/ClickHouse/pull/21237) ([Alexander Kazakov](https://github.com/Akazz)).
* Amélioration de l’ergonomie : parsing plus cohérent de `DateTime64` : reconnaissance du cas où un Unix timestamp avec une résolution inférieure à la seconde est spécifié sous forme d’entier mis à l’échelle (comme `1111111111222` au lieu de `1111111111.222`). Cela clôt [#13194](https://github.com/ClickHouse/ClickHouse/issues/13194). [#21053](https://github.com/ClickHouse/ClickHouse/pull/21053) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Effectuer uniquement la fusion de blocks triés sur l’initiateur avec distributed\_group\_by\_no\_merge. [#20882](https://github.com/ClickHouse/ClickHouse/pull/20882) ([Azat Khuzhin](https://github.com/azat)).
* Lors du chargement de la config de la source MySQL, ClickHouse va désormais mélanger aléatoirement la liste des répliques ayant la même priorité afin de garantir la logique round-robin de sélection de l’endpoint MySQL. Cela clôt [#20629](https://github.com/ClickHouse/ClickHouse/issues/20629). [#20632](https://github.com/ClickHouse/ClickHouse/pull/20632) ([Alexander Kazakov](https://github.com/Akazz)).
* La fonction 'reinterpretAs(x, Type)' a été renommée en 'reinterpret(x, Type)'. [#20611](https://github.com/ClickHouse/ClickHouse/pull/20611) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge de vhost pour le moteur RabbitMQ [#20576](https://github.com/ClickHouse/ClickHouse/issues/20576). [#20596](https://github.com/ClickHouse/ClickHouse/pull/20596) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Sérialisation améliorée pour les types de données combinant Arrays et Tuples. Meilleure correspondance des types de données enum avec le type enum Protobuf. Correction de la sérialisation du type de données `Map`. Les valeurs omises sont désormais définies par défaut. [#20506](https://github.com/ClickHouse/ClickHouse/pull/20506) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’une condition de concurrence entre l’exécution des tâches de distributed DDL et le nettoyage de la DDL queue. Désormais, une tâche DDL ne peut pas être supprimée de ZooKeeper s’il y a des workers actifs. Corrige [#20016](https://github.com/ClickHouse/ClickHouse/issues/20016). [#20448](https://github.com/ClickHouse/ClickHouse/pull/20448) ([tavplubix](https://github.com/tavplubix)).
* Correction du fonctionnement de FQDN et des autres fonctions liées au DNS dans les images alpine. [#20336](https://github.com/ClickHouse/ClickHouse/pull/20336) ([filimonov](https://github.com/filimonov)).
* Ne pas autoriser le constant folding précoce des fonctions explicitement interdites. [#20303](https://github.com/ClickHouse/ClickHouse/pull/20303) ([Azat Khuzhin](https://github.com/azat)).
* La conversion implicite d'un entier vers le type Decimal pouvait réussir même si la valeur entière ne tenait pas dans le type Decimal. Désormais, elle renvoie `ARGUMENT_OUT_OF_BOUND`. [#20232](https://github.com/ClickHouse/ClickHouse/pull/20232) ([tavplubix](https://github.com/tavplubix)).
* `SYSTEM FLUSH DISTRIBUTED` sans verrouillage. [#20215](https://github.com/ClickHouse/ClickHouse/pull/20215) ([Azat Khuzhin](https://github.com/azat)).
* Normalisation de count(constant) et sum(1) en count(). Cela est nécessaire pour le routage des requêtes de projection. [#20175](https://github.com/ClickHouse/ClickHouse/pull/20175) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge de tous les types d'entiers natifs dans les fonctions bitmap. [#20171](https://github.com/ClickHouse/ClickHouse/pull/20171) ([Amos Bird](https://github.com/amosbird)).
* Mise à jour de `CacheDictionary`, `ComplexCacheDictionary`, `SSDCacheDictionary` et `SSDComplexKeyDictionary` pour utiliser LRUHashMap comme index sous-jacent. [#20164](https://github.com/ClickHouse/ClickHouse/pull/20164) ([Maksim Kita](https://github.com/kitaisreal)).
* Le paramètre `access_management` peut désormais être configuré au démarrage via `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT`. La valeur par défaut reste désactivée (`0`), comme auparavant. [#20139](https://github.com/ClickHouse/ClickHouse/pull/20139) ([Marquitos](https://github.com/sonirico)).
* Correction de toDateTime64(toDate()/toDateTime()) pour DateTime64 - mise en œuvre du bornage de DateTime64 pour l'aligner sur le comportement de DateTime. [#20131](https://github.com/ClickHouse/ClickHouse/pull/20131) ([Azat Khuzhin](https://github.com/azat)).
* Améliorations des quotas : SHOW TABLES est désormais compté comme une seule query dans les calculs de quota, et non plus deux. Les querys SYSTEM consomment désormais du quota. Correction du calcul de la fin de l'intervalle dans la consommation du quota. [#20106](https://github.com/ClickHouse/ClickHouse/pull/20106) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge des expressions `path IN (set)` pour la table `system.zookeeper`. [#20105](https://github.com/ClickHouse/ClickHouse/pull/20105) ([小路](https://github.com/nicelulu)).
* Affichage des détails complets des tables `MaterializeMySQL` dans `system.tables`. [#20051](https://github.com/ClickHouse/ClickHouse/pull/20051) ([Stig Bakken](https://github.com/stigsb)).
* Correction d'une data race dans un dictionnaire exécutable, possible uniquement en cas de mauvaise utilisation (lorsque le script renvoie des données en ignorant son entrée). [#20045](https://github.com/ClickHouse/ClickHouse/pull/20045) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* La valeur de l'option MYSQL\_OPT\_RECONNECT peut désormais être contrôlée par le paramètre "opt\_reconnect" dans la section config de la replica MySQL. [#19998](https://github.com/ClickHouse/ClickHouse/pull/19998) ([Alexander Kazakov](https://github.com/Akazz)).
* Si l'utilisateur appelle la fonction `JSONExtract` en demandant le type `Float32`, une conversion imprécise vers le type de résultat est désormais autorisée. Par exemple, le nombre `0.1` en JSON est en double précision et n'est pas représentable en Float32, mais l'utilisateur souhaite tout de même pouvoir l'obtenir. Dans les versions précédentes, la fonction renvoyait 0 pour le type non-Nullable et NULL pour le type Nullable afin d'indiquer que la conversion était imprécise. Cette logique était correcte à 100 %, mais elle surprenait les utilisateurs et suscitait des questions. Cela clôt [#13962](https://github.com/ClickHouse/ClickHouse/issues/13962). [#19960](https://github.com/ClickHouse/ClickHouse/pull/19960) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de la conversion de la structure du block pour INSERT dans des tables Distributed lorsqu'elle ne correspond pas. [#19947](https://github.com/ClickHouse/ClickHouse/pull/19947) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration de la table `system.distributed_ddl_queue`. Initialiser MaxDDLEntryID avec la dernière valeur après redémarrage. Avant cette PR, MaxDDLEntryID restait à zéro jusqu’au traitement d’une nouvelle DDLTask. [#19924](https://github.com/ClickHouse/ClickHouse/pull/19924) ([Amos Bird](https://github.com/amosbird)).
* Afficher les tables `MaterializeMySQL` dans `system.parts`. [#19770](https://github.com/ClickHouse/ClickHouse/pull/19770) ([Stig Bakken](https://github.com/stigsb)).
* Ajouter une directive de configuration distincte pour le profil `Buffer`. [#19721](https://github.com/ClickHouse/ClickHouse/pull/19721) ([Azat Khuzhin](https://github.com/azat)).
* Déplacer dans la clause WHERE les conditions non liées à JOIN. [#18720](https://github.com/ClickHouse/ClickHouse/issues/18720). [#19685](https://github.com/ClickHouse/ClickHouse/pull/19685) ([hexiaoting](https://github.com/hexiaoting)).
* Ajouter la possibilité de limiter INSERT dans Distributed en fonction du volume d’octets en attente d’envoi asynchrone (les paramètres `bytes_to_delay_insert`/`max_delay_to_insert` et `bytes_to_throw_insert` pour le moteur `Distributed` ont été ajoutés). [#19673](https://github.com/ClickHouse/ClickHouse/pull/19673) ([Azat Khuzhin](https://github.com/azat)).
* Corriger quelques rares cas où des erreurs d’écriture pouvaient être ignorées dans les destructeurs. [#19451](https://github.com/ClickHouse/ClickHouse/pull/19451) ([Azat Khuzhin](https://github.com/azat)).
* Afficher les frames inline dans les traces de pile en cas d’erreurs fatales. [#19317](https://github.com/ClickHouse/ClickHouse/pull/19317) ([Ivan](https://github.com/abyss7)).

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

* Correction des reconnexions redondantes à ZooKeeper et de la possibilité d’avoir deux sessions actives pour un même serveur ClickHouse. Les deux problèmes ont été introduits dans #14678. [#21264](https://github.com/ClickHouse/ClickHouse/pull/21264) ([alesapin](https://github.com/alesapin)).
* Correction de l’erreur `Bad cast from type ... to DB::ColumnLowCardinality` lors de l’insertion dans une table comportant une colonne `LowCardinality` depuis le format `Values`. Corrige #21140 [#21357](https://github.com/ClickHouse/ClickHouse/pull/21357) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un interblocage dans les mutations `ALTER DELETE` pour les moteurs de table MergeTree non replicated lorsque le prédicat contient la table elle-même. Corrige [#20558](https://github.com/ClickHouse/ClickHouse/issues/20558). [#21477](https://github.com/ClickHouse/ClickHouse/pull/21477) ([alesapin](https://github.com/alesapin)).
* Correction d’un SIGSEGV pour les requêtes distribuées en cas de défaillance. [#21434](https://github.com/ClickHouse/ClickHouse/pull/21434) ([Azat Khuzhin](https://github.com/azat)).
* Désormais, les requêtes `ALTER MODIFY COLUMN` prendront correctement en compte les modifications de clé de partitionnement, des index de saut, des TTL, etc. Corrige [#13675](https://github.com/ClickHouse/ClickHouse/issues/13675). [#21334](https://github.com/ClickHouse/ClickHouse/pull/21334) ([alesapin](https://github.com/alesapin)).
* Correction d’un bug avec `join_use_nulls` et la jointure de `TOTALS` à partir de sous-requêtes. Cela clôt [#19362](https://github.com/ClickHouse/ClickHouse/issues/19362) et [#21137](https://github.com/ClickHouse/ClickHouse/issues/21137). [#21248](https://github.com/ClickHouse/ClickHouse/pull/21248) ([vdimir](https://github.com/vdimir)).
* Correction d’un crash dans `EXPLAIN` pour une requête avec `UNION`. Corrige [#20876](https://github.com/ClickHouse/ClickHouse/issues/20876), [#21170](https://github.com/ClickHouse/ClickHouse/issues/21170). [#21246](https://github.com/ClickHouse/ClickHouse/pull/21246) ([flynn](https://github.com/ucasFL)).
* Désormais, les mutations ne sont autorisées que pour les moteurs de table qui les prennent en charge (famille MergeTree, Memory, MaterializedView). Les autres moteurs renverront une erreur plus claire. Corrige [#21168](https://github.com/ClickHouse/ClickHouse/issues/21168). [#21183](https://github.com/ClickHouse/ClickHouse/pull/21183) ([alesapin](https://github.com/alesapin)).
* Corrige [#21112](https://github.com/ClickHouse/ClickHouse/issues/21112). Correction d’un bug pouvant provoquer des doublons avec une requête d’insertion (si l’un des callbacks arrivait un peu trop tard). [#21138](https://github.com/ClickHouse/ClickHouse/pull/21138) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la prise en compte effective de `input_format_null_as_default` lorsque les types sont Nullable. Corrige [#21116](https://github.com/ClickHouse/ClickHouse/issues/21116). [#21121](https://github.com/ClickHouse/ClickHouse/pull/21121) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un bug lié au cast de Tuple vers Map. Clôt [#21029](https://github.com/ClickHouse/ClickHouse/issues/21029). [#21120](https://github.com/ClickHouse/ClickHouse/pull/21120) ([hexiaoting](https://github.com/hexiaoting)).
* Correction d’une fuite de métadonnées lors du drop d’un Replicated\*MergeTree avec un cluster ZooKeeper personnalisé (non default). [#21119](https://github.com/ClickHouse/ClickHouse/pull/21119) ([fastio](https://github.com/fastio)).
* Correction d’un problème d’incompatibilité de type lors de l’utilisation de clés LowCardinality dans joinGet. Cela corrige [#21114](https://github.com/ClickHouse/ClickHouse/issues/21114). [#21117](https://github.com/ClickHouse/ClickHouse/pull/21117) ([Amos Bird](https://github.com/amosbird)).
* Correction : les valeurs default\_replica\_path et default\_replica\_name sont inutiles avec le moteur Replicated(\*)MergeTree lorsque celui-ci doit spécifier d’autres paramètres. [#21060](https://github.com/ClickHouse/ClickHouse/pull/21060) ([mxzlxy](https://github.com/mxzlxy)).
* Un accès mémoire hors limites était possible lors du formatage d’une valeur de type `DateTime64` spécialement conçue pour être hors plage. Cela clôt [#20494](https://github.com/ClickHouse/ClickHouse/issues/20494). Cela clôt [#20543](https://github.com/ClickHouse/ClickHouse/issues/20543). [#21023](https://github.com/ClickHouse/ClickHouse/pull/21023) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Blocage des insertions parallèles dans StorageJoin. [#21009](https://github.com/ClickHouse/ClickHouse/pull/21009) ([vdimir](https://github.com/vdimir)).
* Correction du comportement lorsque `ALTER MODIFY COLUMN` créait une mutation vouée à échouer. [#21007](https://github.com/ClickHouse/ClickHouse/pull/21007) ([Anton Popov](https://github.com/CurtizJ)).
* Clôt [#9969](https://github.com/ClickHouse/ClickHouse/issues/9969). Correction d’une erreur de compression HTTP Brotli qui se produisait avec de grands volumes de données, une structure légèrement complexe et le format de sortie JSON. Mise à jour de Brotli vers la dernière version afin d’inclure le correctif pour « rare access to uninitialized data in ring-buffer ». [#20991](https://github.com/ClickHouse/ClickHouse/pull/20991) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de 'Empty task was returned from async task queue' lors de l’annulation d’une requête. [#20881](https://github.com/ClickHouse/ClickHouse/pull/20881) ([Azat Khuzhin](https://github.com/azat)).
* La requête `USE database;` ne fonctionnait pas lors de l’utilisation du client MySQL 5.7 pour se connecter au serveur ClickHouse ; c’est corrigé. Corrige [#18926](https://github.com/ClickHouse/ClickHouse/issues/18926). [#20878](https://github.com/ClickHouse/ClickHouse/pull/20878) ([tavplubix](https://github.com/tavplubix)).
* Correction de l’utilisation du combinator `-Distinct` avec le combinator `-State` dans les aggregate functions. [#20866](https://github.com/ClickHouse/ClickHouse/pull/20866) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une subquery avec union distinct et clause LIMIT. Clôt [#20597](https://github.com/ClickHouse/ClickHouse/issues/20597). [#20610](https://github.com/ClickHouse/ClickHouse/pull/20610) ([flynn](https://github.com/ucasFL)).
* Correction du comportement incohérent du Dictionary dans le cas de requêtes recherchant des keys absentes dans le Dictionary. [#20578](https://github.com/ClickHouse/ClickHouse/pull/20578) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction du nombre de threads pour les scalar subqueries et les subqueries utilisées pour l’index (après [#19007](https://github.com/ClickHouse/ClickHouse/issues/19007), un seul thread était toujours utilisé). Corrige [#20457](https://github.com/ClickHouse/ClickHouse/issues/20457), [#20512](https://github.com/ClickHouse/ClickHouse/issues/20512). [#20550](https://github.com/ClickHouse/ClickHouse/pull/20550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un crash pouvant se produire si un paquet inconnu était reçu depuis une requête remove (introduit dans [#17868](https://github.com/ClickHouse/ClickHouse/issues/17868)). [#20547](https://github.com/ClickHouse/ClickHouse/pull/20547) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de vérifications appropriées lors de l’analyse des noms de répertoires pour async INSERT (corrige SIGSEGV). [#20498](https://github.com/ClickHouse/ClickHouse/pull/20498) ([Azat Khuzhin](https://github.com/azat)).
* Correction : la fonction `transform` ne fonctionne pas correctement avec des clés en virgule flottante. Clôt [#20460](https://github.com/ClickHouse/ClickHouse/issues/20460). [#20479](https://github.com/ClickHouse/ClickHouse/pull/20479) ([flynn](https://github.com/ucasFL)).
* Correction d'une boucle infinie lors de la propagation des alias WITH vers les sous-requêtes. Corrige [#20388](https://github.com/ClickHouse/ClickHouse/issues/20388). [#20476](https://github.com/ClickHouse/ClickHouse/pull/20476) ([Amos Bird](https://github.com/amosbird)).
* Correction d'un arrêt anormal du serveur lorsque le client HTTP se déconnecte. [#20464](https://github.com/ClickHouse/ClickHouse/pull/20464) ([Azat Khuzhin](https://github.com/azat)).
* Correction de `LOGICAL_ERROR` avec `join_use_nulls=1` lorsque JOIN contient une constante issue de SELECT. [#20461](https://github.com/ClickHouse/ClickHouse/pull/20461) ([Azat Khuzhin](https://github.com/azat)).
* Vérifie si la fonction de table `view` est utilisée dans la liste d'expressions et génère une erreur dans ce cas. Corrige [#20342](https://github.com/ClickHouse/ClickHouse/issues/20342). [#20350](https://github.com/ClickHouse/ClickHouse/pull/20350) ([Amos Bird](https://github.com/amosbird)).
* Évite un déréférencement invalide dans le dictionnaire RANGE\_HASHED(). [#20345](https://github.com/ClickHouse/ClickHouse/pull/20345) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un déréférencement nul avec `join_use_nulls=1`. [#20344](https://github.com/ClickHouse/ClickHouse/pull/20344) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un résultat incorrect pour les opérations binaires entre deux nombres Decimal constants d'échelles différentes. Corrige [#20283](https://github.com/ClickHouse/ClickHouse/issues/20283). [#20339](https://github.com/ClickHouse/ClickHouse/pull/20339) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction de tentatives répétées trop fréquentes pour les tâches d'arrière-plan ayant échoué dans la famille de moteurs de table `ReplicatedMergeTree`. Cela pouvait entraîner une journalisation trop verbeuse et une charge CPU accrue. Corrige [#20203](https://github.com/ClickHouse/ClickHouse/issues/20203). [#20335](https://github.com/ClickHouse/ClickHouse/pull/20335) ([alesapin](https://github.com/alesapin)).
* Restriction de la colonne de version aux opérations `DROP` ou `RENAME` pour les moteurs de table `*CollapsingMergeTree` et `ReplacingMergeTree`. [#20300](https://github.com/ClickHouse/ClickHouse/pull/20300) ([alesapin](https://github.com/alesapin)).
* Correction du comportement dans le cas où, avec un JSON corrompu, nous tentions de lire le fichier entier en mémoire, ce qui provoquait une exception de l'allocateur. Corrige [#19719](https://github.com/ClickHouse/ClickHouse/issues/19719). [#20286](https://github.com/ClickHouse/ClickHouse/pull/20286) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d'une exception lors d'une fusion verticale pour la famille de moteurs de table `MergeTree` qui n'autorise pas les fusions verticales. Corrige [#20259](https://github.com/ClickHouse/ClickHouse/issues/20259). [#20279](https://github.com/ClickHouse/ClickHouse/pull/20279) ([alesapin](https://github.com/alesapin)).
* Correction d'un plantage rare du serveur lors du rechargement de la config pendant l'arrêt. Corrige [#19689](https://github.com/ClickHouse/ClickHouse/issues/19689). [#20224](https://github.com/ClickHouse/ClickHouse/pull/20224) ([alesapin](https://github.com/alesapin)).
* Correction des CTE lors de leur utilisation dans INSERT SELECT. Corrige [#20187](https://github.com/ClickHouse/ClickHouse/issues/20187), corrige [#20195](https://github.com/ClickHouse/ClickHouse/issues/20195). [#20211](https://github.com/ClickHouse/ClickHouse/pull/20211) ([Amos Bird](https://github.com/amosbird)).
* Corrige [#19314](https://github.com/ClickHouse/ClickHouse/issues/19314). [#20156](https://github.com/ClickHouse/ClickHouse/pull/20156) ([Ivan](https://github.com/abyss7)).
* Corrige la fonction toMinute pour gérer correctement les fuseaux horaires spéciaux. [#20149](https://github.com/ClickHouse/ClickHouse/pull/20149) ([keenwolf](https://github.com/keen-wolf)).
* Corrige un plantage du serveur après une query utilisant la fonction `if`, lorsque le résultat des branches then/else est de type `Tuple`. Le type `Tuple` doit contenir un `Array` ou un autre type complexe. Corrige [#18356](https://github.com/ClickHouse/ClickHouse/issues/18356). [#20133](https://github.com/ClickHouse/ClickHouse/pull/20133) ([alesapin](https://github.com/alesapin)).
* Le table engine `MongoDB` n'établit désormais une connexion qu'au moment de lire des données. `ATTACH TABLE` n'essaiera plus de se connecter. [#20110](https://github.com/ClickHouse/ClickHouse/pull/20110) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d'un bug dans StorageJoin. [#20079](https://github.com/ClickHouse/ClickHouse/pull/20079) ([vdimir](https://github.com/vdimir)).
* Corrige le cas où, lors du calcul du modulo de la division d'un nombre négatif par un petit diviseur, le type de données résultant n'était pas assez grand pour contenir le résultat négatif. Ceci clôt [#20052](https://github.com/ClickHouse/ClickHouse/issues/20052). [#20067](https://github.com/ClickHouse/ClickHouse/pull/20067) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* MaterializeMySQL : corrige la réplication pour les statements qui mettent à jour plusieurs tables. [#20066](https://github.com/ClickHouse/ClickHouse/pull/20066) ([Håvard Kvålen](https://github.com/havardk)).
* Empêche "Connection refused" dans Docker pendant l'exécution du script d'initialisation. [#20012](https://github.com/ClickHouse/ClickHouse/pull/20012) ([filimonov](https://github.com/filimonov)).
* `EmbeddedRocksDB` est un stockage experimental. Corrige le problème lié à l'absence de type checking approprié. Code simplifié. Ceci clôt [#19967](https://github.com/ClickHouse/ClickHouse/issues/19967). [#19972](https://github.com/ClickHouse/ClickHouse/pull/19972) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige un segfault dans la fonction `fromModifiedJulianDay` lorsque le type de l'argument est `Nullable(T)` pour tous les types intégraux autres que Int32. [#19959](https://github.com/ClickHouse/ClickHouse/pull/19959) ([PHO](https://github.com/depressed-pho)).
* Correction d'un crash de l'index BloomFilter. Corrige [#19757](https://github.com/ClickHouse/ClickHouse/issues/19757). [#19884](https://github.com/ClickHouse/ClickHouse/pull/19884) ([Maksim Kita](https://github.com/kitaisreal)).
* Un interblocage était possible si system.text\_log est activé. Ceci corrige [#19874](https://github.com/ClickHouse/ClickHouse/issues/19874). [#19875](https://github.com/ClickHouse/ClickHouse/pull/19875) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige le démarrage du serveur avec des tables ayant des expressions par défaut contenant dictGet(). Permet d'obtenir le return type de dictGet() sans charger le Dictionary. [#19805](https://github.com/ClickHouse/ClickHouse/pull/19805) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige une exception d'abandon de clickhouse-client lors de l'exécution d'un simple `select`. [#19790](https://github.com/ClickHouse/ClickHouse/pull/19790) ([taiyang-li](https://github.com/taiyang-li)).
* Corrige un bug où le déplacement de morceaux vers la destination table pouvait échouer lors du lancement de plusieurs clickhouse-copiers. [#19743](https://github.com/ClickHouse/ClickHouse/pull/19743) ([madianjun](https://github.com/mdianjun)).
* Le thread d’arrière-plan qui exécute les requêtes `ON CLUSTER` pouvait rester bloqué en attendant qu’une table répliquée supprimée effectue une opération. Ce problème est corrigé. [#19684](https://github.com/ClickHouse/ClickHouse/pull/19684) ([yiguolei](https://github.com/yiguolei)).

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

* Permet de compiler ClickHouse avec AVX-2 activé globalement. Cela apporte de légers gains de performance sur les CPU modernes. Non recommandé en production et ne sera pas pris en charge comme build officiel pour le moment. [#20180](https://github.com/ClickHouse/ClickHouse/pull/20180) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige certains problèmes détectés par Coverity. Voir [#19964](https://github.com/ClickHouse/ClickHouse/issues/19964). [#20010](https://github.com/ClickHouse/ClickHouse/pull/20010) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permet le démarrage avec un binaire modifié sous gdb. Dans la version précédente, si vous définissiez un point d’arrêt dans gdb avant le démarrage, le serveur refusait de démarrer en raison d’un échec du contrôle d’intégrité. [#21258](https://github.com/ClickHouse/ClickHouse/pull/21258) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajoute un test pour différentes méthodes de compression dans Kafka. [#21111](https://github.com/ClickHouse/ClickHouse/pull/21111) ([filimonov](https://github.com/filimonov)).
* Corrige un conflit de ports dans le test test\_storage\_kerberized\_hdfs. [#19974](https://github.com/ClickHouse/ClickHouse/pull/19974) ([Ilya Yatsishin](https://github.com/qoega)).
* Affiche `stdout` et `stderr` dans le log lorsque le démarrage de docker échoue dans les tests d’intégration. Avant cette PR, le message d’erreur était très court dans ce cas et n’aidait pas à analyser les problèmes. [#20631](https://github.com/ClickHouse/ClickHouse/pull/20631) ([Vitaly Baranov](https://github.com/vitlibar)).

<div id="clickhouse-release-212">
  ## Version de ClickHouse 21.2
</div>

<div id="clickhouse-release-v21228-stable-2021-02-07">
  ### Version de ClickHouse v21.2.2.8-stable, 2021-02-07
</div>

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

* Les fonctions bit à bit (`bitAnd`, `bitOr`, etc.) sont interdites avec des arguments à virgule flottante. Vous devez désormais effectuer une conversion explicite en entier. [#19853](https://github.com/ClickHouse/ClickHouse/pull/19853) ([Azat Khuzhin](https://github.com/azat)).
* Interdiction de `lcm`/`gcd` pour les flottants. [#19532](https://github.com/ClickHouse/ClickHouse/pull/19532) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le suivi de la mémoire pour `OPTIMIZE TABLE`/les fusions ; prend en compte les limites de mémoire des requêtes et l’échantillonnage pour `OPTIMIZE TABLE`/les fusions. [#18772](https://github.com/ClickHouse/ClickHouse/pull/18772) ([Azat Khuzhin](https://github.com/azat)).
* Interdit l’utilisation d’une colonne à virgule flottante comme clé de partitionnement, voir [#18421](https://github.com/ClickHouse/ClickHouse/issues/18421#event-4147046255). [#18464](https://github.com/ClickHouse/ClickHouse/pull/18464) ([hexiaoting](https://github.com/hexiaoting)).
* Les parenthèses superflues dans les définitions de type ne sont plus prises en charge, par exemple : `Array((UInt8))`.

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

* Ajout du moteur de table `PostgreSQL` (à la fois pour select/insert, avec prise en charge des tableaux multidimensionnels), également disponible comme fonction de table. Ajout de la source de dictionnaire `PostgreSQL`. Ajout du moteur de base de données `PostgreSQL`. [#18554](https://github.com/ClickHouse/ClickHouse/pull/18554) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Le type de données `Nested` prend désormais en charge des niveaux d’imbrication arbitraires. Introduction des sous-colonnes de types complexes, telles que `size0` dans `Array`, `null` dans `Nullable` et les noms des éléments de `Tuple`, qui peuvent être lues sans lire la colonne entière. [#17310](https://github.com/ClickHouse/ClickHouse/pull/17310) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la prise en charge de `Nullable` pour `FlatDictionary`, `HashedDictionary`, `ComplexKeyHashedDictionary`, `DirectDictionary`, `ComplexKeyDirectDictionary`, `RangeHashedDictionary`. [#18236](https://github.com/ClickHouse/ClickHouse/pull/18236) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout d’une nouvelle table appelée `system.distributed_ddl_queue`, qui affiche les requêtes dans la file d’attente du worker DDL. [#17656](https://github.com/ClickHouse/ClickHouse/pull/17656) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la prise en charge du mappage des noms de groupes LDAP, et plus généralement des valeurs d’attribut, vers des rôles locaux pour les utilisateurs issus des répertoires d’utilisateurs LDAP. [#17211](https://github.com/ClickHouse/ClickHouse/pull/17211) ([Denis Glazachev](https://github.com/traceon)).
* Prise en charge de insert dans la fonction de table `cluster` et, pour les deux fonctions de table `remote` et `cluster`, prise en charge de la distribution des données entre les nœuds en spécifiant une clé de sharding. Ferme [#16752](https://github.com/ClickHouse/ClickHouse/issues/16752). [#18264](https://github.com/ClickHouse/ClickHouse/pull/18264) ([flynn](https://github.com/ucasFL)).
* Ajout de la fonction `decodeXMLComponent` pour décoder les caractères XML. Exemple : `SELECT decodeXMLComponent('Hello,&quot;world&quot;!')` [#17659](https://github.com/ClickHouse/ClickHouse/issues/17659). [#18542](https://github.com/ClickHouse/ClickHouse/pull/18542) ([nauta](https://github.com/nautaa)).
* Ajout des fonctions `parseDateTimeBestEffortUSOrZero`, `parseDateTimeBestEffortUSOrNull`. [#19712](https://github.com/ClickHouse/ClickHouse/pull/19712) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction mathématique `sign`. [#19527](https://github.com/ClickHouse/ClickHouse/pull/19527) ([flynn](https://github.com/ucasFL)).
* Ajout d’informations sur les fonctionnalités utilisées (fonctions, moteurs de table, etc.) dans system.query\_log. [#18495](https://github.com/ClickHouse/ClickHouse/issues/18495). [#19371](https://github.com/ClickHouse/ClickHouse/pull/19371) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La fonction `formatDateTime` prend en charge le modificateur `%Q` pour formater la date en trimestre. [#19224](https://github.com/ClickHouse/ClickHouse/pull/19224) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Prise en charge du raccourci clavier MetaKey+Enter dans l’interface play. [#19012](https://github.com/ClickHouse/ClickHouse/pull/19012) ([sundyli](https://github.com/sundy-li)).
* Ajout de trois fonctions pour le type de données map : 1. `mapContains(map, key)` pour vérifier si `map.keys` inclut la clé fournie en second paramètre. 2. `mapKeys(map)` renvoie toutes les clés au format `Array` 3. `mapValues(map)` renvoie toutes les valeurs au format `Array`. [#18788](https://github.com/ClickHouse/ClickHouse/pull/18788) ([hexiaoting](https://github.com/hexiaoting)).
* Ajout du paramètre `log_comment`, en lien avec [#18494](https://github.com/ClickHouse/ClickHouse/issues/18494). [#18549](https://github.com/ClickHouse/ClickHouse/pull/18549) ([Zijie Lu](https://github.com/TszKitLo40)).
* Ajout de la prise en charge d’un argument de type tuple pour les fonctions `argMin` et `argMax`. [#17359](https://github.com/ClickHouse/ClickHouse/pull/17359) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Prise en charge de la syntaxe `EXISTS VIEW`. [#18552](https://github.com/ClickHouse/ClickHouse/pull/18552) ([Du Chuan](https://github.com/spongedu)).
* Ajout de la syntaxe `SELECT ALL`. Clôt l’issue [#18706](https://github.com/ClickHouse/ClickHouse/issues/18706). [#18723](https://github.com/ClickHouse/ClickHouse/pull/18723) ([flynn](https://github.com/ucasFL)).

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

* Suppression plus rapide des parts grâce à une réduction du nombre d'appels système `stat`. Cela rétablit une optimisation qui existait auparavant. Interface `IDisk` plus sûre. Cela clôt [#19065](https://github.com/ClickHouse/ClickHouse/issues/19065). [#19086](https://github.com/ClickHouse/ClickHouse/pull/19086) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Les alias déclarés dans l'instruction `WITH` sont correctement utilisés dans l'analyse des index. Les requêtes du type `WITH column AS alias SELECT ... WHERE alias = ...` peuvent désormais utiliser un index. [#18896](https://github.com/ClickHouse/ClickHouse/pull/18896) ([Amos Bird](https://github.com/amosbird)).
* Ajout de `optimize_alias_column_prediction` (activé par défaut), qui permet de : - prendre en compte les colonnes avec alias dans WHERE lors du partition pruning et du skipping des données à l'aide d'index secondaires ; - prendre en compte les colonnes avec alias dans WHERE pour les requêtes de comptage triviales avec optimize\_trivial\_count ; - prendre en compte les colonnes avec alias dans GROUP BY/ORDER BY pour optimize\_aggregation\_in\_order/optimize\_read\_in\_order. [#16995](https://github.com/ClickHouse/ClickHouse/pull/16995) ([sundyli](https://github.com/sundy-li)).
* Accélération de la fonction d'agrégation `sum`. L'amélioration n'est visible que sur des benchmarks synthétiques et reste peu utile en pratique. [#19216](https://github.com/ClickHouse/ClickHouse/pull/19216) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de libc++ et utilisation d'une autre ABI pour améliorer les performances. [#18914](https://github.com/ClickHouse/ClickHouse/pull/18914) ([Danila Kutenin](https://github.com/danlark1)).
* Réécriture des fonctions `sumIf()` et `sum(if())` en fonction `countIf()` lorsqu'elles sont logiquement équivalentes. [#17041](https://github.com/ClickHouse/ClickHouse/pull/17041) ([flynn](https://github.com/ucasFL)).
* Utilisation d'un pool de connexions pour les connexions S3, contrôlé par le paramètre `s3_max_connections`. [#13405](https://github.com/ClickHouse/ClickHouse/pull/13405) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Ajout de la prise en charge de l'option `long` de zstd pour améliorer la compression des colonnes de type chaîne et économiser de l'espace. [#17184](https://github.com/ClickHouse/ClickHouse/pull/17184) ([ygrek](https://github.com/ygrek)).
* Légère amélioration de la latence du serveur grâce à la suppression de l'accès à la configuration à chaque connexion. [#19863](https://github.com/ClickHouse/ClickHouse/pull/19863) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Réduction de la contention sur les verrous pour plusieurs couches de l'engine `Buffer`. [#19379](https://github.com/ClickHouse/ClickHouse/pull/19379) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge de la division de l'étape `Filter` du query plan en une paire `Expression + Filter`. Avec l'optimisation de fusion `Expression + Expression` ([#17458](https://github.com/ClickHouse/ClickHouse/issues/17458)), cela peut retarder l'exécution de certaines expressions après l'étape `Filter`. [#19253](https://github.com/ClickHouse/ClickHouse/pull/19253) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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

* `SELECT count() FROM table` peut désormais être exécuté s'il est possible de sélectionner au moins une colonne quelconque de la `table`. Cette PR corrige [#10639](https://github.com/ClickHouse/ClickHouse/issues/10639). [#18233](https://github.com/ClickHouse/ClickHouse/pull/18233) ([Vitaly Baranov](https://github.com/vitlibar)).
* Le jeu de caractères est désormais défini sur `utf8mb4` lors des interactions avec des serveurs MySQL distants. Corrige [#19795](https://github.com/ClickHouse/ClickHouse/issues/19795). [#19800](https://github.com/ClickHouse/ClickHouse/pull/19800) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* La table function `S3` prend désormais en charge le mode de compression `auto` (détection automatique). Cela clôt [#18754](https://github.com/ClickHouse/ClickHouse/issues/18754). [#19793](https://github.com/ClickHouse/ClickHouse/pull/19793) ([Vladimir Chebotarev](https://github.com/excitoon)).
* La fonction `formatReadableTimeDelta` affiche désormais correctement les arguments infinis. Dans les versions précédentes, une conversion implicite vers une valeur entière propre à l'implémentation avait lieu. [#19791](https://github.com/ClickHouse/ClickHouse/pull/19791) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* La table function `S3` utilisera la Region globale si la région ne peut pas être déterminée avec précision. Cela clôt [#10998](https://github.com/ClickHouse/ClickHouse/issues/10998). [#19750](https://github.com/ClickHouse/ClickHouse/pull/19750) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Dans les requêtes distribuées, si le paramètre `async_socket_for_remote` est activé, un dépassement de pile pouvait se produire, au moins dans une configuration de build de débogage, lorsqu'un type de données très profondément imbriqué est utilisé dans une table (par ex. `Array(Array(Array(...more...)))`). Cela corrige [#19108](https://github.com/ClickHouse/ClickHouse/issues/19108). Ce changement introduit une légère incompatibilité ascendante : les parenthèses superflues dans les définitions de type ne sont plus prises en charge, par exemple : `Array((UInt8))`. [#19736](https://github.com/ClickHouse/ClickHouse/pull/19736) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout d'un pool distinct pour les brokers de messages (RabbitMQ et Kafka). [#19722](https://github.com/ClickHouse/ClickHouse/pull/19722) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un rare dépassement de la limite `max_number_of_merges_with_ttl_in_pool` (davantage de merges avec TTL pouvaient être attribués) pour les MergeTree non répliqués. [#19708](https://github.com/ClickHouse/ClickHouse/pull/19708) ([alesapin](https://github.com/alesapin)).
* Dictionary : amélioration du message d'erreur lors de l'analyse des attributs. [#19678](https://github.com/ClickHouse/ClickHouse/pull/19678) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout d'une option permettant de désactiver la validation des checksums à la lecture. Ne doit jamais être utilisée en production. N'attendez aucun bénéfice de sa désactivation. Elle ne doit servir qu'à des expériences et des benchmarks. Ce paramètre s'applique uniquement aux tables de la famille MergeTree. Les checksums sont toujours validés pour les autres table engines et lors de la réception de données sur le réseau. D'après mes observations, il n'y a aucune différence de performance, ou elle est inférieure à 0,5 %. [#19588](https://github.com/ClickHouse/ClickHouse/pull/19588) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge d'un résultat constant dans la fonction `multiIf`. [#19533](https://github.com/ClickHouse/ClickHouse/pull/19533) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge des fonctions length/empty/notEmpty pour le type de données Map, qui renvoient le nombre de clés dans Map. [#19530](https://github.com/ClickHouse/ClickHouse/pull/19530) ([taiyang-li](https://github.com/taiyang-li)).
* Ajout de l'option `--reconnect` à `clickhouse-benchmark`. Lorsque cette option est spécifiée, une reconnexion est effectuée avant chaque requête. Cela est nécessaire pour les tests. [#19872](https://github.com/ClickHouse/ClickHouse/pull/19872) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge du nouvel emplacement du fichier `.debug`. Cela corrige [#19348](https://github.com/ClickHouse/ClickHouse/issues/19348). [#19520](https://github.com/ClickHouse/ClickHouse/pull/19520) ([Amos Bird](https://github.com/amosbird)).
* La fonction `toIPv6` parse les adresses `IPv4`. [#19518](https://github.com/ClickHouse/ClickHouse/pull/19518) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout du champ `http_referer` à `system.query_log`, `system.processes`, etc. Cela résout [#19389](https://github.com/ClickHouse/ClickHouse/issues/19389). [#19390](https://github.com/ClickHouse/ClickHouse/pull/19390) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Compatibilité MySQL améliorée grâce à la prise en charge d’un plus grand nombre de fonctions insensibles à la casse et à l’ajout d’aliases. [#19387](https://github.com/ClickHouse/ClickHouse/pull/19387) ([Daniil Kondratyev](https://github.com/dankondr)).
* Ajout de métriques pour les types de parts MergeTree (Wide/Compact/InMemory). [#19381](https://github.com/ClickHouse/ClickHouse/pull/19381) ([Azat Khuzhin](https://github.com/azat)).
* Autorise l’exécution de docker avec un uid arbitraire. [#19374](https://github.com/ClickHouse/ClickHouse/pull/19374) ([filimonov](https://github.com/filimonov)).
* Correction de l’alignement incorrect des valeurs du type de données `IPv4` dans les formats Pretty. Elles étaient alignées à droite au lieu de l’être à gauche. Cela résout [#19184](https://github.com/ClickHouse/ClickHouse/issues/19184). [#19339](https://github.com/ClickHouse/ClickHouse/pull/19339) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autorise la modification de `max_server_memory_usage` sans redémarrage. Cela résout [#18154](https://github.com/ClickHouse/ClickHouse/issues/18154). [#19186](https://github.com/ClickHouse/ClickHouse/pull/19186) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* L’Exception levée lorsque la fonction `bar` est appelée avec certains arguments NaN peut être légèrement trompeuse dans les versions précédentes. Cela corrige [#19088](https://github.com/ClickHouse/ClickHouse/issues/19088). [#19107](https://github.com/ClickHouse/ClickHouse/pull/19107) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Définition explicite de l’uid / gid de l’utilisateur et du groupe clickhouse sur des valeurs fixes (101) dans les images clickhouse-server. [#19096](https://github.com/ClickHouse/ClickHouse/pull/19096) ([filimonov](https://github.com/filimonov)).
* Correction de l’erreur `PeekableReadBuffer: Memory limit exceed` lors de l’insert de données contenant de très longues chaînes. Corrige [#18690](https://github.com/ClickHouse/ClickHouse/issues/18690). [#18979](https://github.com/ClickHouse/ClickHouse/pull/18979) ([tavplubix](https://github.com/tavplubix)).
* Image Docker : plusieurs améliorations apportées à l’entrypoint de clickhouse-server. [#18954](https://github.com/ClickHouse/ClickHouse/pull/18954) ([filimonov](https://github.com/filimonov)).
* Ajout de `normalizeQueryKeepNames` et `normalizedQueryHashKeepNames` pour normaliser les queries sans masquer les noms longs par `?`. Cela facilite l’analyse des query logs complexes. [#18910](https://github.com/ClickHouse/ClickHouse/pull/18910) ([Amos Bird](https://github.com/amosbird)).
* Vérification du checksum par block du batch distribué côté expéditeur avant l’envoi (sans relire le fichier deux fois : les checksums sont vérifiés pendant la lecture), ce qui évite le blocage de l’INSERT côté receiver (en cas de fichier .bin tronqué côté expéditeur). Évite également de lire deux fois les fichiers .bin pour les INSERT par batch (c’était nécessaire pour calculer le nombre de rows/octet afin de tenir compte du squashing ; désormais, ces informations sont incluses dans le header, et la rétrocompatibilité est préservée). [#18853](https://github.com/ClickHouse/ClickHouse/pull/18853) ([Azat Khuzhin](https://github.com/azat)).
* Corrige des problèmes avec les `RIGHT` et `FULL JOIN` de tables contenant des états de fonctions d’agrégation. Dans les versions précédentes, une exception liée à la méthode `cloneResized` était levée. [#18818](https://github.com/ClickHouse/ClickHouse/pull/18818) ([templarzq](https://github.com/templarzq)).
* Ajout de paramètres d’endpoint S3 basés sur des préfixes. [#18812](https://github.com/ClickHouse/ClickHouse/pull/18812) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Ajout de la prise en charge des types d’argument \[UInt8, UInt16, UInt32, UInt64] pour les fonctions bitmapTransform, bitmapSubsetInRange, bitmapSubsetLimit et bitmapContains. Cela clôt [#18713](https://github.com/ClickHouse/ClickHouse/issues/18713). [#18791](https://github.com/ClickHouse/ClickHouse/pull/18791) ([sundyli](https://github.com/sundy-li)).
* Autorise l’ajout d’un alias supplémentaire aux CTE (Common Table Expressions). Propage la CSE (Common Subexpressions Elimination) aux sous-requêtes du même niveau lorsque `enable_global_with_statement = 1`. Cela corrige [#17378](https://github.com/ClickHouse/ClickHouse/issues/17378). Cela corrige [https://github.com/ClickHouse/ClickHouse/pull/16575#issuecomment-753416235](https://github.com/ClickHouse/ClickHouse/pull/16575#issuecomment-753416235). [#18684](https://github.com/ClickHouse/ClickHouse/pull/18684) ([Amos Bird](https://github.com/amosbird)).
* Mise à jour de librdkafka vers la version v1.6.0-RC2. Corrige [#18668](https://github.com/ClickHouse/ClickHouse/issues/18668). [#18671](https://github.com/ClickHouse/ClickHouse/pull/18671) ([filimonov](https://github.com/filimonov)).
* En cas d’exception inattendue, redémarre automatiquement le thread d’arrière-plan chargé d’exécuter les requêtes DDL distribuées. Corrige [#17991](https://github.com/ClickHouse/ClickHouse/issues/17991). [#18285](https://github.com/ClickHouse/ClickHouse/pull/18285) ([徐炘](https://github.com/weeds085490)).
* Mise à jour du SDK AWS C++ afin d’utiliser des régions globales dans S3. [#17870](https://github.com/ClickHouse/ClickHouse/pull/17870) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Ajout de la prise en charge de la clause `WITH ... [AND] [PERIODIC] REFRESH [interval_in_sec]` lors de la création de tables `LIVE VIEW`. [#14822](https://github.com/ClickHouse/ClickHouse/pull/14822) ([vzakaznikov](https://github.com/vzakaznikov)).
* Restreint les requêtes `MODIFY TTL` sur les tables `MergeTree` créées avec l’ancienne syntaxe. Auparavant, la requête aboutissait, mais n’avait en réalité aucun effet. [#19064](https://github.com/ClickHouse/ClickHouse/pull/19064) ([Anton Popov](https://github.com/CurtizJ)).

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

* Corrige l’analyse des index pour les fonctions binaires avec argument constant, qui entraînait des résultats de requête erronés. Cela corrige [#18364](https://github.com/ClickHouse/ClickHouse/issues/18364). [#18373](https://github.com/ClickHouse/ClickHouse/pull/18373) ([Amos Bird](https://github.com/amosbird)).
* Corrige le démarrage du serveur en présence de tables avec des expressions par défaut contenant dictGet(). Permet d’obtenir le type de retour de dictGet() sans charger le dictionnaire. [#19805](https://github.com/ClickHouse/ClickHouse/pull/19805) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige un crash du serveur après une requête utilisant la fonction `if` dont le résultat des branches then/else est de type `Tuple`. Le type `Tuple` doit contenir `Array` ou un autre type complexe. Corrige [#18356](https://github.com/ClickHouse/ClickHouse/issues/18356). [#20133](https://github.com/ClickHouse/ClickHouse/pull/20133) ([alesapin](https://github.com/alesapin)).
* `MaterializeMySQL` (fonctionnalité expérimentale) : corrige la réplication pour les instructions qui mettent à jour plusieurs tables. [#20066](https://github.com/ClickHouse/ClickHouse/pull/20066) ([Håvard Kvålen](https://github.com/havardk)).
* Empêche l’erreur "Connection refused" dans Docker pendant l’exécution du script d’initialisation. [#20012](https://github.com/ClickHouse/ClickHouse/pull/20012) ([filimonov](https://github.com/filimonov)).
* `EmbeddedRocksDB` est un moteur de stockage expérimental. Corrige le problème lié à l’absence d’une vérification correcte des types. Code simplifié. Cela clôt [#19967](https://github.com/ClickHouse/ClickHouse/issues/19967). [#19972](https://github.com/ClickHouse/ClickHouse/pull/19972) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige un segfault dans la fonction `fromModifiedJulianDay` lorsque le type de l’argument est `Nullable(T)` pour tout type entier autre que Int32. [#19959](https://github.com/ClickHouse/ClickHouse/pull/19959) ([PHO](https://github.com/depressed-pho)).
* La fonction `greatCircleAngle` renvoyait des résultats inexacts dans les versions précédentes. Cela clôt [#19769](https://github.com/ClickHouse/ClickHouse/issues/19769). [#19789](https://github.com/ClickHouse/ClickHouse/pull/19789) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige un bug rare où certaines opérations sur des tables répliquées (comme une mutation) ne peuvent pas traiter certaines parts après une corruption de données. Corrige [#19593](https://github.com/ClickHouse/ClickHouse/issues/19593). [#19702](https://github.com/ClickHouse/ClickHouse/pull/19702) ([alesapin](https://github.com/alesapin)).
* Le thread d’arrière-plan qui exécute les requêtes `ON CLUSTER` pouvait se bloquer en attendant qu’une table répliquée supprimée termine une opération. C’est corrigé. [#19684](https://github.com/ClickHouse/ClickHouse/pull/19684) ([yiguolei](https://github.com/yiguolei)).
* Corrige une mauvaise désérialisation de la description des colonnes. Cela empêchait d’exécuter un INSERT dans une table avec une colonne nommée `\`. [#19479](https://github.com/ClickHouse/ClickHouse/pull/19479) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Marque le batch distribué comme défectueux en cas de data block vide dans l’un des fichiers. [#19449](https://github.com/ClickHouse/ClickHouse/pull/19449) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug très rare qui pouvait bloquer une mutation après `DROP/DETACH/REPLACE/MOVE PARTITION`. Il avait été partiellement corrigé par [#15537](https://github.com/ClickHouse/ClickHouse/issues/15537) dans la plupart des cas. [#19443](https://github.com/ClickHouse/ClickHouse/pull/19443) ([tavplubix](https://github.com/tavplubix)).
* Corrige une erreur possible `Extremes transform was already added to pipeline`. Corrige [#14100](https://github.com/ClickHouse/ClickHouse/issues/14100). [#19430](https://github.com/ClickHouse/ClickHouse/pull/19430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de la valeur par défaut dans les types de JOIN avec une valeur par défaut non nulle (par ex. certains Enums). Clôt [#18197](https://github.com/ClickHouse/ClickHouse/issues/18197). [#19360](https://github.com/ClickHouse/ClickHouse/pull/19360) ([vdimir](https://github.com/vdimir)).
* Ne pas marquer le fichier de marques pour l’envoi distribué comme défectueux à la réception d’un EOF. [#19290](https://github.com/ClickHouse/ClickHouse/pull/19290) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une fuite de descripteur de fichier de pipe pour `async_socket_for_remote`. [#19153](https://github.com/ClickHouse/ClickHouse/pull/19153) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une lecture infinie depuis un fichier au format `ORC` (introduite dans [#10580](https://github.com/ClickHouse/ClickHouse/issues/10580)). Corrige [#19095](https://github.com/ClickHouse/ClickHouse/issues/19095). [#19134](https://github.com/ClickHouse/ClickHouse/pull/19134) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un problème dans le writer de données MergeTree pouvant entraîner des marks d’une taille supérieure à celle de la granularité fixe. Corrige [#18913](https://github.com/ClickHouse/ClickHouse/issues/18913). [#19123](https://github.com/ClickHouse/ClickHouse/pull/19123) ([alesapin](https://github.com/alesapin)).
* Correction d’un bug au démarrage lorsque ClickHouse n’était pas capable de lire le codec de compression depuis `LowCardinality(Nullable(...))` et levait l’exception `Attempt to read after EOF`. Corrige [#18340](https://github.com/ClickHouse/ClickHouse/issues/18340). [#19101](https://github.com/ClickHouse/ClickHouse/pull/19101) ([alesapin](https://github.com/alesapin)).
* Simplification de l’implémentation de `tupleHammingDistance`. Prise en charge des tuples de n’importe quelle longueur, à condition qu’elle soit identique. Corrige [#19029](https://github.com/ClickHouse/ClickHouse/issues/19029). [#19084](https://github.com/ClickHouse/ClickHouse/pull/19084) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* S’assurer que `groupUniqArray` renvoie le type correct pour un argument de type Enum. Cela clôt [#17875](https://github.com/ClickHouse/ClickHouse/issues/17875). [#19019](https://github.com/ClickHouse/ClickHouse/pull/19019) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de l’erreur possible `Expected single dictionary argument for function` lors de l’utilisation de la fonction `ignore` avec un argument `LowCardinality`. Corrige [#14275](https://github.com/ClickHouse/ClickHouse/issues/14275). [#19016](https://github.com/ClickHouse/ClickHouse/pull/19016) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’insertion d’une colonne `LowCardinality` dans une table avec le moteur `TinyLog`. Corrige [#18629](https://github.com/ClickHouse/ClickHouse/issues/18629). [#19010](https://github.com/ClickHouse/ClickHouse/pull/19010) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un problème mineur dans JOIN : JOIN tente de matérialiser des colonnes constantes, alors que notre code les attend ailleurs. [#18982](https://github.com/ClickHouse/ClickHouse/pull/18982) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Désactivation de `optimize_move_functions_out_of_any`, car l’optimisation n’est pas toujours correcte. Cela clôt [#18051](https://github.com/ClickHouse/ClickHouse/issues/18051). Cela clôt [#18973](https://github.com/ClickHouse/ClickHouse/issues/18973). [#18981](https://github.com/ClickHouse/ClickHouse/pull/18981) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige une exception possible `QueryPipeline stream: different number of columns` causée par la fusion des étapes `Expression` du query plan. Corrige [#18190](https://github.com/ClickHouse/ClickHouse/issues/18190). [#18980](https://github.com/ClickHouse/ClickHouse/pull/18980) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un interblocage très rare à l’arrêt. [#18977](https://github.com/ClickHouse/ClickHouse/pull/18977) ([tavplubix](https://github.com/tavplubix)).
* Corrige de rares plantages lorsque le server n’a plus de mémoire disponible. [#18976](https://github.com/ClickHouse/ClickHouse/pull/18976) ([tavplubix](https://github.com/tavplubix)).
* Corrige un comportement incorrect lorsque la query `ALTER TABLE ... DROP PART 'part_name'` supprime tous les blocs de déduplication de l’ensemble de la partition. Corrige [#18874](https://github.com/ClickHouse/ClickHouse/issues/18874). [#18969](https://github.com/ClickHouse/ClickHouse/pull/18969) ([alesapin](https://github.com/alesapin)).
* Corrige le problème [#18894](https://github.com/ClickHouse/ClickHouse/issues/18894). Ajoute une vérification pour éviter une exception lorsqu’un alias de column long (de type 'table.column', généralement généré automatiquement par des outils BI comme Looker) est identique à un nom de table long. [#18968](https://github.com/ClickHouse/ClickHouse/pull/18968) ([Daniel Qin](https://github.com/mathfool)).
* Corrige l’erreur `Task was not found in task queue` (possible uniquement pour les queries distantes, avec `async_socket_for_remote = 1`). [#18964](https://github.com/ClickHouse/ClickHouse/pull/18964) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un bug où une mutation contenant du texte échappé (comme `ALTER ... UPDATE e = CAST('foo', 'Enum8(\'foo\' = 1')`) était sérialisée incorrectement. Corrige [#18878](https://github.com/ClickHouse/ClickHouse/issues/18878). [#18944](https://github.com/ClickHouse/ClickHouse/pull/18944) ([alesapin](https://github.com/alesapin)).
* ATTACH PARTITION réinitialisera les mutations. [#18804](https://github.com/ClickHouse/ClickHouse/issues/18804). [#18935](https://github.com/ClickHouse/ClickHouse/pull/18935) ([fastio](https://github.com/fastio)).
* Corrige un problème avec `bitmapOrCardinality` qui pouvait entraîner un déréférencement de pointeur nul. Cela clôt [#18911](https://github.com/ClickHouse/ClickHouse/issues/18911). [#18912](https://github.com/ClickHouse/ClickHouse/pull/18912) ([sundyli](https://github.com/sundy-li)).
* Corrige l’erreur `Attempt to read after eof` lors d’une tentative de `CAST` de `NULL` depuis `Nullable(String)` vers `Nullable(Decimal(P, S))`. Désormais, la fonction `CAST` renvoie `NULL` lorsqu’elle ne peut pas analyser une valeur décimale à partir d’une chaîne nullable. Corrige [#7690](https://github.com/ClickHouse/ClickHouse/issues/7690). [#18718](https://github.com/ClickHouse/ClickHouse/pull/18718) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige un problème de conversion de type de données pour le engine MySQL. [#18124](https://github.com/ClickHouse/ClickHouse/pull/18124) ([bo zeng](https://github.com/mis98zb)).
* Corrige une exception d’abandon de clickhouse-client lors de l’exécution d’un simple `select`. [#19790](https://github.com/ClickHouse/ClickHouse/pull/19790) ([taiyang-li](https://github.com/taiyang-li)).

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

* Exécution de [SQLancer](https://twitter.com/RiggerManuel/status/1352345625480884228) (fuzzer SQL logique) dans la CI. [#19006](https://github.com/ClickHouse/ClickHouse/pull/19006) ([Ilya Yatsishin](https://github.com/qoega)).
* Query Fuzzer soumettra les nouveaux tests à un fuzzing plus approfondi. Cela clôt [#18916](https://github.com/ClickHouse/ClickHouse/issues/18916). [#19185](https://github.com/ClickHouse/ClickHouse/pull/19185) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Intégration de [Big List of Naughty Strings](https://github.com/minimaxir/big-list-of-naughty-strings/) pour améliorer le fuzzing. [#19480](https://github.com/ClickHouse/ClickHouse/pull/19480) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de tests d’intégration exécutés avec MSan. [#18974](https://github.com/ClickHouse/ClickHouse/pull/18974) ([alesapin](https://github.com/alesapin)).
* Correction d’erreurs MemorySanitizer dans cyrus-sasl et musl. [#19821](https://github.com/ClickHouse/ClickHouse/pull/19821) ([Ilya Yatsishin](https://github.com/qoega)).
* La vérification d’un nombre insuffisant d’arguments dans la fonction `positionCaseInsensitiveUTF8` a déclenché AddressSanitizer. [#19720](https://github.com/ClickHouse/ClickHouse/pull/19720) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suppression de `--project-directory` pour docker-compose dans le test d’intégration. Correction du formatage des logs du conteneur Docker. [#19706](https://github.com/ClickHouse/ClickHouse/pull/19706) ([Ilya Yatsishin](https://github.com/qoega)).
* Simplification de la génération de macros.xml pour les tests d’intégration. Suppression des logs excessifs de dicttoxml. Le projet dicttoxml n’est plus actif depuis plus de 5 ans. [#19697](https://github.com/ClickHouse/ClickHouse/pull/19697) ([Ilya Yatsishin](https://github.com/qoega)).
* Possibilité d’activer ou de désactiver explicitement le watchdog via la variable d’environnement `CLICKHOUSE_WATCHDOG_ENABLE`. Par défaut, il est activé si le serveur n’est pas connecté à un terminal. [#19522](https://github.com/ClickHouse/ClickHouse/pull/19522) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Possibilité de compiler ClickHouse avec la prise en charge de Kafka sur arm64. [#19369](https://github.com/ClickHouse/ClickHouse/pull/19369) ([filimonov](https://github.com/filimonov)).
* Possibilité de compiler librdkafka sans SSL. [#19337](https://github.com/ClickHouse/ClickHouse/pull/19337) ([filimonov](https://github.com/filimonov)).
* Restauration de l’entrée Kafka dans les builds FreeBSD. [#18924](https://github.com/ClickHouse/ClickHouse/pull/18924) ([Alexandre Snarskii](https://github.com/snar)).
* Correction d’un déréférencement potentiel de nullptr dans la fonction de table `VALUES`. [#19357](https://github.com/ClickHouse/ClickHouse/pull/19357) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Élimination des signalements UBSan dans la fonction `arrayElement`, `substring` et `arraySum`. Corrige [#19305](https://github.com/ClickHouse/ClickHouse/issues/19305). Corrige [#19287](https://github.com/ClickHouse/ClickHouse/issues/19287). Cela clôt [#19336](https://github.com/ClickHouse/ClickHouse/issues/19336). [#19347](https://github.com/ClickHouse/ClickHouse/pull/19347) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-211">
  ## Version de ClickHouse 21.1
</div>

<div id="clickhouse-release-v211332-stable-2021-02-03">
  ### version de ClickHouse v21.1.3.32-stable, 2021-02-03
</div>

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

* Correction d’un crash de l’index BloomFilter. Corrige [#19757](https://github.com/ClickHouse/ClickHouse/issues/19757). [#19884](https://github.com/ClickHouse/ClickHouse/pull/19884) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un crash lors du pushdown de prédicats dans une sous-requête UNION DISTINCT. Corrige [#19855](https://github.com/ClickHouse/ClickHouse/issues/19855). [#19861](https://github.com/ClickHouse/ClickHouse/pull/19861) ([Amos Bird](https://github.com/amosbird)).
* Correction du filtrage sur un UInt8 supérieur à 127. [#19799](https://github.com/ClickHouse/ClickHouse/pull/19799) ([Anton Popov](https://github.com/CurtizJ)).
* Dans les versions précédentes, des arguments inhabituels pour la fonction arrayEnumerateUniq pouvaient provoquer un crash ou une boucle infinie. Cela clôt [#19787](https://github.com/ClickHouse/ClickHouse/issues/19787). [#19788](https://github.com/ClickHouse/ClickHouse/pull/19788) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’un dépassement de pile lors de l’utilisation d’une comparaison précise entre un type arithmétique et un type String. [#19773](https://github.com/ClickHouse/ClickHouse/pull/19773) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un crash lorsque le nom d’une colonne Nested était utilisé dans `WHERE` ou `PREWHERE`. Corrige [#19755](https://github.com/ClickHouse/ClickHouse/issues/19755). [#19763](https://github.com/ClickHouse/ClickHouse/pull/19763) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une erreur de segmentation dans la fonction `bitmapAndnot`. Corrige [#19668](https://github.com/ClickHouse/ClickHouse/issues/19668). [#19713](https://github.com/ClickHouse/ClickHouse/pull/19713) ([Maksim Kita](https://github.com/kitaisreal)).
* Certaines fonctions utilisant de grands entiers peuvent provoquer un segfault. Les grands entiers sont une fonctionnalité expérimentale. Cela clôt [#19667](https://github.com/ClickHouse/ClickHouse/issues/19667). [#19672](https://github.com/ClickHouse/ClickHouse/pull/19672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’un résultat incorrect de la fonction `neighbor` pour l’argument `LowCardinality`. Corrige [#10333](https://github.com/ClickHouse/ClickHouse/issues/10333). [#19617](https://github.com/ClickHouse/ClickHouse/pull/19617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un use-after-free de CompressedWriteBuffer dans Connection après une déconnexion. [#19599](https://github.com/ClickHouse/ClickHouse/pull/19599) ([Azat Khuzhin](https://github.com/azat)).
* La requête `DROP/DETACH TABLE table ON CLUSTER cluster SYNC` pouvait se bloquer ; c’est corrigé. Corrige [#19568](https://github.com/ClickHouse/ClickHouse/issues/19568). [#19572](https://github.com/ClickHouse/ClickHouse/pull/19572) ([tavplubix](https://github.com/tavplubix)).
* Correction de l’expression id dans une requête CREATE DICTIONARY. [#19571](https://github.com/ClickHouse/ClickHouse/pull/19571) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un SIGSEGV avec merge\_tree\_min\_rows\_for\_concurrent\_read/merge\_tree\_min\_bytes\_for\_concurrent\_read=0/UINT64\_MAX. [#19528](https://github.com/ClickHouse/ClickHouse/pull/19528) ([Azat Khuzhin](https://github.com/azat)).
* Un dépassement de tampon (lors d’une lecture en mémoire) était possible si la fonction `addMonth` était appelée avec des arguments spécialement conçus. Cela corrige [#19441](https://github.com/ClickHouse/ClickHouse/issues/19441). Cela corrige [#19413](https://github.com/ClickHouse/ClickHouse/issues/19413). [#19472](https://github.com/ClickHouse/ClickHouse/pull/19472) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Une lecture de mémoire non initialisée était possible dans les fonctions de chiffrement/déchiffrement si une chaîne vide était passée comme IV. Cela clôt [#19391](https://github.com/ClickHouse/ClickHouse/issues/19391). [#19397](https://github.com/ClickHouse/ClickHouse/pull/19397) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’un possible dépassement de tampon dans la bibliothèque Uber H3. Voir [https://github.com/uber/h3/issues/392](https://github.com/uber/h3/issues/392). Cela clôt [#19219](https://github.com/ClickHouse/ClickHouse/issues/19219). [#19383](https://github.com/ClickHouse/ClickHouse/pull/19383) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de la colonne system.parts \_state (LOGICAL\_ERROR lors d’une requête sur cette colonne, en raison d’un ordre incorrect). [#19346](https://github.com/ClickHouse/ClickHouse/pull/19346) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un possible résultat erroné ou d’un segfault lors de l’agrégation lorsqu’une vue matérialisée et sa table cible ont une structure différente. Corrige [#18063](https://github.com/ClickHouse/ClickHouse/issues/18063). [#19322](https://github.com/ClickHouse/ClickHouse/pull/19322) ([tavplubix](https://github.com/tavplubix)).
* Correction de l’erreur `Cannot convert column now64() because it is constant but values of constants are different in source and result`. Suite de [#7156](https://github.com/ClickHouse/ClickHouse/issues/7156). [#19316](https://github.com/ClickHouse/ClickHouse/pull/19316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un bug où des requêtes `ALTER` et `DROP` concurrentes pouvaient se bloquer pendant le traitement d’une table ReplicatedMergeTree. [#19237](https://github.com/ClickHouse/ClickHouse/pull/19237) ([alesapin](https://github.com/alesapin)).
* Correction de l’erreur `There is no checkpoint` lors de l’insertion de données via l’interface HTTP en utilisant le format `Template` ou `CustomSeparated`. Corrige [#19021](https://github.com/ClickHouse/ClickHouse/issues/19021). [#19072](https://github.com/ClickHouse/ClickHouse/pull/19072) ([tavplubix](https://github.com/tavplubix)).
* Désactivation du constant folding pour les sous-requêtes à l’étape d’analyse, lorsque le résultat ne peut pas être calculé. [#18446](https://github.com/ClickHouse/ClickHouse/pull/18446) ([Azat Khuzhin](https://github.com/azat)).
* Une mutation pouvait rester bloquée en attendant une part inexistante après `MOVE` ou `REPLACE PARTITION` ou, dans de rares cas, après `DETACH` ou `DROP PARTITION`. C’est corrigé. [#15537](https://github.com/ClickHouse/ClickHouse/pull/15537) ([tavplubix](https://github.com/tavplubix)).

<div id="clickhouse-release-v211215-stable-2021-01-18">
  ### Version de ClickHouse v21.1.2.15-stable 2021-01-18
</div>

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

* Le paramètre `input_format_null_as_default` est activé par défaut. [#17525](https://github.com/ClickHouse/ClickHouse/pull/17525) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Vérifie les contraintes des paramètres de profil issus de la config. Le serveur ne démarrera pas si users.xml contient des paramètres qui ne respectent pas les contraintes correspondantes. [#18486](https://github.com/ClickHouse/ClickHouse/pull/18486) ([tavplubix](https://github.com/tavplubix)).
* Restreint `ALTER MODIFY SETTING` afin d'empêcher la modification des paramètres de stockage qui affectent les data parts (`write_final_mark` et `enable_mixed_granularity_parts`). [#18306](https://github.com/ClickHouse/ClickHouse/pull/18306) ([Amos Bird](https://github.com/amosbird)).
* Définit `insert_quorum_parallel` à 1 par défaut. Il est nettement plus pratique à utiliser que les quorum inserts « séquentiels ». Mais si vous dépendez de la cohérence séquentielle, vous devez remettre ce paramètre à zéro. [#17567](https://github.com/ClickHouse/ClickHouse/pull/17567) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Supprime la fonction `sumburConsistentHash`. Cela clôt [#18120](https://github.com/ClickHouse/ClickHouse/issues/18120). [#18656](https://github.com/ClickHouse/ClickHouse/pull/18656) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suppression des fonctions d'agrégation `timeSeriesGroupSum`, `timeSeriesGroupRateSum`, parce qu'un de mes amis a dit qu'elles n'avaient jamais fonctionné. Cela corrige [#16869](https://github.com/ClickHouse/ClickHouse/issues/16869). Si vous avez réussi à utiliser ces fonctions, envoyez un e-mail à [feedback@clickhouse.com](mailto:feedback@clickhouse.com). [#17423](https://github.com/ClickHouse/ClickHouse/pull/17423) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Interdit `toUnixTimestamp(Date())` (auparavant, cela renvoyait simplement la représentation UInt16 de Date). [#17376](https://github.com/ClickHouse/ClickHouse/pull/17376) ([Azat Khuzhin](https://github.com/azat)).
* Autorise l'utilisation des types entiers étendus (`Int128`, `Int256`, `UInt256`) dans les fonctions `avg` et `avgWeighted`. Autorise également l'utilisation de types différents (entier, décimal, virgule flottante) pour la valeur et le poids dans la fonction `avgWeighted`. Il s'agit d'un changement incompatible avec les versions précédentes : désormais, les fonctions `avg` et `avgWeighted` renvoient toujours `Float64` (comme indiqué dans la documentation). Avant ce changement, le return type des arguments `Decimal` était aussi `Decimal`. [#15419](https://github.com/ClickHouse/ClickHouse/pull/15419) ([Mike](https://github.com/myrrc)).
* L'expression `toUUID(N)` ne fonctionne plus. Remplacez-la par `toUUID('00000000-0000-0000-0000-000000000000')`. Ce changement est motivé par les résultats peu intuitifs de `toUUID(N)` lorsque N est différent de zéro.
* Les certificats SSL avec un « key usage » incorrect sont rejetés. Dans les versions précédentes, ils fonctionnaient. Voir [#19262](https://github.com/ClickHouse/ClickHouse/issues/19262).
* Les références `incl` vers le fichier de substitutions (`/etc/metrika.xml`) ont été supprimées de la config par défaut (`<remote_servers>`, `<zookeeper>`, `<macros>`, `<compression>`, `<networks>`). Si vous utilisiez le fichier de substitutions et que vous vous appuyiez sur ces références implicites, vous devez les rétablir manuellement et explicitement en ajoutant les sections correspondantes avec les attributs `incl="..."` avant la mise à jour. Voir [#18740](https://github.com/ClickHouse/ClickHouse/pull/18740) ([alexey-milovidov](https://github.com/alexey-milovidov)).

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

* Prise en charge du protocole gRPC dans ClickHouse. [#15111](https://github.com/ClickHouse/ClickHouse/pull/15111) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge de plusieurs clusters ZooKeeper. [#17070](https://github.com/ClickHouse/ClickHouse/pull/17070) ([fastio](https://github.com/fastio)).
* Ajout des requêtes `REPLACE TABLE` et `CREATE OR REPLACE TABLE`. [#18521](https://github.com/ClickHouse/ClickHouse/pull/18521) ([tavplubix](https://github.com/tavplubix)).
* Implémentation de `UNION DISTINCT` et traitement de la clause `UNION` simple comme `UNION DISTINCT` par défaut. Ajout d'un paramètre `union_default_mode` qui permet de le traiter comme `UNION ALL` ou d'exiger une spécification explicite du mode. [#16338](https://github.com/ClickHouse/ClickHouse/pull/16338) ([flynn](https://github.com/ucasFL)).
* Ajout de la fonction `accurateCastOrNull`. Cela corrige [#10290](https://github.com/ClickHouse/ClickHouse/issues/10290). Ajout de conversions de types dans les expressions `x IN (subquery)`. Cela corrige [#10266](https://github.com/ClickHouse/ClickHouse/issues/10266). [#16724](https://github.com/ClickHouse/ClickHouse/pull/16724) ([Maksim Kita](https://github.com/kitaisreal)).
* IP Dictionary prend directement en charge les types `IPv4` / `IPv6`. [#17571](https://github.com/ClickHouse/ClickHouse/pull/17571) ([vdimir](https://github.com/vdimir)).
* IP Dictionary prend en charge la récupération par clé. Résout [#18241](https://github.com/ClickHouse/ClickHouse/issues/18241). [#18480](https://github.com/ClickHouse/ClickHouse/pull/18480) ([vdimir](https://github.com/vdimir)).
* Ajout de la prise en charge de la compression/décompression `*.zst` pour l'import et l'export de données. Cela permet d'utiliser `*.zst` dans la fonction `file()` et `Content-encoding: zstd` dans le client HTTP. Cela corrige [#16791 ](https://github.com/ClickHouse/ClickHouse/issues/16791). [#17144](https://github.com/ClickHouse/ClickHouse/pull/17144) ([Abi Palagashvili](https://github.com/fibersel)).
* Ajout des fonctions d'agrégation `mannWitneyUTest`, `studentTTest` et `welchTTest`. Légère refactorisation de `rankCorr`. [#16883](https://github.com/ClickHouse/ClickHouse/pull/16883) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout des fonctions `countMatches`/`countMatchesCaseInsensitive`. [#17459](https://github.com/ClickHouse/ClickHouse/pull/17459) ([Azat Khuzhin](https://github.com/azat)).
* Implémentation de `countSubstrings()`/`countSubstringsCaseInsensitive()`/`countSubstringsCaseInsensitiveUTF8()` (compte le nombre d'occurrences de sous-chaînes). [#17347](https://github.com/ClickHouse/ClickHouse/pull/17347) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d'informations sur les bases de données, tables et colonnes utilisées dans system.query\_log. Ajout des champs `query_kind` et `normalized_query_hash`. [#17726](https://github.com/ClickHouse/ClickHouse/pull/17726) ([Amos Bird](https://github.com/amosbird)).
* Ajout d'un paramètre `optimize_on_insert`. Lorsqu'il est activé, il applique au bloc de données INSERTé la même transformation que si une fusion avait été effectuée sur ce bloc (par ex. Replacing, Collapsing, Aggregating...). Ce paramètre est activé par défaut. Cela peut influencer le comportement des vues matérialisées et de MaterializeMySQL (voir la description détaillée). Cela corrige [#10683](https://github.com/ClickHouse/ClickHouse/issues/10683). [#16954](https://github.com/ClickHouse/ClickHouse/pull/16954) ([Kruglov Pavel](https://github.com/Avogar)).
* Authentification Kerberos pour HDFS. [#16621](https://github.com/ClickHouse/ClickHouse/pull/16621) ([Ilya Golshtein](https://github.com/ilejn)).
* Prise en charge de l’instruction `SHOW SETTINGS` pour afficher les paramètres dans system.settings. L’instruction `SHOW CHANGED SETTINGS` et la clause `LIKE/ILIKE` sont également prises en charge. [#18056](https://github.com/ClickHouse/ClickHouse/pull/18056) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* La fonction `position` prend désormais en charge la syntaxe `POSITION(needle IN haystack)` pour assurer la compatibilité SQL. Cela clôt [#18701](https://github.com/ClickHouse/ClickHouse/issues/18701). ... [#18779](https://github.com/ClickHouse/ClickHouse/pull/18779) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Un nouveau paramètre de stockage, `max_partitions_to_read`, est désormais disponible pour les tables de la famille MergeTree. Il limite le nombre maximal de partitions accessibles dans une requête. Un paramètre utilisateur, `force_max_partition_limit`, a également été ajouté pour appliquer cette contrainte. [#18712](https://github.com/ClickHouse/ClickHouse/pull/18712) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la colonne `query_id` à `system.part_log` pour les parties insérées. Clôt [#10097](https://github.com/ClickHouse/ClickHouse/issues/10097). [#18644](https://github.com/ClickHouse/ClickHouse/pull/18644) ([flynn](https://github.com/ucasFL)).
* Autorise `CREATE TABLE AS SELECT` avec spécification des colonnes. Exemple : `CREATE TABLE t1 (x String) ENGINE = Memory AS SELECT 1;`. [#18060](https://github.com/ClickHouse/ClickHouse/pull/18060) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout des fonctions d’agrégation `arrayMin`, `arrayMax`, `arrayAvg`. [#18032](https://github.com/ClickHouse/ClickHouse/pull/18032) ([Maksim Kita](https://github.com/kitaisreal)).
* Implémentation de la requête `ATTACH TABLE name FROM 'path/to/data/' (col1 Type1, ...`. Elle crée une nouvelle table avec la structure fournie et y rattache les données de table depuis le répertoire indiqué dans `user_files`. [#17903](https://github.com/ClickHouse/ClickHouse/pull/17903) ([tavplubix](https://github.com/tavplubix)).
* Ajout de la prise en charge des mutations pour StorageMemory. Cela clôt [#9117](https://github.com/ClickHouse/ClickHouse/issues/9117). [#15127](https://github.com/ClickHouse/ClickHouse/pull/15127) ([flynn](https://github.com/ucasFL)).
* Prise en charge de la syntaxe `EXISTS DATABASE name`. [#18458](https://github.com/ClickHouse/ClickHouse/pull/18458) ([Du Chuan](https://github.com/spongedu)).
* Prise en charge des fonctions intégrées `isIPv4String` && `isIPv6String`, comme dans [MySQL](https://github.com/ClickHouse/ClickHouse/compare/master...spongedu:support_is_ipv4?expand=1). [#18349](https://github.com/ClickHouse/ClickHouse/pull/18349) ([Du Chuan](https://github.com/spongedu)).
* Ajout d’un nouveau paramètre, `insert_distributed_one_random_shard = 1`, pour autoriser l’insertion dans une table distribuée à plusieurs shards sans clé de distribution. [#18294](https://github.com/ClickHouse/ClickHouse/pull/18294) ([Amos Bird](https://github.com/amosbird)).
* Ajout des paramètres `min_compress_block_size` et `max_compress_block_size` à MergeTreeSettings, qui ont une priorité supérieure à celle des paramètres globaux et prennent effet lorsqu’ils sont définis. Clôt [13890](https://github.com/ClickHouse/ClickHouse/issues/13890). [#17867](https://github.com/ClickHouse/ClickHouse/pull/17867) ([flynn](https://github.com/ucasFL)).
* Ajout de la prise en charge des bitmaps roaring 64 bits. [#17858](https://github.com/ClickHouse/ClickHouse/pull/17858) ([Andy Yang](https://github.com/andyyzh)).
* Extension de la syntaxe `OPTIMIZE ... DEDUPLICATE` pour autoriser une liste explicite (ou implicite avec astérisque/transformateurs de colonnes) des colonnes à vérifier pour la déduplication. ... [#17846](https://github.com/ClickHouse/ClickHouse/pull/17846) ([Vasily Nemkov](https://github.com/Enmk)).
* Ajout des fonctions `toModifiedJulianDay`, `fromModifiedJulianDay`, `toModifiedJulianDayOrNull` et `fromModifiedJulianDayOrNull`. Ces fonctions convertissent une date du calendrier grégorien proleptique en nombre de jours juliens modifiés, et inversement. [#17750](https://github.com/ClickHouse/ClickHouse/pull/17750) ([PHO](https://github.com/depressed-pho)).
* Ajout de la possibilité d’utiliser une liste TLD personnalisée : fonctions `firstSignificantSubdomainCustom` et `cutToFirstSignificantSubdomainCustom`. [#17748](https://github.com/ClickHouse/ClickHouse/pull/17748) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la prise en charge du protocole `PROXYv1` pour encapsuler l’interface TCP native. Permet d’utiliser l’adresse IP transmise par le proxy comme clé de quota (pour l’adresse `PROXYv1` comme pour `X-Forwarded-For` de l’interface HTTP). C’est utile lorsque vous donnez accès à ClickHouse uniquement via un proxy de confiance (par ex. CloudFlare), tout en souhaitant comptabiliser les ressources utilisateur selon leur adresse IP d’origine. Cela corrige [#17268](https://github.com/ClickHouse/ClickHouse/issues/17268). [#17707](https://github.com/ClickHouse/ClickHouse/pull/17707) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Désormais, `clickhouse-client` permet d’ouvrir `EDITOR` pour modifier les commandes. `Alt-Shift-E`. [#17665](https://github.com/ClickHouse/ClickHouse/pull/17665) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la fonction `encodeXMLComponent` pour échapper les caractères afin d’insérer une chaîne dans un nœud de texte XML ou un attribut. [#17659](https://github.com/ClickHouse/ClickHouse/pull/17659) ([nauta](https://github.com/nautaa)).
* Introduction de la syntaxe `DETACH TABLE/VIEW ... PERMANENTLY`, afin qu’après redémarrage la table ne réapparaisse pas automatiquement (uniquement sur demande explicite). La table peut toujours être rattachée à l’aide de la syntaxe courte ATTACH TABLE. Implémente [#5555](https://github.com/ClickHouse/ClickHouse/issues/5555). Corrige [#13850](https://github.com/ClickHouse/ClickHouse/issues/13850). [#17642](https://github.com/ClickHouse/ClickHouse/pull/17642) ([filimonov](https://github.com/filimonov)).
* Ajout de métriques asynchrones sur le nombre total de lignes, d’octets et de parts dans les tables MergeTree. Cela corrige [#11714](https://github.com/ClickHouse/ClickHouse/issues/11714). [#17639](https://github.com/ClickHouse/ClickHouse/pull/17639) ([flynn](https://github.com/ucasFL)).
* Ajout des paramètres `limit` et `offset` pour la pagination hors SQL : [#16176](https://github.com/ClickHouse/ClickHouse/issues/16176) Ils sont utiles pour créer des API. Ces deux paramètres affecteront une requête SELECT comme s’ils y étaient ajoutés ainsi : `select * from (your_original_select_query) t limit xxx offset xxx;`. [#17633](https://github.com/ClickHouse/ClickHouse/pull/17633) ([hexiaoting](https://github.com/hexiaoting)).
* Ajout d’un nouveau combinator d’agrégation : `-SimpleState`, pour construire des types `SimpleAggregateFunction` via une requête. C'est utile pour définir une MaterializedView du moteur AggregatingMergeTree, et profitera également aux projections. [#16853](https://github.com/ClickHouse/ClickHouse/pull/16853) ([Amos Bird](https://github.com/amosbird)).
* Ajout du paramètre `queries-file` pour `clickhouse-client` et `clickhouse-local`. [#15930](https://github.com/ClickHouse/ClickHouse/pull/15930) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout du paramètre `query` pour `clickhouse-benchmark`. [#17832](https://github.com/ClickHouse/ClickHouse/pull/17832) ([Maksim Kita](https://github.com/kitaisreal)).
* `EXPLAIN AST` prend désormais en charge des requêtes autres que `SELECT`. [#18136](https://github.com/ClickHouse/ClickHouse/pull/18136) ([taiyang-li](https://github.com/taiyang-li)).

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

* Ajout de fonctions de calcul de minHash et simHash pour les n-grammes de texte et les shingles. Elles sont destinées à la recherche de quasi-doublons. Les fonctions `bitHammingDistance` et `tupleHammingDistance` ont également été ajoutées. [#7649](https://github.com/ClickHouse/ClickHouse/pull/7649) ([flynn](https://github.com/ucasFL)).
* Ajout d'un nouveau type de données `Map`. Voir [#1841](https://github.com/ClickHouse/ClickHouse/issues/1841). La première version de `Map` ne prend en charge que le type `String` pour les clés et les valeurs. [#15806](https://github.com/ClickHouse/ClickHouse/pull/15806) ([hexiaoting](https://github.com/hexiaoting)).
* Implémentation d'un analyseur SQL alternatif basé sur le runtime ANTLR4 et généré à partir d'une grammaire EBNF. [#11298](https://github.com/ClickHouse/ClickHouse/pull/11298) ([Ivan](https://github.com/abyss7)).

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

* Nouvelle implémentation du Dictionary IP avec une consommation mémoire réduite, de meilleures performances dans certains cas et des corrections de bugs. [#16804](https://github.com/ClickHouse/ClickHouse/pull/16804) ([vdimir](https://github.com/vdimir)).
* Formatage parallèle pour l’export de données. [#11617](https://github.com/ClickHouse/ClickHouse/pull/11617) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Intégration LDAP : ajout du paramètre `verification_cooldown` à la configuration de connexion au serveur LDAP pour permettre la mise en cache des tentatives de "bind" réussies pendant une durée configurable. [#15988](https://github.com/ClickHouse/ClickHouse/pull/15988) ([Denis Glazachev](https://github.com/traceon)).
* Ajout de l’option `--no-system-table` à `clickhouse-local` pour l’exécuter sans tables système. Cela évite l’initialisation de `DateLUT`, qui peut prendre un temps notable (des dizaines de millisecondes) au démarrage. [#18899](https://github.com/ClickHouse/ClickHouse/pull/18899) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Remplacement de `PODArray` par `PODArrayWithStackMemory` dans `AggregateFunctionWindowFunnelData` pour améliorer les performances de la fonction `windowFunnel`. [#18817](https://github.com/ClickHouse/ClickHouse/pull/18817) ([flynn](https://github.com/ucasFL)).
* N’envoie plus de blocs vides aux shards lors d’un INSERT synchrone dans une table Distributed. Cela résout [#14571](https://github.com/ClickHouse/ClickHouse/issues/14571). [#18775](https://github.com/ClickHouse/ClickHouse/pull/18775) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Lecture optimisée pour StorageMemory. [#18052](https://github.com/ClickHouse/ClickHouse/pull/18052) ([Maksim Kita](https://github.com/kitaisreal)).
* Utilisation de l’algorithme Dragonbox pour la conversion de float en String au lieu de ryu. Cela améliore significativement les performances de cette conversion. [#17831](https://github.com/ClickHouse/ClickHouse/pull/17831) ([Maksim Kita](https://github.com/kitaisreal)).
* Accélération de l’implémentation de `IPv6CIDRToRange`. [#17569](https://github.com/ClickHouse/ClickHouse/pull/17569) ([vdimir](https://github.com/vdimir)).
* Ajout du paramètre `remerge_sort_lowered_memory_bytes_ratio` (si l’utilisation de la mémoire après remerge n’est pas réduite selon ce ratio, remerge sera désactivé). [#17539](https://github.com/ClickHouse/ClickHouse/pull/17539) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration des performances d’AggregatingMergeTree avec SimpleAggregateFunction(String) dans la clé primaire. [#17109](https://github.com/ClickHouse/ClickHouse/pull/17109) ([Azat Khuzhin](https://github.com/azat)).
* Le combinator `-If` est maintenant dévirtualisé, et `count` est correctement vectorisé. Voir [cette PR](https://github.com/ClickHouse/ClickHouse/pull/17041). [#17043](https://github.com/ClickHouse/ClickHouse/pull/17043) ([Amos Bird](https://github.com/amosbird)).
* Correction des performances de lecture depuis des tables `Merge` sur un très grand nombre de tables `MergeTree`. Résout [#7748](https://github.com/ClickHouse/ClickHouse/issues/7748). [#16988](https://github.com/ClickHouse/ClickHouse/pull/16988) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration des performances de la fonction `repeat`. [#16937](https://github.com/ClickHouse/ClickHouse/pull/16937) ([satanson](https://github.com/satanson)).
* Légère amélioration des performances de l’analyse des float. [#16809](https://github.com/ClickHouse/ClickHouse/pull/16809) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la possibilité d’ignorer les partitions fusionnées pour `OPTIMIZE TABLE ... FINAL`. [#15939](https://github.com/ClickHouse/ClickHouse/pull/15939) ([Kruglov Pavel](https://github.com/Avogar)).
* Intégration de [fast\_float de Daniel Lemire](https://github.com/lemire/fast_float) pour analyser les nombres à virgule flottante. [#16787](https://github.com/ClickHouse/ClickHouse/pull/16787) ([Maksim Kita](https://github.com/kitaisreal)). Cette fonctionnalité n’est pas activée, car ses performances restent inférieures à celles de l’analyseur de nombres à virgule flottante approximatif de ClickHouse.
* Correction de max\_distributed\_connections (affecte `prefer_localhost_replica = 1` et `max_threads != max_distributed_connections`). [#17848](https://github.com/ClickHouse/ClickHouse/pull/17848) ([Azat Khuzhin](https://github.com/azat)).
* Choix adaptatif entre un envoi en une seule part et un envoi en plusieurs parts lors de l’envoi de données vers S3. L’envoi en une seule part est contrôlé par un nouveau paramètre `max_single_part_upload_size`. [#17934](https://github.com/ClickHouse/ClickHouse/pull/17934) ([Pavel Kovalenko](https://github.com/Jokser)).
* Prise en charge des tâches asynchrones dans `PipelineExecutor`. Prise en charge initiale des sockets asynchrones pour les requêtes distantes. [#17868](https://github.com/ClickHouse/ClickHouse/pull/17868) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Possibilité d’utiliser l’optimisation `optimize_move_to_prewhere` avec des parts compactes lorsque la taille des colonnes est inconnue. [#17330](https://github.com/ClickHouse/ClickHouse/pull/17330) ([Anton Popov](https://github.com/CurtizJ)).

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

* Évite les interblocages lors de l’exécution d’un `INSERT SELECT` dans la même table avec les moteurs de table `TinyLog` ou `Log`. Cela clôt [#6802](https://github.com/ClickHouse/ClickHouse/issues/6802). Cela clôt [#18691](https://github.com/ClickHouse/ClickHouse/issues/18691). Cela clôt [#16812](https://github.com/ClickHouse/ClickHouse/issues/16812). Cela clôt [#14570](https://github.com/ClickHouse/ClickHouse/issues/14570). [#15260](https://github.com/ClickHouse/ClickHouse/pull/15260) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de la syntaxe `SHOW CREATE VIEW name`, comme dans [MySQL](https://dev.mysql.com/doc/refman/5.7/en/show-create-view.html). [#18095](https://github.com/ClickHouse/ClickHouse/pull/18095) ([Du Chuan](https://github.com/spongedu)).
* Toutes les requêtes de type `Decimal * Float` ou inversement sont autorisées, y compris les requêtes d’agrégation (par ex. `SELECT sum(decimal_field * 1.1)` ou `SELECT dec_col * float_col`) ; le type de résultat est Float32 ou Float64. [#18145](https://github.com/ClickHouse/ClickHouse/pull/18145) ([Mike](https://github.com/myrrc)).
* Amélioration de la web UI minimale : ajout de l’historique ; ajout de la prise en charge du partage ; prévention des race conditions entre différentes requêtes ; ajout d’indicateurs de requête en cours et prête ; ajout d’une favicon ; détection de Ctrl+Enter si la zone de texte n’a pas le focus. [#17293](https://github.com/ClickHouse/ClickHouse/pull/17293) [#17770](https://github.com/ClickHouse/ClickHouse/pull/17770) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* clickhouse-server n'envoyait pas de requête `close` au serveur ZooKeeper. [#16837](https://github.com/ClickHouse/ClickHouse/pull/16837) ([alesapin](https://github.com/alesapin)).
* Évite l’arrêt anormal du serveur en cas de limites mémoire trop faibles (`max_memory_usage = 1` / `max_untracked_memory = 1`). [#17453](https://github.com/ClickHouse/ClickHouse/pull/17453) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le résultat non déterministe de la fonction `windowFunnel` lorsque différents événements ont le même horodatage. [#18884](https://github.com/ClickHouse/ClickHouse/pull/18884) ([Fuwang Hu](https://github.com/fuwhu)).
* Docker : définit explicitement l’uid / gid de l’utilisateur et du groupe clickhouse sur des valeurs fixes (101) dans les Docker images de clickhouse-server. [#19096](https://github.com/ClickHouse/ClickHouse/pull/19096) ([filimonov](https://github.com/filimonov)).
* INSERT asynchrones dans les tables `Distributed` : deux nouveaux settings (par analogie avec la famille MergeTree) ont été ajoutés : - `fsync_after_insert` - Effectue un fsync pour chaque élément inséré. Cela réduira les performances des inserts. - `fsync_directories` - Effectue un fsync pour le répertoire temporaire (utilisé uniquement pour les INSERT asynchrones) après toutes les opérations (écritures, renommages, etc.). [#18864](https://github.com/ClickHouse/ClickHouse/pull/18864) ([Azat Khuzhin](https://github.com/azat)).
* La commande `SYSTEM KILL` fonctionne désormais dans Docker. Cela clôt [#18847](https://github.com/ClickHouse/ClickHouse/issues/18847). [#18848](https://github.com/ClickHouse/ClickHouse/pull/18848) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Développe les macros dans le path zk lors de l’exécution de `FETCH PARTITION`. [#18839](https://github.com/ClickHouse/ClickHouse/pull/18839) ([fastio](https://github.com/fastio)).
* Applique `ALTER TABLE <replicated_table> ON CLUSTER MODIFY SETTING ...` à toutes les répliques, car nous ne répliquons pas ce type de commandes ALTER. [#18789](https://github.com/ClickHouse/ClickHouse/pull/18789) ([Amos Bird](https://github.com/amosbird)).
* Autoriser le transformateur de colonnes `EXCEPT` à accepter une chaîne comme motif d’expression régulière. Cela corrige [#18685](https://github.com/ClickHouse/ClickHouse/issues/18685) . [#18699](https://github.com/ClickHouse/ClickHouse/pull/18699) ([Amos Bird](https://github.com/amosbird)).
* Correction de SimpleAggregateFunction dans SummingMergeTree. Désormais, il fonctionne comme AggregateFunction. Dans les versions précédentes, les valeurs étaient additionnées quelle que soit la fonction d’agrégation. Cela corrige [#18564](https://github.com/ClickHouse/ClickHouse/issues/18564) . [#8052](https://github.com/ClickHouse/ClickHouse/issues/8052). [#18637](https://github.com/ClickHouse/ClickHouse/pull/18637) ([Amos Bird](https://github.com/amosbird)). Autre correction de l’utilisation de `SimpleAggregateFunction` dans `SummingMergeTree`. Cela corrige [#18676](https://github.com/ClickHouse/ClickHouse/issues/18676) . [#18677](https://github.com/ClickHouse/ClickHouse/pull/18677) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une erreur d’assertion dans l’allocator lorsque le dernier argument de la fonction bar est NaN. Désormais, une exception ClickHouse standard est levée. Cela corrige [#17876](https://github.com/ClickHouse/ClickHouse/issues/17876). [#18520](https://github.com/ClickHouse/ClickHouse/pull/18520) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d’un problème d’ergonomie : absence de retour à la ligne après le message d’exception dans certains outils. [#18444](https://github.com/ClickHouse/ClickHouse/pull/18444) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de la possibilité de modifier le type des colonnes de clé primaire et de clé de partition de `LowCardinality(Type)` en `Type` et inversement. Ajout également de la possibilité de modifier le type d’une colonne de clé primaire de `EnumX ` en `IntX`. Corrige [#5604](https://github.com/ClickHouse/ClickHouse/issues/5604). [#18362](https://github.com/ClickHouse/ClickHouse/pull/18362) ([alesapin](https://github.com/alesapin)).
* Implémentation de l’accès aux champs via `untuple`. [#18133](https://github.com/ClickHouse/ClickHouse/issues/18133). [#18309](https://github.com/ClickHouse/ClickHouse/pull/18309) ([hexiaoting](https://github.com/hexiaoting)).
* Autoriser l’analyse des champs Array à partir de CSV lorsqu’ils sont représentés sous forme de chaîne contenant un tableau sérialisé comme un CSV imbriqué. Exemple : `"[""Hello"", ""world"", ""42"""" TV""]"` sera analysé comme `['Hello', 'world', '42" TV']`. Autoriser également l’analyse d’un tableau dans CSV sous forme de chaîne sans crochets englobants. Exemple : `"'Hello', 'world', '42"" TV'"` sera analysé comme `['Hello', 'world', '42" TV']`. [#18271](https://github.com/ClickHouse/ClickHouse/pull/18271) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration du calcul de la granularité adaptative pour les wide parts de MergeTree. [#18223](https://github.com/ClickHouse/ClickHouse/pull/18223) ([alesapin](https://github.com/alesapin)).
* Désormais, `clickhouse install` peut fonctionner sur macOS. Le problème venait de l’absence de procfs sur cette plateforme. [#18201](https://github.com/ClickHouse/ClickHouse/pull/18201) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Meilleures indications pour la syntaxe des requêtes `SHOW ...`. [#18183](https://github.com/ClickHouse/ClickHouse/pull/18183) ([Du Chuan](https://github.com/spongedu)).
* Prise en charge de `Int128`, `Int256` et `UInt256` pour l’agrégation de tableaux `arrayMin`, `arrayMax`, `arraySum`, `arrayAvg`. [#18147](https://github.com/ClickHouse/ClickHouse/pull/18147) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de `disk` aux paramètres de stockage de Set et Join. [#18112](https://github.com/ClickHouse/ClickHouse/pull/18112) ([Grigory Pervakov](https://github.com/GrigoryPervakov)).
* Contrôle d’accès : désormais, la fonction de table `merge()` exige que l’utilisateur courant dispose du privilège `SELECT` sur chaque table dont elle lit les données. Cette PR corrige [#16964](https://github.com/ClickHouse/ClickHouse/issues/16964). [#18104](https://github.com/ClickHouse/ClickHouse/pull/18104) [#17983](https://github.com/ClickHouse/ClickHouse/pull/17983) ([Vitaly Baranov](https://github.com/vitlibar)).
* Les tables temporaires ne sont désormais visibles dans les tables système `system.tables` et `system.columns` que dans les sessions où elles ont été créées. La base de données interne `_temporary_and_external_tables` est désormais masquée dans ces tables système ; à la place, les tables temporaires sont affichées comme des tables avec une base de données vide et l’indicateur `is_temporary` activé. [#18014](https://github.com/ClickHouse/ClickHouse/pull/18014) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’un problème d’affichage de clickhouse-client lorsque la taille de la fenêtre du terminal change. [#18009](https://github.com/ClickHouse/ClickHouse/pull/18009) ([Amos Bird](https://github.com/amosbird)).
* Réduction de la verbosité des événements journalisés lorsque le client coupe la connexion, de Warning à Information. [#18005](https://github.com/ClickHouse/ClickHouse/pull/18005) ([filimonov](https://github.com/filimonov)).
* Suppression forcée des fichiers de métadonnées vides ou corrompus du système de fichiers pour DiskS3. S3 est une fonctionnalité expérimentale. [#17935](https://github.com/ClickHouse/ClickHouse/pull/17935) ([Pavel Kovalenko](https://github.com/Jokser)).
* Contrôle d’accès : `allow_introspection_functions=0` interdit l’utilisation des fonctions d’introspection, mais n’empêche plus l’attribution de privilèges les concernant (le bénéficiaire devra définir `allow_introspection_functions=1` pour lui-même afin de pouvoir utiliser ce privilège). De même, `allow_ddl=0` interdit l’utilisation des commandes DDL, mais n’empêche plus l’attribution de privilèges les concernant. [#17908](https://github.com/ClickHouse/ClickHouse/pull/17908) ([Vitaly Baranov](https://github.com/vitlibar)).
* Amélioration de l’ergonomie : suggestions pour les noms de colonnes. [#17112](https://github.com/ClickHouse/ClickHouse/issues/17112). [#17857](https://github.com/ClickHouse/ClickHouse/pull/17857) ([fastio](https://github.com/fastio)).
* Ajout d’informations de diagnostic lorsque deux tables Merge tentent de lire les données l’une de l’autre. [#17854](https://github.com/ClickHouse/ClickHouse/pull/17854) ([徐炘](https://github.com/weeds085490)).
* Possibilité désormais de redéfinir la valeur du timeout pour un script en cours d’exécution utilisant l’image Docker ClickHouse. [#17818](https://github.com/ClickHouse/ClickHouse/pull/17818) ([Guillaume Tassery](https://github.com/YiuRULE)).
* Vérification de la grammaire de définition du moteur des tables de logs système afin d’éviter certaines erreurs de configuration. À noter que cette vérification grammaticale n’est pas sémantique, ce qui signifie que des erreurs telles que des colonnes inexistantes ou des fonctions dans les expressions ne seront détectées qu’au moment de la création de la table. [#17739](https://github.com/ClickHouse/ClickHouse/pull/17739) ([Du Chuan](https://github.com/spongedu)).
* Ne lève plus d’exception lors de l’initialisation de la table `RabbitMQ` s’il n’y a pas de connexion (elle se reconnectera en arrière-plan). [#17709](https://github.com/ClickHouse/ClickHouse/pull/17709) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ne pas ignorer les limites de mémoire du serveur lors du flush de Buffer. [#17646](https://github.com/ClickHouse/ClickHouse/pull/17646) ([Azat Khuzhin](https://github.com/azat)).
* Passage à une version corrigée de RocksDB (issue de ClickHouse-Extras) pour corriger une erreur de type use-after-free. [#17643](https://github.com/ClickHouse/ClickHouse/pull/17643) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout d’un décalage au message d’exception pour l’analyse syntaxique parallèle. Cela corrige [#17457](https://github.com/ClickHouse/ClickHouse/issues/17457). [#17641](https://github.com/ClickHouse/ClickHouse/pull/17641) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ne pas renvoyer l’erreur "Too many parts" au milieu d’une requête INSERT. [#17566](https://github.com/ClickHouse/ClickHouse/pull/17566) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autoriser les paramètres de requête dans l’instruction UPDATE d’une requête ALTER. Corrige [#10976](https://github.com/ClickHouse/ClickHouse/issues/10976). [#17563](https://github.com/ClickHouse/ClickHouse/pull/17563) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Obfuscateur de requêtes : éviter d’utiliser certains mots-clés SQL comme noms d’identifiants. [#17526](https://github.com/ClickHouse/ClickHouse/pull/17526) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Exporter la DDL entry maximale actuellement exécutée par DDLWorker via une métrique du serveur. C’est utile pour vérifier si DDLWorker est bloqué quelque part. [#17464](https://github.com/ClickHouse/ClickHouse/pull/17464) ([Amos Bird](https://github.com/amosbird)).
* Exporter les métriques asynchrones des threads actuels de tous les serveurs. C’est utile pour diagnostiquer des problèmes comme [celui-ci](https://github.com/ClickHouse-Extras/poco/pull/28). [#17463](https://github.com/ClickHouse/ClickHouse/pull/17463) ([Amos Bird](https://github.com/amosbird)).
* Inclure les colonnes dynamiques comme MATERIALIZED / ALIAS dans les wildcard queries lorsque les paramètres `asterisk_include_materialized_columns` et `asterisk_include_alias_columns` sont activés. [#17462](https://github.com/ClickHouse/ClickHouse/pull/17462) ([Ken Chen](https://github.com/chenziliang)).
* Autoriser la définition de [TTL](/fr/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) pour supprimer les anciennes entrées des [tables de logs système](/fr/reference/system-tables/index), à l’aide de l’attribut `<ttl>` dans `config.xml`. [#17438](https://github.com/ClickHouse/ClickHouse/pull/17438) ([Du Chuan](https://github.com/spongedu)).
* Désormais, les requêtes arrivant au serveur via les protocoles MySQL et PostgreSQL ont des types d’interface distincts (visibles dans la colonne `interface` de la table `system.query_log`) : `4` pour MySQL et `5` pour PostgreSQL, au lieu de `1`, utilisé auparavant et désormais réservé au protocole natif. [#17437](https://github.com/ClickHouse/ClickHouse/pull/17437) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corriger l’analyse de la clause SETTINGS de la requête `INSERT ... SELECT ... SETTINGS`. [#17414](https://github.com/ClickHouse/ClickHouse/pull/17414) ([Azat Khuzhin](https://github.com/azat)).
* Comptabiliser correctement la mémoire dans RadixSort. [#17412](https://github.com/ClickHouse/ClickHouse/pull/17412) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajouter une vérification EOF dans `receiveHello` côté serveur pour éviter l’exception `Attempt to read after eof`. [#17365](https://github.com/ClickHouse/ClickHouse/pull/17365) ([Kruglov Pavel](https://github.com/Avogar)).
* Éviter un possible dépassement de pile lors de la conversion de bigint. Les grands entiers sont Experimental. [#17269](https://github.com/ClickHouse/ClickHouse/pull/17269) ([flynn](https://github.com/ucasFL)).
* Désormais, les index `set` fonctionneront avec `GLOBAL IN`. Cela corrige [#17232](https://github.com/ClickHouse/ClickHouse/issues/17232), [#5576](https://github.com/ClickHouse/ClickHouse/issues/5576). [#17253](https://github.com/ClickHouse/ClickHouse/pull/17253) ([Amos Bird](https://github.com/amosbird)).
* Ajouter une limite au nombre de redirections HTTP dans les requêtes vers le stockage S3 (`s3_max_redirects`). [#17220](https://github.com/ClickHouse/ClickHouse/pull/17220) ([ianton-ru](https://github.com/ianton-ru)).
* Lorsque le combinateur `-OrNull` est combiné avec les combinateurs `-If`, `-Merge`, `-MergeState`, `-State`, il faut placer `-OrNull` en premier. [#16935](https://github.com/ClickHouse/ClickHouse/pull/16935) ([flynn](https://github.com/ucasFL)).
* Prise en charge de la configuration d’un proxy HTTP et d’un endpoint S3 HTTPS. [#16861](https://github.com/ClickHouse/ClickHouse/pull/16861) ([Pavel Kovalenko](https://github.com/Jokser)).
* Ajout d’une authentification correcte via l’environnement, `~/.aws` et `AssumeRole` pour le client S3. [#16856](https://github.com/ClickHouse/ClickHouse/pull/16856) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Ajout de spans OpenTelemetry supplémentaires. Ajout d’un exemple montrant comment exporter les données de span vers Zipkin. [#16535](https://github.com/ClickHouse/ClickHouse/pull/16535) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Dictionnaires cache : suppression complète des callbacks et des verrous nécessaires à leur acquisition. Les clés ne sont pas séparées entre "not found" et "expired", mais stockées dans la même map pendant la requête. [#14958](https://github.com/ClickHouse/ClickHouse/pull/14958) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction de `fsync_part_directory`/`fsync_after_insert`/`in_memory_parts_insert_sync`, qui n’ont en réalité jamais fonctionné (fonctionnalité expérimentale). [#18845](https://github.com/ClickHouse/ClickHouse/pull/18845) ([Azat Khuzhin](https://github.com/azat)).
* Autorisation de l’utilisation du moteur `Atomic` pour la base de données imbriquée du moteur `MaterializeMySQL`. [#14849](https://github.com/ClickHouse/ClickHouse/pull/14849) ([tavplubix](https://github.com/tavplubix)).

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

* Corrige le problème où le serveur peut, dans de très rares cas, cesser d’accepter les connexions. [#17542](https://github.com/ClickHouse/ClickHouse/pull/17542) (Amos Bird, [alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige l’analyse des index pour les fonctions binaires avec un argument constant, qui entraînait des résultats de requête incorrects. Corrige [#18364](https://github.com/ClickHouse/ClickHouse/issues/18364). [#18373](https://github.com/ClickHouse/ClickHouse/pull/18373) ([Amos Bird](https://github.com/amosbird)).
* Corrige une analyse des index potentiellement incorrecte lorsque les types utilisés dans la comparaison d’index sont différents. Corrige [#17122](https://github.com/ClickHouse/ClickHouse/issues/17122). [#17145](https://github.com/ClickHouse/ClickHouse/pull/17145) ([Amos Bird](https://github.com/amosbird)).
* Désactive l’écriture avec AIO pendant les merges, car cela peut entraîner, dans des cas extrêmement rares, une corruption des données des colonnes de clé primaire pendant le merge. [#18481](https://github.com/ClickHouse/ClickHouse/pull/18481) ([alesapin](https://github.com/alesapin)).
* Restreint les merges de parts wide vers des parts compactes. Dans le cas d’un vertical merge, cela entraînait une part de résultat corrompue. [#18381](https://github.com/ClickHouse/ClickHouse/pull/18381) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un résultat de requête potentiellement incomplet lors de la lecture depuis `MergeTree*` en cas de backoff de lecture (message `<Debug> MergeTreeReadPool: Will lower number of threads` dans les logs). Introduit dans [#16423](https://github.com/ClickHouse/ClickHouse/issues/16423). Corrige [#18137](https://github.com/ClickHouse/ClickHouse/issues/18137). [#18216](https://github.com/ClickHouse/ClickHouse/pull/18216) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un bug de use-after-free dans la bibliothèque `rocksdb`. [#18862](https://github.com/ClickHouse/ClickHouse/pull/18862) ([sundyli](https://github.com/sundy-li)).
* Corrige une lecture infinie depuis un fichier au format `ORC` (introduite dans [#10580](https://github.com/ClickHouse/ClickHouse/issues/10580)). Corrige [#19095](https://github.com/ClickHouse/ClickHouse/issues/19095). [#19134](https://github.com/ClickHouse/ClickHouse/pull/19134) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un bug dans le writer de données MergeTree, qui peut entraîner des marks d’une taille supérieure à celle de la granularity fixe. Corrige [#18913](https://github.com/ClickHouse/ClickHouse/issues/18913). [#19123](https://github.com/ClickHouse/ClickHouse/pull/19123) ([alesapin](https://github.com/alesapin)).
* Corrige un bug au démarrage lorsque ClickHouse ne parvenait pas à lire le compression codec depuis `LowCardinality(Nullable(...))` et levait l’exception `Attempt to read after EOF`. Corrige [#18340](https://github.com/ClickHouse/ClickHouse/issues/18340). [#19101](https://github.com/ClickHouse/ClickHouse/pull/19101) ([alesapin](https://github.com/alesapin)).
* Restreint les requêtes `MODIFY TTL` pour les tables `MergeTree` créées avec l’ancienne syntaxe. Auparavant, la requête réussissait, mais n’avait en réalité aucun effet. [#19064](https://github.com/ClickHouse/ClickHouse/pull/19064) ([Anton Popov](https://github.com/CurtizJ)).
* S’assure que `groupUniqArray` renvoie le type correct pour un argument de type Enum. Cela clôt [#17875](https://github.com/ClickHouse/ClickHouse/issues/17875). [#19019](https://github.com/ClickHouse/ClickHouse/pull/19019) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige l’erreur possible `Expected single dictionary argument for function` lors de l’utilisation de la fonction `ignore` avec un argument `LowCardinality`. Corrige [#14275](https://github.com/ClickHouse/ClickHouse/issues/14275). [#19016](https://github.com/ClickHouse/ClickHouse/pull/19016) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’insertion d’une colonne `LowCardinality` dans une table utilisant le moteur `TinyLog`. Corrige [#18629](https://github.com/ClickHouse/ClickHouse/issues/18629). [#19010](https://github.com/ClickHouse/ClickHouse/pull/19010) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Join tente de matérialiser les colonnes constantes, mais notre code les attend ailleurs. [#18982](https://github.com/ClickHouse/ClickHouse/pull/18982) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Désactivation de `optimize_move_functions_out_of_any`, car cette optimisation n’est pas toujours correcte. Cela résout [#18051](https://github.com/ClickHouse/ClickHouse/issues/18051). Cela résout [#18973](https://github.com/ClickHouse/ClickHouse/issues/18973). [#18981](https://github.com/ClickHouse/ClickHouse/pull/18981) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’une exception possible, `QueryPipeline stream: different number of columns`, causée par la fusion des étapes `Expression` du plan de requête. Corrige [#18190](https://github.com/ClickHouse/ClickHouse/issues/18190). [#18980](https://github.com/ClickHouse/ClickHouse/pull/18980) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un interblocage très rare à l’arrêt. [#18977](https://github.com/ClickHouse/ClickHouse/pull/18977) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un comportement incorrect lorsque la requête `ALTER TABLE ... DROP PART 'part_name'` supprime tous les blocs de déduplication de l’ensemble de la partition. Corrige [#18874](https://github.com/ClickHouse/ClickHouse/issues/18874). [#18969](https://github.com/ClickHouse/ClickHouse/pull/18969) ([alesapin](https://github.com/alesapin)).
* Attach partition doit réinitialiser la mutation. [#18804](https://github.com/ClickHouse/ClickHouse/issues/18804). [#18935](https://github.com/ClickHouse/ClickHouse/pull/18935) ([fastio](https://github.com/fastio)).
* Correction d’un problème avec `bitmapOrCardinality` pouvant entraîner un déréférencement de pointeur nul. Cela résout [#18911](https://github.com/ClickHouse/ClickHouse/issues/18911). [#18912](https://github.com/ClickHouse/ClickHouse/pull/18912) ([sundyli](https://github.com/sundy-li)).
* Correction d’un blocage possible à l’arrêt dans `clickhouse-local`. Cela corrige [#18891](https://github.com/ClickHouse/ClickHouse/issues/18891). [#18893](https://github.com/ClickHouse/ClickHouse/pull/18893) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Les requêtes vers des bases de données externes (MySQL, ODBC, JDBC) étaient réécrites de manière incorrecte lorsqu’il y avait une expression de la forme `x IN table`. Cela corrige [#9756](https://github.com/ClickHouse/ClickHouse/issues/9756). [#18876](https://github.com/ClickHouse/ClickHouse/pull/18876) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du combinateur `*If` avec une fonction unaire et des types Nullable. [#18806](https://github.com/ClickHouse/ClickHouse/pull/18806) ([Azat Khuzhin](https://github.com/azat)).
* Correction du problème où les INSERT distribués asynchrones peuvent être rejetés par le serveur si le paramètre `network_compression_method` est défini globalement sur une valeur autre que `default`. Cela corrige [#18741](https://github.com/ClickHouse/ClickHouse/issues/18741). [#18776](https://github.com/ClickHouse/ClickHouse/pull/18776) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de l’erreur `Attempt to read after eof` lors d’une tentative de `CAST` de `NULL` depuis `Nullable(String)` vers `Nullable(Decimal(P, S))`. La fonction `CAST` renvoie désormais `NULL` lorsqu’elle ne parvient pas à analyser une valeur décimale à partir d’une chaîne nullable. Corrige [#7690](https://github.com/ClickHouse/ClickHouse/issues/7690). [#18718](https://github.com/ClickHouse/ClickHouse/pull/18718) ([Winter Zhang](https://github.com/zhang2014)).
* Correction d’un problème mineur de logging. [#18717](https://github.com/ClickHouse/ClickHouse/pull/18717) ([sundyli](https://github.com/sundy-li)).
* Correction de la suppression des parts vides dans les tables `ReplicatedMergeTree` créées avec l’ancienne syntaxe. Corrige [#18582](https://github.com/ClickHouse/ClickHouse/issues/18582). [#18614](https://github.com/ClickHouse/ClickHouse/pull/18614) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un bug antérieur en cas de dépassement de capacité sur des dates avec différentes valeurs. La limite stricte de la valeur `Date` est fixée à "2106-02-07" ; les dates > "2106-02-07" sont converties en valeur 0. [#18565](https://github.com/ClickHouse/ClickHouse/pull/18565) ([hexiaoting](https://github.com/hexiaoting)).
* Ajout de la prise en charge du type de données FixedString pour la réplication depuis MySQL. La réplication depuis MySQL est une fonctionnalité expérimentale. Ce correctif corrige [#18450](https://github.com/ClickHouse/ClickHouse/issues/18450). Corrige également [#6556](https://github.com/ClickHouse/ClickHouse/issues/6556). [#18553](https://github.com/ClickHouse/ClickHouse/pull/18553) ([awesomeleo](https://github.com/awesomeleo)).
* Correction d’une possible erreur `Pipeline stuck` lors de l’utilisation de `ORDER BY` après une sous-requête avec une jointure `RIGHT` ou `FULL`. [#18550](https://github.com/ClickHouse/ClickHouse/pull/18550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un bug pouvant entraîner le blocage de requêtes `ALTER` après l’arrêt de la mutation correspondante. Détecté par le thread fuzzer. [#18518](https://github.com/ClickHouse/ClickHouse/pull/18518) ([alesapin](https://github.com/alesapin)).
* Prise en charge correcte de 12AM dans la fonction `parseDateTimeBestEffort`. Corrige [#18402](https://github.com/ClickHouse/ClickHouse/issues/18402). [#18449](https://github.com/ClickHouse/ClickHouse/pull/18449) ([vladimir-golovchenko](https://github.com/vladimir-golovchenko)).
* Correction de l’erreur `value is too short` lors de l’exécution des fonctions `toType(...)` (`toDate`, `toUInt32`, etc.) avec un argument de type `Nullable(String)`. Désormais, ces fonctions renvoient `NULL` en cas d’erreur de parsing au lieu de lever une exception. Corrige [#7673](https://github.com/ClickHouse/ClickHouse/issues/7673). [#18445](https://github.com/ClickHouse/ClickHouse/pull/18445) ([tavplubix](https://github.com/tavplubix)).
* Correction du comportement inattendu de `SHOW TABLES`. [#18431](https://github.com/ClickHouse/ClickHouse/pull/18431) ([fastio](https://github.com/fastio)).
* Correction : le combinator `-SimpleState` génère un type d’argument et un type de retour incompatibles. [#18404](https://github.com/ClickHouse/ClickHouse/pull/18404) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une possible condition de concurrence lors de l’utilisation simultanée de tables `Set` ou `Join` et de selects depuis `system.tables`. [#18385](https://github.com/ClickHouse/ClickHouse/pull/18385) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du remplissage de la table `system.settings_profile_elements`. Cette PR corrige [#18231](https://github.com/ClickHouse/ClickHouse/issues/18231). [#18379](https://github.com/ClickHouse/ClickHouse/pull/18379) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de plantages possibles dans les fonctions d’agrégation avec le combinator `Distinct`, lors de l’utilisation de l’agrégation à deux niveaux. Corrige [#17682](https://github.com/ClickHouse/ClickHouse/issues/17682). [#18365](https://github.com/ClickHouse/ClickHouse/pull/18365) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un problème lorsque le processus `clickhouse-odbc-bridge` est inaccessible par le serveur sur des machines avec une double pile IPv4/IPv6 ; correction d’un problème lorsque les mises à jour des dictionnaires ODBC sont effectuées à l’aide de requêtes mal formées et/ou provoquent des plantages du processus odbc-bridge ; clôt potentiellement [#14489](https://github.com/ClickHouse/ClickHouse/issues/14489). [#18278](https://github.com/ClickHouse/ClickHouse/pull/18278) ([Denis Glazachev](https://github.com/traceon)).
* Contrôle d'accès : `SELECT count() FROM table` peut désormais être exécuté si l’utilisateur a accès à au moins une colonne de la table. Cette PR corrige [#10639](https://github.com/ClickHouse/ClickHouse/issues/10639). [#18233](https://github.com/ClickHouse/ClickHouse/pull/18233) ([Vitaly Baranov](https://github.com/vitlibar)).
* Contrôle d'accès : `SELECT JOIN` requiert désormais le privilège `SELECT` sur chacune des tables jointes. Cette PR corrige [#17654](https://github.com/ClickHouse/ClickHouse/issues/17654). [#18232](https://github.com/ClickHouse/ClickHouse/pull/18232) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de la comparaison des clés entre les types Enum et Int. Ceci corrige [#17989](https://github.com/ClickHouse/ClickHouse/issues/17989). [#18214](https://github.com/ClickHouse/ClickHouse/pull/18214) ([Amos Bird](https://github.com/amosbird)).
* Réplication depuis MySQL (fonctionnalité expérimentale). Corrige [#18186](https://github.com/ClickHouse/ClickHouse/issues/18186) Corrige [#16372](https://github.com/ClickHouse/ClickHouse/issues/16372) Correction d’un problème de conversion de clé unique dans le moteur de base de données MaterializeMySQL. [#18211](https://github.com/ClickHouse/ClickHouse/pull/18211) ([Winter Zhang](https://github.com/zhang2014)).
* Correction d’une incohérence pour les requêtes utilisant à la fois `WITH FILL` et `WITH TIES` [#17466](https://github.com/ClickHouse/ClickHouse/issues/17466). [#18188](https://github.com/ClickHouse/ClickHouse/pull/18188) ([hexiaoting](https://github.com/hexiaoting)).
* Correction de l’insertion d’une ligne avec une valeur par défaut en cas d’erreur d’analyse dans la dernière colonne. Corrige [#17712](https://github.com/ClickHouse/ClickHouse/issues/17712). [#18182](https://github.com/ClickHouse/ClickHouse/pull/18182) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Correction de l’erreur `Unknown setting profile` lors d’une tentative de définition d’un profil de paramètres. [#18167](https://github.com/ClickHouse/ClickHouse/pull/18167) ([tavplubix](https://github.com/tavplubix)).
* Correction d’une erreur lorsque la requête `MODIFY COLUMN ... REMOVE TTL` ne supprime pas réellement le TTL de la colonne. [#18130](https://github.com/ClickHouse/ClickHouse/pull/18130) ([alesapin](https://github.com/alesapin)).
* Correction de `std::out_of_range: basic_string` lors de l’analyse des URL S3. [#18059](https://github.com/ClickHouse/ClickHouse/pull/18059) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Correction de la comparaison entre `DateTime64` et `Date`. Corrige [#13804](https://github.com/ClickHouse/ClickHouse/issues/13804) et [#11222](https://github.com/ClickHouse/ClickHouse/issues/11222). ... [#18050](https://github.com/ClickHouse/ClickHouse/pull/18050) ([Vasily Nemkov](https://github.com/Enmk)).
* Réplication depuis MySQL (fonctionnalité expérimentale) : corrige [#15187](https://github.com/ClickHouse/ClickHouse/issues/15187) corrige [#17912](https://github.com/ClickHouse/ClickHouse/issues/17912) prise en charge de la conversion des index de préfixe MySQL pour MaterializeMySQL. [#17944](https://github.com/ClickHouse/ClickHouse/pull/17944) ([Winter Zhang](https://github.com/zhang2014)).
* Lorsque la rotation du journal du serveur était configurée à l’aide du paramètre `logger.size` avec une valeur numérique supérieure à 2^32, les logs n’étaient pas correctement rotés. Ce problème a été corrigé. [#17905](https://github.com/ClickHouse/ClickHouse/pull/17905) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* L’optimisation triviale des requêtes produisait un résultat erroné si la requête contenait ARRAY JOIN (la requête n’est donc en réalité pas triviale). [#17887](https://github.com/ClickHouse/ClickHouse/pull/17887) ([sundyli](https://github.com/sundy-li)).
* Correction d’un segfault possible dans la fonction d’agrégation `topK`. Cela corrige [#17404](https://github.com/ClickHouse/ClickHouse/issues/17404). [#17845](https://github.com/ClickHouse/ClickHouse/pull/17845) ([Maksim Kita](https://github.com/kitaisreal)).
* WAL (fonctionnalité expérimentale) : ne pas restaurer les parts depuis le WAL si `in_memory_parts_enable_wal` est désactivé. [#17802](https://github.com/ClickHouse/ClickHouse/pull/17802) ([detailyang](https://github.com/detailyang)).
* Le message d’Exception concernant la taille maximale de table pouvant être supprimée était affiché de manière incorrecte. [#17764](https://github.com/ClickHouse/ClickHouse/pull/17764) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’un segfault possible lorsqu’il n’y a pas assez d’espace lors d’un insert dans une table `Distributed`. [#17737](https://github.com/ClickHouse/ClickHouse/pull/17737) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un problème empêchant ClickHouse de rétablir la connexion aux serveurs MySQL. [#17681](https://github.com/ClickHouse/ClickHouse/pull/17681) ([Alexander Kazakov](https://github.com/Akazz)).
* Windows : correction de l’erreur `Function not implemented` lors de l’exécution d’une requête `RENAME` dans une base de données `Atomic`, avec ClickHouse exécuté sur Windows Subsystem for Linux. Corrige [#17661](https://github.com/ClickHouse/ClickHouse/issues/17661). [#17664](https://github.com/ClickHouse/ClickHouse/pull/17664) ([tavplubix](https://github.com/tavplubix)).
* Il pouvait être déterminé de manière incorrecte si le cluster était répliqué de façon circulaire (croisée) ou non lors de l’exécution d’une requête `ON CLUSTER`, en raison d’une race condition lorsque `pool_size` > 1. Ce problème a été corrigé. [#17640](https://github.com/ClickHouse/ClickHouse/pull/17640) ([tavplubix](https://github.com/tavplubix)).
* Correction du problème de table `system.stack_trace` vide lorsque le serveur s’exécute en mode daemon. [#17630](https://github.com/ClickHouse/ClickHouse/pull/17630) ([Amos Bird](https://github.com/amosbird)).
* L’Exception `fmt::v7::format_error` pouvait être journalisée en arrière-plan pour les tables MergeTree. Cela corrige [#17613](https://github.com/ClickHouse/ClickHouse/issues/17613). [#17615](https://github.com/ClickHouse/ClickHouse/pull/17615) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Lorsque clickhouse-client est utilisé en mode interactif avec des requêtes multiligne, un commentaire sur une seule ligne était prolongé par erreur jusqu’à la fin de la requête. Cela corrige [#13654](https://github.com/ClickHouse/ClickHouse/issues/13654). [#17565](https://github.com/ClickHouse/ClickHouse/pull/17565) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du blocage d’une requête ALTER lorsque la mutation correspondante avait été arrêtée sur une autre replica. Corrige [#16953](https://github.com/ClickHouse/ClickHouse/issues/16953). [#17499](https://github.com/ClickHouse/ClickHouse/pull/17499) ([alesapin](https://github.com/alesapin)).
* Correction d’un problème de comptabilisation de la mémoire lorsque la taille du mark cache était sous-estimée par ClickHouse. Cela peut se produire lorsqu’il y a beaucoup de petits fichiers de marks. [#17496](https://github.com/ClickHouse/ClickHouse/pull/17496) ([alesapin](https://github.com/alesapin)).
* Correction de `ORDER BY` avec le paramètre `optimize_redundant_functions_in_order_by` activé. [#17471](https://github.com/ClickHouse/ClickHouse/pull/17471) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige les doublons après `DISTINCT`, rendus possibles par une optimisation incorrecte. Corrige [#17294](https://github.com/ClickHouse/ClickHouse/issues/17294). [#17296](https://github.com/ClickHouse/ClickHouse/pull/17296) ([li chengxiang](https://github.com/chengxianglibra)). [#17439](https://github.com/ClickHouse/ClickHouse/pull/17439) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige une forte utilisation du CPU dans les tâches en arrière-plan des tables \*MergeTree. [#17416](https://github.com/ClickHouse/ClickHouse/pull/17416) ([tavplubix](https://github.com/tavplubix)).
* Corrige un crash possible lors de la lecture depuis une table `JOIN` avec des types `LowCardinality`. Corrige [#17228](https://github.com/ClickHouse/ClickHouse/issues/17228). [#17397](https://github.com/ClickHouse/ClickHouse/pull/17397) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Réplication depuis MySQL (fonctionnalité expérimentale) : corrige [#16835](https://github.com/ClickHouse/ClickHouse/issues/16835), en tentant de corriger une incompatibilité d’en-tête avec l’instruction MySQL SHOW. [#17366](https://github.com/ClickHouse/ClickHouse/pull/17366) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige les fonctions non déterministes avec l’optimiseur de prédicats. Cela corrige [#17244](https://github.com/ClickHouse/ClickHouse/issues/17244). [#17273](https://github.com/ClickHouse/ClickHouse/pull/17273) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige l’erreur possible `Unexpected packet Data received from client` pour les requêtes distribuées avec `LIMIT`. [#17254](https://github.com/ClickHouse/ClickHouse/pull/17254) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’invalidation de l’index Set lorsqu’il y a des colonnes constantes dans la sous-requête. Cela corrige [#17246](https://github.com/ClickHouse/ClickHouse/issues/17246). [#17249](https://github.com/ClickHouse/ClickHouse/pull/17249) ([Amos Bird](https://github.com/amosbird)).
* clickhouse-copier : correctif pour les tables non partitionnées [#15235](https://github.com/ClickHouse/ClickHouse/issues/15235). [#17248](https://github.com/ClickHouse/ClickHouse/pull/17248) ([Qi Chen](https://github.com/kaka11chen)).
* Corrige des mutations potentiellement défaillantes pour les parts stockées sur un S3 disk (fonctionnalité expérimentale). [#17227](https://github.com/ClickHouse/ClickHouse/pull/17227) ([Pavel Kovalenko](https://github.com/Jokser)).
* Correctif pour la fonction `fuzzBits`, problème associé : [#16980](https://github.com/ClickHouse/ClickHouse/issues/16980). [#17051](https://github.com/ClickHouse/ClickHouse/pull/17051) ([hexiaoting](https://github.com/hexiaoting)).
* Corrige `optimize_distributed_group_by_sharding_key` pour une requête avec `OFFSET` uniquement. [#16996](https://github.com/ClickHouse/ClickHouse/pull/16996) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les requêtes issues de tables `Merge` sur des tables `Distributed` avec des JOIN. [#16993](https://github.com/ClickHouse/ClickHouse/pull/16993) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’optimisation de l’ordre de tri avec les fonctions monotones. Corrige [#16107](https://github.com/ClickHouse/ClickHouse/issues/16107). [#16956](https://github.com/ClickHouse/ClickHouse/pull/16956) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige la comparaison incorrecte des types `DateTime64` avec différentes précisions décimales. Corrige [#16655](https://github.com/ClickHouse/ClickHouse/issues/16655) ... [#16952](https://github.com/ClickHouse/ClickHouse/pull/16952) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrige l’optimisation de GROUP BY avec le paramètre `optimize_aggregators_of_group_by_keys` activé et les jointures. Corrige [#12604](https://github.com/ClickHouse/ClickHouse/issues/12604). [#16951](https://github.com/ClickHouse/ClickHouse/pull/16951) ([Anton Popov](https://github.com/CurtizJ)).
* Correction mineure de la requête SHOW ACCESS. [#16866](https://github.com/ClickHouse/ClickHouse/pull/16866) ([tavplubix](https://github.com/tavplubix)).
* Corrige le comportement lorsque le paramètre `optimize_trivial_count_query` est activé avec un prédicat de partition. [#16767](https://github.com/ClickHouse/ClickHouse/pull/16767) ([Azat Khuzhin](https://github.com/azat)).
* Renvoie le nombre de lignes affectées pour les requêtes INSERT via le MySQL wire protocol. Auparavant, ClickHouse renvoyait toujours 0 ; c’est désormais corrigé. Corrige [#16605](https://github.com/ClickHouse/ClickHouse/issues/16605). [#16715](https://github.com/ClickHouse/ClickHouse/pull/16715) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige le comportement incohérent causé par `select_sequential_consistency` pour la requête trivial count optimisée et les tables système. [#16309](https://github.com/ClickHouse/ClickHouse/pull/16309) ([Hao Chen](https://github.com/haoch)).
* Déclenche une erreur lorsque le transformateur de colonne `REPLACE` s’applique à une colonne inexistante. [#16183](https://github.com/ClickHouse/ClickHouse/pull/16183) ([hexiaoting](https://github.com/hexiaoting)).
* Déclenche une exception en cas d’expression ON de jointure non équi dans RIGH|FULL JOIN. [#15162](https://github.com/ClickHouse/ClickHouse/pull/15162) ([Artem Zuikov](https://github.com/4ertus2)).

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

* Ajout d’une vérification d’intégrité simple pour le binaire ClickHouse. Elle permet de détecter les corruptions dues à un matériel défectueux (bit rot sur les supports de stockage ou inversions de bits en RAM). [#18811](https://github.com/ClickHouse/ClickHouse/pull/18811) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Remplacement de `OpenSSL` par `BoringSSL`. Cela permet d’éviter des problèmes avec les sanitizers. Corrige [#12490](https://github.com/ClickHouse/ClickHouse/issues/12490). Corrige [#17502](https://github.com/ClickHouse/ClickHouse/issues/17502). Corrige [#12952](https://github.com/ClickHouse/ClickHouse/issues/12952). [#18129](https://github.com/ClickHouse/ClickHouse/pull/18129) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Simplification du script d’initialisation `Sys/V`. Il ne fonctionnait pas sur Ubuntu 12.04 ni sur les versions antérieures. [#17428](https://github.com/ClickHouse/ClickHouse/pull/17428) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Plusieurs améliorations du script `./clickhouse install`. [#17421](https://github.com/ClickHouse/ClickHouse/pull/17421) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Désormais, ClickHouse peut se faire passer pour un faux ZooKeeper. Pour l’instant, l’implémentation du stockage repose simplement sur une table de hachage en mémoire, et le serveur prend partiellement en charge le protocole ZooKeeper. [#16877](https://github.com/ClickHouse/ClickHouse/pull/16877) ([alesapin](https://github.com/alesapin)).
* Correction de la suppression des watches de listes mortes pour TestKeeperStorage (un mock de ZooKeeper). [#18065](https://github.com/ClickHouse/ClickHouse/pull/18065) ([alesapin](https://github.com/alesapin)).
* Ajout de la commande `SYSTEM SUSPEND` pour l’injection de fautes. Elle peut être utilisée pour faciliter les tests de failover. Clôt [#15979](https://github.com/ClickHouse/ClickHouse/issues/15979). [#18850](https://github.com/ClickHouse/ClickHouse/pull/18850) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Génération d’un identifiant de build lorsque ClickHouse est lié avec `lld`. Il s’est avéré que `lld` ne le génère pas par défaut sur ma machine. L’identifiant de build est utilisé pour les rapports de crash et l’introspection. [#18808](https://github.com/ClickHouse/ClickHouse/pull/18808) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction des erreurs shellcheck dans la vérification de style. [#18566](https://github.com/ClickHouse/ClickHouse/pull/18566) ([Ilya Yatsishin](https://github.com/qoega)).
* Mise à jour des informations sur les fuseaux horaires vers 2020e. [#18531](https://github.com/ClickHouse/ClickHouse/pull/18531) ([alesapin](https://github.com/alesapin)).
* Correction des avertissements codespell. Scission des vérifications de style en parties distinctes. Mise à jour de l’image Docker des vérifications de style. [#18463](https://github.com/ClickHouse/ClickHouse/pull/18463) ([Ilya Yatsishin](https://github.com/qoega)).
* Vérification automatisée de la présence résiduelle de marqueurs de conflit dans la documentation. [#18332](https://github.com/ClickHouse/ClickHouse/pull/18332) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Activation de Thread Fuzzer pour la vérification de stabilité des tests stateless. [#18299](https://github.com/ClickHouse/ClickHouse/pull/18299) ([alesapin](https://github.com/alesapin)).
* Ne plus utiliser la fonction non thread-safe `strerror`. [#18204](https://github.com/ClickHouse/ClickHouse/pull/18204) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de l’action de workflow `anchore/scan-action@main` (déplacée de `master` vers `main`). [#18192](https://github.com/ClickHouse/ClickHouse/pull/18192) ([Stig Bakken](https://github.com/stigsb)).
* Désormais, `clickhouse-test` exécute DROP/CREATE des bases de données avec un timeout. [#18098](https://github.com/ClickHouse/ClickHouse/pull/18098) ([alesapin](https://github.com/alesapin)).
* Ajout de la prise en charge expérimentale du framework Pytest pour les tests sans état. [#17902](https://github.com/ClickHouse/ClickHouse/pull/17902) ([Ivan](https://github.com/abyss7)).
* Utilisation désormais de la dernière version du démon Docker dans les tests d’intégration. [#17671](https://github.com/ClickHouse/ClickHouse/pull/17671) ([alesapin](https://github.com/alesapin)).
* Envoi à Sentry d’informations sur la build officielle, la mémoire, le CPU et l’espace disque libre lorsqu’il est activé. Sentry est une fonctionnalité optionnelle destinée à aider les développeurs de ClickHouse. Cela clôt [#17279](https://github.com/ClickHouse/ClickHouse/issues/17279). [#17543](https://github.com/ClickHouse/ClickHouse/pull/17543) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Présence d’une variable non initialisée dans le code de clickhouse-copier. [#17363](https://github.com/ClickHouse/ClickHouse/pull/17363) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d’[un rapport MSan](https://clickhouse-test-reports.s3.yandex.net/17309/065cd002578f2e8228f12a2744bd40c970065e0c/stress_test_\(memory\)/stderr.log) de [#17309](https://github.com/ClickHouse/ClickHouse/issues/17309). [#17344](https://github.com/ClickHouse/ClickHouse/pull/17344) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d’un problème avec IPv6 dans la bibliothèque Arrow Flight. Voir [les commentaires](https://github.com/ClickHouse/ClickHouse/pull/16243#issuecomment-720830294) pour plus de détails. [#16664](https://github.com/ClickHouse/ClickHouse/pull/16664) ([Zhanna](https://github.com/FawnD2)).
* Ajout d’une bibliothèque qui remplace certaines fonctions `libc` par des traps provoquant l’arrêt du processus. [#16366](https://github.com/ClickHouse/ClickHouse/pull/16366) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de diagnostics dans les logs du serveur en cas de dépassement de pile, avec envoi d’un message d’erreur à clickhouse-client. Cela clôt [#14840](https://github.com/ClickHouse/ClickHouse/issues/14840). [#16346](https://github.com/ClickHouse/ClickHouse/pull/16346) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Il est désormais possible d’exécuter presque tous les tests fonctionnels sans état en parallèle. [#15236](https://github.com/ClickHouse/ClickHouse/pull/15236) ([alesapin](https://github.com/alesapin)).
* Correction d’une corruption dans la décompression Snappy de `librdkafka` (le problème ne concernait que les builds gcc10, mais les builds officielles utilisent déjà clang ; au moins les versions officielles récentes ne sont donc pas affectées). [#18053](https://github.com/ClickHouse/ClickHouse/pull/18053) ([Azat Khuzhin](https://github.com/azat)).
* Si le serveur a été arrêté par l’OOM killer, un message est affiché dans le log. [#13516](https://github.com/ClickHouse/ClickHouse/pull/13516) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* PODArray : évite l’appel à memcpy avec des arguments (nullptr, 0) (correction d’un rapport UBSan). Cela corrige [#18525](https://github.com/ClickHouse/ClickHouse/issues/18525). [#18526](https://github.com/ClickHouse/ClickHouse/pull/18526) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration mineure de la concaténation des chemins ZooKeeper dans DDLWorker. [#17767](https://github.com/ClickHouse/ClickHouse/pull/17767) ([Bharat Nallan](https://github.com/bharatnc)).
* Permet de recharger les symboles depuis le fichier de Débogage. Cette PR corrige également un problème de build-id. [#17637](https://github.com/ClickHouse/ClickHouse/pull/17637) ([Amos Bird](https://github.com/amosbird)).

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