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

> Historique des modifications pour 2022

### <a id="2212" /> Version de ClickHouse 22.12, 2022-12-15. [Présentation](https://presentations.clickhouse.com/2022-release-22.12/), [Vidéo](https://www.youtube.com/watch?v=sREupr6uc2k)

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

<Warning>
  Cette version contient un commentaire de service systemd erroné qui risque de compromettre l'installation de ClickHouse lors de la mise à niveau sur certaines distributions Linux. Le service systemd modifie les autorisations du propriétaire du répertoire `/run/systemd`, ce qui fait échouer toutes les opérations systemd suivantes. Il est recommandé de ne pas effectuer la mise à niveau vers cette version et de passer directement à une version plus récente de ClickHouse.

  Consultez cette issue sur GitHub pour plus de détails : [https://github.com/ClickHouse/ClickHouse/issues/48285](https://github.com/ClickHouse/ClickHouse/issues/48285)
</Warning>

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

* Correction d'une incompatibilité descendante dans la (dé)sérialisation des états des fonctions d'agrégation `min`, `max`, `any*`, `argMin`, `argMax` avec un argument `String`. L'incompatibilité affecte les branches 22.9, 22.10 et 22.11 (corrigée respectivement à partir des versions 22.9.6, 22.10.4 et 22.11.2). Certaines versions mineures des branches 22.3, 22.7 et 22.8 sont également affectées : 22.3.13...22.3.14 (corrigé à partir de 22.3.15), 22.8.6...22.8.9 (corrigé à partir de 22.8.10), 22.7.6 et versions ultérieures (ne sera pas corrigé en 22.7, nous recommandons de passer de 22.7.\* à 22.8.10 ou à une version ultérieure). Cette note de version ne concerne pas les utilisateurs qui n'ont jamais utilisé les versions affectées. Les versions incompatibles ajoutent un `'\0'` supplémentaire aux chaînes lors de la lecture des états des fonctions d'agrégation mentionnées ci-dessus. Par exemple, si une ancienne version a enregistré l'état de `anyState('foobar')` dans `state_column`, alors la version incompatible affichera `'foobar\0'` avec `anyMerge(state_column)`. Les versions incompatibles écrivent également les états des fonctions d'agrégation sans `'\0'` final. Les versions plus récentes (qui incluent le correctif) peuvent lire correctement les données écrites par toutes les versions, y compris les versions incompatibles, sauf dans un cas limite. Si une version incompatible a enregistré un état avec une chaîne se terminant réellement par un caractère nul, alors une version plus récente supprimera le `'\0'` final lors de la lecture de l'état de la fonction d'agrégation affectée. Par exemple, si une version incompatible a enregistré l'état de `anyState('abrac\0dabra\0')` dans `state_column`, alors les versions plus récentes afficheront `'abrac\0dabra'` avec `anyMerge(state_column)`. Le problème affecte également les requêtes distribuées lorsqu'une version incompatible fonctionne dans un cluster avec des versions plus anciennes ou plus récentes. [#43038](https://github.com/ClickHouse/ClickHouse/pull/43038) ([Alexander Tokmakov](https://github.com/tavplubix), [Raúl Marín](https://github.com/Algunenano)). Remarque : tous les builds officiels de ClickHouse incluent déjà les correctifs. Ce n'est pas nécessairement le cas des builds tiers non officiels, qu'il convient d'éviter.

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

* Ajout du format d’entrée/sortie `BSONEachRow`. Dans ce format, ClickHouse formate/analyse chaque ligne comme un document BSON distinct, et chaque colonne est formatée/analysée comme un champ BSON unique, avec le nom de la colonne comme clé. [#42033](https://github.com/ClickHouse/ClickHouse/pull/42033) ([mark-polokhov](https://github.com/mark-polokhov)).
* Ajout de l’algorithme de JOIN `grace_hash`, activable avec `SET join_algorithm = 'grace_hash'`. [#38191](https://github.com/ClickHouse/ClickHouse/pull/38191) ([BigRedEye](https://github.com/BigRedEye), [Vladimir C](https://github.com/vdimir)).
* Permet de configurer des règles et des contrôles de complexité des mots de passe pour la création et la modification d’utilisateurs. [#43719](https://github.com/ClickHouse/ClickHouse/pull/43719) ([Nikolay Degterinsky](https://github.com/evillique)).
* Masque les informations sensibles dans les logs ; masque les parties secrètes dans la sortie des requêtes `SHOW CREATE TABLE` et `SELECT FROM system.tables`. Résout également [#41418](https://github.com/ClickHouse/ClickHouse/issues/41418). [#43227](https://github.com/ClickHouse/ClickHouse/pull/43227) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de la syntaxe `GROUP BY ALL` : [#37631](https://github.com/ClickHouse/ClickHouse/issues/37631). [#42265](https://github.com/ClickHouse/ClickHouse/pull/42265) ([刘陶峰](https://github.com/taofengliu)).
* Ajout de la syntaxe `FROM table SELECT column`. [#41095](https://github.com/ClickHouse/ClickHouse/pull/41095) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de la fonction `concatWithSeparator` et de `concat_ws` comme alias pour la compatibilité avec Spark SQL. La fonction `concatWithSeparatorAssumeInjective` a également été ajoutée comme variante pour activer l’optimisation de `GROUP BY`, à l’instar de `concatAssumeInjective`. [#43749](https://github.com/ClickHouse/ClickHouse/pull/43749) ([李扬](https://github.com/taiyang-li)).
* Ajout des fonctions `multiplyDecimal` et `divideDecimal` pour les opérations décimales à précision fixe. [#42438](https://github.com/ClickHouse/ClickHouse/pull/42438) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajout de la table `system.moves` avec la liste des parts en cours de déplacement. [#42660](https://github.com/ClickHouse/ClickHouse/pull/42660) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout de la prise en charge d’un endpoint Prometheus intégré pour ClickHouse Keeper. [#43087](https://github.com/ClickHouse/ClickHouse/pull/43087) ([Antonio Andelic](https://github.com/antonio2368)).
* Prise en charge des littéraux numériques avec `_` comme séparateur, par exemple `1_000_000`. [#43925](https://github.com/ClickHouse/ClickHouse/pull/43925) ([jh0x](https://github.com/jh0x)).
* Ajout de la possibilité d’utiliser un tableau comme second paramètre de la fonction `cutURLParameter`. Cela permet de supprimer plusieurs paramètres. Ferme [#6827](https://github.com/ClickHouse/ClickHouse/issues/6827). [#43788](https://github.com/ClickHouse/ClickHouse/pull/43788) ([Roman Vasin](https://github.com/rvasin)).
* Ajout d’une colonne contenant l’expression de l’index dans la table `system.data_skipping_indices`. [#43308](https://github.com/ClickHouse/ClickHouse/pull/43308) ([Guillaume Tassery](https://github.com/YiuRULE)).
* Ajout de la colonne `engine_full` à la table système `databases` afin de permettre l’accès à la définition complète du engine d’une database via les tables système. [#43468](https://github.com/ClickHouse/ClickHouse/pull/43468) ([凌涛](https://github.com/lingtaolf)).
* Ajout de la nouvelle fonction de hachage [xxh3](https://github.com/Cyan4973/xxHash). De plus, les performances de `xxHash32` et `xxHash64` sur ARM ont été améliorées grâce à une mise à jour de la bibliothèque. [#43411](https://github.com/ClickHouse/ClickHouse/pull/43411) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout de la possibilité de définir des contraintes pour les paramètres de MergeTree. Par exemple, vous pouvez interdire aux utilisateurs de redéfinir `storage_policy`. [#43903](https://github.com/ClickHouse/ClickHouse/pull/43903) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout d'un nouveau paramètre `input_format_json_read_objects_as_strings`, qui permet d'analyser les objets JSON imbriqués en tant que Strings dans tous les formats d'entrée JSON. Ce paramètre est désactivé par défaut. [#44052](https://github.com/ClickHouse/ClickHouse/pull/44052) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Prise en charge de la déduplication pour les insertions asynchrones. Avant cette modification, les insertions async ne prenaient pas en charge la déduplication, car plusieurs petites insertions coexistaient dans un même batch inséré. Closes [#38075](https://github.com/ClickHouse/ClickHouse/issues/38075). [#43304](https://github.com/ClickHouse/ClickHouse/pull/43304) ([Han Fei](https://github.com/hanfei1991)).
* Ajout de la prise en charge de la distance cosinus pour l'index Annoy expérimental (recherche de similarité vectorielle). [#42778](https://github.com/ClickHouse/ClickHouse/pull/42778) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Ajout des requêtes `CREATE / ALTER / DROP NAMED COLLECTION`. [#43252](https://github.com/ClickHouse/ClickHouse/pull/43252) ([Kseniia Sumarokova](https://github.com/kssenii)). Cette fonctionnalité est en cours de développement et les requêtes ne sont pas effectives dans la version 22.12. Cette entrée du changelog a été ajoutée uniquement pour éviter toute confusion. Restrict default access to named collections to the user defined in config. This requires that `show_named_collections = 1` is set to be able to see them. [#43325](https://github.com/ClickHouse/ClickHouse/pull/43325) ([Kseniia Sumarokova](https://github.com/kssenii)). The `system.named_collections` table is introduced [#43147](https://github.com/ClickHouse/ClickHouse/pull/43147) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Ajout des paramètres `max_streams_for_merge_tree_reading` et `allow_asynchronous_read_from_io_pool_for_merge_tree`. Le paramètre `max_streams_for_merge_tree_reading` limite le nombre de flux de lecture pour les tables MergeTree. Le paramètre `allow_asynchronous_read_from_io_pool_for_merge_tree` active un pool d’E/S en arrière-plan pour lire à partir des tables `MergeTree`. Cela peut améliorer les performances des requêtes limitées par les E/S s’il est utilisé avec `max_streams_to_max_threads_ratio` ou `max_streams_for_merge_tree_reading`. [#43260](https://github.com/ClickHouse/ClickHouse/pull/43260) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). Les performances peuvent être améliorées jusqu’à 100 fois dans les cas de stockage à forte latence, de faible nombre de CPU et de grand nombre de data parts.
* Les paramètres `merge_tree_min_rows_for_concurrent_read_for_remote_filesystem/merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem` ne respectaient pas la granularité adaptative. Les lignes volumineuses ne réduisaient pas le nombre de lignes lues (comme c’était le cas pour `merge_tree_min_rows_for_concurrent_read/merge_tree_min_bytes_for_concurrent_read`), ce qui pouvait entraîner une utilisation mémoire élevée lors de l’utilisation de systèmes de fichiers distants. [#43965](https://github.com/ClickHouse/ClickHouse/pull/43965) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Optimisation du nombre de requêtes de listage vers ZooKeeper ou ClickHouse Keeper lors de la sélection d’une partie à fusionner. Auparavant, cela pouvait produire des milliers de requêtes dans certains cas. Corrige [#43647](https://github.com/ClickHouse/ClickHouse/issues/43647). [#43675](https://github.com/ClickHouse/ClickHouse/pull/43675) ([Alexander Tokmakov](https://github.com/tavplubix)).
* L’optimisation est désormais ignorée si `max_size_to_preallocate_for_aggregation` a une valeur trop faible. La valeur par défaut de ce paramètre a été augmentée à `10^8`. [#43945](https://github.com/ClickHouse/ClickHouse/pull/43945) ([Nikita Taranov](https://github.com/nickitat)).
* Accélération de l’arrêt du serveur en évitant le nettoyage des anciennes data parts. Cela n’est plus nécessaire depuis [https://github.com/ClickHouse/ClickHouse/pull/41145](https://github.com/ClickHouse/ClickHouse/pull/41145). [#43760](https://github.com/ClickHouse/ClickHouse/pull/43760) ([Sema Checherinda](https://github.com/CheSema)).
* La fusion sur le nœud initiateur utilise désormais la même approche à mémoire bornée que la fusion des résultats d’agrégation locaux si `enable_memory_bound_merging_of_aggregation_results` est défini. [#40879](https://github.com/ClickHouse/ClickHouse/pull/40879) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration de Keeper : synchronisation des logs sur disque en parallèle de la réplication. [#43450](https://github.com/ClickHouse/ClickHouse/pull/43450) ([Antonio Andelic](https://github.com/antonio2368)).
* Amélioration de Keeper : les requêtes sont regroupées en lots plus fréquemment. Ce batching peut être contrôlé avec le nouveau paramètre `max_requests_quick_batch_size`. [#43686](https://github.com/ClickHouse/ClickHouse/pull/43686) ([Antonio Andelic](https://github.com/antonio2368)).

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

* Mise en œuvre des dépendances référentielles et utilisation de celles-ci pour créer les tables dans le bon ordre lors de la restauration depuis une sauvegarde. [#43834](https://github.com/ClickHouse/ClickHouse/pull/43834) ([Vitaly Baranov](https://github.com/vitlibar)).
* Remplacement des UDFs dans la requête `CREATE` afin d'éviter les échecs lors du chargement au démarrage. De plus, les UDFs peuvent désormais être utilisées comme expressions `DEFAULT` pour les colonnes. [#43539](https://github.com/ClickHouse/ClickHouse/pull/43539) ([Antonio Andelic](https://github.com/antonio2368)).
* Modification du mode de suppression des parts par les requêtes suivantes : TRUNCATE TABLE, ALTER TABLE DROP PART, ALTER TABLE DROP PARTITION. Désormais, ces requêtes créent des parts vides qui recouvrent les anciennes. Cela permet à la requête TRUNCATE de fonctionner sans verrou exclusif ultérieur, ce qui signifie que les lectures concurrentes ne sont pas bloquées. La durabilité a également été assurée pour toutes ces requêtes. Si la requête aboutit, aucune part ressuscitée n'apparaît ensuite. Notez que l'atomicité n'est garantie qu'à l'échelle de la transaction. [#41145](https://github.com/ClickHouse/ClickHouse/pull/41145) ([Sema Checherinda](https://github.com/CheSema)).
* La requête `SET param_x` ne nécessite plus de sérialisation manuelle en chaîne pour la valeur du paramètre. Par exemple, la requête `SET param_a = '[\'a\', \'b\']'` peut désormais s'écrire `SET param_a = ['a', 'b']`. [#41874](https://github.com/ClickHouse/ClickHouse/pull/41874) ([Nikolay Degterinsky](https://github.com/evillique)).
* Affichage des lignes lues dans l'indicateur de progression lors de la lecture depuis STDIN par le client. Ferme [#43423](https://github.com/ClickHouse/ClickHouse/issues/43423). [#43442](https://github.com/ClickHouse/ClickHouse/pull/43442) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Affichage d'une barre de progression lors de la lecture depuis la table function / le moteur S3. [#43454](https://github.com/ClickHouse/ClickHouse/pull/43454) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La barre de progression affichera à la fois les lignes lues et les lignes écrites. [#43496](https://github.com/ClickHouse/ClickHouse/pull/43496) ([Ilya Yatsishin](https://github.com/qoega)).
* `filesystemAvailable` et les fonctions associées prennent en charge un argument optionnel avec le nom du disk, et `filesystemFree` devient `filesystemUnreserved`. Ferme [#35076](https://github.com/ClickHouse/ClickHouse/issues/35076). [#42064](https://github.com/ClickHouse/ClickHouse/pull/42064) ([flynn](https://github.com/ucasfl)).
* Intégration avec LDAP : augmentation de la valeur par défaut de search\_limit à 256, et ajout d'une option de config du serveur LDAP pour la définir sur une valeur arbitraire. Ferme : [#42276](https://github.com/ClickHouse/ClickHouse/issues/42276). [#42461](https://github.com/ClickHouse/ClickHouse/pull/42461) ([Vasily Nemkov](https://github.com/Enmk)).
* Permet également de supprimer les informations sensibles (voir `query_masking_rules` dans le fichier de configuration) des messages d'exception. Résout [#41418](https://github.com/ClickHouse/ClickHouse/issues/41418). [#42940](https://github.com/ClickHouse/ClickHouse/pull/42940) ([filimonov](https://github.com/filimonov)).
* Prise en charge de requêtes comme `SHOW FULL TABLES ...` pour la compatibilité avec MySQL. [#43910](https://github.com/ClickHouse/ClickHouse/pull/43910) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Amélioration de Keeper : ajout de la commande 4lw `rqld`, qui permet d'assigner manuellement un nœud comme leader. [#43026](https://github.com/ClickHouse/ClickHouse/pull/43026) ([JackyWoo](https://github.com/JackyWoo)).
* Application des paramètres de délai d'expiration de connexion aux INSERT asynchrones sur Distributed à partir de la requête. [#43156](https://github.com/ClickHouse/ClickHouse/pull/43156) ([Azat Khuzhin](https://github.com/azat)).
* La fonction `unhex` prend désormais en charge les arguments `FixedString`. [issue42369](https://github.com/ClickHouse/ClickHouse/issues/42369). [#43207](https://github.com/ClickHouse/ClickHouse/pull/43207) ([DR](https://github.com/freedomDR)).
* La priorité est donnée à la suppression des parties entièrement expirées conformément aux règles TTL, voir [#42869](https://github.com/ClickHouse/ClickHouse/issues/42869). [#43222](https://github.com/ClickHouse/ClickHouse/pull/43222) ([zhongyuankai](https://github.com/zhongyuankai)).
* Indication de la charge CPU plus précise et plus réactive dans clickhouse-client. [#43307](https://github.com/ClickHouse/ClickHouse/pull/43307) ([Sergei Trifonov](https://github.com/serxa)).
* Prise en charge de la lecture des sous-colonnes des types imbriqués depuis le stockage `S3` et la fonction de table `s3` avec les formats `Parquet`, `Arrow` et `ORC`. [#43329](https://github.com/ClickHouse/ClickHouse/pull/43329) ([chen](https://github.com/xiedeyantu)).
* Ajout de la colonne `table_uuid` à la table `system.parts`. [#43404](https://github.com/ClickHouse/ClickHouse/pull/43404) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d'une option client pour afficher le nombre de lignes traitées localement en mode non interactif (`--print-num-processed-rows`). [#43407](https://github.com/ClickHouse/ClickHouse/pull/43407) ([jh0x](https://github.com/jh0x)).
* Implémentation de l'optimisation `aggregation-in-order` au niveau d'un plan de requête. Elle est activée par défaut (mais ne fonctionne qu'avec `optimize_aggregation_in_order`, qui est désactivé par défaut). Définissez `query_plan_aggregation_in_order = 0` pour utiliser la version précédente basée sur l'AST. [#43592](https://github.com/ClickHouse/ClickHouse/pull/43592) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Possibilité de collecter des événements de profilage avec `trace_type = 'ProfileEvent'` dans `system.trace_log` à chaque incrément, avec la pile d'appels courante, le nom de l'événement de profilage et la valeur de l'incrément. Cette fonctionnalité peut être activée via le paramètre `trace_profile_events` et utilisée pour analyser les performances des requêtes. [#43639](https://github.com/ClickHouse/ClickHouse/pull/43639) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout d'un nouveau paramètre `input_format_max_binary_string_size` pour limiter la taille des chaînes au format RowBinary. [#43842](https://github.com/ClickHouse/ClickHouse/pull/43842) ([Kruglov Pavel](https://github.com/Avogar)).
* Lorsque ClickHouse interroge un serveur HTTP distant et que celui-ci renvoie une erreur, le code HTTP numérique ne s'affichait pas correctement dans le message d'exception. Corrige [#43919](https://github.com/ClickHouse/ClickHouse/issues/43919). [#43920](https://github.com/ClickHouse/ClickHouse/pull/43920) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Signale correctement les erreurs dans les requêtes, même lorsqu'une optimisation de plusieurs JOIN est en cours. [#43583](https://github.com/ClickHouse/ClickHouse/pull/43583) ([Salvatore](https://github.com/tbsal)).

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

* L’intégration à systemd notifie désormais correctement systemd que le service a effectivement démarré et qu’il est prêt à traiter les requêtes. [#43400](https://github.com/ClickHouse/ClickHouse/pull/43400) ([Коренберг Марк](https://github.com/socketpair)).
* Ajout d’une option permettant de compiler ClickHouse avec OpenSSL en utilisant le [module FIPS d’OpenSSL](https://www.openssl.org/docs/man3.0/man7/fips_module.html). Ce type de build n’a pas été testé pour valider la sécurité et n’est pas pris en charge. [#43991](https://github.com/ClickHouse/ClickHouse/pull/43991) ([Boris Kuschel](https://github.com/bkuschel)).
* Mise à niveau vers le nouveau codec de compression `DeflateQpl`, implémenté dans une PR précédente (détails : [https://github.com/ClickHouse/ClickHouse/pull/39494](https://github.com/ClickHouse/ClickHouse/pull/39494)). Ce correctif améliore le codec sur les points suivants : 1. passage de QPL v0.2.0 à QPL v0.3.0 [Intel® Query Processing Library (QPL)](https://github.com/intel/qpl) 2. amélioration du fichier CMake pour corriger les problèmes de build avec QPL v0.3.0. 3. liaison de la bibliothèque QPL avec libaccel-config au moment de la compilation, au lieu d’un chargement à l’exécution avec QPL v0.2.0 (dlopen) 4. correction d’un problème d’affichage des logs dans CompressionCodecDeflateQpl.cpp. [#44024](https://github.com/ClickHouse/ClickHouse/pull/44024) ([jasperzhu](https://github.com/jinjunzh)).

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

* Correction d’un bug pouvant entraîner un interblocage lors de l’utilisation des insertions asynchrones. [#43233](https://github.com/ClickHouse/ClickHouse/pull/43233) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une logique erronée dans l’optimisation au niveau de l’AST `optimize_normalize_count_variants`. [#43873](https://github.com/ClickHouse/ClickHouse/pull/43873) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’un cas où les mutations n’avançaient plus lorsque les sommes de contrôle ne correspondaient pas entre les répliques (par exemple, en raison d’un changement de format de données lors d’une mise à niveau). [#36877](https://github.com/ClickHouse/ClickHouse/pull/36877) ([nvartolomei](https://github.com/nvartolomei)).
* Correction de l’optimisation `skip_unavailable_shards`, qui ne fonctionnait pas avec la fonction de table `hdfsCluster`. [#43236](https://github.com/ClickHouse/ClickHouse/pull/43236) ([chen](https://github.com/xiedeyantu)).
* Correction de la prise en charge de `s3` pour le caractère générique `?`. Clôt [#42731](https://github.com/ClickHouse/ClickHouse/issues/42731). [#43253](https://github.com/ClickHouse/ClickHouse/pull/43253) ([chen](https://github.com/xiedeyantu)).
* Correction des fonctions `arrayFirstOrNull` et `arrayLastOrNull`, qui renvoyaient null lorsque le tableau contenait des éléments `Nullable`. [#43274](https://github.com/ClickHouse/ClickHouse/pull/43274) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’un comptage incorrect de `UserTimeMicroseconds`/`SystemTimeMicroseconds` lié aux tables Kafka. [#42791](https://github.com/ClickHouse/ClickHouse/pull/42791) ([Azat Khuzhin](https://github.com/azat)).
* Ne plus supprimer les exceptions sur les disques `web`. Correction également des tentatives de nouvelle exécution pour le disque `web`. [#42800](https://github.com/ClickHouse/ClickHouse/pull/42800) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une condition de concurrence (logique) entre les insertions et la suppression de vues matérialisées. Cette condition de concurrence survenait lorsqu’une vue matérialisée était supprimée en même temps qu’un INSERT : les vues matérialisées étaient présentes comme dépendance de l’insertion au début de l’exécution, mais la table avait déjà été supprimée au moment où la chaîne d’insertion tentait d’y accéder, ce qui produisait une exception `UNKNOWN_TABLE` ou `TABLE_IS_DROPPED` et interrompait l’insertion. Après ce changement, ces exceptions sont évitées et l’insertion se poursuit simplement si la dépendance a disparu. [#43161](https://github.com/ClickHouse/ClickHouse/pull/43161) ([AlfVII](https://github.com/AlfVII)).
* Correction d’un comportement indéfini dans la fonction `quantiles`, qui pouvait conduire à l’utilisation de mémoire non initialisée. Détecté par le fuzzer. Cela clôt [#44066](https://github.com/ClickHouse/ClickHouse/issues/44066). [#44067](https://github.com/ClickHouse/ClickHouse/pull/44067) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’une vérification supplémentaire en cas de taille non compressée nulle dans `CompressionCodecDelta`. [#43255](https://github.com/ClickHouse/ClickHouse/pull/43255) ([Nikita Taranov](https://github.com/nickitat)).
* Aplatissement des tableaux issus de Parquet pour éviter un problème d’incohérence des données dans les tableaux. Ces fichiers incorrects peuvent être générés par Apache Iceberg. [#43297](https://github.com/ClickHouse/ClickHouse/pull/43297) ([Arthur Passos](https://github.com/arthurpassos)).
* Correction d’un cast incorrect à partir d’une colonne `LowCardinality` lors de l’utilisation de l’exécution court-circuitée des fonctions. [#43311](https://github.com/ClickHouse/ClickHouse/pull/43311) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction des requêtes avec `SAMPLE BY` et l’optimisation PREWHERE sur des tables utilisant le moteur `Merge`. [#43315](https://github.com/ClickHouse/ClickHouse/pull/43315) ([Antonio Andelic](https://github.com/antonio2368)).
* Vérification et comparaison du contenu du fichier `format_version` dans `MergeTreeData` afin de permettre le chargement des tables même si la politique de stockage a été modifiée. [#43328](https://github.com/ClickHouse/ClickHouse/pull/43328) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige la possible erreur logique (très improbable) "No column to rollback" lors d'un INSERT dans des tables `Buffer`. [#43336](https://github.com/ClickHouse/ClickHouse/pull/43336) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug qui permettait à l'analyseur syntaxique d'accepter un nombre illimité de parenthèses dans une même fonction si `allow_function_parameters` est défini. [#43350](https://github.com/ClickHouse/ClickHouse/pull/43350) ([Nikolay Degterinsky](https://github.com/evillique)).
* `MaterializeMySQL` (fonctionnalité expérimentale) prend en charge la DDL : `drop table t1, t2` et est compatible avec la plupart des DDL DROP de MySQL. [#43366](https://github.com/ClickHouse/ClickHouse/pull/43366) ([zzsmdfj](https://github.com/zzsmdfj)).
* `session_log` (fonctionnalité expérimentale) : correction de l'impossibilité de se connecter (en raison de l'échec de création de l'entrée session\_log) dans le très rare cas de profils de paramètres corrompus. [#42641](https://github.com/ClickHouse/ClickHouse/pull/42641) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrige le possible `Cannot create non-empty column with type Nothing` dans les fonctions `if`/`multiIf`. Clôt [#43356](https://github.com/ClickHouse/ClickHouse/issues/43356). [#43368](https://github.com/ClickHouse/ClickHouse/pull/43368) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un bug lorsqu'un filtre au niveau des lignes utilise la valeur par défaut d'une colonne. [#43387](https://github.com/ClickHouse/ClickHouse/pull/43387) ([Alexander Gololobov](https://github.com/davenger)).
* Une requête avec `DISTINCT` + `LIMIT BY` + `LIMIT` peut renvoyer moins de lignes que prévu. Corrige [#43377](https://github.com/ClickHouse/ClickHouse/issues/43377). [#43410](https://github.com/ClickHouse/ClickHouse/pull/43410) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige `sumMap` pour `Nullable(Decimal(...))`. [#43414](https://github.com/ClickHouse/ClickHouse/pull/43414) ([Azat Khuzhin](https://github.com/azat)).
* Corrige `date_diff` pour les heures/minutes sur MacOS. Clôt [#42742](https://github.com/ClickHouse/ClickHouse/issues/42742). [#43466](https://github.com/ClickHouse/ClickHouse/pull/43466) ([zzsmdfj](https://github.com/zzsmdfj)).
* Corrige une comptabilisation incorrecte de la mémoire due aux merges/mutations. [#43516](https://github.com/ClickHouse/ClickHouse/pull/43516) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l'analyse de la clé primaire avec des conditions impliquant `toString(enum)`. [#43596](https://github.com/ClickHouse/ClickHouse/pull/43596) ([Nikita Taranov](https://github.com/nickitat)). Cette erreur a été découverte par @tisonkun.
* Garantit la cohérence lorsque `clickhouse-copier` met à jour status et `attach_is_done` dans Keeper une fois l'attachement de la partition terminé. [#43602](https://github.com/ClickHouse/ClickHouse/pull/43602) ([lzydmxy](https://github.com/lzydmxy)).
* Lors de la récupération d'une réplique perdue d'une base de données `Replicated` (fonctionnalité expérimentale), il pouvait arriver qu'il faille échanger atomiquement deux noms de tables (avec EXCHANGE). Auparavant, nous essayions d'utiliser deux requêtes RENAME, ce qui échouait évidemment et faisait en plus échouer tout le processus de récupération de la réplique de base de données. [#43628](https://github.com/ClickHouse/ClickHouse/pull/43628) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige le cas où la fonction `s3Cluster` génère l'erreur `NOT_FOUND_COLUMN_IN_BLOCK`. Clôt [#43534](https://github.com/ClickHouse/ClickHouse/issues/43534). [#43629](https://github.com/ClickHouse/ClickHouse/pull/43629) ([chen](https://github.com/xiedeyantu)).
* Corrige une possible erreur logique `Array sizes mismatched` lors de l’analyse d’un objet JSON contenant des tableaux avec les mêmes noms de clé, mais à des niveaux d’imbrication différents. Clôt [#43569](https://github.com/ClickHouse/ClickHouse/issues/43569). [#43693](https://github.com/ClickHouse/ClickHouse/pull/43693) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige une possible exception dans le cas d’un `GROUP BY` distribué avec une colonne `ALIAS` parmi les clés d’agrégation. [#43709](https://github.com/ClickHouse/ClickHouse/pull/43709) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige un bug pouvant entraîner des projections corrompues si la réplication zero-copy (fonctionnalité expérimentale) est activée et utilisée. [#43764](https://github.com/ClickHouse/ClickHouse/pull/43764) ([alesapin](https://github.com/alesapin)).
* Corrige l’utilisation du multipart upload pour de très grands objets S3 sur AWS S3. [#43824](https://github.com/ClickHouse/ClickHouse/pull/43824) ([ianton-ru](https://github.com/ianton-ru)).
* Corrige `ALTER ... RESET SETTING` avec `ON CLUSTER`. Cela pouvait n’être appliqué qu’à une seule replica. Corrige [#43843](https://github.com/ClickHouse/ClickHouse/issues/43843). [#43848](https://github.com/ClickHouse/ClickHouse/pull/43848) ([Elena Torró](https://github.com/elenatorro)).
* Corrige une erreur logique dans JOIN avec le moteur de table `Join` à droite, lorsque `USING` est utilisé. [#43963](https://github.com/ClickHouse/ClickHouse/pull/43963) ([Vladimir C](https://github.com/vdimir)). Corrige un bug lié à un ordre incorrect des clés dans le moteur de table `Join`. [#44012](https://github.com/ClickHouse/ClickHouse/pull/44012) ([Vladimir C](https://github.com/vdimir)).
* Correctif Keeper : lève une exception si le port interserver pour Raft est déjà utilisé. [#43984](https://github.com/ClickHouse/ClickHouse/pull/43984) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l’argument positionnel de ORDER BY (exemple : `ORDER BY 1, 2`) en cas de pruning inutile de colonnes dans des sous-requêtes. Clôt [#43964](https://github.com/ClickHouse/ClickHouse/issues/43964). [#43987](https://github.com/ClickHouse/ClickHouse/pull/43987) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une exception lorsqu’une sous-requête contient HAVING sans contenir de véritable agrégation. [#44051](https://github.com/ClickHouse/ClickHouse/pull/44051) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige une condition de concurrence dans le multipart upload S3. Cette condition pouvait provoquer l’erreur `Part number must be an integer between 1 and 10000, inclusive. (S3_ERROR)` lors de la restauration depuis une sauvegarde. [#44065](https://github.com/ClickHouse/ClickHouse/pull/44065) ([Vitaly Baranov](https://github.com/vitlibar)).

### <a id="2211" /> Version de ClickHouse 22.11, 2022-11-17. [Présentation](https://presentations.clickhouse.com/2022-release-22.11/), [Vidéo](https://www.youtube.com/watch?v=LR-fckOOaFo)

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

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

* La famille de fonctions `JSONExtract` tentera désormais de convertir les valeurs dans le type demandé. [#41502](https://github.com/ClickHouse/ClickHouse/pull/41502) ([Márcio Martins](https://github.com/marcioapm)).

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

* Ajoute la prise en charge des retries lors des INSERT dans ReplicatedMergeTree lorsqu'une session avec ClickHouse Keeper est perdue. Outre la tolérance aux pannes, cela vise à offrir une meilleure expérience utilisateur en évitant de renvoyer une erreur à l'utilisateur pendant un insert si Keeper redémarre (par exemple, lors d'une mise à niveau). [#42607](https://github.com/ClickHouse/ClickHouse/pull/42607) ([Igor Nikonov](https://github.com/devcrafter)).
* Ajoute les table engines `Hudi` et `DeltaLake`, en mode read-only, uniquement pour les tables sur S3. [#41054](https://github.com/ClickHouse/ClickHouse/pull/41054) ([Daniil Rubin](https://github.com/rubin-do), [Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute les table functions `hudi` et `deltaLake`. [#43080](https://github.com/ClickHouse/ClickHouse/pull/43080) ([flynn](https://github.com/ucasfl)).
* Prise en charge des intervalles de temps composites. 1. Les opérations d'addition, de soustraction et de négation sont désormais disponibles sur les Interval. Si les types d'Interval sont différents, ils seront transformés en Tuple de ces types. 2. Un tuple of intervals peut être ajouté à un champ Date/DateTime ou en être soustrait. 3. Ajout de la prise en charge du parsing d'Interval de types différents, par exemple : `INTERVAL '1 HOUR 1 MINUTE 1 SECOND'`. [#42195](https://github.com/ClickHouse/ClickHouse/pull/42195) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de la prise en charge du glob `**` pour le parcours récursif des directory du filesystem et de S3. Résout [#36316](https://github.com/ClickHouse/ClickHouse/issues/36316). [#42376](https://github.com/ClickHouse/ClickHouse/pull/42376) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Introduit le disk type `s3_plain` pour les opérations de type write-once-read-many. Implémente `ATTACH` d'une table `MergeTree` pour le disk `s3_plain`. [#42628](https://github.com/ClickHouse/ClickHouse/pull/42628) ([Azat Khuzhin](https://github.com/azat)).
* Ajout des politiques row-level appliquées à `system.query_log`. [#39819](https://github.com/ClickHouse/ClickHouse/pull/39819) ([Vladimir Chebotaryov](https://github.com/quickhouse)).
* Ajoute la commande à quatre lettres `csnp` pour créer manuellement des snapshots dans ClickHouse Keeper. De plus, `lgif` a été ajoutée pour obtenir des informations Raft sur un nœud spécifique (par ex. l'index du dernier snapshot créé, le dernier index de log committed). [#41766](https://github.com/ClickHouse/ClickHouse/pull/41766) ([JackyWoo](https://github.com/JackyWoo)).
* Ajoute la fonction `ascii`, comme dans Apache Spark : [https://spark.apache.org/docs/latest/api/sql/#ascii](https://spark.apache.org/docs/latest/api/sql/#ascii). [#42670](https://github.com/ClickHouse/ClickHouse/pull/42670) ([李扬](https://github.com/taiyang-li)).
* Ajoute la fonction `pmod`, qui renvoie un résultat non négatif basé sur le modulo. [#42755](https://github.com/ClickHouse/ClickHouse/pull/42755) ([李扬](https://github.com/taiyang-li)).
* Ajoute la fonction `formatReadableDecimalSize`. [#42774](https://github.com/ClickHouse/ClickHouse/pull/42774) ([Alejandro](https://github.com/alexon1234)).
* Ajoute la fonction `randCanonical`, similaire à la fonction `rand` dans Apache Spark ou Impala. La fonction génère des résultats pseudo-aléatoires avec des values uniformément distribuées sur \[0, 1), indépendantes et identiquement distribuées. [#43124](https://github.com/ClickHouse/ClickHouse/pull/43124) ([李扬](https://github.com/taiyang-li)).
* Ajoute la fonction `displayName`, ferme [#36770](https://github.com/ClickHouse/ClickHouse/issues/36770). [#37681](https://github.com/ClickHouse/ClickHouse/pull/37681) ([hongbin](https://github.com/xlwh)).
* Ajoute le setting `min_age_to_force_merge_on_partition_only` pour optimiser les anciennes parts uniquement à l'échelle de la partition entière. [#42659](https://github.com/ClickHouse/ClickHouse/pull/42659) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout d’une implémentation générique pour les named collections à structure arbitraire, le type d’accès et `system.named_collections`. [#43147](https://github.com/ClickHouse/ClickHouse/pull/43147) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* La fonction `match` peut utiliser l’index s’il s’agit d’une condition sur un préfixe de chaîne. Cela corrige [#37333](https://github.com/ClickHouse/ClickHouse/issues/37333). [#42458](https://github.com/ClickHouse/ClickHouse/pull/42458) ([clarkcaoliu](https://github.com/Clark0)).
* Accélération des opérateurs AND et OR lorsqu’ils sont chaînés. [#42214](https://github.com/ClickHouse/ClickHouse/pull/42214) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Prise en charge de l’analyse en parallèle pour le input format `LineAsString`. Cela améliore légèrement les performances. Cela corrige [#42502](https://github.com/ClickHouse/ClickHouse/issues/42502). [#42780](https://github.com/ClickHouse/ClickHouse/pull/42780) ([Kruglov Pavel](https://github.com/Avogar)).
* Amélioration des performances de ClickHouse Keeper : amélioration des performances de commit dans les cas où de nombreux nœuds différents ont des états non commités. Cela devrait aider lorsque qu’un nœud follower ne parvient pas à se synchroniser assez vite. [#42926](https://github.com/ClickHouse/ClickHouse/pull/42926) ([Antonio Andelic](https://github.com/antonio2368)).
* Une condition comme `NOT LIKE 'prefix%'` peut utiliser le primary index. [#42209](https://github.com/ClickHouse/ClickHouse/pull/42209) ([Duc Canh Le](https://github.com/canhld94)).

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

* Prise en charge du type `Object` dans d’autres types, par ex. `Array(JSON)`. [#36969](https://github.com/ClickHouse/ClickHouse/pull/36969) ([Anton Popov](https://github.com/CurtizJ)).
* Ignorer l’événement SAVEPOINT du binlog MySQL pour MaterializedMySQL. [#42931](https://github.com/ClickHouse/ClickHouse/pull/42931) ([zzsmdfj](https://github.com/zzsmdfj)). Gestion (ignorée) des requêtes SAVEPOINT dans MaterializedMySQL. [#43086](https://github.com/ClickHouse/ClickHouse/pull/43086) ([Stig Bakken](https://github.com/stigsb)).

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

* Les requêtes triviales avec un petit LIMIT détermineront correctement le nombre estimé de lignes à lire, de sorte que le seuil sera correctement vérifié. Ferme [#7071](https://github.com/ClickHouse/ClickHouse/issues/7071). [#42580](https://github.com/ClickHouse/ClickHouse/pull/42580) ([Han Fei](https://github.com/hanfei1991)).
* Ajout de la prise en charge des paramètres interactifs dans les requêtes INSERT VALUES. [#43077](https://github.com/ClickHouse/ClickHouse/pull/43077) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout du nouveau champ `allow_readonly` dans `system.table_functions` pour permettre l'utilisation des fonctions de table en mode lecture seule. Résout [#42414](https://github.com/ClickHouse/ClickHouse/issues/42414) Implémentation : \* Ajout d'un nouveau champ allow\_readonly à la table system.table\_functions. \* Mise à jour pour utiliser le nouveau champ allow\_readonly afin de permettre l'utilisation des fonctions de table en mode lecture seule. Tests : \* Ajout d'un test pour le filesystem tests/queries/0\_stateless/02473\_functions\_in\_readonly\_mode.sh Documentation : \* Mise à jour de la documentation en anglais sur les fonctions de table. [#42708](https://github.com/ClickHouse/ClickHouse/pull/42708) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* `system.asynchronous_metrics` reçoit une documentation embarquée. Cette documentation est également exportée vers Prometheus. Correction d'une erreur dans les métriques concernant les disques `cache` : elles n'étaient calculées que pour un seul disque de cache arbitraire au lieu de tous. Cela clôt [#7644](https://github.com/ClickHouse/ClickHouse/issues/7644). [#43194](https://github.com/ClickHouse/ClickHouse/pull/43194) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* L'algorithme de throttling a été remplacé par un token bucket. [#42665](https://github.com/ClickHouse/ClickHouse/pull/42665) ([Sergei Trifonov](https://github.com/serxa)).
* Masquage des mots de passe et des clés secrètes à la fois dans `system.query_log` et `/var/log/clickhouse-server/*.log`, ainsi que dans les messages d'erreur. [#42484](https://github.com/ClickHouse/ClickHouse/pull/42484) ([Vitaly Baranov](https://github.com/vitlibar)).
* Suppression des parts couvertes pour une part récupérée (afin d'éviter une possible augmentation du délai de réplication). [#39737](https://github.com/ClickHouse/ClickHouse/pull/39737) ([Azat Khuzhin](https://github.com/azat)).
* Si `/dev/tty` est disponible, la progression dans clickhouse-client et clickhouse-local sera affichée directement dans le terminal, sans écrire sur STDERR. Cela permet d'obtenir la progression même si STDERR est redirigé vers un fichier, et le fichier ne sera pas pollué par des séquences d'échappement de terminal. La progression peut être désactivée avec `--progress false`. Cela clôt [#32238](https://github.com/ClickHouse/ClickHouse/issues/32238). [#42003](https://github.com/ClickHouse/ClickHouse/pull/42003) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la prise en charge de l'entrée `FixedString` dans les fonctions d'encodage Base64. [#42285](https://github.com/ClickHouse/ClickHouse/pull/42285) ([ltrk2](https://github.com/ltrk2)).
* Ajout des colonnes `bytes_on_disk` et `path` à `system.detached_parts`. Ferme [#42264](https://github.com/ClickHouse/ClickHouse/issues/42264). [#42303](https://github.com/ClickHouse/ClickHouse/pull/42303) ([chen](https://github.com/xiedeyantu)).
* Amélioration de l'utilisation de la structure de la table d'insertion dans les fonctions de table : le paramètre `use_structure_from_insertion_table_in_table_functions` a désormais une nouvelle valeur possible, `2`, ce qui signifie que ClickHouse essaiera de déterminer automatiquement s'il est possible ou non d'utiliser la structure de la table d'insertion. Ferme [#40028](https://github.com/ClickHouse/ClickHouse/issues/40028). [#42320](https://github.com/ClickHouse/ClickHouse/pull/42320) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l'absence d'indication de progression pour INSERT FROM INFILE. Ferme [#42548](https://github.com/ClickHouse/ClickHouse/issues/42548). [#42634](https://github.com/ClickHouse/ClickHouse/pull/42634) ([chen](https://github.com/xiedeyantu)).
* Refactorisation de la fonction `tokens` pour permettre de définir le nombre maximal de tokens renvoyés par les fonctions associées (désactivé par défaut). [#42673](https://github.com/ClickHouse/ClickHouse/pull/42673) ([李扬](https://github.com/taiyang-li)).
* Autorisation de l'utilisation d'arguments `Date32` pour les fonctions `formatDateTime` et `FROM_UNIXTIME`. [#42737](https://github.com/ClickHouse/ClickHouse/pull/42737) ([Roman Vasin](https://github.com/rvasin)).
* Mise à jour de tzdata vers 2022f. Le Mexique n'observera plus l'heure d'été, sauf près de la frontière avec les États-Unis : [https://www.timeanddate.com/news/time/mexico-abolishes-dst-2022.html](https://www.timeanddate.com/news/time/mexico-abolishes-dst-2022.html). Chihuahua passe à UTC-6 toute l'année à partir du 2022-10-30. Les Fidji n'observent plus non plus l'heure d'été. Voir [https://github.com/google/cctz/pull/235](https://github.com/google/cctz/pull/235) et [https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1995209](https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1995209). [#42796](https://github.com/ClickHouse/ClickHouse/pull/42796) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la métrique d'événement `FailedAsyncInsertQuery` pour les insertions asynchrones. [#42814](https://github.com/ClickHouse/ClickHouse/pull/42814) ([Krzysztof Góralski](https://github.com/kgoralski)).
* Implémentation de l'optimisation `read-in-order` sur la base du query plan. Elle est activée par défaut. Définissez `query_plan_read_in_order = 0` pour utiliser la version précédente basée sur l'AST. [#42829](https://github.com/ClickHouse/ClickHouse/pull/42829) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Augmentation exponentielle de la taille des parts d'upload pour la sauvegarde vers S3 afin d'éviter les erreurs liées à la limite maximale de 10 000 parts du multipart upload vers S3. [#42833](https://github.com/ClickHouse/ClickHouse/pull/42833) ([Vitaly Baranov](https://github.com/vitlibar)).
* Lorsque la tâche de merge est continuellement occupée et que l'espace disque est insuffisant, les parts complètement expirées ne peuvent pas être sélectionnées ni supprimées, ce qui entraîne un manque d'espace disque. L'idée est que, lorsqu'une Part entière expire, il n'est pas nécessaire de réserver de l'espace disque supplémentaire, afin de garantir l'exécution normale du TTL. [#42869](https://github.com/ClickHouse/ClickHouse/pull/42869) ([zhongyuankai](https://github.com/zhongyuankai)).
* Ajout de la fonction `oss` et du table engine `OSS` (ce qui est pratique pour les utilisateurs). oss est entièrement compatible avec S3. [#43155](https://github.com/ClickHouse/ClickHouse/pull/43155) ([zzsmdfj](https://github.com/zzsmdfj)).
* Amélioration du signalement des erreurs lors de la collecte d'informations liées au système d'exploitation pour la table `system.asynchronous_metrics`. [#43192](https://github.com/ClickHouse/ClickHouse/pull/43192) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Modification des tables `INFORMATION_SCHEMA` pour permettre à ClickHouse de se connecter à lui-même via le protocole de compatibilité MySQL. Ajout de colonnes au lieu d'alias (en lien avec [#9769](https://github.com/ClickHouse/ClickHouse/issues/9769)). Cela améliorera la compatibilité avec divers clients MySQL. [#43198](https://github.com/ClickHouse/ClickHouse/pull/43198) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Ajout de certaines fonctions pour améliorer la compatibilité avec PowerBI lorsqu'il se connecte via le protocole MySQL [#42612](https://github.com/ClickHouse/ClickHouse/pull/42612) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Meilleure ergonomie du Dashboard lors des modifications [#42872](https://github.com/ClickHouse/ClickHouse/pull/42872) ([Vladimir C](https://github.com/vdimir)).

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

* Exécution de SQLancer pour chaque pull request et chaque commit sur master. [SQLancer](https://github.com/sqlancer/sqlancer) est un fuzzer Open Source spécialisé dans la détection automatique des bogues logiques. [#42397](https://github.com/ClickHouse/ClickHouse/pull/42397) ([Ilya Yatsishin](https://github.com/qoega)).
* Mise à jour vers la dernière version de zlib-ng. [#42463](https://github.com/ClickHouse/ClickHouse/pull/42463) ([Boris Kuschel](https://github.com/bkuschel)).
* Ajout de la prise en charge des tests de ClickHouse server avec Jepsen. Nous prenons déjà en charge les tests de ClickHouse Keeper avec Jepsen. Cette pull request étend cette prise en charge aux tables Replicated. [#42619](https://github.com/ClickHouse/ClickHouse/pull/42619) ([Antonio Andelic](https://github.com/antonio2368)).
* Utilisation de [https://github.com/matus-chochlik/ctcache](https://github.com/matus-chochlik/ctcache) pour la mise en cache des résultats de clang-tidy. [#42913](https://github.com/ClickHouse/ClickHouse/pull/42913) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Avant ce correctif, RPM conservait la config définie par l'utilisateur dans `$file.rpmsave`. Cette pull request corrige ce comportement et ne remplacera plus les fichiers de l'utilisateur par ceux des paquets. [#42936](https://github.com/ClickHouse/ClickHouse/pull/42936) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Suppression de certaines bibliothèques de l'image Docker Ubuntu. [#42622](https://github.com/ClickHouse/ClickHouse/pull/42622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Mise à jour du normaliseur pour cloner l’AST de l’alias. Résout [#42452](https://github.com/ClickHouse/ClickHouse/issues/42452) Implémentation : \* Mise à jour de QueryNormalizer afin de cloner l’AST de l’alias lorsqu’il est remplacé. Auparavant, le simple fait de réaffecter le même entraînait une exception dans LogicalExpressinsOptimizer, car le même parent était inséré une seconde fois. \* Ce bogue n’apparaît pas avec le nouvel analyseur (`allow&#95;experimental&#95;analyzer`), donc aucune modification n’a été apportée de ce côté. J’ai ajouté un test correspondant. [#42827](https://github.com/ClickHouse/ClickHouse/pull/42827) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction d’une condition de concurrence lors de la sauvegarde des tables dans les bases de données `Lazy`. [#43104](https://github.com/ClickHouse/ClickHouse/pull/43104) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction pour `skip_unavailable_shards` : cela ne fonctionnait pas avec la fonction de table `s3Cluster`. [#43131](https://github.com/ClickHouse/ClickHouse/pull/43131) ([chen](https://github.com/xiedeyantu)).
* Correction de l’inférence de schéma dans `s3Cluster` et amélioration de `hdfsCluster`. [#41979](https://github.com/ClickHouse/ClickHouse/pull/41979) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction des nouvelles tentatives de lecture depuis les moteurs de table URL / la fonction de table. (les erreurs pouvant être réessayées pouvaient l’être plus de fois que nécessaire, tandis que les erreurs non réessayables provoquaient l’échec d’une assertion dans le code). [#42224](https://github.com/ClickHouse/ClickHouse/pull/42224) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Un défaut de segmentation lié à DNS & c-ares a été signalé, puis corrigé. [#42234](https://github.com/ClickHouse/ClickHouse/pull/42234) ([Arthur Passos](https://github.com/arthurpassos)).
* Correction de `LOGICAL_ERROR` `Arguments of 'plus' have incorrect data types`, qui peut se produire lors de l’analyse de la PK (vérification de monotonie). Correction d’une analyse PK invalide pour les fonctions binaires monotones avec un premier argument constant. [#42410](https://github.com/ClickHouse/ClickHouse/pull/42410) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une analyse de clé incorrecte lorsque les types de clé ne peuvent pas être contenus dans Nullable. Cela corrige [#42456](https://github.com/ClickHouse/ClickHouse/issues/42456). [#42469](https://github.com/ClickHouse/ClickHouse/pull/42469) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une faute de frappe dans un nom de paramètre, qui entraînait une mauvaise utilisation du cache d’inférence de schéma avec le paramètre `input_format_csv_use_best_effort_in_schema_inference`. Ferme [#41735](https://github.com/ClickHouse/ClickHouse/issues/41735). [#42536](https://github.com/ClickHouse/ClickHouse/pull/42536) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la création d’un Set avec un en-tête incorrect lorsque le type de données est LowCardinality. Ferme [#42460](https://github.com/ClickHouse/ClickHouse/issues/42460). [#42579](https://github.com/ClickHouse/ClickHouse/pull/42579) ([flynn](https://github.com/ucasfl)).
* Les valeurs `(U)Int128` et `(U)Int256` étaient correctement vérifiées dans `PREWHERE`. [#42605](https://github.com/ClickHouse/ClickHouse/pull/42605) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un bogue dans l’analyseur syntaxique des fonctions, qui pouvait entraîner un défaut de segmentation. [#42724](https://github.com/ClickHouse/ClickHouse/pull/42724) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction du verrouillage dans `truncate table`. [#42728](https://github.com/ClickHouse/ClickHouse/pull/42728) ([flynn](https://github.com/ucasfl)).
* Correction d’un plantage possible dans les disques `web` lorsque le fichier n’existe pas (ou dans `OPTIMIZE TABLE FINAL`, qui peut aussi finir par produire la même erreur). [#42767](https://github.com/ClickHouse/ClickHouse/pull/42767) ([Azat Khuzhin](https://github.com/azat)).
* Correction du mapping de `auth_type` dans `system.session_log`, avec l’ajout de `SSL_CERTIFICATE` parmi les valeurs de l’énumération. [#42782](https://github.com/ClickHouse/ClickHouse/pull/42782) ([Miel Donkers](https://github.com/mdonkers)).
* Correction d’un `stack-use-after-return` dans une build ASAN du parseur de requêtes CREATE USER. [#42804](https://github.com/ClickHouse/ClickHouse/pull/42804) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de `lowerUTF8`/`upperUTF8` lorsqu’un symbole se trouvait à cheval sur une limite de 16 octets (cas très fréquent si vous avez des chaînes de plus de 16 octets). [#42812](https://github.com/ClickHouse/ClickHouse/pull/42812) ([Azat Khuzhin](https://github.com/azat)).
* Une vérification supplémentaire des limites a été ajoutée à la procédure de décompression LZ4 afin de corriger un dysfonctionnement en cas d’entrée malformée. [#42868](https://github.com/ClickHouse/ClickHouse/pull/42868) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d’un rare blocage possible lors de l’annulation d’une requête. [#42874](https://github.com/ClickHouse/ClickHouse/pull/42874) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un comportement incorrect avec plusieurs disjonctions dans le hash join, clôt [#42832](https://github.com/ClickHouse/ClickHouse/issues/42832). [#42876](https://github.com/ClickHouse/ClickHouse/pull/42876) ([Vladimir C](https://github.com/vdimir)).
* Un pointeur nul pouvait être généré lors d’un `select if as from` sur une 'jointure de trois tables', par exemple avec cette requête SQL : [#42883](https://github.com/ClickHouse/ClickHouse/pull/42883) ([zzsmdfj](https://github.com/zzsmdfj)).
* Correction d’un rapport du memory sanitizer dans Cluster Discovery, clôt [#42763](https://github.com/ClickHouse/ClickHouse/issues/42763). [#42905](https://github.com/ClickHouse/ClickHouse/pull/42905) ([Vladimir C](https://github.com/vdimir)).
* Amélioration de l’inférence de schéma de DateTime dans le cas d’une chaîne vide. [#42911](https://github.com/ClickHouse/ClickHouse/pull/42911) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la rare erreur NOT\_FOUND\_COLUMN\_IN\_BLOCK lorsqu’une projection peut être utilisée, mais qu’aucune projection n’est disponible. Cela corrige [#42771](https://github.com/ClickHouse/ClickHouse/issues/42771) . Le bug a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/25563](https://github.com/ClickHouse/ClickHouse/pull/25563). [#42938](https://github.com/ClickHouse/ClickHouse/pull/42938) ([Amos Bird](https://github.com/amosbird)).
* Correction de ATTACH TABLE dans le moteur de base de données `PostgreSQL` si la table contient le type de données DATETIME. Clôt [#42817](https://github.com/ClickHouse/ClickHouse/issues/42817). [#42960](https://github.com/ClickHouse/ClickHouse/pull/42960) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’analyse des lambdas. Clôt [#41848](https://github.com/ClickHouse/ClickHouse/issues/41848). [#42979](https://github.com/ClickHouse/ClickHouse/pull/42979) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction d’une analyse incorrecte des clés lorsque des clés Nullable apparaissent au milieu d’un hyperrectangle. Cela corrige [#43111](https://github.com/ClickHouse/ClickHouse/issues/43111) . [#43133](https://github.com/ClickHouse/ClickHouse/pull/43133) ([Amos Bird](https://github.com/amosbird)).
* Correction de plusieurs lectures hors limites du buffer lors de la désérialisation d’aggregate function states soigneusement forgés. [#43159](https://github.com/ClickHouse/ClickHouse/pull/43159) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de la fonction `if` dans le cas de NULL et d’arguments const Nullable. Clôt [#43069](https://github.com/ClickHouse/ClickHouse/issues/43069). [#43178](https://github.com/ClickHouse/ClickHouse/pull/43178) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d'un overflow en arithmétique décimale lors de l'analyse de `DateTime` avec l'algorithme 'best effort'. Closes [#43061](https://github.com/ClickHouse/ClickHouse/issues/43061). [#43180](https://github.com/ClickHouse/ClickHouse/pull/43180) ([Kruglov Pavel](https://github.com/Avogar)).
* Le champ `indent` produit par l'outil `git-import` était calculé incorrectement. Voir [https://clickhouse.com/docs/getting-started/example-datasets/github/](https://clickhouse.com/docs/getting-started/example-datasets/github/). [#43191](https://github.com/ClickHouse/ClickHouse/pull/43191) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du comportement inattendu des types `Interval` avec les sous-requêtes et le transtypage. [#43193](https://github.com/ClickHouse/ClickHouse/pull/43193) ([jh0x](https://github.com/jh0x)).

### <a id="2210" /> Version 22.10 de ClickHouse, 2022-10-25. [Présentation](https://presentations.clickhouse.com/2022-release-22.10/), [Vidéo](https://www.youtube.com/watch?v=sz9SES5-mdc)

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

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

* Renommage des commandes de cache : `show caches` -> `show filesystem caches`, `describe cache` -> `describe filesystem cache`. [#41508](https://github.com/ClickHouse/ClickHouse/pull/41508) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suppression de la prise en charge de la section `WITH TIMEOUT` pour `LIVE VIEW`. Ceci résout [#40557](https://github.com/ClickHouse/ClickHouse/issues/40557). [#42173](https://github.com/ClickHouse/ClickHouse/pull/42173) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression de la prise en charge de la macro `{database}` dans le prompt du client. Elle s’affichait incorrectement si la base de données n’était pas spécifiée et n’était pas mise à jour après les instructions `USE`. Ceci résout [#25891](https://github.com/ClickHouse/ClickHouse/issues/25891). [#42508](https://github.com/ClickHouse/ClickHouse/pull/42508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Une configuration de protocoles composable a été ajoutée. Il est désormais possible de configurer différents protocoles avec différents hôtes d’écoute. Des wrappers de protocole comme PROXYv1 peuvent être configurés par-dessus n’importe quel autre protocole (TCP, TCP sécurisé, MySQL, Postgres). [#41198](https://github.com/ClickHouse/ClickHouse/pull/41198) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout de `S3` comme nouveau type de destination pour les sauvegardes. Prise en charge de BACKUP vers S3 en conservant telle quelle la structure des chemins/données. [#42333](https://github.com/ClickHouse/ClickHouse/pull/42333) ([Vitaly Baranov](https://github.com/vitlibar)), [#42232](https://github.com/ClickHouse/ClickHouse/pull/42232) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de fonctions (`randUniform`, `randNormal`, `randLogNormal`, `randExponential`, `randChiSquared`, `randStudentT`, `randFisherF`, `randBernoulli`, `randBinomial`, `randNegativeBinomial`, `randPoisson`) pour générer des valeurs aléatoires selon les distributions spécifiées. Cela clôt [#21834](https://github.com/ClickHouse/ClickHouse/issues/21834). [#42411](https://github.com/ClickHouse/ClickHouse/pull/42411) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Amélioration de ClickHouse Keeper : ajout de la prise en charge du téléversement de snapshots vers S3. Les informations S3 peuvent être définies dans `keeper_server.s3_snapshot`. [#41342](https://github.com/ClickHouse/ClickHouse/pull/41342) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout d’une fonction d’agrégation `analysisOfVariance` (`anova`) permettant d’effectuer un test statistique sur plusieurs groupes d’observations suivant une distribution normale afin de déterminer si tous les groupes ont la même moyenne. PR d’origine [#37872](https://github.com/ClickHouse/ClickHouse/issues/37872). [#42131](https://github.com/ClickHouse/ClickHouse/pull/42131) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Prise en charge de la limitation des données temporaires stockées sur disque à l’aide des paramètres `max_temporary_data_on_disk_size_for_user`/`max_temporary_data_on_disk_size_for_query`. [#40893](https://github.com/ClickHouse/ClickHouse/pull/40893) ([Vladimir C](https://github.com/vdimir)).
* Ajout du paramètre `format_json_object_each_row_column_for_object_name` pour écrire/analyser le nom de l’objet comme valeur de colonne au format JSONObjectEachRow. [#41703](https://github.com/ClickHouse/ClickHouse/pull/41703) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la fonction de hachage BLAKE3 à SQL. [#33435](https://github.com/ClickHouse/ClickHouse/pull/33435) ([BoloniniD](https://github.com/BoloniniD)).
* La fonction `javaHash` a été étendue aux entiers. [#41131](https://github.com/ClickHouse/ClickHouse/pull/41131) ([JackyWoo](https://github.com/JackyWoo)).
* Ajout de la prise en charge d’OpenTelemetry pour les DDL ON CLUSTER (nécessite que `distributed_ddl_entry_format_version` soit défini sur 4). [#41484](https://github.com/ClickHouse/ClickHouse/pull/41484) ([Frank Chen](https://github.com/FrankChen021)).
* Ajout de la table système `asynchronous_insert_log`. Elle contient des informations sur les insertions asynchrones (y compris les résultats des requêtes en mode fire-and-forget (avec `wait_for_async_insert=0`)) pour une meilleure introspection. [#42040](https://github.com/ClickHouse/ClickHouse/pull/42040) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la prise en charge des méthodes `lz4`, `bz2`, `snappy` dans `Accept-Encoding` de HTTP, qui constitue une extension non standard du protocole HTTP. [#42071](https://github.com/ClickHouse/ClickHouse/pull/42071) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de fonctions d’encodage/décodage Morton Coding (ZCurve). [#41753](https://github.com/ClickHouse/ClickHouse/pull/41753) ([Constantine Peresypkin](https://github.com/pkit)).
* Prise en charge de `SET setting_name = DEFAULT` ajoutée. [#42187](https://github.com/ClickHouse/ClickHouse/pull/42187) ([Filatenkov Artur](https://github.com/FArthur-cmd)).

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

* Ajout d'une nouvelle infrastructure pour l'analyse et la planification des requêtes avec le paramètre `allow_experimental_analyzer`. [#31796](https://github.com/ClickHouse/ClickHouse/pull/31796) ([Maksim Kita](https://github.com/kitaisreal)).
* Première implémentation de Kusto Query Language. Veuillez ne pas l'utiliser. [#37961](https://github.com/ClickHouse/ClickHouse/pull/37961) ([Yong Wang](https://github.com/kashwy)).

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

* Assouplissement du seuil « Too many parts ». Cela clôt [#6551](https://github.com/ClickHouse/ClickHouse/issues/6551). Désormais, ClickHouse autorisera davantage de parts dans une partition si la taille moyenne des parts est suffisamment importante (au moins 10 GiB). Cela permet d’avoir jusqu’à des pétaoctets de données dans une seule partition d’une seule table sur un seul serveur, ce qui est possible avec des baies de disques ou du stockage objet. [#42002](https://github.com/ClickHouse/ClickHouse/pull/42002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implémentation d’un parseur de précédence des opérateurs afin de réduire la taille de pile requise. [#34892](https://github.com/ClickHouse/ClickHouse/pull/34892) ([Nikolay Degterinsky](https://github.com/evillique)).
* L’optimisation DISTINCT in order exploite les propriétés de tri des flux de données. Cette amélioration permettra la lecture ordonnée pour DISTINCT lorsque cela s’applique (auparavant, il fallait spécifier ORDER BY pour les colonnes de DISTINCT). [#41014](https://github.com/ClickHouse/ClickHouse/pull/41014) ([Igor Nikonov](https://github.com/devcrafter)).
* ColumnVector : optimisation de l’index UInt8 avec AVX512VBMI. [#41247](https://github.com/ClickHouse/ClickHouse/pull/41247) ([Guo Wangyang](https://github.com/guowangy)).
* Optimisation des contentions de verrouillage pour `ThreadGroupStatus::mutex`. Les tests de performance de **SSB** (Star Schema Benchmark) sur la plateforme ICX (Intel Xeon Platinum 8380 CPU, 80 cœurs, 160 threads) montrent que ce changement pourrait apporter un gain de **2.95x** sur la moyenne géométrique du QPS de tous les sous-cas. [#41675](https://github.com/ClickHouse/ClickHouse/pull/41675) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Ajout des capacités `ldapr` aux builds AArch64. Elles sont prises en charge à partir de Graviton 2+, ainsi que sur les instances Azure et GCP. Elles ne sont apparues dans clang-15 qu’[il n’y a pas si longtemps](https://github.com/llvm/llvm-project/commit/9609b5daffe9fd28d83d83da895abc5113f76c24). [#41778](https://github.com/ClickHouse/ClickHouse/pull/41778) ([Daniel Kutenin](https://github.com/danlark1)).
* Amélioration des performances lors de la comparaison de chaînes lorsqu’un argument est une chaîne constante vide. [#41870](https://github.com/ClickHouse/ClickHouse/pull/41870) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimisation de `insertFrom` de ColumnAggregateFunction pour partager l’aggregate state dans certains cas. [#41960](https://github.com/ClickHouse/ClickHouse/pull/41960) ([flynn](https://github.com/ucasfl)).
* Accélération de l’écriture sur les disques `azure_blob_storage` (respect de `max_single_part_upload_size` au lieu d’écrire un bloc pour chaque taille de buffer). Inefficacité mentionnée dans [#41754](https://github.com/ClickHouse/ClickHouse/issues/41754). [#42041](https://github.com/ClickHouse/ClickHouse/pull/42041) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Rendre uniques les identifiants de thread dans la liste des processus et query\_log afin d’éviter le gaspillage. [#42180](https://github.com/ClickHouse/ClickHouse/pull/42180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge du contournement complet du cache (à la fois le téléchargement dans le cache et la lecture des données en cache) lorsque la plage de lecture demandée dépasse le seuil défini par le paramètre de cache `bypass_cache_threashold` ; nécessite l’activation de `enable_bypass_cache_with_threshold`. [#42418](https://github.com/ClickHouse/ClickHouse/pull/42418) ([Han Shukai](https://github.com/KinderRiven)). Cela est utile sur les disques locaux lents.

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

* Ajout du paramètre `allow_implicit_no_password` : en combinaison avec `allow_no_password`, il interdit de créer un utilisateur sans mot de passe, sauf si `IDENTIFIED WITH no_password` est explicitement spécifié. [#41341](https://github.com/ClickHouse/ClickHouse/pull/41341) ([Nikolay Degterinsky](https://github.com/evillique)).
* Keeper embarqué démarrera désormais toujours en arrière-plan, ce qui permet à ClickHouse de démarrer sans atteindre le quorum. [#40991](https://github.com/ClickHouse/ClickHouse/pull/40991) ([Antonio Andelic](https://github.com/antonio2368)).
* Le rétablissement d’une connexion à ZooKeeper après l’expiration de la précédente est désormais plus réactif. Auparavant, une tâche s’exécutait par défaut toutes les minutes, si bien qu’une table pouvait rester en état `readonly` pendant ce laps de temps. [#41092](https://github.com/ClickHouse/ClickHouse/pull/41092) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Les projections peuvent désormais être utilisées avec zero-copy replication (zero-copy replication n’est pas une fonctionnalité destinée à la production). [#41147](https://github.com/ClickHouse/ClickHouse/pull/41147) ([alesapin](https://github.com/alesapin)).
* Prise en charge de l’expression `(EXPLAIN SELECT ...)` dans une sous-requête. Les requêtes comme `SELECT * FROM (EXPLAIN PIPELINE SELECT col FROM TABLE ORDER BY col)` sont désormais valides. [#40630](https://github.com/ClickHouse/ClickHouse/pull/40630) ([Vladimir C](https://github.com/vdimir)).
* Autorise la modification de `async_insert_max_data_size` ou `async_insert_busy_timeout_ms` dans le périmètre d’une requête. Par exemple, un utilisateur peut vouloir insérer des données rarement sans avoir accès à la configuration du serveur pour ajuster les paramètres par défaut. [#40668](https://github.com/ClickHouse/ClickHouse/pull/40668) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Améliorations de la lecture depuis des systèmes de fichiers distants ; la taille du threadpool pour les lectures/écritures est désormais configurable. Closes [#41070](https://github.com/ClickHouse/ClickHouse/issues/41070). [#41011](https://github.com/ClickHouse/ClickHouse/pull/41011) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge de toutes les combinaisons de combinators dans le versionnage des fonctions WindowTransform/arratReduce\*/initializeAggregation/aggregate. Auparavant, des combinators comme `ForEach/Resample/Map` ne fonctionnaient pas à ces endroits, et leur utilisation entraînait une exception du type `State function ... inserts results into non-state column`. [#41107](https://github.com/ClickHouse/ClickHouse/pull/41107) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la fonction `tryDecrypt`, qui renvoie NULL lorsque le déchiffrement échoue (par exemple avec une clé incorrecte) au lieu de lever une exception. [#41206](https://github.com/ClickHouse/ClickHouse/pull/41206) ([Duc Canh Le](https://github.com/canhld94)).
* Ajout de la colonne `unreserved_space` à la table `system.disks` pour vérifier l’espace non occupé par des réservations sur chaque disque. [#41254](https://github.com/ClickHouse/ClickHouse/pull/41254) ([filimonov](https://github.com/filimonov)).
* Prise en charge des en-têtes d’autorisation s3 dans les arguments de fonction de table. [#41261](https://github.com/ClickHouse/ClickHouse/pull/41261) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la prise en charge de MultiRead dans Keeper et le client ZooKeeper interne (il s’agit d’une extension du protocole ZooKeeper, disponible uniquement dans ClickHouse Keeper). [#41410](https://github.com/ClickHouse/ClickHouse/pull/41410) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la prise en charge de la comparaison du type Decimal avec un littéral en virgule flottante dans l’opérateur IN. [#41544](https://github.com/ClickHouse/ClickHouse/pull/41544) ([liang.huang](https://github.com/lhuang09287750)).
* Autorise les valeurs de taille lisible (comme `1TB`) dans la configuration du cache. [#41688](https://github.com/ClickHouse/ClickHouse/pull/41688) ([Kseniia Sumarokova](https://github.com/kssenii)).
* ClickHouse pouvait conserver en cache des entrées DNS obsolètes pendant un certain temps (15 secondes par défaut), jusqu’à ce que le cache soit mis à jour de manière asynchrone. Pendant ces périodes, ClickHouse pouvait néanmoins tenter d’établir une connexion et produire des erreurs. Ce comportement a été corrigé. [#41707](https://github.com/ClickHouse/ClickHouse/pull/41707) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout d’une recherche interactive dans l’historique à l’aide d’un utilitaire de type fzf (fzf/sk) pour `clickhouse-client`/`clickhouse-local` (notez que vous pouvez utiliser `FZF_DEFAULT_OPTS`/`SKIM_DEFAULT_OPTIONS` pour configurer davantage le comportement). [#41730](https://github.com/ClickHouse/ClickHouse/pull/41730) ([Azat Khuzhin](https://github.com/azat)).
* Autoriser uniquement les clients se connectant à un serveur sécurisé avec un certificat invalide à poursuivre avec le flag `--accept-certificate`. [#41743](https://github.com/ClickHouse/ClickHouse/pull/41743) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout de la fonction `tryBase58Decode`, similaire à la fonction existante `tryBase64Decode`. [#41824](https://github.com/ClickHouse/ClickHouse/pull/41824) ([Robert Schulze](https://github.com/rschu1ze)).
* Amélioration des messages de retour lors du remplacement d’une partition par une partition ayant une primary key différente. Corrige [#34798](https://github.com/ClickHouse/ClickHouse/issues/34798). [#41838](https://github.com/ClickHouse/ClickHouse/pull/41838) ([Salvatore](https://github.com/tbsal)).
* Correction du parsing parallèle : le segmentateur vérifie désormais `max_block_size`. Cela corrige une surallocation de mémoire en cas de parsing parallèle et de LIMIT faible. [#41852](https://github.com/ClickHouse/ClickHouse/pull/41852) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ne pas ajouter l’exception "TABLE\_IS\_DROPPED" à `system.errors` si elle se produit lors d’un SELECT sur une system table et qu’elle est ignorée. [#41908](https://github.com/ClickHouse/ClickHouse/pull/41908) ([AlfVII](https://github.com/AlfVII)).
* Amélioration de l’option `enable_extended_results_for_datetime_functions` afin de renvoyer des résultats de type DateTime64 pour les fonctions `toStartOfDay`, `toStartOfHour`, `toStartOfFifteenMinutes`, `toStartOfTenMinutes`, `toStartOfFiveMinutes`, `toStartOfMinute` et `timeSlot`. [#41910](https://github.com/ClickHouse/ClickHouse/pull/41910) ([Roman Vasin](https://github.com/rvasin)).
* Amélioration de l’inférence du type `DateTime` pour les text formats. Désormais, elle respecte le paramètre `date_time_input_format` et n’essaie pas d’inférer des DateTime à partir de nombres interprétés comme timestamps. Ferme [#41389](https://github.com/ClickHouse/ClickHouse/issues/41389) Ferme [#42206](https://github.com/ClickHouse/ClickHouse/issues/42206). [#41912](https://github.com/ClickHouse/ClickHouse/pull/41912) ([Kruglov Pavel](https://github.com/Avogar)).
* Suppression d’un avertissement trompeur lors d’un insert avec `perform_ttl_move_on_insert` = false. [#41980](https://github.com/ClickHouse/ClickHouse/pull/41980) ([Vitaly Baranov](https://github.com/vitlibar)).
* Autoriser l’utilisateur à écrire `countState(*)`, comme pour `count(*)`. Cela ferme [#9338](https://github.com/ClickHouse/ClickHouse/issues/9338). [#41983](https://github.com/ClickHouse/ClickHouse/pull/41983) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un overflow de taille dans `rankCorr`. [#42020](https://github.com/ClickHouse/ClickHouse/pull/42020) ([Duc Canh Le](https://github.com/canhld94)).
* Ajout d’une option permettant de spécifier une chaîne arbitraire comme nom d’environnement dans la config de Sentry, pour des rapports plus pratiques. [#42037](https://github.com/ClickHouse/ClickHouse/pull/42037) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction du parsing d’une valeur Date hors plage depuis un CSV. [#42044](https://github.com/ClickHouse/ClickHouse/pull/42044) ([Andrey Zvonov](https://github.com/zvonand)).
* `parseDataTimeBestEffort` prend désormais en charge la virgule entre la date et l’heure. Résout [#42038](https://github.com/ClickHouse/ClickHouse/issues/42038). [#42049](https://github.com/ClickHouse/ClickHouse/pull/42049) ([flynn](https://github.com/ucasfl)).
* Amélioration du processus de récupération des répliques obsolètes pour `ReplicatedMergeTree`. Si une réplique perdue possède certaines parts absentes d’une réplique saine, mais que ces parts sont censées apparaître ultérieurement selon la file de réplication de la réplique saine, alors la réplique perdue conservera ces parts au lieu de les détacher. [#42134](https://github.com/ClickHouse/ClickHouse/pull/42134) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajout de la possibilité d’utiliser des arguments `Date32` pour la fonction date\_diff. Correction d’un problème dans la fonction date\_diff lors de l’utilisation d’arguments DateTime64 avec une date de début antérieure à l’époque Unix et une date de fin postérieure à l’époque Unix. [#42308](https://github.com/ClickHouse/ClickHouse/pull/42308) ([Roman Vasin](https://github.com/rvasin)).
* Lors du téléversement de grosses parts vers Minio, 'Complete Multipart Upload' peut prendre beaucoup de temps. Minio envoie des battements de cœur toutes les 10 secondes (voir [https://github.com/minio/minio/pull/7198](https://github.com/minio/minio/pull/7198)). Mais ClickHouse déclenche un timeout plus tôt, car le délai d’expiration d’envoi/réception par défaut est [défini](https://github.com/ClickHouse/ClickHouse/blob/cc24fcd6d5dfb67f5f66f5483e986bd1010ad9cf/src/IO/S3/PocoHTTPClient.cpp#L123) à 5 secondes. [#42321](https://github.com/ClickHouse/ClickHouse/pull/42321) ([filimonov](https://github.com/filimonov)).
* Correction d’une conversion parfois invalide des types d’état d’agrégation avec des types complexes tels que Decimal. Cela corrige [#42408](https://github.com/ClickHouse/ClickHouse/issues/42408). [#42417](https://github.com/ClickHouse/ClickHouse/pull/42417) ([Amos Bird](https://github.com/amosbird)).
* Autorise désormais l’utilisation d’arguments `Date32` pour la fonction `dateName`. [#42554](https://github.com/ClickHouse/ClickHouse/pull/42554) ([Roman Vasin](https://github.com/rvasin)).
* Désormais, les filtres avec des littéraux NULL seront utilisés lors de l’analyse d’index. [#34063](https://github.com/ClickHouse/ClickHouse/issues/34063). [#41842](https://github.com/ClickHouse/ClickHouse/pull/41842) ([Amos Bird](https://github.com/amosbird)).
* Fusion des parts si chaque part de la plage est plus ancienne qu’un certain seuil. Le seuil peut être défini à l’aide de `min_age_to_force_merge_seconds`. Cela résout [#35836](https://github.com/ClickHouse/ClickHouse/issues/35836). [#42423](https://github.com/ClickHouse/ClickHouse/pull/42423) ([Antonio Andelic](https://github.com/antonio2368)). Il s’agit de la suite de [#39550i](https://github.com/ClickHouse/ClickHouse/pull/39550) par [@fastio](https://github.com/fastio), qui a implémenté l’essentiel de la logique.
* Ajout d’une nouvelle infrastructure pour l’analyse et la planification des requêtes avec le paramètre `allow_experimental_analyzer`. [#31796](https://github.com/ClickHouse/ClickHouse/pull/31796) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore le temps nécessaire pour rétablir les connexions perdues à Keeper. [#42541](https://github.com/ClickHouse/ClickHouse/pull/42541) ([Raúl Marín](https://github.com/Algunenano)).

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

* Ajout d’un fuzzer pour les définitions de table [#40096](https://github.com/ClickHouse/ClickHouse/pull/40096) ([Anton Popov](https://github.com/CurtizJ)). Il s’agit de la plus grande avancée réalisée jusqu’à présent cette année pour les tests de ClickHouse.
* La version bêta du service ClickHouse Cloud est publiée : [https://console.clickhouse.cloud/](https://console.clickhouse.cloud/). C’est le moyen le plus simple d’utiliser ClickHouse (même un peu plus simple qu’une installation en une seule commande).
* Ajout de la prise en charge de la génération de clauses WHERE dans AST Fuzzer, ainsi que de la possibilité d’ajouter ou de supprimer ORDER BY et la clause WHERE. [#38519](https://github.com/ClickHouse/ClickHouse/pull/38519) ([Ilya Yatsishin](https://github.com/qoega)).
* Les binaires Aarch64 nécessitent désormais au minimum ARMv8.2, publié en 2016. Cela permet notamment d’utiliser ARM LSE, c’est-à-dire des opérations atomiques natives. De plus, l’option de build CMake "NO\_ARMV81\_OR\_HIGHER" a été ajoutée pour permettre la compilation de binaires pour des matériels ARMv8.0 plus anciens, par exemple le Raspberry Pi 4. [#41610](https://github.com/ClickHouse/ClickHouse/pull/41610) ([Robert Schulze](https://github.com/rschu1ze)).
* Possibilité de compiler ClickHouse avec Musl (avec de petites modifications après une prise en charge déjà présente, mais défaillante). [#41987](https://github.com/ClickHouse/ClickHouse/pull/41987) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la vérification du fichier `$CLICKHOUSE_CRONFILE` pour éviter d’exécuter la commande `sed` et d’obtenir une erreur « file not found » lors de l’installation. [#42081](https://github.com/ClickHouse/ClickHouse/pull/42081) ([Chun-Sheng, Li](https://github.com/peter279k)).
* Mise à jour de cctz vers `2022e` pour prendre en charge les nouvelles modifications de timezone. En Palestine, les changements ont désormais lieu le samedi à 02:00. Les trois zones d’Ukraine sont simplifiées en une seule. La Jordanie et la Syrie passent de +02/+03 avec DST à +03 toute l’année. ([https://data.iana.org/time-zones/tzdb/NEWS](https://data.iana.org/time-zones/tzdb/NEWS)). Cela clôt [#42252](https://github.com/ClickHouse/ClickHouse/issues/42252). [#42327](https://github.com/ClickHouse/ClickHouse/pull/42327) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#42273](https://github.com/ClickHouse/ClickHouse/pull/42273) ([Dom Del Nano](https://github.com/ddelnano)).
* Ajout de la prise en charge du code Rust dans ClickHouse, avec la bibliothèque de fonction de hash BLAKE3 comme exemple. [#33435](https://github.com/ClickHouse/ClickHouse/pull/33435) ([BoloniniD](https://github.com/BoloniniD)).

<div id="bug-fix-user-visible-misbehavior-in-official-stable-or-prestable-release-2">
  #### Correction de bug (comportement anormal visible par l’utilisateur dans une version stable ou préstable officielle)
</div>

* Choix de la bonne méthode d'agrégation pour `LowCardinality` avec de grands types entiers. [#42342](https://github.com/ClickHouse/ClickHouse/pull/42342) ([Duc Canh Le](https://github.com/canhld94)).
* Plusieurs correctifs pour le disque `web`. [#41652](https://github.com/ClickHouse/ClickHouse/pull/41652) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un problème qui faisait échouer `docker run` si `https_port` n'était pas présent dans la config. [#41693](https://github.com/ClickHouse/ClickHouse/pull/41693) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Les mutations n'étaient pas correctement annulées lors de l'arrêt du serveur ou d'une requête `SYSTEM STOP MERGES`, et leur annulation pouvait prendre beaucoup de temps ; c'est corrigé. [#41699](https://github.com/ClickHouse/ClickHouse/pull/41699) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige un résultat erroné pour des requêtes avec `ORDER BY` ou `GROUP BY` sur des colonnes du préfixe de la clé de tri, encapsulées dans des fonctions monotones, lorsque l'optimisation "read in order" est activée (paramètres `optimize_read_in_order` et `optimize_aggregation_in_order`). [#41701](https://github.com/ClickHouse/ClickHouse/pull/41701) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un plantage possible lors d'un `SELECT` sur une table `Merge` avec le paramètre `optimize_monotonous_functions_in_order_by` activé. Corrige [#41269](https://github.com/ClickHouse/ClickHouse/issues/41269). [#41740](https://github.com/ClickHouse/ClickHouse/pull/41740) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige l'erreur "Part ... intersects part ..." qui pouvait se produire dans des cas extrêmement rares si une replica redémarrait juste après le détachement d'une part considérée comme corrompue. [#41741](https://github.com/ClickHouse/ClickHouse/pull/41741) ([Alexander Tokmakov](https://github.com/tavplubix)).
* N'autorise plus la création ou la modification de tables MergeTree avec un nom de colonne `_row_exists`, réservé au lightweight delete. Corrige [#41716](https://github.com/ClickHouse/ClickHouse/issues/41716). [#41763](https://github.com/ClickHouse/ClickHouse/pull/41763) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Corrige un bug à cause duquel les headers CORS étaient absents de certaines réponses HTTP. [#41792](https://github.com/ClickHouse/ClickHouse/pull/41792) ([Frank Chen](https://github.com/FrankChen021)).
* La version 22.9 pouvait ne pas réussir à démarrer une table `ReplicatedMergeTree` si cette table avait été créée avec la version 20.3 ou une version antérieure et n'avait jamais été modifiée ; c'est corrigé. Corrige [#41742](https://github.com/ClickHouse/ClickHouse/issues/41742). [#41796](https://github.com/ClickHouse/ClickHouse/pull/41796) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Lorsque l'envoi d'un Batch échoue pour une raison quelconque, il ne peut pas être relancé automatiquement et, s'il n'est pas traité à temps, cela entraîne une accumulation ; le message d'erreur affiché devient alors de plus en plus long, ce qui peut bloquer le thread HTTP. [#41813](https://github.com/ClickHouse/ClickHouse/pull/41813) ([zhongyuankai](https://github.com/zhongyuankai)).
* Corrige les compact parts avec le paramètre de marks compressées. Corrige [#41783](https://github.com/ClickHouse/ClickHouse/issues/41783) et [#41746](https://github.com/ClickHouse/ClickHouse/issues/41746). [#41823](https://github.com/ClickHouse/ClickHouse/pull/41823) ([alesapin](https://github.com/alesapin)).
* Les anciennes versions de Replicated database n'ont pas de marqueur spécial dans \[Zoo]Keeper. Il faut vérifier uniquement si le nœud contient certaines données particulières plutôt qu'un marqueur spécial. [#41875](https://github.com/ClickHouse/ClickHouse/pull/41875) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige une exception possible dans le cache FS. [#41884](https://github.com/ClickHouse/ClickHouse/pull/41884) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de `use_environment_credentials` pour la fonction de table S3. [#41970](https://github.com/ClickHouse/ClickHouse/pull/41970) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’erreur "Directory already exists and is not empty" lors du détachement d’une part corrompue, qui pouvait empêcher une table `ReplicatedMergeTree` de démarrer la réplication. Corrige [#40957](https://github.com/ClickHouse/ClickHouse/issues/40957). [#41981](https://github.com/ClickHouse/ClickHouse/pull/41981) ([Alexander Tokmakov](https://github.com/tavplubix)).
* `toDateTime64` renvoie désormais le même résultat avec des arguments entiers négatifs et flottants. [#42025](https://github.com/ClickHouse/ClickHouse/pull/42025) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de l’écriture dans `azure_blob_storage`. Clôt partiellement [#41754](https://github.com/ClickHouse/ClickHouse/issues/41754). [#42034](https://github.com/ClickHouse/ClickHouse/pull/42034) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un problème de décodage `bzip2` pour certains fichiers `bzip2`. [#42046](https://github.com/ClickHouse/ClickHouse/pull/42046) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de la fonction SQL `toLastDayOfMonth` avec le paramètre "enable\_extended\_results\_for\_datetime\_functions = 1" au début de la plage étendue (janvier 1900). - Correction de la fonction SQL "toRelativeWeekNum()" avec le paramètre "enable\_extended\_results\_for\_datetime\_functions = 1" à la fin de la plage étendue (décembre 2299). - Amélioration des performances des fonctions SQL "toISOYear()", "toFirstDayNumOfISOYearIndex()" et "toYearWeekOfNewyearMode()" en évitant des calculs d’index inutiles. [#42084](https://github.com/ClickHouse/ClickHouse/pull/42084) ([Roman Vasin](https://github.com/rvasin)).
* La taille maximale des fetches pour chaque table avait été accidentellement définie à 8, alors que la taille du pool pouvait être supérieure. Désormais, la taille maximale des fetches pour une table est égale à la taille du pool. [#42090](https://github.com/ClickHouse/ClickHouse/pull/42090) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Une table pouvait être arrêtée et un dictionnaire pouvait être détaché avant qu’il ne soit vérifié s’ils pouvaient être supprimés sans rompre les dépendances entre les tables ; ce problème est corrigé. Corrige [#41982](https://github.com/ClickHouse/ClickHouse/issues/41982). [#42106](https://github.com/ClickHouse/ClickHouse/pull/42106) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction d’une forte inefficacité de `remote_filesystem_read_method=read` avec le cache du système de fichiers. Clôt [#42125](https://github.com/ClickHouse/ClickHouse/issues/42125). [#42129](https://github.com/ClickHouse/ClickHouse/pull/42129) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une exception de timeout possible pour les requêtes distribuées avec use\_hedged\_requests = 0. [#42130](https://github.com/ClickHouse/ClickHouse/pull/42130) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un bug mineur dans la fonction `runningDifference` lorsqu’elle est utilisée avec le type `Date32`. Auparavant, `Date` était utilisé, ce qui pouvait provoquer des erreurs logiques comme `Bad cast from type DB::ColumnVector<int> to DB::ColumnVector<unsigned short>'`. [#42143](https://github.com/ClickHouse/ClickHouse/pull/42143) ([Alfred Xu](https://github.com/sperlingxx)).
* Correction de la réutilisation de fichiers > 4GB à partir d’un base backup. [#42146](https://github.com/ClickHouse/ClickHouse/pull/42146) ([Azat Khuzhin](https://github.com/azat)).
* DISTINCT in order échoue avec LOGICAL\_ERROR si la première colonne de la clé de tri contient une fonction. [#42186](https://github.com/ClickHouse/ClickHouse/pull/42186) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction d’un bug lié aux projections et au paramètre `aggregate_functions_null_for_empty`. Ce bug est très rare et n’apparaît que si vous activez le paramètre `aggregate_functions_null_for_empty` dans la config du serveur. Cela clôt [#41647](https://github.com/ClickHouse/ClickHouse/issues/41647). [#42198](https://github.com/ClickHouse/ClickHouse/pull/42198) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de la lecture depuis les tables `Buffer` avec lecture en ordre décroissant. [#42236](https://github.com/ClickHouse/ClickHouse/pull/42236) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’un bug qui empêchait ClickHouse de démarrer lorsque `background_pool_size setting` est défini dans le profil `default` mais que `background_merges_mutations_concurrency_ratio` ne l’est pas. [#42315](https://github.com/ClickHouse/ClickHouse/pull/42315) ([nvartolomei](https://github.com/nvartolomei)).
* `ALTER UPDATE` d’une part attachée (avec des colonnes différentes du schéma de la table) pouvait créer sur le disque des métadonnées `columns.txt` invalides. La lecture à partir d’une telle part pouvait échouer avec des erreurs ou renvoyer des données invalides. Corrige [#42161](https://github.com/ClickHouse/ClickHouse/issues/42161). [#42319](https://github.com/ClickHouse/ClickHouse/pull/42319) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Le paramètre `additional_table_filters` n’était pas appliqué au moteur `Distributed`. Corrige [#41692](https://github.com/ClickHouse/ClickHouse/issues/41692). [#42322](https://github.com/ClickHouse/ClickHouse/pull/42322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une situation de concurrence dans la finalisation/l’annulation des requêtes. Cela clôt [#42346](https://github.com/ClickHouse/ClickHouse/issues/42346). [#42362](https://github.com/ClickHouse/ClickHouse/pull/42362) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Annule [#40217](https://github.com/ClickHouse/ClickHouse/issues/40217), qui avait introduit une régression dans les fonctions de date et d’heure. [#42367](https://github.com/ClickHouse/ClickHouse/pull/42367) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d’un assert bad cast dans un join sur une condition fausse, clôt [#42380](https://github.com/ClickHouse/ClickHouse/issues/42380). [#42407](https://github.com/ClickHouse/ClickHouse/pull/42407) ([Vladimir C](https://github.com/vdimir)).
* Correction d’un dépassement de tampon lors du traitement des types de données Decimal. Cela clôt [#42451](https://github.com/ClickHouse/ClickHouse/issues/42451). [#42465](https://github.com/ClickHouse/ClickHouse/pull/42465) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `AggregateFunctionQuantile` fonctionne désormais correctement avec les colonnes UInt128. Auparavant, l’état de quantile interprétait les colonnes `UInt128` comme `Int128`, ce qui pouvait entraîner des résultats incorrects. [#42473](https://github.com/ClickHouse/ClickHouse/pull/42473) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un assert bad\_cast lors d’un INSERT dans des indexes `Annoy` sur des colonnes non Float32. Les indexes `Annoy` sont une fonctionnalité expérimentale. [#42485](https://github.com/ClickHouse/ClickHouse/pull/42485) ([Robert Schulze](https://github.com/rschu1ze)).
* L’opérateur arithmétique avec Date ou DateTime et un entier de 128 ou 256 bits référençait de la mémoire non initialisée. [#42453](https://github.com/ClickHouse/ClickHouse/issues/42453). [#42573](https://github.com/ClickHouse/ClickHouse/pull/42573) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d'une erreur inattendue lors du chargement d'une table lorsque la clé de partition contient des noms de fonctions alias pendant une mise à niveau du serveur. [#36379](https://github.com/ClickHouse/ClickHouse/pull/36379) ([Amos Bird](https://github.com/amosbird)).

### <a id="229" /> Release ClickHouse 22.9, 2022-09-22. [Presentation](https://presentations.clickhouse.com/2022-release-22.9/), [Video](https://www.youtube.com/watch?v=rK2BsaaaOCA)

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

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

* La mise à niveau de 20.3 et des versions antérieures vers 22.9 et les versions plus récentes doit passer par une version intermédiaire s’il existe des tables `ReplicatedMergeTree`, sinon le serveur exécutant la nouvelle version ne démarrera pas. [#40641](https://github.com/ClickHouse/ClickHouse/pull/40641) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Supprimer les fonctions `accurate_Cast` et `accurate_CastOrNull` (elles se distinguent de `accurateCast` et `accurateCastOrNull` par le caractère de soulignement dans leur nom et ne sont pas affectées par la valeur du paramètre `cast_keep_nullable`). Ces fonctions n’étaient ni documentées, ni testées, ni utilisées, ni nécessaires. Elles semblaient encore exister à cause de la généralisation du code. [#40682](https://github.com/ClickHouse/ClickHouse/pull/40682) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajouter un test pour garantir que chaque nouvelle fonction de table sera documentée. Voir [#40649](https://github.com/ClickHouse/ClickHouse/issues/40649). Renommer la fonction de table `MeiliSearch` en `meilisearch`. [#40709](https://github.com/ClickHouse/ClickHouse/pull/40709) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajouter un test pour garantir que chaque nouvelle fonction sera documentée. Voir [#40649](https://github.com/ClickHouse/ClickHouse/pull/40649). Les fonctions `lemmatize`, `synonyms`, `stem` étaient insensibles à la casse par erreur. Elles sont désormais sensibles à la casse. [#40711](https://github.com/ClickHouse/ClickHouse/pull/40711) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Pour des raisons de sécurité et de stabilité, les modèles catboost ne sont plus évalués au sein du serveur ClickHouse. À la place, l’évaluation est désormais
  effectuée dans clickhouse-library-bridge, un processus distinct qui charge la bibliothèque catboost et communique avec le processus serveur via
  HTTP. [#40897](https://github.com/ClickHouse/ClickHouse/pull/40897) ([Robert Schulze](https://github.com/rschu1ze)).
* Rendre l’interprétation des configurations YAML plus conventionnelle. [#41044](https://github.com/ClickHouse/ClickHouse/pull/41044) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Prise en charge de `insert_quorum = 'auto'` pour utiliser la majorité. [#39970](https://github.com/ClickHouse/ClickHouse/pull/39970) ([Sachin](https://github.com/SachinSetiya)).
* Ajout de tableaux de bord intégrés au serveur ClickHouse. Il s'agit d'un projet de démonstration montrant comment obtenir 90 % des résultats avec 1 % de l'effort grâce aux fonctionnalités de ClickHouse. [#40461](https://github.com/ClickHouse/ClickHouse/pull/40461) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout du nouveau type de modifiabilité pour les contraintes de paramètres `changeable_in_readonly`. [#40631](https://github.com/ClickHouse/ClickHouse/pull/40631) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout de la prise en charge de `INTERSECT DISTINCT` et `EXCEPT DISTINCT`. [#40792](https://github.com/ClickHouse/ClickHouse/pull/40792) ([Duc Canh Le](https://github.com/canhld94)).
* Ajout du nouveau format d'entrée/sortie `JSONObjectEachRow` - Prise en charge de l'import pour les formats `JSON/JSONCompact/JSONColumnsWithMetadata`. Ajout du nouveau paramètre `input_format_json_validate_types_from_metadata`, qui contrôle si les types de données des métadonnées doivent correspondre aux types de données de l'en-tête. - Ajout du nouveau paramètre `input_format_json_validate_utf8` qui, lorsqu'il est activé, valide les séquences UTF-8 dans tous les formats `JSON`. Il est désactivé par défaut. Notez que ce paramètre n'a aucune incidence sur les formats de sortie `JSON/JSONCompact/JSONColumnsWithMetadata`, qui valident toujours les séquences UTF-8 (cette exception a été introduite pour des raisons de compatibilité). - Ajout du nouveau paramètre `input_format_json_read_numbers_as_strings ` qui permet d'analyser des nombres dans une colonne String ; ce paramètre est désactivé par défaut. - Ajout du nouveau paramètre `output_format_json_quote_decimals` qui permet de sortir les décimaux entre guillemets doubles, désactivé par défaut. - Possibilité d'analyser les décimaux entre guillemets doubles lors de l'import de données. [#40910](https://github.com/ClickHouse/ClickHouse/pull/40910) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge des paramètres de requête dans la requête DESCRIBE TABLE. [#40952](https://github.com/ClickHouse/ClickHouse/pull/40952) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout de la prise en charge de Parquet Time32/64 par conversion en DateTime64. Parquet time32/64 représente le temps écoulé depuis minuit, tandis que DateTime32/64 représente un véritable Unix timestamp. La conversion applique simplement un décalage à partir de `0`. [#41333](https://github.com/ClickHouse/ClickHouse/pull/41333) ([Arthur Passos](https://github.com/arthurpassos)).
* Implémentation des opérations ensemblistes sur Apache Datasketches. [#39919](https://github.com/ClickHouse/ClickHouse/pull/39919) ([Fangyuan Deng](https://github.com/pzhdfy)). Remarque : utiliser Apache Datasketches ne présente aucun intérêt ; elles sont inférieures à ClickHouse et n'ont de sens que pour l'intégration avec d'autres systèmes.
* Possibilité d'enregistrer les erreurs dans un fichier spécifié lors de la lecture de formats texte (`CSV`, `TSV`). [#40516](https://github.com/ClickHouse/ClickHouse/pull/40516) ([zjial](https://github.com/zjial)).

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

* Ajout d’un index ANN (approximate nearest neighbor) basé sur `Annoy`. [#40818](https://github.com/ClickHouse/ClickHouse/pull/40818) ([Filatenkov Artur](https://github.com/FArthur-cmd)). [#37215](https://github.com/ClickHouse/ClickHouse/pull/37215) ([VVMak](https://github.com/VVMak)).
* Ajout d’un nouveau moteur de stockage `KeeperMap`, qui utilise ClickHouse Keeper ou ZooKeeper comme magasin clé-valeur. [#39976](https://github.com/ClickHouse/ClickHouse/pull/39976) ([Antonio Andelic](https://github.com/antonio2368)). Ce moteur de stockage est conçu pour stocker une petite quantité de métadonnées.
* Amélioration des data parts en mémoire : suppression des fichiers WAL entièrement traités. [#40592](https://github.com/ClickHouse/ClickHouse/pull/40592) ([Azat Khuzhin](https://github.com/azat)).

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

* Mise en œuvre de la compression des marks et de la clé primaire. Clôture [#34437](https://github.com/ClickHouse/ClickHouse/issues/34437). [#37693](https://github.com/ClickHouse/ClickHouse/pull/37693) ([zhongyuankai](https://github.com/zhongyuankai)).
* Possibilité de précharger les marks à l’aide d’un threadpool. Contrôlé par le paramètre `load_marks_asynchronously` (par défaut : 0). [#40821](https://github.com/ClickHouse/ClickHouse/pull/40821) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Le système de fichiers virtuel sur S3 utilisera des noms d’objet aléatoires répartis sur plusieurs préfixes de chemin pour de meilleures performances sur AWS. [#40968](https://github.com/ClickHouse/ClickHouse/pull/40968) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en compte de la valeur `max_block_size` lors de la production de résultats d’agrégation à un seul niveau. Cela permet d’exécuter les étapes suivantes du plan de query avec davantage de threads. [#39138](https://github.com/ClickHouse/ClickHouse/pull/39138) ([Nikita Taranov](https://github.com/nickitat)).
* Le préchargement logiciel est utilisé dans l’agrégation pour accélérer les opérations sur les tables de hachage. Contrôlé par le paramètre `enable_software_prefetch_in_aggregation`, activé par défaut. [#39304](https://github.com/ClickHouse/ClickHouse/pull/39304) ([Nikita Taranov](https://github.com/nickitat)).
* Meilleure prise en charge de `optimize_read_in_order` lorsque certaines colonnes de la clé de tri sont toujours constantes après application de la clause `WHERE`. Par exemple, pour une query comme `SELECT ... FROM table WHERE a = 'x' ORDER BY a, b`, où `table` a pour définition de stockage : `MergeTree ORDER BY (a, b)`. [#38715](https://github.com/ClickHouse/ClickHouse/pull/38715) ([Anton Popov](https://github.com/CurtizJ)).
* Filtrage mutuel des streams joints pour `full_sorting_join` avant le tri. [#39418](https://github.com/ClickHouse/ClickHouse/pull/39418) ([Vladimir C](https://github.com/vdimir)).
* Décompression LZ4 optimisée en ignorant le traitement des littéraux vides. [#40142](https://github.com/ClickHouse/ClickHouse/pull/40142) ([Nikita Taranov](https://github.com/nickitat)).
* Accélération du processus de sauvegarde en utilisant `copy` natif lorsque possible, au lieu de copier via la mémoire de `clickhouse-server`. [#40395](https://github.com/ClickHouse/ClickHouse/pull/40395) ([alesapin](https://github.com/alesapin)).
* Ne pas obtenir de snapshot de stockage pour chaque bloc INSERT (améliore légèrement les performances). [#40638](https://github.com/ClickHouse/ClickHouse/pull/40638) ([Azat Khuzhin](https://github.com/azat)).
* Mise en œuvre du traitement par lot pour les fonctions d’agrégation avec plusieurs arguments Nullable. [#41058](https://github.com/ClickHouse/ClickHouse/pull/41058) ([Raúl Marín](https://github.com/Algunenano)).
* Accélération de la lecture d’UniquesHashSet (par exemple, `uniqState` depuis le disque). [#41089](https://github.com/ClickHouse/ClickHouse/pull/41089) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’une consommation mémoire élevée lors de l’exécution de mutations sur des compact parts dans des tables comportant un très grand nombre de colonnes. [#41122](https://github.com/ClickHouse/ClickHouse/pull/41122) ([lthaooo](https://github.com/lthaooo)).
* Activation de la bibliothèque vectorscan sur ARM, ce qui accélère l’évaluation des regexp. [#41033](https://github.com/ClickHouse/ClickHouse/pull/41033) ([Robert Schulze](https://github.com/rschu1ze)).
* Mise à niveau de vectorscan vers la version 5.4.8, qui apporte de nombreuses optimisations de performances pour accélérer l’évaluation des regexp. [#41270](https://github.com/ClickHouse/ClickHouse/pull/41270) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction d’un fallback incorrect qui contournait le cache du système de fichiers local pour les VFS (comme S3) et se produisait à des niveaux de concurrence très élevés. [#40420](https://github.com/ClickHouse/ClickHouse/pull/40420) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Si le filtre de la politique de ligne est toujours faux, renvoyer immédiatement un résultat vide sans lire de données. Résout [#24012](https://github.com/ClickHouse/ClickHouse/issues/24012). [#40740](https://github.com/ClickHouse/ClickHouse/pull/40740) ([Amos Bird](https://github.com/amosbird)).
* Le JOIN parallèle par hachage pour les types de données Float pouvait être sous-optimal. Amélioration. [#41183](https://github.com/ClickHouse/ClickHouse/pull/41183) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Pendant le démarrage et l’appel ATTACH, les tables `ReplicatedMergeTree` seront en lecture seule jusqu’à ce que la connexion à ZooKeeper soit établie et que l’initialisation soit terminée. [#40148](https://github.com/ClickHouse/ClickHouse/pull/40148) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de l’option `enable_extended_results_for_datetime_functions` pour renvoyer des résultats de type Date32 pour les fonctions toStartOfYear, toStartOfISOYear, toStartOfQuarter, toStartOfMonth, toStartOfWeek, toMonday et toLastDayOfMonth lorsque l’argument est de type Date32 ou DateTime64 ; sinon, des résultats de type Date sont renvoyés. Pour des raisons de compatibilité, la valeur par défaut est '0'. [#41214](https://github.com/ClickHouse/ClickHouse/pull/41214) ([Roman Vasin](https://github.com/rvasin)).
* Pour des raisons de sécurité et de stabilité, les modèles CatBoost ne sont plus évalués dans le ClickHouse server. À la place, l’évaluation est désormais effectuée dans clickhouse-library-bridge, un processus distinct qui charge la bibliothèque catboost et communique avec le processus serveur via HTTP. La fonction `modelEvaluate()` a été remplacée par `catboostEvaluate()`. [#40897](https://github.com/ClickHouse/ClickHouse/pull/40897) ([Robert Schulze](https://github.com/rschu1ze)). [#39629](https://github.com/ClickHouse/ClickHouse/pull/39629) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout de métriques supplémentaires pour les données temporaires sur disque, corrige [#40206](https://github.com/ClickHouse/ClickHouse/issues/40206). [#40239](https://github.com/ClickHouse/ClickHouse/pull/40239) ([Vladimir C](https://github.com/vdimir)).
* Ajout de l’option de configuration `warning_supress_regexp`, corrige [#40330](https://github.com/ClickHouse/ClickHouse/issues/40330). [#40548](https://github.com/ClickHouse/ClickHouse/pull/40548) ([Vladimir C](https://github.com/vdimir)).
* Ajout d’un paramètre permettant de désactiver la limite sur kafka\_num\_consumers. Corrige [#40331](https://github.com/ClickHouse/ClickHouse/issues/40331). [#40670](https://github.com/ClickHouse/ClickHouse/pull/40670) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge de `SETTINGS` dans les requêtes `DELETE ...`. [#41533](https://github.com/ClickHouse/ClickHouse/pull/41533) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Événements de profil S3 détaillés `DiskS3*`, ventilés par appel d’API S3 pour S3 ObjectStorage. [#41532](https://github.com/ClickHouse/ClickHouse/pull/41532) ([Sergei Trifonov](https://github.com/serxa)).
* Deux nouvelles métriques dans `system.asynchronous_metrics` : `NumberOfDetachedParts` et `NumberOfDetachedByUserParts`. [#40779](https://github.com/ClickHouse/ClickHouse/pull/40779) ([Sema Checherinda](https://github.com/CheSema)).
* Autorisation des CONSTRAINTs pour les tables ODBC et JDBC. [#34551](https://github.com/ClickHouse/ClickHouse/pull/34551) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ne plus afficher `SETTINGS` plus d’une fois lors du formatage de la requête s’il n’apparaissait pas plusieurs fois dans la requête d’origine. [#38900](https://github.com/ClickHouse/ClickHouse/pull/38900) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration de la propagation du contexte de traçage (OpenTelemetry) entre les threads. [#39010](https://github.com/ClickHouse/ClickHouse/pull/39010) ([Frank Chen](https://github.com/FrankChen021)).
* ClickHouse Keeper : ajout d’écouteurs pour `interserver_listen_host` uniquement dans Keeper si spécifié. [#39973](https://github.com/ClickHouse/ClickHouse/pull/39973) ([Antonio Andelic](https://github.com/antonio2368)).
* Amélioration de la récupération du stockage des accès utilisateur Replicated après des erreurs. [#39977](https://github.com/ClickHouse/ClickHouse/pull/39977) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de la prise en charge de TTL dans `EmbeddedRocksDB`. [#39986](https://github.com/ClickHouse/ClickHouse/pull/39986) ([Lloyd-Pottiger](https://github.com/Lloyd-Pottiger)).
* Ajout de l’inférence de schéma à `clickhouse-obfuscator`, ce qui rend l’argument `--structure` désormais facultatif. [#40120](https://github.com/ClickHouse/ClickHouse/pull/40120) ([Nikolay Degterinsky](https://github.com/evillique)).
* Amélioration et correction des Dictionaries au format `Arrow`. [#40173](https://github.com/ClickHouse/ClickHouse/pull/40173) ([Kruglov Pavel](https://github.com/Avogar)).
* Conversion plus naturelle de `Date32`, `DateTime64` et `Date` vers des types plus étroits : la valeur normale supérieure ou inférieure est utilisée lorsqu’une valeur sort de la plage normale. [#40217](https://github.com/ClickHouse/ClickHouse/pull/40217) ([Andrey Zvonov](https://github.com/zvonand)).
* Correction du cas où une table `Merge` sur `View` ne peut pas utiliser d’index. [#40233](https://github.com/ClickHouse/ClickHouse/pull/40233) ([Duc Canh Le](https://github.com/canhld94)).
* Noms de clés personnalisés pour les server logs JSON. [#40251](https://github.com/ClickHouse/ClickHouse/pull/40251) ([Mallik Hassan](https://github.com/SadiHassan)).
* Il est désormais possible de définir un code d’erreur personnalisé pour l’exception levée par la fonction `throwIf`. [#40319](https://github.com/ClickHouse/ClickHouse/pull/40319) ([Robert Schulze](https://github.com/rschu1ze)).
* Amélioration du cache d’inférence de schéma, avec prise en compte des paramètres de format susceptibles de modifier le schéma. [#40414](https://github.com/ClickHouse/ClickHouse/pull/40414) ([Kruglov Pavel](https://github.com/Avogar)).
* Autorise l’analyse de `Date` comme `DateTime` et `DateTime64`. Cela met en œuvre l’amélioration proposée dans [#36949](https://github.com/ClickHouse/ClickHouse/issues/36949). [#40474](https://github.com/ClickHouse/ClickHouse/pull/40474) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autorise la conversion d’une `String` contenant un `DateTime64`, comme `2022-08-22 01:02:03.456`, vers `Date` et `Date32`. Autorise également la conversion d’une `String` contenant un `DateTime`, comme `2022-08-22 01:02:03`, vers `Date32`. Cela clôt [#39598](https://github.com/ClickHouse/ClickHouse/issues/39598). [#40475](https://github.com/ClickHouse/ClickHouse/pull/40475) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Meilleure prise en charge des structures de données imbriquées au format Parquet. [#40485](https://github.com/ClickHouse/ClickHouse/pull/40485) ([Arthur Passos](https://github.com/arthurpassos)).
* Prise en charge de la lecture de `Array(Record)` dans une table imbriquée aplatie en Avro. [#40534](https://github.com/ClickHouse/ClickHouse/pull/40534) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge du mode lecture seule pour `EmbeddedRocksDB`. [#40543](https://github.com/ClickHouse/ClickHouse/pull/40543) ([Lloyd-Pottiger](https://github.com/Lloyd-Pottiger)).
* Validation du paramètre de méthode de compression du moteur de table URL. [#40600](https://github.com/ClickHouse/ClickHouse/pull/40600) ([Frank Chen](https://github.com/FrankChen021)).
* Meilleure détection du format pour la table function / le moteur de table URL en présence d’une query string après un nom de fichier. Clôt [#40315](https://github.com/ClickHouse/ClickHouse/issues/40315). [#40636](https://github.com/ClickHouse/ClickHouse/pull/40636) ([Kruglov Pavel](https://github.com/Avogar)).
* Désactivation des projections lorsqu’un grouping set est utilisé. Cela générait un résultat incorrect. Cela corrige [#40635](https://github.com/ClickHouse/ClickHouse/issues/40635). [#40726](https://github.com/ClickHouse/ClickHouse/pull/40726) ([Amos Bird](https://github.com/amosbird)).
* Corrige le format incorrect du transformateur de colonne `APPLY`, qui peut corrompre les métadonnées s'il est utilisé dans une définition de table. Cela corrige [#37590](https://github.com/ClickHouse/ClickHouse/issues/37590). [#40727](https://github.com/ClickHouse/ClickHouse/pull/40727) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge du descripteur `%z` pour formater le décalage de fuseau horaire dans `formatDateTime`. [#40736](https://github.com/ClickHouse/ClickHouse/pull/40736) ([Cory Levy](https://github.com/LevyCory)).
* Le mode interactif de `clickhouse-client` interprète désormais `.` et `/` comme "exécuter la dernière commande". [#40750](https://github.com/ClickHouse/ClickHouse/pull/40750) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige un problème lors de la transmission des timeouts MySQL pour le moteur de base de données MySQL et la fonction de table MySQL. Ferme [#34168](https://github.com/ClickHouse/ClickHouse/issues/34168). [#40751](https://github.com/ClickHouse/ClickHouse/pull/40751) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Crée un fichier d'état pour le répertoire du cache du système de fichiers afin de s'assurer que les répertoires de cache ne sont pas partagés entre différents serveurs ou caches. [#40820](https://github.com/ClickHouse/ClickHouse/pull/40820) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute la prise en charge de `DELETE` et `UPDATE` pour le moteur de stockage `EmbeddedRocksDB`. [#40853](https://github.com/ClickHouse/ClickHouse/pull/40853) ([Antonio Andelic](https://github.com/antonio2368)).
* ClickHouse Keeper : corrige l'arrêt pendant un commit long et augmente la taille maximale autorisée des requêtes. [#40941](https://github.com/ClickHouse/ClickHouse/pull/40941) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une condition de concurrence dans WriteBufferFromS3 et ajoute des annotations TSA. [#40950](https://github.com/ClickHouse/ClickHouse/pull/40950) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Avec group\_by\_use\_nulls, les grouping sets ne doivent convertir en nullable que les colonnes clés. [#40997](https://github.com/ClickHouse/ClickHouse/pull/40997) ([Duc Canh Le](https://github.com/canhld94)).
* Améliore l'observabilité de INSERT sur une table distribuée. [#41034](https://github.com/ClickHouse/ClickHouse/pull/41034) ([Frank Chen](https://github.com/FrankChen021)).
* Ajoute davantage de métriques de bas niveau pour les interactions avec S3. [#41039](https://github.com/ClickHouse/ClickHouse/pull/41039) ([mateng915](https://github.com/mateng0915)).
* Prend en charge un chemin relatif dans l'en-tête Location après une redirection HTTP. Ferme [#40985](https://github.com/ClickHouse/ClickHouse/issues/40985). [#41162](https://github.com/ClickHouse/ClickHouse/pull/41162) ([Kruglov Pavel](https://github.com/Avogar)).
* Applique les modifications aux gestionnaires HTTP à chaud, sans redémarrage du serveur. [#41177](https://github.com/ClickHouse/ClickHouse/pull/41177) ([Azat Khuzhin](https://github.com/azat)).
* ClickHouse Keeper : ferme correctement les sessions actives pendant l'arrêt. [#41215](https://github.com/ClickHouse/ClickHouse/pull/41215) ([Antonio Andelic](https://github.com/antonio2368)). Cela réduit la durée des erreurs "table is read-only".
* Ajoute la possibilité de commenter automatiquement les requêtes SQL dans clickhouse-client/local (avec `Alt-#`, comme dans readline). [#41224](https://github.com/ClickHouse/ClickHouse/pull/41224) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l'incompatibilité du cache après avoir fait passer le paramètre `do_no_evict_index_and_mark_files` de 1 à 0, puis de 0 à 1. [#41330](https://github.com/ClickHouse/ClickHouse/pull/41330) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajouter le paramètre `allow_suspicious_fixed_string_types` pour empêcher les utilisateurs de créer des colonnes de type FixedString d’une taille > 256. [#41495](https://github.com/ClickHouse/ClickHouse/pull/41495) ([Duc Canh Le](https://github.com/canhld94)).
* Ajouter `has_lightweight_delete` dans system.parts. [#41564](https://github.com/ClickHouse/ClickHouse/pull/41564) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Veiller à documenter chaque paramètre. [#40644](https://github.com/ClickHouse/ClickHouse/pull/40644) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Veiller à documenter chaque métrique existante. [#40645](https://github.com/ClickHouse/ClickHouse/pull/40645) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Veiller à documenter chaque compteur d’événements de profil. Rédiger la documentation là où elle manquait. [#40646](https://github.com/ClickHouse/ClickHouse/pull/40646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rendre possible une build minimale de `clickhouse-local` en corrigeant certaines dépendances. [#40460](https://github.com/ClickHouse/ClickHouse/pull/40460) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Elle fait moins de 50 MiB.
* Calculer et signaler la couverture des fonctions SQL dans les tests. [#40593](https://github.com/ClickHouse/ClickHouse/issues/40593). [#40647](https://github.com/ClickHouse/ClickHouse/pull/40647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Veiller à documenter chaque paramètre MergeTree. [#40648](https://github.com/ClickHouse/ClickHouse/pull/40648) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prototype de documentation de référence intégrée pour les composants serveur uniformes de haut niveau. [#40649](https://github.com/ClickHouse/ClickHouse/pull/40649) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nous vérifierons toutes les requêtes des tests de performance modifiés afin de nous assurer que toutes les requêtes modifiées ont bien été testées. [#40322](https://github.com/ClickHouse/ClickHouse/pull/40322) ([Nikita Taranov](https://github.com/nickitat)).
* Correction des paquets TGZ. [#40681](https://github.com/ClickHouse/ClickHouse/pull/40681) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Correction des symboles de débogage. [#40873](https://github.com/ClickHouse/ClickHouse/pull/40873) ([Azat Khuzhin](https://github.com/azat)).
* Extension de la configuration CI pour créer une build x86 avec SSE2 uniquement. Utile pour le matériel ancien ou embarqué. [#40999](https://github.com/ClickHouse/ClickHouse/pull/40999) ([Robert Schulze](https://github.com/rschu1ze)).
* Passage à llvm/clang 15. [#41046](https://github.com/ClickHouse/ClickHouse/pull/41046) ([Azat Khuzhin](https://github.com/azat)).
* Suite de [#40938](https://github.com/ClickHouse/ClickHouse/issues/40938). Correction d’une violation ODR pour la classe `Loggers`. Corrige [#40398](https://github.com/ClickHouse/ClickHouse/issues/40398), [#40937](https://github.com/ClickHouse/ClickHouse/issues/40937). [#41060](https://github.com/ClickHouse/ClickHouse/pull/41060) ([Dmitry Novik](https://github.com/novikd)).
* Ajout des binaires macOS aux assets des releases GitHub, ce qui corrige [#37718](https://github.com/ClickHouse/ClickHouse/issues/37718). [#41088](https://github.com/ClickHouse/ClickHouse/pull/41088) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* La bibliothèque c-ares est désormais incluse dans le système de build de ClickHouse. [#41239](https://github.com/ClickHouse/ClickHouse/pull/41239) ([Robert Schulze](https://github.com/rschu1ze)).
* Retrait de `dlopen` du code principal de ClickHouse. Il reste dans library-bridge et odbc-bridge. [#41428](https://github.com/ClickHouse/ClickHouse/pull/41428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ne pas autoriser `dlopen` dans le binaire principal de ClickHouse, car c’est nuisible et peu sûr. Nous ne l’utilisons pas. Certaines bibliothèques peuvent toutefois y recourir pour implémenter des « plugins ». Nous déconseillons fortement cette ancienne technique qui consiste à charger dans l’espace d’adressage du processus des bibliothèques 3rd-party dangereuses et non contrôlées, car elle est aberrante. [#41429](https://github.com/ClickHouse/ClickHouse/pull/41429) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajouter le champ `source` aux paquets deb, mettre à jour `nfpm`. [#41531](https://github.com/ClickHouse/ClickHouse/pull/41531) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Prise en charge de DWARF-5 dans l’analyseur DWARF interne. [#40710](https://github.com/ClickHouse/ClickHouse/pull/40710) ([Azat Khuzhin](https://github.com/azat)).
* Ajouter l’injection de fautes dans le client ZooKeeper pour les tests [#30498](https://github.com/ClickHouse/ClickHouse/pull/30498) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajouter des tests sans état avec le stockage S3, avec `debug` et tsan [#35262](https://github.com/ClickHouse/ClickHouse/pull/35262) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Essais de stress sur S3 [#36837](https://github.com/ClickHouse/ClickHouse/pull/36837) ([alesapin](https://github.com/alesapin)).
* Activer `concurrency-mt-unsafe` dans `clang-tidy` [#40224](https://github.com/ClickHouse/ClickHouse/pull/40224) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Corrige une perte de données potentielle due à [un bug dans AWS SDK](https://github.com/aws/aws-sdk-cpp/issues/658). Ce bug ne peut être déclenché que lorsque ClickHouse est utilisé via S3. [#40506](https://github.com/ClickHouse/ClickHouse/pull/40506) ([alesapin](https://github.com/alesapin)). Ce bug est resté ouvert pendant 5 ans dans AWS SDK et a été fermé après notre signalement.
* Des données malveillantes au format Native peuvent provoquer un plantage. [#41441](https://github.com/ClickHouse/ClickHouse/pull/41441) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La fonction d'agrégation `categorialInformationValue` avait des propriétés incorrectement définies, ce qui pouvait provoquer un déréférencement de pointeur nul à l'exécution. Cela résout [#41443](https://github.com/ClickHouse/ClickHouse/issues/41443). [#41449](https://github.com/ClickHouse/ClickHouse/pull/41449) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* L'écriture de données au format Apache `ORC` peut entraîner un dépassement de tampon. [#41458](https://github.com/ClickHouse/ClickHouse/pull/41458) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige des problèmes de sûreté mémoire avec les fonctions `encrypt` et `contingency` lorsqu'un `Array` de `Nullable` est utilisé comme argument. Cela corrige [#41004](https://github.com/ClickHouse/ClickHouse/issues/41004). [#40195](https://github.com/ClickHouse/ClickHouse/pull/40195) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige des bugs dans MergeJoin lorsque 'not\_processed' n'est pas NULL. [#40335](https://github.com/ClickHouse/ClickHouse/pull/40335) ([liql2007](https://github.com/liql2007)).
* Corrige un résultat incorrect en cas de perte de précision décimale dans l'opérateur IN, voir [#41125](https://github.com/ClickHouse/ClickHouse/issues/41125). [#41130](https://github.com/ClickHouse/ClickHouse/pull/41130) ([Vladimir C](https://github.com/vdimir)).
* Corrige le remplissage des colonnes `Nested` manquantes à plusieurs niveaux. [#37152](https://github.com/ClickHouse/ClickHouse/pull/37152) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige la requête SYSTEM UNFREEZE pour la base de données Ordinary (obsolète). Correctif pour [https://github.com/ClickHouse/ClickHouse/pull/36424](https://github.com/ClickHouse/ClickHouse/pull/36424). [#38262](https://github.com/ClickHouse/ClickHouse/pull/38262) ([Vadim Volodin](https://github.com/PolyProgrammist)).
* Corrige les colonnes inconnues inutilisées introduites par l'instruction WITH. Cela corrige [#37812](https://github.com/ClickHouse/ClickHouse/issues/37812) . [#39131](https://github.com/ClickHouse/ClickHouse/pull/39131) ([Amos Bird](https://github.com/amosbird)).
* Corrige l'analyse de requête pour ORDER BY en présence de fonctions de fenêtre. Corrige [#38741](https://github.com/ClickHouse/ClickHouse/issues/38741) Corrige [#24892](https://github.com/ClickHouse/ClickHouse/issues/24892). [#39354](https://github.com/ClickHouse/ClickHouse/pull/39354) ([Dmitry Novik](https://github.com/novikd)).
* Corrige l'exception `Unknown identifier (aggregate-function)` qui apparaît lorsqu'un utilisateur essaie de calculer des expressions WINDOW ORDER BY/PARTITION BY sur des fonctions d'agrégation. [#39762](https://github.com/ClickHouse/ClickHouse/pull/39762) ([Vladimir Chebotaryov](https://github.com/quickhouse)).
* Limite le nombre d'analyses pour une requête avec le paramètre `max_analyze_depth`. Cela évite une explosion exponentielle du temps d'analyse pour les requêtes comportant un nombre extraordinairement élevé de sous-requêtes. [#40334](https://github.com/ClickHouse/ClickHouse/pull/40334) ([Vladimir C](https://github.com/vdimir)).
* Corrige un bug rare avec le TTL de colonne pour la famille de moteurs MergeTree : en cas de vertical merge répété, l'erreur `Cannot unlink file ColumnName.bin ... No such file or directory.` pouvait se produire. [#40346](https://github.com/ClickHouse/ClickHouse/pull/40346) ([alesapin](https://github.com/alesapin)).
* Utiliser des entrées DNS pour IPv4 et IPv6 si elles sont disponibles. [#40353](https://github.com/ClickHouse/ClickHouse/pull/40353) ([Maksim Kita](https://github.com/kitaisreal)).
* Permettre la lecture de fichiers compressés avec Snappy depuis Hadoop. [#40482](https://github.com/ClickHouse/ClickHouse/pull/40482) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un crash lors de l’analyse de valeurs de type `Object` (fonctionnalité expérimentale) contenant des tableaux de dimension variable. [#40483](https://github.com/ClickHouse/ClickHouse/pull/40483) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige le paramètre `input_format_tsv_skip_first_lines`. [#40491](https://github.com/ClickHouse/ClickHouse/pull/40491) ([mini4](https://github.com/mini4)).
* Corrige un bug (condition de concurrence) au démarrage du moteur de base de données/table MaterializedPostgreSQL. [#40262](https://github.com/ClickHouse/ClickHouse/issues/40262). Corrige une erreur lors de l’atteinte de la limite de slots relcache\_callback\_list. [#40511](https://github.com/ClickHouse/ClickHouse/pull/40511) ([Maksim Buren](https://github.com/maks-buren630501)).
* Corrige l’erreur possible 'Decimal math overflow' lors de l’analyse de DateTime64. [#40546](https://github.com/ClickHouse/ClickHouse/pull/40546) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la fusion verticale de parts avec des lignes supprimées par lightweight delete. [#40559](https://github.com/ClickHouse/ClickHouse/pull/40559) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige une erreur de segmentation lors de l’écriture de données dans le moteur de table URL lorsque la compression est activée. [#40565](https://github.com/ClickHouse/ClickHouse/pull/40565) ([Frank Chen](https://github.com/FrankChen021)).
* Corrige l’erreur logique possible `'Invalid Field get from type UInt64 to type String'` dans la fonction arrayElement avec Map. [#40572](https://github.com/ClickHouse/ClickHouse/pull/40572) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige une possible condition de concurrence dans le cache du système de fichiers. [#40586](https://github.com/ClickHouse/ClickHouse/pull/40586) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suppression de l’omission des mutations dans les partitions non affectées des tables `MergeTree`, car cette fonctionnalité n’a jamais fonctionné correctement et pourrait provoquer la réapparition de mutations terminées. [#40589](https://github.com/ClickHouse/ClickHouse/pull/40589) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Le ClickHouse server plantera si un port gRPC déjà occupé est ajouté à la configuration à l’exécution. [#40597](https://github.com/ClickHouse/ClickHouse/pull/40597) ([何李夫](https://github.com/helifu)).
* Corrige la gestion des 0 / '1' en tête par `base58Encode / base58Decode`. [#40620](https://github.com/ClickHouse/ClickHouse/pull/40620) ([Andrey Zvonov](https://github.com/zvonand)).
* keeper-fix : corrige une condition de concurrence lors de l’accès aux logs pendant l’installation d’un snapshot. [#40627](https://github.com/ClickHouse/ClickHouse/pull/40627) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l’exécution en court-circuit de la fonction toFixedString. Résout (partiellement) [#40622](https://github.com/ClickHouse/ClickHouse/issues/40622). [#40628](https://github.com/ClickHouse/ClickHouse/pull/40628) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la conversion d’une colonne int8 SQLite en colonne int64 dans ClickHouse. Corrige [#40639](https://github.com/ClickHouse/ClickHouse/issues/40639). [#40642](https://github.com/ClickHouse/ClickHouse/pull/40642) ([Barum Rho](https://github.com/barumrho)).
* Corrige un débordement de pile dans les tables `Buffer` récursives. Cela clôt [#40637](https://github.com/ClickHouse/ClickHouse/issues/40637). [#40643](https://github.com/ClickHouse/ClickHouse/pull/40643) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lors de l'insertion d'une nouvelle requête dans `ProcessList`, des allocations se produisent. Si la limite mémoire est atteinte pendant ces allocations, il n'est pas possible d'utiliser `OvercommitTracker`, car `ProcessList::mutex` est déjà verrouillé. Corrige [#40611](https://github.com/ClickHouse/ClickHouse/issues/40611). [#40677](https://github.com/ClickHouse/ClickHouse/pull/40677) ([Dmitry Novik](https://github.com/novikd)).
* Correction de LOGICAL\_ERROR avec max\_read\_buffer\_size=0 lors de la lecture des marks. [#40705](https://github.com/ClickHouse/ClickHouse/pull/40705) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'une fuite mémoire lors de l'envoi vers des MV sans contexte de requête (depuis Kafka/...). [#40732](https://github.com/ClickHouse/ClickHouse/pull/40732) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'une possible erreur Attempt to read after eof lors de l'inférence de schéma CSV. [#40746](https://github.com/ClickHouse/ClickHouse/pull/40746) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l'erreur logique dans le cache en écriture immédiate "File segment completion can be done only by downloader". Clôt [#40748](https://github.com/ClickHouse/ClickHouse/issues/40748). [#40759](https://github.com/ClickHouse/ClickHouse/pull/40759) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Rend le résultat de la fonction GROUPING identique à celui de SQL et des autres SGBD. [#40762](https://github.com/ClickHouse/ClickHouse/pull/40762) ([Dmitry Novik](https://github.com/novikd)).
* Dans [#40595](https://github.com/ClickHouse/ClickHouse/issues/40595), il a été signalé que la fonctionnalité `host_regexp` ne fonctionnait pas correctement avec la résolution de noms en adresses dans `/etc/hosts`. C'est corrigé. [#40769](https://github.com/ClickHouse/ClickHouse/pull/40769) ([Arthur Passos](https://github.com/arthurpassos)).
* Correction des sauvegardes incrémentielles pour la famille Log. [#40827](https://github.com/ClickHouse/ClickHouse/pull/40827) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d'un bug extrêmement rare pouvant entraîner une perte potentielle de données dans la réplication zero-copy. [#40844](https://github.com/ClickHouse/ClickHouse/pull/40844) ([alesapin](https://github.com/alesapin)).
* Correction des crashs lors de l'analyse des conditions de clé lorsque la même expression d'ensemble est construite à partir de colonne(s) différente(s). [#40850](https://github.com/ClickHouse/ClickHouse/pull/40850) ([Duc Canh Le](https://github.com/canhld94)).
* Correction de l'inférence de schéma pour les objets JSON imbriqués. [#40851](https://github.com/ClickHouse/ClickHouse/pull/40851) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du répertoire préfixé sur 3 chiffres pour les fichiers du cache du système de fichiers, qui n'était pas supprimé lorsqu'il était vide. Clôt [#40797](https://github.com/ClickHouse/ClickHouse/issues/40797). [#40867](https://github.com/ClickHouse/ClickHouse/pull/40867) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de DNS\_ERROR non interceptée en cas d'échec de connexion aux répliques. [#40881](https://github.com/ClickHouse/ClickHouse/pull/40881) ([Robert Coelho](https://github.com/coelho)).
* Correction d'un bug lors de la suppression des colonnes inutiles dans une sous-requête. [#40884](https://github.com/ClickHouse/ClickHouse/pull/40884) ([luocongkai](https://github.com/TKaxe)).
* Correction d'une allocation mémoire supplémentaire pour les buffers de lecture distants. [#40896](https://github.com/ClickHouse/ClickHouse/pull/40896) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'un comportement où un utilisateur dont le privilège de suppression de bases de données a été explicitement révoqué peut malgré tout en supprimer une. [#40906](https://github.com/ClickHouse/ClickHouse/pull/40906) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correctif pour ClickHouse Keeper : comparaison correcte des paths dans les write requests avec les paths des nœuds système internes de Keeper. [#40918](https://github.com/ClickHouse/ClickHouse/pull/40918) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un interblocage dans WriteBufferFromS3. [#40943](https://github.com/ClickHouse/ClickHouse/pull/40943) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige les droits d'accès pour `DESCRIBE TABLE url()` et certains autres `DESCRIBE TABLE <table_function>()`. [#40975](https://github.com/ClickHouse/ClickHouse/pull/40975) ([Vitaly Baranov](https://github.com/vitlibar)).
* Supprime une logique erronée dans l'analyseur pour `WITH GROUPING SETS`, qui peut entraîner un déréférencement de nullptr. [#41049](https://github.com/ClickHouse/ClickHouse/pull/41049) ([Duc Canh Le](https://github.com/canhld94)).
* Correctif pour ClickHouse Keeper : corrige un segfault possible lors de l'arrêt de Keeper. [#41075](https://github.com/ClickHouse/ClickHouse/pull/41075) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige de possibles segfaults, des use-heap-after-free et des fuites de mémoire dans les combinateurs de fonctions d'agrégation. Ferme [#40848](https://github.com/ClickHouse/ClickHouse/issues/40848). [#41083](https://github.com/ClickHouse/ClickHouse/pull/41083) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige query\_views\_log avec les window views. [#41132](https://github.com/ClickHouse/ClickHouse/pull/41132) ([Raúl Marín](https://github.com/Algunenano)).
* Désactive optimize\_monotonous\_functions\_in\_order\_by par défaut, ce qui atténue [#40094](https://github.com/ClickHouse/ClickHouse/issues/40094). [#41136](https://github.com/ClickHouse/ClickHouse/pull/41136) ([Denny Crane](https://github.com/den-crane)).
* Corrige l'erreur "possible deadlock avoided" lors de la conversion automatique du database engine d'Ordinary vers Atomic. [#41146](https://github.com/ClickHouse/ClickHouse/pull/41146) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige un SIGSEGV dans SortedBlocksWriter en cas de block vide (possible avec `optimize_aggregation_in_order` et `join_algorithm=auto`). [#41154](https://github.com/ClickHouse/ClickHouse/pull/41154) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un résultat de query incorrect lorsque l'optimisation triviale de count est active avec ARRAY JOIN. Cela corrige [#39431](https://github.com/ClickHouse/ClickHouse/issues/39431). [#41158](https://github.com/ClickHouse/ClickHouse/pull/41158) ([Denny Crane](https://github.com/den-crane)).
* Corrige un stack-use-after-return dans GetPriorityForLoadBalancing::getPriorityFunc(). [#41159](https://github.com/ClickHouse/ClickHouse/pull/41159) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l'exception sur les arguments positionnels « Positional argument out of bounds ». Ferme [#40634](https://github.com/ClickHouse/ClickHouse/issues/40634). [#41189](https://github.com/ClickHouse/ClickHouse/pull/41189) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige le nettoyage en arrière-plan des broken detached parts. [#41190](https://github.com/ClickHouse/ClickHouse/pull/41190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une query rewrite exponentielle en cas de très nombreux CROSS JOIN avec WHERE, ferme [#21557](https://github.com/ClickHouse/ClickHouse/issues/21557). [#41223](https://github.com/ClickHouse/ClickHouse/pull/41223) ([Vladimir C](https://github.com/vdimir)).
* Corrige une possible erreur logique dans le cache en écriture directe, qui se produisait parce que tous les types d’exception n’étaient pas traités correctement. Closes [#41208](https://github.com/ClickHouse/ClickHouse/issues/41208). [#41232](https://github.com/ClickHouse/ClickHouse/pull/41232) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige l’entrée de journal String dans system.filesystem\_cache\_log. [#41233](https://github.com/ClickHouse/ClickHouse/pull/41233) ([jmimbrero](https://github.com/josemimbrero-tinybird)).
* Les requêtes avec une clause `OFFSET` dans une sous-requête et une clause `WHERE` dans la requête externe pouvaient renvoyer un résultat incorrect ; c’est corrigé. Fixes [#40416](https://github.com/ClickHouse/ClickHouse/issues/40416). [#41280](https://github.com/ClickHouse/ClickHouse/pull/41280) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige un possible résultat de requête erroné lorsque `query_plan_optimize_primary_key` est activé. Fixes [#40599](https://github.com/ClickHouse/ClickHouse/issues/40599). [#41281](https://github.com/ClickHouse/ClickHouse/pull/41281) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Empêche des séquences invalides d’influencer les autres lignes dans lowerUTF8/upperUTF8. [#41286](https://github.com/ClickHouse/ClickHouse/pull/41286) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les requêtes `ALTER <table> ADD COLUMN` avec des colonnes de type `Object`. [#41290](https://github.com/ClickHouse/ClickHouse/pull/41290) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l’erreur « No node » lors d’un SELECT depuis `system.distributed_ddl_queue` lorsqu’il n’y a pas de `distributed_ddl.path` dans la configuration. Fixes [#41096](https://github.com/ClickHouse/ClickHouse/issues/41096). [#41296](https://github.com/ClickHouse/ClickHouse/pull/41296) ([young scott](https://github.com/young-scott)).
* Corrige l’erreur logique incorrecte `Expected relative path` dans le disque de stockage objet. Related to [#41246](https://github.com/ClickHouse/ClickHouse/issues/41246). [#41297](https://github.com/ClickHouse/ClickHouse/pull/41297) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute une vérification du type de colonne avant l’insertion d’UUID au format MsgPack. [#41309](https://github.com/ClickHouse/ClickHouse/pull/41309) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un possible crash après l’insertion asynchrone (avec le paramètre `async_insert` activé) de données mal formées dans des colonnes de type `Object`. Cela pouvait se produire si les JSON de tous les batches d’insertions asynchrones étaient invalides et ne pouvaient pas être analysés. [#41336](https://github.com/ClickHouse/ClickHouse/pull/41336) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un possible interblocage avec async\_socket\_for\_remote/use\_hedged\_requests et KILL en parallèle. [#41343](https://github.com/ClickHouse/ClickHouse/pull/41343) ([Azat Khuzhin](https://github.com/azat)).
* Désactive optimize\_rewrite\_sum\_if\_to\_count\_if par défaut, atténue : [#38605](https://github.com/ClickHouse/ClickHouse/issues/38605) [#38683](https://github.com/ClickHouse/ClickHouse/issues/38683). [#41388](https://github.com/ClickHouse/ClickHouse/pull/41388) ([Denny Crane](https://github.com/den-crane)).
* Depuis la version 22.8, la clause `ON CLUSTER` est ignorée si la base de données est `Replicated` et que le nom du cluster et celui de la base de données sont identiques. Par conséquent, `DROP PARTITION ON CLUSTER` fonctionnait de manière inattendue avec `Replicated`. Ce problème est corrigé : désormais, la clause `ON CLUSTER` n’est ignorée que pour les requêtes répliquées au niveau de la base de données. Corrige [#41299](https://github.com/ClickHouse/ClickHouse/issues/41299). [#41390](https://github.com/ClickHouse/ClickHouse/pull/41390) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige un possible blocage/interblocage lors de l’annulation d’une requête (`KILL QUERY` ou arrêt du serveur). [#41467](https://github.com/ClickHouse/ClickHouse/pull/41467) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un possible crash du serveur lors de l’utilisation de la fonctionnalité JBOD. Corrige [#41365](https://github.com/ClickHouse/ClickHouse/issues/41365). [#41483](https://github.com/ClickHouse/ClickHouse/pull/41483) ([Amos Bird](https://github.com/amosbird)).
* Corrige la conversion d’une chaîne de longueur fixe nullable en chaîne. [#41541](https://github.com/ClickHouse/ClickHouse/pull/41541) ([Duc Canh Le](https://github.com/canhld94)).
* Empêche un crash lors du passage d’états d’agrégation incorrects à groupBitmap\*. [#41563](https://github.com/ClickHouse/ClickHouse/pull/41563) ([Raúl Marín](https://github.com/Algunenano)).
* Les requêtes avec `ORDER BY` et `1500 <= LIMIT <= max_block_size` pouvaient renvoyer un résultat incorrect avec des lignes manquantes en tête. Corrige [#41182](https://github.com/ClickHouse/ClickHouse/issues/41182). [#41576](https://github.com/ClickHouse/ClickHouse/pull/41576) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige le nombre d’octets/lignes lus dans X-ClickHouse-Summary avec les vues matérialisées. [#41586](https://github.com/ClickHouse/ClickHouse/pull/41586) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige une possible exception `pipeline stuck` pour les requêtes avec `OFFSET`. L’erreur a été constatée avec `enable_optimize_predicate_expression = 0` et une condition toujours fausse dans `WHERE`. Corrige [#41383](https://github.com/ClickHouse/ClickHouse/issues/41383). [#41588](https://github.com/ClickHouse/ClickHouse/pull/41588) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

### <a id="228" /> Release ClickHouse 22.8, du 2022-08-18. [Présentation](https://presentations.clickhouse.com/2022-release-22.8/), [Vidéo](https://www.youtube.com/watch?v=yob7AnaBJz0)

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

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

* La plage de `Date32` et `DateTime64` a été étendue pour prendre en charge les dates de 1900 à 2299. Dans les versions précédentes, l’intervalle pris en charge allait seulement de 1925 à 2283. L’implémentation utilise le calendrier grégorien proleptique (conforme à [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601):2004 (clause 3.2.1 The Gregorian calendar)) au lieu de tenir compte des transitions historiques du calendrier julien vers le calendrier grégorien. Cette modification affecte le comportement spécifique à l’implémentation pour les arguments hors plage. Par exemple, si, dans les versions précédentes, la valeur `1899-01-01` était ramenée à `1925-01-01`, dans la nouvelle version elle sera ramenée à `1900-01-01`. Cela modifie aussi le comportement de l’arrondi avec `toStartOfInterval` si vous passez `INTERVAL 3 QUARTER`, jusqu’à un trimestre, car les intervalles sont comptés à partir d’un point dans le temps spécifique à l’implémentation. Ferme [#28216](https://github.com/ClickHouse/ClickHouse/issues/28216), améliore [#38393](https://github.com/ClickHouse/ClickHouse/issues/38393). [#39425](https://github.com/ClickHouse/ClickHouse/pull/39425) ([Roman Vasin](https://github.com/rvasin)).
* Désormais, toutes les dictionary sources concernées respectent le paramètre `remote_url_allow_hosts`. C’était déjà le cas pour HTTP, Cassandra et Redis. Ajout de ClickHouse, MongoDB, MySQL et PostgreSQL. L’hôte est vérifié uniquement pour les dictionnaires créés à partir de DDL. [#39184](https://github.com/ClickHouse/ClickHouse/pull/39184) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Les binaires x86 précompilés de ClickHouse nécessitent désormais la prise en charge des instructions AVX, c.-à-d. un CPU pas plus ancien qu’un Intel Sandy Bridge / AMD Bulldozer, tous deux sortis en 2011. [#39000](https://github.com/ClickHouse/ClickHouse/pull/39000) ([Robert Schulze](https://github.com/rschu1ze)).
* Rendre le remote filesystem cache composable, permettre de ne pas évincer certains fichiers (notamment idx, mrk, ..), supprimer l’ancienne version du cache. Il est désormais possible de configurer le cache sur un disk Azure blob storage, un disk local, un disk StaticWeb, etc. Cette PR est marquée comme rétro-incompatible, car la configuration du cache change et le fichier de configuration doit être mis à jour pour que le cache fonctionne. L’ancien cache sera toujours utilisé avec la nouvelle configuration. Le server démarrera correctement avec l’ancienne configuration du cache. Ferme [https://github.com/ClickHouse/ClickHouse/issues/36140](https://github.com/ClickHouse/ClickHouse/issues/36140). Ferme [https://github.com/ClickHouse/ClickHouse/issues/37889](https://github.com/ClickHouse/ClickHouse/issues/37889). ([Kseniia Sumarokova](https://github.com/kssenii)). [#36171](https://github.com/ClickHouse/ClickHouse/pull/36171))

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

* Prise en charge de la syntaxe SQL standard DELETE FROM sur les tables MergeTree et de l’implémentation des suppressions légères pour la famille MergeTree. [#37893](https://github.com/ClickHouse/ClickHouse/pull/37893) ([Jianmei Zhang](https://github.com/zhangjmruc)) ([Alexander Gololobov](https://github.com/davenger)). Remarque : cette nouvelle fonctionnalité ne fait pas de ClickHouse un SGBD HTAP.
* Les paramètres de requête peuvent être définis en mode interactif avec `SET param_abc = 'def'` et transmis via le protocole natif comme paramètres. [#39906](https://github.com/ClickHouse/ClickHouse/pull/39906) ([Nikita Taranov](https://github.com/nickitat)).
* La clé de quota peut être définie dans le protocole natif ([Yakov Olkhovsky](https://github.com/ClickHouse/ClickHouse/pull/39874)).
* Ajout d’un paramètre `exact_rows_before_limit` (0/1). Lorsqu’il est activé, ClickHouse fournira la valeur exacte de la statistique `rows_before_limit_at_least`, mais au prix d’une lecture complète des données avant la limite. Cela résout [#6613](https://github.com/ClickHouse/ClickHouse/issues/6613). [#25333](https://github.com/ClickHouse/ClickHouse/pull/25333) ([kevin wan](https://github.com/MaxWk)).
* Ajout de la prise en charge des insert-select distribués en parallèle avec la fonction de table `s3Cluster` vers des tables utilisant les moteurs `Distributed` et `Replicated` [#34670](https://github.com/ClickHouse/ClickHouse/issues/34670). [#39107](https://github.com/ClickHouse/ClickHouse/pull/39107) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout de nouveaux paramètres pour contrôler l’inférence de schéma à partir des formats texte : - `input_format_try_infer_dates` - essayer d’inférer des dates à partir de chaînes. - `input_format_try_infer_datetimes` - essayer d’inférer des dates et heures à partir de chaînes. - `input_format_try_infer_integers` - essayer d’inférer `Int64` au lieu de `Float64`. - `input_format_json_try_infer_numbers_from_strings` - essayer d’inférer des nombres à partir de chaînes JSON dans les formats JSON. [#39186](https://github.com/ClickHouse/ClickHouse/pull/39186) ([Kruglov Pavel](https://github.com/Avogar)).
* Option permettant de produire des logs au format JSON. L’objectif est de faciliter l’ingestion et l’interrogation dans les outils d’analyse de logs. [#39277](https://github.com/ClickHouse/ClickHouse/pull/39277) ([Mallik Hassan](https://github.com/SadiHassan)).
* Ajout de la fonction `nowInBlock`, qui permet d’obtenir l’heure actuelle pendant des requêtes longues et continues. Résout [#39522](https://github.com/ClickHouse/ClickHouse/issues/39522). Remarques : il n’existe ni fonction `now64InBlock` ni `todayInBlock`. [#39533](https://github.com/ClickHouse/ClickHouse/pull/39533) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la possibilité de spécifier des paramètres pour une fonction de table `executable()`. [#39681](https://github.com/ClickHouse/ClickHouse/pull/39681) ([Constantine Peresypkin](https://github.com/pkit)).
* Implémentation de la conversion automatique du moteur de base de données de `Ordinary` vers `Atomic`. Créez un fichier vide `convert_ordinary_to_atomic` dans le répertoire `flags` et toutes les bases de données `Ordinary` seront converties automatiquement au prochain démarrage du serveur. Résout [#39546](https://github.com/ClickHouse/ClickHouse/issues/39546). [#39933](https://github.com/ClickHouse/ClickHouse/pull/39933) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Prise en charge de `SELECT ... INTO OUTFILE '...' AND STDOUT`. [#37490](https://github.com/ClickHouse/ClickHouse/issues/37490). [#39054](https://github.com/ClickHouse/ClickHouse/pull/39054) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Ajout des formats `PrettyMonoBlock`, `PrettyNoEscapesMonoBlock`, `PrettyCompactNoEscapes`, `PrettyCompactNoEscapesMonoBlock`, `PrettySpaceNoEscapes`, `PrettySpaceMonoBlock`, `PrettySpaceNoEscapesMonoBlock`. [#39646](https://github.com/ClickHouse/ClickHouse/pull/39646) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Utilisation mémoire améliorée lors de la fusion avec agrégation économe en mémoire. [#39429](https://github.com/ClickHouse/ClickHouse/pull/39429) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout d’une logique de contrôle de la concurrence pour limiter le nombre total de threads concurrents créés par les requêtes. [#37558](https://github.com/ClickHouse/ClickHouse/pull/37558) ([Sergei Trifonov](https://github.com/serxa)). Ajout du paramètre `concurrent_threads_soft_limit` pour améliorer les performances en cas de QPS élevé en limitant le nombre total de threads pour l’ensemble des requêtes. [#37285](https://github.com/ClickHouse/ClickHouse/pull/37285) ([Roman Vasin](https://github.com/rvasin)).
* Ajout de la stratégie de cache `SLRU` pour l’uncompressed cache et le cache des marks. ([Kseniia Sumarokova](https://github.com/kssenii)). [#34651](https://github.com/ClickHouse/ClickHouse/pull/34651) ([alexX512](https://github.com/alexX512)). Découplage de la fonction de cache locale et de l’algorithme de cache [#38048](https://github.com/ClickHouse/ClickHouse/pull/38048) ([Han Shukai](https://github.com/KinderRiven)).
* Intel® In-Memory Analytics Accelerator (Intel® IAA) est un accélérateur matériel disponible sur la prochaine génération de processeurs Intel® Xeon® Scalable (« Sapphire Rapids »). Son objectif est d’accélérer les opérations d’analytics courantes, comme la (dé)compression des données et le filtrage. ClickHouse intègre un nouveau compression codec, « DeflateQpl », qui exploite la technologie de déchargement Intel® IAA pour fournir une implémentation DEFLATE hautes performances. Le codec utilise la [Intel® Query Processing Library (QPL)](https://github.com/intel/qpl), qui abstrait l’accès à l’accélérateur matériel ou, à défaut, à un mécanisme de fallback logiciel si l’accélérateur matériel n’est pas disponible. DEFLATE offre généralement des taux de compression supérieurs au codec LZ4 par défaut de ClickHouse et permet ainsi de réduire les E/S disque ainsi que la consommation de mémoire principale. [#36654](https://github.com/ClickHouse/ClickHouse/pull/36654) ([jasperzhu](https://github.com/jinjunzh)). [#39494](https://github.com/ClickHouse/ClickHouse/pull/39494) ([Robert Schulze](https://github.com/rschu1ze)).
* `DISTINCT` dans l’ordre avec `ORDER BY` : détermination de la manière de trier à partir de la description de tri du flux d’entrée. Le tri est ignoré si le flux d’entrée est déjà trié. [#38719](https://github.com/ClickHouse/ClickHouse/pull/38719) ([Igor Nikonov](https://github.com/devcrafter)). Amélioration significative de l’utilisation mémoire et du temps d’exécution des requêtes + utilisation de `DistinctSortedChunkTransform` pour le distinct final lorsque les colonnes `DISTINCT` correspondent aux colonnes `ORDER BY`, avec renommage en `DistinctSortedStreamTransform` dans `EXPLAIN PIPELINE` → cela améliore significativement l’utilisation mémoire + suppression des allocations inutiles dans la boucle critique de `DistinctSortedChunkTransform`. [#39432](https://github.com/ClickHouse/ClickHouse/pull/39432) ([Igor Nikonov](https://github.com/devcrafter)). Utiliser `DistinctSortedTransform` uniquement lorsque la description de tri s’applique aux colonnes `DISTINCT`, sinon revenir à l’implémentation `DISTINCT` classique + cela permet de réduire le nombre de vérifications pendant l’exécution de `DistinctSortedTransform`. [#39528](https://github.com/ClickHouse/ClickHouse/pull/39528) ([Igor Nikonov](https://github.com/devcrafter)). Correctif : `DistinctSortedTransform` ne tirait pas parti du tri. Il ne vidait jamais le HashSet, car les clearing\_columns étaient détectées de manière incorrecte (toujours vides). Il se comportait donc en pratique comme un `DISTINCT` classique (`DistinctTransform`). Ce correctif réduit significativement l’utilisation mémoire. [#39538](https://github.com/ClickHouse/ClickHouse/pull/39538) ([Igor Nikonov](https://github.com/devcrafter)).
* Utiliser le nœud local en priorité pour obtenir la structure de la table distante lors de l’exécution de `cluster` et de table functions similaires. [#39440](https://github.com/ClickHouse/ClickHouse/pull/39440) ([Mingliang Pan](https://github.com/liangliangpan)).
* Optimisation du filtrage sur les colonnes numériques avec AVX512VBMI2 compress store. [#39633](https://github.com/ClickHouse/ClickHouse/pull/39633) ([Guo Wangyang](https://github.com/guowangy)). Pour les systèmes dotés d’AVX512 VBMI2, cette PR améliore les performances d’environ 6 % sur les requêtes 3.1, 3.2 et 3.3 du benchmark SSB (SF=100). Testé sur 2 sockets Intel Icelake Xeon 8380. [#40033](https://github.com/ClickHouse/ClickHouse/pull/40033) ([Robert Schulze](https://github.com/rschu1ze)).
* Optimisation de l’analyse des index avec des expressions fonctionnelles en environnement multithread. [#39812](https://github.com/ClickHouse/ClickHouse/pull/39812) ([Guo Wangyang](https://github.com/guowangy)).
* Optimisations pour les requêtes complexes : ne pas parcourir l’AST des UDFs si aucune n’est enregistrée. [#40069](https://github.com/ClickHouse/ClickHouse/pull/40069) ([Raúl Marín](https://github.com/Algunenano)). Optimisation de l’allocation et de la libération de CurrentMemoryTracker. [#40078](https://github.com/ClickHouse/ClickHouse/pull/40078) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration de l’encodage/décodage Base58. [#39292](https://github.com/ClickHouse/ClickHouse/pull/39292) ([Andrey Zvonov](https://github.com/zvonand)).
* Amélioration de la transformation du masque d’octets en masque de bits pour SSE/AVX/AVX512. [#39586](https://github.com/ClickHouse/ClickHouse/pull/39586) ([Guo Wangyang](https://github.com/guowangy)).

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

* Normalisation des types `AggregateFunction` et des représentations d’état, car des optimisations comme [#35788](https://github.com/ClickHouse/ClickHouse/pull/35788) traiteront `count(not null columns)` comme `count()`, ce qui peut perturber les Interpreters distribués avec l’erreur suivante : `Conversion from AggregateFunction(count) to AggregateFunction(count, Int64) is not supported`. [#39420](https://github.com/ClickHouse/ClickHouse/pull/39420) ([Amos Bird](https://github.com/amosbird)). Les fonctions ayant des états identiques peuvent être utilisées indifféremment dans des vues matérialisées.
* Refonte et simplification de la table `system.backups` : suppression de la colonne `internal`, possibilité pour l’utilisateur de définir l’ID de l’opération, ajout des colonnes `num_files`, `uncompressed_size`, `compressed_size`, `start_time`, `end_time`. [#39503](https://github.com/ClickHouse/ClickHouse/pull/39503) ([Vitaly Baranov](https://github.com/vitlibar)).
* Amélioration de la structure de la table de résultats des requêtes DDL pour la base de données `Replicated` (colonnes distinctes pour le nom du shard et de la replica, statut plus clair) - les requêtes `CREATE TABLE ... ON CLUSTER` peuvent d’abord être normalisées sur l’initiateur si `distributed_ddl_entry_format_version` est défini sur 3 (valeur par défaut). Cela signifie que les requêtes `ON CLUSTER` peuvent ne pas fonctionner si l’initiateur n’appartient pas au cluster spécifié dans la requête. Corrige [#37318](https://github.com/ClickHouse/ClickHouse/issues/37318), [#39500](https://github.com/ClickHouse/ClickHouse/issues/39500) - Ignorer la clause `ON CLUSTER` si la base de données est `Replicated` et que le nom du cluster est identique à celui de la base de données. En lien avec [#35570](https://github.com/ClickHouse/ClickHouse/issues/35570) - Divers correctifs mineurs pour le database engine `Replicated` - Vérifier la cohérence des métadonnées au démarrage de la base de données `Replicated`, lancer la recovery de la replica en cas d’incohérence entre les métadonnées locales et celles de Keeper. Résout [#24880](https://github.com/ClickHouse/ClickHouse/issues/24880). [#37198](https://github.com/ClickHouse/ClickHouse/pull/37198) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajout de result\_rows et result\_bytes aux rapports de progression (`X-ClickHouse-Summary`). [#39567](https://github.com/ClickHouse/ClickHouse/pull/39567) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration de l’analyse de la clé primaire pour MergeTree. [#25563](https://github.com/ClickHouse/ClickHouse/pull/25563) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* `timeSlots` fonctionne désormais avec DateTime64 ; une Duration à la sous-seconde et une taille de slot sont désormais disponibles avec DateTime64. [#37951](https://github.com/ClickHouse/ClickHouse/pull/37951) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajout de la prise en charge des direct join `LEFT SEMI` et `LEFT ANTI` avec les tables `EmbeddedRocksDB`. [#38956](https://github.com/ClickHouse/ClickHouse/pull/38956) ([Vladimir C](https://github.com/vdimir)).
* Ajout de profile events pour les opérations fsync. [#39179](https://github.com/ClickHouse/ClickHouse/pull/39179) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’un second argument à la fonction ordinaire `file(path[, default])`, renvoyé par la fonction lorsqu’un fichier n’existe pas. [#39218](https://github.com/ClickHouse/ClickHouse/pull/39218) ([Nikolay Degterinsky](https://github.com/evillique)).
* Quelques correctifs mineurs pour la lecture via http, avec possibilité de réessayer un contenu partiel en cas de réponse 200 OK. [#39244](https://github.com/ClickHouse/ClickHouse/pull/39244) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge des requêtes `CREATE TEMPORARY TABLE ... (<list of columns>) AS ...`. [#39462](https://github.com/ClickHouse/ClickHouse/pull/39462) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge de `!`/`*` (point d’exclamation/astérisque) dans les TLD personnalisés (`cutToFirstSignificantSubdomainCustom()`/`cutToFirstSignificantSubdomainCustomWithWWW()`/`firstSignificantSubdomainCustom()`). [#39496](https://github.com/ClickHouse/ClickHouse/pull/39496) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la prise en charge des connexions TLS à NATS. Implémente [#39525](https://github.com/ClickHouse/ClickHouse/issues/39525). [#39527](https://github.com/ClickHouse/ClickHouse/pull/39527) ([Constantine Peresypkin](https://github.com/pkit)).
* `clickhouse-obfuscator` (un outil d’obfuscation de base de données pour les tests et la génération de charge) dispose désormais des nouveaux paramètres `--save` et `--load` pour fonctionner avec des modèles préentraînés. Cela clôt [#39534](https://github.com/ClickHouse/ClickHouse/issues/39534). [#39541](https://github.com/ClickHouse/ClickHouse/pull/39541) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du comportement incorrect de la rotation des journaux lors du redémarrage. [#39558](https://github.com/ClickHouse/ClickHouse/pull/39558) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de la création des projections d’agrégation lorsque l’agrégation externe est activée. Classé comme amélioration, car ce cas est rare et il existe une solution de contournement simple en modifiant les paramètres. Cela corrige [#39667](https://github.com/ClickHouse/ClickHouse/issues/39667) . [#39671](https://github.com/ClickHouse/ClickHouse/pull/39671) ([Amos Bird](https://github.com/amosbird)).
* Autorise l’exécution de fonctions de hachage avec des arguments de type `Map`. [#39685](https://github.com/ClickHouse/ClickHouse/pull/39685) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout d’un paramètre de configuration pour masquer les adresses dans les traces de pile. Cela peut légèrement améliorer la sécurité, mais c’est généralement nuisible et ne devrait pas être utilisé. [#39690](https://github.com/ClickHouse/ClickHouse/pull/39690) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Modification de la taille du préfixe de AggregateFunctionDistinct pour garantir l’alignement du segment mémoire des données de la fonction imbriquée. [#39696](https://github.com/ClickHouse/ClickHouse/pull/39696) ([Pxl](https://github.com/BiteTheDDDDt)).
* Échappement correct des informations d’authentification transmises à l’outil `clickhouse-diagnostic`. [#39707](https://github.com/ClickHouse/ClickHouse/pull/39707) ([Dale McDiarmid](https://github.com/gingerwizard)).
* Amélioration de ClickHouse Keeper : création d’un snapshot à la fermeture. Ce comportement peut être contrôlé avec la config `keeper_server.create_snapshot_on_exit`, `true` par défaut. [#39755](https://github.com/ClickHouse/ClickHouse/pull/39755) ([Antonio Andelic](https://github.com/antonio2368)).
* Prise en charge de l’analyse de clé primaire pour `row_policy_filter` et `additional_filter`. Cela aide également à corriger des problèmes comme [#37454](https://github.com/ClickHouse/ClickHouse/issues/37454) . [#39826](https://github.com/ClickHouse/ClickHouse/pull/39826) ([Amos Bird](https://github.com/amosbird)).
* Correction de deux problèmes d’ergonomie dans Play UI : - l’interface n’était pas parfaitement fidèle au pixel près sur iPad en raison de rayons de bordure et de marges parasites ; - l’indication de progression ne s’affichait pas après la première requête. Cela clôt [#39957](https://github.com/ClickHouse/ClickHouse/issues/39957). Cela clôt [#39960](https://github.com/ClickHouse/ClickHouse/issues/39960). [#39961](https://github.com/ClickHouse/ClickHouse/pull/39961) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Play UI : ajout des numéros de ligne ; ajout de la sélection de cellule au clic ; ajout d’une hystérésis pour les cellules du tableau. [#39962](https://github.com/ClickHouse/ClickHouse/pull/39962) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Play UI : reconnaît la touche de tabulation dans la zone de texte, sans perturber pour autant la navigation par tabulation. [#40053](https://github.com/ClickHouse/ClickHouse/pull/40053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le client affichera le temps écoulé côté serveur. C'est important pour comparer les performances des services ClickHouse dans des datacenters distants. Cela clôt [#38070](https://github.com/ClickHouse/ClickHouse/issues/38070). Voir aussi [ceci](https://github.com/ClickHouse/ClickBench/blob/main/hardware/benchmark-cloud.sh#L37) pour le contexte. [#39968](https://github.com/ClickHouse/ClickHouse/pull/39968) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute les fonctions `parseDateTime64BestEffortUS`, `parseDateTime64BestEffortUSOrNull`, `parseDateTime64BestEffortUSOrZero`, clôturant [#37492](https://github.com/ClickHouse/ClickHouse/issues/37492). [#40015](https://github.com/ClickHouse/ClickHouse/pull/40015) ([Tanya Bragin](https://github.com/tbragin)).
* Étend `system.processors_profile_log` avec plus d'informations, comme le nombre de lignes en entrée. [#40121](https://github.com/ClickHouse/ClickHouse/pull/40121) ([Amos Bird](https://github.com/amosbird)).
* Affiche par défaut le temps côté serveur dans `clickhouse-benchmark` s'il est disponible (à partir de ClickHouse version 22.8). Cela est nécessaire pour comparer correctement les performances des clouds. Ce comportement peut être modifié avec la nouvelle option de ligne de commande `--client-side-time`. Modifie l'option de ligne de commande `--randomize` de `--randomize 1` vers une forme sans argument. [#40193](https://github.com/ClickHouse/ClickHouse/pull/40193) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute des compteurs (ProfileEvents) pour les cas où une limitation de complexité de query a été définie et atteinte (avec un compteur distinct pour `overflow_mode` = `break` et `throw`). Par exemple, si vous avez configuré `max_rows_to_read` avec `read_overflow_mode = 'break'`, examiner la valeur du compteur `OverflowBreak` permettra de distinguer les résultats incomplets. [#40205](https://github.com/ClickHouse/ClickHouse/pull/40205) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la comptabilisation de la mémoire en cas d'erreurs "Memory limit exceeded" (auparavant, le pic de consommation mémoire prenait en compte les allocations ayant échoué). [#40249](https://github.com/ClickHouse/ClickHouse/pull/40249) ([Azat Khuzhin](https://github.com/azat)).
* Ajoute des métriques pour le cache du système de fichiers : `FilesystemCacheSize` et `FilesystemCacheElements`. [#40260](https://github.com/ClickHouse/ClickHouse/pull/40260) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prend en charge le transfert RPC sécurisé de hadoop (hadoop.rpc.protection=privacy et hadoop.rpc.protection=integrity). [#39411](https://github.com/ClickHouse/ClickHouse/pull/39411) ([michael1589](https://github.com/michael1589)).
* Évite l'augmentation continue de la consommation mémoire du cache de motifs lors de l'utilisation des fonctions multi(Fuzzy)Match(Any|AllIndices|AnyIndex)(). [#40264](https://github.com/ClickHouse/ClickHouse/pull/40264) ([Robert Schulze](https://github.com/rschu1ze)).

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

* [ClickFiddle](https://fiddle.clickhouse.com/) : Un nouvel outil pour tester les versions de ClickHouse en mode lecture/écriture (**Igor Baliuk**).
* Le binaire ClickHouse est désormais auto-extractible [#35775](https://github.com/ClickHouse/ClickHouse/pull/35775) ([Yakov Olkhovskiy, Arthur Filatenkov](https://github.com/yakov-olkhovskiy)).
* Mise à jour de tzdata vers 2022b pour prendre en charge les nouvelles modifications de timezone. Voir [https://github.com/google/cctz/pull/226](https://github.com/google/cctz/pull/226). Le passage à l’heure d’été 2022 au Chili est reporté du 4 septembre au 11 septembre. L’Iran prévoit d’abandonner définitivement l’heure d’été après le retour à l’heure standard le 2022-09-21. Des corrections ont également été apportées au fuseau horaire historique de Asia/Tehran pour l’année 1977 : l’Iran a adopté l’heure standard en 1935, et non en 1946. En 1977, l’heure d’été a été observée du 03-21 23:00 au 10-20 24:00 ; les transitions de 1978 ont eu lieu le 03-24 et le 08-05, et non le 03-20 et le 10-20 ; et la transition du printemps 1979 a eu lieu le 05-27, et non le 03-21 ([https://data.iana.org/time-zones/tzdb/NEWS](https://data.iana.org/time-zones/tzdb/NEWS)). ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Auparavant, les paquets installaient le fichier systemd.service dans `/etc`. Les fichiers qui s’y trouvent sont marqués comme `conf`, ne sont pas supprimés et ne sont pas mis à jour automatiquement. Cette PR les supprime. [#39323](https://github.com/ClickHouse/ClickHouse/pull/39323) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* S’assurer que LSan fonctionne correctement. [#39430](https://github.com/ClickHouse/ClickHouse/pull/39430) ([Azat Khuzhin](https://github.com/azat)).
* TSAN pose des problèmes avec clang-14 ([https://github.com/google/sanitizers/issues/1552](https://github.com/google/sanitizers/issues/1552), [https://github.com/google/sanitizers/issues/1540](https://github.com/google/sanitizers/issues/1540)), nous compilons donc ici les binaires TSAN avec clang-15. [#39450](https://github.com/ClickHouse/ClickHouse/pull/39450) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Suppression de l’option permettant de compiler les outils ClickHouse en tant que programmes executable distincts. Cela corrige [#37847](https://github.com/ClickHouse/ClickHouse/issues/37847). [#39520](https://github.com/ClickHouse/ClickHouse/pull/39520) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Petites préparations pour la compilation sur s390x (qui est big-endian). [#39627](https://github.com/ClickHouse/ClickHouse/pull/39627) ([Harry Lee](https://github.com/HarryLeeIBM)). [#39656](https://github.com/ClickHouse/ClickHouse/pull/39656) ([Harry Lee](https://github.com/HarryLeeIBM)). Correction d’un problème d’Endian dans BitHelpers pour s390x. [#39656](https://github.com/ClickHouse/ClickHouse/pull/39656) ([Harry Lee](https://github.com/HarryLeeIBM)). Implémentation d’un fragment de code lié à SipHash pour l’architecture s390x (qui n’est pas prise en charge par ClickHouse). [#39732](https://github.com/ClickHouse/ClickHouse/pull/39732) ([Harry Lee](https://github.com/HarryLeeIBM)). Correction d’un problème d’Endian dans le code de snapshot de Coordination pour l’architecture s390x (qui n’est pas prise en charge par ClickHouse). [#39931](https://github.com/ClickHouse/ClickHouse/pull/39931) ([Harry Lee](https://github.com/HarryLeeIBM)). Correction de problèmes d’Endian dans le code du codec pour l’architecture s390x (qui n’est pas prise en charge par ClickHouse). [#40008](https://github.com/ClickHouse/ClickHouse/pull/40008) ([Harry Lee](https://github.com/HarryLeeIBM)). Correction de problèmes d’Endian lors de la lecture/écriture de données binaires BigEndian dans le code de ReadHelpers et WriteHelpers pour l’architecture s390x (qui n’est pas prise en charge par ClickHouse). [#40179](https://github.com/ClickHouse/ClickHouse/pull/40179) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Prise en charge de la compilation avec `clang-16` (trunk). Cela résout [#39949](https://github.com/ClickHouse/ClickHouse/issues/39949). [#40181](https://github.com/ClickHouse/ClickHouse/pull/40181) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Préparation de la compilation RISC-V 64 pour une exécution dans la CI. Cela concerne [#40141](https://github.com/ClickHouse/ClickHouse/issues/40141). [#40197](https://github.com/ClickHouse/ClickHouse/pull/40197) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Simplification de l’interface de la macro d’enregistrement des fonctions (`FUNCTION_REGISTER*`) afin de supprimer l’étape consistant à ajouter et à appeler une fonction extern dans registerFunctions.cpp, ce qui accélère également les compilations incrémentielles d’une nouvelle fonction. [#38615](https://github.com/ClickHouse/ClickHouse/pull/38615) ([Li Yin](https://github.com/liyinsg)).
* Docker : désormais, `entrypoint.sh` dans l’image Docker crée et exécute `chown` pour tous les dossiers trouvés dans la configuration d’un environnement multidisk [#17717](https://github.com/ClickHouse/ClickHouse/issues/17717). [#39121](https://github.com/ClickHouse/ClickHouse/pull/39121) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

<div id="bug-fix-1">
  #### correction de bug
</div>

* Corrige un segfault possible dans le format d’entrée `CapnProto`. Ce bug a été découvert et signalé par *kiojj* via le [programme](https://github.com/ClickHouse/ClickHouse/issues/38986) de bug bounty de ClickHouse. [#40241](https://github.com/ClickHouse/ClickHouse/pull/40241) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un cas très rare de comportement incorrect de l’opérateur d’indice de tableau. Clôt [#28720](https://github.com/ClickHouse/ClickHouse/issues/28720). [#40185](https://github.com/ClickHouse/ClickHouse/pull/40185) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige une vérification insuffisante des arguments des fonctions de chiffrement (détectée par le fuzzer de requêtes). Clôt [#39987](https://github.com/ClickHouse/ClickHouse/issues/39987). [#40194](https://github.com/ClickHouse/ClickHouse/pull/40194) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le cas où l’ordre des colonnes peut être incorrect si l’opérateur `IN` est utilisé avec une table en `ENGINE = Set` contenant plusieurs colonnes. Corrige [#13014](https://github.com/ClickHouse/ClickHouse/issues/13014). [#40225](https://github.com/ClickHouse/ClickHouse/pull/40225) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige le repositionnement lors de la lecture depuis un disque chiffré. Cette PR corrige [#38381](https://github.com/ClickHouse/ClickHouse/issues/38381). [#39687](https://github.com/ClickHouse/ClickHouse/pull/39687) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige les colonnes dupliquées dans le plan de jointure. Résout enfin [#26809](https://github.com/ClickHouse/ClickHouse/issues/26809). [#40009](https://github.com/ClickHouse/ClickHouse/pull/40009) ([Vladimir C](https://github.com/vdimir)).
* Corrige le blocage d’une requête SELECT avec ORDER BY WITH FILL utilisant différents types de date/heure. [#37849](https://github.com/ClickHouse/ClickHouse/pull/37849) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige ORDER BY lorsqu’il correspond au ORDER BY des projections (auparavant, cela renvoyait simplement un résultat non trié). [#38725](https://github.com/ClickHouse/ClickHouse/pull/38725) ([Azat Khuzhin](https://github.com/azat)).
* N’optimise pas les fonctions dans les instructions GROUP BY si elles masquent l’une des colonnes ou expressions de la table. Corrige [#37032](https://github.com/ClickHouse/ClickHouse/issues/37032). [#39103](https://github.com/ClickHouse/ClickHouse/pull/39103) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Corrige un nom de table erroné dans les logs après RENAME TABLE. Corrige [#38018](https://github.com/ClickHouse/ClickHouse/issues/38018). [#39227](https://github.com/ClickHouse/ClickHouse/pull/39227) ([Amos Bird](https://github.com/amosbird)).
* Corrige les arguments positionnels en cas d’élagage des colonnes lors de l’optimisation de la requête. Clôt [#38433](https://github.com/ClickHouse/ClickHouse/issues/38433). [#39293](https://github.com/ClickHouse/ClickHouse/pull/39293) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un bug d’inférence de schéma en cas de messages vides dans les formats Protobuf/CapnProto, qui permettait de créer une colonne avec un type `Tuple` vide. Clôt [#39051](https://github.com/ClickHouse/ClickHouse/issues/39051). Ajoute 2 nouveaux paramètres `input_format_{protobuf/capnproto}_skip_fields_with_unsupported_types_in_schema_inference`, qui permettent d’ignorer les champs dont les types ne sont pas pris en charge lors de l’inférence de schéma pour les formats Protobuf et CapnProto. [#39357](https://github.com/ClickHouse/ClickHouse/pull/39357) ([Kruglov Pavel](https://github.com/Avogar)).
* (Window View est une fonctionnalité expérimentale) Corrige un segfault sur `CREATE WINDOW VIEW .. ON CLUSTER ... INNER`. Clôt [#39363](https://github.com/ClickHouse/ClickHouse/issues/39363). [#39384](https://github.com/ClickHouse/ClickHouse/pull/39384) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la finalisation de WriteBuffer lors de l’annulation d’un insert dans une fonction (dans les versions précédentes, cela pouvait entraîner `std::terminate`). [#39458](https://github.com/ClickHouse/ClickHouse/pull/39458) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du stockage des colonnes de type `Object` dans une sérialisation sparse. [#39464](https://github.com/ClickHouse/ClickHouse/pull/39464) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une exception possible "Not found column in block" lors de l’utilisation des projections. Cela clôt [#39469](https://github.com/ClickHouse/ClickHouse/issues/39469). [#39470](https://github.com/ClickHouse/ClickHouse/pull/39470) ([小路](https://github.com/nicelulu)).
* Correction d’une exception due à une situation de concurrence entre DROP et INSERT avec des vues matérialisées. [#39477](https://github.com/ClickHouse/ClickHouse/pull/39477) ([Azat Khuzhin](https://github.com/azat)).
* Bogue dans la bibliothèque Apache Avro : correction d’une data race et d’un possible heap-buffer-overflow dans le format Avro. Clôt [#39094](https://github.com/ClickHouse/ClickHouse/issues/39094) Clôt [#33652](https://github.com/ClickHouse/ClickHouse/issues/33652). [#39498](https://github.com/ClickHouse/ClickHouse/pull/39498) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un bogue rare dans la lecture asynchrone (avec le paramètre `local_filesystem_read_method='pread_threadpool'`) lorsque `O_DIRECT` est activé (via le paramètre `min_bytes_to_use_direct_io`). [#39506](https://github.com/ClickHouse/ClickHouse/pull/39506) ([Anton Popov](https://github.com/CurtizJ)).
* (uniquement sur FreeBSD) Correction de l’erreur "Code: 49. DB::Exception: FunctionFactory: the function name '' is not unique. (LOGICAL\_ERROR)" observée sur FreeBSD au démarrage de ClickHouse. [#39551](https://github.com/ClickHouse/ClickHouse/pull/39551) ([Alexander Gololobov](https://github.com/davenger)).
* Correction d’un bogue lié à l’argument "maxsplit" récemment introduit pour `splitByChar`, qui ne fonctionnait pas correctement. [#39552](https://github.com/ClickHouse/ClickHouse/pull/39552) ([filimonov](https://github.com/filimonov)).
* Correction d’un bogue dans ASOF JOIN avec `enable_optimize_predicate_expression`, clôt [#37813](https://github.com/ClickHouse/ClickHouse/issues/37813). [#39556](https://github.com/ClickHouse/ClickHouse/pull/39556) ([Vladimir C](https://github.com/vdimir)).
* Correction de la query `CREATE/DROP INDEX` avec `ON CLUSTER` ou avec une database `Replicated` et `ReplicatedMergeTree`. Elle était auparavant exécutée sur toutes les répliques (ce qui provoquait une erreur ou le blocage de la DDL queue). Corrige [#39511](https://github.com/ClickHouse/ClickHouse/issues/39511). [#39565](https://github.com/ClickHouse/ClickHouse/pull/39565) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction de l’erreur "column not found" pour le push down avec join, clôt [#39505](https://github.com/ClickHouse/ClickHouse/issues/39505). [#39575](https://github.com/ClickHouse/ClickHouse/pull/39575) ([Vladimir C](https://github.com/vdimir)).
* Correction du mauvais alias `REGEXP_REPLACE`. Cela corrige [https://github.com/ClickHouse/ClickBench/issues/9](https://github.com/ClickHouse/ClickBench/issues/9). [#39592](https://github.com/ClickHouse/ClickHouse/pull/39592) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du point d’origine des fonctions de fenêtre à décroissance exponentielle : il correspond désormais à la dernière valeur de la fenêtre. Auparavant, la décroissance était calculée avec la formule `exp((t - curr_row_t) / decay_length)`, ce qui est incorrect lorsque la borne droite de la fenêtre n’est pas `CURRENT ROW`. Elle a été remplacée par : `exp((t - last_row_t) / decay_length)`. Il n’y a aucun changement dans les résultats pour les fenêtres avec `ROWS BETWEEN (smth) AND CURRENT ROW`. [#39593](https://github.com/ClickHouse/ClickHouse/pull/39593) ([Vladimir Chebotaryov](https://github.com/quickhouse)).
* Correction du dépassement lors d'une division Decimal, détectable à partir de l'échelle des opérandes. [#39600](https://github.com/ClickHouse/ClickHouse/pull/39600) ([Andrey Zvonov](https://github.com/zvonand)).
* Correction du fonctionnement conjoint des paramètres `output_format_arrow_string_as_string` et `output_format_arrow_low_cardinality_as_dictionary`. Clôt [#39624](https://github.com/ClickHouse/ClickHouse/issues/39624). [#39647](https://github.com/ClickHouse/ClickHouse/pull/39647) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d'un bug dans la résolution de la base de données `default` lors de la lecture d'une table distribuée. [#39674](https://github.com/ClickHouse/ClickHouse/pull/39674) ([Anton Kozlov](https://github.com/tonickkozlov)).
* (Uniquement avec les bases de données Ordinary obsolètes) Une requête SELECT pouvait lire les données d'une table supprimée si le cache pour mmap IO était utilisé, si le database engine était Ordinary et si de nouvelles tables étaient créées avec le même nom que la table supprimée. C'est corrigé. [#39708](https://github.com/ClickHouse/ClickHouse/pull/39708) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction de l'erreur possible `Invalid column type for ColumnUnique::insertRangeFrom. Expected String, got ColumnLowCardinality`. Corrige [#38460](https://github.com/ClickHouse/ClickHouse/issues/38460). [#39716](https://github.com/ClickHouse/ClickHouse/pull/39716) ([Arthur Passos](https://github.com/arthurpassos)).
* Les noms de champ dans la section `meta` du format JSON étaient à tort échappés deux fois. Cela clôt [#39693](https://github.com/ClickHouse/ClickHouse/issues/39693). [#39747](https://github.com/ClickHouse/ClickHouse/pull/39747) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d'une analyse d'index erronée avec des tuples et l'opérateur `IN`, pouvant entraîner un résultat de requête incorrect. [#39752](https://github.com/ClickHouse/ClickHouse/pull/39752) ([Anton Popov](https://github.com/CurtizJ)).
* Correction du filtrage des tables `EmbeddedRocksDB` par clé à l'aide de paramètres. [#39757](https://github.com/ClickHouse/ClickHouse/pull/39757) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de l'erreur `Invalid number of columns in chunk pushed to OutputPort`, causée par l'optimisation de ARRAY JOIN. Corrige [#39164](https://github.com/ClickHouse/ClickHouse/issues/39164). [#39799](https://github.com/ClickHouse/ClickHouse/pull/39799) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Contournement d'un bug du noyau Linux. Correction de l'exception `CANNOT_READ_ALL_DATA` avec `local_filesystem_read_method=pread_threadpool`. D'après le [man](https://manpages.debian.org/testing/manpages-dev/preadv2.2.en.html#BUGS), ce bug n'affectait que les versions 5.9 et 5.10 du noyau Linux. [#39800](https://github.com/ClickHouse/ClickHouse/pull/39800) ([Anton Popov](https://github.com/CurtizJ)).
* (Uniquement sur NFS) Correction d'un `mkdir` NFS défaillant pour les volumes root-squashed. [#39898](https://github.com/ClickHouse/ClickHouse/pull/39898) ([Constantine Peresypkin](https://github.com/pkit)).
* Suppression des dictionnaires des métriques Prometheus lors de DETACH/DROP. [#39926](https://github.com/ClickHouse/ClickHouse/pull/39926) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la lecture de StorageFile avec des colonnes virtuelles. Clôt [#39907](https://github.com/ClickHouse/ClickHouse/issues/39907). [#39943](https://github.com/ClickHouse/ClickHouse/pull/39943) ([flynn](https://github.com/ucasfl)).
* Correction d'une consommation mémoire élevée pendant les fetches. Corrige [#39915](https://github.com/ClickHouse/ClickHouse/issues/39915). [#39990](https://github.com/ClickHouse/ClickHouse/pull/39990) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* (fonctionnalité expérimentale) Correction d’un plantage de `hashId` et du fait que le paramètre salt n’était pas utilisé. [#40002](https://github.com/ClickHouse/ClickHouse/pull/40002) ([Raúl Marín](https://github.com/Algunenano)).
* Les opérateurs `EXCEPT` et `INTERSECT` peuvent provoquer un plantage si une combinaison spécifique de colonnes constantes et non constantes est utilisée. [#40020](https://github.com/ClickHouse/ClickHouse/pull/40020) ([Duc Canh Le](https://github.com/canhld94)).
* Correction des erreurs "Part directory doesn't exist" et "`tmp_<part_name>` ... No such file or directory" lors d’un INSERT trop lent ou d’une fusion/mutation trop longue. Correction également d’un problème pouvant bloquer certaines entrées de la file d’attente de réplication, sans erreur ni avertissement dans les journaux, si une tentative précédente de récupération d’une part avait échoué, mais que le répertoire `tmp-fetch_<part_name>` n’avait pas été nettoyé. [#40031](https://github.com/ClickHouse/ClickHouse/pull/40031) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction de rares cas d’analyse de tableaux de tuples au format `Values`. [#40034](https://github.com/ClickHouse/ClickHouse/pull/40034) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de la conversion du format ArrowColumn Dictionary(X) & Dictionary(Nullable(X)) en ClickHouse LowCardinality(X) & LowCardinality(Nullable(X)) respectivement. [#40037](https://github.com/ClickHouse/ClickHouse/pull/40037) ([Arthur Passos](https://github.com/arthurpassos)).
* Correction d’un interblocage potentiel lors de l’écriture vers S3 en cas d’échec de l’ordonnancement des tâches. [#40070](https://github.com/ClickHouse/ClickHouse/pull/40070) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un bug dans collectFilesToSkip() par l’ajout de la bonne extension de fichier (.idx ou idx2) pour les index à recalculer, afin d’éviter des liens physiques incorrects. Corrige [#39896](https://github.com/ClickHouse/ClickHouse/issues/39896). [#40095](https://github.com/ClickHouse/ClickHouse/pull/40095) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Correctif pour la résolution DNS inverse. [#40134](https://github.com/ClickHouse/ClickHouse/pull/40134) ([Arthur Passos](https://github.com/arthurpassos)).
* Correction du résultat inattendu de `arrayDifference` pour \`Array(UInt32). [#40211](https://github.com/ClickHouse/ClickHouse/pull/40211) ([Duc Canh Le](https://github.com/canhld94)).

### <a id="227" /> Release ClickHouse 22.7, 2022-07-21. [Présentation](https://presentations.clickhouse.com/2022-release-22.7/), [Vidéo](https://www.youtube.com/watch?v=IOJyo14BpTQ)

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

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

* Activer le paramètre `enable_positional_arguments` par défaut. Il permet des requêtes comme `SELECT ... ORDER BY 1, 2`, où 1 et 2 sont des références à la clause SELECT. Si vous devez rétablir l’ancien comportement, désactivez ce paramètre. [#38204](https://github.com/ClickHouse/ClickHouse/pull/38204) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Désactiver `format_csv_allow_single_quotes` par défaut. Voir [#37096](https://github.com/ClickHouse/ClickHouse/issues/37096). ([Kruglov Pavel](https://github.com/Avogar)).
* Le moteur de base de données `Ordinary` et l’ancienne syntaxe de définition du stockage pour les tables `*MergeTree` sont obsolètes. Par défaut, il n’est pas possible de créer de nouvelles bases de données avec le moteur `Ordinary`. Si la base de données `system` utilise le moteur `Ordinary`, elle sera automatiquement convertie en `Atomic` au démarrage du serveur. Il existe des paramètres pour conserver l’ancien comportement (`allow_deprecated_database_ordinary` et `allow_deprecated_syntax_for_merge_tree`), mais ces paramètres pourraient être supprimés dans de futures versions. [#38335](https://github.com/ClickHouse/ClickHouse/pull/38335) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Forcer par défaut la réécriture des jointures par virgule en INNER (définir la valeur par défaut `cross_to_inner_join_rewrite = 2`). Pour retrouver l’ancien comportement, définissez `cross_to_inner_join_rewrite = 1`. [#39326](https://github.com/ClickHouse/ClickHouse/pull/39326) ([Vladimir C](https://github.com/vdimir)). Si vous rencontrez des incompatibilités, vous pouvez rétablir ce paramètre.

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

* Prise en charge des expressions contenant des fonctions de fenêtre. Clôture [#19857](https://github.com/ClickHouse/ClickHouse/issues/19857). [#37848](https://github.com/ClickHouse/ClickHouse/pull/37848) ([Dmitry Novik](https://github.com/novikd)).
* Ajout d’un nouvel algorithme de jointure `direct` pour les tables `EmbeddedRocksDB`, voir [#33582](https://github.com/ClickHouse/ClickHouse/issues/33582). [#35363](https://github.com/ClickHouse/ClickHouse/pull/35363) ([Vladimir C](https://github.com/vdimir)).
* Ajout de l’algorithme de jointure `full sorting merge join`. [#35796](https://github.com/ClickHouse/ClickHouse/pull/35796) ([Vladimir C](https://github.com/vdimir)).
* Implémentation du moteur de table NATS, qui permet de publier et de s’abonner sur NATS. Clôture [#32388](https://github.com/ClickHouse/ClickHouse/issues/32388). [#37171](https://github.com/ClickHouse/ClickHouse/pull/37171) ([tchepavel](https://github.com/tchepavel)). ([Kseniia Sumarokova](https://github.com/kssenii))
* Implémentation de la fonction de table `mongodb`. Permet l’écriture dans le stockage / la fonction de table `MongoDB`. [#37213](https://github.com/ClickHouse/ClickHouse/pull/37213) ([aaapetrenko](https://github.com/aaapetrenko)). ([Kseniia Sumarokova](https://github.com/kssenii))
* Ajout du format de sortie `SQLInsert`. Clôture [#38441](https://github.com/ClickHouse/ClickHouse/issues/38441). [#38477](https://github.com/ClickHouse/ClickHouse/pull/38477) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout du paramètre `additional_table_filters`. Ce paramètre permet de spécifier une condition de filtrage supplémentaire pour une table, appliquée directement après la lecture. Exemple : `select number, x, y from (select number from system.numbers limit 5) f any left join (select x, y from table_1) s on f.number = s.x settings additional_table_filters={'system.numbers : 'number != 3', 'table_1' : 'x != 2'}`. Ajout du paramètre `additional_result_filter`, qui spécifie une condition de filtrage supplémentaire pour le résultat de la requête. Clôture [#37918](https://github.com/ClickHouse/ClickHouse/issues/37918). [#38475](https://github.com/ClickHouse/ClickHouse/pull/38475) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout du paramètre `compatibility` et de la table système `system.settings_changes`, qui contient des informations sur les modifications de paramètres entre les versions de ClickHouse. Clôture [#35972](https://github.com/ClickHouse/ClickHouse/issues/35972). [#38957](https://github.com/ClickHouse/ClickHouse/pull/38957) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout des fonctions `translate(string, from_string, to_string)` et `translateUTF8(string, from_string, to_string)`. Elles remplacent certains caractères par d’autres. [#38935](https://github.com/ClickHouse/ClickHouse/pull/38935) ([Nikolay Degterinsky](https://github.com/evillique)).
* Prise en charge de la fonction `parseTimeDelta`. Elle peut être utilisée avec ` ;-+,:` comme séparateurs, par exemple `1yr-2mo` ou `2m:6s` : `SELECT parseTimeDelta('1yr-2mo-4w + 12 days, 3 hours : 1 minute ; 33 seconds')`. [#39071](https://github.com/ClickHouse/ClickHouse/pull/39071) ([jiahui-97](https://github.com/jiahui-97)).
* Ajout de la requête `CREATE TABLE ... EMPTY AS SELECT`. Elle déduit automatiquement la structure de la table à partir de la requête SELECT, mais ne remplit pas la table après sa création. Résout [#38049](https://github.com/ClickHouse/ClickHouse/issues/38049). [#38272](https://github.com/ClickHouse/ClickHouse/pull/38272) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajout d’options pour limiter les opérations d’E/S avec le stockage distant : `max_remote_read_network_bandwidth_for_server` et `max_remote_write_network_bandwidth_for_server`. [#39095](https://github.com/ClickHouse/ClickHouse/pull/39095) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout du paramètre `group_by_use_nulls` pour rendre Nullable les colonnes clés d’agrégation dans le cas de ROLLUP, CUBE et GROUPING SETS. Clôt [#37359](https://github.com/ClickHouse/ClickHouse/issues/37359). [#38642](https://github.com/ClickHouse/ClickHouse/pull/38642) ([Dmitry Novik](https://github.com/novikd)).
* Ajout de la possibilité de spécifier le niveau de compression lors de l’export de données. [#38907](https://github.com/ClickHouse/ClickHouse/pull/38907) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout d’une option pour exiger des droits explicites afin d’exécuter SELECT sur la base de données `system`. Détails : [#38970](https://github.com/ClickHouse/ClickHouse/pull/38970) ([Vitaly Baranov](https://github.com/vitlibar)).
* Les fonctions `multiMatchAny`, `multiMatchAnyIndex`, `multiMatchAllIndices` et leurs variantes approximatives acceptent désormais un argument de tableau de motifs non constant. [#38485](https://github.com/ClickHouse/ClickHouse/pull/38485) ([Robert Schulze](https://github.com/rschu1ze)). La fonction SQL `multiSearchAllPositions` accepte désormais des arguments needle non constants. [#39167](https://github.com/ClickHouse/ClickHouse/pull/39167) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout du paramètre `zstd_window_log_max` pour configurer l’utilisation mémoire maximale lors du décodage zstd à l’import de fichiers externes. Clôt [#35693](https://github.com/ClickHouse/ClickHouse/issues/35693). [#37015](https://github.com/ClickHouse/ClickHouse/pull/37015) ([wuxiaobai24](https://github.com/wuxiaobai24)).
* Ajout du paramètre `send_logs_source_regexp`. Envoie les logs texte du server dont le nom de source correspond à l’expression régulière spécifiée. Une valeur vide signifie toutes les sources. [#39161](https://github.com/ClickHouse/ClickHouse/pull/39161) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge de `ALTER` pour les tables `Hive`. [#38214](https://github.com/ClickHouse/ClickHouse/pull/38214) ([lgbo](https://github.com/lgbo-ustc)).
* Prise en charge de la fonction `isNullable`. Cette fonction vérifie si son argument est Nullable et renvoie 1 ou 0. Clôt [#38611](https://github.com/ClickHouse/ClickHouse/issues/38611). [#38841](https://github.com/ClickHouse/ClickHouse/pull/38841) ([lokax](https://github.com/lokax)).
* Ajout de fonctions d’encodage/décodage base58. [#38159](https://github.com/ClickHouse/ClickHouse/pull/38159) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajout d’une visualisation en graphique dans l’interface Play. [#38197](https://github.com/ClickHouse/ClickHouse/pull/38197) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de fonctions de distance L2 au carré et de norme pour les arrays comme pour les tuples. [#38545](https://github.com/ClickHouse/ClickHouse/pull/38545) ([Julian Gilyadov](https://github.com/israelg99)).
* Ajout de la possibilité de transmettre des en-têtes HTTP à la table function / au stockage `url` via SQL. Clôt [#37897](https://github.com/ClickHouse/ClickHouse/issues/37897). [#38176](https://github.com/ClickHouse/ClickHouse/pull/38176) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout du binaire `clickhouse-diagnostics` aux paquets. [#38647](https://github.com/ClickHouse/ClickHouse/pull/38647) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).

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

* Ajoute le nouveau paramètre `implicit_transaction` pour exécuter des requêtes autonomes dans une transaction. Il gère automatiquement la création et la clôture de la transaction (via COMMIT si la requête a réussi, ou ROLLBACK dans le cas contraire). [#38344](https://github.com/ClickHouse/ClickHouse/pull/38344) ([Raúl Marín](https://github.com/Algunenano)).

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

* Optimisation de distinct pour les colonnes triées. Utilise une transformation distinct spécialisée lorsque le flux d’entrée est trié selon la ou les colonne(s) du distinct. L’optimisation peut s’appliquer au pré-distinct, au distinct final, ou aux deux. Implémentation initiale par @dimarub2000. [#37803](https://github.com/ClickHouse/ClickHouse/pull/37803) ([Igor Nikonov](https://github.com/devcrafter)).
* Améliore les performances de `ORDER BY`, des merges `MergeTree` et des fonctions de fenêtre grâce à la version batch de `BinaryHeap`. [#38022](https://github.com/ClickHouse/ClickHouse/pull/38022) ([Maksim Kita](https://github.com/kitaisreal)).
* Exécution plus parallèle pour les requêtes avec `FINAL` [#36396](https://github.com/ClickHouse/ClickHouse/pull/36396) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige une régression importante des performances des jointures introduite dans [#35616](https://github.com/ClickHouse/ClickHouse/pull/35616). Fait intéressant, des requêtes de jointure courantes, comme les requêtes ssb, ont été 10 fois plus lentes pendant près de 3 mois sans que personne ne s’en plaigne. [#38052](https://github.com/ClickHouse/ClickHouse/pull/38052) ([Amos Bird](https://github.com/amosbird)).
* Migration de la bibliothèque Intel hyperscan vers vectorscan, ce qui accélère de nombreuses opérations de correspondance de chaînes sur les plateformes non x86. [#38171](https://github.com/ClickHouse/ClickHouse/pull/38171) ([Robert Schulze](https://github.com/rschu1ze)).
* Parallélisme accru pour les étapes du plan de requête exécutées après l’agrégation. [#38295](https://github.com/ClickHouse/ClickHouse/pull/38295) ([Nikita Taranov](https://github.com/nickitat)).
* Améliore les performances de l’insertion dans les colonnes de type `JSON`. [#38320](https://github.com/ClickHouse/ClickHouse/pull/38320) ([Anton Popov](https://github.com/CurtizJ)).
* Optimisation de l’insertion et des recherches dans la HashTable. [#38413](https://github.com/ClickHouse/ClickHouse/pull/38413) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige la dégradation des performances provenant de [#32493](https://github.com/ClickHouse/ClickHouse/issues/32493). [#38417](https://github.com/ClickHouse/ClickHouse/pull/38417) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliore les performances des jointures sur des colonnes numériques grâce aux instructions SIMD. [#37235](https://github.com/ClickHouse/ClickHouse/pull/37235) ([zzachimed](https://github.com/zzachimed)). [#38565](https://github.com/ClickHouse/ClickHouse/pull/38565) ([Maksim Kita](https://github.com/kitaisreal)).
* Les fonctions Norm et Distance pour les arrays sont accélérées de 1,2 à 2 fois. [#38740](https://github.com/ClickHouse/ClickHouse/pull/38740) ([Alexander Gololobov](https://github.com/davenger)).
* Ajout de `copyOverlap32Shuffle` optimisé avec AVX-512 VBMI pour la décompression LZ4. Autrement dit, les performances de décompression LZ4 sont améliorées. [#37891](https://github.com/ClickHouse/ClickHouse/pull/37891) ([Guo Wangyang](https://github.com/guowangy)).
* `ORDER BY (a, b)` bénéficiera des mêmes avantages que `ORDER BY a, b`. [#38873](https://github.com/ClickHouse/ClickHouse/pull/38873) ([Igor Nikonov](https://github.com/devcrafter)).
* Aligne les branchements sur une frontière de 32B pour rendre le benchmark plus stable. [#38988](https://github.com/ClickHouse/ClickHouse/pull/38988) ([Guo Wangyang](https://github.com/guowangy)). Cela améliore les performances de 1 à 2 % en moyenne sur Intel.
* Les UDF exécutables, les dictionnaires exécutables et les tables Executable éviteront de perdre une seconde à attendre la fin d’un sous-processus. [#38929](https://github.com/ClickHouse/ClickHouse/pull/38929) ([Constantine Peresypkin](https://github.com/pkit)).
* Optimise les accès à la table `system.stack_trace` lorsque toutes les colonnes ne sont pas sélectionnées. [#39177](https://github.com/ClickHouse/ClickHouse/pull/39177) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration des performances de isNullable/isConstant/isNull/isNotNull pour l’argument LowCardinality. [#39192](https://github.com/ClickHouse/ClickHouse/pull/39192) ([Kruglov Pavel](https://github.com/Avogar)).
* Optimisation du traitement de ORDER BY dans les fonctions de fenêtre. [#34632](https://github.com/ClickHouse/ClickHouse/pull/34632) ([Vladimir Chebotarev](https://github.com/excitoon)).
* La table `system.asynchronous_metric_log` a été encore optimisée pour réduire l’espace de stockage. Corrige [#38134](https://github.com/ClickHouse/ClickHouse/issues/38134). Voir la [vidéo YouTube](https://www.youtube.com/watch?v=0fSp9SF8N8A). [#38428](https://github.com/ClickHouse/ClickHouse/pull/38428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Prise en charge de la syntaxe SQL standard CREATE INDEX et DROP INDEX. [#35166](https://github.com/ClickHouse/ClickHouse/pull/35166) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Envoi des profile events pour les requêtes INSERT (auparavant, seul SELECT était pris en charge). [#37391](https://github.com/ClickHouse/ClickHouse/pull/37391) ([Azat Khuzhin](https://github.com/azat)).
* Implémentation de l’agrégation In order (`optimize_aggregation_in_order`) pour les projections entièrement matérialisées. [#37469](https://github.com/ClickHouse/ClickHouse/pull/37469) ([Azat Khuzhin](https://github.com/azat)).
* Suppression de l’utilisation de subprocess.run pour l’initialisation de Kerberos. Ajout d’un nouveau test d’intégration. Résout [#27651](https://github.com/ClickHouse/ClickHouse/issues/27651). [#38105](https://github.com/ClickHouse/ClickHouse/pull/38105) ([Roman Vasin](https://github.com/rvasin)).
* * Ajout du paramètre `multiple_joins_try_to_keep_original_names` pour éviter de réécrire le nom de l’identifiant lors de la réécriture de plusieurs JOIN, clôture de l’issue [#34697](https://github.com/ClickHouse/ClickHouse/issues/34697). [#38149](https://github.com/ClickHouse/ClickHouse/pull/38149) ([Vladimir C](https://github.com/vdimir)).
* Expérience utilisateur améliorée pour le visualiseur de traces. [#38169](https://github.com/ClickHouse/ClickHouse/pull/38169) ([Sergei Trifonov](https://github.com/serxa)).
* Active la collecte des traces de pile et le profiler de requêtes pour AArch64. [#38181](https://github.com/ClickHouse/ClickHouse/pull/38181) ([Maksim Kita](https://github.com/kitaisreal)).
* Ne plus ignorer les liens symboliques dans le répertoire `user_defined` lors du chargement des fonctions SQL définies par l’utilisateur. Corrige [#38042](https://github.com/ClickHouse/ClickHouse/issues/38042). [#38184](https://github.com/ClickHouse/ClickHouse/pull/38184) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajoute le nettoyage en arrière-plan des sous-répertoires dans `store/`. Dans certains cas, clickhouse-server pouvait laisser des sous-répertoires parasites dans `store/` (par exemple après un échec de création de table), et ces répertoires n’étaient jamais supprimés. Corrige [#33710](https://github.com/ClickHouse/ClickHouse/issues/33710). [#38265](https://github.com/ClickHouse/ClickHouse/pull/38265) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajoute la requête `DESCRIBE CACHE` pour afficher les paramètres du cache issus de la config. Ajoute la requête `SHOW CACHES` pour afficher la liste des caches du système de fichiers disponibles. [#38279](https://github.com/ClickHouse/ClickHouse/pull/38279) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute une vérification des droits d’accès pour `system drop filesystem cache`. Prend en charge ON CLUSTER. [#38319](https://github.com/ClickHouse/ClickHouse/pull/38319) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige l’incompatibilité du moteur de base de données PostgreSQL lors d’une mise à niveau de 21.3 vers 22.3. Corrige [#36659](https://github.com/ClickHouse/ClickHouse/issues/36659). [#38369](https://github.com/ClickHouse/ClickHouse/pull/38369) ([Kseniia Sumarokova](https://github.com/kssenii)).
* `filesystemAvailable` et des fonctions similaires fonctionnent désormais dans `clickhouse-local`. Corrige [#38423](https://github.com/ClickHouse/ClickHouse/issues/38423). [#38424](https://github.com/ClickHouse/ClickHouse/pull/38424) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute la fonction `revision`. [#38555](https://github.com/ClickHouse/ClickHouse/pull/38555) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l’utilisation de GCS via un tunnel proxy. [#38726](https://github.com/ClickHouse/ClickHouse/pull/38726) ([Azat Khuzhin](https://github.com/azat)).
* Prend en charge `\i file` dans clickhouse client / local (comme `\i` dans psql). [#38813](https://github.com/ClickHouse/ClickHouse/pull/38813) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Nouvelle option `optimize = 1` dans `EXPLAIN AST`. Lorsqu’elle est activée, elle affiche l’AST après réécriture, sinon l’AST de la requête d’origine. Désactivée par défaut. [#38910](https://github.com/ClickHouse/ClickHouse/pull/38910) ([Igor Nikonov](https://github.com/devcrafter)).
* Autorise une virgule finale dans la liste des colonnes. Corrige [#38425](https://github.com/ClickHouse/ClickHouse/issues/38425). [#38440](https://github.com/ClickHouse/ClickHouse/pull/38440) ([chen](https://github.com/xiedeyantu)).
* Corrections de bugs et améliorations des performances pour la méthode JOIN `parallel_hash`. [#37648](https://github.com/ClickHouse/ClickHouse/pull/37648) ([Vladimir C](https://github.com/vdimir)).
* Prend en charge le transfert RPC sécurisé de Hadoop (hadoop.rpc.protection=privacy et hadoop.rpc.protection=integrity). [#37852](https://github.com/ClickHouse/ClickHouse/pull/37852) ([Peng Liu](https://github.com/michael1589)).
* Ajoute la prise en charge du type `struct` dans `StorageHive`. [#38118](https://github.com/ClickHouse/ClickHouse/pull/38118) ([lgbo](https://github.com/lgbo-ustc)).
* Les objets S3 individuels sont désormais supprimés avec `RemoveObjectRequest`. Compatibilité ajoutée avec GCP, qui ne permettait pas d’utiliser `removeFileIfExists`, ce qui cassait en pratique environ la moitié de la fonctionnalité de `remove`. Détection automatique de l’API S3 `DeleteObjects`, non prise en charge par GCS. Cela permettra d’utiliser GCS sans définir explicitement `support_batch_delete=0` dans la configuration. [#37882](https://github.com/ClickHouse/ClickHouse/pull/37882) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Expose les données de monitoring de base liées à ClickHouse Keeper (via ProfileEvents et CurrentMetrics). [#38072](https://github.com/ClickHouse/ClickHouse/pull/38072) ([lingpeng0314](https://github.com/lingpeng0314)).
* Prise en charge de l’option `auto_close` pour la connexion du moteur PostgreSQL. Résout [#31486](https://github.com/ClickHouse/ClickHouse/issues/31486). [#38363](https://github.com/ClickHouse/ClickHouse/pull/38363) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Autorise le modificateur `NULL` dans la déclaration des colonnes pour les fonctions de table. [#38816](https://github.com/ClickHouse/ClickHouse/pull/38816) ([Kruglov Pavel](https://github.com/Avogar)).
* Désactive `mutations_finalizing_task` avant l’arrêt afin d’éviter les erreurs bénignes `TABLE_IS_READ_ONLY` pendant l’arrêt. [#38851](https://github.com/ClickHouse/ClickHouse/pull/38851) ([Raúl Marín](https://github.com/Algunenano)).
* Élimine l’attente inutile des requêtes SELECT après les requêtes ALTER, en présence de requêtes INSERT, si vous utilisez les bases de données Ordinary obsolètes. [#38864](https://github.com/ClickHouse/ClickHouse/pull/38864) ([Azat Khuzhin](https://github.com/azat)).
* Nouvelle option `rewrite` dans `EXPLAIN AST`. Si elle est activée, elle affiche l’AST après réécriture, sinon l’AST de la requête d’origine. Désactivée par défaut. [#38910](https://github.com/ClickHouse/ClickHouse/pull/38910) ([Igor Nikonov](https://github.com/devcrafter)).
* Ne signale plus les exceptions Zookeeper "Node exists" dans system.errors lorsqu’elles sont attendues. [#38961](https://github.com/ClickHouse/ClickHouse/pull/38961) ([Raúl Marín](https://github.com/Algunenano)).
* `clickhouse-keeper` : ajoute la prise en charge du calcul et de la vérification d’empreinte en temps réel. Cette fonctionnalité est désactivée par défaut. [#37555](https://github.com/ClickHouse/ClickHouse/pull/37555) ([Antonio Andelic](https://github.com/antonio2368)).
* Autorise la spécification de globs `* or {expr1, expr2, expr3}` à l’intérieur d’une clé pour l’outil `clickhouse-extract-from-config`. [#38966](https://github.com/ClickHouse/ClickHouse/pull/38966) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* clearOldLogs : ne signale pas KEEPER\_EXCEPTION lors de suppressions concurrentes. [#39016](https://github.com/ClickHouse/ClickHouse/pull/39016) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration de clickhouse-keeper : conserve sur disque les métadonnées concernant les serveurs Keeper. [#39069](https://github.com/ClickHouse/ClickHouse/pull/39069) ([Antonio Andelic](https://github.com/antonio2368)). Cela facilitera l’exploitation si vous arrêtez ou redémarrez tous les nœuds Keeper en même temps.
* Continue sans lever d’exception lorsqu’il n’y a plus d’espace disque lors de l’utilisation du cache du système de fichiers. [#39106](https://github.com/ClickHouse/ClickHouse/pull/39106) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Gestion des signaux SIGTERM de k8s. [#39130](https://github.com/ClickHouse/ClickHouse/pull/39130) ([Timur Solodovnikov](https://github.com/tsolodov)).
* Ajoute la colonne `merge_algorithm` (Undecided, Horizontal, Vertical) à system.part\_log. [#39181](https://github.com/ClickHouse/ClickHouse/pull/39181) ([Azat Khuzhin](https://github.com/azat)).
* Ne pas incrémenter un compteur dans `system.errors` lorsque le disque n’est pas rotatif. [#39216](https://github.com/ClickHouse/ClickHouse/pull/39216) ([Raúl Marín](https://github.com/Algunenano)).
* La métrique `result_bytes` pour les requêtes `INSERT` dans `system.query_log` affiche désormais le nombre d’octets insérés. Auparavant, sa valeur était incorrecte et identique à celle de `result_rows`. [#39225](https://github.com/ClickHouse/ClickHouse/pull/39225) ([Ilya Yatsishin](https://github.com/qoega)).
* La métrique d’utilisation du CPU dans clickhouse-client sera affichée de manière plus claire. Corrige [#38756](https://github.com/ClickHouse/ClickHouse/issues/38756). [#39280](https://github.com/ClickHouse/ClickHouse/pull/39280) ([Sergei Trifonov](https://github.com/serxa)).
* Relancer l’exception lors de l’initialisation du filesystem cache au démarrage du serveur, avec un message d’erreur plus explicite. [#39386](https://github.com/ClickHouse/ClickHouse/pull/39386) ([Kseniia Sumarokova](https://github.com/kssenii)).
* OpenTelemetry collecte désormais les traces sans les spans Processors par défaut (ils sont trop nombreux). Pour activer la collecte des spans Processors, utilisez le paramètre `opentelemetry_trace_processors`. [#39170](https://github.com/ClickHouse/ClickHouse/pull/39170) ([Ilya Yatsishin](https://github.com/qoega)).
* Fonctions `multiMatch[Fuzzy](AllIndices/Any/AnyIndex)` : ne pas lever d’erreur logique si l’argument `needle` est vide. [#39012](https://github.com/ClickHouse/ClickHouse/pull/39012) ([Robert Schulze](https://github.com/rschu1ze)).
* Autoriser la déclaration d’une queue `RabbitMQ` sans les arguments par défaut `x-max-length` et `x-overflow`. [#39259](https://github.com/ClickHouse/ClickHouse/pull/39259) ([rnbondarenko](https://github.com/rnbondarenko)).

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

* Application des annotations Clang Thread Safety Analysis (TSA) à ClickHouse. [#38068](https://github.com/ClickHouse/ClickHouse/pull/38068) ([Robert Schulze](https://github.com/rschu1ze)).
* Adaptation du script d’installation universel pour FreeBSD. [#39302](https://github.com/ClickHouse/ClickHouse/pull/39302) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Préparation de la compilation sur la plateforme `s390x`. [#39193](https://github.com/ClickHouse/ClickHouse/pull/39193) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Correction d’un bug dans la bibliothèque `jemalloc`. [#38757](https://github.com/ClickHouse/ClickHouse/pull/38757) ([Azat Khuzhin](https://github.com/azat)).
* Le benchmark matériel prend désormais en charge le téléversement automatique des résultats. [#38427](https://github.com/ClickHouse/ClickHouse/pull/38427) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La table système "system.licenses" est désormais correctement alimentée sur Mac (Darwin). [#38294](https://github.com/ClickHouse/ClickHouse/pull/38294) ([Robert Schulze](https://github.com/rschu1ze)).
* Passage des paquets `all|noarch` à des paquets dépendants de l’architecture - Correction de la documentation à ce sujet - Publication des paquets aarch64|arm64 dans l’artifactory et parmi les artefacts de release - Corrige [#36443](https://github.com/ClickHouse/ClickHouse/issues/36443). [#38580](https://github.com/ClickHouse/ClickHouse/pull/38580) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).

<div id="bug-fix-user-visible-misbehavior-in-official-stable-or-prestable-release-3">
  #### Correction de bug (dysfonctionnement visible par l’utilisateur dans une version stable ou préstable officielle)
</div>

* Corrige l’arrondi pour `Decimal128/Decimal256` avec une échelle de plus de 19 chiffres. [#38027](https://github.com/ClickHouse/ClickHouse/pull/38027) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige un plantage causé par une data race dans le moteur de table `Hive` (intégration). [#38887](https://github.com/ClickHouse/ClickHouse/pull/38887) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige un plantage lors de l’exécution de GRANT ALL ON *.* avec ON CLUSTER. Le problème a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/35767](https://github.com/ClickHouse/ClickHouse/pull/35767). Cela clôt [#38618](https://github.com/ClickHouse/ClickHouse/issues/38618). [#38674](https://github.com/ClickHouse/ClickHouse/pull/38674) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige l’expansion des motifs glob dans le cas des formes `{0..10}`. Corrige [#38498](https://github.com/ClickHouse/ClickHouse/issues/38498). L’implémentation actuelle est similaire à ce que fait le shell, comme l’a mentionné @rschu1ze [ici](https://github.com/ClickHouse/ClickHouse/pull/38502#issuecomment-1169057723). [#38502](https://github.com/ClickHouse/ClickHouse/pull/38502) ([Heena Bansal](https://github.com/HeenaBansal2009)).
* Corrige un plantage des fonctions `mapUpdate`, `mapFilter` lors de l’utilisation d’un argument map constant. Clôt [#38547](https://github.com/ClickHouse/ClickHouse/issues/38547). [#38553](https://github.com/ClickHouse/ClickHouse/pull/38553) ([hexiaoting](https://github.com/hexiaoting)).
* Corrige les informations de monotonie de `toHour` pour l’optimisation des requêtes, ce qui pouvait entraîner un résultat de requête incorrect (analyse d’index incorrecte). Cela corrige [#38333](https://github.com/ClickHouse/ClickHouse/issues/38333). [#38675](https://github.com/ClickHouse/ClickHouse/pull/38675) ([Amos Bird](https://github.com/amosbird)).
* Corrige la vérification de la prise en charge des écritures parallèles par le stockage S3. Cela empêchait le fonctionnement des écritures parallèles vers S3. [#38792](https://github.com/ClickHouse/ClickHouse/pull/38792) ([chen](https://github.com/xiedeyantu)).
* Corrige les lectures S3 avec seek et tampon de lecture parallèle. (Cela affectait l’utilisation de la mémoire pendant les requêtes.) Clôt [#38258](https://github.com/ClickHouse/ClickHouse/issues/38258). [#38802](https://github.com/ClickHouse/ClickHouse/pull/38802) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Met à jour `simdjson`. Cela corrige [#38621](https://github.com/ClickHouse/ClickHouse/issues/38621) - un débordement de tampon sur les machines équipées des derniers CPU Intel avec AVX-512 VBMI. [#38838](https://github.com/ClickHouse/ClickHouse/pull/38838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige une possible erreur logique dans les vertical merges. [#38859](https://github.com/ClickHouse/ClickHouse/pull/38859) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige le profil de paramètres avec une unité en secondes. [#38896](https://github.com/ClickHouse/ClickHouse/pull/38896) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un partition pruning incorrect lorsqu’il y a une clé de partition Nullable. Remarque : vous n’utilisez très probablement pas de clés de partition Nullable ; c’est une fonctionnalité obscure que vous ne devriez pas utiliser. Les clés Nullable n’ont pas vraiment de sens, et cette fonctionnalité n’est nécessaire que pour quelques cas d’usage farfelus. Cela corrige [#38941](https://github.com/ClickHouse/ClickHouse/issues/38941). [#38946](https://github.com/ClickHouse/ClickHouse/pull/38946) ([Amos Bird](https://github.com/amosbird)).
* Améliore `fsync_part_directory` pour les fetches. [#38993](https://github.com/ClickHouse/ClickHouse/pull/38993) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un possible interblocage dans `OvercommitTracker`. Corrige [#37794](https://github.com/ClickHouse/ClickHouse/issues/37794). [#39030](https://github.com/ClickHouse/ClickHouse/pull/39030) ([Dmitry Novik](https://github.com/novikd)).
* Correction d’un bug dans le cache du système de fichiers qui pouvait survenir dans certains cas limites, lorsque la capacité du cache atteignait sa limite. Closes [#39066](https://github.com/ClickHouse/ClickHouse/issues/39066). [#39070](https://github.com/ClickHouse/ClickHouse/pull/39070) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de certains cas limites dans l’interprétation des arguments des expressions de fenêtre. Corrige [#38538](https://github.com/ClickHouse/ClickHouse/issues/38538). Autorise l’utilisation de fonctions d’ordre supérieur dans les expressions de fenêtre. [#39112](https://github.com/ClickHouse/ClickHouse/pull/39112) ([Dmitry Novik](https://github.com/novikd)).
* Conservation du type `LowCardinality` dans la fonction `tuple`. Auparavant, le type `LowCardinality` était supprimé et les éléments du tuple créé prenaient le type sous-jacent de `LowCardinality`. [#39113](https://github.com/ClickHouse/ClickHouse/pull/39113) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’erreur `Block structure mismatch` qui pouvait survenir lors d’un INSERT dans une table avec une MATERIALIZED VIEW attachée et le paramètre `extremes = 1` activé. Closes [#29759](https://github.com/ClickHouse/ClickHouse/issues/29759) and [#38729](https://github.com/ClickHouse/ClickHouse/issues/38729). [#39125](https://github.com/ClickHouse/ClickHouse/pull/39125) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un résultat de requête inattendu lorsque `optimize_trivial_count_query` et `empty_result_for_aggregation_by_empty_set` sont tous deux définis sur true. Ceci corrige [#39140](https://github.com/ClickHouse/ClickHouse/issues/39140). [#39155](https://github.com/ClickHouse/ClickHouse/pull/39155) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’erreur `Not found column Type in block` dans les requêtes SELECT avec `PREWHERE` et les optimisations de lecture dans l’ordre. [#39157](https://github.com/ClickHouse/ClickHouse/pull/39157) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction d’une condition de concurrence extrêmement rare lors de la création de liens physiques sur un système de fichiers distant. La seule façon de la reproduire est d’exécuter des sauvegardes de manière concurrente. [#39190](https://github.com/ClickHouse/ClickHouse/pull/39190) ([alesapin](https://github.com/alesapin)).
* (zero-copy replication est une fonctionnalité expérimentale qui ne doit pas être utilisée en production) Correction de la récupération d’une part en mémoire avec `allow_remote_fs_zero_copy_replication`. [#39214](https://github.com/ClickHouse/ClickHouse/pull/39214) ([Azat Khuzhin](https://github.com/azat)).
* (MaterializedPostgreSQL - fonctionnalité expérimentale). Correction d’une erreur de segmentation dans le moteur de base de données MaterializedPostgreSQL, qui pouvait survenir si une exception se produisait lors de l’initialisation de la réplication. Closes [#36939](https://github.com/ClickHouse/ClickHouse/issues/36939). [#39272](https://github.com/ClickHouse/ClickHouse/pull/39272) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une récupération incorrecte des métadonnées de table depuis le moteur de base de données PostgreSQL. Closes [#33502](https://github.com/ClickHouse/ClickHouse/issues/33502). [#39283](https://github.com/ClickHouse/ClickHouse/pull/39283) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une exception de projection lorsque les clés d’agrégation sont encapsulées dans d’autres fonctions. Ceci corrige [#37151](https://github.com/ClickHouse/ClickHouse/issues/37151). [#37155](https://github.com/ClickHouse/ClickHouse/pull/37155) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une erreur logique possible `... with argument with type Nothing and default implementation for Nothing is expected to return result with type Nothing, got ...` dans certaines fonctions. Closes: [#37610](https://github.com/ClickHouse/ClickHouse/issues/37610) Closes: [#37741](https://github.com/ClickHouse/ClickHouse/issues/37741). [#37759](https://github.com/ClickHouse/ClickHouse/pull/37759) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l’ordre incorrect des colonnes dans les sous-requêtes de UNION (en cas de colonnes dupliquées dans les sous-requêtes, cela peut produire un résultat incorrect). [#37887](https://github.com/ClickHouse/ClickHouse/pull/37887) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le comportement incorrect de MODIFY ALTER Column avec des noms de colonnes contenant des points. Clôt [#37907](https://github.com/ClickHouse/ClickHouse/issues/37907). [#37971](https://github.com/ClickHouse/ClickHouse/pull/37971) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la lecture des colonnes éparses depuis des tables `MergeTree` qui stockent leurs données dans S3. [#37978](https://github.com/ClickHouse/ClickHouse/pull/37978) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un crash possible dans `Distributed` async insert en cas de suppression d’une replica de la config. [#38029](https://github.com/ClickHouse/ClickHouse/pull/38029) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige « Missing columns » pour GLOBAL JOIN avec CTE sans alias. [#38056](https://github.com/ClickHouse/ClickHouse/pull/38056) ([Azat Khuzhin](https://github.com/azat)).
* Réécrit les fonctions tuple sous forme de littéraux en mode de rétrocompatibilité. [#38096](https://github.com/ClickHouse/ClickHouse/pull/38096) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Corrige la réservation mémoire redondante pour le bloc de sortie pendant `ORDER BY`. [#38127](https://github.com/ClickHouse/ClickHouse/pull/38127) ([iyupeng](https://github.com/iyupeng)).
* Corrige une erreur logique possible `Bad cast from type DB::IColumn* to DB::ColumnNullable*` dans les fonctions de mapping de tableaux. Clôt [#38006](https://github.com/ClickHouse/ClickHouse/issues/38006). [#38132](https://github.com/ClickHouse/ClickHouse/pull/38132) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un conflit temporaire de noms dans partial merge join. Clôt [#37928](https://github.com/ClickHouse/ClickHouse/issues/37928). [#38135](https://github.com/ClickHouse/ClickHouse/pull/38135) ([Vladimir C](https://github.com/vdimir)).
* Corrige un problème mineur avec des requêtes comme `CREATE TABLE nested_name_tuples (`a` Tuple(x String, y Tuple(i Int32, j String))) ENGINE = Memory;` [#38136](https://github.com/ClickHouse/ClickHouse/pull/38136) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige un bug avec des fonctions imbriquées à court-circuit qui entraînait l’exécution des arguments même si la condition était fausse. Clôt [#38040](https://github.com/ClickHouse/ClickHouse/issues/38040). [#38173](https://github.com/ClickHouse/ClickHouse/pull/38173) ([Kruglov Pavel](https://github.com/Avogar)).
* (Window View est une fonctionnalité expérimentale) Corrige LOGICAL\_ERROR pour WINDOW VIEW avec une structure incorrecte. [#38205](https://github.com/ClickHouse/ClickHouse/pull/38205) ([Azat Khuzhin](https://github.com/azat)).
* Met à jour le sous-module librdkafka pour corriger un crash lorsqu’un callback de refresh OAUTHBEARER est défini. [#38225](https://github.com/ClickHouse/ClickHouse/pull/38225) ([Rafael Acevedo](https://github.com/racevedoo)).
* Corrige le blocage de INSERT dans Distributed dû à ProfileEvents. [#38307](https://github.com/ClickHouse/ClickHouse/pull/38307) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les nouvelles tentatives dans le moteur PostgreSQL. [#38310](https://github.com/ClickHouse/ClickHouse/pull/38310) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige une optimisation dans PartialSortingTransform (SIGSEGV et résultat incorrect possible). [#38324](https://github.com/ClickHouse/ClickHouse/pull/38324) ([Azat Khuzhin](https://github.com/azat)).
* Correction de RabbitMQ avec les formats basés sur PeekableReadBuffer. Clôt [#38061](https://github.com/ClickHouse/ClickHouse/issues/38061). [#38356](https://github.com/ClickHouse/ClickHouse/pull/38356) ([Kseniia Sumarokova](https://github.com/kssenii)).
* MaterializedPostgreSQL - fonctionnalité expérimentale. Correction d'un possible `Invalid number of rows in Chunk` dans MaterializedPostgreSQL. Clôt [#37323](https://github.com/ClickHouse/ClickHouse/issues/37323). [#38360](https://github.com/ClickHouse/ClickHouse/pull/38360) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la configuration RabbitMQ avec le paramètre de chaîne de connexion. Clôt [#36531](https://github.com/ClickHouse/ClickHouse/issues/36531). [#38365](https://github.com/ClickHouse/ClickHouse/pull/38365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction du moteur PostgreSQL, qui n'utilisait pas le schéma PostgreSQL lors de la récupération de la taille de dimension d'un tableau. Clôt [#36755](https://github.com/ClickHouse/ClickHouse/issues/36755). Clôt [#36772](https://github.com/ClickHouse/ClickHouse/issues/36772). [#38366](https://github.com/ClickHouse/ClickHouse/pull/38366) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'un résultat potentiellement incorrect des requêtes distribuées avec `DISTINCT` et `LIMIT`. Corrige [#38282](https://github.com/ClickHouse/ClickHouse/issues/38282). [#38371](https://github.com/ClickHouse/ClickHouse/pull/38371) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de résultats erronés de countSubstrings() & position() sur des motifs contenant des octets nuls. [#38589](https://github.com/ClickHouse/ClickHouse/pull/38589) ([Robert Schulze](https://github.com/rschu1ze)).
* Il est désormais possible de démarrer un clickhouse-server et d'attacher/détacher des tables, même lorsque celles-ci contiennent des valeurs incorrectes dans la représentation IPv4/IPv6. Correction adéquate du problème [#35156](https://github.com/ClickHouse/ClickHouse/issues/35156). [#38590](https://github.com/ClickHouse/ClickHouse/pull/38590) ([alesapin](https://github.com/alesapin)).
* La fonction `rankCorr` fonctionnera correctement si certains arguments sont des NaN. Cela clôt [#38396](https://github.com/ClickHouse/ClickHouse/issues/38396). [#38722](https://github.com/ClickHouse/ClickHouse/pull/38722) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de `parallel_view_processing=1` avec `optimize_trivial_insert_select=1`. Correction de `max_insert_threads` lors de l'alimentation des vues. [#38731](https://github.com/ClickHouse/ClickHouse/pull/38731) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un use-after-free dans les fonctions d'agrégation avec le combinateur `Map`, qui entraînait un résultat incorrect. [#38748](https://github.com/ClickHouse/ClickHouse/pull/38748) ([Azat Khuzhin](https://github.com/azat)).

### <a id="226" /> Release ClickHouse 22.6, 2022-06-16. [Présentation](https://presentations.clickhouse.com/2022-release-22.6/), [Vidéo](https://www.youtube.com/watch?v=0fSp9SF8N8A)

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

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

* Suppression de la prise en charge des littéraux numériques octaux en SQL. Dans les versions précédentes, ils étaient interprétés comme des Float64. [#37765](https://github.com/ClickHouse/ClickHouse/pull/37765) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Modification de l’analyse des paramètres utilisant `seconds` comme type afin de prendre en charge les valeurs à virgule flottante (par exemple : `max_execution_time=0.5`). Les valeurs Infinity ou NaN déclencheront une exception. [#37187](https://github.com/ClickHouse/ClickHouse/pull/37187) ([Raúl Marín](https://github.com/Algunenano)).
* Modification du format de sérialisation binaire des colonnes de type expérimental `Object`. Le nouveau format est plus simple à implémenter pour les clients tiers. [#37482](https://github.com/ClickHouse/ClickHouse/pull/37482) ([Anton Popov](https://github.com/CurtizJ)).
* Activation par défaut du paramètre `output_format_json_named_tuples_as_objects`. Il permet de sérialiser les tuples nommés en objets JSON dans les formats JSON. [#37756](https://github.com/ClickHouse/ClickHouse/pull/37756) ([Anton Popov](https://github.com/CurtizJ)).
* Les motifs LIKE se terminant par un caractère d’échappement ('\\') sont désormais interdits (comme l’impose la norme SQL). [#37764](https://github.com/ClickHouse/ClickHouse/pull/37764) ([Robert Schulze](https://github.com/rschu1ze)).
* Si vous exécutez différentes versions de ClickHouse sur un cluster avec des CPU AArch64, ou si vous mélangez AArch64 et amd64 dans un cluster, et que vous utilisez des requêtes distribuées avec GROUP BY sur plusieurs clés de type à taille fixe tenant sur 256 bits mais pas sur 64 bits, alors si la taille du résultat est très importante, les données ne seront pas entièrement agrégées dans le résultat de ces requêtes pendant la mise à niveau. Solution de contournement : effectuez la mise à niveau avec interruption de service plutôt que via une mise à niveau progressive.

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

* Ajout de la fonction `GROUPING`. Elle permet de lever l’ambiguïté sur les enregistrements dans les requêtes avec `ROLLUP`, `CUBE` ou `GROUPING SETS`. Closes [#19426](https://github.com/ClickHouse/ClickHouse/issues/19426). [#37163](https://github.com/ClickHouse/ClickHouse/pull/37163) ([Dmitry Novik](https://github.com/novikd)).
* Un nouvel algorithme de codec [FPC](https://userweb.cs.txstate.edu/~burtscher/papers/dcc07a.pdf) pour la compression des données à virgule flottante. [#37553](https://github.com/ClickHouse/ClickHouse/pull/37553) ([Mikhail Guzov](https://github.com/koloshmet)).
* Ajout de nouveaux formats JSON colonnaires : `JSONColumns`, `JSONCompactColumns`, `JSONColumnsWithMetadata`. Closes [#36338](https://github.com/ClickHouse/ClickHouse/issues/36338) Closes [#34509](https://github.com/ClickHouse/ClickHouse/issues/34509). [#36975](https://github.com/ClickHouse/ClickHouse/pull/36975) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d’un outil de visualisation des traces OpenTelemetry basé sur d3js. [#37810](https://github.com/ClickHouse/ClickHouse/pull/37810) ([Sergei Trifonov](https://github.com/serxa)).
* Prise en charge des INSERT dans la table `system.zookeeper`. Closes [#22130](https://github.com/ClickHouse/ClickHouse/issues/22130). [#37596](https://github.com/ClickHouse/ClickHouse/pull/37596) ([Han Fei](https://github.com/hanfei1991)).
* Prise en charge d’un argument de motif non constant pour les fonctions `LIKE`, `ILIKE` et `match`. [#37251](https://github.com/ClickHouse/ClickHouse/pull/37251) ([Robert Schulze](https://github.com/rschu1ze)).
* Les fonctions définies par l’utilisateur exécutables prennent désormais en charge les paramètres. Example: `SELECT test_function(parameters)(arguments)`. Closes [#37578](https://github.com/ClickHouse/ClickHouse/issues/37578). [#37720](https://github.com/ClickHouse/ClickHouse/pull/37720) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la colonne `merge_reason` à la table `system.part&#95;log`. [#36912](https://github.com/ClickHouse/ClickHouse/pull/36912) ([Sema Checherinda](https://github.com/CheSema)).
* Ajout de la prise en charge des Maps et des Records dans le format Avro. Ajout du nouveau paramètre `input_format_avro_null_as_default `, qui permet d’insérer une valeur null par défaut au format Avro. Closes [#18925](https://github.com/ClickHouse/ClickHouse/issues/18925) Closes [#37378](https://github.com/ClickHouse/ClickHouse/issues/37378) Closes [#32899](https://github.com/ClickHouse/ClickHouse/issues/32899). [#37525](https://github.com/ClickHouse/ClickHouse/pull/37525) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de l’outil `clickhouse-disks` pour inspecter et exploiter les systèmes de fichiers virtuels configurés pour ClickHouse. [#36060](https://github.com/ClickHouse/ClickHouse/pull/36060) ([Artyom Yurkov](https://github.com/Varinara)).
* Ajout des fonctions H3 d’arêtes unidirectionnelles. [#36843](https://github.com/ClickHouse/ClickHouse/pull/36843) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la prise en charge du calcul de [hashids](https://hashids.org/) à partir d’entiers non signés. [#37013](https://github.com/ClickHouse/ClickHouse/pull/37013) ([Michael Nutt](https://github.com/mnutt)).
* Une spécification `SALT` explicite est autorisée pour `CREATE USER <user> IDENTIFIED WITH sha256_hash`. [#37377](https://github.com/ClickHouse/ClickHouse/pull/37377) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout de deux nouveaux paramètres `input_format_csv_skip_first_lines/input_format_tsv_skip_first_lines` pour permettre d’ignorer un nombre spécifié de lignes au début du fichier dans les formats CSV/TSV. [#37537](https://github.com/ClickHouse/ClickHouse/pull/37537) ([Kruglov Pavel](https://github.com/Avogar)).
* La fonction `showCertificate` affiche le certificat SSL actuel du serveur. [#37540](https://github.com/ClickHouse/ClickHouse/pull/37540) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* La source HTTP pour les dictionnaires de données dans les collections nommées est désormais prise en charge. [#37581](https://github.com/ClickHouse/ClickHouse/pull/37581) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout d'une nouvelle fonction de fenêtre `nonNegativeDerivative(metric_column, timestamp_column[, INTERVAL x SECOND])`. [#37628](https://github.com/ClickHouse/ClickHouse/pull/37628) ([Andrey Zvonov](https://github.com/zvonand)).
* Implémentation de la modification du commentaire des tables `ReplicatedMergeTree`. [#37416](https://github.com/ClickHouse/ClickHouse/pull/37416) ([Vasily Nemkov](https://github.com/Enmk)).
* Ajout de la requête `SYSTEM UNFREEZE`, qui supprime l'intégralité de la sauvegarde, que la table correspondante ait été supprimée ou non. [#36424](https://github.com/ClickHouse/ClickHouse/pull/36424) ([Vadim Volodin](https://github.com/PolyProgrammist)).

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

* Prise en charge de `POPULATE` pour `WINDOW VIEW`. [#36945](https://github.com/ClickHouse/ClickHouse/pull/36945) ([vxider](https://github.com/Vxider)).
* Prise en charge de `ALTER TABLE ... MODIFY QUERY` pour `WINDOW VIEW`. [#37188](https://github.com/ClickHouse/ClickHouse/pull/37188) ([vxider](https://github.com/Vxider)).
* Cette PR modifie le comportement de la syntaxe `ENGINE` dans `WINDOW VIEW` pour l'aligner sur celui de `MATERIALIZED VIEW`. [#37214](https://github.com/ClickHouse/ClickHouse/pull/37214) ([vxider](https://github.com/Vxider)).

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

* Ajout de nombreuses optimisations pour ARM NEON [#38093](https://github.com/ClickHouse/ClickHouse/pull/38093)([Daniel Kutenin](https://github.com/danlark1)), ([Alexandra Pilipyuk](https://github.com/chalice19)) Remarque : si vous exécutez différentes versions de ClickHouse sur un cluster doté de processeurs ARM et utilisez des requêtes distribuées avec GROUP BY sur plusieurs clés de type à taille fixe tenant sur 256 bits mais pas sur 64 bits, le résultat de la requête d’agrégation sera erroné pendant la mise à niveau. Solution de contournement : effectuez la mise à niveau avec interruption de service plutôt que via une mise à niveau progressive.
* Amélioration des performances et de l’utilisation mémoire pour la sélection d’un sous-ensemble de colonnes avec les formats Native, Protobuf, CapnProto, JSONEachRow, TSKV, ainsi que tous les formats avec les suffixes WithNames/WithNamesAndTypes. Auparavant, lors de la sélection d’un sous-ensemble de colonnes à partir de fichiers dans ces formats, toutes les colonnes étaient lues et stockées en mémoire. Désormais, seules les colonnes requises sont lues. Cette PR active le paramètre `input_format_skip_unknown_fields` par défaut, car sinon, en cas de sélection d’un sous-ensemble de colonnes, une exception serait levée. [#37192](https://github.com/ClickHouse/ClickHouse/pull/37192) ([Kruglov Pavel](https://github.com/Avogar)).
* Désormais, davantage de filtres peuvent être poussés au niveau du join. [#37472](https://github.com/ClickHouse/ClickHouse/pull/37472) ([Amos Bird](https://github.com/amosbird)).
* Chargement des marks uniquement pour les colonnes nécessaires lors de la lecture des wide parts. [#36879](https://github.com/ClickHouse/ClickHouse/pull/36879) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Amélioration des performances de l’agrégation lorsque des colonnes sparse (activables via le paramètre Experimental `ratio_of_defaults_for_sparse_serialization` dans les tables `MergeTree`) sont utilisées comme arguments dans des fonctions d’agrégation. [#37617](https://github.com/ClickHouse/ClickHouse/pull/37617) ([Anton Popov](https://github.com/CurtizJ)).
* Optimisation de la fonction `COALESCE` à deux arguments. [#37666](https://github.com/ClickHouse/ClickHouse/pull/37666) ([Anton Popov](https://github.com/CurtizJ)).
* Remplacement de `multiIf` par `if` lorsque `multiIf` n’a qu’une seule condition, car la fonction `if` est plus performante. [#37695](https://github.com/ClickHouse/ClickHouse/pull/37695) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration des performances des fonctions `dictGetDescendants` et `dictGetChildren` : création d’un index hiérarchique temporaire parent-enfants par requête, et non par appel de fonction pendant la requête. Il est désormais possible de spécifier `BIDIRECTIONAL` pour les attributs `HIERARHICAL` ; le dictionnaire maintiendra alors en mémoire un index parent-enfants, ce qui évitera aux fonctions `dictGetDescendants` et `dictGetChildren` de créer un index temporaire pour chaque requête. Closes [#32481](https://github.com/ClickHouse/ClickHouse/issues/32481). [#37148](https://github.com/ClickHouse/ClickHouse/pull/37148) ([Maksim Kita](https://github.com/kitaisreal)).
* La destruction de l’état des agrégats peut désormais être déléguée à un thread pool. Pour les requêtes avec LIMIT et un état volumineux, cela apporte une accélération significative ; par exemple, `select uniq(number) from numbers_mt(1e7) group by number limit 100` est devenu environ 2,5 fois plus rapide. [#37855](https://github.com/ClickHouse/ClickHouse/pull/37855) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration des performances du tri sur une seule colonne. [#37195](https://github.com/ClickHouse/ClickHouse/pull/37195) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration des performances du tri sur une seule colonne grâce à des spécialisations de la file de tri. [#37990](https://github.com/ClickHouse/ClickHouse/pull/37990) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration de 2 à 4 fois des performances des fonctions de norme de tableau et des fonctions de distance. [#37394](https://github.com/ClickHouse/ClickHouse/pull/37394) ([Alexander Gololobov](https://github.com/davenger)).
* Amélioration des performances des fonctions de comparaison de nombres grâce au dynamic dispatch. [#37399](https://github.com/ClickHouse/ClickHouse/pull/37399) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances de ORDER BY avec LIMIT. [#37481](https://github.com/ClickHouse/ClickHouse/pull/37481) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances de la fonction `hasAll` grâce à l’infrastructure de dispatch dynamique. [#37484](https://github.com/ClickHouse/ClickHouse/pull/37484) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances des fonctions `greatCircleAngle`, `greatCircleDistance` et `geoDistance`. [#37524](https://github.com/ClickHouse/ClickHouse/pull/37524) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances des insertions dans MergeTree lorsqu’il y a plusieurs colonnes dans ORDER BY. [#35762](https://github.com/ClickHouse/ClickHouse/pull/35762) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige une utilisation excessive du CPU en arrière-plan lorsqu’il y a beaucoup de tables. [#38028](https://github.com/ClickHouse/ClickHouse/pull/38028) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances de la fonction `not` grâce au dispatch dynamique. [#38058](https://github.com/ClickHouse/ClickHouse/pull/38058) ([Maksim Kita](https://github.com/kitaisreal)).
* Optimise la mise en cache interne des patterns re2 qui apparaissent par exemple dans les fonctions LIKE et MATCH. [#37544](https://github.com/ClickHouse/ClickHouse/pull/37544) ([Robert Schulze](https://github.com/rschu1ze)).
* Améliore d’un seul tenant la fonction de génération de masques de bits de filtre avec les instructions AVX-512. [#37588](https://github.com/ClickHouse/ClickHouse/pull/37588) ([yaqi-zhao](https://github.com/yaqi-zhao)).
* Applique la méthode de lecture `threadpool` au moteur d’intégration Hive. Cela accélérera considérablement la lecture. [#36328](https://github.com/ClickHouse/ClickHouse/pull/36328) ([李扬](https://github.com/taiyang-li)).
* Lorsque toutes les colonnes à lire sont des clés de partition, construit les colonnes à partir du numéro de ligne du fichier sans lire réellement le fichier Hive. [#37103](https://github.com/ClickHouse/ClickHouse/pull/37103) ([lgbo](https://github.com/lgbo-ustc)).
* Prend en charge plusieurs disques pour la mise en cache des fichiers Hive. [#37279](https://github.com/ClickHouse/ClickHouse/pull/37279) ([lgbo](https://github.com/lgbo-ustc)).
* Limiter l’utilisation maximale du cache par requête permet d’éviter efficacement la pollution du pool de cache. [Related Issues](https://github.com/ClickHouse/ClickHouse/issues/28961). [#37859](https://github.com/ClickHouse/ClickHouse/pull/37859) ([Han Shukai](https://github.com/KinderRiven)).
* Actuellement, ClickHouse télécharge directement tous les fichiers distants dans le cache local (même s’ils ne sont lus qu’une seule fois), ce qui provoque fréquemment des opérations d’IO sur le disque local. Dans certains scénarios, ces IO ne sont pas nécessaires et peuvent facilement dégrader les performances. Comme le montre la figure ci-dessous, lorsque nous exécutons SSB Q1-Q4, le cache a eu un effet négatif sur les performances. [#37516](https://github.com/ClickHouse/ClickHouse/pull/37516) ([Han Shukai](https://github.com/KinderRiven)).
* Permet d’élaguer la liste des fichiers via des colonnes virtuelles telles que `_file` et `_path` lors de la lecture depuis S3. Cela concerne [#37174](https://github.com/ClickHouse/ClickHouse/issues/37174), [#23494](https://github.com/ClickHouse/ClickHouse/issues/23494). [#37356](https://github.com/ClickHouse/ClickHouse/pull/37356) ([Amos Bird](https://github.com/amosbird)).
* Dans la fonction : CompressedWriteBuffer::nextImpl(), il existe une étape inutile de copie à l’écriture, qui se produisait fréquemment lors de l’insertion de données. Voici la différence apportée par ce correctif : - Avant : 1. Compresser "working\_buffer" dans "compressed\_buffer" 2. copier dans "out" - Après : compresser directement "working\_buffer" dans "out". [#37242](https://github.com/ClickHouse/ClickHouse/pull/37242) ([jasperzhu](https://github.com/jinjunzh)).

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

* Prise en charge des types avec des valeurs par défaut non standard dans ROLLUP, CUBE et GROUPING SETS. Clôt [#37360](https://github.com/ClickHouse/ClickHouse/issues/37360). [#37667](https://github.com/ClickHouse/ClickHouse/pull/37667) ([Dmitry Novik](https://github.com/novikd)).
* Correction de la collecte des traces de pile sur ARM. Clôt [#37044](https://github.com/ClickHouse/ClickHouse/issues/37044). Clôt [#15638](https://github.com/ClickHouse/ClickHouse/issues/15638). [#37797](https://github.com/ClickHouse/ClickHouse/pull/37797) ([Maksim Kita](https://github.com/kitaisreal)).
* Le client essaiera chaque adresse IP renvoyée par la résolution DNS jusqu'à ce que la connexion aboutisse. [#37273](https://github.com/ClickHouse/ClickHouse/pull/37273) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Permet d'utiliser le type String au lieu de Binary dans les formats Arrow/Parquet/ORC. Cette PR introduit 3 nouveaux paramètres à cet effet : `output_format_arrow_string_as_string`, `output_format_parquet_string_as_string`, `output_format_orc_string_as_string`. La valeur par défaut de tous ces paramètres est `false`. [#37327](https://github.com/ClickHouse/ClickHouse/pull/37327) ([Kruglov Pavel](https://github.com/Avogar)).
* Applique le paramètre `input_format_max_rows_to_read_for_schema_inference` au nombre total de lignes lues à partir de tous les fichiers correspondant aux globs. Auparavant, le paramètre `input_format_max_rows_to_read_for_schema_inference` était appliqué séparément à chaque fichier du glob et, en cas de très grand nombre de nulls, nous pouvions lire les `input_format_max_rows_to_read_for_schema_inference` premières lignes de chaque fichier sans rien obtenir. Augmente également la valeur par défaut de ce paramètre à 25000. [#37332](https://github.com/ClickHouse/ClickHouse/pull/37332) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d'un grant `CLUSTER` distinct (ainsi que de la directive de configuration `access_control_improvements.on_cluster_queries_require_cluster_grant`, pour assurer la rétrocompatibilité, avec `false` comme valeur par défaut). [#35767](https://github.com/ClickHouse/ClickHouse/pull/35767) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la prise en charge de l'inférence de schéma pour `hdfsCluster`. [#35812](https://github.com/ClickHouse/ClickHouse/pull/35812) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Implémentation de l'algorithme d'équilibrage de charge `least_used` pour les disques au sein d'un volume (configuration multi-disques). [#36686](https://github.com/ClickHouse/ClickHouse/pull/36686) ([Azat Khuzhin](https://github.com/azat)).
* Modifie l'endpoint HTTP pour renvoyer les statistiques complètes dans l'en-tête `X-ClickHouse-Summary` lorsque `send_progress_in_http_headers=0` (auparavant, il renvoyait uniquement des zéros). - Modifie l'endpoint HTTP pour renvoyer l'en-tête `X-ClickHouse-Exception-Code` lorsque la progression a déjà été envoyée (`send_progress_in_http_headers=1`) - Modifie l'endpoint HTTP pour renvoyer `HTTP_REQUEST_TIMEOUT` (408) au lieu de `HTTP_INTERNAL_SERVER_ERROR` (500) en cas d'erreurs `TIMEOUT_EXCEEDED`. [#36884](https://github.com/ClickHouse/ClickHouse/pull/36884) ([Raúl Marín](https://github.com/Algunenano)).
* Permet à un utilisateur d'inspecter les grants des rôles attribués. [#36941](https://github.com/ClickHouse/ClickHouse/pull/36941) ([nvartolomei](https://github.com/nvartolomei)).
* Ne calcule pas une intégrale numériquement, mais utilise à la place des fonctions CDF. Cela accélérera l'exécution et améliorera la précision. Cela corrige [#36714](https://github.com/ClickHouse/ClickHouse/issues/36714). [#36953](https://github.com/ClickHouse/ClickHouse/pull/36953) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout d’une implémentation par défaut pour Nothing dans les fonctions. Désormais, la plupart des fonctions renvoient une colonne de type Nothing si l’un de leurs arguments est Nothing. Cela résout également le problème avec des fonctions comme arrayMap/arrayFilter et similaires lorsqu’elles prennent un tableau vide en argument. Auparavant, des requêtes comme `select arrayMap(x -> 2 * x, []);` échouaient, car la fonction à l’intérieur de la lambda ne pouvait pas fonctionner avec le type `Nothing` ; désormais, ces requêtes renvoient un tableau vide de type `Array(Nothing)`. Ajout également de la prise en charge des tableaux de types nullable dans des fonctions comme arrayFilter/arrayFill. Auparavant, des requêtes comme `select arrayFilter(x -> x % 2, [1, NULL])` échouaient ; elles fonctionnent désormais (si le résultat de la lambda est NULL, cette valeur ne sera pas incluse dans le résultat). Clôt [#37000](https://github.com/ClickHouse/ClickHouse/issues/37000). [#37048](https://github.com/ClickHouse/ClickHouse/pull/37048) ([Kruglov Pavel](https://github.com/Avogar)).
* Désormais, si un shard possède une réplique locale, nous créons un plan local ainsi qu’un plan de lecture depuis toutes les répliques distantes. Ils partagent un initiateur qui coordonne la lecture. [#37204](https://github.com/ClickHouse/ClickHouse/pull/37204) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* N’interrompt plus le démarrage du serveur si l’option de configuration "mark\_cache\_size" n’est pas explicitement définie. [#37326](https://github.com/ClickHouse/ClickHouse/pull/37326) ([Robert Schulze](https://github.com/rschu1ze)).
* Permet d’indiquer `NULL`/`NOT NULL` juste après le type dans la déclaration de colonne. [#37337](https://github.com/ClickHouse/ClickHouse/pull/37337) ([Igor Nikonov](https://github.com/devcrafter)).
* Optimise le read buffer du file segment PARTIALLY\_DOWNLOADED. [#37338](https://github.com/ClickHouse/ClickHouse/pull/37338) ([xiedeyantu](https://github.com/xiedeyantu)).
* Tente d’améliorer le traitement des fonctions à court-circuit afin de corriger des problèmes dans les tests de stress. [#37384](https://github.com/ClickHouse/ClickHouse/pull/37384) ([Kruglov Pavel](https://github.com/Avogar)).
* Clôt [#37395](https://github.com/ClickHouse/ClickHouse/issues/37395). [#37415](https://github.com/ClickHouse/ClickHouse/pull/37415) ([Memo](https://github.com/Joeywzr)).
* Corrige un interblocage extrêmement rare lors du fetch d’une part en zero-copy replication. Corrige [#37423](https://github.com/ClickHouse/ClickHouse/issues/37423). [#37424](https://github.com/ClickHouse/ClickHouse/pull/37424) ([metahys](https://github.com/metahys)).
* N’autorise pas la création d’un stockage avec un format de données inconnu. [#37450](https://github.com/ClickHouse/ClickHouse/pull/37450) ([Kruglov Pavel](https://github.com/Avogar)).
* Définit la valeur par défaut de `global_memory_usage_overcommit_max_wait_microseconds` à 5 secondes. Ajoute des informations sur `OvercommitTracker` au message d’exception OOM. Ajoute l’événement de profile `MemoryOvercommitWaitTimeMicroseconds`. [#37460](https://github.com/ClickHouse/ClickHouse/pull/37460) ([Dmitry Novik](https://github.com/novikd)).
* N’affiche pas le temps CPU `-0.0` dans clickhouse-client. Il peut apparaître en raison d’erreurs d’arrondi. Clôt [#38003](https://github.com/ClickHouse/ClickHouse/issues/38003). Clôt [#38038](https://github.com/ClickHouse/ClickHouse/issues/38038). [#38064](https://github.com/ClickHouse/ClickHouse/pull/38064) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Play UI : conserve les contrôles en place lorsque la page défile horizontalement. Cela rend les modifications plus confortables, même si la table est large et a été défilée loin vers la droite. Fonctionnalité proposée par Maksym Tereshchenko de CaspianDB. [#37470](https://github.com/ClickHouse/ClickHouse/pull/37470) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Modifier le div de requête dans play.html pour qu’il puisse être étendu au-delà de 20 % de hauteur. Dans le cas de requêtes très longues, il est utile d’agrandir l’élément textarea, mais actuellement, comme le div a une hauteur fixe, la textarea agrandie masque le div de données situé en dessous. Avec ce correctif, l’agrandissement de l’élément textarea poussera le div de données vers le bas/haut afin qu’il ne soit plus masqué. Conserve également la largeur de la zone de requête à 100 % même lorsque l’utilisateur redimensionne la textarea de requête. [#37488](https://github.com/ClickHouse/ClickHouse/pull/37488) ([guyco87](https://github.com/guyco87)).
* Ajout de `ProfileEvents` pour l’introspection du type de parts écrites (insérées ou fusionnées) (`Inserted{Wide/Compact/InMemory}Parts`, `MergedInto{Wide/Compact/InMemory}Parts`). Ajout de la colonne `part_type` à `system.part_log`. Résout [#37495](https://github.com/ClickHouse/ClickHouse/issues/37495). [#37536](https://github.com/ClickHouse/ClickHouse/pull/37536) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration de ClickHouse Keeper : déplacement des logs corrompus vers un dossier horodaté. [#37565](https://github.com/ClickHouse/ClickHouse/pull/37565) ([Antonio Andelic](https://github.com/antonio2368)).
* Ne pas écrire les colonnes expirées par TTL après les fusions suivantes (auparavant, seule la première fusion/optimisation de la part n’écrivait pas les colonnes expirées par TTL, toutes les autres le faisaient). [#37570](https://github.com/ClickHouse/ClickHouse/pull/37570) ([Azat Khuzhin](https://github.com/azat)).
* Résultat plus précis de la fonction utilitaire `dumpColumnStructure` en présence de colonnes LowCardinality ou Sparse. Dans les versions précédentes, ces fonctions convertissaient l’argument en colonne complète avant de renvoyer le résultat. Cela est nécessaire pour apporter une réponse dans [#6935](https://github.com/ClickHouse/ClickHouse/issues/6935). [#37633](https://github.com/ClickHouse/ClickHouse/pull/37633) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* ClickHouse Keeper : ne stocker que des ID de session uniques pour les watches. [#37641](https://github.com/ClickHouse/ClickHouse/pull/37641) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un possible "Cannot write to finalized buffer". [#37645](https://github.com/ClickHouse/ClickHouse/pull/37645) ([Azat Khuzhin](https://github.com/azat)).
* Ajout du paramètre `support_batch_delete` pour `DiskS3` afin de désactiver les appels de suppression multi-objets, que Google Cloud Storage ne prend pas en charge. [#37659](https://github.com/ClickHouse/ClickHouse/pull/37659) ([Fred Wulff](https://github.com/frew)).
* Ajout d’une option pour désactiver le pool de connexions dans l’ODBC bridge. [#37705](https://github.com/ClickHouse/ClickHouse/pull/37705) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Les fonctions `dictGetHierarchy`, `dictIsIn`, `dictGetChildren`, `dictGetDescendants` prennent désormais en charge l’attribut nullable `HIERARCHICAL` dans les dictionnaires. Clôt [#35521](https://github.com/ClickHouse/ClickHouse/issues/35521). [#37805](https://github.com/ClickHouse/ClickHouse/pull/37805) ([Maksim Kita](https://github.com/kitaisreal)).
* Expose les informations liées à la version de BoringSSL dans la table `system.build_options`. [#37850](https://github.com/ClickHouse/ClickHouse/pull/37850) ([Bharat Nallan](https://github.com/bharatnc)).
* Désormais, clickhouse-server supprime les répertoires `delete_tmp` au démarrage du serveur. Corrige [#26503](https://github.com/ClickHouse/ClickHouse/issues/26503). [#37906](https://github.com/ClickHouse/ClickHouse/pull/37906) ([alesapin](https://github.com/alesapin)).
* Nettoyage des parties détachées corrompues après expiration du timeout. Clôt [#25195](https://github.com/ClickHouse/ClickHouse/issues/25195). [#37975](https://github.com/ClickHouse/ClickHouse/pull/37975) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désormais, dans la famille des moteurs de table MergeTree, les parties impossibles à déplacer seront supprimées immédiatement. [#37994](https://github.com/ClickHouse/ClickHouse/pull/37994) ([alesapin](https://github.com/alesapin)).
* Désormais, si le paramètre `always_fetch_merged_part` est activé pour ReplicatedMergeTree, les merges essaieront moins souvent de trouver des parties sur d'autres répliques, ce qui réduira la charge sur \[Zoo]Keeper. [#37995](https://github.com/ClickHouse/ClickHouse/pull/37995) ([alesapin](https://github.com/alesapin)).
* Ajout également de privilèges implicites avec l'option GRANT. Par exemple, `GRANT CREATE TABLE ON test.* TO A WITH GRANT OPTION` permet désormais à `A` d'exécuter `GRANT CREATE VIEW ON test.* TO B`. [#38017](https://github.com/ClickHouse/ClickHouse/pull/38017) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Utilisation de `clang-14` et de l’infrastructure LLVM version 14 pour la compilation. Clôt [#34681](https://github.com/ClickHouse/ClickHouse/issues/34681). [#34754](https://github.com/ClickHouse/ClickHouse/pull/34754) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Remarque : `clang-14` a [un bug](https://github.com/google/sanitizers/issues/1540) dans ThreadSanitizer qui perturbe le fonctionnement de notre CI.
* Possibilité d’abaisser les privilèges au démarrage. Cela simplifie les images Docker. Clôt [#36293](https://github.com/ClickHouse/ClickHouse/issues/36293). [#36341](https://github.com/ClickHouse/ClickHouse/pull/36341) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la vérification orthographique de la documentation dans la CI. [#37790](https://github.com/ClickHouse/ClickHouse/pull/37790) ([Vladimir C](https://github.com/vdimir)).
* Correction d’un stripping trop agressif, qui supprimait le hash intégré nécessaire à la vérification de la cohérence de l’exécutable. [#37993](https://github.com/ClickHouse/ClickHouse/pull/37993) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Correction des instructions `SELECT ... INTERSECT` et `EXCEPT SELECT` avec des types de chaînes constants. [#37738](https://github.com/ClickHouse/ClickHouse/pull/37738) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de `GROUP BY` `AggregateFunction` (c.-à-d. lorsque `GROUP BY` est appliqué à une colonne de type `AggregateFunction`). [#37093](https://github.com/ClickHouse/ClickHouse/pull/37093) ([Azat Khuzhin](https://github.com/azat)).
* (experimental WINDOW VIEW) Correction de `addDependency` dans WindowView. Ce bug peut être reproduit comme dans [#37237](https://github.com/ClickHouse/ClickHouse/issues/37237). [#37224](https://github.com/ClickHouse/ClickHouse/pull/37224) ([vxider](https://github.com/Vxider)).
* Correction d'une incohérence dans la fonctionnalité ORDER BY ... WITH FILL. Une requête contenant ORDER BY ... WITH FILL peut générer des lignes supplémentaires lorsque plusieurs colonnes WITH FILL sont présentes. [#38074](https://github.com/ClickHouse/ClickHouse/pull/38074) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Cette PR déplace `addDependency` du constructeur vers `startup()` afin d'éviter d'ajouter une dépendance à une table *supprimée*, corrigeant ainsi [#37237](https://github.com/ClickHouse/ClickHouse/issues/37237). [#37243](https://github.com/ClickHouse/ClickHouse/pull/37243) ([vxider](https://github.com/Vxider)).
* Correction de l'insertion des valeurs par défaut pour les valeurs manquantes dans les formats colonnaires. Auparavant, les colonnes manquantes étaient remplies avec les valeurs par défaut des types, et non celles des colonnes. [#37253](https://github.com/ClickHouse/ClickHouse/pull/37253) ([Kruglov Pavel](https://github.com/Avogar)).
* (experimental Object type) Correction de certains cas d'insertion de tableaux imbriqués dans des colonnes de type `Object`. [#37305](https://github.com/ClickHouse/ClickHouse/pull/37305) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d'erreurs inattendues dues à un conflit de chaînes constantes dans une fonction d'agrégation, prewhere et join. Clôt [#36891](https://github.com/ClickHouse/ClickHouse/issues/36891). [#37336](https://github.com/ClickHouse/ClickHouse/pull/37336) ([Vladimir C](https://github.com/vdimir)).
* Correction des projections avec GROUP/ORDER BY dans la requête et optimize\_aggregation\_in\_order (auparavant, le résultat était incorrect, car seul le tri final était effectué). [#37342](https://github.com/ClickHouse/ClickHouse/pull/37342) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'une erreur liée aux symboles dans le nom de clé dans S3. Corrige [#33009](https://github.com/ClickHouse/ClickHouse/issues/33009). [#37344](https://github.com/ClickHouse/ClickHouse/pull/37344) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Lever une exception lorsque GROUPING SETS est utilisé avec ROLLUP ou CUBE. [#37367](https://github.com/ClickHouse/ClickHouse/pull/37367) ([Dmitry Novik](https://github.com/novikd)).
* Correction de LOGICAL\_ERROR dans getMaxSourcePartsSizeForMerge pendant les merges (lorsque des valeurs non standard et plus élevées de `background_pool_size`/`background_merges_mutations_concurrency_ratio` sont spécifiées dans `config.xml` (nouvelle méthode) plutôt que dans `users.xml` (méthode obsolète)). [#37413](https://github.com/ClickHouse/ClickHouse/pull/37413) ([Azat Khuzhin](https://github.com/azat)).
* Ne supprime plus le BOM UTF-8 dans le format RowBinary. [#37428](https://github.com/ClickHouse/ClickHouse/pull/37428) ([Paul Loyd](https://github.com/loyd)). [#37428](https://github.com/ClickHouse/ClickHouse/pull/37428) ([Paul Loyd](https://github.com/loyd)).
* Correction d'un bug de ClickHouse Keeper : correction de la récupération forcée pour un cluster à nœud unique. [#37440](https://github.com/ClickHouse/ClickHouse/pull/37440) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l'erreur logique dans les fonctions normalizeUTF8. Ferme [#37298](https://github.com/ClickHouse/ClickHouse/issues/37298). [#37443](https://github.com/ClickHouse/ClickHouse/pull/37443) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige le transtypage de LowCardinality de Nullable dans JoinSwitcher. Ferme [#37385](https://github.com/ClickHouse/ClickHouse/issues/37385). [#37453](https://github.com/ClickHouse/ClickHouse/pull/37453) ([Vladimir C](https://github.com/vdimir)).
* Corrige la sortie des tuples nommés dans les formats ORC/Arrow/Parquet. [#37458](https://github.com/ClickHouse/ClickHouse/pull/37458) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l'optimisation des fonctions monotones dans la clause ORDER BY en présence de GROUPING SETS. Corrige [#37401](https://github.com/ClickHouse/ClickHouse/issues/37401). [#37493](https://github.com/ClickHouse/ClickHouse/pull/37493) ([Dmitry Novik](https://github.com/novikd)).
* Corrige une erreur lors d'une jointure avec un dictionnaire dans certaines conditions. Ferme [#37386](https://github.com/ClickHouse/ClickHouse/issues/37386). [#37530](https://github.com/ClickHouse/ClickHouse/pull/37530) ([Vladimir C](https://github.com/vdimir)).
* Interdit `optimize_aggregation_in_order` avec `GROUPING SETS` (corrige `LOGICAL_ERROR`). [#37542](https://github.com/ClickHouse/ClickHouse/pull/37542) ([Azat Khuzhin](https://github.com/azat)).
* Corrige les informations de dump incorrectes d'ActionsDAG. [#37587](https://github.com/ClickHouse/ClickHouse/pull/37587) ([zhanglistar](https://github.com/zhanglistar)).
* Corrige la conversion de types pour les requêtes UNION (peut produire LOGICAL\_ERROR). [#37593](https://github.com/ClickHouse/ClickHouse/pull/37593) ([Azat Khuzhin](https://github.com/azat)).
* Corrige le modificateur `WITH FILL` avec des intervalles négatifs dans la clause `STEP`. Corrige [#37514](https://github.com/ClickHouse/ClickHouse/issues/37514). [#37600](https://github.com/ClickHouse/ClickHouse/pull/37600) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l'utilisation invalide d'un Array avec joinGet lorsque ` join_use_nulls = 1`. Cela corrige [#37562](https://github.com/ClickHouse/ClickHouse/issues/37562). [#37650](https://github.com/ClickHouse/ClickHouse/pull/37650) ([Amos Bird](https://github.com/amosbird)).
* Corrige l'incohérence du nombre de colonnes dans un CROSS JOIN. Ferme [#37561](https://github.com/ClickHouse/ClickHouse/issues/37561). [#37653](https://github.com/ClickHouse/ClickHouse/pull/37653) ([Vladimir C](https://github.com/vdimir)).
* Corrige un défaut de segmentation dans `show create table` à partir d'une base de données MySQL lorsqu'elle est configurée avec des named collections. Ferme [#37683](https://github.com/ClickHouse/ClickHouse/issues/37683). [#37690](https://github.com/ClickHouse/ClickHouse/pull/37690) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige l'impossibilité pour RabbitMQ Storage de démarrer après le redémarrage du server si le stockage avait été créé sans clause SETTINGS. Ferme [#37463](https://github.com/ClickHouse/ClickHouse/issues/37463). [#37691](https://github.com/ClickHouse/ClickHouse/pull/37691) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les fonctions définies par l'utilisateur SQL désactivent CREATE/DROP en mode readonly. Ferme [#37280](https://github.com/ClickHouse/ClickHouse/issues/37280). [#37699](https://github.com/ClickHouse/ClickHouse/pull/37699) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige le formatage des arguments Nullable pour les fonctions définies par l'utilisateur exécutables. Ferme [#35897](https://github.com/ClickHouse/ClickHouse/issues/35897). [#37711](https://github.com/ClickHouse/ClickHouse/pull/37711) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction de l’optimisation activée par le paramètre `optimize_monotonous_functions_in_order_by` dans les requêtes distribuées. Corrige [#36037](https://github.com/ClickHouse/ClickHouse/issues/36037). [#37724](https://github.com/ClickHouse/ClickHouse/pull/37724) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une possible erreur logique : `Invalid Field get from type UInt64 to type Float64` dans la fonction de table `values`. Clôt [#37602](https://github.com/ClickHouse/ClickHouse/issues/37602). [#37754](https://github.com/ClickHouse/ClickHouse/pull/37754) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un segfault possible lors de l’inférence de schéma en cas d’exception dans le constructeur de SchemaReader. Clôt [#37680](https://github.com/ClickHouse/ClickHouse/issues/37680). [#37760](https://github.com/ClickHouse/ClickHouse/pull/37760) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du paramètre cast\_ipv4\_ipv6\_default\_on\_conversion\_error pour la fonction CAST interne. Clôt [#35156](https://github.com/ClickHouse/ClickHouse/issues/35156). [#37761](https://github.com/ClickHouse/ClickHouse/pull/37761) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’une erreur de toString sur DatatypeDate32. [#37775](https://github.com/ClickHouse/ClickHouse/pull/37775) ([LiuNeng](https://github.com/liuneng1994)).
* Le paramètre `dead_session_check_period_ms` de ClickHouse Keeper a été converti en microsecondes (multiplié par 1000), ce qui faisait que les sessions expirées n’étaient nettoyées qu’au bout de plusieurs minutes (au lieu de 500 ms). [#37824](https://github.com/ClickHouse/ClickHouse/pull/37824) ([Michael Lex](https://github.com/mlex)).
* Correction du possible message d’erreur "No more packets are available" pour les requêtes distribuées (lorsque `async_socket_for_remote`/`use_hedged_requests` est désactivé). [#37826](https://github.com/ClickHouse/ClickHouse/pull/37826) ([Azat Khuzhin](https://github.com/azat)).
* (WINDOW VIEW expérimental) Ne pas supprimer la table cible interne lors de l’exécution de `ALTER TABLE ... MODIFY QUERY` dans WindowView. [#37879](https://github.com/ClickHouse/ClickHouse/pull/37879) ([vxider](https://github.com/Vxider)).
* Correction du propriétaire du répertoire de coordination dans l’image Docker ClickHouse Keeper. Corrige [#37914](https://github.com/ClickHouse/ClickHouse/issues/37914). [#37915](https://github.com/ClickHouse/ClickHouse/pull/37915) ([James Maidment](https://github.com/jamesmaidment)).
* Correction dans Dictionaries pour les requêtes personnalisées avec champ de mise à jour et `{condition}`. Clôt [#33746](https://github.com/ClickHouse/ClickHouse/issues/33746). [#37947](https://github.com/ClickHouse/ClickHouse/pull/37947) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un résultat potentiellement incorrect de `SELECT ... WITH FILL` lorsque `ORDER BY` doit être appliqué après le résultat de `WITH FILL` (par exemple, pour une requête externe). Le résultat incorrect était causé par l’optimisation des expressions `ORDER BY` ([#35623](https://github.com/ClickHouse/ClickHouse/issues/35623)). Clôt [#37904](https://github.com/ClickHouse/ClickHouse/issues/37904). [#37959](https://github.com/ClickHouse/ClickHouse/pull/37959) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* (WINDOW VIEW expérimental) Ajout des colonnes par défaut manquantes lors de l’insertion dans la table cible dans WindowView, corrige [#37815](https://github.com/ClickHouse/ClickHouse/issues/37815). [#37965](https://github.com/ClickHouse/ClickHouse/pull/37965) ([vxider](https://github.com/Vxider)).
* Correction d’une frame de pile trop grande qui entraînait l’échec de la compilation. [#37996](https://github.com/ClickHouse/ClickHouse/pull/37996) ([Han Shukai](https://github.com/KinderRiven)).
* Lors de l’activation de enable\_filesystem\_query\_cache\_limit, l’exception « Reserved cache size exceeds the remaining cache size » est désormais levée. [#38004](https://github.com/ClickHouse/ClickHouse/pull/38004) ([xiedeyantu](https://github.com/xiedeyantu)).
* Correction de la conversion de types pour les requêtes UNION (peut produire LOGICAL\_ERROR). [#34775](https://github.com/ClickHouse/ClickHouse/pull/34775) ([Azat Khuzhin](https://github.com/azat)).
* Une fusion TTL peut ne pas être reprogrammée si BackgroundExecutor est occupé. --merges\_with\_ttl\_counter est incrémenté dans selectPartsToMerge() -- la tâche --merge sera ignorée si BackgroundExecutor est occupé -- merges\_with\_ttl\_counter ne sera pas décrémenté. [#36387](https://github.com/ClickHouse/ClickHouse/pull/36387) ([lthaooo](https://github.com/lthaooo)).
* Correction de la valeur surchargée du paramètre `normalize_function_names`. [#36937](https://github.com/ClickHouse/ClickHouse/pull/36937) ([李扬](https://github.com/taiyang-li)).
* Correction des fonctions de fenêtre à décroissance exponentielle dans le temps. Elles respectent désormais les limites de la fenêtre. [#36944](https://github.com/ClickHouse/ClickHouse/pull/36944) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Correction d’une possible erreur de type heap-use-after-free lors de la lecture de system.projection\_parts et system.projection\_parts\_columns. Cela corrige [#37184](https://github.com/ClickHouse/ClickHouse/issues/37184). [#37185](https://github.com/ClickHouse/ClickHouse/pull/37185) ([Amos Bird](https://github.com/amosbird)).
* Correction du comportement des secondes fractionnaires de `DateTime64` avant l’epoch Unix. [#37697](https://github.com/ClickHouse/ClickHouse/pull/37697) ([Andrey Zvonov](https://github.com/zvonand)). [#37039](https://github.com/ClickHouse/ClickHouse/pull/37039) ([李扬](https://github.com/taiyang-li)).

### <a id="225" /> Release ClickHouse 22.5, 2022-05-19. [Présentation](https://presentations.clickhouse.com/2022-release-22.5/), [Vidéo](https://www.youtube.com/watch?v=jkXmXrmjaKQ)

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

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

* Désormais, les background merges, les mutations et `OPTIMIZE` n’incrémentent plus les métriques `SelectedRows` et `SelectedBytes`. En revanche, ils continuent d’incrémenter `MergedRows` et `MergedUncompressedBytes`, comme auparavant. Cela affecte uniquement les valeurs des métriques, en les rendant plus pertinentes. Ce changement n’introduit aucune incompatibilité, mais comme il peut susciter des questions sur l’évolution des métriques, nous l’avons classé dans cette catégorie. [#37040](https://github.com/ClickHouse/ClickHouse/pull/37040) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Le module BoringSSL a été mis à jour vers la version officielle conforme à FIPS. ClickHouse est ainsi désormais conforme à FIPS. [#35914](https://github.com/ClickHouse/ClickHouse/pull/35914) ([Meena-Renganathan](https://github.com/Meena-Renganathan)). Les chiffrements `aes-192-cfb128` et `aes-256-cfb128` ont été supprimés, car ils ne font pas partie de la version certifiée FIPS de BoringSSL.
* Le paramètre `max_memory_usage` a été supprimé du profil utilisateur par défaut dans `users.xml`. Cela permet d’utiliser des limites mémoire plus flexibles pour les requêtes, au lieu de l’ancienne limite fixe de 10 Go.
* Le paramètre `log_query_threads` est désormais désactivé par défaut. Il contrôle la journalisation des statistiques sur chaque thread participant à l’exécution des requêtes. Avec la prise en charge des lectures asynchrones, le nombre total d’identifiants de thread distincts est devenu trop important, et la journalisation dans `query_thread_log` est devenue trop lourde. [#37077](https://github.com/ClickHouse/ClickHouse/pull/37077) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La fonction `groupArraySorted` a été supprimée en raison d’un bogue. [#36822](https://github.com/ClickHouse/ClickHouse/pull/36822) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Activer memory overcommit par défaut. [#35921](https://github.com/ClickHouse/ClickHouse/pull/35921) ([Dmitry Novik](https://github.com/novikd)).
* Ajouter la prise en charge de GROUPING SETS dans la clause GROUP BY. Cette implémentation prend en charge le traitement parallèle des GROUPING SETS. [#33631](https://github.com/ClickHouse/ClickHouse/pull/33631) ([Dmitry Novik](https://github.com/novikd)).
* Ajouter la table `system.certificates`. [#37142](https://github.com/ClickHouse/ClickHouse/pull/37142) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajouter les fonctions `h3Line`, `h3Distance` et `h3HexRing`. [#37030](https://github.com/ClickHouse/ClickHouse/pull/37030) ([Bharat Nallan](https://github.com/bharatnc)).
* Nouvel outil de diagnostic basé sur un seul binaire (clickhouse-diagnostics). [#36705](https://github.com/ClickHouse/ClickHouse/pull/36705) ([Dale McDiarmid](https://github.com/gingerwizard)).
* Ajouter le format de sortie `Prometheus` [#36051](https://github.com/ClickHouse/ClickHouse/issues/36051). [#36206](https://github.com/ClickHouse/ClickHouse/pull/36206) ([Vladimir C](https://github.com/vdimir)).
* Ajouter le format d'entrée `MySQLDump`. Il lit toutes les données des requêtes INSERT appartenant à une même table dans le dump. S'il y a plusieurs tables, il lit par défaut les données de la première. [#36667](https://github.com/ClickHouse/ClickHouse/pull/36667) ([Kruglov Pavel](https://github.com/Avogar)).
* Afficher les champs `total_rows` et `total_bytes` dans `system.tables` pour les tables temporaires. [#36401](https://github.com/ClickHouse/ClickHouse/issues/36401). [#36439](https://github.com/ClickHouse/ClickHouse/pull/36439) ([xiedeyantu](https://github.com/xiedeyantu)).
* Permettre de remplacer `parts_to_delay_insert` et `parts_to_throw_insert` par des paramètres au niveau de la requête. S'ils sont définis, ils remplaceront les paramètres au niveau de la table. [#36371](https://github.com/ClickHouse/ClickHouse/pull/36371) ([Memo](https://github.com/Joeywzr)).

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

* Implémentation des fonctions de distance L1, L2, Linf et cosinus pour les tableaux, ainsi que des fonctions de norme L1, L2 et Linf pour les tableaux.
  [#37033](https://github.com/ClickHouse/ClickHouse/pull/37033) ([qieqieplus](https://github.com/qieqieplus)). Mise en garde : ces fonctions seront renommées.
* Amélioration de la requête `WATCH` dans WindowView : 1. Réduction de la latence de mise à disposition des résultats de requête en appelant le signal `fire_condition`. 2. Accélération de l’opération d’annulation de requête (ctrl-c) en vérifiant `isCancelled()` plus fréquemment. [#37226](https://github.com/ClickHouse/ClickHouse/pull/37226) ([vxider](https://github.com/Vxider)).
* Introspection pour la suppression du cache du système de fichiers. [#36802](https://github.com/ClickHouse/ClickHouse/pull/36802) ([Han Shukai](https://github.com/KinderRiven)).
* Ajout d’une nouvelle fonction de hachage SQL, `wyHash64`. [#36467](https://github.com/ClickHouse/ClickHouse/pull/36467) ([olevino](https://github.com/olevino)).
* Amélioration des bases de données répliquées : ajout de la requête `SYSTEM SYNC DATABASE REPLICA`, qui permet de synchroniser les métadonnées des tables au sein d’une base de données Replicated, car la synchronisation est actuellement asynchrone. [#35944](https://github.com/ClickHouse/ClickHouse/pull/35944) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Amélioration du cache du système de fichiers distant : meilleure lecture depuis le cache. [#37054](https://github.com/ClickHouse/ClickHouse/pull/37054) ([Kseniia Sumarokova](https://github.com/kssenii)). Amélioration de la requête `SYSTEM DROP FILESYSTEM CACHE` : option `<path>` et option `FORCE`. [#36639](https://github.com/ClickHouse/ClickHouse/pull/36639) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Amélioration des données semi-structurées : permet de convertir des colonnes de type `Object(...)` en `Object(Nullable(...))`. [#36564](https://github.com/ClickHouse/ClickHouse/pull/36564) ([awakeljw](https://github.com/awakeljw)).
* Amélioration des répliques parallèles : nous créons un interpréteur local si nous voulons exécuter une requête sur la réplique localhost. En revanche, lors de l’exécution d’une requête sur plusieurs répliques, nous nous appuyons sur l’existence d’une connexion pour que les répliques puissent communiquer avec le coordinateur. Ce point a désormais été amélioré, et la réplique localhost peut communiquer directement avec le coordinateur au sein du même processus. [#36281](https://github.com/ClickHouse/ClickHouse/pull/36281) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Améliore les performances des fonctions d’agrégation `avg` et `sum` lorsqu’elles sont utilisées sans expression GROUP BY. [#37257](https://github.com/ClickHouse/ClickHouse/pull/37257) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances des fonctions arithmétiques unaires (`bitCount`, `bitNot`, `abs`, `intExp2`, `intExp10`, `negate`, `roundAge`, `roundDuration`, `roundToExp2`, `sign`) grâce au dispatch dynamique. [#37289](https://github.com/ClickHouse/ClickHouse/pull/37289) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore les performances de ORDER BY, de MergeJoin et des insertions dans MergeTree grâce à la compilation JIT du comparateur des colonnes de tri. [#34469](https://github.com/ClickHouse/ClickHouse/pull/34469) ([Maksim Kita](https://github.com/kitaisreal)).
* Modifie la structure de `system.asynchronous_metric_log`. Elle occupera environ 10 fois moins d’espace. Cela clôt [#36357](https://github.com/ClickHouse/ClickHouse/issues/36357). Le champ `event_time_microseconds` a été supprimé, car il est inutile. [#36360](https://github.com/ClickHouse/ClickHouse/pull/36360) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Charge les marks uniquement pour les colonnes nécessaires lors de la lecture des wide parts. [#36879](https://github.com/ClickHouse/ClickHouse/pull/36879) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Améliore les performances du cache des descripteurs de fichiers en réduisant la portée des mutex. [#36682](https://github.com/ClickHouse/ClickHouse/pull/36682) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Améliore les performances de lecture depuis le moteur de stockage `File` et les fonctions de table `file` lorsque le chemin contient des globs et que le répertoire correspondant contient un grand nombre de fichiers. [#36647](https://github.com/ClickHouse/ClickHouse/pull/36647) ([Anton Popov](https://github.com/CurtizJ)).
* Applique l’analyse syntaxique parallèle au format d’entrée `HiveText`, ce qui peut accélérer d’un facteur 2 l’analyse de HiveText lors de la lecture d’un fichier local. [#36650](https://github.com/ClickHouse/ClickHouse/pull/36650) ([李扬](https://github.com/taiyang-li)).
* Le `HashJoin` par défaut n’est pas sûr vis-à-vis des threads pour l’insertion des lignes de la table de droite et s’exécute donc sur un seul thread. Lorsque la table de droite est volumineuse, le processus de join est trop lent et l’utilisation du CPU reste faible. [#36415](https://github.com/ClickHouse/ClickHouse/pull/36415) ([lgbo](https://github.com/lgbo-ustc)).
* Permet de réécrire `select countDistinct(a) from t` en `select count(1) from (select a from t groupBy a)`. [#35993](https://github.com/ClickHouse/ClickHouse/pull/35993) ([zhanglistar](https://github.com/zhanglistar)).
* Transforme une chaîne de OR LIKE en multiMatchAny. Sera activé une fois que nous aurons davantage confiance dans son bon fonctionnement. [#34932](https://github.com/ClickHouse/ClickHouse/pull/34932) ([Daniel Kutenin](https://github.com/danlark1)).
* Améliore les performances de certaines fonctions grâce à l’inlining. [#34544](https://github.com/ClickHouse/ClickHouse/pull/34544) ([Daniel Kutenin](https://github.com/danlark1)).
* Ajoute une branche pour éviter un memcpy inutile dans readBig. Cela améliore légèrement les performances. [#36095](https://github.com/ClickHouse/ClickHouse/pull/36095) ([jasperzhu](https://github.com/jinjunzh)).
* Implémente une clé GROUP BY partielle pour optimize\_aggregation\_in\_order. [#35111](https://github.com/ClickHouse/ClickHouse/pull/35111) ([Azat Khuzhin](https://github.com/azat)).

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

* Affiche les noms des fichiers en erreur en cas d’erreurs d’analyse lors de l’exécution des fonctions de table `file`, `s3` et `url`. [#36314](https://github.com/ClickHouse/ClickHouse/pull/36314) ([Anton Popov](https://github.com/CurtizJ)).
* Il est désormais possible d’augmenter à l’exécution le nombre de threads utilisés pour les opérations en arrière-plan (merges, mutations, moves et fetches) s’ils sont spécifiés dans la configuration de niveau supérieur. [#36425](https://github.com/ClickHouse/ClickHouse/pull/36425) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Désormais, les fonctions de conversion de date et heure qui génèrent une heure antérieure à 1970-01-01 00:00:00 avec des fuseaux horaires à heures/minutes partielles seront ramenées à zéro au lieu de provoquer un overflow. Il s’agit de la suite de [https://github.com/ClickHouse/ClickHouse/pull/29953](https://github.com/ClickHouse/ClickHouse/pull/29953), qui traite [https://github.com/ClickHouse/ClickHouse/pull/29953#discussion\&#95;r800550280](https://github.com/ClickHouse/ClickHouse/pull/29953#discussion\&#95;r800550280) . Marqué comme amélioration, car il s’agit d’un comportement défini par l’implémentation (et d’un cas très rare) qu’il est acceptable de modifier. [#36656](https://github.com/ClickHouse/ClickHouse/pull/36656) ([Amos Bird](https://github.com/amosbird)).
* Ajoute un avertissement si quelqu’un exécute clickhouse-server avec le log level "test". Le log level "test" a été ajouté récemment et ne peut pas être utilisé en production en raison d’une dégradation des performances inévitable, inéluctable, fatale et potentiellement mortelle. [#36824](https://github.com/ClickHouse/ClickHouse/pull/36824) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Analyse les collations dans CREATE TABLE, lève une exception ou ignore. Ferme [#35892](https://github.com/ClickHouse/ClickHouse/issues/35892). [#36271](https://github.com/ClickHouse/ClickHouse/pull/36271) ([yuuch](https://github.com/yuuch)).
* L’option `compatibility_ignore_auto_increment_in_create_table` permet d’ignorer le mot-clé `AUTO_INCREMENT` dans une déclaration de colonne afin de simplifier la migration depuis MySQL. [#37178](https://github.com/ClickHouse/ClickHouse/pull/37178) ([Igor Nikonov](https://github.com/devcrafter)).
* Ajoute les alias `JSONLines` et `NDJSON` pour `JSONEachRow`. Ferme [#36303](https://github.com/ClickHouse/ClickHouse/issues/36303). [#36327](https://github.com/ClickHouse/ClickHouse/pull/36327) ([flynn](https://github.com/ucasfl)).
* Limite le nombre maximal de partitions pouvant être interrogées pour chaque table Hive. Évite les dépassements de ressources. [#37281](https://github.com/ClickHouse/ClickHouse/pull/37281) ([lgbo](https://github.com/lgbo-ustc)).
* Ajout d’un transtypage implicite pour le second argument de la fonction `h3kRing` afin d’en améliorer l’utilisation. Ferme [#35432](https://github.com/ClickHouse/ClickHouse/issues/35432). [#37189](https://github.com/ClickHouse/ClickHouse/pull/37189) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige l’indication de progression pour `INSERT SELECT` dans `clickhouse-local`, pour toute requête, ainsi que la progression des fichiers dans le client. [#37075](https://github.com/ClickHouse/ClickHouse/pull/37075) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un bug pouvant laisser des outdated parts oubliées dans la famille des MergeTree table engines en cas de défaillance du filesystem lors de la suppression des parts. Avant ce correctif, elles n’étaient supprimées qu’après le premier redémarrage du server. [#37014](https://github.com/ClickHouse/ClickHouse/pull/37014) ([alesapin](https://github.com/alesapin)).
* Mise en œuvre d’un nouveau mode de gestion des row policies, pouvant être activé dans la configuration principale, qui permet aux users sans row policies permissives de lire des rows. [#36997](https://github.com/ClickHouse/ClickHouse/pull/36997) ([Vitaly Baranov](https://github.com/vitlibar)).
* Interface Play : les nombres Nullable seront alignés à droite dans les cellules du tableau. Cela ferme [#36982](https://github.com/ClickHouse/ClickHouse/issues/36982). [#36988](https://github.com/ClickHouse/ClickHouse/pull/36988) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* UI Play : s'il n'y a qu'une ligne dans le résultat et plus de quelques colonnes, afficher le résultat verticalement. Suite de [#36811](https://github.com/ClickHouse/ClickHouse/issues/36811). [#36842](https://github.com/ClickHouse/ClickHouse/pull/36842) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nettoyage du CSS dans l'UI Play. Les pixels sont répartis de manière plus uniforme. Meilleure ergonomie pour les contenus longs dans les cellules des tables. [#36569](https://github.com/ClickHouse/ClickHouse/pull/36569) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Finalisation des tampons d'écriture en cas d'exception pour éviter d'avoir à le faire dans les destructeurs. Cela devrait corriger : [#36907](https://github.com/ClickHouse/ClickHouse/issues/36907). [#36979](https://github.com/ClickHouse/ClickHouse/pull/36979) ([Kruglov Pavel](https://github.com/Avogar)).
* Après [#36425](https://github.com/ClickHouse/ClickHouse/issues/36425), des paramètres comme `background_fetches_pool_size` sont devenus obsolètes et peuvent apparaître au niveau supérieur de la configuration, mais ClickHouse levait une exception du type `Error updating configuration from '/etc/clickhouse-server/config.xml' config.: Code: 137. DB::Exception: A setting 'background_fetches_pool_size' appeared at top level in config /etc/clickhouse-server/config.xml.` Ce problème a été corrigé. [#36917](https://github.com/ClickHouse/ClickHouse/pull/36917) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout d'informations de diagnostic supplémentaires (le cas échéant) lors de l'envoi d'une exception à un autre serveur. [#36872](https://github.com/ClickHouse/ClickHouse/pull/36872) ([tavplubix](https://github.com/tavplubix)).
* Possibilité d'exécuter des fonctions de hachage avec des arguments de type `Array(Tuple(..))`. [#36812](https://github.com/ClickHouse/ClickHouse/pull/36812) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout du paramètre de configuration `user_defined_path`. [#36753](https://github.com/ClickHouse/ClickHouse/pull/36753) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge de la macro de cluster dans la fonction de table `s3Cluster`. [#36726](https://github.com/ClickHouse/ClickHouse/pull/36726) ([Vadim Volodin](https://github.com/PolyProgrammist)).
* Annulation correcte des requêtes INSERT dans `clickhouse-client`/`clickhouse-local`. [#36710](https://github.com/ClickHouse/ClickHouse/pull/36710) ([Azat Khuzhin](https://github.com/azat)).
* Possibilité d'annuler une requête tout en conservant un Query id correct dans `MySQLHandler`. [#36699](https://github.com/ClickHouse/ClickHouse/pull/36699) ([Amos Bird](https://github.com/amosbird)).
* Ajout de la colonne `is_all_data_sent` à `system.processes` et amélioration de la vérification de durcissement des tests internes qui s'appuie sur celle-ci. [#36649](https://github.com/ClickHouse/ClickHouse/pull/36649) ([Azat Khuzhin](https://github.com/azat)).
* Les métriques sur le temps passé à lire depuis S3 sont désormais calculées correctement. Clôt [#35483](https://github.com/ClickHouse/ClickHouse/issues/35483). [#36572](https://github.com/ClickHouse/ClickHouse/pull/36572) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge des descripteurs de fichier dans la fonction de table file lorsqu'elle est exécutée dans clickhouse-local. [#36562](https://github.com/ClickHouse/ClickHouse/pull/36562) ([wuxiaobai24](https://github.com/wuxiaobai24)).
* Possibilité d'utiliser des noms d'éléments de tuple commençant par des chiffres. [#36544](https://github.com/ClickHouse/ClickHouse/pull/36544) ([Anton Popov](https://github.com/CurtizJ)).
* Désormais, clickhouse-benchmark peut lire les informations d'authentification à partir des variables d'environnement. [#36497](https://github.com/ClickHouse/ClickHouse/pull/36497) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Amélioration de `clickhouse-keeper` : ajout de la prise en charge de la récupération forcée, ce qui permet de reconfigurer le cluster sans quorum. [#36258](https://github.com/ClickHouse/ClickHouse/pull/36258) ([Antonio Andelic](https://github.com/antonio2368)).
* Amélioration de l’inférence de schéma pour les objets JSON. [#36207](https://github.com/ClickHouse/ClickHouse/pull/36207) ([Kruglov Pavel](https://github.com/Avogar)).
* Refactorisation du code autour de l’inférence de schéma avec des globs. Le fichier suivant correspondant au glob n’est essayé que lorsque cela a du sens (auparavant, le fichier suivant était essayé en cas de n’importe quelle erreur). Corrige également [#36317](https://github.com/ClickHouse/ClickHouse/issues/36317). [#36205](https://github.com/ClickHouse/ClickHouse/pull/36205) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d’un privilège `CLUSTER` distinct (et de la directive de configuration `access_control_improvements.on_cluster_queries_require_cluster_grant`, conservée pour la rétrocompatibilité et définie par défaut sur `false`). [#35767](https://github.com/ClickHouse/ClickHouse/pull/35767) ([Azat Khuzhin](https://github.com/azat)).
* Si la quantité de mémoire requise est disponible avant l’arrêt de la requête sélectionnée, toutes les requêtes en attente reprennent leur exécution. Désormais, nous n’arrêtons aucune requête si de la mémoire est libérée avant que la requête sélectionnée ne soit informée de l’annulation. [#35637](https://github.com/ClickHouse/ClickHouse/pull/35637) ([Dmitry Novik](https://github.com/novikd)).
* Détection des Nullable dans Protobuf. En proto3, les valeurs par défaut ne sont pas envoyées dans le flux binaire. Il n’est donc pas trivial de distinguer les valeurs NULL des valeurs par défaut pour les colonnes Nullable. Une manière standard de traiter ce problème consiste à utiliser les wrappers Google pour imbriquer la valeur cible dans un message interne (voir [https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/wrappers.proto](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/wrappers.proto)). Dans ce cas, un champ absent est interprété comme une valeur NULL, un champ dont la valeur interne est absente est interprété comme une valeur par défaut, et un champ avec une valeur ordinaire est interprété comme une valeur ordinaire. Cependant, ClickHouse interprète les wrappers Google comme des colonnes Nested. Nous proposons d’introduire un comportement spécial pour détecter les wrappers Google et les interpréter comme décrit ci-dessus. Par exemple, pour sérialiser des valeurs pour une colonne Nullable `test`, nous utiliserions `google.protobuf.StringValue test` dans notre schéma .proto. Notez que ces types sont ce que l’on appelle des "well-known types" dans Protobuf, implémentés directement dans la bibliothèque. [#35149](https://github.com/ClickHouse/ClickHouse/pull/35149) ([Jakub Kuklis](https://github.com/jkuklis)).
* Ajout de la prise en charge de la spécification de `content_type` dans la configuration des gestionnaires HTTP prédéfinis et statiques. [#34916](https://github.com/ClickHouse/ClickHouse/pull/34916) ([Roman Nikonov](https://github.com/nic11)).
* Avertissement approprié lors de l’utilisation de clickhouse-client --file sans `--external` au préalable. Ferme [#34747](https://github.com/ClickHouse/ClickHouse/issues/34747). [#34765](https://github.com/ClickHouse/ClickHouse/pull/34765) ([李扬](https://github.com/taiyang-li)).
* Amélioration du moteur de base de données MySQL pour le rendre compatible avec le type de données binary(0). [#37232](https://github.com/ClickHouse/ClickHouse/pull/37232) ([zzsmdfj](https://github.com/zzsmdfj)).
* Amélioration du rapport JSON de clickhouse-benchmark. [#36473](https://github.com/ClickHouse/ClickHouse/pull/36473) ([Tian Xinhui](https://github.com/xinhuitian)).
* Le serveur pouvait refuser de démarrer s’il ne parvenait pas à résoudre le nom d’hôte d’un dictionnaire ClickHouse externe. C’est désormais corrigé. Corrige [#36451](https://github.com/ClickHouse/ClickHouse/issues/36451). [#36463](https://github.com/ClickHouse/ClickHouse/pull/36463) ([tavplubix](https://github.com/tavplubix)).

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

* Désormais, `clickhouse-keeper` pour l’architecture `x86_64` est lié statiquement à [musl](https://musl.libc.org/) et ne dépend d’aucune bibliothèque système. [#31833](https://github.com/ClickHouse/ClickHouse/pull/31833) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les builds de ClickHouse pour l’architecture `PowerPC64LE` sont désormais disponibles via le script d’installation universel `curl https://clickhouse.com/ | sh` et par lien direct `https://builds.clickhouse.com/master/powerpc64le/clickhouse`. [#37095](https://github.com/ClickHouse/ClickHouse/pull/37095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Limiter la génération de code PowerPC à Power8 pour une meilleure compatibilité. Cela clôt l’issue [#36025](https://github.com/ClickHouse/ClickHouse/issues/36025). [#36529](https://github.com/ClickHouse/ClickHouse/pull/36529) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Simplifier le test de performance. Cela nous permettra de l’utiliser. [#36769](https://github.com/ClickHouse/ClickHouse/pull/36769) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Faire échouer la comparaison de performances en cas d’erreurs dans le rapport. [#34797](https://github.com/ClickHouse/ClickHouse/pull/34797) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajouter la prise en charge de ZSTD pour Arrow. Cela corrige l’issue [#35283](https://github.com/ClickHouse/ClickHouse/issues/35283). [#35486](https://github.com/ClickHouse/ClickHouse/pull/35486) ([Sean Lafferty](https://github.com/seanlaff)).

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

* Extrait l’ID de version s’il est présent dans l’URI et ajoute une requête à l’URI HTTP AWS. Clôt [#31221](https://github.com/ClickHouse/ClickHouse/issues/31221). - \[x] Extraire `Version ID` de l’URI s’il est présent, puis réassembler l’URI sans celui-ci. - \[x] Configurer l’objet `AWS HTTP URI` avec la requête. - \[x] Tests unitaires : [`gtest_s3_uri`](https://github.com/ClickHouse/ClickHouse/blob/2340a6c6849ebc05a8efbf97ba8de3ff9dc0eff4/src/IO/tests/gtest_s3_uri.cpp) - \[x] Supprimer le commit d’instrumentation. [#34571](https://github.com/ClickHouse/ClickHouse/pull/34571) ([Saad Ur Rahman](https://github.com/surahman)).
* Corrige l’alias attribute.values de system.opentelemetry\_span\_log en values au lieu de keys. [#37275](https://github.com/ClickHouse/ClickHouse/pull/37275) ([Aleksandr Razumov](https://github.com/ernado)).
* Corrige la conversion de Nullable(String) en Nullable(Bool/IPv4/IPv6). Clôt [#37221](https://github.com/ClickHouse/ClickHouse/issues/37221). [#37270](https://github.com/ClickHouse/ClickHouse/pull/37270) ([Kruglov Pavel](https://github.com/Avogar)).
* Fonctionnalité expérimentale : corrige l’exécution des mutations dans les tables contenant des colonnes de type `Object`. L’utilisation de sous-colonnes de type `Object` dans l’expression `WHERE` des requêtes `UPDATE` ou `DELETE` est désormais autorisée, ainsi que la manipulation (`DROP`, `MODIFY`) de sous-colonnes distinctes. Corrige [#37205](https://github.com/ClickHouse/ClickHouse/issues/37205). [#37266](https://github.com/ClickHouse/ClickHouse/pull/37266) ([Anton Popov](https://github.com/CurtizJ)).
* Kafka n’a pas besoin de `group.id` à l’étape du producteur. Dans le journal de la console, vous pouvez trouver un avertissement décrivant ce problème : `2022.05.15 17:59:13.270227 [ 137 ] {} <Warning> StorageKafka (topic-name): [rdk:CONFWARN] [thrd:app]: Configuration property group.id is a consumer property and will be ignored by this producer instance`. [#37228](https://github.com/ClickHouse/ClickHouse/pull/37228) ([Mark Andreev](https://github.com/mrk-andreev)).
* Fonctionnalité expérimentale (WindowView) : met à jour `max_fired_watermark ` une fois les blocks réellement déclenchés, en cas de suppression de données qui n’ont pas encore été déclenchées. [#37225](https://github.com/ClickHouse/ClickHouse/pull/37225) ([vxider](https://github.com/Vxider)).
* Corrige "Impossible de créer une colonne de type Set" pour les distributed queries avec LIMIT BY. [#37193](https://github.com/ClickHouse/ClickHouse/pull/37193) ([Azat Khuzhin](https://github.com/azat)).
* Fonctionnalité expérimentale : désormais, la requête WindowView `WATCH EVENTS` ne sera plus interrompue à cause du Chunk non vide créé dans `WindowViewSource.h:58`. [#37182](https://github.com/ClickHouse/ClickHouse/pull/37182) ([vxider](https://github.com/Vxider)).
* Active `enable_global_with_statement` pour les sous-requêtes, clôt [#37141](https://github.com/ClickHouse/ClickHouse/issues/37141). [#37166](https://github.com/ClickHouse/ClickHouse/pull/37166) ([Vladimir C](https://github.com/vdimir)).
* Corrige le cast implicite pour optimize\_skip\_unused\_shards\_rewrite\_in. [#37153](https://github.com/ClickHouse/ClickHouse/pull/37153) ([Azat Khuzhin](https://github.com/azat)).
* La fonction ILIKE sur les colonnes FixedString pouvait renvoyer des résultats erronés (c.-à-d. correspondre à moins d’éléments qu’elle n’aurait dû). [#37117](https://github.com/ClickHouse/ClickHouse/pull/37117) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige `GROUP BY` `AggregateFunction` (c.-à-d. lorsque vous faites un `GROUP BY` sur une colonne de type `AggregateFunction`). [#37093](https://github.com/ClickHouse/ClickHouse/pull/37093) ([Azat Khuzhin](https://github.com/azat)).
* Fonctionnalité expérimentale : correction de optimize\_aggregation\_in\_order avec GROUP BY avec préfixe et les fonctions d’agrégation \*Array. [#37050](https://github.com/ClickHouse/ClickHouse/pull/37050) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une dégradation des performances de certaines requêtes INSERT SELECT avec agrégation implicite. Corrige [#36792](https://github.com/ClickHouse/ClickHouse/issues/36792). [#37047](https://github.com/ClickHouse/ClickHouse/pull/37047) ([tavplubix](https://github.com/tavplubix)).
* Fonctionnalité expérimentale : correction de `GROUP BY` ordonné (`optimize_aggregation_in_order=1`) avec les fonctions d’agrégation `*Array` (`groupArrayArray`/...). [#37046](https://github.com/ClickHouse/ClickHouse/pull/37046) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une sortie invalide de LowCardinality->ArrowDictionary lorsque le type des index n’est pas UInt8. Clôt [#36832](https://github.com/ClickHouse/ClickHouse/issues/36832). [#37043](https://github.com/ClickHouse/ClickHouse/pull/37043) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un problème avec les valeurs infinies dans `quantileTDigest`. Corrige [#32107](https://github.com/ClickHouse/ClickHouse/issues/32107). [#37021](https://github.com/ClickHouse/ClickHouse/pull/37021) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Correction de l’envoi des données des tables externes dans HedgedConnections avec max\_parallel\_replicas != 1. [#36981](https://github.com/ClickHouse/ClickHouse/pull/36981) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une erreur logique sur la requête `TRUNCATE` dans la base de données `Replicated`. Corrige [#33747](https://github.com/ClickHouse/ClickHouse/issues/33747). [#36976](https://github.com/ClickHouse/ClickHouse/pull/36976) ([tavplubix](https://github.com/tavplubix)).
* Fonctionnalité expérimentale : correction d’un blocage lors de la suppression de la table source dans WindowView. Clôt [#35678](https://github.com/ClickHouse/ClickHouse/issues/35678). [#36967](https://github.com/ClickHouse/ClickHouse/pull/36967) ([vxider](https://github.com/Vxider)).
* Fonctionnalité expérimentale (cache rocksdb) : correction du problème [#36671](https://github.com/ClickHouse/ClickHouse/issues/36671). [#36929](https://github.com/ClickHouse/ClickHouse/pull/36929) ([李扬](https://github.com/taiyang-li)).
* Fonctionnalité expérimentale : correction de bogues lors de l’utilisation de plusieurs colonnes dans WindowView par l’ajout d’actions de conversion pour permettre d’appeler `writeIntoWindowView` avec un schéma légèrement différent. [#36928](https://github.com/ClickHouse/ClickHouse/pull/36928) ([vxider](https://github.com/Vxider)).
* Correction d’un bogue dans ClickHouse Keeper pouvant entraîner la corruption de fichiers journaux compressés en cas de faible charge et de redémarrages. [#36910](https://github.com/ClickHouse/ClickHouse/pull/36910) ([alesapin](https://github.com/alesapin)).
* Correction d’un résultat de requête incorrect lors d’une agrégation sur constante. Corrige [#36728](https://github.com/ClickHouse/ClickHouse/issues/36728). [#36888](https://github.com/ClickHouse/ClickHouse/pull/36888) ([Amos Bird](https://github.com/amosbird)).
* Fonctionnalité expérimentale : correction du compteur `current_size` dans le cache. [#36887](https://github.com/ClickHouse/ClickHouse/pull/36887) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Fonctionnalité expérimentale : correction du déclenchement dans la window view avec hop window [#34044](https://github.com/ClickHouse/ClickHouse/issues/34044). [#36861](https://github.com/ClickHouse/ClickHouse/pull/36861) ([vxider](https://github.com/Vxider)).
* Fonctionnalité expérimentale : correction d’un cast incorrect dans le buffer en cache depuis remote fs. [#36809](https://github.com/ClickHouse/ClickHouse/pull/36809) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la création de tables avec `flatten_nested = 0`. Auparavant, les colonnes `Nested` non apllaties pouvaient être aplaties après le redémarrage du serveur. [#36803](https://github.com/ClickHouse/ClickHouse/pull/36803) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de certains problèmes liés aux lectures asynchrones depuis un système de fichiers distant, qui survenaient lors de la lecture de données à faible cardinalité. [#36763](https://github.com/ClickHouse/ClickHouse/pull/36763) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Fonctionnalité expérimentale : correction de l'insertion dans des colonnes de type `Object` à partir de plusieurs fichiers, par exemple via la table function `file` avec des globs. [#36762](https://github.com/ClickHouse/ClickHouse/pull/36762) ([Anton Popov](https://github.com/CurtizJ)).
* Correction des timeouts dans les requêtes Hedged. Un blocage de la connexion juste après l'envoi d'une query distante pouvait entraîner une attente infinie. [#36749](https://github.com/ClickHouse/ClickHouse/pull/36749) ([Kruglov Pavel](https://github.com/Avogar)).
* Fonctionnalité expérimentale : correction d'un bogue de `groupBitmapAndState`/`groupBitmapOrState`/`groupBitmapXorState` sur une table distribuée. [#36739](https://github.com/ClickHouse/ClickHouse/pull/36739) ([Zhang Yifan](https://github.com/zhangyifan27)).
* Fonctionnalité expérimentale : pendant le [test](https://s3.amazonaws.com/clickhouse-test-reports/36376/1cb1c7275cb53769ab826772db9b71361bb3e413/stress_test__thread__actions_/clickhouse-server.clean.log) de la [PR](https://github.com/ClickHouse/ClickHouse/pull/36376), j'ai constaté qu'une classe de cache était initialisée deux fois, ce qui levait une exception. Bien que la cause de ce problème ne soit pas claire, il semble qu'il existe dans ClickHouse une logique rechargeant le disque de manière répétée ; il faut donc prévoir un traitement particulier pour cette situation. [#36737](https://github.com/ClickHouse/ClickHouse/pull/36737) ([Han Shukai](https://github.com/KinderRiven)).
* Correction des fusions verticales dans les wide parts. Auparavant, une exception `There is no column` pouvait être levée pendant la fusion. [#36707](https://github.com/ClickHouse/ClickHouse/pull/36707) ([Anton Popov](https://github.com/CurtizJ)).
* Correction du rechargement du serveur lors d'un changement de port (ne pas attendre les connexions en cours depuis le contexte de requête). [#36700](https://github.com/ClickHouse/ClickHouse/pull/36700) ([Azat Khuzhin](https://github.com/azat)).
* Fonctionnalité expérimentale : dans la [PR](https://github.com/ClickHouse/ClickHouse/pull/36376) précédente, j'ai constaté que les tests (tests sans état, vérification flaky (address, actions)) dépassaient le délai imparti. De plus, les tests en local peuvent également déclencher des deadlocks instables du système. Ce problème existe toujours avec la dernière version du code source de master. [#36697](https://github.com/ClickHouse/ClickHouse/pull/36697) ([Han Shukai](https://github.com/KinderRiven)).
* Fonctionnalité expérimentale : correction du redémarrage du serveur si la configuration du cache change. [#36685](https://github.com/ClickHouse/ClickHouse/pull/36685) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'une possible utilisation de mémoire après libération dans l'inférence de schéma. Ferme [#36661](https://github.com/ClickHouse/ClickHouse/issues/36661). [#36679](https://github.com/ClickHouse/ClickHouse/pull/36679) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l'analyse des paramètres de query dans la requête `CREATE` lorsque le moteur n'est pas spécifié. Corrige [https://github.com/ClickHouse/ClickHouse/pull/34187#issuecomment-1103812419](https://github.com/ClickHouse/ClickHouse/pull/34187#issuecomment-1103812419). [#36642](https://github.com/ClickHouse/ClickHouse/pull/36642) ([tavplubix](https://github.com/tavplubix)).
* Fonctionnalité expérimentale : correction des fusions de wide parts avec le type `Object`. [#36637](https://github.com/ClickHouse/ClickHouse/pull/36637) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d'un plantage du format lorsque l'expression par défaut suit EPHEMERAL sans être un littéral. Ferme [#36618](https://github.com/ClickHouse/ClickHouse/issues/36618). [#36633](https://github.com/ClickHouse/ClickHouse/pull/36633) ([flynn](https://github.com/ucasfl)).
* Correction de l'exception `Missing column`, qui pouvait survenir lors de l'utilisation de `INTERPOLATE` avec une table `ENGINE = MergeTree`. [#36549](https://github.com/ClickHouse/ClickHouse/pull/36549) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction d'une erreur potentielle liée aux littéraux dans `WHERE` pour les requêtes avec join. Clôture de [#36279](https://github.com/ClickHouse/ClickHouse/issues/36279). [#36542](https://github.com/ClickHouse/ClickHouse/pull/36542) ([Vladimir C](https://github.com/vdimir)).
* Correction de la mise à jour de l'offset dans ReadBufferFromEncryptedFile, qui pouvait entraîner un comportement indéfini. [#36493](https://github.com/ClickHouse/ClickHouse/pull/36493) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction des vérifications de cohérence du hostname pour la configuration du Keeper cluster. Ajout de la config `keeper_server.host_checks_enabled` pour activer ou désactiver ces vérifications. [#36492](https://github.com/ClickHouse/ClickHouse/pull/36492) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de l'utilisation des Executable User Defined Functions dans GROUP BY. Auparavant, les Executable User Defined Functions ne pouvaient pas être utilisées comme expressions dans GROUP BY. Clôture de [#36448](https://github.com/ClickHouse/ClickHouse/issues/36448). [#36486](https://github.com/ClickHouse/ClickHouse/pull/36486) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d'une exception possible liée à un paquet inconnu provenant du server dans le client. [#36481](https://github.com/ClickHouse/ClickHouse/pull/36481) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Fonctionnalité expérimentale (veuillez ne jamais utiliser `system.session_log`, elle sera supprimée) : ajout des valeurs enum manquantes dans la table system.session\_log. Clôture de [#36474](https://github.com/ClickHouse/ClickHouse/issues/36474). [#36480](https://github.com/ClickHouse/ClickHouse/pull/36480) ([Memo](https://github.com/Joeywzr)).
* Correction d'un bug dans l'inférence de schéma de s3Cluster qui faisait que toutes les données n'étaient pas lues lors d'un select depuis s3Cluster. Le bug est apparu dans [https://github.com/ClickHouse/ClickHouse/pull/35544](https://github.com/ClickHouse/ClickHouse/pull/35544). [#36434](https://github.com/ClickHouse/ClickHouse/pull/36434) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d'un déréférencement de nullptr dans JOIN et le matcher COLUMNS. Cela corrige [#36416](https://github.com/ClickHouse/ClickHouse/issues/36416). Cela concerne [https://github.com/ClickHouse/ClickHouse/pull/36417](https://github.com/ClickHouse/ClickHouse/pull/36417). [#36430](https://github.com/ClickHouse/ClickHouse/pull/36430) ([Amos Bird](https://github.com/amosbird)).
* Correction du rechargement du dictionnaire pour `ClickHouseDictionarySource` s'il contient des sous-requêtes scalaires. [#36390](https://github.com/ClickHouse/ClickHouse/pull/36390) ([lthaooo](https://github.com/lthaooo)).
* Correction d'une assertion dans JOIN, clôture de [#36199](https://github.com/ClickHouse/ClickHouse/issues/36199). [#36201](https://github.com/ClickHouse/ClickHouse/pull/36201) ([Vladimir C](https://github.com/vdimir)).
* Les requêtes avec des alias à l'intérieur d'opérateurs spéciaux renvoyaient une erreur d'analyse (cassé en 22.1). Example : `SELECT substring('test' AS t, 1, 1)`. [#36167](https://github.com/ClickHouse/ClickHouse/pull/36167) ([Maksim Kita](https://github.com/kitaisreal)).
* Fonctionnalité expérimentale : correction de l'insertion de JSON complexes avec des tableaux imbriqués dans des colonnes de type `Object`. [#36077](https://github.com/ClickHouse/ClickHouse/pull/36077) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de ALTER DROP COLUMN sur une colonne imbriquée avec des compact parts (c.-à-d. `ALTER TABLE x DROP COLUMN n`, lorsqu'il existe une colonne `n.d`). [#35797](https://github.com/ClickHouse/ClickHouse/pull/35797) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l'erreur de plage de longueur dans la fonction substring lorsque `offset` et `length` sont des constantes négatives et que `s` n'est pas constant. [#33861](https://github.com/ClickHouse/ClickHouse/pull/33861) ([RogerYK](https://github.com/RogerYK)).

### <a id="224" /> release ClickHouse 22.4, 2022-04-19. [Présentation](https://presentations.clickhouse.com/2022-release-22.4/), [Vidéo](https://www.youtube.com/watch?v=aFQs_zoYoXY)

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

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

* Ne plus autoriser SETTINGS après FORMAT dans les requêtes INSERT (il existe un paramètre de compatibilité, `allow_settings_after_format_in_insert`, pour accepter de telles requêtes, mais il est désactivé par défaut). [#35883](https://github.com/ClickHouse/ClickHouse/pull/35883) ([Azat Khuzhin](https://github.com/azat)).
* La fonction `yandexConsistentHash` (algorithme de hachage cohérent de Konstantin "kostik" Oblakov) a été renommée en `kostikConsistentHash`. L'ancien nom est conservé comme alias pour des raisons de compatibilité. Bien que cette modification soit rétrocompatible, nous pourrions supprimer cet alias dans de futures releases ; il est donc recommandé de mettre à jour les usages de cette fonction dans vos applications. [#35553](https://github.com/ClickHouse/ClickHouse/pull/35553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Ajout de l’extension INTERPOLATE à ORDER BY ... WITH FILL. Résout [#34903](https://github.com/ClickHouse/ClickHouse/issues/34903). [#35349](https://github.com/ClickHouse/ClickHouse/pull/35349) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Profiling au niveau des processeurs (avec le paramètre `log_processors_profiles`, ClickHouse écrira dans la table `system.processors_profile_log` le temps passé par chaque processeur pendant l’exécution ou l’attente de données). [#34355](https://github.com/ClickHouse/ClickHouse/pull/34355) ([Azat Khuzhin](https://github.com/azat)).
* Ajout des fonctions makeDate(year, month, day), makeDate32(year, month, day). [#35628](https://github.com/ClickHouse/ClickHouse/pull/35628) ([Alexander Gololobov](https://github.com/davenger)). Implémentation de makeDateTime() et makeDateTIme64(). [#35934](https://github.com/ClickHouse/ClickHouse/pull/35934) ([Alexander Gololobov](https://github.com/davenger)).
* Prise en charge du nouveau type de QUOTA `WRITTEN BYTES` pour limiter le volume d’octets écrits lors des requêtes d’insert. [#35736](https://github.com/ClickHouse/ClickHouse/pull/35736) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la fonction `flattenTuple`. Elle prend en argument un `Tuple` nommé imbriqué et renvoie un `Tuple` aplati dont les éléments sont les paths du `Tuple` d’origine. Par ex. : `Tuple(a Int, Tuple(b Int, c Int)) -> Tuple(a Int, b Int, c Int)`. `flattenTuple` peut être utilisée pour sélectionner tous les paths du type `Object` comme colonnes distinctes. [#35690](https://github.com/ClickHouse/ClickHouse/pull/35690) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout des fonctions `arrayFirstOrNull`, `arrayLastOrNull`. Résout [#35238](https://github.com/ClickHouse/ClickHouse/issues/35238). [#35414](https://github.com/ClickHouse/ClickHouse/pull/35414) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout des fonctions `minSampleSizeContinous` et `minSampleSizeConversion`. Auteur : [achimbab](https://github.com/achimbab). [#35360](https://github.com/ClickHouse/ClickHouse/pull/35360) ([Maksim Kita](https://github.com/kitaisreal)).
* Nouvelles fonctions `minSampleSizeContinous` et `minSampleSizeConversion`. [#34354](https://github.com/ClickHouse/ClickHouse/pull/34354) ([achimbab](https://github.com/achimbab)).
* Introduction du format `ProtobufList` (tous les enregistrements sous forme de messages répétés dans le Protobuf de sortie). Résout [#16436](https://github.com/ClickHouse/ClickHouse/issues/16436). [#35152](https://github.com/ClickHouse/ClickHouse/pull/35152) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout des fonctions `h3PointDistM`, `h3PointDistKm`, `h3PointDistRads`, `h3GetRes0Indexes`, `h3GetPentagonIndexes`. [#34568](https://github.com/ClickHouse/ClickHouse/pull/34568) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la fonction `toLastDayOfMonth`, qui arrondit une date ou une date avec heure au dernier jour du mois. [#33501](https://github.com/ClickHouse/ClickHouse/issues/33501). [#34394](https://github.com/ClickHouse/ClickHouse/pull/34394) ([Habibullah Oladepo](https://github.com/holadepo)).
* Ajout d’un paramètre de load balancing pour le client \[Zoo]Keeper. Résout [#29617](https://github.com/ClickHouse/ClickHouse/issues/29617). [#30325](https://github.com/ClickHouse/ClickHouse/pull/30325) ([小路](https://github.com/nicelulu)).
* Ajout d’un nouveau type de politiques de lignes nommé `simple`. Avant cette PR, nous avions deux types de politiques de lignes : `permissive` et `restrictive`. Une politique de lignes `simple` ajoute un nouveau filtre à une table, sans les effets de bord des politiques permissive et restrictive. [#35345](https://github.com/ClickHouse/ClickHouse/pull/35345) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de la possibilité de spécifier le secret du cluster dans une base de données Replicated. [#35333](https://github.com/ClickHouse/ClickHouse/pull/35333) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout de vérifications élémentaires au démarrage du serveur (mémoire disponible et espace disque, nombre maximal de threads, etc.). [#34566](https://github.com/ClickHouse/ClickHouse/pull/34566) ([Sergei Trifonov](https://github.com/serxa)).
* Amélioration d’INTERVAL - il peut désormais être utilisé avec `[MILLI|MICRO|NANO]SECOND`. Ajout des fonctions `toStartOf[Milli|Micro|Nano]second()`. Ajout de `[add|subtract][Milli|Micro|Nano]seconds()`. [#34353](https://github.com/ClickHouse/ClickHouse/pull/34353) ([Andrey Zvonov](https://github.com/zvonand)).

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

* Ajout de la prise en charge des transactions pour les tables `MergeTree` simples. Cette fonctionnalité est très expérimentale et n’est pas recommandée en production. Fait partie de [#22086](https://github.com/ClickHouse/ClickHouse/issues/22086). [#24258](https://github.com/ClickHouse/ClickHouse/pull/24258) ([tavplubix](https://github.com/tavplubix)).
* Prise en charge de l’inférence de schéma pour le type `Object` au format `JSONEachRow`. Permet de convertir des colonnes de type `Map` en colonnes de type `Object`. [#35629](https://github.com/ClickHouse/ClickHouse/pull/35629) ([Anton Popov](https://github.com/CurtizJ)).
* Permet d’écrire dans le cache du système de fichiers distant lors de toutes les opérations d’écriture. Ajout de la table `system.remote_filesystem_cache`. Ajout de la requête `drop remote filesystem cache`. Ajout de l’introspection des métadonnées S3 avec la table `system.remote_data_paths`. Résout [#34021](https://github.com/ClickHouse/ClickHouse/issues/34021). Ajout d’une option de cache pour les merges, avec le mode `read_from_filesystem_cache_if_exists_otherwise_bypass_cache` (activé par défaut pour les merges et pouvant aussi être activé via un paramètre de requête du même nom). Renommage des paramètres liés au cache (`remote_fs_enable_cache -> enable_filesystem_cache`, etc.). [#35475](https://github.com/ClickHouse/ClickHouse/pull/35475) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Option permettant de stocker les métadonnées des parts dans RocksDB. Accélère le chargement des parts de MergeTree afin de réduire le temps de démarrage de clickhouse-server. Grâce à cette amélioration, clickhouse-server a pu faire passer son temps de démarrage de 75 minutes à 20 secondes, avec 700k parts MergeTree. [#32928](https://github.com/ClickHouse/ClickHouse/pull/32928) ([李扬](https://github.com/taiyang-li)).

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

* Nouvelle optimisation du plan de requête. Les fonctions sont désormais évaluées après `ORDER BY` lorsque c’est possible. Par exemple, pour la requête `SELECT sipHash64(number) FROM numbers(1e8) ORDER BY number LIMIT 5`, la fonction `sipHash64` serait évaluée après `ORDER BY` et `LIMIT`, ce qui permet un gain de performances d’environ 20x. [#35623](https://github.com/ClickHouse/ClickHouse/pull/35623) ([Nikita Taranov](https://github.com/nickitat)).
* La taille des tables de hachage utilisées lors de l’agrégation est désormais collectée et réutilisée dans les requêtes suivantes afin d’éviter leur redimensionnement. [#33439](https://github.com/ClickHouse/ClickHouse/pull/33439) ([Nikita Taranov](https://github.com/nickitat)).
* Amélioration de la fonction hasAll grâce aux instructions SIMD (SSE et AVX2). [#27653](https://github.com/ClickHouse/ClickHouse/pull/27653) ([youennL-cs](https://github.com/youennL-cs)). [#35723](https://github.com/ClickHouse/ClickHouse/pull/35723) ([Maksim Kita](https://github.com/kitaisreal)).
* Plusieurs modifications améliorent les performances de ASOF JOIN (gain de 1,2 à 1,6x). La prise en charge des grands entiers a également été ajoutée. [#34733](https://github.com/ClickHouse/ClickHouse/pull/34733) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration des performances de ASOF JOIN lorsque la clé est un entier natif. [#35525](https://github.com/ClickHouse/ClickHouse/pull/35525) ([Maksim Kita](https://github.com/kitaisreal)).
* Parallélisation des multipart uploads vers le stockage S3. [#35343](https://github.com/ClickHouse/ClickHouse/pull/35343) ([Sergei Trifonov](https://github.com/serxa)).
* Le moteur de stockage URL télécharge désormais plusieurs chunks en parallèle si l’endpoint prend en charge HTTP Range. Deux paramètres supplémentaires ont été ajoutés, `max_download_threads` et `max_download_buffer_size`, qui contrôlent le nombre maximal de threads qu’une seule requête peut utiliser pour télécharger le fichier, ainsi que le nombre maximal d’octets que chaque thread peut traiter. [#35150](https://github.com/ClickHouse/ClickHouse/pull/35150) ([Antonio Andelic](https://github.com/antonio2368)).
* Utilisation de plusieurs threads pour télécharger des objets depuis S3. Le téléchargement peut être contrôlé à l’aide des paramètres `max_download_threads` et `max_download_buffer_size`. [#35571](https://github.com/ClickHouse/ClickHouse/pull/35571) ([Antonio Andelic](https://github.com/antonio2368)).
* Réduction de la portée du mutex lors des interactions avec HDFS. Lié à [#35292](https://github.com/ClickHouse/ClickHouse/issues/35292). [#35646](https://github.com/ClickHouse/ClickHouse/pull/35646) ([shuchaome](https://github.com/shuchaome)).
* Les mutations ne sont désormais requises pour le TTL au niveau de la table que lorsqu’il a été modifié. [#35953](https://github.com/ClickHouse/ClickHouse/pull/35953) ([Azat Khuzhin](https://github.com/azat)).

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

* Nombreuses améliorations de l’inférence de schéma. Quelques ajustements et heuristiques sont désormais utilisés pour déterminer les nombres, chaînes, arrays, Tuple et maps dans les formats de données CSV, TSV et TSVRaw. Ajout du paramètre `input_format_csv_use_best_effort_in_schema_inference` pour le format CSV, qui active ou désactive l’utilisation de ces heuristiques ; s’il est désactivé, tout est traité comme une chaîne. Ajout d’un paramètre similaire, `input_format_tsv_use_best_effort_in_schema_inference`, pour le format TSV/TSVRaw. Ces paramètres sont activés par défaut. - Ajout de la prise en charge de Maps pour l’inférence de schéma dans le format Values. - Correction d’un possible segfault lors de l’inférence de schéma dans le format Values. - Possibilité d’ignorer les colonnes avec des types non pris en charge dans les formats Arrow/ORC/Parquet. Ajout des paramètres correspondants : `input_format_{parquet|orc|arrow}_skip_columns_with_unsupported_types_in_schema_inference`. Ces paramètres sont désactivés par défaut. - Possibilité de convertir une colonne de type Null en colonne Nullable contenant uniquement des valeurs NULL dans les formats Arrow/Parquet. - Possibilité de spécifier les noms de colonnes pour l’inférence de schéma via le paramètre `column_names_for_schema_inference` pour les formats qui ne contiennent pas de noms de colonnes (comme CSV, TSV, JSONCompactEachRow, etc.) - Correction de l’inférence de schéma dans les formats ORC/Arrow/Parquet pour la gestion des colonnes Nullable. Auparavant, aucun des types inférés n’était Nullable, ce qui empêchait la lecture des colonnes Nullable à partir des données ; c’est désormais corrigé, et tous les types inférés sont toujours Nullable (car il n’est pas possible de déterminer si une colonne est Nullable ou non en lisant le schéma). - Correction de l’inférence de schéma dans le format Template avec les règles d’échappement CSV. [#35582](https://github.com/ClickHouse/ClickHouse/pull/35582) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout du parsing parallèle et de l’inférence de schéma pour le format `JSONAsObject`. [#35592](https://github.com/ClickHouse/ClickHouse/pull/35592) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la prise en charge de l’inférence de schéma automatique pour la table function `s3Cluster`. Synchronisation des signatures de `s3 ` et `s3Cluster`. [#35544](https://github.com/ClickHouse/ClickHouse/pull/35544) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout de la prise en charge de l’inférence de schéma pour `hdfsCluster`. [#35602](https://github.com/ClickHouse/ClickHouse/pull/35602) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout du nouveau paramètre `input_format_json_read_bools_as_numbers`, qui permet d’inférer et de parser les Bools comme des nombres dans les JSON input formats. Il est activé par défaut. Suggéré par @alexey-milovidov. [#35735](https://github.com/ClickHouse/ClickHouse/pull/35735) ([Kruglov Pavel](https://github.com/Avogar)).
* Amélioration de l’ordre des colonnes dans l’inférence de schéma pour les formats TSKV et JSONEachRow, corrige [#35640](https://github.com/ClickHouse/ClickHouse/issues/35640). L’inférence de schéma ne s’arrête plus lors de la lecture d’une ligne vide dans les formats TSKV et JSONEachRow. [#35724](https://github.com/ClickHouse/ClickHouse/pull/35724) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout des paramètres `input_format_orc_case_insensitive_column_matching`, `input_format_arrow_case_insensitive_column_matching` et `input_format_parquet_case_insensitive_column_matching`, qui permettent à ClickHouse d’utiliser une correspondance des colonnes insensible à la casse lors de la lecture de données à partir de fichiers ORC, Arrow ou Parquet. [#35459](https://github.com/ClickHouse/ClickHouse/pull/35459) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la colonne `is_secure` à `system.query_log`, qui indique si le client utilise une connexion sécurisée via TCP ou HTTP. [#35705](https://github.com/ClickHouse/ClickHouse/pull/35705) ([Antonio Andelic](https://github.com/antonio2368)).
* Désormais, `kafka_num_consumers` peut être supérieur au nombre de cœurs physiques sur les machines disposant de peu de ressources (moins de 16 cœurs). [#35926](https://github.com/ClickHouse/ClickHouse/pull/35926) ([alesapin](https://github.com/alesapin)).
* Ajout de quelques metrics de base pour surveiller les tables engine=Kafka. [#35916](https://github.com/ClickHouse/ClickHouse/pull/35916) ([filimonov](https://github.com/filimonov)).
* Désormais, il n'est plus permis d'exécuter `ALTER TABLE ... RESET SETTING` sur des paramètres inexistants pour la famille de moteurs MergeTree. Corrige [#35816](https://github.com/ClickHouse/ClickHouse/issues/35816). [#35884](https://github.com/ClickHouse/ClickHouse/pull/35884) ([alesapin](https://github.com/alesapin)).
* Désormais, certaines requêtes `ALTER MODIFY COLUMN` sur les types `Arrays` et `Nullable` peuvent être effectuées au niveau des métadonnées, sans mutation. Par exemple, passer de `Array(Enum8('Option1'=1))` à `Array(Enum8('Option1'=1, 'Option2'=2))`. [#35882](https://github.com/ClickHouse/ClickHouse/pull/35882) ([alesapin](https://github.com/alesapin)).
* Ajout d'une animation à l'icône de sablier pour indiquer à l'utilisateur qu'une requête est en cours d'exécution. [#35860](https://github.com/ClickHouse/ClickHouse/pull/35860) ([peledni](https://github.com/peledni)).
* Prise en charge de `ALTER TABLE t DETACH PARTITION (ALL)`. [#35794](https://github.com/ClickHouse/ClickHouse/pull/35794) ([awakeljw](https://github.com/awakeljw)).
* Améliore l'analyse des projections afin d'optimiser les requêtes triviales comme `count()`. [#35788](https://github.com/ClickHouse/ClickHouse/pull/35788) ([Amos Bird](https://github.com/amosbird)).
* Prise en charge de l'inférence de schéma pour `insert select` lors de l'utilisation de la fonction de table `input`. Le schéma est récupéré depuis la table d'insertion au lieu d'être inféré à partir des données dans le cas d'un `insert select` depuis des fonctions de table prenant en charge l'inférence de schéma. Clôture [#35639](https://github.com/ClickHouse/ClickHouse/issues/35639). [#35760](https://github.com/ClickHouse/ClickHouse/pull/35760) ([Kruglov Pavel](https://github.com/Avogar)).
* Respecte `remote_url_allow_hosts` pour les tables Hive. [#35743](https://github.com/ClickHouse/ClickHouse/pull/35743) ([李扬](https://github.com/taiyang-li)).
* Implémente `send_logs_level` pour clickhouse-local. Clôture [#35653](https://github.com/ClickHouse/ClickHouse/issues/35653). [#35716](https://github.com/ClickHouse/ClickHouse/pull/35716) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Clôture [#35641](https://github.com/ClickHouse/ClickHouse/issues/35641). Autorise les colonnes `EPHEMERAL` sans expression par défaut explicite. [#35706](https://github.com/ClickHouse/ClickHouse/pull/35706) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajoute le compteur d'événements de profil `AsyncInsertBytes` pour la taille des INSERT asynchrones. [#35644](https://github.com/ClickHouse/ClickHouse/pull/35644) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliore la description du pipeline pour JOIN. [#35612](https://github.com/ClickHouse/ClickHouse/pull/35612) ([何李夫](https://github.com/helifu)).
* Déduit le chemin absolu de la config HDFS. [#35572](https://github.com/ClickHouse/ClickHouse/pull/35572) ([李扬](https://github.com/taiyang-li)).
* Améliore les performances du collage et la compatibilité de clickhouse-client. Cela aide à résoudre [#35501](https://github.com/ClickHouse/ClickHouse/issues/35501). [#35541](https://github.com/ClickHouse/ClickHouse/pull/35541) ([Amos Bird](https://github.com/amosbird)).
* Il était possible de provoquer un dépassement de pile dans des requêtes distribuées si l'un des paramètres `async_socket_for_remote` ou `use_hedged_requests` était activé lors de l'analyse d'un type de données très profondément imbriqué (au moins dans une build de débogage). Clôture [#35509](https://github.com/ClickHouse/ClickHouse/issues/35509). [#35524](https://github.com/ClickHouse/ClickHouse/pull/35524) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajoute la taille des sous-colonnes à la table `system.parts_columns`. [#35488](https://github.com/ClickHouse/ClickHouse/pull/35488) ([Anton Popov](https://github.com/CurtizJ)).
* Ajouter des informations explicites sur la table au nœud de scan du plan d’exécution de la requête et du pipeline. [#35460](https://github.com/ClickHouse/ClickHouse/pull/35460) ([何李夫](https://github.com/helifu)).
* Permettre au serveur d’écouter sur des ports à numéro bas (par ex. 443). Le script d’installation de ClickHouse définira `cap_net_bind_service` sur le fichier binaire. [#35451](https://github.com/ClickHouse/ClickHouse/pull/35451) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corriger `INSERT INTO table FROM INFILE` : la barre de progression ne s’affichait pas. [#35429](https://github.com/ClickHouse/ClickHouse/pull/35429) ([xiedeyantu](https://github.com/xiedeyantu)).
* Ajouter les arguments `--user`, `--password`, `--host`, `--port` pour l’outil `clickhouse-diagnostics`. [#35422](https://github.com/ClickHouse/ClickHouse/pull/35422) ([李扬](https://github.com/taiyang-li)).
* Prendre en charge uuid pour les moteurs Postgres. Clôt [#35384](https://github.com/ClickHouse/ClickHouse/issues/35384). [#35403](https://github.com/ClickHouse/ClickHouse/pull/35403) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Pour la fonction de table `s3cluster`, `HDFSCluster` ou `hive`, il était impossible d’obtenir le bon `AccessType` via `StorageFactory::instance().getSourceAccessType(getStorageTypeName())`. Cette PR corrige le problème. [#35365](https://github.com/ClickHouse/ClickHouse/pull/35365) ([李扬](https://github.com/taiyang-li)).
* Supprimer l’option `--testmode` de clickhouse-client et l’activer inconditionnellement. [#35354](https://github.com/ClickHouse/ClickHouse/pull/35354) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ne pas autoriser l’opération `wchc` (commande à quatre lettres) pour ClickHouse Keeper. [#35320](https://github.com/ClickHouse/ClickHouse/pull/35320) ([zhangyuli1](https://github.com/zhangyuli1)).
* Ajouter la fonction `getTypeSerializationStreams`. Pour un type donné (détecté à partir de la colonne), elle renvoie un tableau contenant tous les chemins des sous-flux de sérialisation. Cette fonction est surtout utile aux développeurs. [#35290](https://github.com/ClickHouse/ClickHouse/pull/35290) ([李扬](https://github.com/taiyang-li)).
* Si `port` n’est pas spécifié dans la configuration du cluster, le port par défaut du serveur sera utilisé. Clôt [#34769](https://github.com/ClickHouse/ClickHouse/issues/34769). [#34772](https://github.com/ClickHouse/ClickHouse/pull/34772) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Utiliser l’index `minmax` pour les fichiers ORC/Parquet dans Hive Engine. PR associée : [https://github.com/ClickHouse/arrow/pull/10](https://github.com/ClickHouse/arrow/pull/10). [#34631](https://github.com/ClickHouse/ClickHouse/pull/34631) ([李扬](https://github.com/taiyang-li)).
* Les tables de logs système permettent désormais de spécifier `COMMENT` dans la déclaration `ENGINE`. Clôt [#33768](https://github.com/ClickHouse/ClickHouse/issues/33768). [#34536](https://github.com/ClickHouse/ClickHouse/pull/34536) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge correcte du paramètre `max_rows_to_read` lors d’une lecture dans l’ordre de la clé de tri avec une limite spécifiée. Auparavant, l’exception `Limit for rows or bytes to read exceeded` pouvait être levée même si la requête nécessitait en réalité de lire moins de lignes. [#33230](https://github.com/ClickHouse/ClickHouse/pull/33230) ([Anton Popov](https://github.com/CurtizJ)).
* Respecter uniquement le quota et la période des cgroups, et ignorer les shares (qui ne limitent pas réellement le nombre de cœurs pouvant être utilisés). [#35815](https://github.com/ClickHouse/ClickHouse/pull/35815) ([filimonov](https://github.com/filimonov)).

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

* Ajout d'une nouvelle série de paramètres de randomisation dans les tests fonctionnels. [#35047](https://github.com/ClickHouse/ClickHouse/pull/35047) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d'une vérification de rétrocompatibilité dans le test de stress. Clôt [#25088](https://github.com/ClickHouse/ClickHouse/issues/25088). [#27928](https://github.com/ClickHouse/ClickHouse/pull/27928) ([Kruglov Pavel](https://github.com/Avogar)).
* Migration de la construction des paquets vers `nfpm` - dépréciation du script `release` au profit de `packages/build` - compilation de l'ensemble dans l'image clickhouse/binary-builder (nettoyage : clickhouse/deb-builder) - ajout de la suppression des symboles dans cmake (todo : use $prefix/lib/$bin\_dir/clickhouse/\$binary.debug) - correction d'un problème avec les symboles DWARF - ajout des paquets Alpine APK - renommage de `alien` en `additional_pkgs`. [#33664](https://github.com/ClickHouse/ClickHouse/pull/33664) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajout d'une analyse nocturne et du téléversement vers Coverity. [#34895](https://github.com/ClickHouse/ClickHouse/pull/34895) ([Boris Kuschel](https://github.com/bkuschel)).
* Ajout d'un petit paquet dédié pour `clickhouse-keeper`. [#35308](https://github.com/ClickHouse/ClickHouse/pull/35308) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* L'exécution avec podman échouait : il signalait que le même volume était spécifié deux fois. [#35978](https://github.com/ClickHouse/ClickHouse/pull/35978) ([Roman Nikonov](https://github.com/nic11)).
* Amélioration mineure de la configuration de compilation de contrib/krb5. [#35832](https://github.com/ClickHouse/ClickHouse/pull/35832) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Ajout d'un label pour identifier une tâche de build pour chaque image. [#35583](https://github.com/ClickHouse/ClickHouse/pull/35583) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Application du formateur `black` au code Python et ajout d'une vérification à chaque commit. [#35466](https://github.com/ClickHouse/ClickHouse/pull/35466) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Refonte de l'image alpine pour utiliser un Dockerfile propre. Création d'un script dans tests/ci pour construire à la fois les images ubuntu et alpine. Ajout de l'image clickhouse-keeper (cc @nikitamikhaylov). Ajout d'une vérification de build à PullRequestCI. Ajout d'un job à ReleaseCI. Ajout d'un job à MasterCI pour construire et publier les images `clickhouse/clickhouse-server:head` et `clickhouse/clickhouse-keeper:head` pour chaque PR fusionnée. [#35211](https://github.com/ClickHouse/ClickHouse/pull/35211) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Correction du rapport de test de stress dans la CI : nous ne téléversons désormais plus qu'une seule fois le runlog contenant les informations sur les tests de stress démarrés. [#35093](https://github.com/ClickHouse/ClickHouse/pull/35093) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Passage à libcxx / libcxxabi depuis LLVM 14. [#34906](https://github.com/ClickHouse/ClickHouse/pull/34906) ([Raúl Marín](https://github.com/Algunenano)).
* Mise à jour d'unixodbc pour atténuer CVE-2018-7485. Note : cette CVE n'est pas pertinente pour ClickHouse, car celui-ci implémente sa propre couche d'isolation pour ODBC. [#35943](https://github.com/ClickHouse/ClickHouse/pull/35943) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).

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

* Ajout des paramètres `input_format_ipv4_default_on_conversion_error`, `input_format_ipv6_default_on_conversion_error` pour permettre l’insertion de valeurs d’adresse IP invalides avec la valeur par défaut dans les tables. Ferme [#35726](https://github.com/ClickHouse/ClickHouse/issues/35726). [#35733](https://github.com/ClickHouse/ClickHouse/pull/35733) ([Maksim Kita](https://github.com/kitaisreal)).
* Évite d’effacer des colonnes d’un bloc si elles n’existent pas lors de la lecture des données depuis Hive. [#35393](https://github.com/ClickHouse/ClickHouse/pull/35393) ([lgbo](https://github.com/lgbo-ustc)).
* Ajout d’une vérification des types lors de la création d’une vue matérialisée. Ferme [#23684](https://github.com/ClickHouse/ClickHouse/issues/23684). [#24896](https://github.com/ClickHouse/ClickHouse/pull/24896) ([hexiaoting](https://github.com/hexiaoting)).
* Correction de la mise en forme des requêtes INSERT INFILE (guillemets manquants). [#35886](https://github.com/ClickHouse/ClickHouse/pull/35886) ([Azat Khuzhin](https://github.com/azat)).
* Désactivation de `session_log` car un problème de sûreté mémoire a été détecté par fuzzing. Voir [#35714](https://github.com/ClickHouse/ClickHouse/issues/35714). [#35873](https://github.com/ClickHouse/ClickHouse/pull/35873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Évite de traiter plusieurs fois le TTL par colonne. [#35820](https://github.com/ClickHouse/ClickHouse/pull/35820) ([Azat Khuzhin](https://github.com/azat)).
* Correction des insertions dans des colonnes de type `Object` lorsqu’une requête d’insertion contient des données liées à plusieurs partitions. [#35806](https://github.com/ClickHouse/ClickHouse/pull/35806) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un bug dans les index de colonnes absentes des formats -WithNames, qui entraînait l’erreur `INCORRECT_NUMBER_OF_COLUMNS ` lorsque le nombre de colonnes dépassait 256. Ferme [#35793](https://github.com/ClickHouse/ClickHouse/issues/35793). [#35803](https://github.com/ClickHouse/ClickHouse/pull/35803) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de [#35751](https://github.com/ClickHouse/ClickHouse/issues/35751). [#35799](https://github.com/ClickHouse/ClickHouse/pull/35799) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de la lecture depuis HDFS au format Snappy. [#35771](https://github.com/ClickHouse/ClickHouse/pull/35771) ([shuchaome](https://github.com/shuchaome)).
* Correction d’un bug dans la conversion de types personnalisés en chaîne de caractères, qui pouvait entraîner un segfault ou des messages d’erreur inattendus. Ferme [#35752](https://github.com/ClickHouse/ClickHouse/issues/35752). [#35755](https://github.com/ClickHouse/ClickHouse/pull/35755) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l’implémentation de any/all (sous-requête). Ferme [#35489](https://github.com/ClickHouse/ClickHouse/issues/35489). [#35727](https://github.com/ClickHouse/ClickHouse/pull/35727) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la suppression d’une base de données non vide dans clickhouse-local. Ferme [#35692](https://github.com/ClickHouse/ClickHouse/issues/35692). [#35711](https://github.com/ClickHouse/ClickHouse/pull/35711) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un bug lors de la création d’une vue matérialisée avec sous-requête après le redémarrage du serveur. La vue matérialisée n’était plus mise à jour après des insertions dans la table sous-jacente à la suite du redémarrage du serveur. Ferme [#35511](https://github.com/ClickHouse/ClickHouse/issues/35511). [#35691](https://github.com/ClickHouse/ClickHouse/pull/35691) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une possible exception `Can't adjust last granule` lors de la lecture des sous-colonnes du type expérimental `Object`. [#35687](https://github.com/ClickHouse/ClickHouse/pull/35687) ([Anton Popov](https://github.com/CurtizJ)).
* Activer la compilation JIT par défaut lors du build. [#35683](https://github.com/ClickHouse/ClickHouse/pull/35683) ([Maksim Kita](https://github.com/kitaisreal)).
* Corriger une possible perte de sous-colonnes dans le type expérimental `Object`. [#35682](https://github.com/ClickHouse/ClickHouse/pull/35682) ([Anton Popov](https://github.com/CurtizJ)).
* Corriger la vérification de la nullabilité de la clé de jointure ASOF JOIN, ferme [#35565](https://github.com/ClickHouse/ClickHouse/issues/35565). [#35674](https://github.com/ClickHouse/ClickHouse/pull/35674) ([Vladimir C](https://github.com/vdimir)).
* Corriger la logique de vérification des parts pour les parts avec projections. L’erreur se produisait lorsque la projection et la part principale avaient des types différents. Cela est similaire à [https://github.com/ClickHouse/ClickHouse/pull/33774](https://github.com/ClickHouse/ClickHouse/pull/33774) . Le bug a été corrigé par @caoyang10. [#35667](https://github.com/ClickHouse/ClickHouse/pull/35667) ([Amos Bird](https://github.com/amosbird)).
* Corriger le crash du serveur lorsqu’un grand nombre d’arguments est passé à la fonction `format`. Voir le fichier de test pour savoir comment reproduire le crash. [#35651](https://github.com/ClickHouse/ClickHouse/pull/35651) ([Amos Bird](https://github.com/amosbird)).
* Corriger l’utilisation des quotas avec les insertions asynchrones. [#35645](https://github.com/ClickHouse/ClickHouse/pull/35645) ([Anton Popov](https://github.com/CurtizJ)).
* Corriger les arguments positionnels avec des alias. Ferme [#35600](https://github.com/ClickHouse/ClickHouse/issues/35600). [#35620](https://github.com/ClickHouse/ClickHouse/pull/35620) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Vérifier `remote_url_allow_hosts` avant l’inférence de schéma dans le moteur URL. Ferme [#35064](https://github.com/ClickHouse/ClickHouse/issues/35064). [#35619](https://github.com/ClickHouse/ClickHouse/pull/35619) ([Kruglov Pavel](https://github.com/Avogar)).
* Corriger `HashJoin` lorsque des colonnes de type `LowCardinality` sont utilisées. Cela ferme [#35548](https://github.com/ClickHouse/ClickHouse/issues/35548). [#35616](https://github.com/ClickHouse/ClickHouse/pull/35616) ([Antonio Andelic](https://github.com/antonio2368)).
* Corriger un possible segfault dans MaterializedPostgreSQL, qui se produisait si une exception survenait lorsque les données collectées en mémoire étaient synchronisées dans les tables sous-jacentes. Ferme [#35611](https://github.com/ClickHouse/ClickHouse/issues/35611). [#35614](https://github.com/ClickHouse/ClickHouse/pull/35614) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Le paramètre `database_atomic_wait_for_drop_and_detach_synchronously` fonctionnait incorrectement pour la requête `ATTACH TABLE` lorsqu’une table précédemment détachée était encore utilisée. C’est corrigé. [#35594](https://github.com/ClickHouse/ClickHouse/pull/35594) ([tavplubix](https://github.com/tavplubix)).
* Corriger les en-têtes HTTP avec les collections nommées et ajouter compression\_method. Ferme [#35273](https://github.com/ClickHouse/ClickHouse/issues/35273). Ferme [#35269](https://github.com/ClickHouse/ClickHouse/issues/35269). [#35593](https://github.com/ClickHouse/ClickHouse/pull/35593) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corriger la récupération des colonnes virtuelles par le moteur S3. Ferme [#35411](https://github.com/ClickHouse/ClickHouse/issues/35411). [#35586](https://github.com/ClickHouse/ClickHouse/pull/35586) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corriger la déduction du type de retour pour `caseWithExpression`. Le type de la branche ELSE est désormais correctement pris en compte. [#35576](https://github.com/ClickHouse/ClickHouse/pull/35576) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de l’analyse des adresses IPv6 de plus de 39 caractères. Clôt [#34022](https://github.com/ClickHouse/ClickHouse/issues/34022). [#35539](https://github.com/ClickHouse/ClickHouse/pull/35539) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction de la conversion en adresses IPv4/IPv6 dans la section IN. Corrige [#35528](https://github.com/ClickHouse/ClickHouse/issues/35528). [#35534](https://github.com/ClickHouse/ClickHouse/pull/35534) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un crash lors de l’évaluation court-circuitée des fonctions lorsqu’un des arguments est une constante Nullable. Clôt [#35497](https://github.com/ClickHouse/ClickHouse/issues/35497). Clôt [#35496](https://github.com/ClickHouse/ClickHouse/issues/35496). [#35502](https://github.com/ClickHouse/ClickHouse/pull/35502) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un crash dans la fonction `throwIf` avec des arguments constants. [#35500](https://github.com/ClickHouse/ClickHouse/pull/35500) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un bug dans Keeper pouvant entraîner des connexions client instables. Introduit dans [#35031](https://github.com/ClickHouse/ClickHouse/issues/35031). [#35498](https://github.com/ClickHouse/ClickHouse/pull/35498) ([alesapin](https://github.com/alesapin)).
* Correction d’un bug dans la fonction `if` lorsque le type de colonne résultant diffère du type de données résultant, ce qui entraînait des erreurs logiques comme `Logical error: 'Bad cast from type DB::ColumnVector<int> to DB::ColumnVector<long>'.`. Clôt [#35367](https://github.com/ClickHouse/ClickHouse/issues/35367). [#35476](https://github.com/ClickHouse/ClickHouse/pull/35476) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une journalisation excessive lors de l’utilisation de S3 comme backend pour MergeTree ou comme moteur de table/fonction distinct(e). Corrige [#30559](https://github.com/ClickHouse/ClickHouse/issues/30559). [#35434](https://github.com/ClickHouse/ClickHouse/pull/35434) ([alesapin](https://github.com/alesapin)).
* Désormais, les merges exécutés avec la zero copy replication (experimental) ne satureront plus les logs avec le message `Found parts with the same min block and with the same max block as the missing part _ on replica _. Hoping that it will eventually appear as a result of a merge.`. [#35430](https://github.com/ClickHouse/ClickHouse/pull/35430) ([alesapin](https://github.com/alesapin)).
* Évite une exception possible si des chunks vides apparaissent dans GroupingAggregatedTransform. [#35417](https://github.com/ClickHouse/ClickHouse/pull/35417) ([Nikita Taranov](https://github.com/nickitat)).
* Correction de la gestion des colonnes non nécessaires à la requête dans les formats Arrow/Parquet/ORC, ce qui évite des erreurs possibles comme `Unsupported <format> type <type> of an input column <column_name>` lorsque le fichier contient une colonne d’un type non pris en charge et qu’elle n’est pas utilisée dans la requête. [#35406](https://github.com/ClickHouse/ClickHouse/pull/35406) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du cache local pour le remote filesystem (experimental feature) en cas de forte concurrence dans certains cas limites. [#35381](https://github.com/ClickHouse/ClickHouse/pull/35381) ([Kseniia Sumarokova](https://github.com/kssenii)). Correction d’un interblocage possible dans le cache. [#35378](https://github.com/ClickHouse/ClickHouse/pull/35378) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction du partition pruning en cas de comparaison avec une constante dans `WHERE`. Si la colonne et la constante avaient des types différents, un overflow était possible. La requête pouvait renvoyer à tort un résultat vide. Ceci corrige [#35304](https://github.com/ClickHouse/ClickHouse/issues/35304). [#35334](https://github.com/ClickHouse/ClickHouse/pull/35334) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’inférence de schéma pour le format TSKV lors de l’utilisation d’une petite valeur de max\_read\_buffer\_size. [#35332](https://github.com/ClickHouse/ClickHouse/pull/35332) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige les mutations sur les tables avec des colonnes sparse activées. [#35284](https://github.com/ClickHouse/ClickHouse/pull/35284) ([Anton Popov](https://github.com/CurtizJ)).
* Ne retarde plus l'écriture finale des parts par défaut (corrige les éventuels `Memory limit exceeded` pendant `INSERT` en ajoutant `max_insert_delayed_streams_for_parallel_write`, avec une valeur par défaut de 1000 pour les écritures vers S3, et reste désactivé comme auparavant dans les autres cas). [#34780](https://github.com/ClickHouse/ClickHouse/pull/34780) ([Azat Khuzhin](https://github.com/azat)).

### <a id="223" /> Release ClickHouse v22.3-lts, 2022-03-17. [Présentation](https://presentations.clickhouse.com/2022-release-22.3/), [Vidéo](https://www.youtube.com/watch?v=GzeANZzPras)

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

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

* Faire en sorte que la fonction `arrayCompact` se comporte comme les autres fonctions d'ordre supérieur : effectuer le compactage non pas sur les résultats de la fonction lambda, mais sur le tableau d'origine. Si vous utilisez des fonctions lambda non triviales dans `arrayCompact`, vous pouvez rétablir l'ancien comportement en enveloppant les arguments de `arrayCompact` dans `arrayMap`. Clôt [#34010](https://github.com/ClickHouse/ClickHouse/issues/34010) [#18535](https://github.com/ClickHouse/ClickHouse/issues/18535) [#14778](https://github.com/ClickHouse/ClickHouse/issues/14778). [#34795](https://github.com/ClickHouse/ClickHouse/pull/34795) ([Alexandre Snarskii](https://github.com/snar)).
* Modifier le comportement spécifique à l'implémentation en cas d'overflow de la fonction `toDatetime`. La valeur sera désormais bornée à l'instant minimal ou maximal pris en charge le plus proche, au lieu d'effectuer un bouclage. Ce changement est indiqué comme « non rétrocompatible », car il est possible que certains s'appuient involontairement sur l'ancien comportement. [#32898](https://github.com/ClickHouse/ClickHouse/pull/32898) ([HaiBo Li](https://github.com/marising)).
* Faire en sorte que les fonctions `cast(value, 'IPv4')` et `cast(value, 'IPv6')` se comportent de la même manière que `toIPv4` et `toIPv6`. Le comportement en cas d'adresse IP incorrecte passée aux fonctions `toIPv4` et `toIPv6` a été modifié : désormais, si une adresse IP invalide est transmise à ces fonctions, une exception sera levée, alors qu'auparavant elles renvoyaient la valeur par défaut. Fonctions ajoutées : `IPv4StringToNumOrDefault`, `IPv4StringToNumOrNull`, `IPv6StringToNumOrDefault`, `IPv6StringOrNull`, `toIPv4OrDefault`, `toIPv4OrNull`, `toIPv6OrDefault`, `toIPv6OrNull`. Les fonctions `IPv4StringToNumOrDefault`, `toIPv4OrDefault`, `toIPv6OrDefault` doivent être utilisées si la logique précédente reposait sur le fait que `IPv4StringToNum`, `toIPv4`, `toIPv6` renvoyaient la valeur par défaut pour une adresse invalide. Paramètre ajouté : `cast_ipv4_ipv6_default_on_conversion_error` ; si ce paramètre est activé, les fonctions de conversion d'adresses IP se comporteront comme auparavant. Clôt [#22825](https://github.com/ClickHouse/ClickHouse/issues/22825). Clôt [#5799](https://github.com/ClickHouse/ClickHouse/issues/5799). Clôt [#35156](https://github.com/ClickHouse/ClickHouse/issues/35156). [#35240](https://github.com/ClickHouse/ClickHouse/pull/35240) ([Maksim Kita](https://github.com/kitaisreal)).

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

* Prise en charge de la mise en cache locale des données pour les systèmes de fichiers distants. Elle peut être activée pour les disques `s3`. Clôt [#28961](https://github.com/ClickHouse/ClickHouse/issues/28961). [#33717](https://github.com/ClickHouse/ClickHouse/pull/33717) ([Kseniia Sumarokova](https://github.com/kssenii)). Entre-temps, nous avons activé la suite de tests sur le système de fichiers `s3` et, comme il n’existe plus de problèmes connus, cette fonctionnalité est désormais en passe d’être prête pour la production.
* Ajout d’une nouvelle fonction de table `hive`. Elle peut être utilisée comme suit : `hive('<hive metastore url>', '<hive database>', '<hive table name>', '<columns definition>', '<partition columns>')`, par exemple `SELECT * FROM hive('thrift://hivetest:9083', 'test', 'demo', 'id Nullable(String), score Nullable(Int32), day Nullable(String)', 'day')`. [#34946](https://github.com/ClickHouse/ClickHouse/pull/34946) ([lgbo](https://github.com/lgbo-ustc)).
* Prise en charge de l’authentification des utilisateurs connectés via SSL à l’aide de leur certificat X.509. [#31484](https://github.com/ClickHouse/ClickHouse/pull/31484) ([eungenue](https://github.com/eungenue)).
* Prise en charge de l’inférence de schéma pour les insertions dans les fonctions de table `file`/`hdfs`/`s3`/`url`. [#34732](https://github.com/ClickHouse/ClickHouse/pull/34732) ([Kruglov Pavel](https://github.com/Avogar)).
* Vous pouvez désormais lire la table `system.zookeeper` sans restriction sur le chemin ni via une expression `like`. Ces lectures peuvent générer une charge assez importante pour ZooKeeper ; pour activer cette possibilité, vous devez activer le paramètre `allow_unrestricted_reads_from_keeper`. [#34609](https://github.com/ClickHouse/ClickHouse/pull/34609) ([Sergei Trifonov](https://github.com/serxa)).
* Affiche les métriques CPU et mémoire dans clickhouse-local. Clôt [#34545](https://github.com/ClickHouse/ClickHouse/issues/34545). [#34605](https://github.com/ClickHouse/ClickHouse/pull/34605) ([李扬](https://github.com/taiyang-li)).
* Implémente les fonctions `startsWith` et `endsWith` pour les tableaux, clôt [#33982](https://github.com/ClickHouse/ClickHouse/issues/33982). [#34368](https://github.com/ClickHouse/ClickHouse/pull/34368) ([usurai](https://github.com/usurai)).
* Ajout de trois fonctions pour le type de données Map : 1. `mapReplace(map1, map2)` - remplace les valeurs des clés de map1 par les valeurs des clés correspondantes dans map2 ; ajoute les clés de map2 qui n’existent pas dans map1. 2. `mapFilter` 3. `mapMap`. mapFilter et mapMap sont des fonctions d’ordre supérieur qui acceptent deux arguments : le premier argument est une fonction lambda prenant la paire k, v comme arguments, le second est une colonne de type Map. [#33698](https://github.com/ClickHouse/ClickHouse/pull/33698) ([hexiaoting](https://github.com/hexiaoting)).
* Autorise la récupération de l’utilisateur par défaut et du mot de passe pour clickhouse-client à partir des variables d’environnement `CLICKHOUSE_USER` et `CLICKHOUSE_PASSWORD`. Clôt [#34538](https://github.com/ClickHouse/ClickHouse/issues/34538). [#34947](https://github.com/ClickHouse/ClickHouse/pull/34947) ([DR](https://github.com/freedomDR)).

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

* Nouveau type de données `Object(<schema_format>)`, qui prend en charge le stockage de données semi-structurées (pour l’instant, JSON uniquement). Les données sont écrites dans ce type sous forme de chaîne. Ensuite, tous les chemins sont extraits selon le format des données semi-structurées et écrits dans des colonnes distinctes en utilisant les types les plus adaptés, capables de stocker toutes leurs valeurs. Ces colonnes peuvent être interrogées à l’aide de noms correspondant aux chemins dans les données source. Par ex. `data.key1.key2` ou avec l’opérateur de transtypage `data.key1.key2::Int64`.
* Ajout du paramètre `database_replicated_allow_only_replicated_engine`. Lorsqu’il est activé, seules les tables `Replicated` ou les tables avec des engines sans état peuvent être créées dans des bases de données `Replicated`. [#35214](https://github.com/ClickHouse/ClickHouse/pull/35214) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). Notez que la base de données `Replicated` reste une fonctionnalité expérimentale.

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

* Amélioration des performances de l’insertion dans les tables `MergeTree` grâce à une optimisation du tri. Jusqu’à 2x d’amélioration observée sur des benchmarks réalistes. [#34750](https://github.com/ClickHouse/ClickHouse/pull/34750) ([Maksim Kita](https://github.com/kitaisreal)).
* Élagage des colonnes lors de la lecture de fichiers Parquet, ORC et Arrow depuis une URL et S3. Résout [#34163](https://github.com/ClickHouse/ClickHouse/issues/34163). [#34849](https://github.com/ClickHouse/ClickHouse/pull/34849) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Élagage des colonnes lors de la lecture de fichiers Parquet, ORC et Arrow depuis Hive. [#34954](https://github.com/ClickHouse/ClickHouse/pull/34954) ([lgbo](https://github.com/lgbo-ustc)).
* Une série d’optimisations des performances par un super-héros du domaine. Amélioration des performances du traitement des requêtes avec de grandes clauses `IN`. Amélioration des performances du dictionnaire `direct` si sa source est `ClickHouse`. Amélioration des performances des fonctions `detectCharset `, `detectLanguageUnknown `. [#34888](https://github.com/ClickHouse/ClickHouse/pull/34888) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration des performances de la fonction d’agrégation `any` grâce à un batching plus important. [#34760](https://github.com/ClickHouse/ClickHouse/pull/34760) ([Raúl Marín](https://github.com/Algunenano)).
* Plusieurs améliorations des performances pour `ClickHouse Keeper` : moins de verrouillage [#35010](https://github.com/ClickHouse/ClickHouse/pull/35010) ([zhanglistar](https://github.com/zhanglistar)), réduction de l’utilisation mémoire grâce à la lecture et à l’écriture du snapshot en streaming au lieu d’une copie complète. [#34584](https://github.com/ClickHouse/ClickHouse/pull/34584) ([zhanglistar](https://github.com/zhanglistar)), optimisation de la compaction du stockage des logs dans l’implémentation RAFT. [#34534](https://github.com/ClickHouse/ClickHouse/pull/34534) ([zhanglistar](https://github.com/zhanglistar)), gestion des versions de la structure de données interne [#34486](https://github.com/ClickHouse/ClickHouse/pull/34486) ([zhanglistar](https://github.com/zhanglistar)).

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

* Autorise les insertions asynchrones dans les table functions. Corrige [#34864](https://github.com/ClickHouse/ClickHouse/issues/34864). [#34866](https://github.com/ClickHouse/ClickHouse/pull/34866) ([Anton Popov](https://github.com/CurtizJ)).
* Conversion implicite du type de l’argument key pour les fonctions `dictGetHierarchy`, `dictIsIn`, `dictGetChildren`, `dictGetDescendants`. Ferme [#34970](https://github.com/ClickHouse/ClickHouse/issues/34970). [#35027](https://github.com/ClickHouse/ClickHouse/pull/35027) ([Maksim Kita](https://github.com/kitaisreal)).
* La requête `EXPLAIN AST` peut produire l’AST sous forme de graphe au format Graphviz : `EXPLAIN AST graph = 1 SELECT * FROM system.parts`. [#35173](https://github.com/ClickHouse/ClickHouse/pull/35173) ([李扬](https://github.com/taiyang-li)).
* Lors de l’écriture de fichiers volumineux avec la table function ou le table engine `s3`, le type de contenu des fichiers était, par erreur, défini sur `application/xml` en raison d’un bug dans le SDK AWS. Cela ferme [#33964](https://github.com/ClickHouse/ClickHouse/issues/33964). [#34433](https://github.com/ClickHouse/ClickHouse/pull/34433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Modifie légèrement les row policies restrictives pour en faire une alternative plus simple aux politiques permissives dans les cas simples. Si, pour une table donnée, seules des politiques restrictives existent (sans politiques permissives), les utilisateurs pourront voir certaines lignes. De plus, `SHOW CREATE ROW POLICY` affichera toujours `AS permissive` ou `AS restrictive` dans la définition de la row policy. [#34596](https://github.com/ClickHouse/ClickHouse/pull/34596) ([Vitaly Baranov](https://github.com/vitlibar)).
* Améliore l’inférence de schéma avec les globs dans les moteurs File/S3/HDFS/URL. Essaie d’utiliser le chemin suivant pour l’inférence de schéma en cas d’erreur. [#34465](https://github.com/ClickHouse/ClickHouse/pull/34465) ([Kruglov Pavel](https://github.com/Avogar)).
* L’UI Play détecte désormais correctement le thème clair/sombre préféré du système d’exploitation. [#35068](https://github.com/ClickHouse/ClickHouse/pull/35068) ([peledni](https://github.com/peledni)).
* Ajout de `date_time_input_format = 'best_effort_us'`. Ferme [#34799](https://github.com/ClickHouse/ClickHouse/issues/34799). [#34982](https://github.com/ClickHouse/ClickHouse/pull/34982) ([WenYao](https://github.com/Cai-Yao)).
* De nouveaux paramètres, `allow_plaintext_password` et `allow_no_password`, ont été ajoutés à la server configuration et activent/désactivent des types d’authentication potentiellement peu sûrs dans certains environnements. Ils sont autorisés par défaut. [#34738](https://github.com/ClickHouse/ClickHouse/pull/34738) ([Heena Bansal](https://github.com/HeenaBansal2009)).
* Prise en charge du Data type `DateTime64` dans le format `Arrow`, ferme [#8280](https://github.com/ClickHouse/ClickHouse/issues/8280) et ferme [#28574](https://github.com/ClickHouse/ClickHouse/issues/28574). [#34561](https://github.com/ClickHouse/ClickHouse/pull/34561) ([李扬](https://github.com/taiyang-li)).
* Recharge `remote_url_allow_hosts` (filtrage des connexions sortantes) lors d’une mise à jour de la config. [#35294](https://github.com/ClickHouse/ClickHouse/pull/35294) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Prise en charge du paramètre `--testmode` pour `clickhouse-local`. Ce paramètre active l’interprétation des indications de test utilisées dans les tests fonctionnels. [#35264](https://github.com/ClickHouse/ClickHouse/pull/35264) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute `distributed_depth` au query log. Il s’agit d’une variante plus détaillée de `is_initial_query`. [#35207](https://github.com/ClickHouse/ClickHouse/pull/35207) ([李扬](https://github.com/taiyang-li)).
* Respect de `remote_url_allow_hosts` pour les fonctions de table `MySQL` et `PostgreSQL`. [#35191](https://github.com/ClickHouse/ClickHouse/pull/35191) ([Heena Bansal](https://github.com/HeenaBansal2009)).
* Ajout du champ `disk_name` à `system.part_log`. [#35178](https://github.com/ClickHouse/ClickHouse/pull/35178) ([Artyom Yurkov](https://github.com/Varinara)).
* Ne pas réessayer les erreurs non récupérables lors des requêtes sur des URL distantes. Clôt [#35161](https://github.com/ClickHouse/ClickHouse/issues/35161). [#35172](https://github.com/ClickHouse/ClickHouse/pull/35172) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge des requêtes distribuées INSERT SELECT (paramètre `parallel_distributed_insert_select`) pour la fonction de table `view()`. [#35132](https://github.com/ClickHouse/ClickHouse/pull/35132) ([Azat Khuzhin](https://github.com/azat)).
* Suivi mémoire plus précis lors des `INSERT` dans `Buffer` avec `AggregateFunction`. [#35072](https://github.com/ClickHouse/ClickHouse/pull/35072) ([Azat Khuzhin](https://github.com/azat)).
* Éviter les divisions par zéro dans Query Profiler si le noyau Linux comporte un bug. Clôt [#34787](https://github.com/ClickHouse/ClickHouse/issues/34787). [#35032](https://github.com/ClickHouse/ClickHouse/pull/35032) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de vérifications de cohérence supplémentaires pour la configuration de Keeper : il n’est désormais plus autorisé de mélanger localhost et des serveurs non locaux ; des vérifications ont également été ajoutées pour s’assurer que le port Raft interne et le port client de Keeper n’ont pas la même valeur. [#35004](https://github.com/ClickHouse/ClickHouse/pull/35004) ([alesapin](https://github.com/alesapin)).
* Actuellement, si l’utilisateur modifie les paramètres des tables système, cela génère énormément de logs et ClickHouse renomme les tables chaque minute. Cela corrige [#34929](https://github.com/ClickHouse/ClickHouse/issues/34929). [#34949](https://github.com/ClickHouse/ClickHouse/pull/34949) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Utilisation d’un pool de connexions pour le client Hive metastore. [#34940](https://github.com/ClickHouse/ClickHouse/pull/34940) ([lgbo](https://github.com/lgbo-ustc)).
* Ignorer le `TTL` par colonne dans `CREATE TABLE AS` si le nouveau moteur de table ne le prend pas en charge (c.-à-d. si le moteur n’appartient pas à la famille `MergeTree`). [#34938](https://github.com/ClickHouse/ClickHouse/pull/34938) ([Azat Khuzhin](https://github.com/azat)).
* Autoriser les chaînes `LowCardinality` pour les index `ngrambf_v1`/`tokenbf_v1`. Clôt [#21865](https://github.com/ClickHouse/ClickHouse/issues/21865). [#34911](https://github.com/ClickHouse/ClickHouse/pull/34911) ([Lars Hiller Eidnes](https://github.com/larspars)).
* Autoriser l’ouverture d’une DB sqlite vide si le fichier n'existe pas. Clôt [#33367](https://github.com/ClickHouse/ClickHouse/issues/33367). [#34907](https://github.com/ClickHouse/ClickHouse/pull/34907) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Implémentation des statistiques mémoire pour FreeBSD — cela est nécessaire pour que `max_server_memory_usage` fonctionne correctement. [#34902](https://github.com/ClickHouse/ClickHouse/pull/34902) ([Alexandre Snarskii](https://github.com/snar)).
* Dans les versions précédentes, la barre de progression dans clickhouse-client pouvait avancer brusquement jusqu’à près de 50 % sans raison. Cela clôt [#34324](https://github.com/ClickHouse/ClickHouse/issues/34324). [#34801](https://github.com/ClickHouse/ClickHouse/pull/34801) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les requêtes `ALTER TABLE DROP COLUMN columnX` pour les moteurs de table `MergeTree` fonctionneront désormais instantanément lorsque `columnX` est une colonne `ALIAS`. Corrige [#34660](https://github.com/ClickHouse/ClickHouse/issues/34660). [#34786](https://github.com/ClickHouse/ClickHouse/pull/34786) ([alesapin](https://github.com/alesapin)).
* Affiche des suggestions lorsque l’utilisateur a mal saisi le nom d’un index de saut de données. Clôt [#29698](https://github.com/ClickHouse/ClickHouse/issues/29698). [#34764](https://github.com/ClickHouse/ClickHouse/pull/34764) ([flynn](https://github.com/ucasfl)).
* Prise en charge des fonctions de table `remote()`/`cluster()` pour `parallel_distributed_insert_select`. [#34728](https://github.com/ClickHouse/ClickHouse/pull/34728) ([Azat Khuzhin](https://github.com/azat)).
* Ne réinitialise pas la journalisation configurée via les options de ligne de commande `--log-file`/`--errorlog-file` en cas de configuration vide dans le fichier de configuration. [#34718](https://github.com/ClickHouse/ClickHouse/pull/34718) ([Amos Bird](https://github.com/amosbird)).
* Extrait le schéma une seule fois lors de la création de la table et évite de lire les fichiers locaux/sources externes pour extraire le schéma à chaque démarrage du serveur. [#34684](https://github.com/ClickHouse/ClickHouse/pull/34684) ([Kruglov Pavel](https://github.com/Avogar)).
* Permet de spécifier des noms d’arguments pour les UDFs exécutables. Cela est nécessaire pour les formats où le nom de l’argument fait partie de la sérialisation, comme `Native`, `JSONEachRow`. Clôt [#34604](https://github.com/ClickHouse/ClickHouse/issues/34604). [#34653](https://github.com/ClickHouse/ClickHouse/pull/34653) ([Maksim Kita](https://github.com/kitaisreal)).
* `MaterializedMySQL` (fonctionnalité expérimentale) prend désormais en charge `materialized_mysql_tables_list` (une liste de tables d’une base de données MySQL séparées par des virgules, qui seront répliquées par le moteur de base de données MaterializedMySQL. Valeur par défaut : liste vide — cela signifie que toutes les tables seront répliquées), mentionné dans [#32977](https://github.com/ClickHouse/ClickHouse/issues/32977). [#34487](https://github.com/ClickHouse/ClickHouse/pull/34487) ([zzsmdfj](https://github.com/zzsmdfj)).
* Améliore les logs de spans OpenTelemetry pour l’opération INSERT sur une table distribuée. [#34480](https://github.com/ClickHouse/ClickHouse/pull/34480) ([Frank Chen](https://github.com/FrankChen021)).
* Rend les `ctime` et `mtime` du znode cohérents entre les serveurs dans ClickHouse Keeper. [#33441](https://github.com/ClickHouse/ClickHouse/pull/33441) ([小路](https://github.com/nicelulu)).

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

* Migration du dépôt de paquets vers JFrog Artifactory (**Mikhail f. Shiryaev**).
* Randomisation de certains paramètres dans les tests fonctionnels, afin de tester davantage de combinaisons possibles. Il s'agit d'une méthode de fuzzing supplémentaire pour améliorer la couverture des tests. Cela clôt [#32268](https://github.com/ClickHouse/ClickHouse/issues/32268). [#34092](https://github.com/ClickHouse/ClickHouse/pull/34092) ([Kruglov Pavel](https://github.com/Avogar)).
* Suppression de PVS-Studio de notre CI. [#34680](https://github.com/ClickHouse/ClickHouse/pull/34680) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajout de la possibilité de compiler des binaires sans symboles avec CMake. Dans les versions précédentes, cela était géré par dh-tools. [#35196](https://github.com/ClickHouse/ClickHouse/pull/35196) ([alesapin](https://github.com/alesapin)).
* Build plus léger, « fat-free », de `ClickHouse Keeper`. [#35031](https://github.com/ClickHouse/ClickHouse/pull/35031) ([alesapin](https://github.com/alesapin)).
* Utilisation de @robot-clickhouse comme auteur et committer pour les PR telles que [https://github.com/ClickHouse/ClickHouse/pull/34685](https://github.com/ClickHouse/ClickHouse/pull/34685). [#34793](https://github.com/ClickHouse/ClickHouse/pull/34793) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Limitation de la version DWARF des informations de débogage à 4 au maximum, car notre symboliseur de pile interne ne peut pas analyser DWARF version 5. Cela est pertinent si vous compilez ClickHouse avec clang-15. [#34777](https://github.com/ClickHouse/ClickHouse/pull/34777) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression du paquet Debian `clickhouse-test`, source de complexité inutile. La CI utilise les tests du repository et les tests autonomes via le paquet deb ne sont plus pris en charge. [#34606](https://github.com/ClickHouse/ClickHouse/pull/34606) ([Ilya Yatsishin](https://github.com/qoega)).

<div id="bug-fix-user-visible-misbehaviour-in-official-stable-or-prestable-release">
  #### Correction de bug (dysfonctionnement visible pour l’utilisateur dans une version stable ou préstable officielle)
</div>

* Correctif pour l’intégration HDFS : lorsque la taille du tampon interne est trop faible, NEED\_MORE\_INPUT dans `HadoopSnappyDecoder` s’exécute plusieurs fois (>=3) pour un même bloc compressé. Les données d’entrée sont alors copiées au mauvais emplacement dans `HadoopSnappyDecoder::buffer`. [#35116](https://github.com/ClickHouse/ClickHouse/pull/35116) ([lgbo](https://github.com/lgbo-ustc)).
* Ignorer les grants obsolètes dans les instructions ATTACH GRANT. Cette PR corrige [#34815](https://github.com/ClickHouse/ClickHouse/issues/34815). [#34855](https://github.com/ClickHouse/ClickHouse/pull/34855) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’un segfault dans la base de données Postgres lors de la récupération de la requête CREATE TABLE si la base de données a été créée à l’aide de named collections. Clôt [#35312](https://github.com/ClickHouse/ClickHouse/issues/35312). [#35313](https://github.com/ClickHouse/ClickHouse/pull/35313) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un bug de rows dupliquées dans partial merge join, clôt [#31009](https://github.com/ClickHouse/ClickHouse/issues/31009). [#35311](https://github.com/ClickHouse/ClickHouse/pull/35311) ([Vladimir C](https://github.com/vdimir)).
* Correction d’un possible `Assertion 'position() != working_buffer.end()' failed` lors de l’utilisation de la compression bzip2 avec une faible valeur du paramètre `max_read_buffer_size`. Le bug a été détecté dans [https://github.com/ClickHouse/ClickHouse/pull/35047](https://github.com/ClickHouse/ClickHouse/pull/35047). [#35300](https://github.com/ClickHouse/ClickHouse/pull/35300) ([Kruglov Pavel](https://github.com/Avogar)). Lors de l’utilisation de la compression lz4 avec une faible valeur du paramètre max\_read\_buffer\_size. [#35296](https://github.com/ClickHouse/ClickHouse/pull/35296) ([Kruglov Pavel](https://github.com/Avogar)). Lors de l’utilisation de la compression lzma avec une faible valeur du paramètre `max_read_buffer_size`. [#35295](https://github.com/ClickHouse/ClickHouse/pull/35295) ([Kruglov Pavel](https://github.com/Avogar)). Lors de l’utilisation de la compression `brotli` avec une faible valeur du paramètre `max_read_buffer_size`. Le bug a été détecté dans [https://github.com/ClickHouse/ClickHouse/pull/35047](https://github.com/ClickHouse/ClickHouse/pull/35047). [#35281](https://github.com/ClickHouse/ClickHouse/pull/35281) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un possible segfault dans l’inférence de schéma de `JSONEachRow`. [#35291](https://github.com/ClickHouse/ClickHouse/pull/35291) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la query `CHECK TABLE` lorsque les colonnes clairsemées sont activées dans la table. [#35274](https://github.com/ClickHouse/ClickHouse/pull/35274) ([Anton Popov](https://github.com/CurtizJ)).
* Éviter std::terminate en cas d’exception lors de la lecture depuis le VFS distant. [#35257](https://github.com/ClickHouse/ClickHouse/pull/35257) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la lecture du port depuis la config, clôt [#34776](https://github.com/ClickHouse/ClickHouse/issues/34776). [#35193](https://github.com/ClickHouse/ClickHouse/pull/35193) ([Vladimir C](https://github.com/vdimir)).
* Correction d’une erreur dans une query avec `WITH TOTALS` lorsque `HAVING` renvoie un résultat vide. Cela corrige [#33711](https://github.com/ClickHouse/ClickHouse/issues/33711). [#35186](https://github.com/ClickHouse/ClickHouse/pull/35186) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un cas limite de `replaceRegexpAll`, clôt [#35117](https://github.com/ClickHouse/ClickHouse/issues/35117). [#35182](https://github.com/ClickHouse/ClickHouse/pull/35182) ([Vladimir C](https://github.com/vdimir)).
* L’inférence de schéma ne fonctionnait pas correctement dans le cas de `INSERT INTO FUNCTION s3(...) FROM ...` : elle essayait de lire le schéma à partir du fichier s3 au lieu de la requête SELECT. [#35176](https://github.com/ClickHouse/ClickHouse/pull/35176) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction des `table overrides` de MaterializedPostgreSQL (fonctionnalité expérimentale) pour partition by, etc. Corrige [#35048](https://github.com/ClickHouse/ClickHouse/issues/35048). [#35162](https://github.com/ClickHouse/ClickHouse/pull/35162) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de MaterializedPostgreSQL (fonctionnalité expérimentale) lors de l’ajout d’une nouvelle table à la réplication (ATTACH TABLE) après une suppression manuelle (DETACH TABLE). Corrige [#33800](https://github.com/ClickHouse/ClickHouse/issues/33800). Corrige [#34922](https://github.com/ClickHouse/ClickHouse/issues/34922). Corrige [#34315](https://github.com/ClickHouse/ClickHouse/issues/34315). [#35158](https://github.com/ClickHouse/ClickHouse/pull/35158) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une erreur d’élagage des partitions lorsqu’une fonction non monotone est utilisée avec l’opérateur IN. Cela corrige [#35136](https://github.com/ClickHouse/ClickHouse/issues/35136). [#35146](https://github.com/ClickHouse/ClickHouse/pull/35146) ([Amos Bird](https://github.com/amosbird)).
* Correction d’une conversion légèrement incorrecte des configurations YAML en XML. [#35135](https://github.com/ClickHouse/ClickHouse/pull/35135) ([Miel Donkers](https://github.com/mdonkers)).
* Correction de `optimize_skip_unused_shards_rewrite_in` pour les colonnes signées et les valeurs négatives. [#35134](https://github.com/ClickHouse/ClickHouse/pull/35134) ([Azat Khuzhin](https://github.com/azat)).
* L’option de configuration `update_lag` du dictionnaire externe était inutilisable et affichait le message d’erreur ``Unexpected key `update_lag` in dictionary source configuration``. [#35089](https://github.com/ClickHouse/ClickHouse/pull/35089) ([Jason Chu](https://github.com/1lann)).
* Évite un interblocage possible lors de l’arrêt du serveur. [#35081](https://github.com/ClickHouse/ClickHouse/pull/35081) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un alias manquant après l’optimisation d’une fonction en sous-colonne lorsque le paramètre `optimize_functions_to_subcolumns` est activé. Corrige [#33798](https://github.com/ClickHouse/ClickHouse/issues/33798). [#35079](https://github.com/ClickHouse/ClickHouse/pull/35079) ([qieqieplus](https://github.com/qieqieplus)).
* Correction de la lecture depuis la table `system.asynchronous_inserts` s’il existe un insert asynchrone dans une fonction de table. [#35050](https://github.com/ClickHouse/ClickHouse/pull/35050) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une exception possible `Reading for MergeTree family tables must be done with last position boundary` (liée à une opération sur un VFS distant). Corrige [#34979](https://github.com/ClickHouse/ClickHouse/issues/34979). [#35001](https://github.com/ClickHouse/ClickHouse/pull/35001) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un résultat inattendu lors de l’utilisation d’une fonction d’agrégation de type -State dans une fenêtre. [#34999](https://github.com/ClickHouse/ClickHouse/pull/34999) ([metahys](https://github.com/metahys)).
* Correction d’un segfault possible dans FileLog (fonctionnalité expérimentale). Corrige [#30749](https://github.com/ClickHouse/ClickHouse/issues/30749). [#34996](https://github.com/ClickHouse/ClickHouse/pull/34996) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une possible erreur rare `Cannot push block to port which already has data`. [#34993](https://github.com/ClickHouse/ClickHouse/pull/34993) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige une inférence de schéma erronée pour les dates non entre guillemets dans les fichiers CSV. Clôt [#34768](https://github.com/ClickHouse/ClickHouse/issues/34768). [#34961](https://github.com/ClickHouse/ClickHouse/pull/34961) ([Kruglov Pavel](https://github.com/Avogar)).
* Intégration avec Hive : corrige un résultat inattendu lors de l’utilisation de `in` dans `where` dans une requête Hive. [#34945](https://github.com/ClickHouse/ClickHouse/pull/34945) ([lgbo](https://github.com/lgbo-ustc)).
* Évite un polling excessif dans ClickHouse Keeper lors de la recherche des fichiers de changelog à supprimer. [#34931](https://github.com/ClickHouse/ClickHouse/pull/34931) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la conversion de DateTime64 depuis PostgreSQL. Clôt [#33364](https://github.com/ClickHouse/ClickHouse/issues/33364). [#34910](https://github.com/ClickHouse/ClickHouse/pull/34910) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige l’erreur possible "Part directory doesn't exist" lors d’un `INSERT` dans une table MergeTree s’appuyant sur un VFS sur S3. [#34876](https://github.com/ClickHouse/ClickHouse/pull/34876) ([Azat Khuzhin](https://github.com/azat)).
* Prend en charge l’exécution de DDLs comme CREATE USER sur un cluster répliqué de manière croisée. [#34860](https://github.com/ClickHouse/ClickHouse/pull/34860) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Corrige des bogues liés au group by sur plusieurs colonnes dans `WindowView` (fonctionnalité expérimentale). [#34859](https://github.com/ClickHouse/ClickHouse/pull/34859) ([vxider](https://github.com/Vxider)).
* Corrige d’éventuelles défaillances dans les fonctions S2 lorsque les requêtes contiennent des colonnes constantes. [#34745](https://github.com/ClickHouse/ClickHouse/pull/34745) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige un bogue dans les fonctions H3 contenant des colonnes constantes, qui provoquait l’échec des requêtes. [#34743](https://github.com/ClickHouse/ClickHouse/pull/34743) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige l’erreur `No such file or directory` avec `fsync_part_directory` activé et la fusion verticale. [#34739](https://github.com/ClickHouse/ClickHouse/pull/34739) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la sérialisation/l’affichage des requêtes système `RELOAD MODEL`, `RELOAD FUNCTION`, `RESTART DISK` lorsqu’elles sont utilisées avec `ON CLUSTER`. Clôt [#34514](https://github.com/ClickHouse/ClickHouse/issues/34514). [#34696](https://github.com/ClickHouse/ClickHouse/pull/34696) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige `allow_experimental_projection_optimization` avec `enable_global_with_statement` (auparavant, cela pouvait entraîner l’erreur `Stack size too large` en cas d’expressions multiples dans la clause `WITH`, et réexécutait sans cesse les sous-requêtes scalaires ; ce sera désormais plus optimal). [#34650](https://github.com/ClickHouse/ClickHouse/pull/34650) ([Azat Khuzhin](https://github.com/azat)).
* Arrête de sélectionner une part à muter lorsqu’une autre réplique a déjà mis à jour le journal des transactions pour le moteur `ReplatedMergeTree`. [#34633](https://github.com/ClickHouse/ClickHouse/pull/34633) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Corrige le résultat incorrect d’une requête `count` triviale lorsque la fonctionnalité de déplacement de parts est utilisée [#34089](https://github.com/ClickHouse/ClickHouse/issues/34089). [#34385](https://github.com/ClickHouse/ClickHouse/pull/34385) ([nvartolomei](https://github.com/nvartolomei)).
* Corrige l’incohérence de la limite `max_query_size` dans les sous-requêtes distribuées. [#34078](https://github.com/ClickHouse/ClickHouse/pull/34078) ([Chao Ma](https://github.com/godliness)).

### <a id="222" /> Version de ClickHouse v22.2, 2022-02-17. [Présentation](https://presentations.clickhouse.com/2022-release-22.2/), [Vidéo](https://www.youtube.com/watch?v=6EG1gwhSTPg)

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

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

* L’utilisation d’index de saut de données pour les requêtes avec FINAL peut produire des résultats incorrects. Dans cette version, nous avons désactivé par défaut les index de saut de données pour les requêtes avec FINAL (un nouveau paramètre `use_skip_indexes_if_final` a été introduit et est désactivé par défaut). [#34243](https://github.com/ClickHouse/ClickHouse/pull/34243) ([Azat Khuzhin](https://github.com/azat)).

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

* Les projections sont prêtes pour la production. `allow_experimental_projection_optimization` est désormais activé par défaut, et ce paramètre est déprécié. [#34456](https://github.com/ClickHouse/ClickHouse/pull/34456) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Une option permet de créer de nouveaux fichiers à l’insert pour les moteurs `File`/`S3`/`HDFS`. L’écrasement d’un fichier est autorisé dans `HDFS`. Une exception est levée par défaut en cas de tentative d’écrasement d’un fichier dans `S3`. Une exception est également levée en cas de tentative d’ajout de données à un fichier dans les formats qui ont un suffixe (et ne prennent donc pas en charge l’ajout, comme `Parquet`, `ORC`). Clôt [#31640](https://github.com/ClickHouse/ClickHouse/issues/31640) Clôt [#31622](https://github.com/ClickHouse/ClickHouse/issues/31622) Clôt [#23862](https://github.com/ClickHouse/ClickHouse/issues/23862) Clôt [#15022](https://github.com/ClickHouse/ClickHouse/issues/15022) Clôt [#16674](https://github.com/ClickHouse/ClickHouse/issues/16674). [#33302](https://github.com/ClickHouse/ClickHouse/pull/33302) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajouter un paramètre permettant à l’utilisateur de définir sa propre sémantique de déduplication dans `MergeTree`/`ReplicatedMergeTree`. S’il est fourni, il est utilisé à la place de l’empreinte des données pour générer l’ID de bloc. Ainsi, par exemple, en fournissant une valeur unique pour ce paramètre dans chaque instruction INSERT, l’utilisateur peut empêcher la déduplication des mêmes données insérées. Cela clôt : [#7461](https://github.com/ClickHouse/ClickHouse/issues/7461). [#32304](https://github.com/ClickHouse/ClickHouse/pull/32304) ([Igor Nikonov](https://github.com/devcrafter)).
* Ajouter la prise en charge du mot-clé `DEFAULT` pour les instructions INSERT. Clôt [#6331](https://github.com/ClickHouse/ClickHouse/issues/6331). [#33141](https://github.com/ClickHouse/ClickHouse/pull/33141) ([Andrii Buriachevskyi](https://github.com/1over)).
* Le spécificateur de colonne `EPHEMERAL` est ajouté à la requête `CREATE TABLE`. Clôt [#9436](https://github.com/ClickHouse/ClickHouse/issues/9436). [#34424](https://github.com/ClickHouse/ClickHouse/pull/34424) ([yakov-olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Prise en charge de la clause `IF EXISTS` pour la fonctionnalité `TTL expr TO [DISK|VOLUME] [IF EXISTS] 'xxx'`. Les parts ne seront déplacées vers le disk ou le volume que s’il existe sur la réplique ; ainsi, les règles `MOVE TTL` pourront se comporter différemment selon les répliques en fonction des politiques de stockage existantes. Résout [#34455](https://github.com/ClickHouse/ClickHouse/issues/34455). [#34504](https://github.com/ClickHouse/ClickHouse/pull/34504) ([Anton Popov](https://github.com/CurtizJ)).
* Autoriser la définition du moteur de table par défaut et la création de tables sans spécifier ENGINE. [#34187](https://github.com/ClickHouse/ClickHouse/pull/34187) ([Ilya Yatsishin](https://github.com/qoega)).
* Ajouter la fonction de table `format(format_name, data)`. [#34125](https://github.com/ClickHouse/ClickHouse/pull/34125) ([Kruglov Pavel](https://github.com/Avogar)).
* Détecter le format dans `clickhouse-local` à partir du nom du fichier, même lorsqu’il est passé via stdin. [#33829](https://github.com/ClickHouse/ClickHouse/pull/33829) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajouter l’inférence de schéma pour la fonction de table `values`. Clôt [#33811](https://github.com/ClickHouse/ClickHouse/issues/33811). [#34017](https://github.com/ClickHouse/ClickHouse/pull/34017) ([Kruglov Pavel](https://github.com/Avogar)).
* Rechargement dynamique des certificats TLS du server lors du rechargement de la config. Résout [#15764](https://github.com/ClickHouse/ClickHouse/issues/15764). [#15765](https://github.com/ClickHouse/ClickHouse/pull/15765) ([johnskopis](https://github.com/johnskopis)). [#31257](https://github.com/ClickHouse/ClickHouse/pull/31257) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* ReplicatedMergeTree peut désormais récupérer les données lorsque certains de ses disks sont défectueux. [#13544](https://github.com/ClickHouse/ClickHouse/pull/13544) ([Amos Bird](https://github.com/amosbird)).
* Connexions tolérantes aux pannes dans clickhouse-client : `clickhouse-client ... --host host1 --host host2 --port port2 --host host3 --port port --host host4`. [#34490](https://github.com/ClickHouse/ClickHouse/pull/34490) ([Kruglov Pavel](https://github.com/Avogar)). [#33824](https://github.com/ClickHouse/ClickHouse/pull/33824) ([Filippov Denis](https://github.com/DF5HSE)).
* Ajout des fonctions `DEGREES` et `RADIANS` pour assurer la compatibilité avec MySQL. [#33769](https://github.com/ClickHouse/ClickHouse/pull/33769) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la fonction `h3ToCenterChild`. [#33313](https://github.com/ClickHouse/ClickHouse/pull/33313) ([Bharat Nallan](https://github.com/bharatnc)). Ajout de nouvelles fonctions h3 diverses : `edgeLengthKm`,`exactEdgeLengthKm`,`exactEdgeLengthM`,`exactEdgeLengthRads`,`numHexagons`. [#33621](https://github.com/ClickHouse/ClickHouse/pull/33621) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la fonction `bitSlice` pour extraire des sous-séquences de bits depuis String/FixedString. [#33360](https://github.com/ClickHouse/ClickHouse/pull/33360) ([RogerYK](https://github.com/RogerYK)).
* Implémentation de la fonction d'agrégation `meanZTest`. [#33354](https://github.com/ClickHouse/ClickHouse/pull/33354) ([achimbab](https://github.com/achimbab)).
* Ajout d'intervalles de confiance aux fonctions d'agrégation de t-test. [#33260](https://github.com/ClickHouse/ClickHouse/pull/33260) ([achimbab](https://github.com/achimbab)).
* Ajout de la fonction `addressToLineWithInlines`. Résout [#26211](https://github.com/ClickHouse/ClickHouse/issues/26211). [#33467](https://github.com/ClickHouse/ClickHouse/pull/33467) ([SuperDJY](https://github.com/cmsxbc)).
* Ajout de `#!` et `# ` comme débuts reconnus d'un commentaire single line. Résout [#34138](https://github.com/ClickHouse/ClickHouse/issues/34138). [#34230](https://github.com/ClickHouse/ClickHouse/pull/34230) ([Aaron Katz](https://github.com/aaronstephenkatz)).

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

* Fonctions de classification de texte : détection de la langue et du jeu de caractères. Voir [#23271](https://github.com/ClickHouse/ClickHouse/issues/23271). [#33314](https://github.com/ClickHouse/ClickHouse/pull/33314) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ajout de l'overcommit mémoire à `MemoryTracker`. Ajout de paramètres `guaranteed` pour les limites mémoire, qui représentent des limites mémoire souples. Lorsque la limite mémoire stricte est atteinte, `MemoryTracker` essaie d'annuler la requête la plus en surallocation. Le nouveau paramètre `memory_usage_overcommit_max_wait_microseconds` spécifie combien de temps les requêtes peuvent attendre qu'une autre requête s'arrête. Clôt [#28375](https://github.com/ClickHouse/ClickHouse/issues/28375). [#31182](https://github.com/ClickHouse/ClickHouse/pull/31182) ([Dmitry Novik](https://github.com/novikd)).
* Activation des jointures entre flux et table dans WindowView. [#33729](https://github.com/ClickHouse/ClickHouse/pull/33729) ([vxider](https://github.com/Vxider)).
* Prise en charge des types de données `SET`, `YEAR`, `TIME` et `GEOMETRY` dans `MaterializedMySQL` (fonctionnalité expérimentale). Corrige [#18091](https://github.com/ClickHouse/ClickHouse/issues/18091), [#21536](https://github.com/ClickHouse/ClickHouse/issues/21536), [#26361](https://github.com/ClickHouse/ClickHouse/issues/26361). [#33429](https://github.com/ClickHouse/ClickHouse/pull/33429) ([zzsmdfj](https://github.com/zzsmdfj)).
* Correction de divers problèmes lorsque les projections sont activées par défaut. Chaque problème est décrit dans un commit distinct. Cela concerne [#33678](https://github.com/ClickHouse/ClickHouse/issues/33678). Cela corrige [#34273](https://github.com/ClickHouse/ClickHouse/issues/34273). [#34305](https://github.com/ClickHouse/ClickHouse/pull/34305) ([Amos Bird](https://github.com/amosbird)).

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

* Prise en charge de `optimize_read_in_order` si le préfixe de la clé de tri est déjà trié. Par ex., si une table a pour clé de tri `ORDER BY (a, b)` et qu’une requête contient les clauses `WHERE a = const ORDER BY b`, la lecture se fera désormais dans l’ordre de la clé de tri au lieu d’effectuer un tri complet. [#32748](https://github.com/ClickHouse/ClickHouse/pull/32748) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration des performances des insertions partitionnées dans les fonctions de table `URL`, `S3`, `File`, `HDFS`. Corrige [#34348](https://github.com/ClickHouse/ClickHouse/issues/34348). [#34510](https://github.com/ClickHouse/ClickHouse/pull/34510) ([Maksim Kita](https://github.com/kitaisreal)).
* Plusieurs améliorations des performances de ClickHouse Keeper. [#34484](https://github.com/ClickHouse/ClickHouse/pull/34484) [#34587](https://github.com/ClickHouse/ClickHouse/pull/34587) ([zhanglistar](https://github.com/zhanglistar)).
* `FlatDictionary` améliore les performances du chargement des données du dictionnaire. [#33871](https://github.com/ClickHouse/ClickHouse/pull/33871) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration des performances de la fonction `mapPopulateSeries`. Corrige [#33944](https://github.com/ClickHouse/ClickHouse/issues/33944). [#34318](https://github.com/ClickHouse/ClickHouse/pull/34318) ([Maksim Kita](https://github.com/kitaisreal)).
* Les colonnes virtuelles `_file` et `_path` (dans les moteurs de table de type fichier) passent en `LowCardinality`, ce qui accélère les requêtes sur plusieurs fichiers. Corrige [#34300](https://github.com/ClickHouse/ClickHouse/issues/34300). [#34317](https://github.com/ClickHouse/ClickHouse/pull/34317) ([flynn](https://github.com/ucasfl)).
* Accélération du chargement des data parts. Ce processus n’était auparavant pas parallélisé : le paramètre `part_loading_threads` n’avait aucun effet. Voir [#4699](https://github.com/ClickHouse/ClickHouse/issues/4699). [#34310](https://github.com/ClickHouse/ClickHouse/pull/34310) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration des performances du format `LineAsString`. Corrige [#34303](https://github.com/ClickHouse/ClickHouse/issues/34303). [#34306](https://github.com/ClickHouse/ClickHouse/pull/34306) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Optimisation de `quantilesExact{Low,High}` pour utiliser `nth_element` au lieu de `sort`. [#34287](https://github.com/ClickHouse/ClickHouse/pull/34287) ([Danila Kutenin](https://github.com/danlark1)).
* Légère amélioration des performances du format `Regexp`. [#34202](https://github.com/ClickHouse/ClickHouse/pull/34202) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration mineure de l’analyse des sous-requêtes scalaires. [#34128](https://github.com/ClickHouse/ClickHouse/pull/34128) ([Federico Rodriguez](https://github.com/fedrod)).
* Rendre les tuples dans `ORDER BY` presque aussi rapides que les colonnes dans `ORDER BY`. Il existe des optimisations spécifiques pour `ORDER BY` sur plusieurs colonnes : [https://github.com/ClickHouse/ClickHouse/pull/10831](https://github.com/ClickHouse/ClickHouse/pull/10831) . Il est également utile de les appliquer aux colonnes de type tuple. [#34060](https://github.com/ClickHouse/ClickHouse/pull/34060) ([Amos Bird](https://github.com/amosbird)).
* Refonte et réintroduction du cache des sous-requêtes scalaires dans l’exécution des vues matérialisées. [#33958](https://github.com/ClickHouse/ClickHouse/pull/33958) ([Raúl Marín](https://github.com/Algunenano)).
* Légère amélioration des performances de `ORDER BY` grâce à la prise en charge d’AVX-512 sur x86-64 pour les fonctions `memcmpSmall`, afin d’accélérer les comparaisons en mémoire. Cela fonctionne uniquement si vous compilez ClickHouse vous-même. [#33706](https://github.com/ClickHouse/ClickHouse/pull/33706) ([hanqf-git](https://github.com/hanqf-git)).
* Amélioration des performances du dictionnaire `range_hashed` lorsqu'une clé comporte un grand nombre d'intervalles. Corrige [#23821](https://github.com/ClickHouse/ClickHouse/issues/23821). [#33516](https://github.com/ClickHouse/ClickHouse/pull/33516) ([Maksim Kita](https://github.com/kitaisreal)).
* Pour les insertions et les fusions dans S3, écriture des fichiers en parallèle lorsque c'est possible (TODO : vérifier si c'est fusionné). [#33291](https://github.com/ClickHouse/ClickHouse/pull/33291) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Amélioration des performances de `ClickHouse Keeper` et correction de plusieurs fuites de mémoire dans la bibliothèque NuRaft. [#33329](https://github.com/ClickHouse/ClickHouse/pull/33329) ([alesapin](https://github.com/alesapin)).

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

* Prise en charge des inserts asynchrones dans `clickhouse-client` pour les requêtes avec données intégrées. [#34267](https://github.com/ClickHouse/ClickHouse/pull/34267) ([Anton Popov](https://github.com/CurtizJ)).
* Les fonctions `dictGet` et `dictHas` convertissent implicitement l'argument de clé vers la structure de clé du dictionnaire lorsqu'ils diffèrent. [#33672](https://github.com/ClickHouse/ClickHouse/pull/33672) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliorations des dictionnaires `range_hashed`. Amélioration des performances de chargement en présence de plusieurs attributs. Possibilité de créer un dictionnaire sans attributs. Ajout d'une option permettant de spécifier la stratégie lorsque les intervalles `start` et `end` sont de type `Nullable` ; `convert_null_range_bound_to_open` vaut `true` par défaut. Résout [#29791](https://github.com/ClickHouse/ClickHouse/issues/29791). Il est désormais possible d'utiliser `Float`, `Decimal`, `DateTime64`, `Int128`, `Int256`, `UInt128`, `UInt256` comme types de plage. `RangeHashedDictionary` prend désormais en charge les valeurs de plage qui étendent le type `Int64`. Résout [#28322](https://github.com/ClickHouse/ClickHouse/issues/28322). Ajout de l'option `range_lookup_strategy` pour spécifier le type de recherche de plage, `min` ou `max`, avec `min` par défaut. Résout [#21647](https://github.com/ClickHouse/ClickHouse/issues/21647). Correction du calcul des octets alloués. Correction du nom de type dans `system.dictionaries` dans le cas de `ComplexKeyHashedDictionary`. [#33927](https://github.com/ClickHouse/ClickHouse/pull/33927) ([Maksim Kita](https://github.com/kitaisreal)).
* Les dictionnaires `flat`, `hashed` et `hashed_array` prennent désormais en charge la création avec des attributs vides, avec prise en charge de la lecture des clés et de l'utilisation de `dictHas`. Corrige [#33820](https://github.com/ClickHouse/ClickHouse/issues/33820). [#33918](https://github.com/ClickHouse/ClickHouse/pull/33918) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la prise en charge du type de données `DateTime64` dans les dictionnaires. [#33914](https://github.com/ClickHouse/ClickHouse/pull/33914) ([Maksim Kita](https://github.com/kitaisreal)).
* Possibilité d'écrire `s3(url, access_key_id, secret_access_key)` (détection automatique du format de données et de la structure de table, mais avec des credentials explicites). [#34503](https://github.com/ClickHouse/ClickHouse/pull/34503) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de l'envoi du format de sortie au client, comme c'est déjà le cas avec le protocole HTTP, comme suggéré dans [#34362](https://github.com/ClickHouse/ClickHouse/issues/34362). Résout [#34362](https://github.com/ClickHouse/ClickHouse/issues/34362). [#34499](https://github.com/ClickHouse/ClickHouse/pull/34499) ([Vitaly Baranov](https://github.com/vitlibar)).
* Envoi des statistiques ProfileEvents dans le cas d'une requête INSERT SELECT (pour afficher les métriques de requête dans `clickhouse-client` pour ce type de requêtes). [#34498](https://github.com/ClickHouse/ClickHouse/pull/34498) ([Dmitry Novik](https://github.com/novikd)).
* Prise en charge de l'extension `.jsonl` pour le format JSONEachRow. [#34496](https://github.com/ClickHouse/ClickHouse/pull/34496) ([Kruglov Pavel](https://github.com/Avogar)).
* Amélioration de l'inférence de schéma dans clickhouse-local. Il est désormais possible d'écrire simplement `clickhouse-local -q "select * from table" < data.format`. [#34495](https://github.com/ClickHouse/ClickHouse/pull/34495) ([Kruglov Pavel](https://github.com/Avogar)).
* Les privilèges CREATE/ALTER/DROP ROW POLICY peuvent désormais être accordés sur une table, sur `database.*` ou globalement sur `*.*`. [#34489](https://github.com/ClickHouse/ClickHouse/pull/34489) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permet d’exporter vers `s3` des fichiers de taille arbitrairement grande. Ajout de deux nouveaux paramètres : `s3_upload_part_size_multiply_factor` et `s3_upload_part_size_multiply_parts_count_threshold`. Désormais, chaque fois que le nombre de parts envoyées vers S3 par une seule query atteint `s3_upload_part_size_multiply_parts_count_threshold`, `s3_min_upload_part_size` est multiplié par `s3_upload_part_size_multiply_factor`. Corrige [#34244](https://github.com/ClickHouse/ClickHouse/issues/34244). [#34422](https://github.com/ClickHouse/ClickHouse/pull/34422) ([alesapin](https://github.com/alesapin)).
* Permet d’ignorer les URL introuvables (404) dans les globs lors de l’utilisation du stockage URL / de la table function. Clôt également [#34359](https://github.com/ClickHouse/ClickHouse/issues/34359). [#34392](https://github.com/ClickHouse/ClickHouse/pull/34392) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Formats d’entrée et de sortie par défaut pour `clickhouse-local`, qui peuvent être redéfinis avec --input-format et --output-format. Clôt [#30631](https://github.com/ClickHouse/ClickHouse/issues/30631). [#34352](https://github.com/ClickHouse/ClickHouse/pull/34352) ([李扬](https://github.com/taiyang-li)).
* Ajout d’options pour `clickhouse-format`, ce qui clôt [#30528](https://github.com/ClickHouse/ClickHouse/issues/30528) : `max_query_size`, `max_parser_depth`. [#34349](https://github.com/ClickHouse/ClickHouse/pull/34349) ([李扬](https://github.com/taiyang-li)).
* Meilleure gestion des entrées préalables avant le démarrage du client. Cela concerne [#34308](https://github.com/ClickHouse/ClickHouse/issues/34308). [#34336](https://github.com/ClickHouse/ClickHouse/pull/34336) ([Amos Bird](https://github.com/amosbird)).
* Alias de fonction `REGEXP_MATCHES` et `REGEXP_REPLACE` pour la compatibilité avec PostgreSQL. Clôt [#30885](https://github.com/ClickHouse/ClickHouse/issues/30885). [#34334](https://github.com/ClickHouse/ClickHouse/pull/34334) ([李扬](https://github.com/taiyang-li)).
* Certains serveurs attendent un en-tête `User-Agent` dans leurs HTTP request. Un en-tête `User-Agent` a été ajouté aux HTTP request, sous la forme : User-Agent: ClickHouse/VERSION\_STRING. [#34330](https://github.com/ClickHouse/ClickHouse/pull/34330) ([Saad Ur Rahman](https://github.com/surahman)).
* Annuler les merges avant d’acquérir le verrou de table pour la query `TRUNCATE`, afin d’éviter l’erreur `DEADLOCK_AVOIDED` dans certains cas. Corrige [#34302](https://github.com/ClickHouse/ClickHouse/issues/34302). [#34304](https://github.com/ClickHouse/ClickHouse/pull/34304) ([tavplubix](https://github.com/tavplubix)).
* Changement du niveau de gravité du message "Cancelled merging parts" dans les logs, car il ne s’agit pas d’une erreur. Cela clôt [#34148](https://github.com/ClickHouse/ClickHouse/issues/34148). [#34232](https://github.com/ClickHouse/ClickHouse/pull/34232) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de la possibilité de combiner l’opérateur de transtypage `::` de style PostgreSQL avec des expressions utilisant les opérateurs `[]` et `.` (indexation de tableaux et de tuples). [#34229](https://github.com/ClickHouse/ClickHouse/pull/34229) ([Nikolay Degterinsky](https://github.com/evillique)).
* Prise en charge du format `YYYYMMDD-hhmmss` dans la fonction `parseDateTimeBestEffort`. Cela clôt [#34206](https://github.com/ClickHouse/ClickHouse/issues/34206). [#34208](https://github.com/ClickHouse/ClickHouse/pull/34208) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autorise les retours chariot au milieu d’une ligne lors de l’analyse avec le format `Regexp`. Cela clôt [#34200](https://github.com/ClickHouse/ClickHouse/issues/34200). [#34205](https://github.com/ClickHouse/ClickHouse/pull/34205) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autorise l’analyse de la `PRIMARY KEY` du dictionnaire sous la forme `PRIMARY KEY (id, value)` ; auparavant, seule la forme `PRIMARY KEY id, value` était prise en charge. Clôt [#34135](https://github.com/ClickHouse/ClickHouse/issues/34135). [#34141](https://github.com/ClickHouse/ClickHouse/pull/34141) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajoute un argument facultatif à `splitByChar` pour limiter le nombre d’éléments résultants. Clôt [#34081](https://github.com/ClickHouse/ClickHouse/issues/34081). [#34140](https://github.com/ClickHouse/ClickHouse/pull/34140) ([李扬](https://github.com/taiyang-li)).
* Améliore l’expérience d’édition sur plusieurs lignes dans clickhouse-client. Il s’agit d’un suivi de [#31123](https://github.com/ClickHouse/ClickHouse/pull/31123). [#34114](https://github.com/ClickHouse/ClickHouse/pull/34114) ([Amos Bird](https://github.com/amosbird)).
* Ajoute la prise en charge de `UUID` dans le format d’entrée/sortie `MsgPack`. [#34065](https://github.com/ClickHouse/ClickHouse/pull/34065) ([Kruglov Pavel](https://github.com/Avogar)).
* Le contexte de tracing (pour OpenTelemetry) est désormais propagé depuis les métadonnées du client GRPC (ce changement concerne le protocole client-serveur GRPC). [#34064](https://github.com/ClickHouse/ClickHouse/pull/34064) ([andremarianiello](https://github.com/andremarianiello)).
* Prend en charge tous les types de requêtes `SYSTEM` avec la clause `ON CLUSTER`. [#34005](https://github.com/ClickHouse/ClickHouse/pull/34005) ([小路](https://github.com/nicelulu)).
* Améliore le suivi de l’utilisation mémoire pour les requêtes qui utilisent moins de `max_untracker_memory`. [#34001](https://github.com/ClickHouse/ClickHouse/pull/34001) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la recherche insensible à la casse dans les chaînes UTF-8 lorsque les caractères minuscules et majuscules sont représentés par un nombre d’octets différent. Exemple : `ẞ` et `ß`. Cela clôt [#7334](https://github.com/ClickHouse/ClickHouse/issues/7334). [#33992](https://github.com/ClickHouse/ClickHouse/pull/33992) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Détecte le format et le schéma depuis stdin dans `clickhouse-local`. [#33960](https://github.com/ClickHouse/ClickHouse/pull/33960) ([Kruglov Pavel](https://github.com/Avogar)).
* Gère correctement le cas d’une mauvaise configuration lorsque plusieurs disks utilisent le même path sur le filesystem. [#29072](https://github.com/ClickHouse/ClickHouse/issues/29072). [#33905](https://github.com/ClickHouse/ClickHouse/pull/33905) ([zhongyuankai](https://github.com/zhongyuankai)).
* Essaie chaque adresse IP résolue lors de la récupération du proxy S3. Les proxies S3 sont rarement utilisés, principalement dans Yandex Cloud. [#33862](https://github.com/ClickHouse/ClickHouse/pull/33862) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Prend en charge la requête EXPLAIN AST CREATE FUNCTION : `EXPLAIN AST CREATE FUNCTION mycast AS (n) -> cast(n as String)` renverra `EXPLAIN AST CREATE FUNCTION mycast AS n -> CAST(n, 'String')`. [#33819](https://github.com/ClickHouse/ClickHouse/pull/33819) ([李扬](https://github.com/taiyang-li)).
* Ajoute la prise en charge du cast de `Map(Key, Value)` vers `Array(Tuple(Key, Value))`. [#33794](https://github.com/ClickHouse/ClickHouse/pull/33794) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajoute quelques améliorations et corrections pour le type de données `Bool`. Corrige [#33244](https://github.com/ClickHouse/ClickHouse/issues/33244). [#33737](https://github.com/ClickHouse/ClickHouse/pull/33737) ([Kruglov Pavel](https://github.com/Avogar)).
* Analyse et stocke l’identifiant de trace OpenTelemetry dans l’ordre big-endian. [#33723](https://github.com/ClickHouse/ClickHouse/pull/33723) ([Frank Chen](https://github.com/FrankChen021)).
* Amélioration des fonctions de la famille `fromUnixTimestamp64`.. Elles acceptent désormais toute valeur entière convertible en `Int64`. Cela clôt le ticket : [#14648](https://github.com/ClickHouse/ClickHouse/issues/14648). [#33505](https://github.com/ClickHouse/ClickHouse/pull/33505) ([Andrey Zvonov](https://github.com/zvonand)).
* Réimplémentation de `_shard_num` à partir de constantes (voir [#7624](https://github.com/ClickHouse/ClickHouse/issues/7624)) avec la fonction `shardNum()` (voir [#27020](https://github.com/ClickHouse/ClickHouse/issues/27020)), afin d'éviter d'éventuels problèmes (comme ceux relevés dans [#16947](https://github.com/ClickHouse/ClickHouse/issues/16947)). [#33392](https://github.com/ClickHouse/ClickHouse/pull/33392) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge de l'arithmétique binaire (addition, soustraction, multiplication, division, least, greatest) entre Decimal et Float. [#33355](https://github.com/ClickHouse/ClickHouse/pull/33355) ([flynn](https://github.com/ucasfl)).
* Prise en compte des limites cgroups dans l'autodétection de max\_threads. [#33342](https://github.com/ClickHouse/ClickHouse/pull/33342) ([JaySon](https://github.com/JaySon-Huang)).
* Ajout du nouveau paramètre `min_session_timeout_ms` de ClickHouse Keeper. Désormais, ClickHouse Keeper déterminera le délai d'expiration de la session client en fonction des paramètres `min_session_timeout_ms` et `session_timeout_ms`. [#33288](https://github.com/ClickHouse/ClickHouse/pull/33288) ([JackyWoo](https://github.com/JackyWoo)).
* Ajout de la prise en charge du type de données `UUID` pour les fonctions `hex` et `bin`. [#32170](https://github.com/ClickHouse/ClickHouse/pull/32170) ([Frank Chen](https://github.com/FrankChen021)).
* Correction de la lecture des sous-colonnes contenant des points dans leur nom. En particulier, correction de la lecture des colonnes `Nested` si les noms de leurs éléments contiennent des points (par ex. ``Nested(`keys.name` String, `keys.id` UInt64, values UInt64)``). [#34228](https://github.com/ClickHouse/ClickHouse/pull/34228) ([Anton Popov](https://github.com/CurtizJ)).
* Correction du non-fonctionnement de `parallel_view_processing = 0` lors d'une insertion dans une table avec `VALUES`. - Correction de `view_duration_ms` dans le `query_views_log`, qui n'était pas correctement défini pour les vues matérialisées. [#34067](https://github.com/ClickHouse/ClickHouse/pull/34067) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l'analyse de la structure des tables à partir de ZooKeeper : désormais, les métadonnées de ZooKeeper sont comparées aux métadonnées locales sous leur forme canonique. Cela aide lorsque les noms canoniques des fonctions peuvent changer entre les versions de ClickHouse. [#33933](https://github.com/ClickHouse/ClickHouse/pull/33933) ([sunny](https://github.com/sunny19930321)).
* Échappement correct de certains caractères lors de l'interaction avec LDAP. [#33401](https://github.com/ClickHouse/ClickHouse/pull/33401) ([IlyaTsoi](https://github.com/IlyaTsoi)).

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

* Suppression de la prise en charge des builds non packagés. [#33690](https://github.com/ClickHouse/ClickHouse/pull/33690) ([Azat Khuzhin](https://github.com/azat)).
* Garantit que les tests ne dépendent pas du résultat d'un tri non stable d'éléments égaux. Ajout, en mode Débogage, d'une randomisation des plages d'éléments égaux après le tri afin d'éviter les problèmes lorsque l'on s'appuie sur l'ordre de tri des éléments égaux. [#34393](https://github.com/ClickHouse/ClickHouse/pull/34393) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de verbosité à un check de style. [#34289](https://github.com/ClickHouse/ClickHouse/pull/34289) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Suppression du paquet Debian `clickhouse-test`, car il est obsolète. [#33948](https://github.com/ClickHouse/ClickHouse/pull/33948) ([Ilya Yatsishin](https://github.com/qoega)).
* Plusieurs améliorations du système de build pour éviter l'utilisation occasionnelle de paquets du système d'exploitation et imposer des builds hermétiques. [#33695](https://github.com/ClickHouse/ClickHouse/pull/33695) ([Amos Bird](https://github.com/amosbird)).

<div id="bug-fix-user-visible-misbehaviour-in-official-stable-or-prestable-release-1">
  #### Correction de bugs (dysfonctionnement visible par l’utilisateur dans une version stable ou préstable officielle)
</div>

* Correction de l’assertion lors de l’utilisation de `allow_experimental_parallel_reading_from_replicas` avec `max_parallel_replicas` égal à 1. Cela corrige [#34525](https://github.com/ClickHouse/ClickHouse/issues/34525). [#34613](https://github.com/ClickHouse/ClickHouse/pull/34613) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d’un bug rare lors de la lecture de tableaux vides, qui pouvait provoquer l’erreur `Data compressed with different methods`. Cela peut se produire si vous avez principalement des tableaux vides, mais pas systématiquement, et que la lecture s’effectue en sens inverse avec ORDER BY ... DESC. Cette erreur a très peu de chances de se produire. [#34327](https://github.com/ClickHouse/ClickHouse/pull/34327) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un résultat incorrect de `round`/`roundBankers` lors de l’arrondi de valeurs entières de petits types. Ferme [#33267](https://github.com/ClickHouse/ClickHouse/issues/33267). [#34562](https://github.com/ClickHouse/ClickHouse/pull/34562) ([李扬](https://github.com/taiyang-li)).
* Il arrivait parfois que l’annulation d’une requête ne fonctionne pas immédiatement lors de la lecture de plusieurs fichiers depuis S3 ou HDFS. Corrige [#34301](https://github.com/ClickHouse/ClickHouse/issues/34301). Lié à [#34397](https://github.com/ClickHouse/ClickHouse/issues/34397). [#34539](https://github.com/ClickHouse/ClickHouse/pull/34539) ([Dmitry Novik](https://github.com/novikd)).
* Correction de l’exception `Chunk should have AggregatedChunkInfo in MergingAggregatedTransform` (dans le cas de `optimize_aggregation_in_order = 1` et `distributed_aggregation_memory_efficient = 0`). Corrige [#34526](https://github.com/ClickHouse/ClickHouse/issues/34526). [#34532](https://github.com/ClickHouse/ClickHouse/pull/34532) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de la comparaison entre entiers et nombres à virgule flottante dans l’analyse d’index. Auparavant, cela pouvait conduire à ignorer par erreur certaines granules lors de la lecture. Corrige [#34493](https://github.com/ClickHouse/ClickHouse/issues/34493). [#34528](https://github.com/ClickHouse/ClickHouse/pull/34528) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de la prise en charge de la compression dans le moteur URL. [#34524](https://github.com/ClickHouse/ClickHouse/pull/34524) ([Frank Chen](https://github.com/FrankChen021)).
* Correction de l’erreur possible 'file\_size: Operation not supported' lors de l’auto-détection du schéma des fichiers. [#34479](https://github.com/ClickHouse/ClickHouse/pull/34479) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une possible condition de concurrence avec la suppression d’une table. [#34416](https://github.com/ClickHouse/ClickHouse/pull/34416) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’erreur possible `Cannot convert column Function to mask` lors de l’évaluation en court-circuit des fonctions. Ferme [#34171](https://github.com/ClickHouse/ClickHouse/issues/34171). [#34415](https://github.com/ClickHouse/ClickHouse/pull/34415) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un plantage potentiel lors de l’inférence de schéma à partir d’une source URL. Ferme [#34147](https://github.com/ClickHouse/ClickHouse/issues/34147). [#34405](https://github.com/ClickHouse/ClickHouse/pull/34405) ([Kruglov Pavel](https://github.com/Avogar)).
* Pour les UDFs, les permissions d’accès étaient vérifiées au niveau de la base de données au lieu du niveau global, comme cela aurait dû être le cas. Ferme [#34281](https://github.com/ClickHouse/ClickHouse/issues/34281). [#34404](https://github.com/ClickHouse/ClickHouse/pull/34404) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’une syntaxe de moteur incorrecte dans le résultat de la requête `SHOW CREATE DATABASE` pour les bases de données utilisant le moteur `Memory`. Cela ferme [#34335](https://github.com/ClickHouse/ClickHouse/issues/34335). [#34345](https://github.com/ClickHouse/ClickHouse/pull/34345) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction de quelques situations de concurrence extrêmement rares qui pouvaient entraîner un état incohérent de la file de réplication et l’erreur "intersecting parts". [#34297](https://github.com/ClickHouse/ClickHouse/pull/34297) ([tavplubix](https://github.com/tavplubix)).
* Correction de la largeur de la barre de progression. Elle était arrondie à tort à un nombre entier de caractères. [#34275](https://github.com/ClickHouse/ClickHouse/pull/34275) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction des champs d’information client current\_user/current\_address pour la communication inter-serveur (avant ce correctif, current\_user/current\_address étaient conservés depuis la requête précédente). [#34263](https://github.com/ClickHouse/ClickHouse/pull/34263) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une fuite mémoire en cas de certaines Exception pendant le traitement des requêtes avec `optimize_aggregation_in_order=1`. [#34234](https://github.com/ClickHouse/ClickHouse/pull/34234) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la métrique `Query`, qui affiche le nombre de requêtes en cours d’exécution. Au cours des dernières versions, elle valait toujours 0. [#34224](https://github.com/ClickHouse/ClickHouse/pull/34224) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’inférence de schéma pour la fonction de table `s3`. [#34186](https://github.com/ClickHouse/ClickHouse/pull/34186) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une situation de concurrence rare et bénigne dans les moteurs de stockage `HDFS`, `S3` et `URL`, qui peut entraîner des connexions supplémentaires. [#34172](https://github.com/ClickHouse/ClickHouse/pull/34172) ([alesapin](https://github.com/alesapin)).
* Correction d’un bug qui peut, dans de rares cas, provoquer l’erreur "Cannot read all data" lors de la lecture de colonnes LowCardinality de la famille des moteurs de table MergeTree stockant les données sur un système de fichiers distant comme S3 (le système de fichiers virtuel sur S3 est une fonctionnalité expérimentale qui n’est pas prête pour la production). [#34139](https://github.com/ClickHouse/ClickHouse/pull/34139) ([alesapin](https://github.com/alesapin)).
* Correction des insertions dans les tables Distributed en cas de changement du protocole natif. Le dernier changement remonte à la version 22.1, il peut donc y avoir certains échecs d’insertion dans les tables Distributed après une mise à niveau vers cette version. [#34132](https://github.com/ClickHouse/ClickHouse/pull/34132) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une possible data race dans le moteur de table `File`, introduite dans [#33960](https://github.com/ClickHouse/ClickHouse/pull/33960). Clôture de [#34111](https://github.com/ClickHouse/ClickHouse/issues/34111). [#34113](https://github.com/ClickHouse/ClickHouse/pull/34113) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une situation de concurrence mineure qui pouvait provoquer l’erreur "intersecting parts" dans des cas extrêmement rares après une perte de connexion à ZooKeeper. [#34096](https://github.com/ClickHouse/ClickHouse/pull/34096) ([tavplubix](https://github.com/tavplubix)).
* Correction des insertions asynchrones avec le format `Native`. [#34068](https://github.com/ClickHouse/ClickHouse/pull/34068) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un bug qui pouvait empêcher le serveur de démarrer lorsque le stockage d’accès répliqué et Keeper (intégré à clickhouse-server) étaient utilisés ensemble. Introduction de deux paramètres de délai d’expiration du socket Keeper à la place des paramètres de l’utilisateur par défaut : `keeper_server.socket_receive_timeout_sec` et `keeper_server.socket_send_timeout_sec`. Corrige [#33973](https://github.com/ClickHouse/ClickHouse/issues/33973). [#33988](https://github.com/ClickHouse/ClickHouse/pull/33988) ([alesapin](https://github.com/alesapin)).
* Correction d’un segfault lors de l’analyse d’un fichier ORC avec un pied de page corrompu. Clôture de [#33797](https://github.com/ClickHouse/ClickHouse/issues/33797). [#33984](https://github.com/ClickHouse/ClickHouse/pull/33984) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l'analyse des IPv6 à partir des paramètres de requête (instructions préparées) et la conversion d'IPv6 en chaîne. Clôt [#33928](https://github.com/ClickHouse/ClickHouse/issues/33928). [#33971](https://github.com/ClickHouse/ClickHouse/pull/33971) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un crash lors de la lecture de tuples imbriqués. Corrige [#33838](https://github.com/ClickHouse/ClickHouse/issues/33838). [#33956](https://github.com/ClickHouse/ClickHouse/pull/33956) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l'utilisation des fonctions `array` et `tuple` avec des arguments littéraux dans les requêtes distribuées. Auparavant, cela pouvait entraîner l'exception `Not found columns`. [#33938](https://github.com/ClickHouse/ClickHouse/pull/33938) ([Anton Popov](https://github.com/CurtizJ)).
* Le combinateur de fonction d'agrégation `-If` ne traitait pas correctement l'argument de filtre `Nullable`. Cela clôt [#27073](https://github.com/ClickHouse/ClickHouse/issues/27073). [#33920](https://github.com/ClickHouse/ClickHouse/pull/33920) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige une condition de concurrence potentielle lors d'une lecture sur disque distant (le système de fichiers virtuel sur s3 est une fonctionnalité expérimentale qui n'est pas prête pour la production). [#33912](https://github.com/ClickHouse/ClickHouse/pull/33912) ([Amos Bird](https://github.com/amosbird)).
* Corrige un crash si une UDF SQL est créée avec une lambda dont les arguments ne sont pas des identifiants. Clôt [#33866](https://github.com/ClickHouse/ClickHouse/issues/33866). [#33868](https://github.com/ClickHouse/ClickHouse/pull/33868) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige l'utilisation des colonnes sparse (qui peuvent être activées par le paramètre expérimental `ratio_of_defaults_for_sparse_serialization`). [#33849](https://github.com/ClickHouse/ClickHouse/pull/33849) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l'erreur logique `replica is not readonly` sur la requête `SYSTEM RESTORE REPLICA` lorsque la réplique est en réalité `readonly`. Corrige [#33806](https://github.com/ClickHouse/ClickHouse/issues/33806). [#33847](https://github.com/ClickHouse/ClickHouse/pull/33847) ([tavplubix](https://github.com/tavplubix)).
* Corrige une fuite de mémoire dans `clickhouse-keeper` lorsque la compression est utilisée (par défaut). [#33840](https://github.com/ClickHouse/ClickHouse/pull/33840) ([Azat Khuzhin](https://github.com/azat)).
* Corrige l'analyse des index lorsqu'aucun type commun n'est disponible. [#33833](https://github.com/ClickHouse/ClickHouse/pull/33833) ([Amos Bird](https://github.com/amosbird)).
* Corrige l'inférence de schéma pour `JSONEachRow` et `JSONCompactEachRow`. [#33830](https://github.com/ClickHouse/ClickHouse/pull/33830) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l'utilisation des dictionnaires externes avec la source `redis` et un grand nombre de clés. [#33804](https://github.com/ClickHouse/ClickHouse/pull/33804) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un bug dans le client qui entraînait 'Connection reset by peer' sur le serveur. Clôt [#33309](https://github.com/ClickHouse/ClickHouse/issues/33309). [#33790](https://github.com/ClickHouse/ClickHouse/pull/33790) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l'analyse de la requête INSERT INTO ... VALUES SETTINGS ... (...), ... [#33776](https://github.com/ClickHouse/ClickHouse/pull/33776) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un bug dans la vérification de table lors de la création d'une data part au format wide et d'une projection. [#33774](https://github.com/ClickHouse/ClickHouse/pull/33774) ([李扬](https://github.com/taiyang-li)).
* Correction d’une légère condition de concurrence entre count() et INSERT/merges/... dans MergeTree (il est possible de renvoyer un nombre incorrect de lignes pour SELECT avec optimize\_trivial\_count\_query). [#33753](https://github.com/ClickHouse/ClickHouse/pull/33753) ([Azat Khuzhin](https://github.com/azat)).
* Lever une exception lorsque la requête de listage de répertoire échoue dans le stockage HDFS. [#33724](https://github.com/ClickHouse/ClickHouse/pull/33724) ([LiuNeng](https://github.com/liuneng1994)).
* Correction d’une mutation lorsque la table contient des projections. Cela corrige [#33010](https://github.com/ClickHouse/ClickHouse/issues/33010). Cela corrige [#33275](https://github.com/ClickHouse/ClickHouse/issues/33275). [#33679](https://github.com/ClickHouse/ClickHouse/pull/33679) ([Amos Bird](https://github.com/amosbird)).
* Déterminer correctement la base de données courante si `CREATE TEMPORARY TABLE AS SELECT` est exécuté dans une session HTTP nommée. Il s’agit d’un cas d’usage très rare. Cela clôt [#8340](https://github.com/ClickHouse/ClickHouse/issues/8340). [#33676](https://github.com/ClickHouse/ClickHouse/pull/33676) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Autoriser certaines requêtes avec tri, LIMIT BY, ARRAY JOIN et fonctions lambda. Cela clôt [#7462](https://github.com/ClickHouse/ClickHouse/issues/7462). [#33675](https://github.com/ClickHouse/ClickHouse/pull/33675) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’un bug dans la "réplication zero copy" (une fonctionnalité en cours de développement et qui ne doit pas être utilisée en production) qui entraînait une duplication des données en cas de TTL move. Corrige [#33643](https://github.com/ClickHouse/ClickHouse/issues/33643). [#33642](https://github.com/ClickHouse/ClickHouse/pull/33642) ([alesapin](https://github.com/alesapin)).
* Correction de `Chunk should have AggregatedChunkInfo in GroupingAggregatedTransform` (dans le cas de `optimize_aggregation_in_order = 1`). [#33637](https://github.com/ClickHouse/ClickHouse/pull/33637) ([Azat Khuzhin](https://github.com/azat)).
* Correction de l’erreur `Bad cast from type ... to DB::DataTypeArray`, qui peut se produire lorsqu’une table possède une colonne `Nested` avec des points dans son nom et qu’une valeur par défaut est générée pour celle-ci (par exemple lors d’un insert, lorsque la colonne n’est pas listée). Suite de [#28762](https://github.com/ClickHouse/ClickHouse/issues/28762). [#33588](https://github.com/ClickHouse/ClickHouse/pull/33588) ([Alexey Pavlenko](https://github.com/alexeypavlenko)).
* L’export vers des fichiers `lz4` a été corrigé. Clôt [#31421](https://github.com/ClickHouse/ClickHouse/issues/31421). [#31862](https://github.com/ClickHouse/ClickHouse/pull/31862) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un plantage potentiel si `group_by_overflow_mode` était défini sur `any` (GROUP BY approximatif) et que l’agrégation était effectuée sur une seule colonne de type `LowCardinality`. [#34506](https://github.com/ClickHouse/ClickHouse/pull/34506) ([DR](https://github.com/freedomDR)).
* Correction de l’insertion dans des tables temporaires via le protocole client-serveur gRPC. Corrige [#34347](https://github.com/ClickHouse/ClickHouse/issues/34347), ticket `#2`. [#34364](https://github.com/ClickHouse/ClickHouse/pull/34364) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction du ticket [#19429](https://github.com/ClickHouse/ClickHouse/issues/19429). [#34225](https://github.com/ClickHouse/ClickHouse/pull/34225) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction du ticket [#18206](https://github.com/ClickHouse/ClickHouse/issues/18206). [#33977](https://github.com/ClickHouse/ClickHouse/pull/33977) ([Vitaly Baranov](https://github.com/vitlibar)).
* Cette PR permet d'utiliser plusieurs stockages LDAP dans une même liste de répertoires utilisateurs. Cela fonctionnait auparavant, mais ne fonctionnait plus parce que les tests LDAP sont désactivés (ils font partie des tests testflows). [#33574](https://github.com/ClickHouse/ClickHouse/pull/33574) ([Vitaly Baranov](https://github.com/vitlibar)).

### <a id="221" /> Version de ClickHouse v22.1, 2022-01-18. [Présentation](https://presentations.clickhouse.com/2022-release-22.1/), [Vidéo](https://www.youtube.com/watch?v=gP7I2SUBXig)

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

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

* Les fonctions `left` et `right` étaient auparavant implémentées dans le parseur et prennent désormais pleinement en charge toutes les fonctionnalités. Les requêtes distribuées utilisant les fonctions `left` ou `right` sans alias peuvent lever une exception si le cluster contient différentes versions de `clickhouse-server`. Si vous mettez votre cluster à niveau et rencontrez cette erreur, vous devez terminer la mise à niveau afin de vous assurer que tous les nœuds utilisent la même version. Vous pouvez également ajouter des alias (`AS something`) aux colonnes de vos requêtes pour éviter ce problème. [#33407](https://github.com/ClickHouse/ClickHouse/pull/33407) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Depuis cette version, l’utilisation des ressources par les sous-requêtes scalaires est entièrement comptabilisée. Avec ce changement, les lignes lues dans les sous-requêtes scalaires sont désormais consignées dans le `query_log`. Si la sous-requête scalaire est mise en cache (répétée ou appelée pour plusieurs lignes), les lignes lues ne sont comptées qu’une seule fois. Cette modification permet d’interrompre les requêtes avec KILL et de suivre leur progression pendant l’exécution de sous-requêtes scalaires. [#32271](https://github.com/ClickHouse/ClickHouse/pull/32271) ([Raúl Marín](https://github.com/Algunenano)).

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

* Mise en œuvre de l’inférence de schéma pour les formats d’entrée. Possibilité d’omettre la structure (ou d’écrire simplement `auto`) dans les fonctions de table `file`, `url`, `s3`, `hdfs` et dans les paramètres de `clickhouse-local`. Possibilité d’omettre la structure dans la requête CREATE pour les moteurs de table `File`, `HDFS`, `S3`, `URL`, `Merge`, `Buffer`, `Distributed` et `ReplicatedMergeTree` (si de nouvelles répliques sont ajoutées). [#32455](https://github.com/ClickHouse/ClickHouse/pull/32455) ([Kruglov Pavel](https://github.com/Avogar)).
* Détection du format à partir de l’extension du fichier dans les fonctions de table `file`/`hdfs`/`s3`/`url` et les moteurs de table `HDFS`/`S3`/`URL`, ainsi que pour `SELECT INTO OUTFILE` et `INSERT FROM INFILE` [#33565](https://github.com/ClickHouse/ClickHouse/pull/33565) ([Kruglov Pavel](https://github.com/Avogar)). Ferme [#30918](https://github.com/ClickHouse/ClickHouse/issues/30918). [#33443](https://github.com/ClickHouse/ClickHouse/pull/33443) ([OnePiece](https://github.com/zhongyuankai)).
* Un outil de collecte des données de diagnostic en cas de besoin d’assistance. [#33175](https://github.com/ClickHouse/ClickHouse/pull/33175) ([Alexander Burmak](https://github.com/Alex-Burmak)).
* Découverte automatique du cluster via Zoo/Keeper. Cela permet d’ajouter des répliques au cluster sans modifier la configuration de chaque serveur. [#31442](https://github.com/ClickHouse/ClickHouse/pull/31442) ([vdimir](https://github.com/vdimir)).
* Mise en œuvre du moteur de table Hive pour accéder à Apache Hive depuis ClickHouse. Cela implémente : [#29245](https://github.com/ClickHouse/ClickHouse/issues/29245). [#31104](https://github.com/ClickHouse/ClickHouse/pull/31104) ([taiyang-li](https://github.com/taiyang-li)).
* Ajout des fonctions d’agrégation `cramersV`, `cramersVBiasCorrected`, `theilsU` et `contingency`. Ces fonctions calculent la dépendance (mesure de l’association) entre des valeurs catégorielles. Elles reposent toutes sur un tableau croisé (histogramme de paires) pour leur implémentation. On peut les voir comme un coefficient de corrélation, mais pour n’importe quelles valeurs discrètes (pas nécessairement numériques). [#33366](https://github.com/ClickHouse/ClickHouse/pull/33366) ([alexey-milovidov](https://github.com/alexey-milovidov)). Implémentation initiale par [Vanyok-All-is-OK](https://github.com/Vanyok-All-is-OK) et [antikvist](https://github.com/antikvist).
* Ajout de la fonction de table `hdfsCluster`, qui permet de traiter des fichiers depuis HDFS en parallèle à partir de plusieurs nœuds d’un cluster donné, à l’instar de `s3Cluster`. [#32400](https://github.com/ClickHouse/ClickHouse/pull/32400) ([Zhichang Yu](https://github.com/yuzhichang)).
* Ajout de la prise en charge des disques s’appuyant sur Azure Blob Storage, à l’instar de ce qui existe déjà pour les disques s’appuyant sur AWS S3. [#31505](https://github.com/ClickHouse/ClickHouse/pull/31505) ([Jakub Kuklis](https://github.com/jkuklis)).
* Autorisation de `COMMENT` dans `CREATE VIEW` (pour tous les types de VIEW). [#31062](https://github.com/ClickHouse/ClickHouse/pull/31062) ([Vasily Nemkov](https://github.com/Enmk)).
* Réinitialisation dynamique des ports d’écoute et des protocoles lors des changements de configuration. [#30549](https://github.com/ClickHouse/ClickHouse/pull/30549) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Ajout des fonctions `left`, `right`, `leftUTF8`, `rightUTF8`. Correction d’une erreur dans l’implémentation de la fonction `substringUTF8` avec un OFFSET négatif (OFFSET à partir de la fin de la chaîne). [#33407](https://github.com/ClickHouse/ClickHouse/pull/33407) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de nouvelles fonctions pour le système de coordonnées `H3` : `h3HexAreaKm2`, `h3CellAreaM2`, `h3CellAreaRads2`. [#33479](https://github.com/ClickHouse/ClickHouse/pull/33479) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout de la fonction `MONTHNAME`. [#33436](https://github.com/ClickHouse/ClickHouse/pull/33436) ([usurai](https://github.com/usurai)).
* Ajout de la fonction `arrayLast`. Résout [#33390](https://github.com/ClickHouse/ClickHouse/issues/33390). [#33415](https://github.com/ClickHouse/ClickHouse/pull/33415) Ajout de la fonction `arrayLastIndex`. [#33465](https://github.com/ClickHouse/ClickHouse/pull/33465) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de la fonction `decodeURLFormComponent`, légèrement différente de `decodeURLComponent`. Résout [#10298](https://github.com/ClickHouse/ClickHouse/issues/10298). [#33451](https://github.com/ClickHouse/ClickHouse/pull/33451) ([SuperDJY](https://github.com/cmsxbc)).
* Possibilité de séparer les règles de rollup `GraphiteMergeTree` pour les métriques simples/avec tags (champ rule\_type facultatif). [#33494](https://github.com/ClickHouse/ClickHouse/pull/33494) ([Michail Safronov](https://github.com/msaf1980)).

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

* Prise en charge du déplacement des conditions vers `PREWHERE` (paramètre `optimize_move_to_prewhere`) pour les tables du moteur `Merge` si toutes les tables sous-jacentes prennent en charge `PREWHERE`. [#33300](https://github.com/ClickHouse/ClickHouse/pull/33300) ([Anton Popov](https://github.com/CurtizJ)).
* Gestion plus efficace des globs pour le stockage URL. Vous pouvez désormais interroger facilement un million d’URL en parallèle, avec nouvelles tentatives en cas d’échec. Corrige [#32866](https://github.com/ClickHouse/ClickHouse/issues/32866). [#32907](https://github.com/ClickHouse/ClickHouse/pull/32907) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Évite le backtracking exponentiel dans l’analyseur syntaxique. Cela corrige [#20158](https://github.com/ClickHouse/ClickHouse/issues/20158). [#33481](https://github.com/ClickHouse/ClickHouse/pull/33481) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Une utilisation abusive de la fonction `untuple` entraînait une complexité exponentielle dans l’analyse des requêtes (détectée par le fuzzer). Cela corrige [#33297](https://github.com/ClickHouse/ClickHouse/issues/33297). [#33445](https://github.com/ClickHouse/ClickHouse/pull/33445) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Réduit la mémoire allouée aux dictionnaires avec des attributs String. [#33466](https://github.com/ClickHouse/ClickHouse/pull/33466) ([Maksim Kita](https://github.com/kitaisreal)).
* Légère amélioration des performances de la fonction `reinterpret`. [#32587](https://github.com/ClickHouse/ClickHouse/pull/32587) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Changement mineur. Dans des cas extrêmement rares où une part de données est perdue sur chaque réplique, après la fusion de certaines parts de données, les requêtes suivantes peuvent ignorer moins de partitions lors de l’élagage des partitions. Cela n’a pratiquement aucun impact. [#32220](https://github.com/ClickHouse/ClickHouse/pull/32220) ([Azat Khuzhin](https://github.com/azat)).
* Améliore les performances d’écriture de `ClickHouse Keeper` en optimisant la logique de calcul de taille. [#32366](https://github.com/ClickHouse/ClickHouse/pull/32366) ([zhanglistar](https://github.com/zhanglistar)).
* Optimise la matérialisation des projections sur une seule part. Cela corrige [#31669](https://github.com/ClickHouse/ClickHouse/issues/31669). [#31885](https://github.com/ClickHouse/ClickHouse/pull/31885) ([Amos Bird](https://github.com/amosbird)).
* Améliore les performances des requêtes sur les tables système. [#33312](https://github.com/ClickHouse/ClickHouse/pull/33312) ([OnePiece](https://github.com/zhongyuankai)).
* Optimise la sélection des parts MergeTree pouvant être déplacées entre volumes. [#33225](https://github.com/ClickHouse/ClickHouse/pull/33225) ([OnePiece](https://github.com/zhongyuankai)).
* Corrige les performances du dictionnaire `sparse_hashed` avec des clés séquentielles (fonction de hachage incorrecte). [#32536](https://github.com/ClickHouse/ClickHouse/pull/32536) ([Azat Khuzhin](https://github.com/azat)).

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

* Lecture parallèle à partir de plusieurs répliques au sein d'un shard lors d'une requête distribuée sans utiliser de clé d'échantillonnage. Pour l'activer, définissez `allow_experimental_parallel_reading_from_replicas = 1` et `max_parallel_replicas` sur n'importe quelle valeur. Cela clôt [#26748](https://github.com/ClickHouse/ClickHouse/issues/26748). [#29279](https://github.com/ClickHouse/ClickHouse/pull/29279) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Implémentation de la sérialisation creuse. Elle peut réduire l'espace disque utilisé et améliorer les performances de certaines requêtes sur les colonnes qui contiennent beaucoup de valeurs par défaut (zéro). Elle peut être activée en définissant `ratio_for_sparse_serialization`. La sérialisation creuse sera choisie dynamiquement pour une colonne si le ratio entre le nombre de valeurs par défaut et le nombre total de valeurs dépasse ce seuil. La sérialisation (par défaut ou creuse) sera fixée pour chaque colonne dans chaque part, mais peut varier d'une part à l'autre. [#22535](https://github.com/ClickHouse/ClickHouse/pull/22535) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout de la fonctionnalité "TABLE OVERRIDE" pour personnaliser les schémas de table de MaterializedMySQL. [#32325](https://github.com/ClickHouse/ClickHouse/pull/32325) ([Stig Bakken](https://github.com/stigsb)).
* Ajout de la requête `EXPLAIN TABLE OVERRIDE`. [#32836](https://github.com/ClickHouse/ClickHouse/pull/32836) ([Stig Bakken](https://github.com/stigsb)).
* Prise en charge de la clause TABLE OVERRIDE pour MaterializedPostgreSQL. RFC : [#31480](https://github.com/ClickHouse/ClickHouse/issues/31480). [#32749](https://github.com/ClickHouse/ClickHouse/pull/32749) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Modification du chemin ZooKeeper pour les marks de zero-copy des données partagées. Notez que "zero-copy replication" est une fonctionnalité non destinée à la production (à un stade précoce de développement) que vous ne devriez de toute façon pas utiliser. Mais si vous l'avez utilisée, gardez ce changement à l'esprit. [#32061](https://github.com/ClickHouse/ClickHouse/pull/32061) ([ianton-ru](https://github.com/ianton-ru)).
* Prise en charge de la clause EVENTS pour la requête WATCH WINDOW VIEW. [#32607](https://github.com/ClickHouse/ClickHouse/pull/32607) ([vxider](https://github.com/Vxider)).
* Correction de l'ACL avec un hash numérique explicite dans `ClickHouse Keeper` : le comportement est désormais cohérent avec ZooKeeper et le digest généré est toujours accepté. [#33249](https://github.com/ClickHouse/ClickHouse/pull/33249) ([小路](https://github.com/nicelulu)). [#33246](https://github.com/ClickHouse/ClickHouse/pull/33246).
* Correction de la suppression inattendue de projection lors du détachement de parts. [#32067](https://github.com/ClickHouse/ClickHouse/pull/32067) ([Amos Bird](https://github.com/amosbird)).

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

* Désormais, les fonctions de conversion de date et d’heure qui génèrent une heure antérieure à `1970-01-01 00:00:00` seront ramenées à zéro au lieu de provoquer un overflow. [#29953](https://github.com/ClickHouse/ClickHouse/pull/29953) ([Amos Bird](https://github.com/amosbird)). Cela corrige également un bug dans l’analyse des index lorsque la fonction de troncature de date produisait un résultat antérieur à l’epoch Unix.
* Toujours afficher l’utilisation des ressources (utilisation totale du CPU, utilisation totale de la RAM et utilisation maximale de la RAM par hôte) dans le client. [#33271](https://github.com/ClickHouse/ClickHouse/pull/33271) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Amélioration de la sérialisation et de la désérialisation du type `Bool`, avec vérification de la plage de valeurs. [#32984](https://github.com/ClickHouse/ClickHouse/pull/32984) ([Kruglov Pavel](https://github.com/Avogar)).
* Si un paramètre invalide est défini à l’aide de la requête `SET` ou des paramètres de requête dans la HTTP request, le message d’erreur contiendra des suggestions proches de la chaîne du paramètre invalide (le cas échéant). [#32946](https://github.com/ClickHouse/ClickHouse/pull/32946) ([Antonio Andelic](https://github.com/antonio2368)).
* Prise en charge de suggestions pour les noms de paramètres mal saisis dans clickhouse-client et clickhouse-local. Clôt [#32237](https://github.com/ClickHouse/ClickHouse/issues/32237). [#32841](https://github.com/ClickHouse/ClickHouse/pull/32841) ([凌涛](https://github.com/lingtaolf)).
* Autorise l’utilisation de virtual columns dans les vues matérialisées. Clôt [#11210](https://github.com/ClickHouse/ClickHouse/issues/11210). [#33482](https://github.com/ClickHouse/ClickHouse/pull/33482) ([OnePiece](https://github.com/zhongyuankai)).
* Ajout d’une configuration permettant de désactiver IPv6 dans ClickHouse Keeper si nécessaire. Cela clôt [#33381](https://github.com/ClickHouse/ClickHouse/issues/33381). [#33450](https://github.com/ClickHouse/ClickHouse/pull/33450) ([Wu Xueyang](https://github.com/wuxueyang96)).
* Ajout d’informations supplémentaires dans `system.build_options` sur la révision git actuelle. [#33431](https://github.com/ClickHouse/ClickHouse/pull/33431) ([taiyang-li](https://github.com/taiyang-li)).
* `clickhouse-local` : prise en compte de la mémoire avec l’option `--max_memory_usage_in_client`. [#33341](https://github.com/ClickHouse/ClickHouse/pull/33341) ([Azat Khuzhin](https://github.com/azat)).
* Autorise les intervalles négatifs dans la fonction `intervalLengthSum`. Leur longueur sera également ajoutée. Cela clôt [#33323](https://github.com/ClickHouse/ClickHouse/issues/33323). [#33335](https://github.com/ClickHouse/ClickHouse/pull/33335) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `LineAsString` peut être utilisé comme format de sortie. Cela clôt [#30919](https://github.com/ClickHouse/ClickHouse/issues/30919). [#33331](https://github.com/ClickHouse/ClickHouse/pull/33331) ([Sergei Trifonov](https://github.com/serxa)).
* Prise en charge de `<secure/>` dans la configuration du cluster, comme forme alternative à `<secure>1</secure>`. Clôt [#33270](https://github.com/ClickHouse/ClickHouse/issues/33270). [#33330](https://github.com/ClickHouse/ClickHouse/pull/33330) ([SuperDJY](https://github.com/cmsxbc)).
* Un double appui sur Ctrl+C arrête immédiatement `clickhouse-benchmark` sans attendre la fin des requêtes en cours. Cela clôt [#32586](https://github.com/ClickHouse/ClickHouse/issues/32586). [#33303](https://github.com/ClickHouse/ClickHouse/pull/33303) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Prise en charge des Unix timestamp en millisecondes dans la fonction `parseDateTimeBestEffort`. [#33276](https://github.com/ClickHouse/ClickHouse/pull/33276) ([Ben](https://github.com/benbiti)).
* Autorise l’annulation d’une query pendant la lecture de données depuis une external table aux formats `Arrow` / `Parquet` / `ORC` — auparavant, l’annulation échouait dans le cas de fichiers volumineux lorsque le paramètre input\_format\_allow\_seeks était défini sur false. Clôt [#29678](https://github.com/ClickHouse/ClickHouse/issues/29678). [#33238](https://github.com/ClickHouse/ClickHouse/pull/33238) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Si le table engine prend en charge la clause `SETTINGS`, autorise le passage des paramètres au format key-value ou via la config. Ajoute cette prise en charge pour MySQL. [#33231](https://github.com/ClickHouse/ClickHouse/pull/33231) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Empêche correctement les primary keys Nullable si nécessaire. Cela concerne [#32780](https://github.com/ClickHouse/ClickHouse/issues/32780). [#33218](https://github.com/ClickHouse/ClickHouse/pull/33218) ([Amos Bird](https://github.com/amosbird)).
* Ajoute une nouvelle tentative pour les connections `PostgreSQL` dans le cas où rien n’a encore été récupéré. Clôt [#33199](https://github.com/ClickHouse/ClickHouse/issues/33199). [#33209](https://github.com/ClickHouse/ClickHouse/pull/33209) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Valide les keys de config pour les external dictionaries. [#33095](https://github.com/ClickHouse/ClickHouse/issues/33095#issuecomment-1000577517). [#33130](https://github.com/ClickHouse/ClickHouse/pull/33130) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Envoie les informations de profile dans `clickhouse-local`. Clôt [#33093](https://github.com/ClickHouse/ClickHouse/issues/33093). [#33097](https://github.com/ClickHouse/ClickHouse/pull/33097) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Évaluation en court-circuit : prise en charge de la fonction `throwIf`. Clôt [#32969](https://github.com/ClickHouse/ClickHouse/issues/32969). [#32973](https://github.com/ClickHouse/ClickHouse/pull/32973) ([Maksim Kita](https://github.com/kitaisreal)).
* (Cela se produit uniquement dans des builds non officiels). Correction d’un segfault lors de l’insertion de données dans des columns compressées de type Decimal, String, FixedString et Array. Cela clôt [#32939](https://github.com/ClickHouse/ClickHouse/issues/32939). [#32940](https://github.com/ClickHouse/ClickHouse/pull/32940) ([N. Kolotov](https://github.com/nkolotov)).
* Ajoute la prise en charge de la spécification d’une subquery comme SQL user defined function. Example : `CREATE FUNCTION test AS () -> (SELECT 1)`. Clôt [#30755](https://github.com/ClickHouse/ClickHouse/issues/30755). [#32758](https://github.com/ClickHouse/ClickHouse/pull/32758) ([Maksim Kita](https://github.com/kitaisreal)).
* Améliore la prise en charge de la compression gRPC pour [#28671](https://github.com/ClickHouse/ClickHouse/issues/28671). [#32747](https://github.com/ClickHouse/ClickHouse/pull/32747) ([Vitaly Baranov](https://github.com/vitlibar)).
* Vide toutes les data parts en mémoire lorsque le WAL n’est pas activé lors de l’arrêt du server ou du détachement d’une table. [#32742](https://github.com/ClickHouse/ClickHouse/pull/32742) ([nauta](https://github.com/nautaa)).
* Autorise le contrôle des connection timeouts pour MySQL (auparavant pris en charge uniquement pour dictionary source). Clôt [#16669](https://github.com/ClickHouse/ClickHouse/issues/16669). Auparavant, la valeur par défaut de connect\_timeout était assez faible ; elle est maintenant configurable. [#32734](https://github.com/ClickHouse/ClickHouse/pull/32734) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute la prise en charge de l’option `authSource` pour le stockage `MongoDB`. Clôt [#32594](https://github.com/ClickHouse/ClickHouse/issues/32594). [#32702](https://github.com/ClickHouse/ClickHouse/pull/32702) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge du type `Date32` dans la table function `genarateRandom`. [#32643](https://github.com/ClickHouse/ClickHouse/pull/32643) ([nauta](https://github.com/nautaa)).
* Ajout des paramètres `max_concurrent_select_queries` et `max_concurrent_insert_queries` pour contrôler les requêtes concurrentes par type de requête. Corrige [#3575](https://github.com/ClickHouse/ClickHouse/issues/3575). [#32609](https://github.com/ClickHouse/ClickHouse/pull/32609) ([SuperDJY](https://github.com/cmsxbc)).
* Améliore la gestion des structures imbriquées avec des colonnes manquantes lors de la lecture de données au format `Protobuf`. Suite de [https://github.com/ClickHouse/ClickHouse/pull/31988](https://github.com/ClickHouse/ClickHouse/pull/31988). [#32531](https://github.com/ClickHouse/ClickHouse/pull/32531) ([Vitaly Baranov](https://github.com/vitlibar)).
* Autorise des informations d'identification vides pour le moteur `MongoDB`. Corrige [#26267](https://github.com/ClickHouse/ClickHouse/issues/26267). [#32460](https://github.com/ClickHouse/ClickHouse/pull/32460) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactive certaines optimisations pour les window functions susceptibles d'entraîner des exceptions. Corrige [#31535](https://github.com/ClickHouse/ClickHouse/issues/31535). Corrige [#31620](https://github.com/ClickHouse/ClickHouse/issues/31620). [#32453](https://github.com/ClickHouse/ClickHouse/pull/32453) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permet la connexion à MongoDB 5.0. Corrige [#31483](https://github.com/ClickHouse/ClickHouse/issues/31483),. [#32416](https://github.com/ClickHouse/ClickHouse/pull/32416) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Autorise la comparaison entre `Decimal` et `Float`. Corrige [#22626](https://github.com/ClickHouse/ClickHouse/issues/22626). [#31966](https://github.com/ClickHouse/ClickHouse/pull/31966) ([flynn](https://github.com/ucasFL)).
* Ajout des paramètres `command_read_timeout` et `command_write_timeout` pour `StorageExecutable`, `StorageExecutablePool`, `ExecutableDictionary`, `ExecutablePoolDictionary`, `ExecutableUserDefinedFunctions`. Le paramètre `command_read_timeout` contrôle le délai d'attente pour la lecture des données depuis le stdout de la commande, en millisecondes. Le paramètre `command_write_timeout` contrôle le délai d'attente pour l'écriture des données vers le stdin de la commande, en millisecondes. Ajout du paramètre `command_termination_timeout` pour `ExecutableUserDefinedFunction`, `ExecutableDictionary`, `StorageExecutable`. Ajout du paramètre `execute_direct` pour `ExecutableUserDefinedFunction`, avec `true` par défaut. Ajout du paramètre `execute_direct` pour `ExecutableDictionary`, `ExecutablePoolDictionary`, avec `false` par défaut. [#30957](https://github.com/ClickHouse/ClickHouse/pull/30957) ([Maksim Kita](https://github.com/kitaisreal)).
* Les aggregate functions de bitmap renverront un résultat correct pour un argument hors plage, au lieu d'un effet de bouclage. [#33127](https://github.com/ClickHouse/ClickHouse/pull/33127) ([DR](https://github.com/freedomDR)).
* Corrige l'analyse de requêtes incorrectes avec l'instruction `FROM INFILE`. [#33521](https://github.com/ClickHouse/ClickHouse/pull/33521) ([Kruglov Pavel](https://github.com/Avogar)).
* N'autorise pas l'écriture dans `S3` si le chemin contient des globs. [#33142](https://github.com/ClickHouse/ClickHouse/pull/33142) ([Kruglov Pavel](https://github.com/Avogar)).
* L'option `--echo` n'était pas utilisée par `clickhouse-client` en mode batch avec une seule requête. [#32843](https://github.com/ClickHouse/ClickHouse/pull/32843) ([N. Kolotov](https://github.com/nkolotov)).
* Utilise l'option `--database` pour clickhouse-local. [#32797](https://github.com/ClickHouse/ClickHouse/pull/32797) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un code étonnamment mauvais dans la fonction SQL ordinaire `file`. Elle prend désormais en charge les liens symboliques. [#32640](https://github.com/ClickHouse/ClickHouse/pull/32640) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de `modification_time` pour la partie de données dans `system.parts` après le déplacement de cette partie de données [#32964](https://github.com/ClickHouse/ClickHouse/issues/32964). [#32965](https://github.com/ClickHouse/ClickHouse/pull/32965) ([save-my-heart](https://github.com/save-my-heart)).
* Problème potentiel, non exploitable : un dépassement de capacité d'entier peut se produire lors du redimensionnement d'un tableau. [#33024](https://github.com/ClickHouse/ClickHouse/pull/33024) ([varadarajkumar](https://github.com/varadarajkumar)).

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

* Ajout de paquets, de tests fonctionnels et de builds Docker pour la version AArch64 (ARM) de ClickHouse. [#32911](https://github.com/ClickHouse/ClickHouse/pull/32911) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). [#32415](https://github.com/ClickHouse/ClickHouse/pull/32415)
* Préparation de ClickHouse pour une compilation avec musl-libc. Cette option n’est pas activée par défaut. [#33134](https://github.com/ClickHouse/ClickHouse/pull/33134) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du script d’installation pour qu’il fonctionne sur FreeBSD. Ceci clôt [#33384](https://github.com/ClickHouse/ClickHouse/issues/33384). [#33418](https://github.com/ClickHouse/ClickHouse/pull/33418) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ajout de `actionlint` pour les workflows GitHub Actions et vérification des fichiers de workflow avec `act --list` afin de s’assurer de la validité de leur syntaxe. [#33612](https://github.com/ClickHouse/ClickHouse/pull/33612) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Ajout de tests supplémentaires pour la fonctionnalité de clé primaire Nullable. Ajout également de tests couvrant différents types et variantes de MergeTree, ainsi que des données générées aléatoirement. [#33228](https://github.com/ClickHouse/ClickHouse/pull/33228) ([Amos Bird](https://github.com/amosbird)).
* Ajout d’un outil simple pour visualiser les tests instables dans un navigateur web. [#33185](https://github.com/ClickHouse/ClickHouse/pull/33185) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Activation de builds hermétiques pour les builds partagés. Cela concerne principalement les développeurs. [#32968](https://github.com/ClickHouse/ClickHouse/pull/32968) ([Amos Bird](https://github.com/amosbird)).
* Mise à jour de `libc++` et `libc++abi` vers leurs dernières versions. [#32484](https://github.com/ClickHouse/ClickHouse/pull/32484) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout d’un test d’intégration pour le client .NET externe ([ClickHouse.Client](https://github.com/DarkWanderer/ClickHouse.Client)). [#23230](https://github.com/ClickHouse/ClickHouse/pull/23230) ([Oleg V. Kozlyuk](https://github.com/DarkWanderer)).
* Injection d’informations Git dans le binaire clickhouse. Il est ainsi plus facile d’obtenir la révision du code source à partir du binaire clickhouse. [#33124](https://github.com/ClickHouse/ClickHouse/pull/33124) ([taiyang-li](https://github.com/taiyang-li)).
* Suppression de code obsolète dans ConfigProcessor. Le code spécifique à Yandex n’est plus utilisé. Ce code contenait un défaut mineur. Ce défaut a été signalé par [Mallik Hassan](https://github.com/SadiHassan) dans [#33032](https://github.com/ClickHouse/ClickHouse/issues/33032). Ceci clôt [#33032](https://github.com/ClickHouse/ClickHouse/issues/33032). [#33026](https://github.com/ClickHouse/ClickHouse/pull/33026) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="bug-fix-user-visible-misbehaviour-in-official-stable-or-prestable-release-1">
  #### Correction de bugs (dysfonctionnement visible par l’utilisateur dans une version stable ou préstable officielle)
</div>

* Plusieurs corrections ont été apportées à l'analyse des formats. Cela concerne les cas où `clickhouse-server` est ouvert en écriture à un attaquant. Des données d'entrée spécialement conçues pour le format `Native` peuvent entraîner la lecture de mémoire non initialisée ou un crash. Cela concerne les cas où `clickhouse-server` est ouvert en écriture à un attaquant. [#33050](https://github.com/ClickHouse/ClickHouse/pull/33050) ([Heena Bansal](https://github.com/HeenaBansal2009)). Correction d'un problème d'index hors limites pour le type Union d'Apache Avro dans le format binaire Apache Avro. [#33022](https://github.com/ClickHouse/ClickHouse/pull/33022) ([Harry Lee](https://github.com/HarryLeeIBM)). Correction d'un déréférencement de pointeur nul dans des données `LowCardinality` lors de la désérialisation de données `LowCardinality` au format Native. [#33021](https://github.com/ClickHouse/ClickHouse/pull/33021) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Le handler ClickHouse Keeper supprimera correctement l'opération une fois la réponse envoyée. [#32988](https://github.com/ClickHouse/ClickHouse/pull/32988) ([JackyWoo](https://github.com/JackyWoo)).
* Erreur potentielle de calcul des quotas de type off-by-one : la limite du quota n'était pas atteinte, mais elle était considérée comme dépassée. Cela corrige [#31174](https://github.com/ClickHouse/ClickHouse/issues/31174). [#31656](https://github.com/ClickHouse/ClickHouse/pull/31656) ([sunny](https://github.com/sunny19930321)).
* Correction du CAST de String vers IPv4 ou IPv6, et inversement. Correction du message d'erreur en cas d'échec de conversion. [#29224](https://github.com/ClickHouse/ClickHouse/pull/29224) ([Dmitry Novik](https://github.com/novikd)) [#27914](https://github.com/ClickHouse/ClickHouse/pull/27914) ([Vasily Nemkov](https://github.com/Enmk)).
* Correction d'une exception du type `Unknown aggregate function nothing` lors d'une exécution sur un serveur distant. Cela corrige [#16689](https://github.com/ClickHouse/ClickHouse/issues/16689). [#26074](https://github.com/ClickHouse/ClickHouse/pull/26074) ([hexiaoting](https://github.com/hexiaoting)).
* Correction de l'utilisation de la mauvaise database pour JOIN sans database explicite dans les distributed queries (corrige : [#10471](https://github.com/ClickHouse/ClickHouse/issues/10471)). [#33611](https://github.com/ClickHouse/ClickHouse/pull/33611) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un segfault dans le format Apache `Avro` apparaissant après la deuxième insertion dans le fichier. [#33566](https://github.com/ClickHouse/ClickHouse/pull/33566) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d'un segfault dans le format Apache `Arrow` si le schéma contient le type `Dictionary`. Clôt [#33507](https://github.com/ClickHouse/ClickHouse/issues/33507). [#33529](https://github.com/ClickHouse/ClickHouse/pull/33529) ([Kruglov Pavel](https://github.com/Avogar)).
* Les paramètres `offset` et `limit` hors bande peuvent être appliqués incorrectement aux views. Clôt [#33289](https://github.com/ClickHouse/ClickHouse/issues/33289) [#33518](https://github.com/ClickHouse/ClickHouse/pull/33518) ([hexiaoting](https://github.com/hexiaoting)).
* Correction d'une exception `Block structure mismatch` pouvant se produire lors d'une insertion dans une table avec une colonne `LowCardinality` imbriquée par défaut. Corrige [#33028](https://github.com/ClickHouse/ClickHouse/issues/33028). [#33504](https://github.com/ClickHouse/ClickHouse/pull/33504) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction des expressions de dictionnaire pour les attributs min et max de plage de `range_hashed` lorsqu'ils sont créés via DDL. Clôt [#30809](https://github.com/ClickHouse/ClickHouse/issues/30809). [#33478](https://github.com/ClickHouse/ClickHouse/pull/33478) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d'un possible use-after-free pour INSERT dans une vue matérialisée avec un DROP concurrent ([Azat Khuzhin](https://github.com/azat)).
* N’essayez pas de lire au-delà de EOF (pour contourner un bug du noyau Linux) ; ce bug peut être reproduit sur les noyaux (3.14..5.9) et nécessite `index_granularity_bytes=0` (c.-à-d. désactiver la granularité d’index adaptative). [#33372](https://github.com/ClickHouse/ClickHouse/pull/33372) ([Azat Khuzhin](https://github.com/azat)).
* Les commandes `SYSTEM SUSPEND` et `SYSTEM ... THREAD FUZZER` n’étaient pas soumises au contrôle d’accès. C’est corrigé. Auteur : Kevin Michel. [#33333](https://github.com/ClickHouse/ClickHouse/pull/33333) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction du cas où `COMMENT` pour les dictionnaires n’apparaissait pas dans `system.tables`, `system.dictionaries`. Il est désormais possible de modifier le commentaire pour le moteur `Dictionary`. Corrige [#33251](https://github.com/ClickHouse/ClickHouse/issues/33251). [#33261](https://github.com/ClickHouse/ClickHouse/pull/33261) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout des inserts asynchrones (avec le paramètre `async_insert` activé) au journal des requêtes. Auparavant, ces requêtes n’y apparaissaient pas. [#33239](https://github.com/ClickHouse/ClickHouse/pull/33239) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’envoi des expressions `WHERE 1 = 0` pour les requêtes sur des bases de données externes. Corrige [#33152](https://github.com/ClickHouse/ClickHouse/issues/33152). [#33214](https://github.com/ClickHouse/ClickHouse/pull/33214) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la validation DDL pour MaterializedPostgreSQL. Correction du paramètre `materialized_postgresql_allow_automatic_update`. Corrige [#29535](https://github.com/ClickHouse/ClickHouse/issues/29535). [#33200](https://github.com/ClickHouse/ClickHouse/pull/33200) ([Kseniia Sumarokova](https://github.com/kssenii)). S’assure que les replication slots inutilisés sont toujours supprimés. Problème identifié dans [#26952](https://github.com/ClickHouse/ClickHouse/issues/26952). [#33187](https://github.com/ClickHouse/ClickHouse/pull/33187) ([Kseniia Sumarokova](https://github.com/kssenii)). Correction du detach/attach de MaterializedPostgreSQL (suppression/ajout à la réplication) pour les tables avec un schéma non par défaut. Problème identifié dans [#29535](https://github.com/ClickHouse/ClickHouse/issues/29535). [#33179](https://github.com/ClickHouse/ClickHouse/pull/33179) ([Kseniia Sumarokova](https://github.com/kssenii)). Correction de la suppression de la base de données MaterializedPostgreSQL avec `DROP`. [#33468](https://github.com/ClickHouse/ClickHouse/pull/33468) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La métrique `StorageBufferBytes` était parfois mal calculée. [#33159](https://github.com/ClickHouse/ClickHouse/pull/33159) ([xuyatian](https://github.com/xuyatian)).
* Correction de l’erreur `Invalid version for SerializationLowCardinality key column` lors de la lecture d’une colonne `LowCardinality` avec `local_filesystem_read_prefetch` ou `remote_filesystem_read_prefetch` activé. [#33046](https://github.com/ClickHouse/ClickHouse/pull/33046) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de la lecture d’un fichier vide par la table function `s3`. Corrige [#33008](https://github.com/ClickHouse/ClickHouse/issues/33008). [#33037](https://github.com/ClickHouse/ClickHouse/pull/33037) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une fuite de `Context` dans le cas de cancel\_http\_readonly\_queries\_on\_client\_close (c.-à-d. une fuite des tables externes téléversées vers le serveur et d’autres ressources). [#32982](https://github.com/ClickHouse/ClickHouse/pull/32982) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une sortie incorrecte de `Tuple` au format `CSV` en cas de délimiteur CSV personnalisé. [#32981](https://github.com/ClickHouse/ClickHouse/pull/32981) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la vérification de l’URL HDFS, qui ne permettait pas d’utiliser une adresse de namenode HA. Le bug a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/31042](https://github.com/ClickHouse/ClickHouse/pull/31042). [#32976](https://github.com/ClickHouse/ClickHouse/pull/32976) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige le déclenchement d’une exception de type positional argument out of bounds pour des arguments non positionnels. Ferme [#31173](https://github.com/ClickHouse/ClickHouse/issues/31173)#event-5789668239. [#32961](https://github.com/ClickHouse/ClickHouse/pull/32961) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un comportement indéfini en cas d’EOF inattendue lors du remplissage d’un Set à partir d’une requête HTTP (par exemple si le client interrompt la requête en cours, p. ex. `timeout 0.15s curl -Ss -F 's=@t.csv;' 'http://127.0.0.1:8123/?s_structure=key+Int&query=SELECT+dummy+IN+s'`, avec un `t.csv` suffisamment volumineux). [#32955](https://github.com/ClickHouse/ClickHouse/pull/32955) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une régression dans la fonction `replaceRegexpAll`. La fonction se comportait incorrectement lorsque la sous-chaîne correspondante était vide. Cela ferme [#32777](https://github.com/ClickHouse/ClickHouse/issues/32777). Cela ferme [#30245](https://github.com/ClickHouse/ClickHouse/issues/30245). [#32945](https://github.com/ClickHouse/ClickHouse/pull/32945) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige la lecture des stripes au format `ORC`. [#32929](https://github.com/ClickHouse/ClickHouse/pull/32929) ([kreuzerkrieg](https://github.com/kreuzerkrieg)).
* `topKWeightedState` échouait avec certains types d’entrée. [#32487](https://github.com/ClickHouse/ClickHouse/issues/32487). [#32914](https://github.com/ClickHouse/ClickHouse/pull/32914) ([vdimir](https://github.com/vdimir)).
* Corrige l’exception `Single chunk is expected from view inner query (LOGICAL_ERROR)` dans une vue matérialisée. Corrige [#31419](https://github.com/ClickHouse/ClickHouse/issues/31419). [#32862](https://github.com/ClickHouse/ClickHouse/pull/32862) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige l’optimisation avec seek différé pour les lectures asynchrones depuis des systèmes de fichiers distants. Ferme [#32803](https://github.com/ClickHouse/ClickHouse/issues/32803). [#32835](https://github.com/ClickHouse/ClickHouse/pull/32835) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Le moteur de table `MergeTree` pouvait ignorer silencieusement certaines mutations s’il y avait trop de mutations en cours ou en cas de forte consommation mémoire ; c’est corrigé. Corrige [#17882](https://github.com/ClickHouse/ClickHouse/issues/17882). [#32814](https://github.com/ClickHouse/ClickHouse/pull/32814) ([tavplubix](https://github.com/tavplubix)).
* Évite de réutiliser le cache des sous-requêtes scalaires lors du traitement des blocks de MV. Cela corrige un bug lorsque la requête scalaire référence la table source, mais implique que toutes les sous-requêtes scalaires de la définition de la MV seront calculées pour chaque block. [#32811](https://github.com/ClickHouse/ClickHouse/pull/32811) ([Raúl Marín](https://github.com/Algunenano)).
* Le serveur pouvait échouer à démarrer si une database avec le moteur `MySQL` ne parvenait pas à se connecter au serveur MySQL ; c’est corrigé. Corrige [#14441](https://github.com/ClickHouse/ClickHouse/issues/14441). [#32802](https://github.com/ClickHouse/ClickHouse/pull/32802) ([tavplubix](https://github.com/tavplubix)).
* Correction d’un crash lors de l’utilisation de la fonction `fuzzBits`, clôt [#32737](https://github.com/ClickHouse/ClickHouse/issues/32737). [#32755](https://github.com/ClickHouse/ClickHouse/pull/32755) ([SuperDJY](https://github.com/cmsxbc)).
* Correction de l’erreur `Column is not under aggregate function` dans le cas d’une MV avec `GROUP BY (list of columns)` (analysé comme `GROUP BY tuple(...)`) sur `Kafka`/`RabbitMQ`. Corrige [#32668](https://github.com/ClickHouse/ClickHouse/issues/32668) et [#32744](https://github.com/ClickHouse/ClickHouse/issues/32744). [#32751](https://github.com/ClickHouse/ClickHouse/pull/32751) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de la requête `ALTER TABLE ... MATERIALIZE TTL` avec les modes `TTL ... DELETE WHERE ...` et `TTL ... GROUP BY ...`. [#32695](https://github.com/ClickHouse/ClickHouse/pull/32695) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’optimisation `optimize_read_in_order` lorsque le table engine est `Distributed` ou `Merge` et que les tables `MergeTree` sous-jacentes ont une fonction monotone dans le préfixe de la clé de tri. [#32670](https://github.com/ClickHouse/ClickHouse/pull/32670) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’exception LOGICAL\_ERROR lorsque la cible d’une vue matérialisée est un JOIN ou une table SET. [#32669](https://github.com/ClickHouse/ClickHouse/pull/32669) ([Raúl Marín](https://github.com/Algunenano)).
* L’insertion dans S3 avec multipart upload vers Google Cloud Storage peut déclencher un abandon. [#32504](https://github.com/ClickHouse/ClickHouse/issues/32504). [#32649](https://github.com/ClickHouse/ClickHouse/pull/32649) ([vdimir](https://github.com/vdimir)).
* Correction d’une exception possible au démarrage du moteur de stockage `RabbitMQ` en retardant la création du canal. [#32584](https://github.com/ClickHouse/ClickHouse/pull/32584) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la durée de vie de la table (c.-à-d. d’un possible use-after-free) dans le cas d’un DROP TABLE parallèle et d’un INSERT. [#32572](https://github.com/ClickHouse/ClickHouse/pull/32572) ([Azat Khuzhin](https://github.com/azat)).
* Correction des async inserts avec les formats `CustomSeparated`, `Template`, `Regexp`, `MsgPack` et `JSONAsString`. Auparavant, les async inserts avec ces formats ne lisaient aucune donnée. [#32530](https://github.com/ClickHouse/ClickHouse/pull/32530) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la fonction `groupBitmapAnd` sur une distributed table. [#32529](https://github.com/ClickHouse/ClickHouse/pull/32529) ([minhthucdao](https://github.com/dmthuc)).
* Correction d’un crash dans JOIN découvert par le fuzzer, clôt [#32458](https://github.com/ClickHouse/ClickHouse/issues/32458). [#32508](https://github.com/ClickHouse/ClickHouse/pull/32508) ([vdimir](https://github.com/vdimir)).
* Gestion correcte du cas de duplication de colonnes Apache Arrow. [#32507](https://github.com/ClickHouse/ClickHouse/pull/32507) ([Dmitriy Mokhnatkin](https://github.com/DMokhnatkin)).
* Correction d’un problème de formatage ambigu des requêtes dans les distributed queries, qui entraînait des erreurs lorsque certaines colonnes de table étaient nommées `ALL` ou `DISTINCT`. Cela clôt [#32391](https://github.com/ClickHouse/ClickHouse/issues/32391). [#32490](https://github.com/ClickHouse/ClickHouse/pull/32490) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correction d’échecs dans les requêtes qui tentent d’utiliser des skipping indices non encore matérialisés. Corrige [#32292](https://github.com/ClickHouse/ClickHouse/issues/32292) et [#30343](https://github.com/ClickHouse/ClickHouse/issues/30343). [#32359](https://github.com/ClickHouse/ClickHouse/pull/32359) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une requête `select` défaillante lorsqu’il y a plus de 2 row policies sur la même colonne, à partir de la deuxième requête de la même session. [#31606](https://github.com/ClickHouse/ClickHouse/issues/31606). [#32291](https://github.com/ClickHouse/ClickHouse/pull/32291) ([SuperDJY](https://github.com/cmsxbc)).
* Correction de la conversion d’un Unix timestamp fractionnaire en `DateTime64` : la partie fractionnaire était inversée pour les Unix timestamps négatifs (avant 1970-01-01). [#32240](https://github.com/ClickHouse/ClickHouse/pull/32240) ([Ben](https://github.com/benbiti)).
* Certaines entrées de la replication queue pouvaient rester bloquées pendant `temporary_directories_lifetime` (1 jour par défaut) avec `Directory tmp_merge_<part_name>` ou `Part ... (state Deleting) already exists, but it will be deleted soon`, ou une erreur similaire. C’est corrigé. Corrige [#29616](https://github.com/ClickHouse/ClickHouse/issues/29616). [#32201](https://github.com/ClickHouse/ClickHouse/pull/32201) ([tavplubix](https://github.com/tavplubix)).
* Correction du parsing du transformateur de colonne `APPLY lambda`, qui pouvait entraîner un plantage du client/serveur. [#32138](https://github.com/ClickHouse/ClickHouse/pull/32138) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de `base64Encode`, qui ajoutait des octets superflus à la fin des petites chaînes. [#31797](https://github.com/ClickHouse/ClickHouse/pull/31797) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Correction d’un plantage possible (ou d’un résultat incorrect) en cas d’arguments `LowCardinality` pour une window function. Corrige [#31114](https://github.com/ClickHouse/ClickHouse/issues/31114). [#31888](https://github.com/ClickHouse/ClickHouse/pull/31888) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un blocage avec la commande `DROP TABLE system.query_log sync`. [#33293](https://github.com/ClickHouse/ClickHouse/pull/33293) ([zhanghuajie](https://github.com/zhanghuajieHIT)).

<div id="changelog-for-2021">
  ## [Changelog 2021](/fr/resources/changelogs/oss/2021)
</div>
