> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Historique des modifications 2024

> Historique des modifications pour 2024

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

**[Release ClickHouse v24.12, 2024-12-19](/docs/fr/resources/changelogs/oss/2024#a-id2412a-clickhouse-release-2412-2024-12-19)**<br />
**[Release ClickHouse v24.11, 2024-11-26](/docs/fr/resources/changelogs/oss/2024#a-id2411a-clickhouse-release-2411-2024-11-26)**<br />
**[Release ClickHouse v24.10, 2024-10-31](/docs/fr/resources/changelogs/oss/2024#a-id2410a-clickhouse-release-2410-2024-10-31)**<br />
**[Release ClickHouse v24.9, 2024-09-26](/docs/fr/resources/changelogs/oss/2024#a-id249a-clickhouse-release-249-2024-09-26)**<br />
**[Release ClickHouse v24.8 LTS, 2024-08-20](/docs/fr/resources/changelogs/oss/2024#a-id248a-clickhouse-release-248-lts-2024-08-20)**<br />
**[Release ClickHouse v24.7, 2024-07-30](/docs/fr/resources/changelogs/oss/2024#a-id247a-clickhouse-release-247-2024-07-30)**<br />
**[Release ClickHouse v24.6, 2024-07-01](/docs/fr/resources/changelogs/oss/2024#a-id246a-clickhouse-release-246-2024-07-01)**<br />
**[Release ClickHouse v24.5, 2024-05-30](/docs/fr/resources/changelogs/oss/2024#a-id245a-clickhouse-release-245-2024-05-30)**<br />
**[Release ClickHouse v24.4, 2024-04-30](/docs/fr/resources/changelogs/oss/2024#a-id244a-clickhouse-release-244-2024-04-30)**<br />
**[Release ClickHouse v24.3 LTS, 2024-03-26](/docs/fr/resources/changelogs/oss/2024#a-id243a-clickhouse-release-243-lts-2024-03-27)**<br />
**[Release ClickHouse v24.2, 2024-02-29](/docs/fr/resources/changelogs/oss/2024#a-id242a-clickhouse-release-242-2024-02-29)**<br />
**[Release ClickHouse v24.1, 2024-01-30](/docs/fr/resources/changelogs/oss/2024#a-id241a-clickhouse-release-241-2024-01-30)**<br />
**[historique des modifications de 2023](/docs/fr/resources/changelogs/oss/2023)**<br />

### <a id="2412" /> Release ClickHouse 24.12, 2024-12-19. [Présentation](https://presentations.clickhouse.com/2024-release-24.12/), [Vidéo](https://www.youtube.com/watch?v=bv-ut-Q6vnc)

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

* Les fonctions `greatest` et `least` ignorent désormais les valeurs d'entrée `NULL`, alors qu'auparavant elles renvoyaient `NULL` si l'un des arguments était `NULL`. Par exemple, `SELECT greatest(1, 2, NULL)` renvoie désormais 2. Ce changement rend leur comportement compatible avec PostgreSQL, mais rompt en même temps la compatibilité avec MySQL, qui renvoie `NULL`. Pour conserver le comportement précédent, définissez le paramètre `least_greatest_legacy_null_behavior` (par défaut : `false`) sur `true`. [#65519](https://github.com/ClickHouse/ClickHouse/pull/65519) [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([kevinyhzou](https://github.com/KevinyhZou)).
* Une nouvelle intégration MongoDB est désormais utilisée par défaut. Les utilisateurs qui souhaitent continuer à utiliser l'ancien driver MongoDB (basé sur le driver Poco) peuvent activer le paramètre serveur `use_legacy_mongodb_integration`. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Kirill Nikiforov](https://github.com/allmazz).

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

* Fait passer les types `JSON`/`Dynamic`/`Variant` des fonctionnalités expérimentales au statut bêta. [#72294](https://github.com/ClickHouse/ClickHouse/pull/72294) ([Pavel Kruglov](https://github.com/Avogar)). Nous avons également rétroporté vers la 24.11 tous les correctifs ainsi que ce changement.
* L’évolution de schéma du format de [stockage de données Iceberg](https://iceberg.apache.org/spec/#file-system-operations) offre à l’utilisateur de nombreuses possibilités pour modifier le schéma de sa table. L’ordre des colonnes, les noms de colonnes et les extensions simples de type peuvent être modifiés en interne. [#69445](https://github.com/ClickHouse/ClickHouse/pull/69445) ([Daniil Ivanik](https://github.com/divanik)).
* Intégration à Iceberg REST Catalog : un nouveau moteur de base de données, nommé Iceberg, qui branche l’ensemble du catalogue dans ClickHouse. [#71542](https://github.com/ClickHouse/ClickHouse/pull/71542) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d’un cache pour l’index primaire des tables `MergeTree` (peut être activé avec le paramètre de table `use_primary_key_cache`). Si le chargement paresseux et le cache sont activés pour l’index primaire, celui-ci sera chargé dans le cache à la demande (comme pour le mark cache) au lieu d’être conservé indéfiniment en mémoire. Ajout également du préchauffage de l’index primaire lors des insertions/fusions/récupérations de data parts et lors des redémarrages de table (peut être activé avec le paramètre `prewarm_primary_key_cache`). Cela permet de réduire l’utilisation mémoire pour les très grandes tables sur stockage partagé, et nous l’avons testé sur des tables contenant plus d’un quadrillion d’enregistrements. [#72102](https://github.com/ClickHouse/ClickHouse/pull/72102) ([Anton Popov](https://github.com/CurtizJ)). [#72750](https://github.com/ClickHouse/ClickHouse/pull/72750) ([Alexander Gololobov](https://github.com/davenger)).
* Implémentation de la commande `SYSTEM LOAD PRIMARY KEY` pour charger les index primaires de toutes les parts d’une table donnée, ou de toutes les tables si aucune table n’est spécifiée. Cela sera utile pour les benchmarks et pour éviter une latence supplémentaire lors de l’exécution des requêtes. [#66252](https://github.com/ClickHouse/ClickHouse/pull/66252) [#67733](https://github.com/ClickHouse/ClickHouse/pull/67733) ([ZAWA\_ll](https://github.com/Zawa-ll)).
* Ajout d’une requête permettant d’attacher des tables `MergeTree` comme `ReplicatedMergeTree` et inversement : `ATTACH TABLE ... AS REPLICATED` et `ATTACH TABLE ... AS NOT REPLICATED`. [#65401](https://github.com/ClickHouse/ClickHouse/pull/65401) ([Kirill](https://github.com/kirillgarbar)).
* Nouveau paramètre, `http_response_headers`, qui permet de personnaliser les en-têtes de réponse HTTP. Par exemple, vous pouvez indiquer au navigateur d’afficher une image stockée dans la base de données. Cela clôt [#59620](https://github.com/ClickHouse/ClickHouse/issues/59620). [#72656](https://github.com/ClickHouse/ClickHouse/pull/72656) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la fonction `toUnixTimestamp64Second`, qui convertit un `DateTime64` en une valeur `Int64` avec une précision fixe à la seconde, afin de prendre en charge le renvoi de valeurs négatives si la date est antérieure à l’époque Unix. [#70597](https://github.com/ClickHouse/ClickHouse/pull/70597) ([zhanglistar](https://github.com/zhanglistar)). [#73146](https://github.com/ClickHouse/ClickHouse/pull/73146) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout du nouveau paramètre `enforce_index_structure_match_on_partition_manipulation` pour autoriser ATTACH lorsque l’ensemble des projections et des index secondaires de la table source est un sous-ensemble de celui de la table cible. Clôt [#70602](https://github.com/ClickHouse/ClickHouse/issues/70602). [#70603](https://github.com/ClickHouse/ClickHouse/pull/70603) ([zwy991114](https://github.com/zwy991114)).
* Ajout de la syntaxe ALTER USER `{ADD|MODIFY|DROP SETTING}`, ALTER USER `{ADD|DROP PROFILE}`, et de même pour ALTER ROLE et ALTER PROFILE. Ainsi, au lieu de remplacer tout l’ensemble des paramètres, vous pouvez le modifier. [#72050](https://github.com/ClickHouse/ClickHouse/pull/72050) ([pufit](https://github.com/pufit)).
* Ajout de la fonction `arrayPRAUC`, qui calcule l'AUC (Area Under the Curve) de la courbe précision-rappel. [#72073](https://github.com/ClickHouse/ClickHouse/pull/72073) ([Emmanuel](https://github.com/emmanuelsdias)).
* Ajout de la fonction `indexOfAssumeSorted` pour les types Array. Optimise la recherche dans le cas d'un tableau trié par ordre non décroissant. L'effet se fait sentir sur de très grands tableaux (plus de 100 000 éléments). [#72517](https://github.com/ClickHouse/ClickHouse/pull/72517) ([Eric Kurbanov](https://github.com/erickurbanov)).
* Permet d'utiliser un délimiteur comme second argument facultatif pour la fonction d'agrégation `groupConcat`. [#72540](https://github.com/ClickHouse/ClickHouse/pull/72540) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* La fonction `translate` prend désormais en charge la suppression de caractères si l'argument `from` contient plus de caractères que l'argument `to`. Exemple : `SELECT translate('clickhouse', 'clickhouse', 'CLICK')` renvoie désormais `CLICK`. [#71441](https://github.com/ClickHouse/ClickHouse/pull/71441) ([shuai.xu](https://github.com/shuai-xu)).

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

* Nouveau paramètre MergeTree `allow_experimental_reverse_key`, qui active la prise en charge du tri décroissant dans les clés de tri de MergeTree. Cela est utile pour l’analyse de séries temporelles, en particulier pour les requêtes TopN. Exemple d’utilisation : `ENGINE = MergeTree ORDER BY (time DESC, key)`- ordre décroissant pour le champ `time`. [#71095](https://github.com/ClickHouse/ClickHouse/pull/71095) ([Amos Bird](https://github.com/amosbird)).

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

* Réordonnancement de JOIN. Ajout d’une option permettant de sélectionner le côté de la jointure qui servira de table interne (build) dans le query plan. Ce comportement est contrôlé par `query_plan_join_swap_table`, qui peut être défini sur `auto`. Dans ce mode, ClickHouse essaiera de choisir la table ayant le plus petit nombre de lignes. [#71577](https://github.com/ClickHouse/ClickHouse/pull/71577) ([Vladimir Cherkasov](https://github.com/vdimir)).
* L’algorithme `parallel_hash` sera désormais utilisé (le cas échéant) lorsque le paramètre `join_algorithm` est défini sur `default`. Les deux alternatives précédentes (`direct` et `hash`) restent prises en compte lorsque `parallel_hash` ne peut pas être utilisé. [#70788](https://github.com/ClickHouse/ClickHouse/pull/70788) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout d’une option pour extraire les expressions communes des expressions `WHERE` et `ON` afin de réduire le nombre de tables de hachage utilisées lors des jointures. Cela est pertinent lorsque la condition JOIN ON contient des parties communes à l’intérieur de AND dans différentes branches de OR. Peut être activé avec `optimize_extract_common_expressions = 1`. [#71537](https://github.com/ClickHouse/ClickHouse/pull/71537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Permet d’utiliser les indexes sur `SELECT` lorsqu’une colonne indexée est convertie par CAST en `LowCardinality(String)`, ce qui peut se produire lorsqu’une requête s’exécute sur une Merge table avec certaines tables en `String` et d’autres en `LowCardinality(String)`. [#71598](https://github.com/ClickHouse/ClickHouse/pull/71598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Lors de l’exécution d’une requête avec parallel replicas et plan local activé, ne pas effectuer d’index analysis sur les workers. Le coordinator choisira les ranges à lire pour les workers en s’appuyant sur l’index analysis effectuée de son côté (sur l’initiator de la requête). Cela permet aux requêtes courtes avec parallel replicas d’avoir une latence aussi faible que les requêtes sur un seul nœud. [#72109](https://github.com/ClickHouse/ClickHouse/pull/72109) ([Igor Nikonov](https://github.com/devcrafter)).
* L’utilisation mémoire de `clickhouse disks remove --recursive` a été réduite pour les object storage disks. [#67323](https://github.com/ClickHouse/ClickHouse/pull/67323) ([Kirill](https://github.com/kirillgarbar)).
* Rétablissement de l’optimisation de lecture des subcolumns d’une seule colonne dans les compact parts issue de [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631). Elle avait été supprimée accidentellement. [#72285](https://github.com/ClickHouse/ClickHouse/pull/72285) ([Pavel Kruglov](https://github.com/Avogar)).
* Accélération du tri des colonnes `LowCardinality(String)` par dévirtualisation des appels dans le comparateur. [#72337](https://github.com/ClickHouse/ClickHouse/pull/72337) ([Alexander Gololobov](https://github.com/davenger)).
* Optimisation de la fonction `argMin`/`argMax` pour certains data types simples. [#72350](https://github.com/ClickHouse/ClickHouse/pull/72350) ([alesapin](https://github.com/alesapin)).
* Optimisation du verrouillage avec des verrous partagés dans le memory tracker afin de réduire la contention, ce qui améliore les performances sur les systèmes avec un très grand nombre de CPU. [#72375](https://github.com/ClickHouse/ClickHouse/pull/72375) ([Jiebin Sun](https://github.com/jiebinn)).
* Ajout d’un nouveau paramètre, `use_async_executor_for_materialized_views`. Utilise une exécution asynchrone et potentiellement multithread des requêtes de materialized view, ce qui peut accélérer le traitement des views lors des INSERT, mais consomme aussi davantage de mémoire. [#72497](https://github.com/ClickHouse/ClickHouse/pull/72497) ([alesapin](https://github.com/alesapin)).
* Amélioration des performances de la désérialisation des états des aggregate functions (dans le data type `AggregateFunction` et dans les distributed queries). Légère amélioration des performances du parsing du format `RowBinary`. [#72818](https://github.com/ClickHouse/ClickHouse/pull/72818) ([Anton Popov](https://github.com/CurtizJ)).
* Découpage des ranges en lecture avec parallel replicas selon l’ordre de la clé de la table afin de consommer moins de mémoire pendant la lecture. [#72173](https://github.com/ClickHouse/ClickHouse/pull/72173) ([JIaQi](https://github.com/JiaQiTang98)).
* Accélère les insertions dans MergeTree lorsqu’une seule valeur de clé de partition est présente dans le lot inséré. [#72348](https://github.com/ClickHouse/ClickHouse/pull/72348) ([alesapin](https://github.com/alesapin)).
* Implémente la création de tables en parallèle lors de la restauration à partir d’une sauvegarde. Avant cette PR, la commande `RESTORE` créait toujours les tables dans un seul thread, ce qui pouvait être lent pour les sauvegardes contenant de nombreuses tables. [#72427](https://github.com/ClickHouse/ClickHouse/pull/72427) ([Vitaly Baranov](https://github.com/vitlibar)).
* La suppression du mark cache peut prendre un certain temps lorsqu’il est volumineux. Si le mutex du Context est conservé pendant cette opération, cela bloque de nombreuses autres activités, au point qu’aucune nouvelle connexion client ne peut être établie avant sa libération. Or, il n’est pas réellement nécessaire de conserver ce mutex pour la synchronisation : il suffit d’avoir une référence locale au cache via un shared ptr. [#72749](https://github.com/ClickHouse/ClickHouse/pull/72749) ([Alexander Gololobov](https://github.com/davenger)).

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

* Suppression du paramètre `allow_experimental_join_condition`, ce qui autorise par défaut les conditions non-équi. [#69910](https://github.com/ClickHouse/ClickHouse/pull/69910) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Les paramètres de la configuration du serveur (users.xml) s’appliquent désormais aussi au client. Utile pour les paramètres de format, par ex. `date_time_output_format`. [#71178](https://github.com/ClickHouse/ClickHouse/pull/71178) ([Michael Kolupaev](https://github.com/al13n321)).
* Bascule automatique de `GROUP BY`/`ORDER BY` sur disque en fonction de l’utilisation mémoire du serveur/de l’utilisateur. Contrôlée par les paramètres de requête `max_bytes_ratio_before_external_group_by`/`max_bytes_ratio_before_external_sort`. [#71406](https://github.com/ClickHouse/ClickHouse/pull/71406) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’une nouvelle logique d’annulation : `CancellationChecker` vérifie les timeouts de chaque requête démarrée et les arrête une fois le délai atteint. [#69880](https://github.com/ClickHouse/ClickHouse/pull/69880) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Prise en charge de ALTER de `Object` vers `JSON`, ce qui permet de migrer facilement depuis le type Object déprécié. [#71784](https://github.com/ClickHouse/ClickHouse/pull/71784) ([Pavel Kruglov](https://github.com/Avogar)).
* Autorisation des valeurs inconnues dans un Set qui ne sont pas présentes dans Enum. Corrige [#72662](https://github.com/ClickHouse/ClickHouse/issues/72662). [#72686](https://github.com/ClickHouse/ClickHouse/pull/72686) ([zhanglistar](https://github.com/zhanglistar)).
* Prise en charge de l’opérateur de recherche de chaînes (par ex. LIKE) pour le type de données `Enum`, implémente [#72661](https://github.com/ClickHouse/ClickHouse/issues/72661). [#72732](https://github.com/ClickHouse/ClickHouse/pull/72732) ([zhanglistar](https://github.com/zhanglistar)).
* Certaines requêtes ALTER USER dénuées de sens étaient acceptées. Corrige [#71227](https://github.com/ClickHouse/ClickHouse/issues/71227). [#71286](https://github.com/ClickHouse/ClickHouse/pull/71286) ([Arthur Passos](https://github.com/arthurpassos)).
* Prise en compte de `prefer_locahost_replica` lors de la construction du plan pour `INSERT ... SELECT` distribué. [#72190](https://github.com/ClickHouse/ClickHouse/pull/72190) ([filimonov](https://github.com/filimonov)).
* Azure a enfreint la spécification Iceberg en étiquetant par erreur Iceberg v1 comme Iceberg v2. Le problème est [décrit ici](https://github.com/ClickHouse/ClickHouse/issues/72091). Azure Iceberg Writer crée des fichiers de métadonnées Iceberg (ainsi que des fichiers manifestes) qui ne respectent pas les spécifications. Nous essayons désormais de lire les métadonnées au format Iceberg v1 avec le lecteur v2 (puisqu’elles sont écrites ainsi), et avons ajouté une erreur lorsqu’ils n’ont pas créé les champs correspondants dans un fichier manifeste. [#72277](https://github.com/ClickHouse/ClickHouse/pull/72277) ([Daniil Ivanik](https://github.com/divanik)).
* Il est désormais possible de `CREATE MATERIALIZED VIEW` avec `UNION [ALL]` dans la requête. Le comportement est le même que pour une vue matérialisée avec `JOIN` : seule la première table de l’expression `SELECT` servira de déclencheur pour l’insert, toutes les autres tables seront ignorées. Toutefois, s’il y a plusieurs références à la première table (par ex. un UNION avec elle-même), elles seront toutes traitées comme le bloc de données inséré. [#72347](https://github.com/ClickHouse/ClickHouse/pull/72347) ([alesapin](https://github.com/alesapin)).
* Ajout de la validation de la requête source lorsque ClickHouse est utilisé comme source pour un dictionnaire. [#72548](https://github.com/ClickHouse/ClickHouse/pull/72548) ([Alexey Katsman](https://github.com/alexkats)).
* Garantit que ClickHouse voit les modifications de ZooKeeper lors du rechargement de la configuration. [#72593](https://github.com/ClickHouse/ClickHouse/pull/72593) ([Azat Khuzhin](https://github.com/azat)).
* Meilleure approximation de l’utilisation mémoire des marks en cache afin de réduire l’utilisation mémoire totale du cache. [#72630](https://github.com/ClickHouse/ClickHouse/pull/72630) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout d'une nouvelle métrique `StartupScriptsExecutionState`. Cette métrique peut prendre trois valeurs : 0 = les scripts de démarrage ne sont pas encore terminés, 1 = les scripts de démarrage se sont exécutés avec succès, 2 = les scripts de démarrage ont échoué. Cette métrique est nécessaire pour savoir si les scripts de démarrage s'exécutent correctement dans le cloud, en particulier après des mises à jour des configurations de base. [#72637](https://github.com/ClickHouse/ClickHouse/pull/72637) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajout de la nouvelle métrique `MergeTreeIndexGranularityInternalArraysTotalSize` à `system.metrics`. Cette métrique est nécessaire pour identifier les instances avec d'énormes jeux de données susceptibles de la forte
* Ajout de tentatives supplémentaires lors de la création d'une table répliquée. [#72682](https://github.com/ClickHouse/ClickHouse/pull/72682) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout de `total_bytes_with_inactive` à `system.tables` pour comptabiliser le nombre total d'octets des parts inactives. [#72690](https://github.com/ClickHouse/ClickHouse/pull/72690) ([Kai Zhu](https://github.com/nauu)).
* Ajout des paramètres MergeTree à `system.settings_changes`. [#72694](https://github.com/ClickHouse/ClickHouse/pull/72694) ([Raúl Marín](https://github.com/Algunenano)).
* Prise en charge du type JSON dans la fonction `notEmpty`. [#72741](https://github.com/ClickHouse/ClickHouse/pull/72741) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge de l'analyse de l'erreur GCS S3 `AuthenticationRequired`. [#72753](https://github.com/ClickHouse/ClickHouse/pull/72753) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge du type `Dynamic` dans les fonctions `ifNull` et `coalesce`. [#72772](https://github.com/ClickHouse/ClickHouse/pull/72772) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge de `Dynamic` dans les fonctions `toFloat64`/`touInt32`/etc. [#72989](https://github.com/ClickHouse/ClickHouse/pull/72989) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajout des paramètres de requête S3 `http_max_fields`, `http_max_field_name_size`, `http_max_field_value_size`, utilisés lors de l'analyse des réponses de l'API S3 pendant une sauvegarde ou une restauration. [#72778](https://github.com/ClickHouse/ClickHouse/pull/72778) ([Vitaly Baranov](https://github.com/vitlibar)).
* Suppression des métadonnées de table dans Keeper dans Storage S3(Azure)Queue uniquement après la suppression de la dernière table utilisant ces métadonnées. [#72810](https://github.com/ClickHouse/ClickHouse/pull/72810) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout des profile events `JoinBuildTableRowCount`/`JoinProbeTableRowCount/JoinResultRowCount`. [#72842](https://github.com/ClickHouse/ClickHouse/pull/72842) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Prise en charge des sous-colonnes dans la clé de tri MergeTree et les skip indexes. [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)).

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

* Corrige les possibles parties qui se chevauchent dans MergeTree (après l'échec d'une opération de déplacement d'une part vers le répertoire detached, possiblement en raison d'une opération sur l'object storage). [#70476](https://github.com/ClickHouse/ClickHouse/pull/70476) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la détection des erreurs lorsqu'un nom de table est trop long. Fournit un diagnostic indiquant la longueur maximale. Ajoute une nouvelle fonction `getMaxTableNameLengthForDatabase`. [#70810](https://github.com/ClickHouse/ClickHouse/pull/70810) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige les processus zombies après un crash de `clickhouse-library-bridge` (ce programme permet d'exécuter des bibliothèques non sécurisées). [#71301](https://github.com/ClickHouse/ClickHouse/pull/71301) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige l'erreur NoSuchKey lors du rollback d'une transaction lorsque la création d'un répertoire échoue pour le disk `plain_rewritable`. [#71439](https://github.com/ClickHouse/ClickHouse/pull/71439) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige la sérialisation des valeurs `Dynamic` dans les formats JSON `Pretty`. [#71923](https://github.com/ClickHouse/ClickHouse/pull/71923) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajoute le nom du format inféré à la requête CREATE dans les engines `File`/`S3`/`URL`/`HDFS`/`Azure`. Auparavant, le nom du format était réinféré à chaque redémarrage du server, et si les data files spécifiés étaient supprimés, cela provoquait des erreurs au démarrage du server. [#72108](https://github.com/ClickHouse/ClickHouse/pull/72108) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige des bugs lors de l'utilisation d'une UDF dans une expression de join avec l'ancien analyzer. [#72179](https://github.com/ClickHouse/ClickHouse/pull/72179) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige quelques petits bugs dans `StorageObjectStorage`. Nécessite d'activer `use_hive_partitioning` par défaut. [#72185](https://github.com/ClickHouse/ClickHouse/pull/72185) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige un bug où `min_age_to_force_merge_on_partition_only` restait bloqué à tenter de fusionner en boucle la même partition, déjà fusionnée en une seule part, sans fusionner les partitions qui comportaient plusieurs parts. [#72209](https://github.com/ClickHouse/ClickHouse/pull/72209) ([Christoph Wurm](https://github.com/cwurm)).
* Corrige un crash dans `SimpleSquashingChunksTransform` qui survenait dans de rares cas lors du traitement de colonnes sparse. [#72226](https://github.com/ClickHouse/ClickHouse/pull/72226) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige une data race dans `GraceHashJoin`, qui pouvait entraîner l'absence de certaines rows dans la sortie du join. [#72233](https://github.com/ClickHouse/ClickHouse/pull/72233) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige les requêtes `ALTER DELETE` avec une colonne `_block_number` materialized (si le setting `enable_block_number_column` est activé). [#72261](https://github.com/ClickHouse/ClickHouse/pull/72261) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige une data race lorsque `ColumnDynamic::dumpStructure()` est appelé de manière concurrente, par exemple dans le constructeur de `ConcurrentHashJoin`. [#72278](https://github.com/ClickHouse/ClickHouse/pull/72278) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige un possible `LOGICAL_ERROR` avec des colonnes dupliquées dans `ORDER BY ... WITH FILL`. [#72387](https://github.com/ClickHouse/ClickHouse/pull/72387) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige des incompatibilités de types dans plusieurs cas après l'application de `optimize_functions_to_subcolumns`. [#72394](https://github.com/ClickHouse/ClickHouse/pull/72394) ([Anton Popov](https://github.com/CurtizJ)).
* Utilise `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` au lieu de `AWS_CONTAINER_AUTHORIZATION_TOKEN_PATH`. Corrige [#71074](https://github.com/ClickHouse/ClickHouse/issues/71074). [#72397](https://github.com/ClickHouse/ClickHouse/pull/72397) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige un échec lors de l'analyse des requêtes `BACKUP DATABASE db EXCEPT TABLES db.table`. [#72429](https://github.com/ClickHouse/ClickHouse/pull/72429) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* N'autorise pas la création d'un `Variant` vide. [#72454](https://github.com/ClickHouse/ClickHouse/pull/72454) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la mise en forme incorrecte de `result_part_path` dans `system.merges`. [#72567](https://github.com/ClickHouse/ClickHouse/pull/72567) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige l'analyse d'un motif glob ne comportant qu'un seul élément (comme `{file}`). [#72572](https://github.com/ClickHouse/ClickHouse/pull/72572) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige la génération de requêtes pour le serveur follower dans le cas d'une requête distribuée avec `ARRAY JOIN`. Corrige [#69276](https://github.com/ClickHouse/ClickHouse/issues/69276). [#72608](https://github.com/ClickHouse/ClickHouse/pull/72608) ([Dmitry Novik](https://github.com/novikd)).
* Corrige un bug lorsque `DateTime64 IN DateTime64` ne renvoie rien. [#72640](https://github.com/ClickHouse/ClickHouse/pull/72640) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige des métadonnées incohérentes lors de l'ajout d'une nouvelle réplique à une base de données Replicated contenant une table créée avec `flatten_nested=0`. [#72685](https://github.com/ClickHouse/ClickHouse/pull/72685) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige la configuration SSL avancée pour la communication interne de Keeper. [#72730](https://github.com/ClickHouse/ClickHouse/pull/72730) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l'erreur "No such key" en mode unordered de S3Queue lorsque le paramètre `tracked_files_limit` est inférieur au rythme d'apparition des fichiers S3. [#72738](https://github.com/ClickHouse/ClickHouse/pull/72738) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige l'exception levée dans RemoteQueryExecutor lorsqu'un utilisateur n'existe pas localement. [#72759](https://github.com/ClickHouse/ClickHouse/pull/72759) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrige les mutations avec la colonne matérialisée `_block_number` (si le paramètre `enable_block_number_column` est activé). [#72854](https://github.com/ClickHouse/ClickHouse/pull/72854) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige backup/restore avec un disque réinscriptible simple lorsqu'il y a des fichiers vides dans la sauvegarde. [#72858](https://github.com/ClickHouse/ClickHouse/pull/72858) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Annule correctement les inserts dans DistributedAsyncInsertDirectoryQueue. [#72885](https://github.com/ClickHouse/ClickHouse/pull/72885) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un crash lors de l'analyse de données incorrectes dans des colonnes sparse (cela peut se produire lorsque le paramètre `enable_parsing_to_custom_serialization` est activé). [#72891](https://github.com/ClickHouse/ClickHouse/pull/72891) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un crash potentiel lors de la restauration d'une sauvegarde. [#72947](https://github.com/ClickHouse/ClickHouse/pull/72947) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un bug dans la méthode JOIN `parallel_hash` qui peut apparaître lorsqu'une requête comporte une condition complexe dans la clause `ON` avec des filtres d'inégalité. [#72993](https://github.com/ClickHouse/ClickHouse/pull/72993) ([Nikita Taranov](https://github.com/nickitat)).
* Utiliser les paramètres de format par défaut lors de l'analyse du JSON afin d'éviter une désérialisation incorrecte. [#73043](https://github.com/ClickHouse/ClickHouse/pull/73043) ([Pavel Kruglov](https://github.com/Avogar)).
* Corriger un plantage dans les transactions avec un stockage non pris en charge. [#73045](https://github.com/ClickHouse/ClickHouse/pull/73045) ([Raúl Marín](https://github.com/Algunenano)).
* Corriger une possible surestimation du suivi de la mémoire (lorsque l'écart entre `MemoryTracking` et `MemoryResident` continuait de se creuser). [#73081](https://github.com/ClickHouse/ClickHouse/pull/73081) ([Azat Khuzhin](https://github.com/azat)).
* Vérifier la présence de clés JSON dupliquées lors de l'analyse de Tuple. Auparavant, cela pouvait entraîner une erreur logique `Invalid number of rows in Chunk` pendant l'analyse. [#73082](https://github.com/ClickHouse/ClickHouse/pull/73082) ([Pavel Kruglov](https://github.com/Avogar)).

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

* Tous les petits utilitaires auparavant stockés dans le dossier `/utils` et nécessitant une compilation manuelle depuis le code source font désormais partie du bundle principal de ClickHouse. Cela clôt : [#72404](https://github.com/ClickHouse/ClickHouse/issues/72404). [#72426](https://github.com/ClickHouse/ClickHouse/pull/72426) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Annulation de la suppression de `/etc/systemd/system/clickhouse-server.service` introduite dans la version 22.3 [#39323](https://github.com/ClickHouse/ClickHouse/issues/39323). [#72259](https://github.com/ClickHouse/ClickHouse/pull/72259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Scinder les grandes unités de traduction pour éviter les échecs de compilation dus à des limitations de mémoire et de CPU. [#72352](https://github.com/ClickHouse/ClickHouse/pull/72352) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* OSX : compilation avec prise en charge d’ICU, ce qui active les collations, les conversions de jeux de caractères et d’autres fonctionnalités de localisation. [#73083](https://github.com/ClickHouse/ClickHouse/pull/73083) ([Raúl Marín](https://github.com/Algunenano)).

### <a id="2411" /> Release ClickHouse 24.11, 2024-11-26. [Présentation](https://presentations.clickhouse.com/2024-release-24.11/), [Vidéo](https://www.youtube.com/watch?v=0hpTvtq__4g)

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

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

* Suppression des tables système `generate_series` et `generateSeries`. Elles ont été ajoutées ici par erreur : [#59390](https://github.com/ClickHouse/ClickHouse/issues/59390). [#71091](https://github.com/ClickHouse/ClickHouse/pull/71091) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression de `StorageExternalDistributed`. Clôt [#70600](https://github.com/ClickHouse/ClickHouse/issues/70600).[#71176](https://github.com/ClickHouse/ClickHouse/pull/71176) ([flynn](https://github.com/ucasfl)).
* Les moteurs de table Kafka, NATS et RabbitMQ relèvent désormais de leurs propres grants dans la hiérarchie `SOURCES`. Ajoutez les grants nécessaires à tout utilisateur de base de données autre que `default` qui crée des tables avec ces types de moteur. [#71250](https://github.com/ClickHouse/ClickHouse/pull/71250) ([Christoph Wurm](https://github.com/cwurm)).
* Vérifiez la requête de mutation complète avant de l'exécuter (y compris les sous-requêtes). Cela évite de lancer accidentellement une requête invalide et d'accumuler des mutations mortes qui bloquent les mutations valides. [#71300](https://github.com/ClickHouse/ClickHouse/pull/71300) ([Christoph Wurm](https://github.com/cwurm)).
* Renommage du paramètre du cache du système de fichiers `skip_download_if_exceeds_query_cache` en `filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit`. [#71578](https://github.com/ClickHouse/ClickHouse/pull/71578) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suppression de la prise en charge de `Enum`, ainsi que des arguments `UInt128` et `UInt256`, dans `deltaSumTimestamp`. Suppression également de la prise en charge de `Int8`, `UInt8`, `Int16` et `UInt16` pour le deuxième argument (« timestamp ») de `deltaSumTimestamp`. [#71790](https://github.com/ClickHouse/ClickHouse/pull/71790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lors de la récupération directe de données depuis un dictionnaire à l'aide du stockage Dictionary, de la fonction de table dictionary ou d'un `SELECT` direct sur le dictionnaire lui-même, il suffit désormais de disposer de la permission `SELECT` ou de la permission `dictGet` sur le dictionnaire. Cela s'inscrit dans la continuité des tentatives précédentes visant à empêcher les contournements d'ACL : [https://github.com/ClickHouse/ClickHouse/pull/57362](https://github.com/ClickHouse/ClickHouse/pull/57362) et [https://github.com/ClickHouse/ClickHouse/pull/65359](https://github.com/ClickHouse/ClickHouse/pull/65359). Cela rend également cette dernière modification rétrocompatible. [#72051](https://github.com/ClickHouse/ClickHouse/pull/72051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Implémentation de `allow_feature_tier` comme paramètre global pour désactiver toutes les fonctionnalités expérimentales / bêta. [#71841](https://github.com/ClickHouse/ClickHouse/pull/71841) [#71145](https://github.com/ClickHouse/ClickHouse/pull/71145) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d'une erreur possible `No such file or directory` due à des caractères spéciaux non échappés dans les fichiers des sous-colonnes JSON. [#71182](https://github.com/ClickHouse/ClickHouse/pull/71182) ([Pavel Kruglov](https://github.com/Avogar)).
* Prise en charge de la modification de type de String vers JSON avec `ALTER`. Cette PR modifie également la sérialisation des types JSON et Dynamic vers la nouvelle version V2. L'ancienne version V1 peut toujours être utilisée en activant le paramètre `merge_tree_use_v1_object_and_dynamic_serialization` (utilisable pendant une mise à niveau afin de pouvoir effectuer un rollback de version sans problème). [#70442](https://github.com/ClickHouse/ClickHouse/pull/70442) ([Pavel Kruglov](https://github.com/Avogar)).
* Implémentation d'un CAST simple de Map/Tuple/Object vers le nouveau JSON via sérialisation/désérialisation à partir d'une JSON string. [#71320](https://github.com/ClickHouse/ClickHouse/pull/71320) ([Pavel Kruglov](https://github.com/Avogar)).
* Les types Variant/Dynamic ne sont plus autorisés par défaut dans ORDER BY/GROUP BY/PARTITION BY/PRIMARY KEY, car ils peuvent entraîner des résultats inattendus. [#69731](https://github.com/ClickHouse/ClickHouse/pull/69731) ([Pavel Kruglov](https://github.com/Avogar)).
* Les types Dynamic/Variant sont interdits dans les fonctions min/max afin d'éviter toute confusion. [#71761](https://github.com/ClickHouse/ClickHouse/pull/71761) ([Pavel Kruglov](https://github.com/Avogar)).

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

* Ajout de la syntaxe SQL pour décrire la gestion des workloads et des ressources. [https://clickhouse.com/docs/operations/workload-scheduling](https://clickhouse.com/docs/operations/workload-scheduling). [#69187](https://github.com/ClickHouse/ClickHouse/pull/69187) ([Sergei Trifonov](https://github.com/serxa)).
* Un nouveau type de données, `BFloat16`, représente des nombres à virgule flottante sur 16 bits avec un exposant sur 8 bits, un bit de signe et une mantisse sur 7 bits. Cela clôt [#44206](https://github.com/ClickHouse/ClickHouse/issues/44206). Cela clôt [#49937](https://github.com/ClickHouse/ClickHouse/issues/49937). [#64712](https://github.com/ClickHouse/ClickHouse/pull/64712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la query `CHECK GRANT` pour vérifier si le privilège spécifié a été accordé à l'utilisateur/au rôle actuel et si la table/le colonne correspondant existe en mémoire. [#68885](https://github.com/ClickHouse/ClickHouse/pull/68885) ([Unalian](https://github.com/Unalian)).
* Ajout des table functions `iceberg[S3;HDFS;Azure]Cluster`, `deltaLakeCluster`, `hudiCluster`. [#72045](https://github.com/ClickHouse/ClickHouse/pull/72045) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Ajout de la possibilité de définir l'utilisateur/le mot de passe dans http\_handlers (pour `dynamic_query_handler`/`predefined_query_handler`). [#70725](https://github.com/ClickHouse/ClickHouse/pull/70725) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la prise en charge de la clause de staleness dans l'opérateur ORDER BY WITH FILL. [#71151](https://github.com/ClickHouse/ClickHouse/pull/71151) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Chaque méthode d'authentification peut désormais avoir sa propre date d'expiration, celle-ci étant supprimée de l'entité utilisateur. [#70090](https://github.com/ClickHouse/ClickHouse/pull/70090) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout des nouvelles fonctions `parseDateTime64`, `parseDateTime64OrNull` et `parseDateTime64OrZero`. Par rapport à la fonction existante `parseDateTime` (et ses variantes), elles renvoient une valeur de type `DateTime64` au lieu de `DateTime`. [#71581](https://github.com/ClickHouse/ClickHouse/pull/71581) ([kevinyhzou](https://github.com/KevinyhZou)).

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

* Utilisation mémoire optimisée pour les valeurs d’index granularity lorsque la granularity est constante pour une part. Ajout de la possibilité de toujours sélectionner une granularity constante pour une part (paramètre `use_const_adaptive_granularity`), ce qui garantit une optimisation mémoire systématique. Cela aide, dans les workloads volumineux (des milliers de milliards de rows sur un stockage partagé), à éviter l’augmentation continue de la mémoire utilisée par les metadata (valeurs d’index granularity) des data parts. [#71786](https://github.com/ClickHouse/ClickHouse/pull/71786) ([Anton Popov](https://github.com/CurtizJ)).
* Désormais, nous ne copions plus les columns des blocks d’entrée pour `join_algorithm = 'parallel_hash'` lors de leur répartition entre les threads pour un traitement en parallèle. [#67782](https://github.com/ClickHouse/ClickHouse/pull/67782) ([Nikita Taranov](https://github.com/nickitat)).
* Algorithme de merge `Replacing` optimisé pour les parts non intersecting. [#70977](https://github.com/ClickHouse/ClickHouse/pull/70977) ([Anton Popov](https://github.com/CurtizJ)).
* Ne pas lister les detached parts des disks readonly et write-once dans les metrics ni dans system.detached\_parts. [#71086](https://github.com/ClickHouse/ClickHouse/pull/71086) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ne pas calculer les heavy asynchronous metrics par défaut. La fonctionnalité a été introduite dans [#40332](https://github.com/ClickHouse/ClickHouse/issues/40332), mais il n’est pas souhaitable d’avoir une tâche d’arrière-plan lourde nécessaire pour un seul client. [#71087](https://github.com/ClickHouse/ClickHouse/pull/71087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Pour les disks `plain_rewritable` : ne pas appeler l’API de l’object storage lors de l’énumération des répertoires, car cela peut être coûteux. À la place, stocker en mémoire la liste des noms de fichiers. Le compromis est un temps d’initial load plus long ainsi qu’une consommation mémoire supplémentaire pour stocker ces noms de fichiers. [#70823](https://github.com/ClickHouse/ClickHouse/pull/70823) ([Julia Kartseva](https://github.com/jkartseva)).
* Amélioration des performances et de la précision de l’intervalle de collecte de `system.query_metric_log` en réduisant la région critique. [#71473](https://github.com/ClickHouse/ClickHouse/pull/71473) ([Pablo Marcos](https://github.com/pamarcos)).
* Optimisation de la lecture dans l’ordre via la génération de rows virtuelles, afin de lire moins de données pendant le tri par merge, ce qui est particulièrement utile lorsque plusieurs parts existent. [#62125](https://github.com/ClickHouse/ClickHouse/pull/62125) ([Shichao Jin](https://github.com/jsc0218)).
* Ajout du server setting `async_load_system_database`, qui permet au server de démarrer avec une system database non entièrement chargée. Cela permet de démarrer ClickHouse plus rapidement lorsqu’il existe de nombreuses system tables. [#69847](https://github.com/ClickHouse/ClickHouse/pull/69847) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout du parameter `--threads` à `clickhouse-compressor`, qui permet de compresser les données en parallèle. [#70860](https://github.com/ClickHouse/ClickHouse/pull/70860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’un paramètre `prewarm_mark_cache` qui active le loading des marks dans le mark cache lors des inserts, des merges, des fetches de parts et au démarrage de la table. [#71053](https://github.com/ClickHouse/ClickHouse/pull/71053) ([Anton Popov](https://github.com/CurtizJ)).
* Ajustement de la taille du tableau index\_granularity en mémoire afin de réduire l’empreinte mémoire de la famille de table engines MergeTree. [#71595](https://github.com/ClickHouse/ClickHouse/pull/71595) ([alesapin](https://github.com/alesapin)).
* Désactivation du paramètre `boundary_alignment` du filesystem cache pour les lectures non effectuées depuis un disk, ce qui améliore les performances de lecture des fichiers distants standalone avec caching. [#71827](https://github.com/ClickHouse/ClickHouse/pull/71827) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les queries comme `SELECT * FROM table LIMIT ...` chargeaient auparavant les indexes des parts même lorsqu’ils n’étaient pas utilisés. [#71866](https://github.com/ClickHouse/ClickHouse/pull/71866) ([Alexander Gololobov](https://github.com/davenger)).
* Activer `parallel_replicas_local_plan` par défaut. L’élaboration d’un plan local complet sur l’initiateur de requête améliore les performances des répliques parallèles tout en réduisant la consommation de ressources, et permet d’appliquer davantage d’optimisations de requête. [#70171](https://github.com/ClickHouse/ClickHouse/pull/70171) ([Igor Nikonov](https://github.com/devcrafter)).

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

* Permet d'utiliser clickhouse avec un argument de fichier, par exemple `ch queries.sql`. [#71589](https://github.com/ClickHouse/ClickHouse/pull/71589) ([Raúl Marín](https://github.com/Algunenano)).
* Le format `Vertical` (qui est également activé lorsque vous terminez votre requête par `\G`) bénéficie désormais des fonctionnalités des Pretty formats, telles que : - la mise en évidence des séparateurs de milliers dans les nombres ; - l'affichage d'un indicateur numérique plus lisible. [#71630](https://github.com/ClickHouse/ClickHouse/pull/71630) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Propage les rôles d'utilisateurs externes de l'initiateur de la requête vers les autres nœuds du cluster. Utile lorsque seul l'initiateur a accès à l'authentificateur externe (comme LDAP). [#70332](https://github.com/ClickHouse/ClickHouse/pull/70332) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajout des alias `anyRespectNulls`, `firstValueRespectNulls` et `anyValueRespectNulls` pour la fonction d'agrégation `any`. Ajout également des alias `anyLastRespectNulls` et `lastValueRespectNulls` pour la fonction d'agrégation `anyLast`. Cela permet d'utiliser une syntaxe plus naturelle, uniquement en camel case, plutôt qu'une syntaxe mixte camel case/underscore, par exemple : `SELECT anyLastRespectNullsStateIf` au lieu de `anyLast_respect_nullsStateIf`. [#71403](https://github.com/ClickHouse/ClickHouse/pull/71403) ([Peter Nguyen](https://github.com/petern48)).
* Ajout du paramètre de configuration `date_time_utc`, permettant au formatage des journaux JSON de prendre en charge la date et l'heure UTC au format RFC 3339/ISO8601. [#71560](https://github.com/ClickHouse/ClickHouse/pull/71560) ([Ali](https://github.com/xogoodnow)).
* Ajout d'un nouveau type de header pour les S3 endpoints destiné à l'authentification des utilisateurs (`access_header`). Cela permet de récupérer un header d'accès avec la priorité la plus faible, qui sera remplacé par `access_key_id` provenant de toute autre source (par exemple, un schéma de table ou une named collection). [#71011](https://github.com/ClickHouse/ClickHouse/pull/71011) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Les fonctions d'ordre supérieur avec des Arrays constants et des arguments capturés constants renverront des constantes. [#58400](https://github.com/ClickHouse/ClickHouse/pull/58400) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les noms des étapes du query plan (`EXPLAIN PLAN json=1`) et les noms des processors du pipeline (`EXPLAIN PIPELINE compact=0,graph=1`) ont désormais un identifiant unique comme suffixe. Cela permet de faire correspondre la sortie du Profiler des processors et les traces OpenTelemetry avec la sortie d'EXPLAIN. [#63518](https://github.com/ClickHouse/ClickHouse/pull/63518) ([qhsong](https://github.com/qhsong)).
* Ajout d'une option permettant de vérifier si l'objet existe après son écriture dans Azure Blob Storage, contrôlée par le paramètre `check_objects_after_upload`. [#64847](https://github.com/ClickHouse/ClickHouse/pull/64847) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Utilise la database `Atomic` par défaut dans `clickhouse-local`. Traite les points 1 et 5 de [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). Ferme [#44817](https://github.com/ClickHouse/ClickHouse/issues/44817). [#68024](https://github.com/ClickHouse/ClickHouse/pull/68024) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les Exceptions interrompent le protocole HTTP afin d'alerter le client en cas d'erreur. [#68800](https://github.com/ClickHouse/ClickHouse/pull/68800) ([Sema Checherinda](https://github.com/CheSema)).
* Signale les hôtes exécutant des requêtes DDL distribuées en créant replica\_dir et marque les répliques actives dans DDLWorker. [#69658](https://github.com/ClickHouse/ClickHouse/pull/69658) ([tuanpach](https://github.com/tuanpach)).
* Attend uniquement les répliques actives pour les requêtes de database ON CLUSTER si distributed\_ddl\_output\_mode est défini sur \*\_only\_active. [#69660](https://github.com/ClickHouse/ClickHouse/pull/69660) ([tuanpach](https://github.com/tuanpach)).
* Meilleure gestion des erreurs et annulation des backups et restores `ON CLUSTER` : - Si un backup ou un restore échoue sur un hôte, il sera automatiquement annulé sur les autres hôtes - Aucune erreur incohérente ne doit être produite parce que certains hôtes ont échoué tandis que d'autres continuaient leur traitement - Si un backup ou un restore est annulé sur un hôte, il sera automatiquement annulé sur les autres hôtes - Correction de problèmes avec `test_disallow_concurrency` : la désactivation de la concurrence doit désormais mieux fonctionner - Les backups et restores sont maintenant beaucoup plus résistants aux déconnexions de ZooKeeper. [#70027](https://github.com/ClickHouse/ClickHouse/pull/70027) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge de `ALTER TABLE ... MODIFY/RESET SETTING ...` pour certains settings du stockage S3Queue. [#70811](https://github.com/ClickHouse/ClickHouse/pull/70811) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout de la possibilité de recharger les certificats client de la même manière que les certificats server. [#70997](https://github.com/ClickHouse/ClickHouse/pull/70997) ([Roman Antonov](https://github.com/Romeo58rus)).
* La taille de l’historique client est désormais configurable, et sa taille par défaut a été augmentée. [#71014](https://github.com/ClickHouse/ClickHouse/pull/71014) ([Jiří Kozlovský](https://github.com/jirislav)).
* Prise en charge des types booléens par le lecteur natif Parquet. [#71055](https://github.com/ClickHouse/ClickHouse/pull/71055) ([Arthur Passos](https://github.com/arthurpassos)).
* Réessayer davantage d’erreurs lors des interactions avec S3, telles que "Malformed message". [#71088](https://github.com/ClickHouse/ClickHouse/pull/71088) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réduction du niveau de log de certains messages concernant S3. [#71090](https://github.com/ClickHouse/ClickHouse/pull/71090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de l’écriture de fichiers HDFS dont le nom contient des espaces. [#71105](https://github.com/ClickHouse/ClickHouse/pull/71105) ([exmy](https://github.com/exmy)).
* Ajout de settings limitant le nombre de replicated tables, dictionaries et views. [#71179](https://github.com/ClickHouse/ClickHouse/pull/71179) ([Kirill](https://github.com/kirillgarbar)).
* Utiliser `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` au lieu de `AWS_CONTAINER_AUTHORIZATION_TOKEN` si le premier est disponible. Corrige [#71074](https://github.com/ClickHouse/ClickHouse/issues/71074). [#71269](https://github.com/ClickHouse/ClickHouse/pull/71269) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Suppression de la création du nœud ZooKeeper metadata\_version du thread de redémarrage de ReplicatedMergeTree. Le seul scénario dans lequel ce nœud doit être créé est celui où l’utilisateur est passé directement d’une version antérieure à 20.4 à une version postérieure à 24.10. ClickHouse ne prend pas en charge les upgrades couvrant plus d’un an ; nous devons donc lever une exception et demander à l’utilisateur de mettre à jour progressivement, au lieu de créer le nœud. [#71385](https://github.com/ClickHouse/ClickHouse/pull/71385) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajout des dashboards par hôte `Overview (host)` et `Cloud overview (host)` au dashboard avancé. [#71422](https://github.com/ClickHouse/ClickHouse/pull/71422) ([alesapin](https://github.com/alesapin)).
* `clickhouse-local` utilise implicit SELECT par défaut, ce qui permet de l’utiliser comme calculatrice. Amélioration de la coloration syntaxique pour le mode implicit SELECT. [#71620](https://github.com/ClickHouse/ClickHouse/pull/71620) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les applications en ligne de commande mettront la syntaxe en évidence même pour les multi-statements. [#71622](https://github.com/ClickHouse/ClickHouse/pull/71622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les applications en ligne de commande renverront désormais des codes de sortie non nuls en cas d'erreur. Dans les versions précédentes, l'application `disks` renvoyait zéro en cas d'erreur, et les autres applications renvoyaient zéro pour les erreurs 256 (`PARTITION_ALREADY_EXISTS`) et 512 (`SET_NON_GRANTED_ROLE`). [#71623](https://github.com/ClickHouse/ClickHouse/pull/71623) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lorsque l'utilisateur/le groupe est indiqué sous forme d'ID, `clickhouse su` échoue. Ce correctif lui permet également d'accepter `UID:GID`. [#71626](https://github.com/ClickHouse/ClickHouse/pull/71626) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Permet de désactiver l'augmentation de la taille du buffer mémoire pour le cache du système de fichiers via le paramètre `filesystem_cache_prefer_bigger_buffer_size`. [#71640](https://github.com/ClickHouse/ClickHouse/pull/71640) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d'un paramètre distinct, `background_download_max_file_segment_size`, pour la taille maximale des segments de fichier téléchargés en arrière-plan dans le cache du système de fichiers. [#71648](https://github.com/ClickHouse/ClickHouse/pull/71648) ([Kseniia Sumarokova](https://github.com/kssenii)).
* L'analyse du type JSON est légèrement améliorée : si le block actuel pour le JSON path contient des valeurs de plusieurs types, le système essaie de choisir le type le plus approprié en testant les types selon un ordre spécial de best effort. [#71785](https://github.com/ClickHouse/ClickHouse/pull/71785) ([Pavel Kruglov](https://github.com/Avogar)).
* Auparavant, la lecture depuis `system.asynchronous_metrics` attendait la fin d'une mise à jour concurrente. Cela peut prendre beaucoup de temps si le système est fortement chargé. Avec ce changement, les valeurs collectées précédemment peuvent toujours être lues. [#71798](https://github.com/ClickHouse/ClickHouse/pull/71798) ([Alexander Gololobov](https://github.com/davenger)).
* S3Queue et AzureQueue : définir `polling_max_timeout_ms` sur 10 minutes et `polling_backoff_ms` sur 30 secondes. [#71817](https://github.com/ClickHouse/ClickHouse/pull/71817) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Met à jour `HostResolver` trois fois sur une période d'`history`. [#71863](https://github.com/ClickHouse/ClickHouse/pull/71863) ([Sema Checherinda](https://github.com/CheSema)).
* Ajout, sur la page HTML Advanced dashboard, d'un sélecteur déroulant pour le dashboard à partir de la table `system.dashboards`. [#72081](https://github.com/ClickHouse/ClickHouse/pull/72081) ([Sergei Trifonov](https://github.com/serxa)).
* Vérifie la présence de la base de données par défaut après l'authentification. Corrige [#71097](https://github.com/ClickHouse/ClickHouse/issues/71097). [#71140](https://github.com/ClickHouse/ClickHouse/pull/71140) ([Konstantin Bogdanov](https://github.com/thevar1able)).

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

* Les parties dédupliquées lors de la requête `ATTACH PART` ne restent plus bloquées avec le préfixe `attaching_`. [#65636](https://github.com/ClickHouse/ClickHouse/pull/65636) ([Kirill](https://github.com/kirillgarbar)).
* Correction d’un bug où DateTime64 perdait en précision avec la fonction `IN`. [#67230](https://github.com/ClickHouse/ClickHouse/pull/67230) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige une possible erreur logique lors de l’utilisation de fonctions avec `IGNORE/RESPECT NULLS` dans `ORDER BY ... WITH FILL`, clôt [#57609](https://github.com/ClickHouse/ClickHouse/issues/57609). [#68234](https://github.com/ClickHouse/ClickHouse/pull/68234) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige de rares erreurs logiques dans les insertions asynchrones au format `Native` lorsque la memory limit est atteinte. [#68965](https://github.com/ClickHouse/ClickHouse/pull/68965) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige COMMENT dans CREATE TABLE pour une colonne EPHEMERAL. [#70458](https://github.com/ClickHouse/ClickHouse/pull/70458) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige une erreur logique dans JSONExtract avec LowCardinality(Nullable). [#70549](https://github.com/ClickHouse/ClickHouse/pull/70549) ([Pavel Kruglov](https://github.com/Avogar)).
* Autorise system drop replica zkpath lorsqu’il existe une autre replica avec le même chemin zk. [#70642](https://github.com/ClickHouse/ClickHouse/pull/70642) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige un crash et une fuite de mémoire dans AggregateFunctionGroupArraySorted. [#70820](https://github.com/ClickHouse/ClickHouse/pull/70820) ([Michael Kolupaev](https://github.com/al13n321)).
* Ajoute la possibilité de remplacer Content-Type via les headers utilisateur dans l’URL engine. [#70859](https://github.com/ClickHouse/ClickHouse/pull/70859) ([Artem Iurin](https://github.com/ortyomka)).
* Corrige l’erreur logique dans `StorageS3Queue` "Cannot create a persistent node in /processed since it already exists". [#70984](https://github.com/ClickHouse/ClickHouse/pull/70984) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige le fait que les sessions nommées ne se fermaient pas et restaient bloquées indéfiniment dans certaines circonstances. [#70998](https://github.com/ClickHouse/ClickHouse/pull/70998) ([Márcio Martins](https://github.com/marcio-absmartly)).
* Corrige le bug qui ne prenait pas en compte la colonne \_row\_exists dans l’option de reconstruction de la projection lightweight delete. [#71089](https://github.com/ClickHouse/ClickHouse/pull/71089) ([Shichao Jin](https://github.com/jsc0218)).
* Corrige le problème `AT_* is out of range` lors de l’exécution sur Oracle Linux UEK 6.10. [#71109](https://github.com/ClickHouse/ClickHouse/pull/71109) ([Örjan Fors](https://github.com/op)).
* Corrige une valeur incorrecte dans system.query\_metric\_log en raison d’une race condition inattendue. [#71124](https://github.com/ClickHouse/ClickHouse/pull/71124) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige le nom incorrect de la fonction d’agrégation quantileExactWeightedInterpolated. Le bug a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/69619](https://github.com/ClickHouse/ClickHouse/pull/69619). cc @Algunenano. [#71168](https://github.com/ClickHouse/ClickHouse/pull/71168) ([李扬](https://github.com/taiyang-li)).
* Corrige l’exception bad\_weak\_ptr avec Dynamic lors de la comparaison de fonctions. [#71183](https://github.com/ClickHouse/ClickHouse/pull/71183) ([Pavel Kruglov](https://github.com/Avogar)).
* Vérifie que le fichier 7z lu se trouve sur une machine locale. [#71184](https://github.com/ClickHouse/ClickHouse/pull/71184) ([Daniil Ivanik](https://github.com/divanik)).
* Correction d’un problème où les paramètres de format étaient ignorés dans le format Native via HTTP et avec les insertions asynchrones. [#71193](https://github.com/ClickHouse/ClickHouse/pull/71193) ([Pavel Kruglov](https://github.com/Avogar)).
* Les requêtes SELECT exécutées avec le paramètre `use_query_cache = 1` ne sont plus rejetées si le nom d’une table système apparaît comme littéral ; par exemple, `SELECT * FROM users WHERE name = 'system.metrics' SETTINGS use_query_cache = true;` fonctionne désormais. [#71254](https://github.com/ClickHouse/ClickHouse/pull/71254) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction d’un bug entraînant une augmentation de l’utilisation mémoire si enable\_filesystem\_cache=1, mais que le disque dans la configuration de stockage n’avait aucune configuration de cache. [#71261](https://github.com/ClickHouse/ClickHouse/pull/71261) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’une possible erreur "Cannot read all data" lors de la désérialisation d’un dictionnaire LowCardinality à partir d’une colonne Dynamic. [#71299](https://github.com/ClickHouse/ClickHouse/pull/71299) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d’un nettoyage incomplet du format de sortie parallèle dans le client. [#71304](https://github.com/ClickHouse/ClickHouse/pull/71304) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout du déséchappement manquant dans les collections nommées. Sans ce correctif, clickhouse-server ne peut pas démarrer. [#71308](https://github.com/ClickHouse/ClickHouse/pull/71308) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Correction des insertions asynchrones avec des blocs vides via le protocole natif. [#71312](https://github.com/ClickHouse/ClickHouse/pull/71312) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’un formatage AST incohérent lors de l’octroi de privilèges génériques avec joker incorrects [#71309](https://github.com/ClickHouse/ClickHouse/issues/71309). [#71332](https://github.com/ClickHouse/ClickHouse/pull/71332) ([pufit](https://github.com/pufit)).
* Ajout de try/catch aux destructeurs des data parts pour éviter std::terminate. [#71364](https://github.com/ClickHouse/ClickHouse/pull/71364) ([alesapin](https://github.com/alesapin)).
* Vérification des types suspects et expérimentaux dans les indications de type du type JSON. [#71369](https://github.com/ClickHouse/ClickHouse/pull/71369) ([Pavel Kruglov](https://github.com/Avogar)).
* Démarrage du worker thread mémoire également sur les OS non Linux (corrige [#71051](https://github.com/ClickHouse/ClickHouse/issues/71051)). [#71384](https://github.com/ClickHouse/ClickHouse/pull/71384) ([Alexandre Snarskii](https://github.com/snar)).
* Correction de l’erreur Invalid number of rows in Chunk avec la colonne Variant. [#71388](https://github.com/ClickHouse/ClickHouse/pull/71388) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de l’erreur column "attgenerated" does not exist pour les anciennes versions de PostgreSQL, corrige [#60651](https://github.com/ClickHouse/ClickHouse/issues/60651). [#71396](https://github.com/ClickHouse/ClickHouse/pull/71396) ([0xMihalich](https://github.com/0xMihalich)).
* Pour éviter d’inonder les journaux du serveur, les tentatives d’authentification échouées sont désormais consignées au niveau `DEBUG` au lieu de `ERROR`. [#71405](https://github.com/ClickHouse/ClickHouse/pull/71405) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction d’un crash dans la fonction de table `mongodb` lors du passage d’arguments incorrects (par ex. `NULL`). [#71426](https://github.com/ClickHouse/ClickHouse/pull/71426) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction d’un crash avec optimize\_rewrite\_array\_exists\_to\_has. [#71432](https://github.com/ClickHouse/ClickHouse/pull/71432) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l'utilisation du paramètre `max_insert_delayed_streams_for_parallel_write` pour les insertions. Auparavant, il ne fonctionnait pas correctement, ce qui pouvait entraîner une forte utilisation de la mémoire lors d'insertions écrivant des données dans plusieurs partitions. [#71474](https://github.com/ClickHouse/ClickHouse/pull/71474) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d'une erreur possible, `Argument for function must be constant` (ancien analyseur), lorsque `arrayJoin` peut apparemment apparaître dans la condition `WHERE`. Régression après [https://github.com/ClickHouse/ClickHouse/pull/65414](https://github.com/ClickHouse/ClickHouse/pull/65414). [#71476](https://github.com/ClickHouse/ClickHouse/pull/71476) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Évite un plantage dans SortCursor avec 0 colonne (ancien analyseur). [#71494](https://github.com/ClickHouse/ClickHouse/pull/71494) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d'une valeur Date32 hors plage causée par des données ORC non initialisées. Pour plus de détails, consultez [https://github.com/apache/incubator-gluten/issues/7823](https://github.com/apache/incubator-gluten/issues/7823). [#71500](https://github.com/ClickHouse/ClickHouse/pull/71500) ([李扬](https://github.com/taiyang-li)).
* Correction du calcul de la taille d'une colonne dans une wide part pour les types Dynamic et JSON. [#71526](https://github.com/ClickHouse/ClickHouse/pull/71526) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction de l'analyseur lorsqu'une requête à l'intérieur d'une vue matérialisée utilise IN avec une CTE. Clôt [#65598](https://github.com/ClickHouse/ClickHouse/issues/65598). [#71538](https://github.com/ClickHouse/ClickHouse/pull/71538) ([Maksim Kita](https://github.com/kitaisreal)).
* Évite un plantage lors de l'utilisation d'une UDF dans une contrainte. [#71541](https://github.com/ClickHouse/ClickHouse/pull/71541) ([Raúl Marín](https://github.com/Algunenano)).
* Renvoie 0 ou le caractère par défaut au lieu de lever une erreur dans les fonctions bitShift en cas de dépassement des limites. [#71580](https://github.com/ClickHouse/ClickHouse/pull/71580) ([Pablo Marcos](https://github.com/pamarcos)).
* Correction de plantages du serveur lors de l'utilisation d'une vue matérialisée avec certains moteurs. [#71593](https://github.com/ClickHouse/ClickHouse/pull/71593) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Un ARRAY JOIN avec une structure de données imbriquée contenant un alias vers un tableau constant entraînait un déréférencement de pointeur nul. Clôt [#71677](https://github.com/ClickHouse/ClickHouse/issues/71677). [#71678](https://github.com/ClickHouse/ClickHouse/pull/71678) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de LOGICAL\_ERROR lors de l'exécution de ALTER avec un tuple vide. Corrige [#71647](https://github.com/ClickHouse/ClickHouse/issues/71647). [#71679](https://github.com/ClickHouse/ClickHouse/pull/71679) ([Amos Bird](https://github.com/amosbird)).
* Ne transformez pas l'ensemble constant dans les prédicats sur les colonnes de partition dans le cas de l'opérateur NOT IN. [#71695](https://github.com/ClickHouse/ClickHouse/pull/71695) ([Eduard Karacharov](https://github.com/korowa)).
* Correction du message de journal en cas d'échec du script d'initialisation Docker pour le rendre plus clair. [#71734](https://github.com/ClickHouse/ClickHouse/pull/71734) ([Андрей](https://github.com/andreineustroev)).
* Correction de CAST de LowCardinality(Nullable) vers Dynamic. Auparavant, cela pouvait entraîner l'erreur `Bad cast from type DB::ColumnVector<int> to DB::ColumnNullable`. [#71742](https://github.com/ClickHouse/ClickHouse/pull/71742) ([Pavel Kruglov](https://github.com/Avogar)).
* Correction d'une exception pour `toDayOfWeek` dans une condition `WHERE` avec une clé primaire de type DateTime64. [#71849](https://github.com/ClickHouse/ClickHouse/pull/71849) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction du remplissage des valeurs par défaut après le parsing dans des colonnes sparse. [#71854](https://github.com/ClickHouse/ClickHouse/pull/71854) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d'une erreur de la fonction GROUPING lorsque l'entrée est un ALIAS sur une table distribuée, clôt [#68602](https://github.com/ClickHouse/ClickHouse/issues/68602). [#71855](https://github.com/ClickHouse/ClickHouse/pull/71855) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction d'un plantage possible lors de l'utilisation de `allow_experimental_join_condition`, clôt [#71693](https://github.com/ClickHouse/ClickHouse/issues/71693). [#71857](https://github.com/ClickHouse/ClickHouse/pull/71857) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction des instructions SELECT utilisant la clause `WITH TIES`, qui pouvaient ne pas renvoyer suffisamment de lignes. [#71886](https://github.com/ClickHouse/ClickHouse/pull/71886) ([wxybear](https://github.com/wxybear)).
* Correction de l'exception TOO\_LARGE\_ARRAY\_SIZE déclenchée lorsqu'une colonne issue de l'évaluation de arrayWithConstant était considérée à tort comme dépassant la limite de taille du tableau. [#71894](https://github.com/ClickHouse/ClickHouse/pull/71894) ([Udi](https://github.com/udiz)).
* `clickhouse-benchmark` signalait des métriques erronées pour les requêtes durant plus d'une seconde. [#71898](https://github.com/ClickHouse/ClickHouse/pull/71898) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d'une data race entre l'indicateur de progression et la table de progression dans clickhouse-client. Ce problème est visible lorsque FROM INFILE est utilisé. Interception des frappes clavier pendant les requêtes INSERT pour basculer l'affichage de la table de progression. [#71901](https://github.com/ClickHouse/ClickHouse/pull/71901) ([Julia Kartseva](https://github.com/jkartseva)).
* Utilisation de keepers auxiliaires pour l'autodiscovery du cluster. [#71911](https://github.com/ClickHouse/ClickHouse/pull/71911) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Correction de la colonne rows\_processed dans system.s3/azure\_queue\_log, cassée en 24.6. Clôt [#69975](https://github.com/ClickHouse/ClickHouse/issues/69975). [#71946](https://github.com/ClickHouse/ClickHouse/pull/71946) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'un cas où les fonctions `s3`/`s3Cluster` pouvaient renvoyer un résultat incomplet ou lever une exception. Cela se produisait lors de l'utilisation d'un glob pattern dans l'URI s3 (par exemple `pattern/*`) et lorsqu'un objet vide avec la key `pattern/` existait (de tels objets sont créés automatiquement par la S3 Console). De plus, la valeur par défaut du paramètre `s3_skip_empty_files` est passée de `false` à `true`. [#71947](https://github.com/ClickHouse/ClickHouse/pull/71947) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d'un plantage dans la coloration syntaxique de clickhouse-client. Clôt [#71864](https://github.com/ClickHouse/ClickHouse/issues/71864). [#71949](https://github.com/ClickHouse/ClickHouse/pull/71949) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de l'erreur `Illegal type` pour les tables `MergeTree` avec une fonction monotone binaire dans `ORDER BY` lorsque le premier argument est constant. Corrige [#71941](https://github.com/ClickHouse/ClickHouse/issues/71941). [#71966](https://github.com/ClickHouse/ClickHouse/pull/71966) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Autoriser uniquement les requêtes SELECT dans EXPLAIN AST lorsqu'il est utilisé à l'intérieur d'une sous-requête. Les autres types de requêtes entraînent une logical error : 'Bad cast from type DB::ASTCreateQuery to DB::ASTSelectWithUnionQuery' ou `Inconsistent AST formatting`. [#71982](https://github.com/ClickHouse/ClickHouse/pull/71982) ([Pavel Kruglov](https://github.com/Avogar)).
* Lors de l'insertion d'un enregistrement avec `clickhouse-client`, le client lit les descriptions de colonnes depuis le serveur. Mais un bug faisait que nous écrivions les descriptions dans le mauvais ordre ; l'ordre correct est \[statistics, ttl, settings]. [#71991](https://github.com/ClickHouse/ClickHouse/pull/71991) ([Han Fei](https://github.com/hanfei1991)).
* Corrige la mise en forme des commandes ALTER `MOVE PARTITION ... TO TABLE ...` lorsque `format_alter_commands_with_parentheses` est activé. [#72080](https://github.com/ClickHouse/ClickHouse/pull/72080) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige les jointures RIGHT / FULL dans les requêtes avec des répliques parallèles. Désormais, les jointures RIGHT peuvent être exécutées avec des répliques parallèles (la lecture de la table de droite est répartie). Les jointures FULL ne peuvent pas être parallélisées entre les nœuds et sont exécutées localement. [#71162](https://github.com/ClickHouse/ClickHouse/pull/71162) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige le problème où ClickHouse, dans des conteneurs Docker, affichait "get\_mempolicy: Operation not permitted" sur stderr en raison d'appels système restreints. [#70900](https://github.com/ClickHouse/ClickHouse/pull/70900) ([filimonov](https://github.com/filimonov)).
* Corrige l'enregistrement metadata\_version dans ZooKeeper dans le thread de redémarrage plutôt que dans le thread d'Attach. [#70297](https://github.com/ClickHouse/ClickHouse/pull/70297) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Il s'agit d'un correctif pour la réplication "zero-copy", qui n'est pas prise en charge et sera entièrement supprimée. Ne supprime pas de blob lorsque des nœuds l'utilisent dans ReplicatedMergeTree avec la réplication zero-copy. [#71186](https://github.com/ClickHouse/ClickHouse/pull/71186) ([Antonio Andelic](https://github.com/antonio2368)).
* Il s'agit d'un correctif pour la réplication "zero-copy", qui n'est pas prise en charge et sera entièrement supprimée. Acquisition d'un verrou partagé zero-copy avant le déplacement d'une part vers un disque zero-copy afin d'éviter une éventuelle perte de données si Keeper n'est pas disponible. [#71845](https://github.com/ClickHouse/ClickHouse/pull/71845) ([Aleksei Filatov](https://github.com/aalexfvk)).

### <a id="2410" /> Release ClickHouse 24.10, 2024-10-31. [Présentation](https://presentations.clickhouse.com/2024-release-24.10/), [Vidéo](https://www.youtube.com/watch?v=AamIAjURp4U)

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

* Il est désormais possible d’écrire `SETTINGS` avant `FORMAT` dans une chaîne de requêtes avec `UNION` lorsque les sous-requêtes sont entre parenthèses. Cela clôt [#39712](https://github.com/ClickHouse/ClickHouse/issues/39712). Le comportement change lorsqu’une requête contient deux fois la clause SETTINGS dans une séquence. La clause SETTINGS la plus proche est prioritaire pour la sous-requête correspondante. Dans les versions précédentes, la clause SETTINGS la plus externe pouvait primer sur la clause interne. [#68614](https://github.com/ClickHouse/ClickHouse/pull/68614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La réorganisation des conditions de filtre de la clause `[PRE]WHERE` est désormais autorisée par défaut. Elle peut être désactivée en définissant `allow_reorder_prewhere_conditions` sur `false`. [#70657](https://github.com/ClickHouse/ClickHouse/pull/70657) ([Nikita Taranov](https://github.com/nickitat)).
* Suppression de la bibliothèque `idxd-config`, dont la licence est incompatible. Cela supprime également le codec expérimental Intel DeflateQPL. [#70987](https://github.com/ClickHouse/ClickHouse/pull/70987) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Permet d’accorder l’accès aux préfixes génériques avec joker. `GRANT SELECT ON db.table_pefix_* TO user`. [#65311](https://github.com/ClickHouse/ClickHouse/pull/65311) ([pufit](https://github.com/pufit)).
* Si vous appuyez sur la barre d’espace pendant l’exécution d’une requête, le client affichera un tableau en temps réel avec des métriques détaillées. Vous pouvez l’activer globalement avec la nouvelle option `--progress-table` dans clickhouse-client ; une nouvelle option `--enable-progress-table-toggle` est associée à `--progress-table` et permet d’activer ou de désactiver l’affichage du tableau de progression en appuyant sur la touche de contrôle (Espace). [#63689](https://github.com/ClickHouse/ClickHouse/pull/63689) ([Maria Khristenko](https://github.com/mariaKhr)), [#70423](https://github.com/ClickHouse/ClickHouse/pull/70423) ([Julia Kartseva](https://github.com/jkartseva)).
* Permet de mettre en cache les fichiers lus pour les table engines de stockage objet et les data lakes en utilisant le hash de l’ETag + le chemin du fichier comme clé de cache. [#70135](https://github.com/ClickHouse/ClickHouse/pull/70135) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prend en charge la création d’une table à partir d’une requête : `CREATE TABLE ... CLONE AS ...`. Cela clone le schéma de la table source, puis attache toutes les partitions à la table nouvellement créée. Cette fonctionnalité n’est prise en charge qu’avec les tables de la famille `MergeTree`. Closes [#65015](https://github.com/ClickHouse/ClickHouse/issues/65015). [#69091](https://github.com/ClickHouse/ClickHouse/pull/69091) ([tuanpach](https://github.com/tuanpach)).
* Ajout d’une nouvelle system table, `system.query_metric_log`, qui contient l’historique des valeurs de mémoire et de métriques de la table système `system.events` pour chaque requête, périodiquement écrites sur disque. [#66532](https://github.com/ClickHouse/ClickHouse/pull/66532) ([Pablo Marcos](https://github.com/pamarcos)).
* Une simple requête SELECT peut être écrite avec un SELECT implicite pour permettre des expressions de type calculatrice, par exemple `ch "1 + 2"`. Ce comportement est contrôlé par un nouveau setting, `implicit_select`. [#68502](https://github.com/ClickHouse/ClickHouse/pull/68502) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge du mode `--copy` pour clickhouse local, comme raccourci pour la conversion de format [#68503](https://github.com/ClickHouse/ClickHouse/issues/68503). [#68583](https://github.com/ClickHouse/ClickHouse/pull/68583) ([Denis Hananein](https://github.com/denis-hananein)).
* Ajout d’une page HTML intégrée pour visualiser les merges, disponible au chemin `/merges`. [#70821](https://github.com/ClickHouse/ClickHouse/pull/70821) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la prise en charge de la fonction `arrayUnion`. [#68989](https://github.com/ClickHouse/ClickHouse/pull/68989) ([Peter Nguyen](https://github.com/petern48)).
* Permet les alias SQL paramétrés. [#50665](https://github.com/ClickHouse/ClickHouse/pull/50665) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Nouvelle fonction d’agrégation `quantileExactWeightedInterpolated`, version interpolée basée sur `quantileExactWeighted`. Certains pourraient se demander pourquoi une nouvelle fonction `quantileExactWeightedInterpolated` est nécessaire alors que `quantileExactInterpolatedWeighted` existe déjà. La raison est que la nouvelle est plus précise que l’ancienne. Cela vise la compatibilité avec Spark. [#69619](https://github.com/ClickHouse/ClickHouse/pull/69619) ([李扬](https://github.com/taiyang-li)).
* Nouvelle fonction `arrayElementOrNull`. Elle renvoie `NULL` si l’index du tableau est hors limites ou si une clé de Map est introuvable. [#69646](https://github.com/ClickHouse/ClickHouse/pull/69646) ([李扬](https://github.com/taiyang-li)).
* Permet aux utilisateurs de spécifier des expressions régulières via les nouveaux champs `message_regexp` et `message_regexp_negative` dans le fichier `config.xml` afin de filtrer la journalisation. La journalisation s’applique au texte formaté non coloré pour offrir l’expérience développeur la plus intuitive. [#69657](https://github.com/ClickHouse/ClickHouse/pull/69657) ([Peter Nguyen](https://github.com/petern48)).
* Ajout de la fonction `RIPEMD160`, qui calcule le hachage cryptographique RIPEMD-160 d'une chaîne. Exemple : `SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))` renvoie `37F332F68DB77BD9D7EDD4969571AD671CF9DD3B`. [#70087](https://github.com/ClickHouse/ClickHouse/pull/70087) ([Dergousov Maxim](https://github.com/m7kss1)).
* Prise en charge de la lecture des tables `Iceberg` sur `HDFS`. [#70268](https://github.com/ClickHouse/ClickHouse/pull/70268) ([flynn](https://github.com/ucasfl)).
* Prise en charge des CTE sous la forme `WITH ... INSERT`, alors qu'auparavant seule la forme `INSERT ... WITH ...` était prise en charge. [#70593](https://github.com/ClickHouse/ClickHouse/pull/70593) ([Shichao Jin](https://github.com/jsc0218)).
* Intégration MongoDB : prise en charge de tous les types MongoDB, des clauses WHERE et ORDER BY côté MongoDB, et restriction des expressions non prises en charge par MongoDB. Notez que la nouvelle intégration est désactivée par défaut ; pour l'utiliser, définissez `<use_legacy_mongodb_integration>` sur `false` dans la configuration du serveur. [#63279](https://github.com/ClickHouse/ClickHouse/pull/63279) ([Kirill Nikiforov](https://github.com/allmazz)).
* Une nouvelle fonction, `getSettingOrDefault`, a été ajoutée pour renvoyer la valeur par défaut et éviter une exception si un paramètre personnalisé est introuvable dans le profil actuel. [#69917](https://github.com/ClickHouse/ClickHouse/pull/69917) ([Shankar](https://github.com/shiyer7474)).

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

* Les vues matérialisées actualisables sont prêtes pour la production. [#70550](https://github.com/ClickHouse/ClickHouse/pull/70550) ([Michael Kolupaev](https://github.com/al13n321)). Les vues matérialisées actualisables sont désormais prises en charge dans les bases de données Replicated. [#60669](https://github.com/ClickHouse/ClickHouse/pull/60669) ([Michael Kolupaev](https://github.com/al13n321)).
* Les répliques parallèles passent du statut expérimental au statut bêta. Les paramètres qui contrôlent le comportement des algorithmes des répliques parallèles ont été retravaillés. En bref : ClickHouse dispose de quatre algorithmes différents de lecture parallèle impliquant plusieurs répliques, ce qui se reflète dans le paramètre `parallel_replicas_mode`, dont la valeur par défaut est `read_tasks`. De plus, le paramètre de bascule `enable_parallel_replicas` a été ajouté. [#63151](https://github.com/ClickHouse/ClickHouse/pull/63151) ([Alexey Milovidov](https://github.com/alexey-milovidov)), ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Prise en charge du type `Dynamic` dans la plupart des fonctions, en les exécutant sur les types internes de `Dynamic`. [#69691](https://github.com/ClickHouse/ClickHouse/pull/69691) ([Pavel Kruglov](https://github.com/Avogar)).
* Permet de lire/écrire le type `JSON` comme une chaîne binaire au format `RowBinary` avec les paramètres `input_format_binary_read_json_as_string/output_format_binary_write_json_as_string`. [#70288](https://github.com/ClickHouse/ClickHouse/pull/70288) ([Pavel Kruglov](https://github.com/Avogar)).
* Permet de sérialiser/désérialiser une colonne `JSON` comme une unique colonne String au format Native. Pour la sortie, utilisez le paramètre `output_format_native_write_json_as_string`. Pour l'entrée, utilisez la version de sérialisation `1` avant les données de la colonne. [#70312](https://github.com/ClickHouse/ClickHouse/pull/70312) ([Pavel Kruglov](https://github.com/Avogar)).
* Introduction d'un mode spécial (expérimental) de sélecteur de fusion pour les tables MergeTree, qui le rend plus agressif pour les partitions proches de la limite du nombre de parts. Il est contrôlé par le paramètre `merge_selector_use_blurry_base` au niveau de MergeTree. [#70645](https://github.com/ClickHouse/ClickHouse/pull/70645) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Implémentation d'une sérialisation/désérialisation générique entre `Union` d'Avro et les types `Variant` de ClickHouse. Résout [#69713](https://github.com/ClickHouse/ClickHouse/issues/69713). [#69712](https://github.com/ClickHouse/ClickHouse/pull/69712) ([Jiří Kozlovský](https://github.com/jirislav)).

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

* Refactorisation de `IDisk` et `IObjectStorage` pour améliorer les performances. Les tables des stockages objet `plain` et `plain_rewritable` s’initialiseront plus rapidement. [#68146](https://github.com/ClickHouse/ClickHouse/pull/68146) ([Alexey Milovidov](https://github.com/alexey-milovidov), [Julia Kartseva](https://github.com/jkartseva)). Ne plus appeler l’API LIST du stockage objet pour déterminer si un fichier ou un répertoire existe sur le disk plain rewritable, car cela peut entraîner des coûts inutiles. [#70852](https://github.com/ClickHouse/ClickHouse/pull/70852) ([Julia Kartseva](https://github.com/jkartseva)). Réduction du nombre de requêtes HEAD API vers le stockage objet sur le disk plain\_rewritable. [#70915](https://github.com/ClickHouse/ClickHouse/pull/70915) ([Julia Kartseva](https://github.com/jkartseva)).
* Ajout de la possibilité de parser directement les données dans des colonnes éparses. [#69828](https://github.com/ClickHouse/ClickHouse/pull/69828) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration des performances de parsing des formats comportant un grand nombre de valeurs manquantes (par ex. `JSONEachRow`). [#69875](https://github.com/ClickHouse/ClickHouse/pull/69875) ([Anton Popov](https://github.com/CurtizJ)).
* Prise en charge de la lecture en parallèle des row groups Parquet et du prefetch des row groups en mode monothread. [#69862](https://github.com/ClickHouse/ClickHouse/pull/69862) ([LiuNeng](https://github.com/liuneng1994)).
* Prise en charge de l’index MinMax pour `pointInPolygon`. [#62085](https://github.com/ClickHouse/ClickHouse/pull/62085) ([JackyWoo](https://github.com/JackyWoo)).
* Utilisation de bloom filters lors de la lecture de fichiers Parquet. [#62966](https://github.com/ClickHouse/ClickHouse/pull/62966) ([Arthur Passos](https://github.com/arthurpassos)).
* Renommage des parts sans verrou afin d’éviter qu’INSERT n’affecte SELECT (à cause du verrou sur les parts) (dans des conditions normales avec `fsync_part_directory`, le QPS de SELECT avec INSERT en parallèle a doublé, et sous forte charge l’effet est encore plus marqué). À noter : cela ne concerne pour l’instant que `ReplicatedMergeTree`. [#64955](https://github.com/ClickHouse/ClickHouse/pull/64955) ([Azat Khuzhin](https://github.com/azat)).
* Respect de `ttl_only_drop_parts` avec `materialize ttl` ; seules les colonnes nécessaires sont lues pour recalculer le TTL et supprimer les parts en les remplaçant par une part vide. [#65488](https://github.com/ClickHouse/ClickHouse/pull/65488) ([Andrey Zvonov](https://github.com/zvonand)).
* Optimisation de la création de threads dans le ThreadPool afin de minimiser la contention sur les verrous. La création des threads s’effectue désormais en dehors de la section critique afin d’éviter les retards dans l’ordonnancement des tâches et la gestion des threads sous forte charge. ClickHouse est ainsi nettement plus réactif sous forte charge concurrente. [#68694](https://github.com/ClickHouse/ClickHouse/pull/68694) ([filimonov](https://github.com/filimonov)).
* Activation de la lecture des colonnes de type chaîne `LowCardinality` depuis `ORC`. [#69481](https://github.com/ClickHouse/ClickHouse/pull/69481) ([李扬](https://github.com/taiyang-li)).
* Utilisation de `LowCardinality` pour `ProfileEvents` dans les logs système tels que `part_log`, `query_views_log`, `filesystem_cache_log`. [#70152](https://github.com/ClickHouse/ClickHouse/pull/70152) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration des performances des fonctions `fromUnixTimestamp`/`toUnixTimestamp`. [#71042](https://github.com/ClickHouse/ClickHouse/pull/71042) ([kevinyhzou](https://github.com/KevinyhZou)).
* Ne plus désactiver la lecture non bloquante depuis le page cache pour l’ensemble du server lors d’une lecture via une E/S bloquante. Cela dégradait les performances lorsqu’un seul filesystem (par ex. tmpfs) ne prenait pas en charge l’appel système `preadv2`, alors que les autres le prenaient en charge. [#70299](https://github.com/ClickHouse/ClickHouse/pull/70299) ([Antonio Andelic](https://github.com/antonio2368)).
* `ALTER TABLE .. REPLACE PARTITION` n’attend plus les mutations/merges qui se produisent dans d’autres partitions. [#59138](https://github.com/ClickHouse/ClickHouse/pull/59138) ([Vasily Nemkov](https://github.com/Enmk)).
* Ne plus effectuer de validation lors de la synchronisation des ACL depuis Keeper. La validation est déjà effectuée lors de la création. Cela ne devrait pas avoir beaucoup d’impact, mais certaines installations comptent des dizaines de milliers d’utilisateurs, voire plus, et la validation inutile du hash peut prendre beaucoup de temps au démarrage du serveur (tout est synchronisé depuis Keeper). [#70644](https://github.com/ClickHouse/ClickHouse/pull/70644) ([Raúl Marín](https://github.com/Algunenano)).

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

* `CREATE TABLE AS` copiera `PRIMARY KEY`, `ORDER BY` et les clauses similaires (des tables `MergeTree`). [#69739](https://github.com/ClickHouse/ClickHouse/pull/69739) ([sakulali](https://github.com/sakulali)).
* Prise en charge de XID 64 bits dans Keeper. Cette fonctionnalité peut être activée avec la valeur de configuration `use_xid_64`. [#69908](https://github.com/ClickHouse/ClickHouse/pull/69908) ([Antonio Andelic](https://github.com/antonio2368)).
* Les arguments de ligne de commande pour les paramètres Bool sont définis sur true lorsqu’aucune valeur n’est fournie pour l’argument (par ex. `clickhouse-client --optimize_aggregation_in_order --query "SELECT 1"`). [#70459](https://github.com/ClickHouse/ClickHouse/pull/70459) ([davidtsuk](https://github.com/davidtsuk)).
* Ajout des paramètres au niveau utilisateur `min_free_disk_bytes_to_perform_insert` et `min_free_disk_perform_to_throw_insert` pour empêcher les insertions sur des disques presque pleins. [#69755](https://github.com/ClickHouse/ClickHouse/pull/69755) ([Marco Vilas Boas](https://github.com/marco-vb)).
* La documentation embarquée des paramètres sera strictement plus détaillée et plus complète que la documentation du site web. Il s’agit de la première étape avant que la documentation du site soit systématiquement générée automatiquement à partir du code source. Cela a des implications durables : - il sera garanti que chaque paramètre y figure ; - il n’y aura aucun risque que les valeurs par défaut deviennent obsolètes ; - nous pourrons générer cette documentation pour chaque version de ClickHouse ; - la documentation pourra être affichée par le serveur lui-même, même sans accès à Internet. Générer la documentation du site web à partir du code source. [#70289](https://github.com/ClickHouse/ClickHouse/pull/70289) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autoriser une sous-chaîne de recherche vide dans la fonction `replace`, avec le même comportement que PostgreSQL. [#69918](https://github.com/ClickHouse/ClickHouse/pull/69918) ([zhanglistar](https://github.com/zhanglistar)).
* Autoriser une sous-chaîne de recherche vide dans les fonctions `replaceRegexp*`. [#70053](https://github.com/ClickHouse/ClickHouse/pull/70053) ([zhanglistar](https://github.com/zhanglistar)).
* Des liens symboliques pour les tables dans le répertoire `data/database_name/` sont créés vers les chemins réels des données de la table, selon la storage policy, au lieu du répertoire `store/...` sur le disque par défaut. [#61777](https://github.com/ClickHouse/ClickHouse/pull/61777) ([Kirill](https://github.com/kirillgarbar)).
* Lors de l’analyse d’un champ `Enum` depuis `JSON`, une chaîne contenant un entier sera interprétée comme l’élément `Enum` correspondant. Cela clôt [#65119](https://github.com/ClickHouse/ClickHouse/issues/65119). [#66801](https://github.com/ClickHouse/ClickHouse/pull/66801) ([scanhex12](https://github.com/scanhex12)).
* Autoriser `TRIM` sur une chaîne vide `LEADING` ou `TRAILING` comme no-op. Clôt [#67792](https://github.com/ClickHouse/ClickHouse/issues/67792). [#68455](https://github.com/ClickHouse/ClickHouse/pull/68455) ([Peter Nguyen](https://github.com/petern48)).
* Amélioration de la compatibilité de `cast(timestamp as String)` avec Spark. [#69179](https://github.com/ClickHouse/ClickHouse/pull/69179) ([Wenzheng Liu](https://github.com/lwz9103)).
* Toujours utiliser le nouvel analyseur pour calculer les expressions constantes lorsque `enable_analyzer` est défini sur `true`. Prise en charge du calcul des arguments de la table function `executable` sans utiliser de query `SELECT` pour les expressions constantes. [#69292](https://github.com/ClickHouse/ClickHouse/pull/69292) ([Dmitry Novik](https://github.com/novikd)).
* Ajout d’un paramètre `enable_secure_identifiers` pour interdire les identifiants comportant des caractères spéciaux. [#69411](https://github.com/ClickHouse/ClickHouse/pull/69411) ([tuanpach](https://github.com/tuanpach)).
* Ajout de `show_create_query_identifier_quoting_rule` pour définir le comportement de mise entre guillemets des identifiants dans le résultat de la requête `SHOW CREATE TABLE`. Valeurs possibles : - `user_display` : lorsque les identifiants sont des mots-clés. - `when_necessary` : lorsque les identifiants font partie de `{"distinct", "all", "table"}` et lorsqu’ils peuvent créer une ambiguïté : noms de colonnes, noms d’attributs de dictionnaire. - `always` : toujours mettre les identifiants entre guillemets. [#69448](https://github.com/ClickHouse/ClickHouse/pull/69448) ([tuanpach](https://github.com/tuanpach)).
* Amélioration de la restauration des dépendances des entités d’accès [#69563](https://github.com/ClickHouse/ClickHouse/pull/69563) ([Vitaly Baranov](https://github.com/vitlibar)).
* Si vous exécutez `clickhouse-client` ou une autre application CLI, qu’elle démarre lentement à cause d’un serveur surchargé et que vous commencez à saisir votre requête, par exemple `SELECT`, les versions précédentes affichaient le reste du contenu d’écho du terminal avant le message d’accueil, par exemple `SELECTClickHouse local version 24.10.1.1.` au lieu de `ClickHouse local version 24.10.1.1.`. C’est désormais corrigé. Cela clôt [#31696](https://github.com/ClickHouse/ClickHouse/issues/31696). [#69856](https://github.com/ClickHouse/ClickHouse/pull/69856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la nouvelle colonne `readonly_duration` à la table `system.replicas`. Nécessaire pour distinguer les réplique readonly réelles des répliques sentinelles dans les alerts. [#69871](https://github.com/ClickHouse/ClickHouse/pull/69871) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Changement du type du paramètre `join_output_by_rowlist_perkey_rows_threshold` en entier non signé. [#69886](https://github.com/ClickHouse/ClickHouse/pull/69886) ([kevinyhzou](https://github.com/KevinyhZou)).
* Amélioration de la journalisation des span OpenTelemetry pour inclure les paramètres de requête. [#70011](https://github.com/ClickHouse/ClickHouse/pull/70011) ([sharathks118](https://github.com/sharathks118)).
* Ajout d’informations de diagnostic sur les fonctions de tableau d’ordre supérieur si le type de résultat de la lambda est inattendu. [#70093](https://github.com/ClickHouse/ClickHouse/pull/70093) ([ttanay](https://github.com/ttanay)).
* Amélioration de Keeper : moins de verrous lors des changements de cluster. [#70275](https://github.com/ClickHouse/ClickHouse/pull/70275) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout des mots-clés `WITH IMPLICIT` et `FINAL` à la commande `SHOW GRANTS`. Correction d’un bug mineur lié aux grants implicites : [#70094](https://github.com/ClickHouse/ClickHouse/issues/70094). [#70293](https://github.com/ClickHouse/ClickHouse/pull/70293) ([pufit](https://github.com/pufit)).
* Prise en compte de `compatibility` pour les paramètres MergeTree. La valeur `compatibility` est récupérée depuis le profil `default` au démarrage du serveur, et les paramètres MergeTree par défaut sont modifiés en conséquence. Les modifications ultérieures du paramètre `compatibility` n’affectent pas les paramètres MergeTree. [#70322](https://github.com/ClickHouse/ClickHouse/pull/70322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Évite de saturer les logs avec de gros corps de réponse HTTP en cas d’erreurs lors de la communication inter-server. [#70487](https://github.com/ClickHouse/ClickHouse/pull/70487) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ajout d’un nouveau paramètre `max_parts_to_move` pour contrôler le nombre maximal de parts pouvant être déplacées en une seule fois. [#70520](https://github.com/ClickHouse/ClickHouse/pull/70520) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Limitation de la fréquence de certains messages de log. [#70601](https://github.com/ClickHouse/ClickHouse/pull/70601) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `CHECK TABLE` avec le qualificateur `PART` était formaté de manière incorrecte dans le client. [#70660](https://github.com/ClickHouse/ClickHouse/pull/70660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de l’écriture de l’index de colonne et de l’index de décalage avec le writer natif Parquet. [#70669](https://github.com/ClickHouse/ClickHouse/pull/70669) ([LiuNeng](https://github.com/liuneng1994)).
* Prise en charge de l’analyse de `DateTime64` pour les microsecondes et le fuseau horaire en syntaxe Joda ("joda" est une bibliothèque Java populaire pour la gestion des dates et heures, et la "syntaxe joda" correspond au style de cette bibliothèque). [#70737](https://github.com/ClickHouse/ClickHouse/pull/70737) ([kevinyhzou](https://github.com/KevinyhZou)).
* Changement d’approche pour déterminer si un cloud storage prend en charge la [suppression par lot](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html) ou non. [#70786](https://github.com/ClickHouse/ClickHouse/pull/70786) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge de la page Parquet v2 dans le reader natif. [#70807](https://github.com/ClickHouse/ClickHouse/pull/70807) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout d’une vérification lorsque la table a à la fois `storage_policy` et `disk` définis. Une vérification a également été ajoutée pour s’assurer qu’une nouvelle storage policy est compatible avec l’ancienne lors de l’utilisation du paramètre `disk`. [#70839](https://github.com/ClickHouse/ClickHouse/pull/70839) ([Kirill](https://github.com/kirillgarbar)).
* Ajout de `system.s3_queue_settings` et `system.azure_queue_settings`. [#70841](https://github.com/ClickHouse/ClickHouse/pull/70841) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les fonctions `base58Encode` et `base58Decode` acceptent désormais des arguments de type `FixedString`. Exemple : `SELECT base58Encode(toFixedString('plaintext', 9));`. [#70846](https://github.com/ClickHouse/ClickHouse/pull/70846) ([Faizan Patel](https://github.com/faizan2786)).
* Ajout de la colonne `partition` à chaque type d’entrée du journal des parts. Auparavant, elle n’était définie que pour certaines entrées. Cela corrige [#70819](https://github.com/ClickHouse/ClickHouse/issues/70819). [#70848](https://github.com/ClickHouse/ClickHouse/pull/70848) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout des événements `MergeStart` et `MutateStart` dans `system.part_log`, ce qui facilite l’analyse et la visualisation des merges. [#70850](https://github.com/ClickHouse/ClickHouse/pull/70850) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’un événement de profil concernant le nombre de parts source fusionnées. Cela permet de surveiller le fan-out du merge tree en production. [#70908](https://github.com/ClickHouse/ClickHouse/pull/70908) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les téléchargements en arrière-plan vers le cache du système de fichiers ont été réactivés. [#70929](https://github.com/ClickHouse/ClickHouse/pull/70929) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout d’un nouvel algorithme de merge selector, nommé `Trivial`, réservé à un usage expert. Il est moins performant que le merge selector `Simple`. [#70969](https://github.com/ClickHouse/ClickHouse/pull/70969) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de `CREATE OR REPLACE VIEW` atomique. [#70536](https://github.com/ClickHouse/ClickHouse/pull/70536) ([tuanpach](https://github.com/tuanpach))
* Ajout du mode `strict_once` à la fonction d’agrégation `windowFunnel` pour éviter de compter plusieurs fois un même événement lorsqu’il correspond à plusieurs conditions, corrige [#21835](https://github.com/ClickHouse/ClickHouse/issues/21835). [#69738](https://github.com/ClickHouse/ClickHouse/pull/69738) ([Vladimir Cherkasov](https://github.com/vdimir)).

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

* Applique les mises à jour de configuration dans l’objet de contexte global. Cela corrige des problèmes comme [#62308](https://github.com/ClickHouse/ClickHouse/issues/62308). [#62944](https://github.com/ClickHouse/ClickHouse/pull/62944) ([Amos Bird](https://github.com/amosbird)).
* Corrige le fait que `ReadSettings` n’utilisait pas les valeurs définies par l’utilisateur, car seules les valeurs par défaut étaient prises en compte. [#65625](https://github.com/ClickHouse/ClickHouse/pull/65625) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un problème d’incompatibilité de type dans `sumMapFiltered` lors de l’utilisation d’arguments signés. [#58408](https://github.com/ClickHouse/ClickHouse/pull/58408) ([Chen768959](https://github.com/Chen768959)).
* Corrige la monotonie des fonctions de conversion de type `toHour` lorsqu’un argument optionnel de fuseau horaire est passé. [#60264](https://github.com/ClickHouse/ClickHouse/pull/60264) ([Amos Bird](https://github.com/amosbird)).
* Assouplit la vérification `supportsPrewhere` pour les tables `Merge`. Cela corrige [#61064](https://github.com/ClickHouse/ClickHouse/issues/61064). Elle avait été durcie inutilement dans [#60082](https://github.com/ClickHouse/ClickHouse/issues/60082). [#61091](https://github.com/ClickHouse/ClickHouse/pull/61091) ([Amos Bird](https://github.com/amosbird)).
* Corrige la gestion du paramètre `use_concurrency_control` afin d’appliquer correctement la limite `concurrent_threads_soft_limit_num`. Cela active le contrôle de concurrence par défaut, car il ne fonctionnait pas correctement auparavant. [#61473](https://github.com/ClickHouse/ClickHouse/pull/61473) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige une optimisation incorrecte de la section `JOIN ON` dans le cas d’une vérification `IS NULL` sous une autre fonction (comme `NOT`), ce qui pouvait entraîner des résultats erronés. Clôt [#67915](https://github.com/ClickHouse/ClickHouse/issues/67915). [#68049](https://github.com/ClickHouse/ClickHouse/pull/68049) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Empêche les queries `ALTER` qui rendraient la query `CREATE` des tables invalide. [#68574](https://github.com/ClickHouse/ClickHouse/pull/68574) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige le formatage AST incohérent pour les fonctions `negate` (`-`) et `NOT` avec des tuples et des tableaux. [#68600](https://github.com/ClickHouse/ClickHouse/pull/68600) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige l’insertion d’un type incomplet dans `Dynamic` lors de la désérialisation. Cela pouvait entraîner des erreurs `Parameter out of bound`. [#69291](https://github.com/ClickHouse/ClickHouse/pull/69291) ([Pavel Kruglov](https://github.com/Avogar)).
* La réplication zero-copy, qui est expérimentale et ne doit pas être utilisée en production : corrige une boucle infinie après `restore replica` dans le merge tree répliqué avec zero copy. [#69293](https://github.com/CljmnickHouse/ClickHouse/pull/69293) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Rétablit la valeur par défaut de `processing_threads_num` au nombre de cœurs CPU dans le stockage `S3Queue`. [#69384](https://github.com/ClickHouse/ClickHouse/pull/69384) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Contourne le flux try/catch lors de la dé/sérialisation de Protobuf répétés imbriqués vers des colonnes imbriquées (corrige [#41971](https://github.com/ClickHouse/ClickHouse/issues/41971)). [#69556](https://github.com/ClickHouse/ClickHouse/pull/69556) ([Eliot Hautefeuille](https://github.com/hileef)).
* Corrige un crash lors de l’insertion dans une colonne FixedString du moteur PostgreSQL. [#69584](https://github.com/ClickHouse/ClickHouse/pull/69584) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un crash lors de l’exécution de `create view t as (with recursive 42 as ttt select ttt);`. [#69676](https://github.com/ClickHouse/ClickHouse/pull/69676) ([Han Fei](https://github.com/hanfei1991)).
* Correction de `maxMapState` qui levait 'Bad get' lorsque le type de valeur était DateTime64. [#69787](https://github.com/ClickHouse/ClickHouse/pull/69787) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction de `getSubcolumn` avec les colonnes `LowCardinality` en redéfinissant `useDefaultImplementationForLowCardinalityColumns` pour renvoyer `true`. [#69831](https://github.com/ClickHouse/ClickHouse/pull/69831) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Correction du blocage permanent des envois distribués lorsqu’un DROP de table distribuée échouait. [#69843](https://github.com/ClickHouse/ClickHouse/pull/69843) ([Azat Khuzhin](https://github.com/azat)).
* Correction des requêtes non annulables contenant WITH FILL avec des clés NaN. Cela clôt [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261). [#69845](https://github.com/ClickHouse/ClickHouse/pull/69845) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de la valeur par défaut de l’analyseur pour l’ancienne valeur de compatibilité. [#69895](https://github.com/ClickHouse/ClickHouse/pull/69895) ([Raúl Marín](https://github.com/Algunenano)).
* Ne pas vérifier les dépendances pendant CREATE OR REPLACE VIEW lors du DROP de l’ancienne table. Auparavant, la requête CREATE OR REPLACE échouait lorsqu’il existait des tables dépendantes de la vue recréée. [#69907](https://github.com/ClickHouse/ClickHouse/pull/69907) ([Pavel Kruglov](https://github.com/Avogar)).
* Correctif lié à Decimal. Corrige [#69730](https://github.com/ClickHouse/ClickHouse/issues/69730). [#69978](https://github.com/ClickHouse/ClickHouse/pull/69978) ([Arthur Passos](https://github.com/arthurpassos)).
* Désormais, DEFINER/INVOKER fonctionneront avec les vues paramétrées. [#69984](https://github.com/ClickHouse/ClickHouse/pull/69984) ([pufit](https://github.com/pufit)).
* Correction de l’analyse syntaxique des clauses DEFINER des vues. [#69985](https://github.com/ClickHouse/ClickHouse/pull/69985) ([pufit](https://github.com/pufit)).
* Correction d’un bug où le fuseau horaire pouvait modifier le résultat de la requête avec des arguments `Date` ou `Date32`. [#70036](https://github.com/ClickHouse/ClickHouse/pull/70036) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction de `Block structure mismatch` pour les requêtes avec des vues imbriquées et une condition `WHERE`. Corrige [#66209](https://github.com/ClickHouse/ClickHouse/issues/66209). [#70054](https://github.com/ClickHouse/ClickHouse/pull/70054) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Évite la réutilisation de colonnes entre différents tuples nommés lors de l’évaluation des fonctions `tuple`. Cela corrige [#70022](https://github.com/ClickHouse/ClickHouse/issues/70022). [#70103](https://github.com/ClickHouse/ClickHouse/pull/70103) ([Amos Bird](https://github.com/amosbird)).
* Correction d’un LOGICAL\_ERROR incorrect lors du remplacement de littéraux dans des intervalles. [#70122](https://github.com/ClickHouse/ClickHouse/pull/70122) ([Pablo Marcos](https://github.com/pamarcos)).
* Vérification du type Nullable(Nothing) pendant ALTER TABLE MODIFY COLUMN/QUERY afin d’empêcher les tables avec un tel type de données. [#70123](https://github.com/ClickHouse/ClickHouse/pull/70123) ([Pavel Kruglov](https://github.com/Avogar)).
* Message d’erreur approprié pour la requête illégale `JOIN ... ON *`, clôt [#68650](https://github.com/ClickHouse/ClickHouse/issues/68650). [#70124](https://github.com/ClickHouse/ClickHouse/pull/70124) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Correction d’un résultat incorrect avec un index de saut. [#70127](https://github.com/ClickHouse/ClickHouse/pull/70127) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige une condition de concurrence dans la méthode de décompression de ColumnObject/ColumnTuple pouvant entraîner une utilisation de mémoire après libération sur le tas. [#70137](https://github.com/ClickHouse/ClickHouse/pull/70137) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un possible blocage dans ALTER COLUMN avec le type Dynamic. [#70144](https://github.com/ClickHouse/ClickHouse/pull/70144) ([Pavel Kruglov](https://github.com/Avogar)).
* Désormais, ClickHouse considérera davantage d'erreurs comme pouvant être retentées et ne marquera pas les parties de données comme corrompues dans ce cas. [#70145](https://github.com/ClickHouse/ClickHouse/pull/70145) ([alesapin](https://github.com/alesapin)).
* Utilise le bon paramètre `max_types` lors de la création du type Dynamic pour une sous-colonne JSON. [#70147](https://github.com/ClickHouse/ClickHouse/pull/70147) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige l'affichage du mot de passe dans `system.query_log` pour les utilisateurs utilisant la méthode d'authentification par mot de passe bcrypt. [#70148](https://github.com/ClickHouse/ClickHouse/pull/70148) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige le compteur d'événements de l'interface native (InterfaceNativeSendBytes). [#70153](https://github.com/ClickHouse/ClickHouse/pull/70153) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige un possible crash lié aux colonnes JSON. [#70172](https://github.com/ClickHouse/ClickHouse/pull/70172) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige plusieurs problèmes dans arrayMin et arrayMax. [#70207](https://github.com/ClickHouse/ClickHouse/pull/70207) ([Raúl Marín](https://github.com/Algunenano)).
* Respecte le paramètre allow\_simdjson dans le parseur du type JSON. [#70218](https://github.com/ClickHouse/ClickHouse/pull/70218) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un déréférencement de pointeur nul lors de la création d'une vue matérialisée avec deux SELECT et un `INTERSECT`, par exemple `CREATE MATERIALIZED VIEW v0 AS (SELECT 1) INTERSECT (SELECT 1);`. [#70264](https://github.com/ClickHouse/ClickHouse/pull/70264) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ne modifie plus les paramètres globaux via les scripts de démarrage. Auparavant, la modification d'un paramètre dans un script de démarrage l'affectait globalement. [#70310](https://github.com/ClickHouse/ClickHouse/pull/70310) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige ALTER du type `Dynamic` avec réduction du paramètre max\_types, ce qui pouvait entraîner un crash du serveur. [#70328](https://github.com/ClickHouse/ClickHouse/pull/70328) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige un crash lors d'une utilisation incorrecte de WITH FILL. [#70338](https://github.com/ClickHouse/ClickHouse/pull/70338) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un possible use-after-free dans `SYSTEM DROP FORMAT SCHEMA CACHE FOR Protobuf`. [#70358](https://github.com/ClickHouse/ClickHouse/pull/70358) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un crash lors d'un GROUP BY sur une sous-colonne de sous-objet JSON. [#70374](https://github.com/ClickHouse/ClickHouse/pull/70374) ([Pavel Kruglov](https://github.com/Avogar)).
* Ne précharge pas les parties pour les fusions verticales si la partie ne contient aucune ligne. [#70452](https://github.com/ClickHouse/ClickHouse/pull/70452) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un crash dans WHERE avec des fonctions lambda. [#70464](https://github.com/ClickHouse/ClickHouse/pull/70464) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la création de table avec `CREATE ... AS table_function(...)` dans une base de données `Replicated` quand la source de la fonction de table n'est pas disponible sur la réplique secondaire. [#70511](https://github.com/ClickHouse/ClickHouse/pull/70511) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignorer toute sortie liée à l'async insert avec `wait_for_async_insert=1`. Corrige [#62644](https://github.com/ClickHouse/ClickHouse/issues/62644). [#70530](https://github.com/ClickHouse/ClickHouse/pull/70530) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ignorer frozen\_metadata.txt lors du parcours du répertoire shadow depuis system.remote\_data\_paths. [#70590](https://github.com/ClickHouse/ClickHouse/pull/70590) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corriger la création de fonctions de fenêtre avec état sur une mémoire désalignée. [#70631](https://github.com/ClickHouse/ClickHouse/pull/70631) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige de rares plantages dans les `SELECT` et les fusions après l'ajout d'une colonne de type `Array` avec une expression par défaut non vide. [#70695](https://github.com/ClickHouse/ClickHouse/pull/70695) ([Anton Popov](https://github.com/CurtizJ)).
* L'insert dans la fonction de table s3 respectera les paramètres de requête. [#70696](https://github.com/ClickHouse/ClickHouse/pull/70696) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corriger une récursion infinie lors de l'inférence d'un schéma Protobuf lorsque l'ignorance des champs non pris en charge est activée. [#70697](https://github.com/ClickHouse/ClickHouse/pull/70697) ([Raúl Marín](https://github.com/Algunenano)).
* Désactiver enable\_named\_columns\_in\_function\_tuple par défaut. [#70833](https://github.com/ClickHouse/ClickHouse/pull/70833) ([Raúl Marín](https://github.com/Algunenano)).
* Corriger le fait que le paramètre processing\_threads\_num du moteur de table S3Queue n'était pas pris en compte lorsqu'il était déduit du nombre de cœurs CPU du serveur. [#70837](https://github.com/ClickHouse/ClickHouse/pull/70837) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Normaliser les arguments de `named tuple` dans les états d'agrégation. Cela corrige [#69732](https://github.com/ClickHouse/ClickHouse/issues/69732). [#70853](https://github.com/ClickHouse/ClickHouse/pull/70853) ([Amos Bird](https://github.com/amosbird)).
* Corriger une `logical error` due à des zéros négatifs dans la table de hachage à deux niveaux. Cela clôt [#70973](https://github.com/ClickHouse/ClickHouse/issues/70973). [#70979](https://github.com/ClickHouse/ClickHouse/pull/70979) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corriger `limit by` et `limit with ties` pour le mode distribué et les répliques parallèles. [#70880](https://github.com/ClickHouse/ClickHouse/pull/70880) ([Nikita Taranov](https://github.com/nickitat)).

### <a id="249" /> Version 24.9 de ClickHouse, 2024-09-26. [Présentation](https://presentations.clickhouse.com/2024-release-24.9/), [Vidéo](https://www.youtube.com/watch?v=ray6wJGCHbs)

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

* Les expressions comme `a[b].c` sont prises en charge pour les tuples nommés, ainsi que les accès nommés par indice à partir d'expressions arbitraires, par exemple `expr().name`. Cela est utile pour traiter du JSON. Cela clôt [#54965](https://github.com/ClickHouse/ClickHouse/issues/54965). Dans les versions précédentes, une expression de la forme `expr().name` était analysée comme `tupleElement(expr(), name)`, et le query analyzer recherchait une colonne `name` plutôt que l'élément de tuple correspondant ; dans la nouvelle version, elle devient `tupleElement(expr(), 'name')`. Dans la plupart des cas, l'ancienne version ne fonctionnait pas, mais on peut imaginer un cas très inhabituel où ce changement pourrait entraîner une incompatibilité : si vous stockiez les noms des éléments de tuple dans une colonne ou un alias portant un nom différent de celui de l'élément de tuple : `SELECT 'b' AS a, CAST([tuple(123)] AS 'Array(Tuple(b UInt8))') AS t, t[1].a`. Il est très peu probable que vous utilisiez ce type de requêtes, mais nous devons tout de même signaler ce changement comme potentiellement non rétrocompatible. [#68435](https://github.com/ClickHouse/ClickHouse/pull/68435) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lorsque le paramètre `print_pretty_type_names` est activé, il affiche le Data type `Tuple` sous une forme Pretty dans les instructions `SHOW CREATE TABLE`, la fonction `formatQuery`, ainsi qu'en interactive mode dans `clickhouse-client` et `clickhouse-local`. Dans les versions précédentes, ce paramètre ne s'appliquait qu'aux queries `DESCRIBE` et à `toTypeName`. Cela clôt [#65753](https://github.com/ClickHouse/ClickHouse/issues/65753). [#68492](https://github.com/ClickHouse/ClickHouse/pull/68492) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ne pas autoriser la spécification explicite d'un UUID lors de la création d'une table dans des bases de données `Replicated`. De même, ne pas autoriser la spécification explicite du Keeper path et du nom de replica pour les tables \*MergeTree dans des bases de données `Replicated`. Cela introduit un nouveau paramètre `database_replicated_allow_explicit_uuid` et modifie le type de `database_replicated_allow_replicated_engine_arguments` de Bool à UInt64 [#66104](https://github.com/ClickHouse/ClickHouse/pull/66104) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* Permettre à un utilisateur d’avoir plusieurs méthodes d’authentification au lieu d’une seule. Permettre aussi de réinitialiser les méthodes d’authentification vers la méthode ajoutée le plus récemment. Si vous devez exécuter des instances en 24.8 et une en 24.9 pendant un certain temps, il est préférable de définir `max_authentication_methods_per_user` = 1 pendant cette période afin d’éviter d’éventuelles incompatibilités. [#65277](https://github.com/ClickHouse/ClickHouse/pull/65277) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajouter la prise en charge de `ATTACH PARTITION ALL FROM`. [#61987](https://github.com/ClickHouse/ClickHouse/pull/61987) ([Kirill Nikiforov](https://github.com/allmazz)).
* Ajouter le paramètre `input_format_json_empty_as_default` qui, lorsqu’il est activé, traite les champs vides dans les entrées JSON comme des valeurs par défaut. Résout [#59339](https://github.com/ClickHouse/ClickHouse/issues/59339). [#66782](https://github.com/ClickHouse/ClickHouse/pull/66782) ([Alexis Arnaud](https://github.com/a-a-f)).
* Ajouter les fonctions `overlay` et `overlayUTF8`, qui remplacent une partie d’une chaîne par une autre. Exemple : `SELECT overlay('Hello New York', 'Jersey', 11)` renvoie `Hello New Jersey`. [#66933](https://github.com/ClickHouse/ClickHouse/pull/66933) ([李扬](https://github.com/taiyang-li)).
* Ajouter la prise en charge des lightweight deletes par partition dans `DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE expr; ` [#67805](https://github.com/ClickHouse/ClickHouse/pull/67805) ([sunny](https://github.com/sunny19930321)).
* Implémenter la comparaison des valeurs du type de données `Interval` appartenant à différents domaines (par exemple secondes et minutes), qui sont désormais converties vers le plus petit supertype commun. [#68057](https://github.com/ClickHouse/ClickHouse/pull/68057) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajouter le paramètre `create_if_not_exists` pour utiliser par défaut le comportement `IF NOT EXISTS` lors des instructions CREATE. [#68164](https://github.com/ClickHouse/ClickHouse/pull/68164) ([Peter Nguyen](https://github.com/petern48)).
* Permettre la lecture de tables `Iceberg` dans Azure et en local. [#68210](https://github.com/ClickHouse/ClickHouse/pull/68210) ([Daniil Ivanik](https://github.com/divanik)).
* Les entrées du query cache peuvent désormais être supprimées par tag. Par exemple, l’entrée du query cache créée par `SELECT 1 SETTINGS use_query_cache = true, query_cache_tag = 'abc'` peut maintenant être supprimée avec `SYSTEM DROP QUERY CACHE TAG 'abc'`. [#68477](https://github.com/ClickHouse/ClickHouse/pull/68477) ([Michał Tabaszewski](https://github.com/pinsvin00)).
* Ajouter le chiffrement du stockage pour les named collections. [#68615](https://github.com/ClickHouse/ClickHouse/pull/68615) ([Pablo Marcos](https://github.com/pamarcos)).
* Ajouter la colonne virtuelle `_headers` pour le table engine `URL`. Résout [#65026](https://github.com/ClickHouse/ClickHouse/issues/65026). [#68867](https://github.com/ClickHouse/ClickHouse/pull/68867) ([flynn](https://github.com/ucasfl)).
* Ajouter la table `system.projections` pour suivre les projections disponibles. [#68901](https://github.com/ClickHouse/ClickHouse/pull/68901) ([Jordi Villar](https://github.com/jrdi)).
* Ajouter la nouvelle fonction `arrayZipUnaligned` pour la compatibilité avec Spark (où elle s’appelle `arrays_zip`), qui autorise des Arrays non alignés à partir de `arrayZip`. [#69030](https://github.com/ClickHouse/ClickHouse/pull/69030) ([李扬](https://github.com/taiyang-li)).
* Ajouter les commandes `cp`/`mv` à l’application en ligne de commande du client Keeper, afin de copier/déplacer un nœud de manière atomique. [#69034](https://github.com/ClickHouse/ClickHouse/pull/69034) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Ajoute l’argument `scale` (par défaut : `true`) à la fonction `arrayAUC`, permettant d’ignorer l’étape de normalisation (ticket [#69609](https://github.com/ClickHouse/ClickHouse/issues/69609)). [#69717](https://github.com/ClickHouse/ClickHouse/pull/69717) ([gabrielmcg44](https://github.com/gabrielmcg44)).

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

* Ajoute un paramètre `input_format_try_infer_variants` qui permet d'inférer le type `Variant` lors de l'inférence de schéma pour les formats texte lorsqu'il existe plusieurs types possibles pour les éléments de colonne/tableau. [#63798](https://github.com/ClickHouse/ClickHouse/pull/63798) ([Shaun Struwig](https://github.com/Blargian)).
* Ajoute les fonctions d'agrégation `distinctDynamicTypes`/`distinctJSONPaths`/`distinctJSONPathsAndTypes` pour une meilleure introspection du contenu des colonnes de type JSON. [#68463](https://github.com/ClickHouse/ClickHouse/pull/68463) ([Kruglov Pavel](https://github.com/Avogar)).
* Nouvel algorithme pour déterminer l'unité de distribution des marks entre les répliques parallèles à l'aide d'un hachage cohérent. Différents nombres de marks sont choisis selon les modèles de lecture afin d'améliorer les performances. [#68424](https://github.com/ClickHouse/ClickHouse/pull/68424) ([Nikita Taranov](https://github.com/nickitat)).
* Auparavant, la complexité algorithmique de la logique de déduplication des parts dans la gestion des annonces des répliques parallèles était de O(n^2), ce qui pouvait prendre un temps notable pour les tables comportant de nombreuses parts (ou partitions). Ce changement ramène la complexité à O(n\*log(n)). [#69596](https://github.com/ClickHouse/ClickHouse/pull/69596) ([Alexander Gololobov](https://github.com/davenger)).
* Améliorations des vues matérialisées actualisables : mode append (`... REFRESH EVERY 1 MINUTE APPEND ...`) pour ajouter des lignes à la table existante au lieu d'écraser la table entière, tentatives de nouvelle exécution (désactivées par défaut, configurées dans la section SETTINGS de la query), query `SYSTEM WAIT VIEW <name>` qui attend l'actualisation en cours, ainsi que quelques corrections. [#58934](https://github.com/ClickHouse/ClickHouse/pull/58934) ([Michael Kolupaev](https://github.com/al13n321)).
* Ajout de `min_max` comme nouveau type de statistiques (expérimental). Il permet d'estimer les prédicats de plage sur des colonnes numériques, par ex. `x < 100`. [#67013](https://github.com/ClickHouse/ClickHouse/pull/67013) ([JackyWoo](https://github.com/JackyWoo)).
* Améliore castOrDefault pour les colonnes Variant/Dynamic afin qu'il fonctionne lorsque les types internes ne sont pas convertibles du tout. [#67150](https://github.com/ClickHouse/ClickHouse/pull/67150) ([Kruglov Pavel](https://github.com/Avogar)).
* La réplication d'un sous-ensemble de colonnes est désormais disponible via MaterializedPostgreSQL. Résout [#33748](https://github.com/ClickHouse/ClickHouse/issues/33748). [#69092](https://github.com/ClickHouse/ClickHouse/pull/69092) ([Kruglov Kirill](https://github.com/1on)).

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

* Mise en œuvre de la lecture des seuls fichiers nécessaires pour le partitionnement Hive. [#68963](https://github.com/ClickHouse/ClickHouse/pull/68963) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Amélioration des performances des JOIN en réorganisant la table de droite par clés lorsque les clés de table sont denses dans les hash joins LEFT ou INNER. [#60341](https://github.com/ClickHouse/ClickHouse/pull/60341) ([kevinyhzou](https://github.com/KevinyhZou)).
* Amélioration des performances des ALL JOIN grâce à l’ajout paresseux de la liste des lignes. [#63677](https://github.com/ClickHouse/ClickHouse/pull/63677) ([kevinyhzou](https://github.com/KevinyhZou)).
* Chargement asynchrone des métadonnées du cache du système de fichiers pendant le démarrage afin d’accélérer les redémarrages (contrôlé par le paramètre `load_metadata_asynchronously`). [#65736](https://github.com/ClickHouse/ClickHouse/pull/65736) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Les fonctions `array` et `map` ont été optimisées pour traiter beaucoup plus rapidement certains cas courants. [#67707](https://github.com/ClickHouse/ClickHouse/pull/67707) ([李扬](https://github.com/taiyang-li)).
* Optimisation mineure de la lecture des chaînes ORC, en particulier lorsqu’une colonne ne contient aucune valeur NULL. [#67794](https://github.com/ClickHouse/ClickHouse/pull/67794) ([李扬](https://github.com/taiyang-li)).
* Amélioration des performances globales des fusions en réduisant le surcoût lié à l’ordonnancement des étapes de fusion. [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)).
* Accélération des requêtes vers S3 lorsqu’aucun profil n’est défini, qu’aucune information d’authentification n’est définie et que l’IMDS n’est pas disponible (par exemple, lorsque vous interrogez un bucket public depuis une machine hors d’un cloud). Cela clôt [#52771](https://github.com/ClickHouse/ClickHouse/issues/52771). [#68082](https://github.com/ClickHouse/ClickHouse/pull/68082) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dévirtualisation du lecteur de format dans `RowInputFormatWithNamesAndTypes` afin d’améliorer les performances. [#68437](https://github.com/ClickHouse/ClickHouse/pull/68437) ([李扬](https://github.com/taiyang-li)).
* Ajout de la fusion en parallèle pour la aggregate function `uniq` lors d’une agrégation avec une clé de regroupement afin de maximiser l’utilisation du CPU. [#68441](https://github.com/ClickHouse/ClickHouse/pull/68441) ([Jiebin Sun](https://github.com/jiebinn)).
* Ajout du paramètre `output_format_orc_dictionary_key_size_threshold` pour permettre à l’utilisateur d’activer l’encodage par dictionnaire pour une colonne de type chaîne dans le output format `ORC`. Cela contribue à réduire significativement la taille du fichier `ORC` de sortie et à améliorer les performances de lecture. [#68591](https://github.com/ClickHouse/ClickHouse/pull/68591) ([李扬](https://github.com/taiyang-li)).
* Introduction de la nouvelle requête Keeper RemoveRecursive, qui supprime un nœud avec l’ensemble de son sous-arbre. [#69332](https://github.com/ClickHouse/ClickHouse/pull/69332) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Accélération des insertions dans une table dotée d’un vector similarity index grâce à l’ajout des données à l’index vectoriel en parallèle. [#69493](https://github.com/ClickHouse/ClickHouse/pull/69493) ([flynn](https://github.com/ucasfl)).
* Réduction de l’utilisation mémoire des insertions en JSON grâce à une taille de tampon d’écriture adaptative. De nombreux fichiers créés par une JSON column dans une Wide part contiennent peu de données, et il n’est pas pertinent de leur allouer un tampon de 1 Mo. [#69272](https://github.com/ClickHouse/ClickHouse/pull/69272) ([Kruglov Pavel](https://github.com/Avogar)).
* Évite de restituer un thread au threadpool du concurrent hash join afin qu’une query ne crée pas un nombre excessif de threads. [#69406](https://github.com/ClickHouse/ClickHouse/pull/69406) ([Duc Canh Le](https://github.com/canhld94)).

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

* CREATE TABLE AS copie désormais PRIMARY KEY, ORDER BY et les clauses similaires. Pour l’instant, cette prise en charge est limitée à la famille de moteurs de table MergeTree. [#69076](https://github.com/ClickHouse/ClickHouse/pull/69076) ([sakulali](https://github.com/sakulali)).
* Renforcement de certaines parties du codebase liées à l’analyse syntaxique de petites entités. Les bogues (mineurs) suivants ont été détectés et corrigés : - si une table `DeltaLake` est partitionnée par Bool, la valeur de partition est toujours interprétée comme false ; - la table `ExternalDistributed` n’utilisait qu’un seul shard parmi les adresses fournies ; la valeur du paramètre `max_threads` et d’autres paramètres similaires s’affichait sous la forme `'auto(N)'` au lieu de `auto(N)`. [#52503](https://github.com/ClickHouse/ClickHouse/pull/52503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Utilisation de métriques spécifiques aux cgroups pour le calcul de l’utilisation CPU au lieu de métriques système globales. [#62003](https://github.com/ClickHouse/ClickHouse/pull/62003) ([Nikita Taranov](https://github.com/nickitat)).
* La planification des E/S pour les disques S3 distants s’effectue désormais au niveau des flux de sockets HTTP (au lieu de requêtes S3 entières) afin de résoudre les problèmes de limitation de débit liés à `bandwidth_limit`. [#65182](https://github.com/ClickHouse/ClickHouse/pull/65182) ([Sergei Trifonov](https://github.com/serxa)).
* Les fonctions `upperUTF8` et `lowerUTF8` ne pouvaient auparavant convertir en majuscules / minuscules que les caractères cyrilliques. Cette limitation a désormais été levée, et les caractères de n’importe quelle langue sont maintenant convertis correctement en majuscules/minuscules. Exemple : `SELECT upperUTF8('Süden')` renvoie maintenant `SÜDEN`. [#65761](https://github.com/ClickHouse/ClickHouse/pull/65761) ([李扬](https://github.com/taiyang-li)).
* Lorsqu’un lightweight delete se produit sur une table avec une ou plusieurs projections, les utilisateurs avaient jusqu’ici deux possibilités : lever une exception (par défaut) ou supprimer la projection au moment du lightweight delete. Une troisième option est désormais disponible : conserver le lightweight delete, puis reconstruire la ou les projections. [#66169](https://github.com/ClickHouse/ClickHouse/pull/66169) ([jsc0218](https://github.com/jsc0218)).
* Deux options (`dns_allow_resolve_names_to_ipv4` et `dns_allow_resolve_names_to_ipv6`) ont été ajoutées pour permettre de bloquer les connexions selon la famille d’IP. [#66895](https://github.com/ClickHouse/ClickHouse/pull/66895) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Le comportement d’ignorance de Ctrl-Z (ignore\_shell\_suspend) dans clickhouse-client est désormais configurable. [#67134](https://github.com/ClickHouse/ClickHouse/pull/67134) ([Azat Khuzhin](https://github.com/azat)).
* Amélioration de la validation UTF-8 dans les formats de sortie JSON. Cela garantit qu’un JSON valide est généré en présence de certaines séquences d’octets dans les données de résultat. [#67938](https://github.com/ClickHouse/ClickHouse/pull/67938) ([mwoenker](https://github.com/mwoenker)).
* Ajout de profile events pour les merges et les mutations afin d’améliorer l’introspection. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)).
* ODBC : récupérer http\_max\_tries depuis la configuration du serveur. [#68128](https://github.com/ClickHouse/ClickHouse/pull/68128) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)).
* Ajout de la prise en charge des caractères génériques pour l’identification des utilisateurs dans l’extension X.509 SubjectAltName. [#68236](https://github.com/ClickHouse/ClickHouse/pull/68236) ([Marco Vilas Boas](https://github.com/marco-vb)).
* Amélioration de l’inférence de schéma pour les valeurs de date time. Désormais, `DateTime64` n’est utilisé que lorsque la valeur de date time comporte une partie fractionnaire ; sinon, le type DateTime classique est utilisé. L’inférence de Date/DateTime est également plus stricte, en particulier lorsque `date_time_input_format='best_effort'`, afin d’éviter d’inférer des valeurs de date time à partir de chaînes dans certains cas limites. [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)).
* Supprime l’ancien code des named collections dans les dictionnaires et le remplace par le nouveau, ce qui permet d’utiliser dans les dictionnaires des named collections créées en DDL. Clôture [#60936](https://github.com/ClickHouse/ClickHouse/issues/60936), clôture [#36890](https://github.com/ClickHouse/ClickHouse/issues/36890). [#68412](https://github.com/ClickHouse/ClickHouse/pull/68412) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Utilise HTTP/1.1 au lieu de HTTP/1.0 (défini par défaut) pour les authentificateurs HTTP externes. [#68456](https://github.com/ClickHouse/ClickHouse/pull/68456) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Ajout d’un nouvel ensemble de métriques pour l’introspection du pool de threads, offrant des informations plus détaillées sur ses performances et son comportement. [#68674](https://github.com/ClickHouse/ClickHouse/pull/68674) ([filimonov](https://github.com/filimonov)).
* Prise en charge des paramètres de requête dans les async inserts au format `Values`. [#68741](https://github.com/ClickHouse/ClickHouse/pull/68741) ([Anton Popov](https://github.com/CurtizJ)).
* Prise en charge de `Date32` dans `dateTrunc` et `toStartOfInterval`. [#68874](https://github.com/ClickHouse/ClickHouse/pull/68874) ([LiuNeng](https://github.com/liuneng1994)).
* Ajoute les colonnes `plan_step_name` et `plan_step_description` à `system.processors_profile_log`. [#68954](https://github.com/ClickHouse/ClickHouse/pull/68954) ([Alexander Gololobov](https://github.com/davenger)).
* Prise en charge de l’espagnol dans les dictionnaires intégrés. [#69035](https://github.com/ClickHouse/ClickHouse/pull/69035) ([Vasily Okunev](https://github.com/VOkunev)).
* Ajoute l’architecture CPU au message court d’information sur les pannes. [#69037](https://github.com/ClickHouse/ClickHouse/pull/69037) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Les requêtes échoueront plus rapidement s’il est impossible d’établir une nouvelle connexion à Keeper pendant les retries. [#69148](https://github.com/ClickHouse/ClickHouse/pull/69148) ([Raúl Marín](https://github.com/Algunenano)).
* Met à jour Database Factory afin de permettre aux database engines définis par l’utilisateur d’avoir des arguments, des settings et des surcharges de table (comme StorageFactory). [#69201](https://github.com/ClickHouse/ClickHouse/pull/69201) ([NikBarykin](https://github.com/NikBarykin)).
* Le mode restore qui remplace tous les table engines externes et les fonctions par le moteur `Null` (paramètres `restore_replace_external_engines_to_null`, `restore_replace_external_table_functions_to_null`) échouait si la table contenait SETTINGS. Désormais, il supprime les settings de la définition de table dans ce cas et permet de restaurer ces tables. [#69253](https://github.com/ClickHouse/ClickHouse/pull/69253) ([Ilya Yatsishin](https://github.com/qoega)).
* CLICKHOUSE\_PASSWORD est correctement échappé pour XML dans le point d’entrée de l’image clickhouse. [#69301](https://github.com/ClickHouse/ClickHouse/pull/69301) ([aohoyd](https://github.com/aohoyd)).
* Autorise les arguments vides pour `arrayZip`/`arrayZipUnaligned`, comme c’était déjà le cas pour concat dans [https://github.com/ClickHouse/ClickHouse/pull/65887](https://github.com/ClickHouse/ClickHouse/pull/65887). Cela vise la compatibilité avec Spark dans Gluten CH Backend. [#69576](https://github.com/ClickHouse/ClickHouse/pull/69576) ([李扬](https://github.com/taiyang-li)).
* Prise en charge d’options SSL plus avancées pour la communication interne de Keeper (par exemple, des private keys avec passphrase). [#69582](https://github.com/ClickHouse/ClickHouse/pull/69582) ([Antonio Andelic](https://github.com/antonio2368)).
* L’analyse des index peut prendre un temps notable sur les grandes tables comportant de nombreuses parts ou partitions. Cette modification devrait permettre d’interrompre une requête lourde à cette étape. [#69606](https://github.com/ClickHouse/ClickHouse/pull/69606) ([Alexander Gololobov](https://github.com/davenger)).
* Masquage des informations sensibles dans la table function `gcs`. [#69611](https://github.com/ClickHouse/ClickHouse/pull/69611) ([Vitaly Baranov](https://github.com/vitlibar)).
* Reconstruire la projection lors des fusions qui réduisent le nombre de lignes. [#62364](https://github.com/ClickHouse/ClickHouse/pull/62364) ([cangyin](https://github.com/cangyin)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-3">
  #### correction de bug
</div>

* Correction de l’attachement d’une table lorsque `pg dbname` contient `-` dans le moteur MaterializedPostgreSQL expérimental et non pris en charge. [#62730](https://github.com/ClickHouse/ClickHouse/pull/62730) ([takakawa](https://github.com/takakawa)).
* Correction d’une erreur sur les colonnes générées dans le moteur MaterializedPostgreSQL expérimental et totalement non pris en charge lorsque l’ordre de `adnum` est incorrect [#63161](https://github.com/ClickHouse/ClickHouse/issues/63161). Correction d’une erreur sur la colonne `id` avec l’expression `nextval` comme valeur par défaut dans MaterializedPostgreSQL expérimental et totalement non pris en charge lorsqu’une table contient des colonnes générées. Correction d’une erreur lors de la suppression d’une publication contenant des symboles autres que \[a-z1-9-]. [#67664](https://github.com/ClickHouse/ClickHouse/pull/67664) ([Kruglov Kirill](https://github.com/1on)).
* Storage Join prend désormais en charge les colonnes `Nullable` dans la table de gauche, corrige [#61247](https://github.com/ClickHouse/ClickHouse/issues/61247). [#66926](https://github.com/ClickHouse/ClickHouse/pull/66926) ([vdimir](https://github.com/vdimir)).
* Résultat de requête incorrect avec les répliques parallèles (y compris la distribution des requêtes) lorsque l’opérateur `IN` contient une conversion en `Decimal()`. Le bug a été introduit avec le nouvel analyseur. [#67234](https://github.com/ClickHouse/ClickHouse/pull/67234) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction du problème où `ALTER MODIFY ORDER BY` provoque des métadonnées incohérentes. [#67436](https://github.com/ClickHouse/ClickHouse/pull/67436) ([iceFireser](https://github.com/iceFireser)).
* Correction de la borne supérieure de la fonction `fromModifiedJulianDay`. Elle était censée être `9999-12-31`, mais avait été définie par erreur à `9999-01-01`. [#67583](https://github.com/ClickHouse/ClickHouse/pull/67583) ([PHO](https://github.com/depressed-pho)).
* Correction du cas où l’index n’est pas au début du tuple dans une requête `IN`. [#67626](https://github.com/ClickHouse/ClickHouse/pull/67626) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction de l’expiration dans `RoleCache`. [#67748](https://github.com/ClickHouse/ClickHouse/pull/67748) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction des blocks manquants dans window view en raison d’un flush trop lent vers la vue. [#67983](https://github.com/ClickHouse/ClickHouse/pull/67983) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’un problème MSan causé par un format de date incorrect. [#68105](https://github.com/ClickHouse/ClickHouse/pull/68105) ([JackyWoo](https://github.com/JackyWoo)).
* Correction d’un crash dans le filtrage Parquet lorsque les types de données du fichier diffèrent sensiblement des types demandés (par ex. `... FROM file('a.parquet', Parquet, 'x String')`, alors que le fichier contient `x Int64`). Sans ce correctif, utilisez `input_format_parquet_filter_push_down = 0` comme solution de contournement. [#68131](https://github.com/ClickHouse/ClickHouse/pull/68131) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction d’un crash dans `lag`/`lead`, introduit dans [#67091](https://github.com/ClickHouse/ClickHouse/issues/67091). [#68262](https://github.com/ClickHouse/ClickHouse/pull/68262) ([lgbo](https://github.com/lgbo-ustc)).
* Tentative de correction d’un crash de Postgres lorsqu’une requête est annulée. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Après [https://github.com/ClickHouse/ClickHouse/pull/61984](https://github.com/ClickHouse/ClickHouse/pull/61984), `schema_inference_make_columns_nullable=0` pouvait toujours rendre des colonnes `Nullable` dans les formats Parquet/Arrow. Ce changement n’était pas rétrocompatible, et les utilisateurs ont remarqué ce changement de comportement. Cette PR rétablit le fonctionnement précédent de `schema_inference_make_columns_nullable=0` (aucune colonne `Nullable` ne sera inférée) et introduit une nouvelle valeur, `auto`, pour ce paramètre, qui rendra les colonnes `Nullable` uniquement si les données contiennent des informations sur la nullabilité. [#68298](https://github.com/ClickHouse/ClickHouse/pull/68298) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige [#50868](https://github.com/ClickHouse/ClickHouse/issues/50868). De petites valeurs constantes DateTime64 renvoyées par une sous-requête imbriquée dans une distributed query étaient transformées à tort en NULL, ce qui provoquait des erreurs et pouvait produire des résultats de requête incorrects. [#68323](https://github.com/ClickHouse/ClickHouse/pull/68323) ([Shankar](https://github.com/shiyer7474)).
* Corrige l’absence du mode sync replica dans la requête `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige un bogue dans la condition de clé. [#68354](https://github.com/ClickHouse/ClickHouse/pull/68354) ([Han Fei](https://github.com/hanfei1991)).
* Corrige un crash lors de la suppression ou du renommage d’un rôle utilisé dans le répertoire externe d’utilisateurs LDAP. [#68355](https://github.com/ClickHouse/ClickHouse/pull/68355) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrige une valeur supérieure à 1 dans la colonne Progress de system.view\_refreshes [#68377](https://github.com/ClickHouse/ClickHouse/issues/68377). [#68378](https://github.com/ClickHouse/ClickHouse/pull/68378) ([megao](https://github.com/jetgm)).
* Traite correctement les indicateurs regexp. [#68389](https://github.com/ClickHouse/ClickHouse/pull/68389) ([Han Fei](https://github.com/hanfei1991)).
* L’opérateur de transtypage de style PostgreSQL (`::`) fonctionne correctement même avec les littéraux hexadécimaux de style SQL et les littéraux de chaînes binaires (par ex. `SELECT x'414243'::String`). Cela corrige également [#68324](https://github.com/ClickHouse/ClickHouse/issues/68324). [#68482](https://github.com/ClickHouse/ClickHouse/pull/68482) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correctif mineur pour [https://github.com/ClickHouse/ClickHouse/pull/68131](https://github.com/ClickHouse/ClickHouse/pull/68131). [#68494](https://github.com/ClickHouse/ClickHouse/pull/68494) ([Chang chen](https://github.com/baibaichen)).
* Corrige [#68239](https://github.com/ClickHouse/ClickHouse/issues/68239) pour SAMPLE n lorsque n est un entier. [#68499](https://github.com/ClickHouse/ClickHouse/pull/68499) ([Denis Hananein](https://github.com/denis-hananein)).
* Corrige un bogue dans mann-whitney-utest lorsque la taille des deux distributions n’est pas égale. [#68556](https://github.com/ClickHouse/ClickHouse/pull/68556) ([Han Fei](https://github.com/hanfei1991)).
* Après un redémarrage inattendu, corrige l’échec du démarrage de la réplication de ReplicatedMergeTree dû à une gestion anormale d’une part couverte par une part endommagée. [#68584](https://github.com/ClickHouse/ClickHouse/pull/68584) ([baolin](https://github.com/baolinhuang)).
* Corrige les `LOGICAL_ERROR` lorsque les fonctions `sipHash64Keyed`, `sipHash128Keyed` ou `sipHash128ReferenceKeyed` sont appliquées à des tableaux ou des tuples vides. [#68630](https://github.com/ClickHouse/ClickHouse/pull/68630) ([Robert Schulze](https://github.com/rschu1ze)).
* L’index de texte intégral peut filtrer les mauvaises colonnes lors de l’indexation de plusieurs colonnes, car il ne réinitialisait pas row\_id entre les différentes colonnes ; la procédure de reproduction se trouve dans tests/queries/0\_stateless/03228\_full\_text\_with\_multi\_col.sql. Sans cela. [#68644](https://github.com/ClickHouse/ClickHouse/pull/68644) ([siyuan](https://github.com/linkwk7)).
* Corrige les caractères invalides '\t' et '\n' dans replica\_name lors de la création d’une table Replicated, ce qui provoque une analyse incorrecte de 'source replica' dans LogEntry. Mentionné dans l’issue [#68640](https://github.com/ClickHouse/ClickHouse/issues/68640). [#68645](https://github.com/ClickHouse/ClickHouse/pull/68645) ([Zhigao Hong](https://github.com/zghong)).
* Rétablissement des colonnes virtuelles ` _table` et `_database` dans les tables distribuées. Elles étaient disponibles jusqu’à la version 24.3. [#68672](https://github.com/ClickHouse/ClickHouse/pull/68672) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une erreur possible `Size of permutation (0) is less than required (...)` lors de la permutation d’une colonne Variant. [#68681](https://github.com/ClickHouse/ClickHouse/pull/68681) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une erreur possible `DB::Exception: Block structure mismatch in joined block stream: different columns:` avec la nouvelle colonne JSON. [#68686](https://github.com/ClickHouse/ClickHouse/pull/68686) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un problème lié aux clés constantes matérialisées lors du hachage de maps avec des arrays comme clés dans les fonctions `sipHash(64/128)Keyed`. [#68731](https://github.com/ClickHouse/ClickHouse/pull/68731) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* `ColumnsDescription::toString` formate désormais chaque colonne à l’aide du même objet `IAST::FormatState`. Cela permet d’écrire sur disque et dans ZooKeeper des métadonnées de colonnes uniformes. [#68733](https://github.com/ClickHouse/ClickHouse/pull/68733) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Correction de la fusion des données agrégées pour les grouping sets. [#68744](https://github.com/ClickHouse/ClickHouse/pull/68744) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une erreur logique lors de la création d’un MergeTree répliqué, de la modification d’une colonne, puis de l’exécution de modify statistics. [#68820](https://github.com/ClickHouse/ClickHouse/pull/68820) ([Han Fei](https://github.com/hanfei1991)).
* Correction de la résolution des sous-colonnes Dynamic depuis des sous-requêtes dans l’analyseur. [#68824](https://github.com/ClickHouse/ClickHouse/pull/68824) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l’analyse des métadonnées de types complexes dans DeltaLake. Clôt [#68739](https://github.com/ClickHouse/ClickHouse/issues/68739). [#68836](https://github.com/ClickHouse/ClickHouse/pull/68836) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction des insertions asynchrones lorsque les métadonnées d’une table sont modifiées (par des requêtes `ALTER ADD/MODIFY COLUMN`) après l’insert, mais avant l’écriture dans la table. [#68837](https://github.com/ClickHouse/ClickHouse/pull/68837) ([Anton Popov](https://github.com/CurtizJ)).
* Correction d’une exception inattendue lors du passage d’un tuple vide dans un array. Cela corrige [#68618](https://github.com/ClickHouse/ClickHouse/issues/68618). [#68848](https://github.com/ClickHouse/ClickHouse/pull/68848) ([Amos Bird](https://github.com/amosbird)).
* Correction de l’analyse des commandes de mutation portant uniquement sur les métadonnées. [#68935](https://github.com/ClickHouse/ClickHouse/pull/68935) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction d’un résultat potentiellement erroné lors de la fusion de l’état anyHeavy. [#68950](https://github.com/ClickHouse/ClickHouse/pull/68950) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l’écriture dans les vues matérialisées lorsque le paramètre `optimize_functions_to_subcolumns` est activé. [#68951](https://github.com/ClickHouse/ClickHouse/pull/68951) ([Anton Popov](https://github.com/CurtizJ)).
* Le cache des sérialisations n’est plus utilisé dans les méthodes const des colonnes Dynamic. Cela pouvait entraîner l’utilisation d’une valeur non initialisée, voire une situation de concurrence pendant les agrégations. [#68953](https://github.com/ClickHouse/ClickHouse/pull/68953) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une erreur d’analyse lorsque null doit, dans certains cas, être inséré comme valeur par défaut lors de l’analyse du type JSON. [#68955](https://github.com/ClickHouse/ClickHouse/pull/68955) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l’absence d’envoi de `Content-Encoding` dans certaines réponses compressées. [#64802](https://github.com/ClickHouse/ClickHouse/issues/64802). [#68975](https://github.com/ClickHouse/ClickHouse/pull/68975) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Dans certains cas, le chemin était concaténé incorrectement et contenait la séquence `//` ; ce problème est résolu grâce à la normalisation du chemin. [#69066](https://github.com/ClickHouse/ClickHouse/pull/69066) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction d’une erreur logique en présence d’un async insert vide. [#69080](https://github.com/ClickHouse/ClickHouse/pull/69080) ([Han Fei](https://github.com/hanfei1991)).
* Correction d’une data race dans l’indication de progression de clickhouse-client lors de l’annulation d’une requête. [#69081](https://github.com/ClickHouse/ClickHouse/pull/69081) ([Sergei Trifonov](https://github.com/serxa)).
* Correction d’un bug empêchant l’utilisation du vector similarity index (actuellement Experimental) lorsqu’il était utilisé avec cosine distance comme fonction de distance. [#69090](https://github.com/ClickHouse/ClickHouse/pull/69090) ([flynn](https://github.com/ucasfl)).
* Cette modification corrige un problème où une nouvelle tentative de création d’une base de données Replicated après une défaillance du serveur pendant le processus de création initial pouvait entraîner une erreur. [#69102](https://github.com/ClickHouse/ClickHouse/pull/69102) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ne pas inférer le type Bool à partir de String dans les CSV lorsque `input_format_csv_try_infer_numbers_from_strings = 1`, car la lecture de valeurs Bool à partir de chaînes n’est pas autorisée. [#69109](https://github.com/ClickHouse/ClickHouse/pull/69109) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction des erreurs d’analyse des requêtes `explain ast insert` côté client lorsque `--multiquery` est activé. [#69123](https://github.com/ClickHouse/ClickHouse/pull/69123) ([wxybear](https://github.com/wxybear)).
* La clause `UNION` dans les subqueries n’était pas gérée correctement dans les requêtes avec parallel replicas et entraînait l’erreur LOGICAL\_ERROR `Duplicate announcement received for replica`. [#69146](https://github.com/ClickHouse/ClickHouse/pull/69146) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction de la propagation de l’argument structure dans s3Cluster. Auparavant, l’expression `DEFAULT` de la colonne pouvait être perdue lors de l’envoi de la requête aux répliques dans s3Cluster. [#69147](https://github.com/ClickHouse/ClickHouse/pull/69147) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en compte des paramètres de format dans le format Values lors de la conversion d’une expression vers le type de destination. [#69149](https://github.com/ClickHouse/ClickHouse/pull/69149) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de `clickhouse-client --queries-file` pour les utilisateurs readonly (échouait auparavant avec `Cannot modify 'log_comment' setting in readonly mode`). [#69175](https://github.com/ClickHouse/ClickHouse/pull/69175) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’une data race dans clickhouse-client lorsqu’il est redirigé vers un processus qui s’est terminé prématurément. [#69186](https://github.com/ClickHouse/ClickHouse/pull/69186) ([vdimir](https://github.com/vdimir)).
* Correction de résultats incorrects pour `uniq` et `GROUP BY` avec les types JSON/Dynamic. [#69203](https://github.com/ClickHouse/ClickHouse/pull/69203) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la détection du format INFILE pour les asynchronous inserts. Si le format n’est pas défini explicitement dans la clause FORMAT, il peut être détecté à partir de l’extension du fichier INFILE. [#69237](https://github.com/ClickHouse/ClickHouse/pull/69237) ([Julia Kartseva](https://github.com/jkartseva)).
* Après [ce problème](https://github.com/ClickHouse/ClickHouse/pull/59946#issuecomment-1943653197), on trouve en production un grand nombre de répliques de table dont la valeur du nœud `metadata_version` est à la fois égale à `0` et différente de la version du nœud `metadata` de la table correspondante. Cela entraîne l’échec des requêtes `alter` sur ces répliques. [#69274](https://github.com/ClickHouse/ClickHouse/pull/69274) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Marquer le type Dynamic comme un type de clé primaire non sûr afin d’éviter les problèmes avec Fields. [#69311](https://github.com/ClickHouse/ClickHouse/pull/69311) ([Kruglov Pavel](https://github.com/Avogar)).
* Améliorer la restauration des dépendances des entités d’accès. [#69346](https://github.com/ClickHouse/ClickHouse/pull/69346) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corriger un comportement indéfini lorsque toutes les tentatives de connexion échouent au moment d’obtenir une connexion pour des insertions. [#69390](https://github.com/ClickHouse/ClickHouse/pull/69390) ([Pablo Marcos](https://github.com/pamarcos)).
* Ferme [#69135](https://github.com/ClickHouse/ClickHouse/issues/69135). Si l’on essaie de réutiliser des données jointes pour une jointure `cross`, cela ne peut toutefois pas se produire dans ClickHouse à l’heure actuelle. Il vaut mieux conserver `have_compressed` dans `reuseJoinedData`. [#69404](https://github.com/ClickHouse/ClickHouse/pull/69404) ([lgbo](https://github.com/lgbo-ustc)).
* Faire en sorte que la fonction `materialize()` renvoie une full column lorsque le paramètre est une colonne sparse. [#69429](https://github.com/ClickHouse/ClickHouse/pull/69429) ([Alexander Gololobov](https://github.com/davenger)).
* Correction d’une `LOGICAL_ERROR` dans la fonction `sqidDecode` ([#69450](https://github.com/ClickHouse/ClickHouse/issues/69450)). [#69451](https://github.com/ClickHouse/ClickHouse/pull/69451) ([Robert Schulze](https://github.com/rschu1ze)).
* Correctif rapide pour un problème de s3queue en 24.6 ou pour une requête CREATE avec une base de données replicated. [#69454](https://github.com/ClickHouse/ClickHouse/pull/69454) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un cas où la consommation de mémoire était trop élevée à cause du squashing dans les requêtes `INSERT INTO ... SELECT` ou `CREATE TABLE AS SELECT`. [#69469](https://github.com/ClickHouse/ClickHouse/pull/69469) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Les instructions `SHOW COLUMNS` et `SHOW INDEX` fonctionnent désormais correctement si le nom de la table contient des points. [#69514](https://github.com/ClickHouse/ClickHouse/pull/69514) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* L’utilisation du query cache pour les requêtes avec un mode d’overflow != 'throw' est désormais interdite. Cela évite que des résultats de requête potentiellement tronqués et incorrects ne soient stockés dans le query cache. (issue [#67476](https://github.com/ClickHouse/ClickHouse/issues/67476)). [#69549](https://github.com/ClickHouse/ClickHouse/pull/69549) ([Robert Schulze](https://github.com/rschu1ze)).
* Conserver l’ordre d’origine des conditions lors du déplacement vers prewhere. Auparavant, l’ordre pouvait changer, ce qui pouvait entraîner l’échec de requêtes lorsque cet ordre est important. [#69560](https://github.com/ClickHouse/ClickHouse/pull/69560) ([Kruglov Pavel](https://github.com/Avogar)).
* Corriger le prétraitement des requêtes multiples de Keeper après une erreur ZNOAUTH. [#69627](https://github.com/ClickHouse/ClickHouse/pull/69627) ([Antonio Andelic](https://github.com/antonio2368)).
* Corriger `METADATA&#95;MISMATCH`, qui pouvait survenir à cause de TTL avec une clause WHERE dans DatabaseReplicated lors de la création d’une nouvelle replica. [#69736](https://github.com/ClickHouse/ClickHouse/pull/69736) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corriger le paramètre `tracked_file_ttl_sec` de `StorageS3(Azure)Queue`. Nous l’écrivions dans Keeper avec la clé `tracked_file_ttl_sec`, mais le lisions comme `tracked_files_ttl_sec`, ce qui était une faute de frappe. [#69742](https://github.com/ClickHouse/ClickHouse/pull/69742) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Utiliser tryconvertfieldtotype dans gethyperrectangleforrowgroup. [#69745](https://github.com/ClickHouse/ClickHouse/pull/69745) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Annulation de "Fix prewhere without columns and without adaptive index granularity (almost w/o anything)"'. En raison de ce retour en arrière, des erreurs peuvent survenir lors de la lecture de parties de données produites par d'anciennes versions de ClickHouse (probablement 2021 ou antérieures). [#68897](https://github.com/ClickHouse/ClickHouse/pull/68897) ([Alexander Gololobov](https://github.com/davenger)).

### <a id="248" /> version de ClickHouse 24.8 LTS, 2024-08-20. [Presentation](https://presentations.clickhouse.com/2024-release-24.8/), [Video](https://www.youtube.com/watch?v=AeLmp2jc51k)

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

* `clickhouse-client` et `clickhouse-local` utilisent désormais le mode multi-requête par défaut (au lieu du mode requête unique). Par exemple, `clickhouse-client -q "SELECT 1; SELECT 2"` fonctionne désormais, alors qu’auparavant il fallait ajouter `--multiquery` (ou `-n`). L’option `--multiquery/-n` est devenue obsolète. Les requêtes INSERT dans des instructions multi-requêtes sont traitées différemment selon leur clause FORMAT : si le FORMAT est `VALUES` (le cas le plus courant), la fin de l’instruction INSERT est marquée par un point-virgule final `;` à la fin de la requête. Pour tous les autres FORMATs (par ex. `CSV` ou `JSONEachRow`), la fin de l’instruction INSERT est marquée par deux sauts de ligne `\n\n` à la fin de la requête. [#63898](https://github.com/ClickHouse/ClickHouse/pull/63898) ([FFish](https://github.com/wxybear)).
* Dans les versions précédentes, il était possible d’utiliser une syntaxe alternative pour les types de données `LowCardinality` en ajoutant `WithDictionary` au nom du type de données. Il s’agissait d’une première implémentation fonctionnelle, qui n’a jamais été documentée ni exposée publiquement. Elle est désormais dépréciée. Si vous avez utilisé cette syntaxe, vous devez exécuter ALTER sur vos tables et renommer les types de données en `LowCardinality`. [#66842](https://github.com/ClickHouse/ClickHouse/pull/66842) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d’erreurs logiques avec le moteur `Buffer` utilisé avec une table de destination distribuée. Il s’agit d’un changement non rétrocompatible : les requêtes utilisant `Buffer` avec une table de destination distribuée peuvent cesser de fonctionner si la table apparaît plus d’une fois dans la requête (par ex. dans une auto-jointure). [#67015](https://github.com/ClickHouse/ClickHouse/pull/67015) ([vdimir](https://github.com/vdimir)).
* Dans les versions précédentes, l’appel de fonctions de distributions aléatoires basées sur la fonction gamma (comme Chi-Squared, Student, Fisher) avec des arguments négatifs proches de zéro entraînait des calculs très longs ou une boucle infinie. Dans la nouvelle version, appeler ces fonctions avec des arguments nuls ou négatifs produira une exception. Cela clôt [#67297](https://github.com/ClickHouse/ClickHouse/issues/67297). [#67326](https://github.com/ClickHouse/ClickHouse/pull/67326) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La table système `text_log` est activée par défaut. Cela reste entièrement compatible avec les versions précédentes, mais vous pourriez constater une légère augmentation de l’utilisation du disque local (cette table système n’occupe qu’une très petite quantité d’espace disque). [#67428](https://github.com/ClickHouse/ClickHouse/pull/67428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans les versions précédentes, `arrayWithConstant` pouvait être lent lorsqu’il devait générer de très grands tableaux. Dans la nouvelle version, il est limité à 1 Go par tableau. Cela clôt [#32754](https://github.com/ClickHouse/ClickHouse/issues/32754). [#67741](https://github.com/ClickHouse/ClickHouse/pull/67741) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de la syntaxe du modificateur REPLACE (il n’est plus permis d’omettre les parenthèses). [#67774](https://github.com/ClickHouse/ClickHouse/pull/67774) ([Azat Khuzhin](https://github.com/azat)).
* Rétroporté dans [#68349](https://github.com/ClickHouse/ClickHouse/issues/68349) : réimplémentation du type `Dynamic`. Désormais, lorsque la limite des types de données dynamiques est atteinte, les nouveaux types ne sont plus convertis en String, mais stockés dans une structure de données spéciale au format binaire, avec le type de données encodé en binaire. Désormais, tout type ayant déjà été inséré dans une colonne `Dynamic` peut être lu depuis celle-ci comme sous-colonne. [#68132](https://github.com/ClickHouse/ClickHouse/pull/68132) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Ajout d’un nouveau paramètre `MergeTree` `deduplicate_merge_projection_mode` pour contrôler les projections pendant les fusions (pour certains moteurs) et la requête `OPTIMIZE DEDUPLICATE`. Options prises en charge : `throw` (déclencher une exception si la projection n’est pas entièrement prise en charge pour le moteur \*MergeTree), `drop` (supprimer la projection pendant la fusion si elle ne peut pas elle-même être fusionnée de manière cohérente) et `rebuild` (reconstruire la projection depuis zéro, ce qui est une opération coûteuse). [#66672](https://github.com/ClickHouse/ClickHouse/pull/66672) ([jsc0218](https://github.com/jsc0218)).
* Ajout de la colonne virtuelle `_etag` pour le moteur de table S3. Corrige [#65312](https://github.com/ClickHouse/ClickHouse/issues/65312). [#65386](https://github.com/ClickHouse/ClickHouse/pull/65386) ([skyoct](https://github.com/skyoct)).
* Ajout d’un mécanisme de balisage (espace de noms) pour le cache de requêtes. Les mêmes requêtes avec des tags différents sont considérées comme distinctes par le cache de requêtes. Exemple : `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'abc'` et `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'def'` créent désormais des entrées de cache de requêtes différentes. [#68235](https://github.com/ClickHouse/ClickHouse/pull/68235) ([sakulali](https://github.com/sakulali)).
* Prise en charge de davantage de variantes de la strictesse de JOIN (`LEFT/RIGHT SEMI/ANTI/ANY JOIN`) avec des conditions d’inégalité impliquant des colonnes des tables de gauche et de droite. Par ex. `t1.y < t2.y` (voir le paramètre `allow_experimental_join_condition`). [#64281](https://github.com/ClickHouse/ClickHouse/pull/64281) ([lgbo](https://github.com/lgbo-ustc)).
* Interprétation du partitionnement de style Hive pour différents moteurs (`File`, `URL`, `S3`, `AzureBlobStorage`, `HDFS`). Le partitionnement de style Hive organise les données dans des sous-répertoires partitionnés, ce qui permet d’interroger et de gérer efficacement de grands jeux de données. Pour l’instant, il crée uniquement des colonnes virtuelles avec le nom et les données appropriés. La PR suivante introduira le filtrage approprié des données (gain de performances). [#65997](https://github.com/ClickHouse/ClickHouse/pull/65997) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout de la fonction `printf` pour la compatibilité avec Spark (mais vous pouvez utiliser la fonction existante `format`). [#66257](https://github.com/ClickHouse/ClickHouse/pull/66257) ([李扬](https://github.com/taiyang-li)).
* Ajout des options `restore_replace_external_engines_to_null` et `restore_replace_external_table_functions_to_null` pour remplacer les moteurs externes et les moteurs de table par le moteur `Null`, ce qui peut être utile pour les tests. Cela doit fonctionner pour RESTORE et la création explicite de tables. [#66536](https://github.com/ClickHouse/ClickHouse/pull/66536) ([Ilya Yatsishin](https://github.com/qoega)).
* Ajout de la prise en charge de la lecture de la géométrie `MULTILINESTRING` au format `WKT` à l’aide de la fonction `readWKTLineString`. [#67647](https://github.com/ClickHouse/ClickHouse/pull/67647) ([Jacob Reckhard](https://github.com/jacobrec)).
* Ajout d’une nouvelle fonction de table `fuzzQuery`. Cette fonction permet de modifier une chaîne de requête donnée à l’aide de variations aléatoires. Exemple : `SELECT query FROM fuzzQuery('SELECT 1') LIMIT 5;`. [#67655](https://github.com/ClickHouse/ClickHouse/pull/67655) ([pufit](https://github.com/pufit)).
* Ajout de la requête `ALTER TABLE ... DROP DETACHED PARTITION ALL` pour supprimer toutes les partitions détachées. [#67885](https://github.com/ClickHouse/ClickHouse/pull/67885) ([Duc Canh Le](https://github.com/canhld94)).
* Ajout de la statistique `rows_before_aggregation_at_least` à la réponse de la requête lorsqu’un nouveau paramètre, `rows_before_aggregation`, est activé. Cette statistique représente le nombre de lignes lues avant l’agrégation. Dans le contexte d’une requête distribuée, lors de l’utilisation de la fonction d’agrégation `group by` ou `max` sans `limit`, `rows_before_aggregation_at_least` peut refléter le nombre de lignes traitées par la requête. [#66084](https://github.com/ClickHouse/ClickHouse/pull/66084) ([morning-color](https://github.com/morning-color)).
* Prise en charge de la requête `OPTIMIZE` sur les tables `Join` afin de réduire leur empreinte mémoire. [#67883](https://github.com/ClickHouse/ClickHouse/pull/67883) ([Duc Canh Le](https://github.com/canhld94)).
* Permet d'exécuter instantanément une requête dans play si vous ajoutez `&run=1` dans l'URL [#66457](https://github.com/ClickHouse/ClickHouse/pull/66457) ([Aleksandr Musorin](https://github.com/AVMusorin)).

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

* Implémentation d'un nouveau type de données `JSON`. [#66444](https://github.com/ClickHouse/ClickHouse/pull/66444) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout du nouveau moteur de table `TimeSeries`. [#64183](https://github.com/ClickHouse/ClickHouse/pull/64183) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ajout d'un nouveau moteur de stockage expérimental `Kafka` pour stocker les offsets dans Keeper au lieu de s'appuyer sur leur commit dans Kafka. Cela rend atomique le commit dans les tables ClickHouse par rapport à la consommation depuis la file d'attente. [#57625](https://github.com/ClickHouse/ClickHouse/pull/57625) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Utilisation d'une méthode adaptative de calcul de la taille des tâches de lecture (adaptative signifie qu'elle dépend de la taille des colonnes lues) pour les répliques parallèles. [#60377](https://github.com/ClickHouse/ClickHouse/pull/60377) ([Nikita Taranov](https://github.com/nickitat)).
* Ajout du type de statistiques `count_min` (count-min sketches), qui fournit des estimations de sélectivité pour des prédicats d'égalité comme `col = 'val'`. Les types de données pris en charge sont les chaînes, les dates, `datatime` et les types numériques. [#65521](https://github.com/ClickHouse/ClickHouse/pull/65521) ([JackyWoo](https://github.com/JackyWoo)).

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

* Le paramètre `optimize_functions_to_subcolumns` est désormais activé par défaut. [#68053](https://github.com/ClickHouse/ClickHouse/pull/68053) ([Anton Popov](https://github.com/CurtizJ)).
* Stocke les métadonnées du répertoire de disque `plain_rewritable` dans la structure `__meta`, séparément des données MergeTree dans le stockage objet. Déplace le disque `plain_rewritable` vers une structure de répertoires plate. [#65751](https://github.com/ClickHouse/ClickHouse/pull/65751) ([Julia Kartseva](https://github.com/jkartseva)).
* Améliore le compactage des colonnes (une opération effectuée dans les requêtes INSERT) pour les types `String`/`Array`/`Map`/`Variant`/`Dynamic` en réservant à l’avance la mémoire nécessaire pour toutes les sous-colonnes. [#67043](https://github.com/ClickHouse/ClickHouse/pull/67043) ([Kruglov Pavel](https://github.com/Avogar)).
* Accélère `SYSTEM FLUSH LOGS` ainsi que le vidage des logs à l’arrêt. [#67472](https://github.com/ClickHouse/ClickHouse/pull/67472) ([Sema Checherinda](https://github.com/CheSema)).
* Améliore les performances globales des fusions en réduisant le surcoût des étapes d’ordonnancement des fusions. [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)).
* Accélère la suppression des tables pour la requête `DROP DATABASE` et augmente à 16 la valeur par défaut de `database_catalog_drop_table_concurrency`. [#67228](https://github.com/ClickHouse/ClickHouse/pull/67228) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Évite de surallouer de la capacité à une colonne de type Array lors de l’écriture au format ORC. Les performances augmentent de 15 % pour une colonne Array. [#67879](https://github.com/ClickHouse/ClickHouse/pull/67879) ([李扬](https://github.com/taiyang-li)).
* Accélère considérablement les mutations sur les tables MergeTree non répliquées. [#66911](https://github.com/ClickHouse/ClickHouse/pull/66911) [#66909](https://github.com/ClickHouse/ClickHouse/pull/66909) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Le paramètre `allow_experimental_analyzer` est renommé en `enable_analyzer`. L’ancien nom est conservé sous forme d’alias. Cela signifie que l’analyzer n’est plus en bêta et est désormais pleinement promu pour la production. [#66438](https://github.com/ClickHouse/ClickHouse/pull/66438) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Amélioration de l’inférence de schéma des valeurs de date et d’heure. Désormais, DateTime64 n’est utilisé que lorsque la valeur de date et d’heure comporte une partie fractionnaire ; sinon, le type DateTime classique est utilisé. L’inférence de Date/DateTime est désormais plus stricte, en particulier lorsque `date_time_input_format='best_effort'`, afin d’éviter d’inférer des valeurs de date et d’heure à partir de chaînes dans certains cas limites. [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)).
* Le serveur ClickHouse prend désormais en charge le nouveau paramètre `max_keep_alive_requests`. Pour les connexions HTTP keep-alive au serveur, il fonctionne de concert avec `keep_alive_timeout` : si le délai d’inactivité n’a pas expiré, mais que plus de `max_keep_alive_requests` requêtes ont déjà été effectuées via cette connexion, celle-ci sera fermée par le serveur. [#61793](https://github.com/ClickHouse/ClickHouse/pull/61793) ([Nikita Taranov](https://github.com/nickitat)).
* Diverses améliorations de l’Advanced dashboard. Ceci clôt [#67697](https://github.com/ClickHouse/ClickHouse/issues/67697). Ceci clôt [#63407](https://github.com/ClickHouse/ClickHouse/issues/63407). Ceci clôt [#51129](https://github.com/ClickHouse/ClickHouse/issues/51129). Ceci clôt [#61204](https://github.com/ClickHouse/ClickHouse/issues/61204). [#67701](https://github.com/ClickHouse/ClickHouse/pull/67701) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ne pas exiger de privilège pour REMOTE lors de la création d’une table Distributed : un privilège pour le moteur Distributed suffit. [#65419](https://github.com/ClickHouse/ClickHouse/pull/65419) ([jsc0218](https://github.com/jsc0218)).
* Ne pas transmettre explicitement les logs de Keeper dans l’image Docker afin de permettre leur surcharge. [#65564](https://github.com/ClickHouse/ClickHouse/pull/65564) ([Azat Khuzhin](https://github.com/azat)).
* Introduction du paramètre `use_same_password_for_base_backup` pour les requêtes `BACKUP` et `RESTORE`, permettant de créer et de restaurer des sauvegardes incrémentielles vers/depuis des archives protégées par mot de passe. [#66214](https://github.com/ClickHouse/ClickHouse/pull/66214) ([Samuele](https://github.com/sguerrini97)).
* Ignorer `async_load_databases` pour la requête `ATTACH` (auparavant, `ATTACH` pouvait se terminer avant que les tables ne soient attachées). [#66240](https://github.com/ClickHouse/ClickHouse/pull/66240) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de logs et de métriques pour les connexions rejetées (lorsque les ressources sont insuffisantes). [#66410](https://github.com/ClickHouse/ClickHouse/pull/66410) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Prise en charge correcte du type `UUID` pour le moteur MongoDB. [#66671](https://github.com/ClickHouse/ClickHouse/pull/66671) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de métriques de retard de réplication et de temps de reprise. [#66703](https://github.com/ClickHouse/ClickHouse/pull/66703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ajout de la métrique `DiskS3NoSuchKeyErrors`. [#66704](https://github.com/ClickHouse/ClickHouse/pull/66704) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Garantit le bon fonctionnement de la clause `COMMENT` pour tous les moteurs de table. [#66832](https://github.com/ClickHouse/ClickHouse/pull/66832) ([Joe Lynch](https://github.com/joelynch)).
* La fonction `mapFromArrays` accepte désormais `Map(K, V)` comme premier argument. Par exemple, `SELECT mapFromArrays(map('a', 4, 'b', 4), ['aa', 'bb'])` fonctionne maintenant et renvoie `{('a',4):'aa',('b',4):'bb'}`. De plus, si le 1er argument est un Array, il peut désormais aussi être de type `Array(Nullable(T))` ou `Array(LowCardinality(Nullable(T)))`, tant que les valeurs effectives du tableau ne sont pas `NULL`. [#67103](https://github.com/ClickHouse/ClickHouse/pull/67103) ([李扬](https://github.com/taiyang-li)).
* Lecture de la configuration de `clickhouse-local` depuis `~/.clickhouse-local`. [#67135](https://github.com/ClickHouse/ClickHouse/pull/67135) ([Azat Khuzhin](https://github.com/azat)).
* Renommage du setting `input_format_orc_read_use_writer_time_zone` en `input_format_orc_reader_timezone` et possibilité, pour l'utilisateur, de définir le fuseau horaire du lecteur. [#67175](https://github.com/ClickHouse/ClickHouse/pull/67175) ([kevinyhzou](https://github.com/KevinyhZou)).
* Réduction du niveau de l'erreur `Socket is not connected` lorsque la connexion HTTP est immédiatement réinitialisée par le pair après l'établissement de la connexion ; clôt [#34218](https://github.com/ClickHouse/ClickHouse/issues/34218). [#67177](https://github.com/ClickHouse/ClickHouse/pull/67177) ([vdimir](https://github.com/vdimir)).
* Ajout de la possibilité de charger des dashboards pour `system.dashboards` depuis la config (une fois définis, ils remplacent le préréglage de dashboards par défaut). [#67232](https://github.com/ClickHouse/ClickHouse/pull/67232) ([Azat Khuzhin](https://github.com/azat)).
* Les window functions en SQL sont traditionnellement en snake case. ClickHouse utilise `camelCase`, de nouveaux alias `denseRank()` et `percentRank()` ont donc été créés. Ces nouvelles fonctions peuvent être appelées exactement comme les fonctions d'origine `dense_rank()` et `percent_rank()`. Les syntaxes snake case et camelCase restent toutes deux utilisables. Un nouveau test a également été ajouté pour chacune de ces fonctions. Cela clôt [#67042](https://github.com/ClickHouse/ClickHouse/issues/67042). [#67334](https://github.com/ClickHouse/ClickHouse/pull/67334) ([Peter Nguyen](https://github.com/petern48)).
* Détection automatique du format du configuration file s'il n'est pas en `.xml`, `.yml` ou `.yaml`. Si le fichier commence par \<, il peut s'agir de XML ; sinon, il peut s'agir de YAML. Cela est utile lorsqu'un configuration file est fourni via un pipe : `clickhouse-server --config-file <(echo "hello: world")`. [#67391](https://github.com/ClickHouse/ClickHouse/pull/67391) ([sakulali](https://github.com/sakulali)).
* Les fonctions `formatDateTime` et `formatDateTimeInJodaSyntax` considèrent désormais leur paramètre de format comme facultatif. S'il n'est pas spécifié, les format strings `%Y-%m-%d %H:%i:%s` et `yyyy-MM-dd HH:mm:ss` sont supposées. Example : `SELECT parseDateTime('2021-01-04 23:12:34')` renvoie désormais la valeur DateTime `2021-01-04 23:12:34` (auparavant, cela levait une exception). [#67399](https://github.com/ClickHouse/ClickHouse/pull/67399) ([Robert Schulze](https://github.com/rschu1ze)).
* Nouvelle tentative automatique des requêtes Keeper dans KeeperMap lorsqu'elles échouent à cause d'un timeout ou d'une perte de connexion. [#67448](https://github.com/ClickHouse/ClickHouse/pull/67448) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de `-no-pie` aux builds Linux Aarch64 pour permettre une introspection correcte et la résolution des symboles dans les stacktraces après un redémarrage de ClickHouse. [#67916](https://github.com/ClickHouse/ClickHouse/pull/67916) ([filimonov](https://github.com/filimonov)).
* Ajout de profile events pour les merges et les mutations afin d'améliorer l'introspection. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)).
* Suppression des logs inutiles pour `MergeTree` non répliqué. [#68238](https://github.com/ClickHouse/ClickHouse/pull/68238) ([Daniil Ivanik](https://github.com/divanik)).

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

* Le check des tests d’intégration instables exécute désormais chaque cas de test plusieurs fois afin de détecter davantage de problèmes et de rendre les tests plus fiables. Il utilise la bibliothèque `pytest-repeat` pour exécuter plusieurs fois un cas de test dans le même environnement. Il est important de nettoyer les tables et autres entités à la fin d’un cas de test pour qu’il réussisse. Cette approche est bien plus rapide que plusieurs exécutions de pytest, car elle ne démarre les conteneurs nécessaires qu’une seule fois. [#66986](https://github.com/ClickHouse/ClickHouse/pull/66986) ([Ilya Yatsishin](https://github.com/qoega)).
* L’utilisation de CLion avec ClickHouse n’est plus bloquée. Dans les versions précédentes, CLion se figeait pendant une minute à chaque frappe. Cela clôt [#66994](https://github.com/ClickHouse/ClickHouse/issues/66994). [#66995](https://github.com/ClickHouse/ClickHouse/pull/66995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* getauxval : évite un crash lors d’une réexécution sous sanitizer en raison de l’entropie ASLR élevée dans les noyaux Linux récents. [#67081](https://github.com/ClickHouse/ClickHouse/pull/67081) ([Raúl Marín](https://github.com/Algunenano)).
* Certaines parties du code du client ont été extraites dans un seul fichier, et le niveau d’optimisation le plus élevé possible leur est appliqué, même pour les builds de débogage. Cela clôt : [#65745](https://github.com/ClickHouse/ClickHouse/issues/65745). [#67215](https://github.com/ClickHouse/ClickHouse/pull/67215) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Pertinent uniquement pour le Data type Variant expérimental. Corrige un plantage avec le type Variant + AggregateFunction. [#67122](https://github.com/ClickHouse/ClickHouse/pull/67122) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un plantage dans DistributedAsyncInsert lorsque la connection est vide. [#67219](https://github.com/ClickHouse/ClickHouse/pull/67219) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige le plantage de `uniq` et `uniqTheta ` avec l’argument `tuple()`. Ferme [#67303](https://github.com/ClickHouse/ClickHouse/issues/67303). [#67306](https://github.com/ClickHouse/ClickHouse/pull/67306) ([flynn](https://github.com/ucasfl)).
* Corrige [#66026](https://github.com/ClickHouse/ClickHouse/issues/66026). Évite de parcourir des arguments de table function non résolus dans `ReplaceTableNodeToDummyVisitor`. [#67522](https://github.com/ClickHouse/ClickHouse/pull/67522) ([Dmitry Novik](https://github.com/novikd)).
* Corrige un possible dépassement de pile dans la fonction `JSONMergePatch`. Cette fonction a été renommée de `jsonMergePatch` en `JSONMergePatch`, car le nom précédent était incorrect. L’ancien nom est toujours conservé pour des raisons de compatibilité. Améliore également le diagnostic des erreurs dans la fonction. Cela ferme [#67304](https://github.com/ClickHouse/ClickHouse/issues/67304). [#67756](https://github.com/ClickHouse/ClickHouse/pull/67756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un déréférencement de pointeur NULL, déclenché par une query spécialement conçue, qui faisait planter le server via hopEnd, hopStart, tumbleEnd et tumbleStart. [#68098](https://github.com/ClickHouse/ClickHouse/pull/68098) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrige `Not-ready Set` dans certaines system tables lors du filtrage avec des subqueries. [#66018](https://github.com/ClickHouse/ClickHouse/pull/66018) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige la lecture des subcolumns après la query `ALTER ADD COLUMN`. [#66243](https://github.com/ClickHouse/ClickHouse/pull/66243) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige les littéraux booléens dans la query envoyée à la database externe (pour des engines comme `PostgreSQL`). [#66282](https://github.com/ClickHouse/ClickHouse/pull/66282) ([vdimir](https://github.com/vdimir)).
* Corrige le formatting d’une query avec une expression JOIN ON aliasée ; par exemple, `... JOIN t2 ON (x = y) AS e ORDER BY x` doit être formaté comme `... JOIN t2 ON ((x = y) AS e) ORDER BY x`. [#66312](https://github.com/ClickHouse/ClickHouse/pull/66312) ([vdimir](https://github.com/vdimir)).
* Corrige cluster() pour le secret inter-server (préserve l’utilisateur initial comme auparavant). [#66364](https://github.com/ClickHouse/ClickHouse/pull/66364) ([Azat Khuzhin](https://github.com/azat)).
* Corrige une possible erreur de runtime lors de la conversion d’un field Array contenant des nulls en Array(Variant). [#66727](https://github.com/ClickHouse/ClickHouse/pull/66727) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un interblocage occasionnel dans Context::getDDLWorker. [#66843](https://github.com/ClickHouse/ClickHouse/pull/66843) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige la création d’une table KeeperMap après un drop incomplet. [#66865](https://github.com/ClickHouse/ClickHouse/pull/66865) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une erreur de part endommagée lors de la restauration sur un disk `s3_plain_rewritable`. [#66881](https://github.com/ClickHouse/ClickHouse/pull/66881) ([Vitaly Baranov](https://github.com/vitlibar)).
* Dans de rares cas, ClickHouse pouvait considérer des parts comme endommagées en raison de projections inattendues sur le disk. C’est désormais corrigé. [#66898](https://github.com/ClickHouse/ClickHouse/pull/66898) ([alesapin](https://github.com/alesapin)).
* Correction d’une détection de format non valide lors de l’inférence de schéma, qui pouvait entraîner l’erreur logique « Le format {} ne prend pas en charge l’inférence de schéma. » [#66899](https://github.com/ClickHouse/ClickHouse/pull/66899) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un interblocage possible lors de l’annulation d’une requête avec des répliques parallèles. [#66905](https://github.com/ClickHouse/ClickHouse/pull/66905) ([Nikita Taranov](https://github.com/nickitat)).
* Interdit create as select même lorsque `database&#95;replicated&#95;allow&#95;heavy&#95;create` est défini. C’était interdit sans exception dans la 23.12, et accidentellement autorisé par ce paramètre dans la 24.7 non publiée. [#66980](https://github.com/ClickHouse/ClickHouse/pull/66980) ([vdimir](https://github.com/vdimir)).
* La lecture depuis `numbers` pouvait à tort lever une exception lorsque la limite `max_rows_to_read` était définie. Cela corrige [#66992](https://github.com/ClickHouse/ClickHouse/issues/66992). [#66996](https://github.com/ClickHouse/ClickHouse/pull/66996) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute une conversion de type correcte aux fonctions de fenêtre lagInFrame et leadInFrame, ce qui corrige le test msan. [#67091](https://github.com/ClickHouse/ClickHouse/pull/67091) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* TRUNCATE DATABASE arrêtait auparavant la réplication comme s’il s’agissait d’une requête DROP DATABASE ; c’est corrigé. [#67129](https://github.com/ClickHouse/ClickHouse/pull/67129) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Utilise un contexte client distinct dans `clickhouse-local`. [#67133](https://github.com/ClickHouse/ClickHouse/pull/67133) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige l’erreur `Cannot convert column because it is non constant in source stream but must be constant in result.` pour une requête qui lit depuis la table `Merge` sur la table `Distriburted` avec un shard. [#67146](https://github.com/ClickHouse/ClickHouse/pull/67146) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige le comportement de `ORDER BY all` lorsque `enable_order_by_all` est désactivé et avec des répliques parallèles (également pour les requêtes distribuées). [#67153](https://github.com/ClickHouse/ClickHouse/pull/67153) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige l’utilisation incorrecte de input\_format\_max\_bytes\_to\_read\_for\_schema\_inference dans le cache de schéma. [#67157](https://github.com/ClickHouse/ClickHouse/pull/67157) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la fuite de mémoire pour count distinct lorsqu’une exception est levée pendant un group by sur une seule clé nullable. [#67171](https://github.com/ClickHouse/ClickHouse/pull/67171) ([Jet He](https://github.com/compasses)).
* Corrige une erreur dans l’optimisation qui convertit OUTER JOIN en INNER JOIN. Cela corrige [#67156](https://github.com/ClickHouse/ClickHouse/issues/67156). Cela corrige [#66447](https://github.com/ClickHouse/ClickHouse/issues/66447). Le bug a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/62907](https://github.com/ClickHouse/ClickHouse/pull/62907). [#67178](https://github.com/ClickHouse/ClickHouse/pull/67178) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige l’erreur `Conversion from AggregateFunction(name, Type) to AggregateFunction(name, Nullable(Type)) is not supported`. Le bug était causé par l’optimisation `optimize_rewrite_aggregate_function_with_if`. Corrige [#67112](https://github.com/ClickHouse/ClickHouse/issues/67112). [#67229](https://github.com/ClickHouse/ClickHouse/pull/67229) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige une requête bloquée lors de l’utilisation d’un tuple vide comme lhs de la fonction IN. [#67295](https://github.com/ClickHouse/ClickHouse/pull/67295) ([Duc Canh Le](https://github.com/canhld94)).
* Il était possible de créer des données JSON très profondément imbriquées, ce qui provoquait un débordement de pile lors de l’ignorance des champs inconnus. Cela clôt [#67292](https://github.com/ClickHouse/ClickHouse/issues/67292). [#67324](https://github.com/ClickHouse/ClickHouse/pull/67324) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction de l’attachement d’une table ReplicatedMergeTree après une exception au démarrage. [#67360](https://github.com/ClickHouse/ClickHouse/pull/67360) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un segfault provoqué par un détachement incorrect du groupe de threads dans `Aggregator`. [#67385](https://github.com/ClickHouse/ClickHouse/pull/67385) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un autre cas où une fonction non déterministe est spécifiée dans la PK. [#67395](https://github.com/ClickHouse/ClickHouse/pull/67395) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un index `bloom_filter` qui cassait des requêtes avec des conditions un peu inhabituelles comme `(k=2)=(k=2)` ou `has([1,2,3], k)`. [#67423](https://github.com/ClickHouse/ClickHouse/pull/67423) ([Michael Kolupaev](https://github.com/al13n321)).
* Analyse correcte d’un nom de fichier/URI contenant `::` s’il ne s’agit pas d’une archive. [#67433](https://github.com/ClickHouse/ClickHouse/pull/67433) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de l’attente des tâches dans \~WriteBufferFromS3 lorsque WriteBuffer a été annulé. [#67459](https://github.com/ClickHouse/ClickHouse/pull/67459) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Protection des répertoires temporaires de parts contre leur suppression pendant RESTORE. [#67491](https://github.com/ClickHouse/ClickHouse/pull/67491) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de l’exécution des fonctions imbriquées à court-circuit. [#67520](https://github.com/ClickHouse/ClickHouse/pull/67520) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de `Logical error: Expected the argument №N of type T to have X rows, but it has 0`. L’erreur pouvait se produire dans une requête distante avec une expression constante dans `GROUP BY` (avec le nouvel analyseur). [#67536](https://github.com/ClickHouse/ClickHouse/pull/67536) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction des jointures sur des Tuple contenant des NULL : certaines requêtes avec le nouvel analyseur et `NULL` à l’intérieur du tuple dans la section `JOIN ON` renvoyaient des résultats incorrects. [#67538](https://github.com/ClickHouse/ClickHouse/pull/67538) ([vdimir](https://github.com/vdimir)).
* Correction de la replanification redondante de FileCache::freeSpaceRatioKeepingThreadFunc() dans le cas d’un cache plein non évictable. [#67540](https://github.com/ClickHouse/ClickHouse/pull/67540) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’insertion dans des moteurs de type stream (Kafka, RabbitMQ, NATS) via l’interface HTTP. [#67554](https://github.com/ClickHouse/ClickHouse/pull/67554) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction de la fonction `toStartOfWeek`, qui renvoyait un résultat erroné avec une faible valeur `DateTime64`. [#67558](https://github.com/ClickHouse/ClickHouse/pull/67558) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction de la création d’une vue avec une CTE récursive. [#67587](https://github.com/ClickHouse/ClickHouse/pull/67587) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de `Logical error: 'file_offset_of_buffer_end <= read_until_position'` dans le cache du système de fichiers. Clôt [#57508](https://github.com/ClickHouse/ClickHouse/issues/57508). [#67623](https://github.com/ClickHouse/ClickHouse/pull/67623) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige [#62282](https://github.com/ClickHouse/ClickHouse/issues/62282). Suppression de l’appel à `convertFieldToString()` et ajout d’un code de sérialisation spécifique à chaque type de données. La substitution des vues paramétrées était défaillante pour plusieurs types de données lorsque la valeur du paramètre était une fonction ou une expression renvoyant une instance de type de données. [#67654](https://github.com/ClickHouse/ClickHouse/pull/67654) ([Shankar](https://github.com/shiyer7474)).
* Corrige un crash sur `percent_rank`. Le type de frame par défaut de `percent_rank` devient `range unbounded preceding and unbounded following`. La frame de fenêtre par défaut de `IWindowFunction` est désormais prise en compte, et les fonctions de fenêtre sans définition de frame en SQL peuvent maintenant être correctement réparties dans différents `WindowTransfomer`s. [#67661](https://github.com/ClickHouse/ClickHouse/pull/67661) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige le rechargement des UDF SQL avec UNION. Auparavant, le redémarrage du serveur pouvait rendre une UDF invalide. [#67665](https://github.com/ClickHouse/ClickHouse/pull/67665) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une possible erreur logique "Unexpected return type from if" avec le type expérimental Variant et le paramètre activé `use_variant_as_common_type ` dans la fonction if avec des Tuples et des Maps. [#67687](https://github.com/ClickHouse/ClickHouse/pull/67687) ([Kruglov Pavel](https://github.com/Avogar)).
* En raison d’un bug du noyau Linux, une query peut se bloquer dans `TimerDescriptor::drain`. Cela clôt [#37686](https://github.com/ClickHouse/ClickHouse/issues/37686). [#67702](https://github.com/ClickHouse/ClickHouse/pull/67702) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la finalisation de la commande `RESTORE ON CLUSTER`. [#67720](https://github.com/ClickHouse/ClickHouse/pull/67720) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige le blocage d’un dictionnaire en cas de CANNOT\_SCHEDULE\_TASK pendant le chargement. [#67751](https://github.com/ClickHouse/ClickHouse/pull/67751) ([Azat Khuzhin](https://github.com/azat)).
* Les queries telles que `SELECT count() FROM t WHERE cast(c = 1 or c = 9999 AS Bool) SETTINGS use_skip_indexes=1`, avec des index Bloom filter sur `c`, fonctionnent désormais correctement. [#67781](https://github.com/ClickHouse/ClickHouse/pull/67781) ([jsc0218](https://github.com/jsc0218)).
* Corrige un résultat d’agrégation erroné dans certaines queries avec agrégation sans clés ni filtre, clôt [#67419](https://github.com/ClickHouse/ClickHouse/issues/67419). [#67804](https://github.com/ClickHouse/ClickHouse/pull/67804) ([vdimir](https://github.com/vdimir)).
* Valide les types de données expérimentaux/suspects dans ALTER ADD/MODIFY COLUMN. [#67911](https://github.com/ClickHouse/ClickHouse/pull/67911) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l’analyse de DateTime64 après constant folding dans les requêtes distribuées, clôt [#66773](https://github.com/ClickHouse/ClickHouse/issues/66773). [#67920](https://github.com/ClickHouse/ClickHouse/pull/67920) ([vdimir](https://github.com/vdimir)).
* Corrige un résultat `count()` erroné lorsqu’une fonction non déterministe est présente dans le prédicat. [#67922](https://github.com/ClickHouse/ClickHouse/pull/67922) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige le calcul de la limite souple maximale du nombre de threads dans les environnements conteneurisés où le nombre de CPU utilisables est limité. [#67963](https://github.com/ClickHouse/ClickHouse/pull/67963) ([Robert Schulze](https://github.com/rschu1ze)).
* Désormais, ClickHouse ne considère plus une part comme corrompue si la projection n’existe pas sur le disque mais figure dans `checksums.txt`. [#68003](https://github.com/ClickHouse/ClickHouse/pull/68003) ([alesapin](https://github.com/alesapin)).
* Correction du saut des parts non modifiées dans les mutations avec le nouvel analyseur. Auparavant, avec l’analyseur activé, les données d’une part pouvaient être réécrites par une mutation, même si celle-ci n’affectait pas cette part selon le prédicat. [#68052](https://github.com/ClickHouse/ClickHouse/pull/68052) ([Anton Popov](https://github.com/CurtizJ)).
* Supprime une optimisation incorrecte qui retirait le tri dans les sous-requêtes utilisant `OFFSET`. Corrige [#67906](https://github.com/ClickHouse/ClickHouse/issues/67906). [#68099](https://github.com/ClickHouse/ClickHouse/pull/68099) ([Graham Campbell](https://github.com/GrahamCampbell)).
* Tentative de correction de `Block structure mismatch in AggregatingStep stream: different types` pour l’optimisation des projections agrégées. [#68107](https://github.com/ClickHouse/ClickHouse/pull/68107) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Tentative de correction d’un crash de Postgres lorsqu’une requête est annulée. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’absence du mode de synchronisation de replica dans la requête `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)).

### <a id="247" /> Version 24.7 de ClickHouse, 2024-07-30. [Présentation](https://presentations.clickhouse.com/2024-release-24.7/), [Vidéo](https://www.youtube.com/watch?v=GerQFdJCk7A)

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

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

* Interdiction de `CRATE MATERIALIZED VIEW ... ENGINE Replicated*MergeTree POPULATE AS SELECT ...` avec des bases de données Replicated. [#63963](https://github.com/ClickHouse/ClickHouse/pull/63963) ([vdimir](https://github.com/vdimir)).
* `clickhouse-keeper-client` n'acceptera désormais les chemins que dans des littéraux de chaîne, par exemple `ls '/hello/world'`, et non des chaînes non délimitées comme `ls /hello/world`. [#65494](https://github.com/ClickHouse/ClickHouse/pull/65494) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La métrique `KeeperOutstandingRequets` a été renommée en `KeeperOutstandingRequests`. [#66206](https://github.com/ClickHouse/ClickHouse/pull/66206) ([Robert Schulze](https://github.com/rschu1ze)).
* Suppression du champ `is_deterministic` de la table `system.functions`. [#66630](https://github.com/ClickHouse/ClickHouse/pull/66630) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La fonction `tuple` essaiera désormais de construire des tuples nommés dans les requêtes (contrôlé par `enable_named_columns_in_function_tuple`). Ajout de la fonction `tupleNames` pour extraire les noms des tuples. [#54881](https://github.com/ClickHouse/ClickHouse/pull/54881) ([Amos Bird](https://github.com/amosbird)).
* Modification du fonctionnement de la déduplication pour les vues matérialisées. Correction de nombreux cas, par exemple : - sur la table de destination : les données sont réparties en 2 blocs ou plus, et ces blocs sont considérés comme des doublons lorsqu'ils sont insérés en parallèle. - sur la table de destination de la MV : les blocs identiques sont dédupliqués, ce qui se produit lorsque la MV produit souvent des données identiques à partir de données d'entrée différentes en raison de l'agrégation. - sur la table de destination de la MV : les blocs identiques provenant de différentes MV sont dédupliqués. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)).
* Les fonctions `bitShiftLeft` et `bitShitfRight` renvoient une erreur si les positions de décalage sont hors limites [#65838](https://github.com/ClickHouse/ClickHouse/pull/65838) ([Pablo Marcos](https://github.com/pamarcos)).

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

* Ajout de la prise en charge de `ASOF JOIN` pour l'algorithme `full_sorting_join`. [#55051](https://github.com/ClickHouse/ClickHouse/pull/55051) ([vdimir](https://github.com/vdimir)).
* Prise en charge de l'authentification JWT dans `clickhouse-client` (disponible uniquement dans ClickHouse Cloud). [#62829](https://github.com/ClickHouse/ClickHouse/pull/62829) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ajout des fonctions SQL `changeYear`, `changeMonth`, `changeDay`, `changeHour`, `changeMinute`, `changeSecond`. Par exemple, `SELECT changeMonth(toDate('2024-06-14'), 7)` renvoie la date `2024-07-14`. [#63186](https://github.com/ClickHouse/ClickHouse/pull/63186) ([cucumber95](https://github.com/cucumber95)).
* Introduction de scripts de démarrage permettant d'exécuter des requêtes préconfigurées au démarrage. [#64889](https://github.com/ClickHouse/ClickHouse/pull/64889) ([pufit](https://github.com/pufit)).
* Prise en charge de `accept_invalid_certificate` dans la config du client afin de lui permettre de se connecter en TCP sécurisé à un serveur utilisant un certificat auto-signé ; peut être utilisé comme raccourci pour les client settings `openSSL` correspondants `verificationMode=none` + `invalidCertificateHandler.name=AcceptCertificateHandler`. [#65238](https://github.com/ClickHouse/ClickHouse/pull/65238) ([peacewalker122](https://github.com/peacewalker122)).
* Ajout de system.error\_log, qui contient l'historique des valeurs d'erreur de la table system.errors, périodiquement écrites sur disque. [#65381](https://github.com/ClickHouse/ClickHouse/pull/65381) ([Pablo Marcos](https://github.com/pamarcos)).
* Ajout de la fonction d'agrégation `groupConcat`. Elle est à peu près équivalente à `arrayStringConcat( groupArray(column), ',')`. Elle peut recevoir 2 paramètres : un délimiteur de chaîne et le nombre d'éléments à traiter. [#65451](https://github.com/ClickHouse/ClickHouse/pull/65451) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ajout du stockage AzureQueue. [#65458](https://github.com/ClickHouse/ClickHouse/pull/65458) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout d'un nouveau paramètre pour désactiver ou activer l'écriture de l'index de page dans les fichiers Parquet. [#65475](https://github.com/ClickHouse/ClickHouse/pull/65475) ([lgbo](https://github.com/lgbo-ustc)).
* Introduction de la config serveur `logger.console_log_level` pour contrôler le niveau de journalisation dans la console (si activé). [#65559](https://github.com/ClickHouse/ClickHouse/pull/65559) ([Azat Khuzhin](https://github.com/azat)).
* Ajout automatique d'un caractère générique `*` à la fin d'un chemin de répertoire avec la table function `file`. [#66019](https://github.com/ClickHouse/ClickHouse/pull/66019) ([Zhidong (David) Guo](https://github.com/Gun9niR)).
* Ajout de l'option `--memory-usage` au client en mode non interactif. [#66393](https://github.com/ClickHouse/ClickHouse/pull/66393) ([vdimir](https://github.com/vdimir)).
* Création d'un client interactif pour clickhouse-disks, avec ajout d'un disque local à partir du répertoire local. [#64446](https://github.com/ClickHouse/ClickHouse/pull/64446) ([Daniil Ivanik](https://github.com/divanik)).
* Lorsqu'un lightweight delete se produit sur une table avec une ou plusieurs projections, les utilisateurs peuvent soit lever une exception (par défaut), soit supprimer la projection. [#65594](https://github.com/ClickHouse/ClickHouse/pull/65594) ([jsc0218](https://github.com/jsc0218)).
* Ajout de tables système contenant les principales informations sur toutes les tables détachées. [#65400](https://github.com/ClickHouse/ClickHouse/pull/65400) ([Konstantin Morozov](https://github.com/k-morozov)).

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

* Modification de la sérialisation binaire du type de données `Variant` : ajout du mode `compact` pour éviter d’écrire plusieurs fois le même discriminateur pour les granules ne contenant qu’une seule variante ou uniquement des valeurs NULL. Ajout du paramètre MergeTree `use_compact_variant_discriminators_serialization`, activé par défaut. Notez que le type Variant reste expérimental et qu’une modification non rétrocompatible de la sérialisation est acceptable. [#62774](https://github.com/ClickHouse/ClickHouse/pull/62774) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge d’un backend de stockage sur disque pour ClickHouse Keeper. [#56626](https://github.com/ClickHouse/ClickHouse/pull/56626) ([Han Fei](https://github.com/hanfei1991)).
* Refactorisation des fonctions JSONExtract, avec prise en charge d’un plus grand nombre de types, y compris le type expérimental Dynamic. [#66046](https://github.com/ClickHouse/ClickHouse/pull/66046) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge de la sous-colonne map NULL pour les sous-colonnes `Variant` et `Dynamic`. [#66178](https://github.com/ClickHouse/ClickHouse/pull/66178) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la lecture des sous-colonnes `Dynamic` à partir d’une table `Memory` modifiée. Auparavant, si le paramètre `max_types` d’un type Dynamic était modifié dans une table Memory via alter, la lecture ultérieure des sous-colonnes pouvait renvoyer un résultat erroné. [#66066](https://github.com/ClickHouse/ClickHouse/pull/66066) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge de `cluster_for_parallel_replicas` lors de l’utilisation du mode parallel replicas avec une clé personnalisée. Cela permet d’utiliser le mode parallel replicas avec une clé personnalisée sur des tables MergeTree. [#65453](https://github.com/ClickHouse/ClickHouse/pull/65453) ([Antonio Andelic](https://github.com/antonio2368)).

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

* Remplacement de l'algorithme de conversion des entiers en chaînes par un algorithme plus rapide (d'une version modifiée de amdn/itoa à une version modifiée de jeaiii/itoa). [#61661](https://github.com/ClickHouse/ClickHouse/pull/61661) ([Raúl Marín](https://github.com/Algunenano)).
* Les tailles des tables de hachage créées par la jointure (algorithme `parallel_hash`) sont désormais collectées et mises en cache. Ces informations serviront à préallouer de l'espace dans les tables de hachage lors des exécutions suivantes de requêtes, afin de réduire le temps consacré à leur redimensionnement. [#64553](https://github.com/ClickHouse/ClickHouse/pull/64553) ([Nikita Taranov](https://github.com/nickitat)).
* Optimisation des requêtes avec `ORDER BY` sur la clé primaire et `WHERE` contenant une condition à forte sélectivité grâce au buffering. Ce comportement est contrôlé par le paramètre `read_in_order_use_buffering` (activé par défaut) et peut augmenter l'utilisation mémoire de la requête. [#64607](https://github.com/ClickHouse/ClickHouse/pull/64607) ([Anton Popov](https://github.com/CurtizJ)).
* Amélioration des performances de chargement des métadonnées `plain_rewritable`. [#65634](https://github.com/ClickHouse/ClickHouse/pull/65634) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* L'attachement de tables sur des disques en lecture seule utilisera moins de ressources en ne chargeant pas les parties obsolètes. [#65635](https://github.com/ClickHouse/ClickHouse/pull/65635) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge des hyperrectangles min-max pour les index Set. [#65676](https://github.com/ClickHouse/ClickHouse/pull/65676) ([AntiTopQuark](https://github.com/AntiTopQuark)).
* Déchargement de l'index primaire des parties obsolètes afin de réduire l'utilisation mémoire totale. [#65852](https://github.com/ClickHouse/ClickHouse/pull/65852) ([Anton Popov](https://github.com/CurtizJ)).
* Les fonctions `replaceRegexpAll` et `replaceRegexpOne` sont désormais nettement plus rapides lorsque le pattern est trivial, c'est-à-dire qu'il ne contient ni métacaractères, ni classes de patterns, ni indicateurs, ni caractères de groupement, etc. (Merci à Taiyang Li). [#66185](https://github.com/ClickHouse/ClickHouse/pull/66185) ([Robert Schulze](https://github.com/rschu1ze)).
* Requêtes S3 : réduction du temps de réessai pour les requêtes, augmentation du nombre de tentatives pour les sauvegardes. 8,5 minutes et 100 tentatives pour les requêtes, 1,2 heures et 1 000 tentatives pour la restauration de sauvegardes. [#65232](https://github.com/ClickHouse/ClickHouse/pull/65232) ([Sema Checherinda](https://github.com/CheSema)).
* Prise en charge de l'optimisation LIMIT dans le query plan. Prise en charge du pushdown de LIMIT pour le stockage PostgreSQL et la fonction de table. [#65454](https://github.com/ClickHouse/ClickHouse/pull/65454) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration de l'équilibrage de charge de ZooKeeper. La session actuelle n'expire pas tant que les nœuds optimaux ne redeviennent pas disponibles, malgré `fallback_session_lifetime`. Ajout de la prise en charge de l'équilibrage tenant compte des AZ. [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)).
* DatabaseCatalog supprime les tables plus rapidement en utilisant jusqu'à database\_catalog\_drop\_table\_concurrency threads. [#66065](https://github.com/ClickHouse/ClickHouse/pull/66065) ([Sema Checherinda](https://github.com/CheSema)).

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

* Amélioration de l’équilibrage de charge de ZooKeeper. La session en cours n’expire pas tant que les nœuds optimaux ne redeviennent pas disponibles, malgré `fallback_session_lifetime`. Ajout de la prise en charge de l’équilibrage sensible aux AZ. [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Le réglage `optimize_trivial_insert_select` est désactivé par défaut. Dans la plupart des cas, cela devrait être bénéfique. Néanmoins, si vous constatez un ralentissement de INSERT SELECT ou une augmentation de l’utilisation de la mémoire, vous pouvez le réactiver ou utiliser `SET compatibility = '24.6'`. [#58970](https://github.com/ClickHouse/ClickHouse/pull/58970) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Affiche une stacktrace et des informations de diagnostic si `clickhouse-client` ou `clickhouse-local` se ferme brutalement. [#61109](https://github.com/ClickHouse/ClickHouse/pull/61109) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Le résultat de `SHOW INDEX | INDEXES | INDICES | KEYS` était auparavant trié selon les noms des colonnes de la clé primaire. Comme cela n’était pas intuitif, le résultat est désormais trié selon la position des colonnes de la clé primaire au sein de celle-ci. [#61131](https://github.com/ClickHouse/ClickHouse/pull/61131) ([Robert Schulze](https://github.com/rschu1ze)).
* Modification du fonctionnement de la déduplication pour les vues matérialisées. Correction de nombreux cas, par exemple : - sur la table de destination : les données sont divisées en 2 blocs ou plus, et ces blocs sont considérés comme des doublons lorsqu’un bloc est inséré en parallèle. - sur la table de destination de la MV : les blocs identiques sont dédupliqués, ce qui se produit lorsque la MV produit souvent des données identiques à partir de données d’entrée différentes en raison d’une agrégation. - sur la table de destination de la MV : les blocs identiques provenant de différentes MV sont dédupliqués. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)).
* Prise en charge de la lecture de données DeltaLake partitionnées. Déduction du schéma DeltaLake à partir des métadonnées plutôt que des données. [#63201](https://github.com/ClickHouse/ClickHouse/pull/63201) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Dans les protocoles composables, la couche TLS n’acceptait que les paramètres `certificateFile` et `privateKeyFile`. [https://clickhouse.com/docs/operations/settings/composable-protocols](https://clickhouse.com/docs/operations/settings/composable-protocols). [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Ajout de l’événement de profil `SelectQueriesWithPrimaryKeyUsage`, qui indique combien de requêtes SELECT utilisent la clé primaire pour évaluer la clause WHERE. [#64492](https://github.com/ClickHouse/ClickHouse/pull/64492) ([0x01f](https://github.com/0xfei)).
* Corrections et améliorations liées à `StorageS3Queue`. Déduit une valeur par défaut pour `s3queue_processing_threads_num` en fonction du nombre de CPU cores physiques du serveur (au lieu de l’ancienne valeur par défaut de 1). Définit la valeur par défaut de `s3queue_loading_retries` à 10. Corrige la possible présence d’un vague "Uncaught exception" dans la colonne d’exception de `system.s3queue`. N’incrémente pas le nombre de tentatives en cas d’exception `MEMORY_LIMIT_EXCEEDED`. Déplace le commit des fichiers vers une étape postérieure à la fin complète de l’insertion dans la table afin d’éviter que des fichiers soient validés alors qu’ils n’ont pas été insérés. Ajoute les réglages `s3queue_max_processed_files_before_commit`, `s3queue_max_processed_rows_before_commit`, `s3queue_max_processed_bytes_before_commit`, `s3queue_max_processing_time_sec_before_commit`, afin de mieux contrôler le commit et le temps de flush. [#65046](https://github.com/ClickHouse/ClickHouse/pull/65046) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge des alias dans la fonction de vue paramétrée (nouvel analyzer uniquement). [#65190](https://github.com/ClickHouse/ClickHouse/pull/65190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Mise à jour pour masquer la clé de compte dans les journaux de `azureBlobStorage`. [#65273](https://github.com/ClickHouse/ClickHouse/pull/65273) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Partition pruning pour les prédicats `IN` lorsque l’expression de filtre fait partie de l’expression `PARTITION BY`. [#65335](https://github.com/ClickHouse/ClickHouse/pull/65335) ([Eduard Karacharov](https://github.com/korowa)).
* `arrayMin`/`arrayMax` peuvent s’appliquer à tous les types de données comparables. [#65455](https://github.com/ClickHouse/ClickHouse/pull/65455) ([pn](https://github.com/chloro-pn)).
* Amélioration de la comptabilisation de la mémoire pour cgroups v2 afin d’exclure la part occupée par le page cache. [#65470](https://github.com/ClickHouse/ClickHouse/pull/65470) ([Nikita Taranov](https://github.com/nickitat)).
* Ne pas créer de paramètres de format pour chaque ligne lors de la sérialisation de chunks à insérer dans la table EmbeddedRocksDB. [#65474](https://github.com/ClickHouse/ClickHouse/pull/65474) ([Duc Canh Le](https://github.com/canhld94)).
* Réduire l’invite de `clickhouse-local` à `:)` uniquement. `getFQDNOrHostName()` est trop lent sur MacOS, et nous ne voulons de toute façon pas de hostname dans l’invite de `clickhouse-local`. [#65510](https://github.com/ClickHouse/ClickHouse/pull/65510) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Éviter d’afficher un message de jemalloc à propos des arenas par CPU sur les machines virtuelles peu puissantes. [#65532](https://github.com/ClickHouse/ClickHouse/pull/65532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Désactiver par défaut le téléchargement en arrière-plan du filesystem cache. Il sera réactivé lorsque nous aurons corrigé le problème pouvant entraîner « Memory limit exceeded », car la désallocation de mémoire se fait en dehors du contexte de la query (alors que le buffer est alloué dans le contexte de la query) si l’on utilise des threads de téléchargement en arrière-plan. De plus, nous devons ajouter un paramètre distinct pour définir la taille maximale à télécharger pour les workers en arrière-plan (actuellement, elle est limitée par max\_file\_segment\_size, ce qui peut être trop élevé). [#65534](https://github.com/ClickHouse/ClickHouse/pull/65534) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajouter une nouvelle option à la config `<config_reload_interval_ms>` pour spécifier à quelle fréquence ClickHouse rechargera la config. [#65545](https://github.com/ClickHouse/ClickHouse/pull/65545) ([alesapin](https://github.com/alesapin)).
* Implémenter l’encodage binaire pour les types de données ClickHouse et en ajouter la spécification dans la documentation. L’utiliser dans la sérialisation binaire de Dynamic, et permettre son utilisation dans les formats RowBinaryWithNamesAndTypes et Native via les paramètres. [#65546](https://github.com/ClickHouse/ClickHouse/pull/65546) ([Kruglov Pavel](https://github.com/Avogar)).
* Les paramètres serveur `compiled_expression_cache_size` et `compiled_expression_cache_elements_size` sont désormais affichés dans `system.server_settings`. [#65584](https://github.com/ClickHouse/ClickHouse/pull/65584) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajouter la prise en charge de l’identification des utilisateurs basée sur l’extension x509 SubjectAltName. [#65626](https://github.com/ClickHouse/ClickHouse/pull/65626) ([Anton Kozlov](https://github.com/tonickkozlov)).
* `clickhouse-local` respectera `max_server_memory_usage` et `max_server_memory_usage_to_ram_ratio` définis dans le fichier de configuration. Il définira également par défaut l’utilisation mémoire maximale à 90 % de la mémoire système, comme le fait `clickhouse-server`. [#65697](https://github.com/ClickHouse/ClickHouse/pull/65697) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajouter un script pour sauvegarder vos fichiers vers ClickHouse. [#65699](https://github.com/ClickHouse/ClickHouse/pull/65699) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La source PostgreSQL prend désormais en charge l’annulation des requêtes. [#65722](https://github.com/ClickHouse/ClickHouse/pull/65722) ([Maksim Kita](https://github.com/kitaisreal)).
* Faire en sorte que `allow_experimental_analyzer` soit contrôlé par l’initiateur pour les distributed queries. Cela garantit la compatibilité et la justesse des opérations dans des clusters exécutant des versions mixtes. [#65777](https://github.com/ClickHouse/ClickHouse/pull/65777) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Respecter la limite CPU du cgroup dans Keeper. [#65819](https://github.com/ClickHouse/ClickHouse/pull/65819) ([Antonio Andelic](https://github.com/antonio2368)).
* Permet d’utiliser la fonction `concat` avec des arguments vides `:) select concat();`. [#65887](https://github.com/ClickHouse/ClickHouse/pull/65887) ([李扬](https://github.com/taiyang-li)).
* Permet de gérer les collections nommées dans `clickhouse-local`. [#65973](https://github.com/ClickHouse/ClickHouse/pull/65973) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliore les événements de profil liés à Azure. [#65999](https://github.com/ClickHouse/ClickHouse/pull/65999) ([alesapin](https://github.com/alesapin)).
* Prend en charge la lecture de fichiers ORC selon le fuseau horaire utilisé lors de l’écriture. [#66025](https://github.com/ClickHouse/ClickHouse/pull/66025) ([kevinyhzou](https://github.com/KevinyhZou)).
* Ajoute des paramètres pour contrôler les connexions à PostgreSQL. Le paramètre `postgresql_connection_attempt_timeout` spécifie la valeur transmise au paramètre `connect_timeout` de l’URL de connexion. Le paramètre `postgresql_connection_pool_retries` spécifie le nombre de tentatives pour établir une connexion au point de terminaison PostgreSQL. [#66232](https://github.com/ClickHouse/ClickHouse/pull/66232) ([Dmitry Novik](https://github.com/novikd)).
* Réduit l’imprécision de `input_wait_elapsed_us`/`elapsed_us` dans `system.processors_profile_log`. [#66239](https://github.com/ClickHouse/ClickHouse/pull/66239) ([Azat Khuzhin](https://github.com/azat)).
* Améliore les ProfileEvents pour le cache du système de fichiers. [#66249](https://github.com/ClickHouse/ClickHouse/pull/66249) ([zhukai](https://github.com/nauu)).
* Ajoute des paramètres pour ignorer la clause `ON CLUSTER` dans les requêtes de gestion des collections nommées avec le stockage répliqué. [#66288](https://github.com/ClickHouse/ClickHouse/pull/66288) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* La fonction `generateSnowflakeID` permet désormais de spécifier un ID de machine comme paramètre afin d’éviter les collisions dans les grands clusters. [#66374](https://github.com/ClickHouse/ClickHouse/pull/66374) ([ZAWA\_ll](https://github.com/Zawa-ll)).
* Désactive la suspension avec `Ctrl+Z` en mode interactif. Il s’agit d’un piège fréquent, et ce comportement n’est pas celui attendu par la quasi-totalité des utilisateurs. J’imagine que seuls quelques utilisateurs particulièrement experts pourraient apprécier de suspendre des applications de terminal en arrière-plan, mais je n’en connais aucun. [#66511](https://github.com/ClickHouse/ClickHouse/pull/66511) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute une option pour valider le type de clé primaire dans Dictionaries. Sans cette option, pour les layouts simples, tout type de colonne sera implicitement converti en UInt64. [#66595](https://github.com/ClickHouse/ClickHouse/pull/66595) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).

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

* Vérifie les dépendances cycliques dans les requêtes CREATE/REPLACE/RENAME/EXCHANGE et lève une exception en cas de dépendance cyclique. Auparavant, de telles dépendances cycliques pouvaient provoquer un interblocage au démarrage du serveur. Corrige également certains bogues liés à la création des dépendances. [#65405](https://github.com/ClickHouse/ClickHouse/pull/65405) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige les tailles inattendues des colonnes `LowCardinality` dans les appels de fonction. [#65298](https://github.com/ClickHouse/ClickHouse/pull/65298) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un crash dans maxIntersections. [#65689](https://github.com/ClickHouse/ClickHouse/pull/65689) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la réinitialisation de la clause `VALID UNTIL` dans la définition de l'utilisateur après un redémarrage. [#66409](https://github.com/ClickHouse/ClickHouse/pull/66409) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige la colonne du temps restant dans `SHOW MERGES`. [#66735](https://github.com/ClickHouse/ClickHouse/pull/66735) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `Query was cancelled` pouvait s'afficher deux fois dans clickhouse-client. Ce comportement a été corrigé. [#66005](https://github.com/ClickHouse/ClickHouse/pull/66005) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige un crash lors de l'utilisation de `MaterializedMySQL` (une fonctionnalité expérimentale non prise en charge) avec TABLE OVERRIDE, qui mappe un champ MySQL NULL vers un champ ClickHouse not NULL. [#54649](https://github.com/ClickHouse/ClickHouse/pull/54649) ([Filipp Ozinov](https://github.com/bakwc)).
* Corrige une erreur logique lorsque l'expression `PREWHERE` ne lit aucune colonne et que la table n'a pas d'adaptive index granularity (table très ancienne). [#59173](https://github.com/ClickHouse/ClickHouse/pull/59173) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige un bogue dans le buffer d'annulation lors de l'annulation d'une requête. [#64478](https://github.com/ClickHouse/ClickHouse/pull/64478) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige le remplissage des colonnes des parts à partir des métadonnées (lorsque columns.txt n'existe pas). [#64757](https://github.com/ClickHouse/ClickHouse/pull/64757) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un crash avec `ALTER TABLE ... ON CLUSTER ... MODIFY SQL SECURITY`. [#64957](https://github.com/ClickHouse/ClickHouse/pull/64957) ([pufit](https://github.com/pufit)).
* Corrige un crash lors de la destruction d'AccessControl : ajout d'un arrêt explicite. [#64993](https://github.com/ClickHouse/ClickHouse/pull/64993) ([Vitaly Baranov](https://github.com/vitlibar)).
* Élimine récursivement la fonction injective dans l'argument des fonctions `uniq*`. Cela fonctionnait correctement auparavant, mais a été cassé dans le nouvel analyzer. [#65140](https://github.com/ClickHouse/ClickHouse/pull/65140) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige un nom de projection inattendu dans une requête avec CTE. [#65267](https://github.com/ClickHouse/ClickHouse/pull/65267) ([wudidapaopao](https://github.com/wudidapaopao)).
* Exige le privilège `dictGet` lors de l'accès aux Dictionaries via une requête directe ou le moteur de table `Dictionary`. [#65359](https://github.com/ClickHouse/ClickHouse/pull/65359) ([Joe Lynch](https://github.com/joelynch)).
* Corrige l'authentification S3 spécifique à l'utilisateur avec les sauvegardes incrémentielles. [#65481](https://github.com/ClickHouse/ClickHouse/pull/65481) ([Antonio Andelic](https://github.com/antonio2368)).
* Désactive l'optimisation `non-intersecting-parts` pour les requêtes avec `FINAL` lorsque l'optimisation `read-in-order` est activée. Cela pouvait entraîner des résultats de requête incorrects. Comme solution de contournement, désactivez `do_not_merge_across_partitions_select_final` et `split_parts_ranges_into_intersecting_and_non_intersecting_final` avant l'intégration de ce correctif. [#65505](https://github.com/ClickHouse/ClickHouse/pull/65505) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’exception `Index out of bound for blob metadata` lorsque tous les fichiers du batch de liste avaient été filtrés. [#65523](https://github.com/ClickHouse/ClickHouse/pull/65523) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de `NOT&#95;FOUND&#95;COLUMN&#95;IN&#95;BLOCK` lors de la fusion de déduplication d’une projection. [#65573](https://github.com/ClickHouse/ClickHouse/pull/65573) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction d’un bug dans MergeJoin. Une colonne dans une sérialisation sparse pouvait être traitée comme une colonne de son type imbriqué alors que la conversion requise n’avait pas été effectuée. [#65632](https://github.com/ClickHouse/ClickHouse/pull/65632) ([Nikita Taranov](https://github.com/nickitat)).
* Correction d’un bug où le niveau de compatibilité '23.4' n’était pas correctement appliqué. [#65737](https://github.com/ClickHouse/ClickHouse/pull/65737) ([cw5121](https://github.com/cw5121)).
* Correction des tables ODBC comportant des champs Nullable. [#65738](https://github.com/ClickHouse/ClickHouse/pull/65738) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)).
* Correction d’une data race dans `TCPHandler`, pouvant se produire lors d’une erreur fatale. [#65744](https://github.com/ClickHouse/ClickHouse/pull/65744) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’exceptions invalides dans la fonction `parseDateTime` avec les placeholders `%F` et `%D`. [#65768](https://github.com/ClickHouse/ClickHouse/pull/65768) ([Antonio Andelic](https://github.com/antonio2368)).
* Pour les requêtes qui lisent depuis `PostgreSQL`, annulation de la requête interne `PostgreSQL` une fois la requête ClickHouse terminée. Sinon, la requête `ClickHouse` ne peut pas être annulée tant que la requête interne `PostgreSQL` n’est pas terminée. [#65771](https://github.com/ClickHouse/ClickHouse/pull/65771) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’un bug dans la logique de court-circuit lorsque l’ancien analyzer et dictGetOrDefault sont utilisés. [#65802](https://github.com/ClickHouse/ClickHouse/pull/65802) ([jsc0218](https://github.com/jsc0218)).
* Correction d’un bug qui pouvait amener EmbeddedRocksDB avec écriture TTL à corrompre des fichiers SST. [#65816](https://github.com/ClickHouse/ClickHouse/pull/65816) ([Duc Canh Le](https://github.com/canhld94)).
* Les fonctions `bitTest`, `bitTestAll` et `bitTestAny` renvoient désormais une erreur si l’index de bit spécifié est hors limites. [#65818](https://github.com/ClickHouse/ClickHouse/pull/65818) ([Pablo Marcos](https://github.com/pamarcos)).
* Le paramètre `join_any_take_last_row` est pris en charge dans toute requête avec hash join. [#65820](https://github.com/ClickHouse/ClickHouse/pull/65820) ([vdimir](https://github.com/vdimir)).
* Meilleure gestion des conditions de join impliquant des vérifications `IS NULL` (par exemple, `ON (a = b AND (a IS NOT NULL) AND (b IS NOT NULL) ) OR ( (a IS NULL) AND (b IS NULL) )` est réécrit en `ON a <=> b`), avec correction d’une optimisation incorrecte lorsque des conditions autres que `IS NULL` sont présentes. [#65835](https://github.com/ClickHouse/ClickHouse/pull/65835) ([vdimir](https://github.com/vdimir)).
* Correction de l’augmentation de l’utilisation de la mémoire dans S3Queue. [#65839](https://github.com/ClickHouse/ClickHouse/pull/65839) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la gestion des ex æquo dans `arrayAUC` pour correspondre à sklearn. [#65840](https://github.com/ClickHouse/ClickHouse/pull/65840) ([gabrielmcg44](https://github.com/gabrielmcg44)).
* Correction de problèmes potentiels avec les connexions TLS du protocole du serveur MySQL. [#65917](https://github.com/ClickHouse/ClickHouse/pull/65917) ([Azat Khuzhin](https://github.com/azat)).
* Corrige d’éventuels problèmes liés aux connexions TLS du protocole client MySQL. [#65938](https://github.com/ClickHouse/ClickHouse/pull/65938) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la gestion de `SSL_ERROR_WANT_READ`/`SSL_ERROR_WANT_WRITE` avec un timeout nul. [#65941](https://github.com/ClickHouse/ClickHouse/pull/65941) ([Azat Khuzhin](https://github.com/azat)).
* Ajoute au cache d’inférence de schéma les paramètres manquants `input_format_csv_skip_first_lines/input_format_tsv_skip_first_lines/input_format_csv_try_infer_numbers_from_strings/input_format_csv_try_infer_strings_from_quoted_tuples`, car ils peuvent modifier le schéma obtenu. Cela évite des résultats d’inférence de schéma incorrects lorsque ces paramètres sont modifiés. [#65980](https://github.com/ClickHouse/ClickHouse/pull/65980) ([Kruglov Pavel](https://github.com/Avogar)).
* La colonne \_size dans le moteur S3 et la fonction de table S3 indique la taille d’un fichier à l’intérieur de l’archive, et non celle de l’archive elle-même. [#65993](https://github.com/ClickHouse/ClickHouse/pull/65993) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige la résolution des sous-colonnes dynamiques dans l’analyzer et évite de lire la colonne entière lors de la lecture d’une sous-colonne dynamique. [#66004](https://github.com/ClickHouse/ClickHouse/pull/66004) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la fusion de config pour from\_env avec des overrides replace. [#66034](https://github.com/ClickHouse/ClickHouse/pull/66034) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un possible blocage de `GRPCServer` lors de l’arrêt. [#66061](https://github.com/ClickHouse/ClickHouse/pull/66061) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige plusieurs cas dans la fonction `has` avec des arguments `LowCardinality` non constants. [#66088](https://github.com/ClickHouse/ClickHouse/pull/66088) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige `groupArrayIntersect`. Le comportement était incorrect dans la fonction `merge()`. De plus, le comportement de `deserialise()` a été corrigé pour les données numériques et générales. [#66103](https://github.com/ClickHouse/ClickHouse/pull/66103) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige un bug de dépassement de tampon dans l’implémentation de `unbin`/`unhex`. [#66106](https://github.com/ClickHouse/ClickHouse/pull/66106) ([Nikita Taranov](https://github.com/nickitat)).
* Désactive l’optimisation `merge-filters` introduite dans [#64760](https://github.com/ClickHouse/ClickHouse/issues/64760). Elle peut provoquer une exception si l’optimisation fusionne deux expressions de filtre sans appliquer d’évaluation en court-circuit. [#66126](https://github.com/ClickHouse/ClickHouse/pull/66126) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige le problème où le serveur ne parvenait pas à analyser des fichiers Avro encodés avec des arrays de taille de block négative, ce qui est désormais autorisé par la spécification Avro. [#66130](https://github.com/ClickHouse/ClickHouse/pull/66130) ([Serge Klochkov](https://github.com/slvrtrn)).
* Corrige un bug dans le client ZooKeeper : une session pouvait rester bloquée dans un état inutilisable après avoir reçu une erreur matérielle de ZooKeeper. Par exemple, cela pouvait se produire à cause de la « soft memory limit » dans ClickHouse Keeper. [#66140](https://github.com/ClickHouse/ClickHouse/pull/66140) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige un problème dans SumIfToCountIfVisitor avec les entiers signés. [#66146](https://github.com/ClickHouse/ClickHouse/pull/66146) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un cas rare de valeur manquante dans le résultat d’une requête distribuée. [#66174](https://github.com/ClickHouse/ClickHouse/pull/66174) ([vdimir](https://github.com/vdimir)).
* Corrige l’ordre d’analyse des champs de métadonnées dans StorageDeltaLake. [#66211](https://github.com/ClickHouse/ClickHouse/pull/66211) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ne plus générer `TIMEOUT_EXCEEDED` pour le mode `none_only_active` de `distributed_ddl_output_mode`. [#66218](https://github.com/ClickHouse/ClickHouse/pull/66218) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corriger la gestion de la limite pour `system.numbers_mt` lorsqu’aucun index ne peut être utilisé. [#66231](https://github.com/ClickHouse/ClickHouse/pull/66231) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction de la détection par le serveur ClickHouse du nombre maximal de cœurs CPU utilisables tel que défini par cgroups v2 lorsque le serveur s’exécute dans un conteneur comme Docker. Plus précisément, les conteneurs exécutent souvent leur processus dans le cgroup racine, qui a un nom vide. Dans ce cas, ClickHouse ignorait les limites CPU définies par cgroups v2. [#66237](https://github.com/ClickHouse/ClickHouse/pull/66237) ([filimonov](https://github.com/filimonov)).
* Corriger l’erreur `Not-ready set` lorsqu’une sous-requête avec `IN` est utilisée dans la contrainte. [#66261](https://github.com/ClickHouse/ClickHouse/pull/66261) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corriger le signalement des erreurs lors de la copie vers S3 ou AzureBlobStorage. [#66295](https://github.com/ClickHouse/ClickHouse/pull/66295) ([Vitaly Baranov](https://github.com/vitlibar)).
* Empêcher le watchdog de conserver les descripteurs de fichiers journaux supprimés du répertoire (après rotation). [#66334](https://github.com/ClickHouse/ClickHouse/pull/66334) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corriger le bogue où logicalexpressionoptimizerpass perdait le type logique d’une constante. [#66344](https://github.com/ClickHouse/ClickHouse/pull/66344) ([pn](https://github.com/chloro-pn)).
* Corriger l’erreur `Column identifier is already registered` avec `group_by_use_nulls=true` et le nouvel analyseur. [#66400](https://github.com/ClickHouse/ClickHouse/pull/66400) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corriger un résultat potentiellement incorrect pour les requêtes faisant des jointures et appliquant un filtre sur une table avec moteur externe (comme PostgreSQL), en raison d’un pushdown de filtre trop agressif. Désormais, les conditions de la clause `WHERE` ne seront pas envoyées à la base de données externe dans le cas d’une jointure externe avec une table externe. [#66402](https://github.com/ClickHouse/ClickHouse/pull/66402) ([vdimir](https://github.com/vdimir)).
* Ajout de la matérialisation de colonne manquante pour la jointure croisée. [#66413](https://github.com/ClickHouse/ClickHouse/pull/66413) ([lgbo](https://github.com/lgbo-ustc)).
* Corriger l’erreur `Cannot find column` pour les requêtes avec une expression constante dans la clé `GROUP BY` et le nouvel analyseur activé. [#66433](https://github.com/ClickHouse/ClickHouse/pull/66433) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Éviter une possible erreur logique lors de l’import au format Npy en cas de niveau d’imbrication de tableau incorrect, et corriger les tests d’autres types d’erreurs. [#66461](https://github.com/ClickHouse/ClickHouse/pull/66461) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corriger un résultat erroné de count() lorsqu’une fonction non déterministe est utilisée dans le prédicat. [#66510](https://github.com/ClickHouse/ClickHouse/pull/66510) ([Duc Canh Le](https://github.com/canhld94)).
* Suivre correctement l’utilisation mémoire pour `Allocator::realloc`. [#66548](https://github.com/ClickHouse/ClickHouse/pull/66548) ([Antonio Andelic](https://github.com/antonio2368)).
* Corriger la lecture de mémoire non initialisée lors du hachage de tuples vides. [#66562](https://github.com/ClickHouse/ClickHouse/pull/66562) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corriger un résultat invalide pour les requêtes avec `WINDOW`. Cela pouvait se produire lorsque les colonnes `PARTITION` utilisaient une sérialisation sparse et que les fonctions de fenêtre étaient exécutées en parallèle. [#66579](https://github.com/ClickHouse/ClickHouse/pull/66579) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de la suppression des collections nommées dans le stockage local. [#66599](https://github.com/ClickHouse/ClickHouse/pull/66599) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction du fait que `column_length` n’est pas mis à jour dans `ColumnTuple::insertManyFrom`. [#66626](https://github.com/ClickHouse/ClickHouse/pull/66626) ([lgbo](https://github.com/lgbo-ustc)).
* Correction des erreurs `Unknown identifier` et `Column is not under aggregate function` pour les requêtes avec l’expression `(column IS NULL).` Le bug a été déclenché par [#65088](https://github.com/ClickHouse/ClickHouse/issues/65088), uniquement avec l’analyseur désactivé. [#66654](https://github.com/ClickHouse/ClickHouse/pull/66654) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’erreur `Method getResultType is not supported for QUERY query node` lorsqu’une sous-requête scalaire était utilisée comme premier argument de IN (avec le nouvel analyseur). [#66655](https://github.com/ClickHouse/ClickHouse/pull/66655) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une possible erreur PARAMETER\_OUT\_OF\_BOUND lors de la lecture d’une sous-colonne de Variant. [#66659](https://github.com/ClickHouse/ClickHouse/pull/66659) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’un cas rare de fusion bloquée après la suppression d’une colonne. [#66707](https://github.com/ClickHouse/ClickHouse/pull/66707) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l’assertion `isUniqTypes` lors d’un insert select depuis des sources distantes. [#66722](https://github.com/ClickHouse/ClickHouse/pull/66722) ([Sema Checherinda](https://github.com/CheSema)).
* Correction d’une erreur logique dans PrometheusRequestHandler. [#66621](https://github.com/ClickHouse/ClickHouse/pull/66621) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’un cas lié à la fonction `indexHint` découvert par le fuzzer. [#66286](https://github.com/ClickHouse/ClickHouse/pull/66286) ([Anton Popov](https://github.com/CurtizJ)).
* Correction du formatage de l’AST de 'create table b empty as a'. [#64951](https://github.com/ClickHouse/ClickHouse/pull/64951) ([Michael Kolupaev](https://github.com/al13n321)).

### <a id="246" /> Version 24.6 de ClickHouse, 2024-07-01. [Présentation](https://presentations.clickhouse.com/2024-release-24.6/), [Vidéo](https://www.youtube.com/watch?v=BK-x8lpvOQw)

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

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

* Active le chargement asynchrone des bases de données et des tables par défaut. Voir `async_load_databases` dans config.xml. Bien que ce changement soit entièrement compatible, il peut introduire une différence de comportement. Lorsque `async_load_databases` vaut false, comme dans les versions précédentes, le serveur n'accepte pas de connexions tant que toutes les tables ne sont pas chargées. Lorsque `async_load_databases` vaut true, comme dans la nouvelle version, le serveur peut accepter des connexions avant que toutes les tables ne soient chargées. Si une requête est effectuée sur une table qui n'est pas encore chargée, elle attendra le chargement de la table, ce qui peut prendre beaucoup de temps. Cela peut modifier le comportement du serveur s'il fait partie d'un grand système distribué derrière un load balancer. Dans le premier cas, le load balancer peut recevoir un refus de connexion et basculer rapidement vers un autre serveur. Dans le second cas, le load balancer peut se connecter à un serveur qui charge encore les tables, et la requête aura une latence plus élevée. De plus, si de nombreuses requêtes s'accumulent en attente, cela peut entraîner un problème de « thundering herd » lorsqu'elles commencent à être traitées simultanément. Cela ne peut faire une différence que pour des backends distribués fortement chargés. Vous pouvez définir la valeur de `async_load_databases` sur false pour éviter ce problème. [#57695](https://github.com/ClickHouse/ClickHouse/pull/57695) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le paramètre `replace_long_file_name_to_hash` est activé par défaut pour les tables `MergeTree`. [#64457](https://github.com/ClickHouse/ClickHouse/pull/64457) ([Anton Popov](https://github.com/CurtizJ)). Ce paramètre est entièrement compatible, et aucune action n'est nécessaire lors de la mise à niveau. Le nouveau format de données est pris en charge par toutes les versions à partir de 23.9. Après avoir activé ce paramètre, vous ne pouvez plus revenir à une version 23.8 ou antérieure.
* Certaines requêtes invalides échoueront plus tôt lors de l'analyse syntaxique. Remarque : la prise en charge des expressions KQL inline (le langage Kusto expérimental) a été désactivée lorsqu'elles sont placées dans une table function `kql` sans littéral de chaîne, par exemple `kql(garbage | trash)` au lieu de `kql('garbage | trash')` ou `kql($$garbage | trash$$)`. Cette fonctionnalité a été introduite involontairement et ne devrait pas exister. [#61500](https://github.com/ClickHouse/ClickHouse/pull/61500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Refonte du traitement parallèle en mode `Ordered` du stockage `S3Queue`. Cette PR est incompatible avec les versions précédentes pour le mode Ordered si vous utilisiez les paramètres `s3queue_processing_threads_num` ou `s3queue_total_shards_num`. Le paramètre `s3queue_total_shards_num` est supprimé ; auparavant, son utilisation n'était autorisée qu'avec `s3queue_allow_experimental_sharded_mode`, qui est maintenant obsolète. Un nouveau paramètre a été ajouté : `s3queue_buckets`. [#64349](https://github.com/ClickHouse/ClickHouse/pull/64349) ([Kseniia Sumarokova](https://github.com/kssenii)).
* De nouvelles fonctions `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID` et `dateTime64ToSnowflakeID` ont été ajoutées. Contrairement aux fonctions existantes `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake` et `dateTime64ToSnowflake`, les nouvelles fonctions sont compatibles avec la fonction `generateSnowflakeID`, c'est-à-dire qu'elles acceptent les Snowflake IDs générés par `generateSnowflakeID` et produisent des Snowflake IDs du même type que `generateSnowflakeID` (c.-à-d. `UInt64`). En outre, les nouvelles fonctions utilisent par défaut l'époque UNIX (c.-à-d. 1970-01-01), tout comme `generateSnowflakeID`. Si nécessaire, une époque différente, par exemple l'époque de Twitter/X du 2010-11-04, c.-à-d. 1288834974657 ms depuis l'époque UNIX, peut être transmise. Les anciennes fonctions de conversion sont obsolètes et seront supprimées après une période de transition : pour continuer à les utiliser malgré tout, activez le paramètre `allow_deprecated_snowflake_conversion_functions`. [#64948](https://github.com/ClickHouse/ClickHouse/pull/64948) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Permet de stocker des collections nommées dans ClickHouse Keeper. [#64574](https://github.com/ClickHouse/ClickHouse/pull/64574) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Prise en charge des tuples vides. [#55061](https://github.com/ClickHouse/ClickHouse/pull/55061) ([Amos Bird](https://github.com/amosbird)).
* Ajout de fonctions d’encodage et de décodage de la courbe de Hilbert. [#60156](https://github.com/ClickHouse/ClickHouse/pull/60156) ([Artem Mustafin](https://github.com/Artemmm91)).
* Ajout de la prise en charge de l’analyse d’index pour `hilbertEncode`. [#64662](https://github.com/ClickHouse/ClickHouse/pull/64662) ([Artem Mustafin](https://github.com/Artemmm91)).
* Ajout de la prise en charge de la lecture de la géométrie `LINESTRING` au format WKT à l’aide de la fonction `readWKTLineString`. [#62519](https://github.com/ClickHouse/ClickHouse/pull/62519) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permet d’attacher des parts depuis un autre disk. [#63087](https://github.com/ClickHouse/ClickHouse/pull/63087) ([Unalian](https://github.com/Unalian)).
* Ajout de nouvelles fonctions SQL `generateSnowflakeID` pour générer des Snowflake IDs au format Twitter. [#63577](https://github.com/ClickHouse/ClickHouse/pull/63577) ([Danila Puzov](https://github.com/kazalika)).
* Ajout des paramètres `merge_workload` et `mutation_workload` pour réguler l’utilisation et le partage des ressources entre les merges, les mutations et les autres workloads. [#64061](https://github.com/ClickHouse/ClickHouse/pull/64061) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout de la prise en charge de la comparaison des types `IPv4` et `IPv6` avec l’opérateur `=`. [#64292](https://github.com/ClickHouse/ClickHouse/pull/64292) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Prise en charge des arguments Decimal dans les fonctions mathématiques binaires (pow, atan2, max2, min2, hypot). [#64582](https://github.com/ClickHouse/ClickHouse/pull/64582) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Ajout des fonctions SQL `parseReadableSize` (ainsi que des variantes `OrNull` et `OrZero`). [#64742](https://github.com/ClickHouse/ClickHouse/pull/64742) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Ajout des paramètres serveur `max_table_num_to_throw` et `max_database_num_to_throw` pour limiter le nombre de bases de données ou de tables dans les requêtes `CREATE`. [#64781](https://github.com/ClickHouse/ClickHouse/pull/64781) ([Xu Jia](https://github.com/XuJia0210)).
* Ajout de la colonne virtuelle `_time` aux storages de type fichier (s3/file/hdfs/url/azureBlobStorage). [#64947](https://github.com/ClickHouse/ClickHouse/pull/64947) ([Ilya Golshtein](https://github.com/ilejn)).
* Introduction des nouvelles fonctions `base64URLEncode`, `base64URLDecode` et `tryBase64URLDecode`. [#64991](https://github.com/ClickHouse/ClickHouse/pull/64991) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Ajout de la nouvelle fonction `editDistanceUTF8`, qui calcule la [distance d’édition](https://en.wikipedia.org/wiki/Edit_distance) entre deux chaînes UTF8. [#65269](https://github.com/ClickHouse/ClickHouse/pull/65269) ([LiuNeng](https://github.com/liuneng1994)).
* Ajout de la configuration `http_response_headers` pour prendre en charge des en-têtes de réponse personnalisés dans des handlers HTTP personnalisés. [#63562](https://github.com/ClickHouse/ClickHouse/pull/63562) ([Grigorii](https://github.com/GSokol)).
* Ajout d’une nouvelle table function `loop` pour renvoyer les résultats d’une requête en boucle infinie. [#63452](https://github.com/ClickHouse/ClickHouse/pull/63452) ([Sariel](https://github.com/sarielwxm)). Utile pour les tests.
* Ajout de deux colonnes supplémentaires dans `system.query_log` : `used_privileges` et `missing_privileges`. `used_privileges` est renseignée avec les privilèges vérifiés lors de l'exécution de la requête, et `missing_privileges` contient les privilèges requis qui sont absents. [#64597](https://github.com/ClickHouse/ClickHouse/pull/64597) ([Alexey Katsman](https://github.com/alexkats)).
* Ajout d'un paramètre `output_format_pretty_display_footer_column_names` qui, lorsqu'il est activé, affiche les noms de colonnes en bas du tableau pour les tableaux longs (50 lignes par défaut) ; la valeur seuil du nombre minimum de lignes est contrôlée par `output_format_pretty_display_footer_column_names_min_rows`. [#65144](https://github.com/ClickHouse/ClickHouse/pull/65144) ([Shaun Struwig](https://github.com/Blargian)).

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

* Ajout de statistiques de type « nombre de valeurs distinctes ». [#59357](https://github.com/ClickHouse/ClickHouse/pull/59357) ([Han Fei](https://github.com/hanfei1991)).
* Prise en charge des statistiques pour ReplicatedMergeTree. [#64934](https://github.com/ClickHouse/ClickHouse/pull/64934) ([Han Fei](https://github.com/hanfei1991)).
* Si un « groupe de répliques » est configuré pour une base de données `Replicated`, création automatique d’un cluster incluant les répliques de tous les groupes. [#64312](https://github.com/ClickHouse/ClickHouse/pull/64312) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajout des paramètres `parallel_replicas_custom_key_range_lower` et `parallel_replicas_custom_key_range_upper` pour contrôler la façon dont les répliques parallèles avec des shards dynamiques parallélisent les requêtes lors de l’utilisation d’un filtre par plage. [#64604](https://github.com/ClickHouse/ClickHouse/pull/64604) ([josh-hildred](https://github.com/josh-hildred)).

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

* Ajout de la possibilité de réorganiser les lignes lors d’un `insert` afin d’optimiser la taille sans enfreindre l’ordre défini par `PRIMARY KEY`. Cette fonctionnalité est contrôlée par le paramètre `optimize_row_order` (désactivé par défaut). [#63578](https://github.com/ClickHouse/ClickHouse/pull/63578) ([Igor Markelov](https://github.com/ElderlyPassionFruit)).
* Ajout d’un Parquet reader natif, capable de lire directement un binaire Parquet dans des colonnes ClickHouse. Cette fonctionnalité est contrôlée par le paramètre `input_format_parquet_use_native_reader` (désactivé par défaut). [#60361](https://github.com/ClickHouse/ClickHouse/pull/60361) ([ZhiHong Zhang](https://github.com/copperybean)).
* Prise en charge de l’optimisation partielle du comptage trivial lorsque le filtre de la query peut sélectionner des plages exactes dans des tables MergeTree. [#60463](https://github.com/ClickHouse/ClickHouse/pull/60463) ([Amos Bird](https://github.com/amosbird)).
* Réduction de l’utilisation mémoire maximale des `INSERT` multithread grâce au regroupement des chunks de plusieurs threads dans une seule transformation. [#61047](https://github.com/ClickHouse/ClickHouse/pull/61047) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Réduction de l’utilisation mémoire avec le stockage objet Azure grâce à une allocation mémoire fixe, évitant l’allocation d’un buffer supplémentaire. [#63160](https://github.com/ClickHouse/ClickHouse/pull/63160) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Réduction du nombre d’appels à des fonctions virtuelles dans `ColumnNullable::size`. [#60556](https://github.com/ClickHouse/ClickHouse/pull/60556) ([HappenLee](https://github.com/HappenLee)).
* Accélération de `splitByRegexp` lorsque l’argument de regular expression est un seul caractère. [#62696](https://github.com/ClickHouse/ClickHouse/pull/62696) ([Robert Schulze](https://github.com/rschu1ze)).
* Accélération de l’aggregation avec des clés de 8 et 16 bits grâce au suivi des clés minimales et maximales utilisées. Cela permet de réduire le nombre de cellules à vérifier. [#62746](https://github.com/ClickHouse/ClickHouse/pull/62746) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimisation de l’opérateur IN lorsque la partie gauche est `LowCardinality` et la partie droite un ensemble de constantes. [#64060](https://github.com/ClickHouse/ClickHouse/pull/64060) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Utilisation d’un thread pool pour initialiser et détruire les hash tables dans `ConcurrentHashJoin`. [#64241](https://github.com/ClickHouse/ClickHouse/pull/64241) ([Nikita Taranov](https://github.com/nickitat)).
* Optimisation des vertical merges dans les tables avec des colonnes sparse. [#64311](https://github.com/ClickHouse/ClickHouse/pull/64311) ([Anton Popov](https://github.com/CurtizJ)).
* Activation des prefetches de données depuis un remote filesystem pendant les vertical merges. Cela améliore la latence des vertical merges dans les tables dont les données sont stockées sur un remote filesystem. [#64314](https://github.com/ClickHouse/ClickHouse/pull/64314) ([Anton Popov](https://github.com/CurtizJ)).
* Réduction des appels redondants à `isDefault` dans `ColumnSparse::filter` afin d’améliorer les performances. [#64426](https://github.com/ClickHouse/ClickHouse/pull/64426) ([Jiebin Sun](https://github.com/jiebinn)).
* Accélération des commandes keeper-client `find_super_nodes` et `find_big_family` en effectuant plusieurs requêtes `getChildren` asynchrones. [#64628](https://github.com/ClickHouse/ClickHouse/pull/64628) ([Alexander Gololobov](https://github.com/davenger)).
* Amélioration de la fonction `least`/`greatest` pour les arguments numériques de type Nullable. [#64668](https://github.com/ClickHouse/ClickHouse/pull/64668) ([KevinyhZou](https://github.com/KevinyhZou)).
* Possibilité de fusionner deux étapes de filtrage consécutives d’un query plan. Cela améliore l’optimisation du push-down des filtres si la filter condition peut être poussée vers le bas depuis l’étape parente. [#64760](https://github.com/ClickHouse/ClickHouse/pull/64760) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Supprime une optimisation défaillante dans l’implémentation verticale de FINAL et réactive par défaut l’algorithme vertical de FINAL. [#64783](https://github.com/ClickHouse/ClickHouse/pull/64783) ([Duc Canh Le](https://github.com/canhld94)).
* Supprime les nœuds ALIAS de l’expression de filtrage. Cela améliore légèrement les performances des requêtes avec `PREWHERE` (avec le nouvel analyseur). [#64793](https://github.com/ClickHouse/ClickHouse/pull/64793) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Réactive la mise en cache des sessions OpenSSL. [#65111](https://github.com/ClickHouse/ClickHouse/pull/65111) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajoute des paramètres pour désactiver la matérialisation des skip indexes et des statistiques lors des insertions (`materialize_skip_indexes_on_insert` et `materialize_statistics_on_insert`). [#64391](https://github.com/ClickHouse/ClickHouse/pull/64391) ([Anton Popov](https://github.com/CurtizJ)).
* Utilise la taille de la mémoire allouée pour calculer la taille du row group et réduire le pic de mémoire du writer Parquet en mode monothread. [#64424](https://github.com/ClickHouse/ClickHouse/pull/64424) ([LiuNeng](https://github.com/liuneng1994)).
* Améliore l’itérateur de la colonne creuse afin de réduire les appels à `size`. [#64497](https://github.com/ClickHouse/ClickHouse/pull/64497) ([Jiebin Sun](https://github.com/jiebinn)).
* Met à jour la condition pour utiliser une copie côté serveur pour les sauvegardes vers Azure blob storage. [#64518](https://github.com/ClickHouse/ClickHouse/pull/64518) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Optimise l’utilisation de la mémoire des fusions verticales pour les tables comportant un grand nombre de skip indexes. [#64580](https://github.com/ClickHouse/ClickHouse/pull/64580) ([Anton Popov](https://github.com/CurtizJ)).

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

* `SHOW CREATE TABLE` exécuté sur des tables système affichera désormais le commentaire très utile, propre à chaque table, qui explique pourquoi cette table est nécessaire. [#63788](https://github.com/ClickHouse/ClickHouse/pull/63788) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Le deuxième argument (`scale`) des fonctions `round()`, `roundBankers()`, `floor()`, `ceil()` et `trunc()` peut désormais être non constant. [#64798](https://github.com/ClickHouse/ClickHouse/pull/64798) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Rechargement à chaud de la storage policy pour les tables `Distributed` lors de l'ajout d'un nouveau disk. [#58285](https://github.com/ClickHouse/ClickHouse/pull/58285) ([Duc Canh Le](https://github.com/canhld94)).
* Évite un interblocage potentiel lors de l'analyse d'index de MergeTree pendant l'ordonnancement des threads dans un service saturé. [#59427](https://github.com/ClickHouse/ClickHouse/pull/59427) ([Sean Haynes](https://github.com/seandhaynes)).
* Plusieurs corrections mineures de cas limites pour la prise en charge du proxy S3 et du tunneling. [#63427](https://github.com/ClickHouse/ClickHouse/pull/63427) ([Arthur Passos](https://github.com/arthurpassos)).
* Améliore la visibilité des resoumissions de io\_uring. Renomme l'événement de profile `IOUringSQEsResubmits` -> `IOUringSQEsResubmitsAsync` et ajoute un nouvel événement, `IOUringSQEsResubmitsSync`. [#63699](https://github.com/ClickHouse/ClickHouse/pull/63699) ([Tomer Shafir](https://github.com/tomershafir)).
* Ajout d'un nouveau paramètre, `metadata_keep_free_space_bytes`, pour conserver de l'espace libre sur le disk de metadata storage. [#64128](https://github.com/ClickHouse/ClickHouse/pull/64128) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ajoute des metrics pour suivre le nombre de répertoires créés et supprimés par le metadata storage `plain_rewritable`, ainsi que le nombre d'entries dans l'in-memory map local-vers-distant. [#64175](https://github.com/ClickHouse/ClickHouse/pull/64175) ([Julia Kartseva](https://github.com/jkartseva)).
* Le query cache considère désormais des queries identiques avec des settings différents comme étant différentes. Cela améliore la robustesse lorsque différents settings (par ex. `limit` ou `additional_table_filters`) peuvent affecter le résultat de la query. [#64205](https://github.com/ClickHouse/ClickHouse/pull/64205) ([Robert Schulze](https://github.com/rschu1ze)).
* Prend en charge le code d'error non standard `QpsLimitExceeded` dans l'object storage comme error réessayable. [#64225](https://github.com/ClickHouse/ClickHouse/pull/64225) ([Sema Checherinda](https://github.com/CheSema)).
* Interdit de convertir une table MergeTree en table répliquée si le chemin ZooKeeper de cette table existe déjà. [#64244](https://github.com/ClickHouse/ClickHouse/pull/64244) ([Kirill](https://github.com/kirillgarbar)).
* Ajout d'un nouveau paramètre `input_format_parquet_prefer_block_bytes` pour contrôler la taille moyenne en octets du block de sortie, et modification de la default value de `input_format_parquet_max_block_size` à 65409. [#64427](https://github.com/ClickHouse/ClickHouse/pull/64427) ([LiuNeng](https://github.com/liuneng1994)).
* Permet de contourner le proxy pour les hosts spécifiés dans la variable d'environnement `no_proxy` et dans la configuration du proxy ClickHouse. [#63314](https://github.com/ClickHouse/ClickHouse/pull/63314) ([Arthur Passos](https://github.com/arthurpassos)).
* Démarre toujours Keeper avec un nombre suffisant de threads dans le pool global de threads. [#64444](https://github.com/ClickHouse/ClickHouse/pull/64444) ([Duc Canh Le](https://github.com/canhld94)).
* Les settings de la config de l'utilisateur n'affectent pas les merges ni les mutations pour `MergeTree` sur object storage. [#64456](https://github.com/ClickHouse/ClickHouse/pull/64456) ([alesapin](https://github.com/alesapin)).
* Prend en charge le code d'erreur non standard `TotalQpsLimitExceeded` dans le stockage objet en tant qu'erreur pouvant faire l'objet d'une nouvelle tentative. [#64520](https://github.com/ClickHouse/ClickHouse/pull/64520) ([Sema Checherinda](https://github.com/CheSema)).
* Mise à jour de l'Advanced Dashboard pour les versions open-source et ClickHouse Cloud afin d'inclure un graphique pour 'Connexions réseau simultanées maximales'. [#64610](https://github.com/ClickHouse/ClickHouse/pull/64610) ([Thom O'Connor](https://github.com/thomoco)).
* Améliore le rapport de progression pour `zeros_mt` et `generateRandom`. [#64804](https://github.com/ClickHouse/ClickHouse/pull/64804) ([Raúl Marín](https://github.com/Algunenano)).
* Ajoute une métrique asynchrone `jemalloc.profile.active` pour indiquer si l'échantillonnage est actuellement actif. Il s'agit d'un mécanisme d'activation en plus de `prof.active` ; les deux doivent être actifs pour que le thread appelant effectue l'échantillonnage. [#64842](https://github.com/ClickHouse/ClickHouse/pull/64842) ([Unalian](https://github.com/Unalian)).
* Supprime l'indication « important » de `allow_experimental_join_condition`. Ce marquage a pu empêcher l'exécution correcte de requêtes distribuées dans un cluster avec des versions mixtes. [#65008](https://github.com/ClickHouse/ClickHouse/pull/65008) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout des métriques asynchrones du serveur `DiskGetObjectThrottler*` et `DiskGetObjectThrottler*`, qui reflètent la limite de débit en requêtes par seconde définie par les paramètres de disque `s3_max_get_rps` et `s3_max_put_rps`, ainsi que le nombre de requêtes actuellement disponibles pouvant être envoyées sans atteindre la limite de throttling du disque. Les métriques sont définies pour chaque disque ayant une limite configurée. [#65050](https://github.com/ClickHouse/ClickHouse/pull/65050) ([Sergei Trifonov](https://github.com/serxa)).
* Initialise le collecteur global de traces pour `Poco::ThreadPool` (nécessaire pour Keeper, etc.). [#65239](https://github.com/ClickHouse/ClickHouse/pull/65239) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajoute une validation lors de la création d'un utilisateur avec `bcrypt_hash`. [#65242](https://github.com/ClickHouse/ClickHouse/pull/65242) ([Raúl Marín](https://github.com/Algunenano)).
* Ajoute des événements de profil pour le nombre de lignes lues pendant/après `PREWHERE`. [#64198](https://github.com/ClickHouse/ClickHouse/pull/64198) ([Nikita Taranov](https://github.com/nickitat)).
* Affiche la requête dans `EXPLAIN PLAN` avec des répliques parallèles. [#64298](https://github.com/ClickHouse/ClickHouse/pull/64298) ([vdimir](https://github.com/vdimir)).
* Renomme `allow_deprecated_functions` en `allow_deprecated_error_prone_window_functions`. [#64358](https://github.com/ClickHouse/ClickHouse/pull/64358) ([Raúl Marín](https://github.com/Algunenano)).
* Respecte également le paramètre `max_read_buffer_size` pour les descripteurs de fichier dans la fonction de table `file`. [#64532](https://github.com/ClickHouse/ClickHouse/pull/64532) ([Azat Khuzhin](https://github.com/azat)).
* Désactive les transactions pour les moteurs de stockage non pris en charge, y compris pour les vues matérialisées. [#64918](https://github.com/ClickHouse/ClickHouse/pull/64918) ([alesapin](https://github.com/alesapin)).
* Interdit la clause `QUALIFY` dans l'ancien analyseur. L'ancien analyseur ignorait `QUALIFY`, ce qui pouvait entraîner une suppression inattendue de données dans les mutations. [#65356](https://github.com/ClickHouse/ClickHouse/pull/65356) ([Dmitry Novik](https://github.com/novikd)).

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

* Un bug dans la bibliothèque Apache ORC a été corrigé : le calcul des statistiques ORC à l’écriture a été corrigé pour les types non signés sur toutes les plateformes, ainsi que pour Int8 sur ARM. [#64563](https://github.com/ClickHouse/ClickHouse/pull/64563) ([Michael Kolupaev](https://github.com/al13n321)).
* Le comportement de ClickHouse concernant l’interprétation des Tuples au format CSV a été rétabli. Ce changement annule effectivement [https://github.com/ClickHouse/ClickHouse/pull/60994](https://github.com/ClickHouse/ClickHouse/pull/60994) et ne le rend disponible qu’au travers de quelques paramètres : `output_format_csv_serialize_tuple_into_separate_columns`, `input_format_csv_deserialize_separate_columns_into_tuple` et `input_format_csv_try_infer_strings_from_quoted_tuples`. [#65170](https://github.com/ClickHouse/ClickHouse/pull/65170) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction d’une erreur d’autorisation permettant, dans une situation particulière, à un utilisateur d’élever ses privilèges sur la base de données default sans les grants nécessaires. [#64769](https://github.com/ClickHouse/ClickHouse/pull/64769) ([pufit](https://github.com/pufit)).
* Correction d’un crash avec UniqInjectiveFunctionsEliminationPass et uniqCombined. [#65188](https://github.com/ClickHouse/ClickHouse/pull/65188) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’un bug dans ClickHouse Keeper provoquant une incohérence de digest lors de la fermeture de session. [#65198](https://github.com/ClickHouse/ClickHouse/pull/65198) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Utilisation du bon alignement mémoire pour le combinator Distinct. Auparavant, un crash pouvait se produire en raison d’une allocation mémoire invalide lors de l’utilisation du combinator. [#65379](https://github.com/ClickHouse/ClickHouse/pull/65379) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un crash avec `DISTINCT` et les window functions. [#64767](https://github.com/ClickHouse/ClickHouse/pull/64767) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction du skip index 'set', qui ne fonctionnait pas avec IN et indexHint(). [#62083](https://github.com/ClickHouse/ClickHouse/pull/62083) ([Michael Kolupaev](https://github.com/al13n321)).
* Prise en charge de l’exécution d’une fonction lors de l’affectation de la valeur d’une parameterized view. [#63502](https://github.com/ClickHouse/ClickHouse/pull/63502) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction du suivi mémoire de Parquet. [#63584](https://github.com/ClickHouse/ClickHouse/pull/63584) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction de la lecture de colonnes de type `Tuple(Map(LowCardinality(String), String), ...)`. [#63956](https://github.com/ClickHouse/ClickHouse/pull/63956) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’erreur `Cyclic aliases` pour des alias cycliques de types différents (expression et fonction). [#63993](https://github.com/ClickHouse/ClickHouse/pull/63993) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Cette correction utilisera un contexte redéfini approprié avec le bon définisseur pour chaque vue individuelle du query pipeline. [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)).
* Correction dans l’analyzer : l’erreur "Not found column" est corrigée lors de l’utilisation d’INTERPOLATE. [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de la création de backups vers des S3 buckets avec des credentials différents de ceux du disk contenant le fichier. [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)).
* Le query cache considère désormais deux requêtes identiques exécutées sur des bases de données différentes comme distinctes. Le comportement précédent pouvait être utilisé pour contourner l’absence de privilèges de lecture sur une table. [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige un arrêt brutal possible en cas d’exception non interceptée dans `~WriteBufferFromFileDescriptor` de StatusFile. [#64206](https://github.com/ClickHouse/ClickHouse/pull/64206) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige l’erreur `duplicate alias` pour les requêtes distribuées avec `ARRAY JOIN`. [#64226](https://github.com/ClickHouse/ClickHouse/pull/64226) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un `accurateCast` inattendu d’une chaîne en entier. [#64255](https://github.com/ClickHouse/ClickHouse/pull/64255) ([wudidapaopao](https://github.com/wudidapaopao)).
* Corrige la simplification en CNF lorsqu’un groupe `OR` contient des atomes mutuellement exclusifs. [#64256](https://github.com/ClickHouse/ClickHouse/pull/64256) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige la validation de la taille du Query Tree. [#64377](https://github.com/ClickHouse/ClickHouse/pull/64377) ([Dmitry Novik](https://github.com/novikd)).
* Corrige l’erreur `Logical error: Bad cast` pour la table `Buffer` avec `PREWHERE`. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Empêche la journalisation récursive dans `blob_storage_log` lorsqu’il est stocké sur le stockage objet. [#64393](https://github.com/ClickHouse/ClickHouse/pull/64393) ([vdimir](https://github.com/vdimir)).
* Corrige les requêtes `CREATE TABLE AS` pour les tables avec des expressions par défaut. [#64455](https://github.com/ClickHouse/ClickHouse/pull/64455) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige le comportement de `optimize_read_in_order` pour ORDER BY ... NULLS FIRST / LAST sur les tables avec des clés Nullable. [#64483](https://github.com/ClickHouse/ClickHouse/pull/64483) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige les erreurs `Expression nodes list expected 1 projection names` et `Unknown expression or identifier` pour les requêtes avec des alias vers `GLOBAL IN.`. [#64517](https://github.com/ClickHouse/ClickHouse/pull/64517) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige l’erreur `Cannot find column` dans les requêtes distribuées avec une CTE constante dans la clé `GROUP BY`. [#64519](https://github.com/ClickHouse/ClickHouse/pull/64519) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige la boucle de plantage lorsque la restauration depuis une sauvegarde est bloquée par la création d’une MV avec un `definer` qui n’a pas encore été restauré. [#64595](https://github.com/ClickHouse/ClickHouse/pull/64595) ([pufit](https://github.com/pufit)).
* Corrige la sortie de la fonction `formatDateTimeInJodaSyntax` lorsqu’un spécificateur de format génère un nombre impair de caractères et que le dernier caractère est `0`. Par exemple, `SELECT formatDateTimeInJodaSyntax(toDate('2012-05-29'), 'D')` renvoie désormais correctement `150` au lieu de `15` auparavant. [#64614](https://github.com/ClickHouse/ClickHouse/pull/64614) ([LiuNeng](https://github.com/liuneng1994)).
* N’effectue pas de réécriture de l’agrégation si le combinateur `-If` est déjà utilisé. [#64638](https://github.com/ClickHouse/ClickHouse/pull/64638) ([Dmitry Novik](https://github.com/novikd)).
* Corrige l’inférence de type pour les nombres à virgule flottante (dans le cas d’un petit buffer, c.-à-d. `--max_read_buffer_size 1`). [#64641](https://github.com/ClickHouse/ClickHouse/pull/64641) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug qui pouvait rendre les TTL inopérants avec des expressions. [#64694](https://github.com/ClickHouse/ClickHouse/pull/64694) ([alesapin](https://github.com/alesapin)).
* Corrige la suppression des expressions `WHERE` et `PREWHERE` toujours vraies (pour le nouvel analyseur). [#64695](https://github.com/ClickHouse/ClickHouse/pull/64695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’élimination excessive de parties par les index de texte basés sur des tokens (`ngrambf` , `full_text`) lors du filtrage sur le résultat de `startsWith`, `endsWith`, `match`, `multiSearchAny`. [#64720](https://github.com/ClickHouse/ClickHouse/pull/64720) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige le comportement incorrect de l’échappement ANSI CSI dans la fonction `UTF8::computeWidth`. [#64756](https://github.com/ClickHouse/ClickHouse/pull/64756) ([Shaun Struwig](https://github.com/Blargian)).
* Corrige un cas de suppression incorrecte de `ORDER BY` / `LIMIT BY` au travers de sous-requêtes. [#64766](https://github.com/ClickHouse/ClickHouse/pull/64766) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige les jointures d’inégalité (expérimentales) avec des sous-requêtes pour des ensembles présents dans des conditions de jointure mixtes. [#64775](https://github.com/ClickHouse/ClickHouse/pull/64775) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige un crash dans un cache local sur le disque `plain_rewritable`. [#64778](https://github.com/ClickHouse/ClickHouse/pull/64778) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction dans Keeper : renvoie la valeur correcte pour `zk_latest_snapshot_size` dans la commande `mntr`. [#64784](https://github.com/ClickHouse/ClickHouse/pull/64784) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l’erreur `Cannot find column` dans une requête distribuée avec `ARRAY JOIN` sur une colonne `Nested`. Corrige [#64755](https://github.com/ClickHouse/ClickHouse/issues/64755). [#64801](https://github.com/ClickHouse/ClickHouse/pull/64801) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige une fuite mémoire dans la politique de cache slru. [#64803](https://github.com/ClickHouse/ClickHouse/pull/64803) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un possible suivi mémoire incorrect dans plusieurs types de requêtes : requêtes lisant des données depuis S3, requêtes via le protocole HTTP, insertions asynchrones. [#64844](https://github.com/ClickHouse/ClickHouse/pull/64844) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l’erreur `Block structure mismatch` pour les requêtes lisant avec `PREWHERE` depuis une vue matérialisée lorsque celle-ci possède des colonnes de types différents de la table source. Corrige [#64611](https://github.com/ClickHouse/ClickHouse/issues/64611). [#64855](https://github.com/ClickHouse/ClickHouse/pull/64855) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un crash rare lorsqu’une table a un TTL avec sous-requête + base de données replicated + répliques parallèles + analyseur. C’est vraiment rare, mais n’utilisez pas de TTL avec des sous-requêtes. [#64858](https://github.com/ClickHouse/ClickHouse/pull/64858) ([alesapin](https://github.com/alesapin)).
* Corrige la duplication des événements `Delete` dans `blob_storage_log` dans le cas d’un lot volumineux à supprimer. [#64924](https://github.com/ClickHouse/ClickHouse/pull/64924) ([vdimir](https://github.com/vdimir)).
* Correction de l’erreur `Session moved to another server` de \[Zoo]Keeper, qui pouvait se produire après le démarrage du serveur lorsque la configuration inclut des éléments provenant de \[Zoo]Keeper. [#64986](https://github.com/ClickHouse/ClickHouse/pull/64986) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige la requête `ALTER MODIFY COMMENT` qui ne fonctionnait plus pour les VIEW paramétrées dans [https://github.com/ClickHouse/ClickHouse/pull/54211](https://github.com/ClickHouse/ClickHouse/pull/54211). [#65031](https://github.com/ClickHouse/ClickHouse/pull/65031) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige `host_id` dans DatabaseReplicated lorsque le paramètre `cluster_secure_connection` est activé. Auparavant, toutes les connexions au sein du cluster créées par DatabaseReplicated n’étaient pas sécurisées, même si ce paramètre était activé. [#65054](https://github.com/ClickHouse/ClickHouse/pull/65054) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction de l’erreur `Not-ready Set` après l’optimisation `PREWHERE` pour StorageMerge. [#65057](https://github.com/ClickHouse/ClickHouse/pull/65057) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Évite l’écriture dans un buffer finalisé pour les storages de type File. [#65063](https://github.com/ClickHouse/ClickHouse/pull/65063) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une durée de requête potentiellement infinie en cas d’alias cycliques. Corrige [#64849](https://github.com/ClickHouse/ClickHouse/issues/64849). [#65081](https://github.com/ClickHouse/ClickHouse/pull/65081) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de l’erreur `Unknown expression identifier` pour les requêtes distantes avec `INTERPOLATE (alias)` (nouvel analyseur). Corrige [#64636](https://github.com/ClickHouse/ClickHouse/issues/64636). [#65090](https://github.com/ClickHouse/ClickHouse/pull/65090) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction du déplacement des opérations arithmétiques hors de l’agrégation. Dans le nouvel analyseur, l’optimisation n’était appliquée qu’une seule fois. [#65104](https://github.com/ClickHouse/ClickHouse/pull/65104) ([Dmitry Novik](https://github.com/novikd)).
* Correction de la réécriture des noms des fonctions d’agrégation dans le nouvel analyseur. [#65110](https://github.com/ClickHouse/ClickHouse/pull/65110) ([Dmitry Novik](https://github.com/novikd)).
* Renvoie un code 5xx au lieu de 200 OK en cas de timeout de réception lors de la lecture du corps de la requête (ou d’une partie de celui-ci) depuis le socket client. [#65118](https://github.com/ClickHouse/ClickHouse/pull/65118) ([Julian Maicher](https://github.com/jmaicher)).
* Correction d’un crash possible pour les requêtes hedged. [#65206](https://github.com/ClickHouse/ClickHouse/pull/65206) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un bug dans l’évaluation en court-circuit des dictionnaires Hashed et Hashed\_Array, qui pouvait lire un nombre non initialisé et entraîner diverses erreurs. [#65256](https://github.com/ClickHouse/ClickHouse/pull/65256) ([jsc0218](https://github.com/jsc0218)).
* Cette PR garantit que le type de la constante (deuxième paramètre de l’opérateur IN) reste toujours visible pendant le processus de conversion de type de l’opérateur IN. Sinon, la perte d’informations de type peut faire échouer certaines conversions, comme celle de DateTime vers Date. Cela corrige [#64487](https://github.com/ClickHouse/ClickHouse/issues/64487). [#65315](https://github.com/ClickHouse/ClickHouse/pull/65315) ([pn](https://github.com/chloro-pn)).

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

* Ajout de la prise en charge de LLVM XRay. [#64592](https://github.com/ClickHouse/ClickHouse/pull/64592) [#64837](https://github.com/ClickHouse/ClickHouse/pull/64837) ([Tomer Shafir](https://github.com/tomershafir)).
* Regroupement des implémentations de stockage s3/hdfs/azure en une seule classe fonctionnant avec IObjectStorage. Même chose pour \*Cluster, les data lakes et les stockages Queue. [#59767](https://github.com/ClickHouse/ClickHouse/pull/59767) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Refactorisation du writer de data part pour supprimer les dépendances à MergeTreeData et DataPart. [#63620](https://github.com/ClickHouse/ClickHouse/pull/63620) ([Alexander Gololobov](https://github.com/davenger)).
* Refactorisation de `KeyCondition` et de l'analyse de clé afin d'améliorer PartitionPruner et l'optimisation triviale de comptage. Ceci est distinct de [#60463](https://github.com/ClickHouse/ClickHouse/issues/60463). [#61459](https://github.com/ClickHouse/ClickHouse/pull/61459) ([Amos Bird](https://github.com/amosbird)).
* Ajout d'assertions pour vérifier que toutes les fonctions sont appelées avec des colonnes de la bonne taille. [#63723](https://github.com/ClickHouse/ClickHouse/pull/63723) ([Raúl Marín](https://github.com/Algunenano)).
* Le service `network` devient obligatoire lors de l'utilisation du script d'initialisation `rc` pour démarrer le démon du serveur ClickHouse. [#60650](https://github.com/ClickHouse/ClickHouse/pull/60650) ([Chun-Sheng, Li](https://github.com/peter279k)).
* Réduction de la taille de certains tests lents. [#64387](https://github.com/ClickHouse/ClickHouse/pull/64387) [#64452](https://github.com/ClickHouse/ClickHouse/pull/64452) ([Raúl Marín](https://github.com/Algunenano)).
* Rejeu des logs ZooKeeper à l'aide de keeper-bench. [#62481](https://github.com/ClickHouse/ClickHouse/pull/62481) ([Antonio Andelic](https://github.com/antonio2368)).

### <a id="245" /> version de ClickHouse 24.5, 2024-05-30. [Présentation](https://presentations.clickhouse.com/2024-release-24.5/), [Vidéo](https://www.youtube.com/watch?v=dURnKjLuZLg)

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

* Les « index inversés » ont été renommés en « index plein texte », une appellation moins technique et plus conviviale. Cela modifie également les métadonnées internes des tables et casse les tables contenant des index inversés (expérimentaux) existants. Veillez à supprimer ces index avant la mise à niveau, puis à les recréer après celle-ci. [#62884](https://github.com/ClickHouse/ClickHouse/pull/62884) ([Robert Schulze](https://github.com/rschu1ze)).
* L'utilisation des fonctions `neighbor`, `runningAccumulate`, `runningDifferenceStartingWithFirstValue` et `runningDifference` est dépréciée (car sujette aux erreurs). Il convient d'utiliser à la place de véritables fonctions de fenêtre. Pour les réactiver, définissez `allow_deprecated_error_prone_window_functions = 1` ou `compatibility = '24.4'`, ou une valeur inférieure. [#63132](https://github.com/ClickHouse/ClickHouse/pull/63132) ([Nikita Taranov](https://github.com/nickitat)).
* Les requêtes sur `system.columns` seront plus rapides lorsqu'il existe un grand nombre de colonnes, mais que `SHOW TABLES` n'a pas été accordé sur de nombreuses bases de données ou tables. Notez que dans les versions précédentes, si vous accordiez `SHOW COLUMNS` sur des colonnes individuelles sans accorder `SHOW TABLES` sur les tables correspondantes, la table `system.columns` affichait ces colonnes, mais dans la nouvelle version, elle ignorera entièrement la table. Suppression des messages du journal de trace « Access granted » et « Access denied », qui ralentissaient les requêtes. [#63439](https://github.com/ClickHouse/ClickHouse/pull/63439) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Ajoute le format `Form` pour lire/écrire un seul enregistrement au format `application/x-www-form-urlencoded`. [#60199](https://github.com/ClickHouse/ClickHouse/pull/60199) ([Shaun Struwig](https://github.com/Blargian)).
* Ajout de la possibilité d’utiliser la compression dans CROSS JOIN. [#60459](https://github.com/ClickHouse/ClickHouse/pull/60459) ([p1rattttt](https://github.com/p1rattttt)).
* Ajout de la possibilité d’effectuer un `CROSS JOIN` dans des fichiers temporaires si la taille dépasse les limites. [#63432](https://github.com/ClickHouse/ClickHouse/pull/63432) ([p1rattttt](https://github.com/p1rattttt)).
* Prise en charge des `join` avec des conditions d’inégalité impliquant des colonnes de la table de gauche comme de la table de droite, par exemple `t1.y < t2.y`. Pour l’activer, utilisez `SET allow_experimental_join_condition = 1`. [#60920](https://github.com/ClickHouse/ClickHouse/pull/60920) ([lgbo](https://github.com/lgbo-ustc)).
* Les maps peuvent désormais avoir `Float32`, `Float64`, `Array(T)`, `Map(K, V)` et `Tuple(T1, T2, ...)` comme clés. Corrige [#54537](https://github.com/ClickHouse/ClickHouse/issues/54537). [#59318](https://github.com/ClickHouse/ClickHouse/pull/59318) ([李扬](https://github.com/taiyang-li)).
* Introduction du chargement en masse dans `EmbeddedRocksDB` par création et ingestion de fichiers SST, au lieu de s’appuyer sur la memtable intégrée de RocksDB. Cela permet d’accélérer l’importation, en particulier pour les requêtes d’insertion de longue durée dans les tables StorageEmbeddedRocksDB. Ajout également de table settings pour `EmbeddedRocksDB`. [#59163](https://github.com/ClickHouse/ClickHouse/pull/59163) [#63324](https://github.com/ClickHouse/ClickHouse/pull/63324) ([Duc Canh Le](https://github.com/canhld94)).
* L’utilisateur peut désormais analyser les fins de ligne CRLF avec le format TSV à l’aide du paramètre `input_format_tsv_crlf_end_of_line`. Corrige [#56257](https://github.com/ClickHouse/ClickHouse/issues/56257). [#59747](https://github.com/ClickHouse/ClickHouse/pull/59747) ([Shaun Struwig](https://github.com/Blargian)).
* Nouveau paramètre `input_format_force_null_for_omitted_fields` qui force des valeurs NULL pour les champs omis. [#60887](https://github.com/ClickHouse/ClickHouse/pull/60887) ([Constantine Peresypkin](https://github.com/pkit)).
* Auparavant, notre stockage S3 et la fonction de table s3 ne prenaient pas en charge la sélection à partir de fichiers d’archive, tels que des tarballs, des fichiers zip ou 7z. Ils permettent désormais d’itérer sur les fichiers contenus dans des archives sur S3. [#62259](https://github.com/ClickHouse/ClickHouse/pull/62259) ([Daniil Ivanik](https://github.com/divanik)).
* Prise en charge de la fonction conditionnelle `clamp`. [#62377](https://github.com/ClickHouse/ClickHouse/pull/62377) ([skyoct](https://github.com/skyoct)).
* Ajout du format de sortie `NPy`. [#62430](https://github.com/ClickHouse/ClickHouse/pull/62430) ([豪肥肥](https://github.com/HowePa)).
* `Raw` est désormais un synonyme de `TSVRaw`. [#63394](https://github.com/ClickHouse/ClickHouse/pull/63394) ([Unalian](https://github.com/Unalian)).
* Ajout d’une nouvelle fonction SQL `generateUUIDv7` pour générer des UUID version 7, c’est-à-dire des UUID basés sur un timestamp avec une composante aléatoire. Ajout également d’une nouvelle fonction `UUIDToNum` pour extraire les octets d’un UUID, ainsi que d’une nouvelle fonction `UUIDv7ToDateTime` pour extraire la composante timestamp d’un UUID version 7. [#62852](https://github.com/ClickHouse/ClickHouse/pull/62852) ([Alexey Petrunyaka](https://github.com/pet74alex)).
* Sous Linux et MacOS, si le programme a stdout redirigé vers un fichier avec une extension de compression, utilisez la méthode de compression correspondante au lieu de n’en utiliser aucune (ce qui le fait se comporter comme `INTO OUTFILE`). [#63662](https://github.com/ClickHouse/ClickHouse/pull/63662) ([v01dXYZ](https://github.com/v01dXYZ)).
* Modifier l’avertissement en cas de nombre élevé de tables attachées afin de distinguer les tables, les vues et les dictionnaires. [#64180](https://github.com/ClickHouse/ClickHouse/pull/64180) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Ajouter la prise en charge de la fonction `azureBlobStorage` dans ClickHouse server pour utiliser Azure Workload Identity afin de s’authentifier auprès d’Azure Blob Storage. Si le paramètre `use_workload_identity` est défini dans la configuration, l’[identité de workload](https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity#authenticate-azure-hosted-applications) est utilisée pour l’authentification. [#57881](https://github.com/ClickHouse/ClickHouse/pull/57881) ([Vinay Suryadevara](https://github.com/vinay92-ch)).
* Ajouter des informations sur le TTL dans la table `system.parts_columns`. [#63200](https://github.com/ClickHouse/ClickHouse/pull/63200) ([litlig](https://github.com/litlig)).

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

* Ajout du type de données `Dynamic`, qui permet de stocker des valeurs de n’importe quel type sans toutes les connaître à l’avance. Le type `Dynamic` est disponible via le paramètre `allow_experimental_dynamic_type`. Référence : [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#63058](https://github.com/ClickHouse/ClickHouse/pull/63058) ([Kruglov Pavel](https://github.com/Avogar)).
* Il est désormais possible de créer une base de données `MaterializedMySQL` sans connexion à MySQL. [#63397](https://github.com/ClickHouse/ClickHouse/pull/63397) ([Kirill](https://github.com/kirillgarbar)).
* Marque automatiquement une réplique d’une base de données Replicated comme perdue et lance la récupération si une tâche DDL échoue plus de `max_retries_before_automatic_recovery` fois de suite avec la même erreur (100 par défaut). Corrige également un bug pouvant entraîner l’omission d’entrées DDL lorsqu’une exception est levée au début de l’exécution d’une entrée. [#63549](https://github.com/ClickHouse/ClickHouse/pull/63549) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Prend en compte les fichiers en échec dans `s3queue_tracked_file_ttl_sec` et `s3queue_traked_files_limit` pour `StorageS3Queue`. [#63638](https://github.com/ClickHouse/ClickHouse/pull/63638) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Moins de contention dans le cache du système de fichiers (partie 4). Possibilité de ne pas remplir le cache du système de fichiers jusqu'à sa limite en effectuant une éviction supplémentaire en arrière-plan (contrôlée par `keep_free_space_size(elements)_ratio`). Cela permet d'alléger la pression sur la réservation d'espace pour les requêtes (dans la méthode `tryReserve`). De plus, cela est réalisé autant que possible sans verrouillage et ne devrait, par exemple, pas bloquer l'utilisation normale du cache. [#61250](https://github.com/ClickHouse/ClickHouse/pull/61250) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignorer la fusion des blocs de projection nouvellement créés pendant les `INSERT`. [#59405](https://github.com/ClickHouse/ClickHouse/pull/59405) ([Nikita Taranov](https://github.com/nickitat)).
* Traiter les fonctions sur les chaînes `...UTF8` en mode ASCII si les chaînes d'entrée ne contiennent que des caractères ASCII. Inspiré de [https://github.com/apache/doris/pull/29799](https://github.com/apache/doris/pull/29799). Accélération globale de 1.07x à 1.62x. À noter que le pic d'utilisation mémoire a diminué dans certains cas. [#61632](https://github.com/ClickHouse/ClickHouse/pull/61632) ([李扬](https://github.com/taiyang-li)).
* Amélioration des performances des globs de sélection (`{}`) dans StorageS3. [#62120](https://github.com/ClickHouse/ClickHouse/pull/62120) ([Andrey Zvonov](https://github.com/zvonand)).
* HostResolver contient chaque adresse IP plusieurs fois. Si l'hôte distant possède plusieurs IP et que, pour une raison quelconque (des règles de pare-feu, par exemple), l'accès est autorisé sur certaines IP mais interdit sur d'autres, alors seul le premier enregistrement des IP interdites est marqué comme ayant échoué, et à chaque tentative ces IP peuvent de nouveau être sélectionnées (et échouer à nouveau). Même après ce correctif, le cache DNS est vidé toutes les 120 secondes, et ces IP peuvent donc être sélectionnées à nouveau. [#62652](https://github.com/ClickHouse/ClickHouse/pull/62652) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Ajout d'une nouvelle configuration `prefer_merge_sort_block_bytes` pour contrôler l'utilisation mémoire et accélérer le tri d'un facteur 2 lors des fusions quand il y a beaucoup de colonnes. [#62904](https://github.com/ClickHouse/ClickHouse/pull/62904) ([LiuNeng](https://github.com/liuneng1994)).
* `clickhouse-local` démarrera plus rapidement. Dans les versions précédentes, il ne supprimait pas les répertoires temporaires, par erreur. Désormais, ce sera le cas. Cela clôt [#62941](https://github.com/ClickHouse/ClickHouse/issues/62941). [#63074](https://github.com/ClickHouse/ClickHouse/pull/63074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Micro-optimisations pour le nouvel analyseur. [#63429](https://github.com/ClickHouse/ClickHouse/pull/63429) ([Raúl Marín](https://github.com/Algunenano)).
* L'analyse des index fonctionnera si `DateTime` est comparé à `DateTime64`. Cela clôt [#63441](https://github.com/ClickHouse/ClickHouse/issues/63441). [#63443](https://github.com/ClickHouse/ClickHouse/pull/63443) [#63532](https://github.com/ClickHouse/ClickHouse/pull/63532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Légère accélération des index de type `set` (environ 1,5 fois) en supprimant les éléments inutiles. [#64098](https://github.com/ClickHouse/ClickHouse/pull/64098) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression de la copie des données lors de l'écriture dans le cache du système de fichiers. [#63401](https://github.com/ClickHouse/ClickHouse/pull/63401) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désormais, les backups avec Azure blob storage utiliseront la copie multiple. [#64116](https://github.com/ClickHouse/ClickHouse/pull/64116) ([alesapin](https://github.com/alesapin)).
* Permet d'utiliser la copie native pour Azure même avec des conteneurs différents. [#64154](https://github.com/ClickHouse/ClickHouse/pull/64154) ([alesapin](https://github.com/alesapin)).
* Active enfin la copie native pour Azure. [#64182](https://github.com/ClickHouse/ClickHouse/pull/64182) ([alesapin](https://github.com/alesapin)).

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

* Autoriser l’utilisation de `clickhouse-local` et de ses raccourcis `clickhouse` et `ch` avec une requête ou un fichier de requêtes comme argument positionnel. Exemples : `ch "SELECT 1"`, `ch --param_test Hello "SELECT {test:String}"`, `ch query.sql`. Cela clôt [#62361](https://github.com/ClickHouse/ClickHouse/issues/62361). [#63081](https://github.com/ClickHouse/ClickHouse/pull/63081) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Activer les métadonnées plain\_rewritable pour les stockages objet locaux et Azure (azure\_blob\_storage). [#63365](https://github.com/ClickHouse/ClickHouse/pull/63365) ([Julia Kartseva](https://github.com/jkartseva)).
* Prise en charge des guillemets Unicode de style anglais, par exemple “Hello”, 'world'. C’est globalement discutable, mais utile lorsque vous saisissez votre requête dans un traitement de texte comme Google Docs. Cela clôt [#58634](https://github.com/ClickHouse/ClickHouse/issues/58634). [#63381](https://github.com/ClickHouse/ClickHouse/pull/63381) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autoriser les virgules finales dans la liste des colonnes d’une requête INSERT. Par exemple, `INSERT INTO test (a, b, c, ) VALUES ...`. [#63803](https://github.com/ClickHouse/ClickHouse/pull/63803) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliorer les messages d’exception pour le format `Regexp`. [#63804](https://github.com/ClickHouse/ClickHouse/pull/63804) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autoriser les virgules finales dans le format `Values`. Par exemple, cette requête est désormais autorisée : `INSERT INTO test (a, b, c) VALUES (4, 5, 6,);`. [#63810](https://github.com/ClickHouse/ClickHouse/pull/63810) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Faire en sorte que rabbitmq envoie un nack pour les messages corrompus. Clôt [#45350](https://github.com/ClickHouse/ClickHouse/issues/45350). [#60312](https://github.com/ClickHouse/ClickHouse/pull/60312) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corriger un crash lors du déroulage asynchrone de la pile (par exemple lors de l’utilisation du sampling query profiler) pendant l’interprétation des informations de débogage. Cela clôt [#60460](https://github.com/ClickHouse/ClickHouse/issues/60460). [#60468](https://github.com/ClickHouse/ClickHouse/pull/60468) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Messages distincts pour l’erreur S3 'no key' dans les cas disk et storage. [#61108](https://github.com/ClickHouse/ClickHouse/pull/61108) ([Sema Checherinda](https://github.com/CheSema)).
* La barre de progression fonctionnera pour les requêtes triviales avec LIMIT sur `system.zeros`, `system.zeros_mt` (elle fonctionne déjà pour `system.numbers` et `system.numbers_mt`), ainsi que pour la table function `generateRandom`. En bonus, si le nombre total d’enregistrements dépasse la limite `max_rows_to_read`, elle lèvera une exception plus tôt. Cela clôt [#58183](https://github.com/ClickHouse/ClickHouse/issues/58183). [#61823](https://github.com/ClickHouse/ClickHouse/pull/61823) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de "Merge Key" dans les configurations YAML (c’est une fonctionnalité étrange de YAML, n’y prêtez pas trop attention). [#62685](https://github.com/ClickHouse/ClickHouse/pull/62685) ([Azat Khuzhin](https://github.com/azat)).
* Améliorer le message d’erreur lorsqu’une fonction non déterministe est utilisée avec une source Replicated. [#62896](https://github.com/ClickHouse/ClickHouse/pull/62896) ([Grégoire Pineau](https://github.com/lyrixx)).
* Corriger le secret inter-serveur pour Distributed sur Distributed depuis `remote`. [#63013](https://github.com/ClickHouse/ClickHouse/pull/63013) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge de `include_from` pour les fichiers YAML. Il est toutefois préférable d’utiliser `config.d` [#63106](https://github.com/ClickHouse/ClickHouse/pull/63106) ([Eduard Karacharov](https://github.com/korowa)).
* Les données précédentes sont désormais conservées dans le terminal après une sélection parmi les suggestions de skim. [#63261](https://github.com/ClickHouse/ClickHouse/pull/63261) ([FlameFactory](https://github.com/FlameFactory)).
* La largeur des champs (dans les Pretty formats ou la fonction `visibleWidth`) ignore désormais correctement les séquences d’échappement ANSI. [#63270](https://github.com/ClickHouse/ClickHouse/pull/63270) ([Shaun Struwig](https://github.com/Blargian)).
* Remplacement, lorsque c’est pertinent, du code d’erreur `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` par des codes d’erreur plus précis. [#63406](https://github.com/ClickHouse/ClickHouse/pull/63406) ([Yohann Jardin](https://github.com/yohannj)).
* `os_user` et `client_hostname` sont désormais correctement définis pour les requêtes de suggestion en ligne de commande dans clickhouse-client. Cela clôt [#63430](https://github.com/ClickHouse/ClickHouse/issues/63430). [#63433](https://github.com/ClickHouse/ClickHouse/pull/63433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction automatique de `max_block_size` à la valeur par défaut si sa valeur est zéro. [#63587](https://github.com/ClickHouse/ClickHouse/pull/63587) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout d’une colonne ALIAS build\_id à trace\_log pour faciliter le renommage automatique lors de la détection de changements du binaire. Cela vise à résoudre [#52086](https://github.com/ClickHouse/ClickHouse/issues/52086). [#63656](https://github.com/ClickHouse/ClickHouse/pull/63656) ([Zimu Li](https://github.com/woodlzm)).
* Activation de l’opération de troncature pour les object storage disks. [#63693](https://github.com/ClickHouse/ClickHouse/pull/63693) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Le chargement de la liste des mots-clés dépend désormais de la révision du serveur et sera désactivé pour les anciennes versions de ClickHouse server. CC @azat. [#63786](https://github.com/ClickHouse/ClickHouse/pull/63786) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Les disks ClickHouse doivent lire le server setting pour obtenir la version réelle du format des metadata. [#63831](https://github.com/ClickHouse/ClickHouse/pull/63831) ([Sema Checherinda](https://github.com/CheSema)).
* Désactivation des restrictions du Pretty format (`output_format_pretty_max_rows`/`output_format_pretty_max_value_width`) lorsque stdout n’est pas un TTY. [#63942](https://github.com/ClickHouse/ClickHouse/pull/63942) ([Azat Khuzhin](https://github.com/azat)).
* La gestion des exceptions fonctionne désormais lorsque ClickHouse est utilisé dans AWS Lambda. Auteur : [Alexey Coolnev](https://github.com/acoolnev). [#64014](https://github.com/ClickHouse/ClickHouse/pull/64014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lever `CANNOT_DECOMPRESS` au lieu de `CORRUPTED_DATA` pour des données compressées invalides transmises via HTTP. [#64036](https://github.com/ClickHouse/ClickHouse/pull/64036) ([vdimir](https://github.com/vdimir)).
* L’astuce d’affichage pour un seul grand nombre dans les Pretty formats fonctionne désormais avec Nullable et LowCardinality. Cela clôt [#61993](https://github.com/ClickHouse/ClickHouse/issues/61993). [#64084](https://github.com/ClickHouse/ClickHouse/pull/64084) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de metrics, de logs et de noms de thread autour du filtrage des parts avec des index. [#64130](https://github.com/ClickHouse/ClickHouse/pull/64130) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ignorer `allow_suspicious_primary_key` avec `ATTACH` et vérifier avec `ALTER`. [#64202](https://github.com/ClickHouse/ClickHouse/pull/64202) ([Azat Khuzhin](https://github.com/azat)).

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

* ClickHouse est compilé avec clang-18. De nombreux nouveaux checks de clang-tidy-18 ont été activés. [#60469](https://github.com/ClickHouse/ClickHouse/pull/60469) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge expérimentale de loongarch64 en tant que nouvelle plateforme pour ClickHouse. [#63733](https://github.com/ClickHouse/ClickHouse/pull/63733) ([qiangxuhui](https://github.com/qiangxuhui)).
* Le Dockerfile est examiné par la bibliothèque officielle Docker dans [https://github.com/docker-library/official-images/pull/15846](https://github.com/docker-library/official-images/pull/15846). [#63400](https://github.com/ClickHouse/ClickHouse/pull/63400) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Des informations sur chaque symbole de chaque unité de traduction seront collectées dans la base de données CI pour chaque build de la CI. Cela clôt [#63494](https://github.com/ClickHouse/ClickHouse/issues/63494). [#63495](https://github.com/ClickHouse/ClickHouse/pull/63495) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de la bibliothèque Apache Datasketches. Cela résout [#63858](https://github.com/ClickHouse/ClickHouse/issues/63858). [#63923](https://github.com/ClickHouse/ClickHouse/pull/63923) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Activation de la prise en charge de GRPC pour aarch64 Linux lors de la compilation croisée du binaire. [#64072](https://github.com/ClickHouse/ClickHouse/pull/64072) ([alesapin](https://github.com/alesapin)).
* Correction du déroulage de pile sur SIGSEGV sur aarch64 (en raison d'une pile de signal trop petite) [#64058](https://github.com/ClickHouse/ClickHouse/pull/64058) ([Azat Khuzhin](https://github.com/azat)).

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

* Paramètre `enable_vertical_final` désactivé par défaut. Cette fonctionnalité ne doit pas être utilisée, car elle comporte un bug : [#64543](https://github.com/ClickHouse/ClickHouse/issues/64543). [#64544](https://github.com/ClickHouse/ClickHouse/pull/64544) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correction de la sauvegarde lorsque plusieurs shards sont utilisés [#57684](https://github.com/ClickHouse/ClickHouse/pull/57684) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction de la transmission des projections/index/clé primaire depuis la liste des colonnes de la requête CREATE vers la table interne de la MV [#59183](https://github.com/ClickHouse/ClickHouse/pull/59183) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'une fusion incorrecte de boundRatio [#60532](https://github.com/ClickHouse/ClickHouse/pull/60532) ([Tao Wang](https://github.com/wangtZJU)).
* Correction d'un crash lors de l'appel de certaines fonctions sur des colonnes constantes à faible cardinalité [#61966](https://github.com/ClickHouse/ClickHouse/pull/61966) ([Michael Kolupaev](https://github.com/al13n321)).
* Correction des requêtes avec FINAL qui renvoient un résultat incorrect lorsque la table n'utilise pas la granularité adaptative [#62432](https://github.com/ClickHouse/ClickHouse/pull/62432) ([Duc Canh Le](https://github.com/canhld94)).
* Amélioration de la détection de la prise en charge de cgroups v2 pour les contrôleurs de mémoire [#62903](https://github.com/ClickHouse/ClickHouse/pull/62903) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de l'utilisation ultérieure des tables externes dans le client [#62964](https://github.com/ClickHouse/ClickHouse/pull/62964) ([Azat Khuzhin](https://github.com/azat)).
* Correction d'un crash avec untuple et une lambda non résolue [#63131](https://github.com/ClickHouse/ClickHouse/pull/63131) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de la mise en écoute prématurée du serveur pour les connexions [#63181](https://github.com/ClickHouse/ClickHouse/pull/63181) ([alesapin](https://github.com/alesapin)).
* Correction de parts qui se chevauchent lors d'un redémarrage après une commande DROP PART [#63202](https://github.com/ClickHouse/ClickHouse/pull/63202) ([Han Fei](https://github.com/hanfei1991)).
* Chargement correct des valeurs par défaut de SQL security au démarrage [#63209](https://github.com/ClickHouse/ClickHouse/pull/63209) ([pufit](https://github.com/pufit)).
* Correction du pushdown de filtre pour JOIN filter join [#63234](https://github.com/ClickHouse/ClickHouse/pull/63234) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d'une boucle infinie dans AzureObjectStorage::listObjects [#63257](https://github.com/ClickHouse/ClickHouse/pull/63257) ([Julia Kartseva](https://github.com/jkartseva)).
* CROSS JOIN ignore le paramètre join\_algorithm [#63273](https://github.com/ClickHouse/ClickHouse/pull/63273) ([vdimir](https://github.com/vdimir)).
* Correction de la finalisation de WriteBufferToFileSegment et de StatusFile [#63346](https://github.com/ClickHouse/ClickHouse/pull/63346) ([vdimir](https://github.com/vdimir)).
* Correction d'une erreur logique lors d'une requête SELECT après ALTER dans de rares cas [#63353](https://github.com/ClickHouse/ClickHouse/pull/63353) ([alesapin](https://github.com/alesapin)).
* Correction de l'en-tête `X-ClickHouse-Timezone` avec `session_timezone` [#63377](https://github.com/ClickHouse/ClickHouse/pull/63377) ([Andrey Zvonov](https://github.com/zvonand)).
* Correction d'une assertion de débogage lors de l'utilisation du groupement WITH ROLLUP et des types LowCardinality  [#63398](https://github.com/ClickHouse/ClickHouse/pull/63398) ([Raúl Marín](https://github.com/Algunenano)).
* Petites corrections pour group\_by\_use\_nulls [#63405](https://github.com/ClickHouse/ClickHouse/pull/63405) ([vdimir](https://github.com/vdimir)).
* Correction du backup/de la restauration d’une partie de projection lorsque la projection a été supprimée des métadonnées de la table, mais que la partie contient encore la projection [#63426](https://github.com/ClickHouse/ClickHouse/pull/63426) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de la source de dictionnaire MySQL [#63481](https://github.com/ClickHouse/ClickHouse/pull/63481) ([vdimir](https://github.com/vdimir)).
* Insertion de QueryFinish sur AsyncInsertFlush sans données [#63483](https://github.com/ClickHouse/ClickHouse/pull/63483) ([Raúl Marín](https://github.com/Algunenano)).
* Correction : `used&#95;dictionaries` vide dans system.query\_log [#63487](https://github.com/ClickHouse/ClickHouse/pull/63487) ([Eduard Karacharov](https://github.com/korowa)).
* `MergeTreePrefetchedReadPool` rendu plus sûr [#63513](https://github.com/ClickHouse/ClickHouse/pull/63513) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un crash à la fermeture avec sentry activé (openssl étant détruit avant sentry) [#63548](https://github.com/ClickHouse/ClickHouse/pull/63548) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la prise en charge de Array et Map avec le hachage par clé [#63628](https://github.com/ClickHouse/ClickHouse/pull/63628) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Correction du pushdown de filtre pour Parquet et peut-être StorageMerge [#63642](https://github.com/ClickHouse/ClickHouse/pull/63642) ([Michael Kolupaev](https://github.com/al13n321)).
* Empêche la conversion vers Replicated si le chemin ZooKeeper existe déjà [#63670](https://github.com/ClickHouse/ClickHouse/pull/63670) ([Kirill](https://github.com/kirillgarbar)).
* Analyseur : les vues ne lisent que les colonnes nécessaires [#63688](https://github.com/ClickHouse/ClickHouse/pull/63688) ([Maksim Kita](https://github.com/kitaisreal)).
* Analyseur : interdire la redéfinition de WINDOW [#63694](https://github.com/ClickHouse/ClickHouse/pull/63694) ([Dmitry Novik](https://github.com/novikd)).
* flatten\_nested ne fonctionnait pas avec la base de données Replicated expérimentale [#63695](https://github.com/ClickHouse/ClickHouse/pull/63695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de [#63653](https://github.com/ClickHouse/ClickHouse/issues/63653) [#63722](https://github.com/ClickHouse/ClickHouse/pull/63722) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Autoriser la conversion de Array(Nothing) en Map(Nothing, Nothing) [#63753](https://github.com/ClickHouse/ClickHouse/pull/63753) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction de ILLEGAL\_COLUMN dans la jointure partial\_merge [#63755](https://github.com/ClickHouse/ClickHouse/pull/63755) ([vdimir](https://github.com/vdimir)).
* Correction : suppression d’un distinct redondant avec les window functions [#63776](https://github.com/ClickHouse/ClickHouse/pull/63776) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction d’un possible crash avec SYSTEM UNLOAD PRIMARY KEY [#63778](https://github.com/ClickHouse/ClickHouse/pull/63778) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’une requête avec un alias cyclique dupliqué [#63791](https://github.com/ClickHouse/ClickHouse/pull/63791) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Rendre `TokenIterator` lazy comme il devrait l’être [#63801](https://github.com/ClickHouse/ClickHouse/pull/63801) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout du paramètre d’URI S3 `endpoint_subpath` [#63806](https://github.com/ClickHouse/ClickHouse/pull/63806) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction d’un interblocage dans `ParallelReadBuffer` [#63814](https://github.com/ClickHouse/ClickHouse/pull/63814) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction des colonnes équivalentes pour le push down des filtres JOIN [#63819](https://github.com/ClickHouse/ClickHouse/pull/63819) ([Maksim Kita](https://github.com/kitaisreal)).
* Suppression des données de tous les disques après un DROP avec une base de données Lazy. [#63848](https://github.com/ClickHouse/ClickHouse/pull/63848) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Correction d’un résultat incorrect lors de la lecture depuis une MV avec des répliques parallèles et le nouvel analyseur [#63861](https://github.com/ClickHouse/ClickHouse/pull/63861) ([Nikita Taranov](https://github.com/nickitat)).
* Corrections des commandes `find_super_nodes` et `find_big_family` dans keeper-client [#63862](https://github.com/ClickHouse/ClickHouse/pull/63862) ([Alexander Gololobov](https://github.com/davenger)).
* Mise à jour du nom d’exécution des lambdas [#63864](https://github.com/ClickHouse/ClickHouse/pull/63864) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un SIGSEGV dû au Profiler CPU/Real [#63865](https://github.com/ClickHouse/ClickHouse/pull/63865) ([Azat Khuzhin](https://github.com/azat)).
* Correction de la requête `EXPLAIN CURRENT TRANSACTION` [#63926](https://github.com/ClickHouse/ClickHouse/pull/63926) ([Anton Popov](https://github.com/CurtizJ)).
* Correction de l’analyseur : c’est des tortues à perte de vue... [#63930](https://github.com/ClickHouse/ClickHouse/pull/63930) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Autorisation de certaines commandes ALTER TABLE pour le disque `plain_rewritable` [#63933](https://github.com/ClickHouse/ClickHouse/pull/63933) ([Julia Kartseva](https://github.com/jkartseva)).
* Correction pour les CTE récursives distribuées [#63939](https://github.com/ClickHouse/ClickHouse/pull/63939) ([Maksim Kita](https://github.com/kitaisreal)).
* Analyseur : correction de la résolution de COLUMNS [#63962](https://github.com/ClickHouse/ClickHouse/pull/63962) ([Dmitry Novik](https://github.com/novikd)).
* LIMIT BY et skip\_unused\_shards avec l’analyseur [#63983](https://github.com/ClickHouse/ClickHouse/pull/63983) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correctif pour quelques problèmes résiduels (Kusto expérimental) [#63992](https://github.com/ClickHouse/ClickHouse/pull/63992) ([Yong Wang](https://github.com/kashwy)).
* Désérialisation plus sûre des entrées binary non fiables [#64024](https://github.com/ClickHouse/ClickHouse/pull/64024) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de l’analyse des requêtes avec le paramètre `final` = 1 pour les tables Distributed sur des tables n’appartenant pas à la famille MergeTree. [#64037](https://github.com/ClickHouse/ClickHouse/pull/64037) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ajout des paramètres manquants à recoverLostReplica [#64040](https://github.com/ClickHouse/ClickHouse/pull/64040) ([Raúl Marín](https://github.com/Algunenano)).
* Correction des vérifications d’accès SQL security avec l’analyseur [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)).
* Correction de l’analyseur : seule l’expression interpolée doit être utilisée pour le DAG [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de l’écriture des sauvegardes Azure en blocs multipart de 1 MiB (taille du read buffer) au lieu de `max_upload_part_size` (dans le cas d’une copie non native) [#64117](https://github.com/ClickHouse/ClickHouse/pull/64117) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Assurer un repli correct lors de la copie de sauvegarde [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)).
* Éviter LOGICAL\_ERROR lors de CREATE TABLE en tant que vue matérialisée [#64174](https://github.com/ClickHouse/ClickHouse/pull/64174) ([Raúl Marín](https://github.com/Algunenano)).
* Query Cache : considérer comme différentes des requêtes identiques exécutées sur différentes bases de données [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze)).
* Ignorer `text_log` pour Keeper [#64218](https://github.com/ClickHouse/ClickHouse/pull/64218) ([Antonio Andelic](https://github.com/antonio2368)).
* Corriger une erreur logique : mauvaise conversion de type pour une table Buffer avec prewhere. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

### <a id="244" /> version de ClickHouse 24.4, 2024-04-30. [Présentation](https://presentations.clickhouse.com/2024-release-24.4/), [Vidéo](https://www.youtube.com/watch?v=dtUqgcfOGmE)

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

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

* `clickhouse-odbc-bridge` et `clickhouse-library-bridge` sont désormais des paquets distincts. Cela résout [#61677](https://github.com/ClickHouse/ClickHouse/issues/61677). [#62114](https://github.com/ClickHouse/ClickHouse/pull/62114) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Il n’est plus possible de définir max\_parallel\_replicas (pour la lecture parallèle expérimentale à partir de répliques) sur `0`, car cela n’a pas de sens. Résout [#60140](https://github.com/ClickHouse/ClickHouse/issues/60140). [#61201](https://github.com/ClickHouse/ClickHouse/pull/61201) ([Kruglov Pavel](https://github.com/Avogar)).
* Suppression de la prise en charge de la requête `INSERT WATCH` (qui fait partie de la fonctionnalité obsolète `LIVE VIEW`). [#62382](https://github.com/ClickHouse/ClickHouse/pull/62382) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suppression du paramètre `optimize_monotonous_functions_in_order_by`. [#63004](https://github.com/ClickHouse/ClickHouse/pull/63004) ([Raúl Marín](https://github.com/Algunenano)).
* Suppression de l’étiquette Experimental du database engine `Replicated`. Il est désormais au stade Beta. [#62937](https://github.com/ClickHouse/ClickHouse/pull/62937) ([Justin de Guzman](https://github.com/justindeguzman)).

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

* Prise en charge des CTE récursives. [#62074](https://github.com/ClickHouse/ClickHouse/pull/62074) ([Maksim Kita](https://github.com/kitaisreal)).
* Prise en charge de la clause `QUALIFY`. Résout [#47819](https://github.com/ClickHouse/ClickHouse/issues/47819). [#62619](https://github.com/ClickHouse/ClickHouse/pull/62619) ([Maksim Kita](https://github.com/kitaisreal)).
* Les table engines peuvent désormais faire l'objet de grants, sans effet sur le comportement des utilisateurs existants. [#60117](https://github.com/ClickHouse/ClickHouse/pull/60117) ([jsc0218](https://github.com/jsc0218)).
* Ajout d'un S3 disk réinscriptible qui prend en charge les opérations INSERT et ne nécessite pas de métadonnées stockées localement. [#61116](https://github.com/ClickHouse/ClickHouse/pull/61116) ([Julia Kartseva](https://github.com/jkartseva)). Le principal cas d'usage concerne les system tables.
* La coloration syntaxique pendant la saisie dans le client fonctionnera au niveau de la syntaxe (auparavant, elle fonctionnait au niveau du lexer). [#62123](https://github.com/ClickHouse/ClickHouse/pull/62123) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de la suppression de plusieurs tables en même temps, comme avec `DROP TABLE a, b, c`;. [#58705](https://github.com/ClickHouse/ClickHouse/pull/58705) ([zhongyuankai](https://github.com/zhongyuankai)).
* La modification des table settings d'une table memory via `ALTER MODIFY SETTING` est désormais prise en charge. Exemple : `ALTER TABLE memory MODIFY SETTING min_rows_to_keep = 100, max_rows_to_keep = 1000;`. [#62039](https://github.com/ClickHouse/ClickHouse/pull/62039) ([zhongyuankai](https://github.com/zhongyuankai)).
* Ajout du query parameter `role` à la HTTP interface. Il fonctionne de manière similaire à `SET ROLE x`, en appliquant le rôle avant l'exécution du statement. Cela permet de contourner la limitation de la HTTP interface : les statements multiples ne sont pas autorisés, et il n'est donc pas possible d'envoyer à la fois `SET ROLE x` et le statement lui-même. Il est possible de définir plusieurs rôles de cette manière, par exemple `?role=x&role=y`, ce qui équivaut à `SET ROLE x, y`. [#62669](https://github.com/ClickHouse/ClickHouse/pull/62669) ([Serge Klochkov](https://github.com/slvrtrn)).
* Ajout de `SYSTEM UNLOAD PRIMARY KEY` pour libérer la mémoire utilisée par la primary key d'une table. [#62738](https://github.com/ClickHouse/ClickHouse/pull/62738) ([Pablo Marcos](https://github.com/pamarcos)).
* Ajout des colonnes `value1`, `value2`, ..., `value10` à `system.text_log`. Ces colonnes contiennent les valeurs utilisées pour formater le message. [#59619](https://github.com/ClickHouse/ClickHouse/pull/59619) ([Alexey Katsman](https://github.com/alexkats)).
* Ajout de la persistent virtual column `_block_offset`, qui stocke le numéro d'origine de la row dans le block assigné lors de l'insert. La persistance de la column `_block_offset` peut être activée via le MergeTree setting `enable_block_offset_column`. Ajout de la virtual column `_part_data_version`, qui contient soit le numéro minimal du block, soit la version de mutation de la part. La persistent virtual column `_block_number` n'est plus considérée comme Experimental. [#60676](https://github.com/ClickHouse/ClickHouse/pull/60676) ([Anton Popov](https://github.com/CurtizJ)).
* Ajout d'un setting `input_format_json_throw_on_bad_escape_sequence` ; sa désactivation permet d'enregistrer des séquences d'échappement invalides dans les JSON input formats. [#61889](https://github.com/ClickHouse/ClickHouse/pull/61889) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Amélioration du push down des filtres de JOIN à l’aide de sets équivalents. [#61216](https://github.com/ClickHouse/ClickHouse/pull/61216) ([Maksim Kita](https://github.com/kitaisreal)).
* Optimisation de la conversion de OUTER JOIN en INNER JOIN lorsque le filtre appliqué après le JOIN filtre toujours les valeurs par défaut. L’optimisation peut être contrôlée avec le paramètre `query_plan_convert_outer_join_to_inner_join`, activé par défaut. [#62907](https://github.com/ClickHouse/ClickHouse/pull/62907) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration pour AWS S3. Le client doit envoyer l’en-tête 'Keep-Alive: timeout=X' au serveur. Si un client reçoit du serveur une réponse avec cet en-tête, il doit utiliser la valeur fournie par le serveur. De plus, il est préférable pour un client de ne pas utiliser une connexion proche de l’expiration afin d’éviter une condition de concurrence lors de la fermeture de la connexion. [#62249](https://github.com/ClickHouse/ClickHouse/pull/62249) ([Sema Checherinda](https://github.com/CheSema)).
* Réduction de la surcharge liée aux mutations pour les SELECTs (v2). [#60856](https://github.com/ClickHouse/ClickHouse/pull/60856) ([Azat Khuzhin](https://github.com/azat)).
* Les fonctions les plus fréquemment appelées dans PODArray sont désormais forcées à être inline. [#61144](https://github.com/ClickHouse/ClickHouse/pull/61144) ([李扬](https://github.com/taiyang-li)).
* Accélération du parsing du JSON en ignorant le reste de l’objet lorsque toutes les colonnes requises ont été lues. [#62210](https://github.com/ClickHouse/ClickHouse/pull/62210) ([lgbo](https://github.com/lgbo-ustc)).
* Amélioration des insert select triviales depuis des fichiers dans les table functions file/s3/hdfs/url/.... Ajout d’un paramètre max\_parsing\_threads distinct pour contrôler le nombre de threads utilisés pour le parsing en parallèle. [#62404](https://github.com/ClickHouse/ClickHouse/pull/62404) ([Kruglov Pavel](https://github.com/Avogar)).
* Les fonctions `to_utc_timestamp` et `from_utc_timestamp` sont désormais environ 2x plus rapides. [#62583](https://github.com/ClickHouse/ClickHouse/pull/62583) ([KevinyhZou](https://github.com/KevinyhZou)).
* Les fonctions `parseDateTimeOrNull`, `parseDateTimeOrZero`, `parseDateTimeInJodaSyntaxOrNull` et `parseDateTimeInJodaSyntaxOrZero` s’exécutent désormais nettement plus vite (10x - 1000x) lorsque l’entrée contient principalement des valeurs impossibles à parser. [#62634](https://github.com/ClickHouse/ClickHouse/pull/62634) ([LiuNeng](https://github.com/liuneng1994)).
* Les SELECTs sur `system.query_cache` sont désormais sensiblement plus rapides lorsque le query cache contient beaucoup d’entrées (par ex. plus de 100.000). [#62671](https://github.com/ClickHouse/ClickHouse/pull/62671) ([Robert Schulze](https://github.com/rschu1ze)).
* Moins de contention dans le cache du système de fichiers (partie 3) : exécution de la suppression depuis le système de fichiers sans verrou lors de la tentative de réservation d’espace. [#61163](https://github.com/ClickHouse/ClickHouse/pull/61163) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Accélération du redimensionnement dynamique du cache du système de fichiers. [#61723](https://github.com/ClickHouse/ClickHouse/pull/61723) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Le dictionary source avec `INVALIDATE_QUERY` n’est plus rechargé deux fois au démarrage. [#62050](https://github.com/ClickHouse/ClickHouse/pull/62050) ([vdimir](https://github.com/vdimir)).
* Correction d’un problème où, lorsqu’un `= 1` ou `= 0` redondant est ajouté après une expression booléenne impliquant la clé primaire, l’index primaire n’est pas utilisé. Par exemple, `SELECT * FROM <table> WHERE <primary-key> IN (<value>) = 1` et `SELECT * FROM <table> WHERE <primary-key> NOT IN (<value>) = 0` effectuent tous deux un parcours complet de la table, alors que l’index primaire pourrait être utilisé. [#62142](https://github.com/ClickHouse/ClickHouse/pull/62142) ([josh-hildred](https://github.com/josh-hildred)).
* Renvoyer un flux de fragments depuis `system.remote_data_paths` au lieu d’accumuler l’ensemble du résultat dans un seul gros fragment. Cela permet d’utiliser moins de mémoire, d’afficher une progression intermédiaire et d’annuler la requête. [#62613](https://github.com/ClickHouse/ClickHouse/pull/62613) ([Alexander Gololobov](https://github.com/davenger)).

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

* Prise en charge d’un tampon d’écriture parallèle pour Azure Blob Storage, géré par le paramètre `azure_allow_parallel_part_upload`. [#62534](https://github.com/ClickHouse/ClickHouse/pull/62534) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Le cache de pages en espace utilisateur fonctionne désormais avec le stockage web statique (`disk(type = web)`). Utilisez le paramètre client `use_page_cache_for_disks_without_file_cache=1` pour l’activer. [#61911](https://github.com/ClickHouse/ClickHouse/pull/61911) ([Michael Kolupaev](https://github.com/al13n321)).
* Les variantes Bool et numériques ne sont plus considérées comme suspectes dans le type `Variant`. [#61999](https://github.com/ClickHouse/ClickHouse/pull/61999) ([Kruglov Pavel](https://github.com/Avogar)).
* Amélioration de la conversion de String vers `Variant` à l’aide de l’analyse syntaxique. [#62005](https://github.com/ClickHouse/ClickHouse/pull/62005) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge de `Variant` dans les fonctions JSONExtract. [#62014](https://github.com/ClickHouse/ClickHouse/pull/62014) ([Kruglov Pavel](https://github.com/Avogar)).
* Le type `Variant` est désormais marqué comme comparable, ce qui permet de l’utiliser dans une clé primaire. [#62693](https://github.com/ClickHouse/ClickHouse/pull/62693) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Par commodité, `SELECT * FROM numbers() `fonctionnera de la même manière que `SELECT * FROM system.numbers` — sans limite. [#61969](https://github.com/ClickHouse/ClickHouse/pull/61969) ([YenchangChan](https://github.com/YenchangChan)).
* Introduction de tags consumer/producer distincts pour la configuration Kafka. Cela évite les avertissements de librdkafka (une mauvaise bibliothèque C avec beaucoup de bogues) signalant que des propriétés consumer ont été spécifiées pour des instances producer, et inversement (par exemple `Configuration property session.timeout.ms is a consumer property and will be ignored by this producer instance`). Clôture : [#58983](https://github.com/ClickHouse/ClickHouse/issues/58983). [#58956](https://github.com/ClickHouse/ClickHouse/pull/58956) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Les fonctions `date_diff` et `age` calculent désormais leur résultat avec une précision à la nanoseconde au lieu de la microseconde. Elles proposent aussi désormais `nanosecond` (ou `nanoseconds` ou `ns`) comme valeur possible pour le paramètre `unit`. [#61409](https://github.com/ClickHouse/ClickHouse/pull/61409) ([Austin Kothig](https://github.com/kothiga)).
* Ajout des unités nano-, micro- et milliseconde pour `date_trunc`. [#62335](https://github.com/ClickHouse/ClickHouse/pull/62335) ([Misz606](https://github.com/Misz606)).
* Rechargement de la chaîne de certificats lors du rechargement du certificat. [#61671](https://github.com/ClickHouse/ClickHouse/pull/61671) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Tentative de prévention de l'erreur [#60432](https://github.com/ClickHouse/ClickHouse/issues/60432) en interdisant l'attachement d'une table s'il existe une replica active pour ce chemin de replica. [#61876](https://github.com/ClickHouse/ClickHouse/pull/61876) ([Arthur Passos](https://github.com/arthurpassos)).
* Ajout de la prise en charge de `input` pour `clickhouse-local`. [#61923](https://github.com/ClickHouse/ClickHouse/pull/61923) ([Azat Khuzhin](https://github.com/azat)).
* Le `Join` table engine avec la strictness `ANY` est désormais cohérent après rechargement. Lorsque plusieurs rows avec la même key sont insérées, la première a la priorité (auparavant, elle était choisie aléatoirement lors du chargement de la table). Corrige [#51027](https://github.com/ClickHouse/ClickHouse/issues/51027). [#61972](https://github.com/ClickHouse/ClickHouse/pull/61972) ([vdimir](https://github.com/vdimir)).
* Déduction automatique des column types Nullable à partir du schéma Apache Arrow. [#61984](https://github.com/ClickHouse/ClickHouse/pull/61984) ([Maksim Kita](https://github.com/kitaisreal)).
* Possibilité d'annuler le merge parallèle des aggregate states pendant l'aggregation. Example : `uniqExact`. [#61992](https://github.com/ClickHouse/ClickHouse/pull/61992) ([Maksim Kita](https://github.com/kitaisreal)).
* Utilisation de `system.keywords` pour alimenter les suggestions, et utilisation de ceux-ci partout en interne. [#62000](https://github.com/ClickHouse/ClickHouse/pull/62000) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* `OPTIMIZE FINAL` pour `ReplicatedMergeTree` attendra désormais la fin des merges actifs, puis réessaiera de planifier un merge final. Ce comportement se rapproche ainsi davantage de celui de `MergeTree`. [#62067](https://github.com/ClickHouse/ClickHouse/pull/62067) ([Nikita Taranov](https://github.com/nickitat)).
* Lors de la lecture de données à partir d’un Hive Text File, la première ligne du fichier était utilisée pour ajuster le nombre de champs en entrée. Il arrivait parfois que le nombre de champs de cette première ligne ne corresponde pas à celui défini dans la Hive table. Par exemple, si la Hive table est définie avec 3 colonnes, comme `test_tbl(a Int32, b Int32, c Int32)`, mais que la première ligne du fichier texte ne contient que 2 champs, alors le nombre de champs en entrée est ramené à 2. Si la ligne suivante du fichier texte contient 3 champs, le troisième ne peut alors pas être lu et reçoit à la place la valeur par défaut 0, ce qui est incorrect. [#62086](https://github.com/ClickHouse/ClickHouse/pull/62086) ([KevinyhZou](https://github.com/KevinyhZou)).
* `CREATE AS` copie le commentaire de la table. [#62117](https://github.com/ClickHouse/ClickHouse/pull/62117) ([Pablo Marcos](https://github.com/pamarcos)).
* Ajout de la progression des requêtes à la table zookeeper. [#62152](https://github.com/ClickHouse/ClickHouse/pull/62152) ([JackyWoo](https://github.com/JackyWoo)).
* Ajout de la possibilité d’activer le collector de trace (temps réel et CPU) à l’échelle du serveur. [#62189](https://github.com/ClickHouse/ClickHouse/pull/62189) ([alesapin](https://github.com/alesapin)).
* Ajout du paramètre `lightweight_deletes_sync` (valeur par défaut : 2 - attendre toutes les répliques de manière synchrone). Il est similaire au paramètre `mutations_sync`, mais n’affecte que le comportement des suppressions légères. [#62195](https://github.com/ClickHouse/ClickHouse/pull/62195) ([Anton Popov](https://github.com/CurtizJ)).
* Distinction entre booléens et entiers lors de l’analyse des valeurs des paramètres personnalisés : `SET custom_a = true; SET custom_b = 1;`. [#62206](https://github.com/ClickHouse/ClickHouse/pull/62206) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prise en charge de l’accès à S3 via des endpoints d’interface AWS Private Link. Ferme [#60021](https://github.com/ClickHouse/ClickHouse/issues/60021), [#31074](https://github.com/ClickHouse/ClickHouse/issues/31074) et [#53761](https://github.com/ClickHouse/ClickHouse/issues/53761). [#62208](https://github.com/ClickHouse/ClickHouse/pull/62208) ([Arthur Passos](https://github.com/arthurpassos)).
* Ne plus créer de répertoire pour les UDF dans clickhouse-client s’il n’existe pas. Cela ferme [#59597](https://github.com/ClickHouse/ClickHouse/issues/59597). [#62366](https://github.com/ClickHouse/ClickHouse/pull/62366) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le cache de requêtes ne met désormais plus en cache les résultats des requêtes sur les tables système (`system.*`, `information_schema.*`, `INFORMATION_SCHEMA.*`). [#62376](https://github.com/ClickHouse/ClickHouse/pull/62376) ([Robert Schulze](https://github.com/rschu1ze)).
* La requête `MOVE PARTITION TO TABLE` peut être retardée ou déclencher l’exception `TOO_MANY_PARTS` afin d’éviter de dépasser les limites du nombre de parts. Les mêmes paramètres et limites s’appliquent que pour la requête `INSERT` (voir les paramètres `max_parts_in_total`, `parts_to_delay_insert`, `parts_to_throw_insert`, `inactive_parts_to_throw_insert`, `inactive_parts_to_delay_insert`, `max_avg_part_size_for_too_many_parts`, `min_delay_to_insert_ms` et `max_delay_to_insert`). [#62420](https://github.com/ClickHouse/ClickHouse/pull/62420) ([Sergei Trifonov](https://github.com/serxa)).
* Le répertoire d’installation par défaut sur macOS passe de `/usr/bin` à `/usr/local/bin`. Cela est nécessaire, car la protection de l’intégrité du système d’Apple introduite avec macOS El Capitan (2015) empêche l’écriture dans `/usr/bin`, même avec `sudo`. [#62489](https://github.com/ClickHouse/ClickHouse/pull/62489) ([haohang](https://github.com/yokofly)).
* Faire en sorte que transform renvoie toujours la première correspondance. [#62518](https://github.com/ClickHouse/ClickHouse/pull/62518) ([Raúl Marín](https://github.com/Algunenano)).
* Ajout de la colonne `hostname` manquante à la table système `blob_storage_log`. [#62456](https://github.com/ClickHouse/ClickHouse/pull/62456) ([Jayme Bird](https://github.com/jaymebrd)).
* Par souci de cohérence avec les autres tables système, `system.backup_log` dispose désormais d’une colonne `event_time`. [#62541](https://github.com/ClickHouse/ClickHouse/pull/62541) ([Jayme Bird](https://github.com/jaymebrd)).
* La table `system.backup_log` utilise désormais la clé de tri "par défaut" `event_date, event_time`, comme les autres moteurs de table `_log`. [#62667](https://github.com/ClickHouse/ClickHouse/pull/62667) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Éviter l’évaluation des expressions DEFAULT de la table lors de l’exécution de `RESTORE`. [#62601](https://github.com/ClickHouse/ClickHouse/pull/62601) ([Vitaly Baranov](https://github.com/vitlibar)).
* Le stockage S3 et les sauvegardes nécessitent également les mêmes paramètres keep-alive par défaut que le disque S3. [#62648](https://github.com/ClickHouse/ClickHouse/pull/62648) ([Sema Checherinda](https://github.com/CheSema)).
* Ajouter l’identifiant client de librdkafka (cette tristement célèbre bibliothèque C, qui comporte de nombreux bugs) aux messages de journalisation afin de pouvoir différencier ceux provenant de différents consommateurs d’une même table. [#62813](https://github.com/ClickHouse/ClickHouse/pull/62813) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Autoriser les macros spéciales `{uuid}` et `{database}` dans le chemin ZooKeeper d’une base de données Replicated. [#62818](https://github.com/ClickHouse/ClickHouse/pull/62818) ([Vitaly Baranov](https://github.com/vitlibar)).
* Autoriser l’utilisation d’une clé de quota avec différents schémas d’authentification dans les requêtes HTTP. [#62842](https://github.com/ClickHouse/ClickHouse/pull/62842) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Réduire la verbosité de l’argument de ligne de commande `--help` dans `clickhouse client` et `clickhouse local`. La sortie précédente est désormais générée par `--help --verbose`. [#62973](https://github.com/ClickHouse/ClickHouse/pull/62973) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `log_bin_use_v1_row_events` a été supprimé dans MySQL 8.3, et le moteur expérimental `MaterializedMySQL` a été adapté en conséquence [#60479](https://github.com/ClickHouse/ClickHouse/issues/60479). [#63101](https://github.com/ClickHouse/ClickHouse/pull/63101) ([Eugene Klimov](https://github.com/Slach)). Auteur : Nikolay Yankin.

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

* Ajout des dépendances Rust au dépôt, afin que le code Rust (que nous utilisons pour des fonctionnalités mineures, pour le hype et les lulz) puisse être compilé de manière raisonnable, comme en C++. [#62297](https://github.com/ClickHouse/ClickHouse/pull/62297) ([Raúl Marín](https://github.com/Algunenano)).
* ClickHouse utilise désormais OpenSSL 3.2 au lieu de BoringSSL. [#59870](https://github.com/ClickHouse/ClickHouse/pull/59870) ([Robert Schulze](https://github.com/rschu1ze)). Notez qu’OpenSSL a globalement une culture d’ingénierie moins bonne (par exemple un nombre non nul de rapports de sanitizer, que nous avons dû corriger, un système de compilation complexe avec des fichiers générés, etc.), mais offre une meilleure compatibilité.
* Ignorer les requêtes DROP dans le test de stress avec une probabilité d’une fois sur deux, et utiliser TRUNCATE au lieu d’ignorer DROP dans la vérification de mise à niveau des tables Memory/JOIN. [#61476](https://github.com/ClickHouse/ClickHouse/pull/61476) ([Kruglov Pavel](https://github.com/Avogar)).
* Retirer de l’image Docker de Keeper les volumes situés dans /etc/clickhouse-keeper et /var/log/clickhouse-keeper. [#61683](https://github.com/ClickHouse/ClickHouse/pull/61683) ([Tristan](https://github.com/Tristan971)).
* Ajout de tests pour tous les tickets devenus sans objet depuis que l'analyseur est activé par défaut. Closes: [#55794](https://github.com/ClickHouse/ClickHouse/issues/55794) Closes: [#49472](https://github.com/ClickHouse/ClickHouse/issues/49472) Closes: [#44414](https://github.com/ClickHouse/ClickHouse/issues/44414) Closes: [#13843](https://github.com/ClickHouse/ClickHouse/issues/13843) Closes: [#55803](https://github.com/ClickHouse/ClickHouse/issues/55803) Closes: [#48308](https://github.com/ClickHouse/ClickHouse/issues/48308) Closes: [#45535](https://github.com/ClickHouse/ClickHouse/issues/45535) Closes: [#44365](https://github.com/ClickHouse/ClickHouse/issues/44365) Closes: [#44153](https://github.com/ClickHouse/ClickHouse/issues/44153) Closes: [#42399](https://github.com/ClickHouse/ClickHouse/issues/42399) Closes: [#27115](https://github.com/ClickHouse/ClickHouse/issues/27115) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#15395](https://github.com/ClickHouse/ClickHouse/issues/15395) Closes: [#15411](https://github.com/ClickHouse/ClickHouse/issues/15411) Closes: [#14978](https://github.com/ClickHouse/ClickHouse/issues/14978) Closes: [#17319](https://github.com/ClickHouse/ClickHouse/issues/17319) Closes: [#11813](https://github.com/ClickHouse/ClickHouse/issues/11813) Closes: [#13210](https://github.com/ClickHouse/ClickHouse/issues/13210) Closes: [#23053](https://github.com/ClickHouse/ClickHouse/issues/23053) Closes: [#37729](https://github.com/ClickHouse/ClickHouse/issues/37729) Closes: [#32639](https://github.com/ClickHouse/ClickHouse/issues/32639) Closes: [#9954](https://github.com/ClickHouse/ClickHouse/issues/9954) Closes: [#41964](https://github.com/ClickHouse/ClickHouse/issues/41964) Closes: [#54317](https://github.com/ClickHouse/ClickHouse/issues/54317) Closes: [#7520](https://github.com/ClickHouse/ClickHouse/issues/7520) Closes: [#36973](https://github.com/ClickHouse/ClickHouse/issues/36973) Closes: [#40955](https://github.com/ClickHouse/ClickHouse/issues/40955) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#23104](https://github.com/ClickHouse/ClickHouse/issues/23104) Closes: [#21584](https://github.com/ClickHouse/ClickHouse/issues/21584) Closes: [#23344](https://github.com/ClickHouse/ClickHouse/issues/23344) Closes: [#22627](https://github.com/ClickHouse/ClickHouse/issues/22627) Closes: [#10276](https://github.com/ClickHouse/ClickHouse/issues/10276) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#4567](https://github.com/ClickHouse/ClickHouse/issues/4567) Closes: [#17710](https://github.com/ClickHouse/ClickHouse/issues/17710) Closes: [#11068](https://github.com/ClickHouse/ClickHouse/issues/11068) Closes: [#24395](https://github.com/ClickHouse/ClickHouse/issues/24395) Closes: [#23416](https://github.com/ClickHouse/ClickHouse/issues/23416) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#25655](https://github.com/ClickHouse/ClickHouse/issues/25655) Closes: [#11757](https://github.com/ClickHouse/ClickHouse/issues/11757) Closes: [#6571](https://github.com/ClickHouse/ClickHouse/issues/6571) Closes: [#4432](https://github.com/ClickHouse/ClickHouse/issues/4432) Closes: [#8259](https://github.com/ClickHouse/ClickHouse/issues/8259) Closes: [#9233](https://github.com/ClickHouse/ClickHouse/issues/9233) Closes: [#14699](https://github.com/ClickHouse/ClickHouse/issues/14699) Closes: [#27068](https://github.com/ClickHouse/ClickHouse/issues/27068) Closes: [#28687](https://github.com/ClickHouse/ClickHouse/issues/28687) Closes: [#28777](https://github.com/ClickHouse/ClickHouse/issues/28777) Closes: [#29734](https://github.com/ClickHouse/ClickHouse/issues/29734) Closes: [#61238](https://github.com/ClickHouse/ClickHouse/issues/61238) Closes: [#33825](https://github.com/ClickHouse/ClickHouse/issues/33825) Closes: [#35608](https://github.com/ClickHouse/ClickHouse/issues/35608) Closes: [#29838](https://github.com/ClickHouse/ClickHouse/issues/29838) Closes: [#35652](https://github.com/ClickHouse/ClickHouse/issues/35652) Closes: [#36189](https://github.com/ClickHouse/ClickHouse/issues/36189) Closes: [#39634](https://github.com/ClickHouse/ClickHouse/issues/39634) Closes: [#47432](https://github.com/ClickHouse/ClickHouse/issues/47432) Closes: [#54910](https://github.com/ClickHouse/ClickHouse/issues/54910) Closes: [#57321](https://github.com/ClickHouse/ClickHouse/issues/57321) Closes: [#59154](https://github.com/ClickHouse/ClickHouse/issues/59154) Closes: [#61014](https://github.com/ClickHouse/ClickHouse/issues/61014) Closes: [#61950](https://github.com/ClickHouse/ClickHouse/issues/61950) Closes: [#55647](https://github.com/ClickHouse/ClickHouse/issues/55647) Closes: [#61947](https://github.com/ClickHouse/ClickHouse/issues/61947). [#62185](https://github.com/ClickHouse/ClickHouse/pull/62185) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout de tests supplémentaires issus de tickets qui ne sont plus pertinents ou qui ont été corrigés par l’analyseur. Ferme : [#58985](https://github.com/ClickHouse/ClickHouse/issues/58985) Ferme : [#59549](https://github.com/ClickHouse/ClickHouse/issues/59549) Ferme : [#36963](https://github.com/ClickHouse/ClickHouse/issues/36963) Ferme : [#39453](https://github.com/ClickHouse/ClickHouse/issues/39453) Ferme : [#56521](https://github.com/ClickHouse/ClickHouse/issues/56521) Ferme : [#47552](https://github.com/ClickHouse/ClickHouse/issues/47552) Ferme : [#56503](https://github.com/ClickHouse/ClickHouse/issues/56503) Ferme : [#59101](https://github.com/ClickHouse/ClickHouse/issues/59101) Ferme : [#50271](https://github.com/ClickHouse/ClickHouse/issues/50271) Ferme : [#54954](https://github.com/ClickHouse/ClickHouse/issues/54954) Ferme : [#56466](https://github.com/ClickHouse/ClickHouse/issues/56466) Ferme : [#11000](https://github.com/ClickHouse/ClickHouse/issues/11000) Ferme : [#10894](https://github.com/ClickHouse/ClickHouse/issues/10894) Ferme : [https://github.com/ClickHouse/ClickHouse/issues/448](https://github.com/ClickHouse/ClickHouse/issues/448) Ferme : [#8030](https://github.com/ClickHouse/ClickHouse/issues/8030) Ferme : [#32139](https://github.com/ClickHouse/ClickHouse/issues/32139) Ferme : [#47288](https://github.com/ClickHouse/ClickHouse/issues/47288) Ferme : [#50705](https://github.com/ClickHouse/ClickHouse/issues/50705) Ferme : [#54511](https://github.com/ClickHouse/ClickHouse/issues/54511) Ferme : [#55466](https://github.com/ClickHouse/ClickHouse/issues/55466) Ferme : [#58500](https://github.com/ClickHouse/ClickHouse/issues/58500) Ferme : [#39923](https://github.com/ClickHouse/ClickHouse/issues/39923) Ferme : [#39855](https://github.com/ClickHouse/ClickHouse/issues/39855) Ferme : [#4596](https://github.com/ClickHouse/ClickHouse/issues/4596) Ferme : [#47422](https://github.com/ClickHouse/ClickHouse/issues/47422) Ferme : [#33000](https://github.com/ClickHouse/ClickHouse/issues/33000) Ferme : [#14739](https://github.com/ClickHouse/ClickHouse/issues/14739) Ferme : [#44039](https://github.com/ClickHouse/ClickHouse/issues/44039) Ferme : [#8547](https://github.com/ClickHouse/ClickHouse/issues/8547) Ferme : [#22923](https://github.com/ClickHouse/ClickHouse/issues/22923) Ferme : [#23865](https://github.com/ClickHouse/ClickHouse/issues/23865) Ferme : [#29748](https://github.com/ClickHouse/ClickHouse/issues/29748) Ferme : [#4222](https://github.com/ClickHouse/ClickHouse/issues/4222). [#62457](https://github.com/ClickHouse/ClickHouse/pull/62457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correction des erreurs de compilation lorsque OpenSSL est lié dynamiquement (remarque : cela n’est généralement pas pris en charge et n’est requis que pour les plateformes s390x d’IBM). [#62888](https://github.com/ClickHouse/ClickHouse/pull/62888) ([Harry Lee](https://github.com/HarryLeeIBM)).

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

* Correction d’une erreur logique lors de l’annulation d’une transaction d’insertion avec quorum. [#61953](https://github.com/ClickHouse/ClickHouse/pull/61953) ([Han Fei](https://github.com/hanfei1991)).
* Correction d’une erreur de parseur lors de l’utilisation de COUNT(\*) avec la clause FILTER [#61357](https://github.com/ClickHouse/ClickHouse/pull/61357) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’une erreur logique dans `group_by_use_nulls` + grouping sets + analyseur + materialize/constant [#61567](https://github.com/ClickHouse/ClickHouse/pull/61567) ([Kruglov Pavel](https://github.com/Avogar)).
* Annulation des merges avant la suppression des parts déplacées [#61610](https://github.com/ClickHouse/ClickHouse/pull/61610) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction d’un arrêt brutal dans Apache Arrow [#61720](https://github.com/ClickHouse/ClickHouse/pull/61720) ([Kruglov Pavel](https://github.com/Avogar)).
* Recherche de l’indicateur `convert_to_replicated` dans le bon chemin correspondant au disque concerné [#61769](https://github.com/ClickHouse/ClickHouse/pull/61769) ([Kirill](https://github.com/kirillgarbar)).
* Correction d’une possible compétition d’accès aux données des connexions pour distributed\_foreground\_insert/distributed\_background\_insert\_batch [#61867](https://github.com/ClickHouse/ClickHouse/pull/61867) ([Azat Khuzhin](https://github.com/azat)).
* Marquage de l’erreur CANNOT\_PARSE\_ESCAPE\_SEQUENCE comme erreur d’analyse afin de pouvoir l’ignorer dans les formats d’entrée ligne par ligne [#61883](https://github.com/ClickHouse/ClickHouse/pull/61883) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de l’écriture du message d’Exception dans le format de sortie HTTP lorsque http\_wait\_end\_of\_query est utilisé [#61951](https://github.com/ClickHouse/ClickHouse/pull/61951) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction complète de LowCardinality avec les fonctions JSONExtact [#61957](https://github.com/ClickHouse/ClickHouse/pull/61957) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Crash dans le moteur Merge si la ROW POLICY n’a pas d’expression [#61971](https://github.com/ClickHouse/ClickHouse/pull/61971) ([Ilya Golshtein](https://github.com/ilejn)).
* Correction d’une exception non interceptée dans le destructeur de WriteBufferAzureBlobStorage [#61988](https://github.com/ClickHouse/ClickHouse/pull/61988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction de CREATE TABLE sans définition de colonnes pour ReplicatedMergeTree [#62040](https://github.com/ClickHouse/ClickHouse/pull/62040) ([Azat Khuzhin](https://github.com/azat)).
* Correction de optimize\_skip\_unused\_shards\_rewrite\_in pour une clé de partitionnement composite [#62047](https://github.com/ClickHouse/ClickHouse/pull/62047) ([Azat Khuzhin](https://github.com/azat)).
* ReadWriteBufferFromHTTP définit l’en-tête host correct lors d’une redirection [#62068](https://github.com/ClickHouse/ClickHouse/pull/62068) ([Sema Checherinda](https://github.com/CheSema)).
* Correction du cas où la table externe ne pouvait pas analyser le type de données Bool [#62115](https://github.com/ClickHouse/ClickHouse/pull/62115) ([Duc Canh Le](https://github.com/canhld94)).
* Analyseur : correction de la résolution des paramètres de requête [#62186](https://github.com/ClickHouse/ClickHouse/pull/62186) ([Dmitry Novik](https://github.com/novikd)).
* Correction de la restauration des parts en mode readonly [#62207](https://github.com/ClickHouse/ClickHouse/pull/62207) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d’un crash dans une définition d’index contenant une UDF SQL [#62225](https://github.com/ClickHouse/ClickHouse/pull/62225) ([vdimir](https://github.com/vdimir)).
* Correction de la graine aléatoire NULL pour generateRandom avec l'analyseur. [#62248](https://github.com/ClickHouse/ClickHouse/pull/62248) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Prise en charge correcte des colonnes constantes dans Distinct Transfom [#62250](https://github.com/ClickHouse/ClickHouse/pull/62250) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction de Parts Splitter pour les requêtes avec le modificateur FINAL [#62268](https://github.com/ClickHouse/ClickHouse/pull/62268) ([Nikita Taranov](https://github.com/nickitat)).
* Analyseur : correction de la résolution d'alias vers une vue paramétrée [#62274](https://github.com/ClickHouse/ClickHouse/pull/62274) ([Dmitry Novik](https://github.com/novikd)).
* Analyseur : correction de la résolution des noms à partir des portées parentes [#62281](https://github.com/ClickHouse/ClickHouse/pull/62281) ([Dmitry Novik](https://github.com/novikd)).
* Correction de argMax avec une colonne numérique Nullable non native [#62285](https://github.com/ClickHouse/ClickHouse/pull/62285) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de BACKUP et RESTORE d'une vue matérialisée dans une base de données Ordinary [#62295](https://github.com/ClickHouse/ClickHouse/pull/62295) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correction d'une data race sur les scalaires dans Context [#62305](https://github.com/ClickHouse/ClickHouse/pull/62305) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de la clé primaire dans une vue matérialisée [#62319](https://github.com/ClickHouse/ClickHouse/pull/62319) ([Murat Khairulin](https://github.com/mxwell)).
* Ne pas construire de pipeline d'insert multithreadé pour les tables qui ne le prennent pas en charge [#62333](https://github.com/ClickHouse/ClickHouse/pull/62333) ([vdimir](https://github.com/vdimir)).
* Correction de l'analyseur avec des arguments positionnels dans une requête distribuée [#62362](https://github.com/ClickHouse/ClickHouse/pull/62362) ([flynn](https://github.com/ucasfl)).
* Correction du pushdown de filtre depuis additional\_table\_filters dans le moteur Merge avec l'analyseur [#62398](https://github.com/ClickHouse/ClickHouse/pull/62398) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction des requêtes de table GLOBAL IN avec l'analyseur. [#62409](https://github.com/ClickHouse/ClickHouse/pull/62409) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Prise en compte des paramètres truncate\_on\_insert/create\_new\_file\_on\_insert dans les moteurs S3/HDFS/Azure lors de l'écriture partitionnée [#62425](https://github.com/ClickHouse/ClickHouse/pull/62425) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du chemin de restauration de sauvegarde pour AzureBlobStorage [#62447](https://github.com/ClickHouse/ClickHouse/pull/62447) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correction de SimpleSquashingChunksTransform [#62451](https://github.com/ClickHouse/ClickHouse/pull/62451) ([Nikita Taranov](https://github.com/nickitat)).
* Correction de la capture d'une lambda imbriquée. [#62462](https://github.com/ClickHouse/ClickHouse/pull/62462) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Évite un crash lors de la lecture de Protobuf avec des types récursifs [#62506](https://github.com/ClickHouse/ClickHouse/pull/62506) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d'un bug lors du déplacement d'une partition vers elle-même [#62524](https://github.com/ClickHouse/ClickHouse/pull/62524) ([helifu](https://github.com/helifu)).
* Correction d'une sous-requête scalaire dans LIMIT [#62567](https://github.com/ClickHouse/ClickHouse/pull/62567) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un segfault dans le moteur Hive expérimental et non pris en charge, que nous n’apprécions de toute façon guère [#62578](https://github.com/ClickHouse/ClickHouse/pull/62578) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correction d’une fuite de mémoire dans groupArraySorted [#62597](https://github.com/ClickHouse/ClickHouse/pull/62597) ([Antonio Andelic](https://github.com/antonio2368)).
* Correction d’un crash dans largestTriangleThreeBuckets [#62646](https://github.com/ClickHouse/ClickHouse/pull/62646) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de tumble\[Start,End] et hop\[Start,End] pour des résolutions plus élevées [#62705](https://github.com/ClickHouse/ClickHouse/pull/62705) ([Jordi Villar](https://github.com/jrdi)).
* Correction de l’état du combinateur argMin/argMax [#62708](https://github.com/ClickHouse/ClickHouse/pull/62708) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l’échec des données temporaires dans le cache en raison de l’optimisation de la contention sur le verrou du cache [#62715](https://github.com/ClickHouse/ClickHouse/pull/62715) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d’un crash dans la fonction `mergeTreeIndex` [#62762](https://github.com/ClickHouse/ClickHouse/pull/62762) ([Anton Popov](https://github.com/CurtizJ)).
* correction : mise à jour : colonnes matérialisées imbriquées : corrections des vérifications de taille [#62773](https://github.com/ClickHouse/ClickHouse/pull/62773) ([Eliot Hautefeuille](https://github.com/hileef)).
* Correction du fait que le modificateur FINAL n’est pas respecté dans une CTE avec l’analyseur [#62811](https://github.com/ClickHouse/ClickHouse/pull/62811) ([Duc Canh Le](https://github.com/canhld94)).
* Correction d’un crash dans la fonction `formatRow` avec le format `JSON` et l’interface HTTP [#62840](https://github.com/ClickHouse/ClickHouse/pull/62840) ([Anton Popov](https://github.com/CurtizJ)).
* Azure : correction de la construction de l’URL finale à partir de l’objet endpoint [#62850](https://github.com/ClickHouse/ClickHouse/pull/62850) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Correction du codec GCD [#62853](https://github.com/ClickHouse/ClickHouse/pull/62853) ([Nikita Taranov](https://github.com/nickitat)).
* Correction de la clé LowCardinality(Nullable) dans hyperrectangle [#62866](https://github.com/ClickHouse/ClickHouse/pull/62866) ([Amos Bird](https://github.com/amosbird)).
* Correction de fromUnixtimestamp en syntaxe Joda lorsque la valeur d’entrée dépasse UInt32 [#62901](https://github.com/ClickHouse/ClickHouse/pull/62901) ([KevinyhZou](https://github.com/KevinyhZou)).
* Désactivation de optimize\_rewrite\_aggregate\_function\_with\_if pour sum(nullable) [#62912](https://github.com/ClickHouse/ClickHouse/pull/62912) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de PREWHERE pour StorageBuffer avec différents types de colonnes dans la table source. [#62916](https://github.com/ClickHouse/ClickHouse/pull/62916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction du traitement incorrect de l’échec de création du répertoire de clé de cache pour les données temporaires dans le cache [#62925](https://github.com/ClickHouse/ClickHouse/pull/62925) ([Kseniia Sumarokova](https://github.com/kssenii)).
* gRPC : correction d’un crash sur une connexion peer IPv6 [#62978](https://github.com/ClickHouse/ClickHouse/pull/62978) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Correction d’un possible CHECKSUM\_DOESNT\_MATCH (et d’autres) lors de fetches répliqués [#62987](https://github.com/ClickHouse/ClickHouse/pull/62987) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un arrêt dû à une exception non interceptée dans les données temporaires du cache [#62998](https://github.com/ClickHouse/ClickHouse/pull/62998) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de `optimize&#95;rewrite&#95;aggregate&#95;function&#95;with&#95;if` avec transtypage implicite [#62999](https://github.com/ClickHouse/ClickHouse/pull/62999) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’une exception non gérée dans \~RestorerFromBackup [#63040](https://github.com/ClickHouse/ClickHouse/pull/63040) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ne pas supprimer les constantes du serveur de la clé GROUP BY pour la requête secondaire. [#63047](https://github.com/ClickHouse/ClickHouse/pull/63047) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’une évaluation incorrecte de la monotonie de la fonction abs [#63097](https://github.com/ClickHouse/ClickHouse/pull/63097) ([Duc Canh Le](https://github.com/canhld94)).
* Définition du nom du serveur pour la négociation SSL dans le engine MongoDB [#63122](https://github.com/ClickHouse/ClickHouse/pull/63122) ([Alexander Gololobov](https://github.com/davenger)).
* Utilisation de la DB spécifiée par l’utilisateur au lieu de "config" pour la vérification de la version du wire protocol MongoDB [#63126](https://github.com/ClickHouse/ClickHouse/pull/63126) ([Alexander Gololobov](https://github.com/davenger)).

### <a id="243" /> Version 24.3 LTS de ClickHouse, 2024-03-27. [Présentation](https://presentations.clickhouse.com/2024-release-24.3/), [Vidéo](https://www.youtube.com/watch?v=FGhdXXXTuTg)

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

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

* Le paramètre `allow_experimental_analyzer` est activé par défaut et bascule l’analyse des requêtes vers une nouvelle implémentation, offrant une meilleure compatibilité et une couverture fonctionnelle plus complète. La fonctionnalité "analyzer" est désormais considérée comme bêta plutôt qu’expérimentale. Vous pouvez rétablir l’ancien comportement en définissant `compatibility` sur `24.2` ou en désactivant le paramètre `allow_experimental_analyzer`. Regardez la [vidéo sur YouTube](https://www.youtube.com/watch?v=zhrOYQpgvkk).
* ClickHouse autorise des données binaires arbitraires dans le type de données String, généralement encodé en UTF-8. Les Strings Parquet/ORC/Arrow ne prennent en charge que l’UTF-8. C'est pourquoi vous pouvez choisir le type de données Arrow à utiliser pour le type de données String de ClickHouse : String ou Binary. Cela est contrôlé par les paramètres `output_format_parquet_string_as_string`, `output_format_orc_string_as_string`, `output_format_arrow_string_as_string`. Bien que Binary soit plus correct et plus compatible, l’utilisation de String par défaut correspondra aux attentes des utilisateurs dans la plupart des cas. Parquet/ORC/Arrow prend en charge de nombreuses méthodes de compression, notamment lz4 et zstd. ClickHouse prend en charge chacune de ces méthodes de compression. Certains outils moins performants ne prennent pas en charge la méthode de compression `lz4`, plus rapide, c'est pourquoi nous avons choisi `zstd` par défaut. Cela est contrôlé par les paramètres `output_format_parquet_compression_method`, `output_format_orc_compression_method` et `output_format_arrow_compression_method`. Nous avons remplacé la valeur par défaut par `zstd` pour Parquet et ORC, mais pas pour Arrow (qui est davantage destiné à des usages bas niveau). [#61817](https://github.com/ClickHouse/ClickHouse/pull/61817) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans la nouvelle version de ClickHouse, les fonctions `geoDistance`, `greatCircleDistance` et `greatCircleAngle` utiliseront le type de données à virgule flottante double précision 64 bits pour les calculs internes et comme type de retour si tous les arguments sont de type Float64. Cela clôt [#58476](https://github.com/ClickHouse/ClickHouse/issues/58476). Dans les versions précédentes, la fonction utilisait toujours Float32. Vous pouvez revenir à l’ancien comportement en définissant `geo_distance_returns_float64_on_float64_arguments` sur `false` ou en définissant `compatibility` sur `24.2` ou une version antérieure. [#61848](https://github.com/ClickHouse/ClickHouse/pull/61848) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Coécrit avec [Geet Patel](https://github.com/geetptl).
* Les data parts obsolètes en mémoire sont dépréciées depuis la version 23.5 et ne sont plus prises en charge depuis la version 23.10. Le code restant est désormais supprimé. Suite de [#55186](https://github.com/ClickHouse/ClickHouse/issues/55186) et [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409). Il est peu probable que vous ayez utilisé des data parts en mémoire, car elles n’étaient disponibles qu’avant la version 23.5 et uniquement si vous les activiez manuellement en spécifiant les SETTINGS correspondants pour une table MergeTree. Pour vérifier si vous avez des data parts en mémoire, exécutez la requête suivante : `SELECT part_type, count() FROM system.parts GROUP BY part_type ORDER BY part_type`. Pour désactiver l’utilisation des data parts en mémoire, exécutez `ALTER TABLE ... MODIFY SETTING min_bytes_for_compact_part = DEFAULT, min_rows_for_compact_part = DEFAULT`. Avant de mettre à niveau depuis d’anciennes versions de ClickHouse, vérifiez d’abord que vous n’avez pas de data parts en mémoire. S’il y a des data parts en mémoire, désactivez-les d’abord, puis attendez qu’il n’y en ait plus avant de poursuivre la mise à niveau. [#61127](https://github.com/ClickHouse/ClickHouse/pull/61127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le nom de la colonne a été changé de `duration_ms` à `duration_microseconds` dans la table `system.zookeeper` afin de refléter le fait que la durée est exprimée avec une résolution à la microseconde. [#60774](https://github.com/ClickHouse/ClickHouse/pull/60774) ([Duc Canh Le](https://github.com/canhld94)).
* Rejeter les requêtes `INSERT` entrantes lorsque les paramètres au niveau de la requête `async_insert` et `deduplicate_blocks_in_dependent_materialized_views` sont activés simultanément. Ce comportement est contrôlé par le paramètre `throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert`, activé par défaut. Il s'agit de la suite de [https://github.com/ClickHouse/ClickHouse/pull/59699](https://github.com/ClickHouse/ClickHouse/pull/59699), nécessaire pour débloquer [https://github.com/ClickHouse/ClickHouse/pull/59915](https://github.com/ClickHouse/ClickHouse/pull/59915). [#60888](https://github.com/ClickHouse/ClickHouse/pull/60888) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* L'utilitaire `clickhouse-copier` a été déplacé vers un repository GitHub distinct : [https://github.com/ClickHouse/copier](https://github.com/ClickHouse/copier). Il n'est plus inclus dans le bundle, mais reste disponible en téléchargement séparé. Cela clôture : [#60734](https://github.com/ClickHouse/ClickHouse/issues/60734) Cela clôture : [#60540](https://github.com/ClickHouse/ClickHouse/issues/60540) Cela clôture : [#60250](https://github.com/ClickHouse/ClickHouse/issues/60250) Cela clôture : [#52917](https://github.com/ClickHouse/ClickHouse/issues/52917) Cela clôture : [#51140](https://github.com/ClickHouse/ClickHouse/issues/51140) Cela clôture : [#47517](https://github.com/ClickHouse/ClickHouse/issues/47517) Cela clôture : [#47189](https://github.com/ClickHouse/ClickHouse/issues/47189) Cela clôture : [#46598](https://github.com/ClickHouse/ClickHouse/issues/46598) Cela clôture : [#40257](https://github.com/ClickHouse/ClickHouse/issues/40257) Cela clôture : [#36504](https://github.com/ClickHouse/ClickHouse/issues/36504) Cela clôture : [#35485](https://github.com/ClickHouse/ClickHouse/issues/35485) Cela clôture : [#33702](https://github.com/ClickHouse/ClickHouse/issues/33702) Cela clôture : [#26702](https://github.com/ClickHouse/ClickHouse/issues/26702).
* Pour améliorer la compatibilité avec MySQL, l'alias de compatibilité `locate` accepte désormais par défaut les arguments `(needle, haystack[, start_pos])`. Le comportement précédent `(haystack, needle, [, start_pos])` peut être rétabli en définissant `function_locate_has_mysql_compatible_argument_order = 0`. [#61092](https://github.com/ClickHouse/ClickHouse/pull/61092) ([Robert Schulze](https://github.com/rschu1ze)).
* Interdire par défaut `SimpleAggregateFunction` dans `ORDER BY` des tables `MergeTree` (comme `AggregateFunction`, car ils ne sont pas comparables) (utilisez `allow_suspicious_primary_key` pour les autoriser). [#61399](https://github.com/ClickHouse/ClickHouse/pull/61399) ([Azat Khuzhin](https://github.com/azat)).
* Le database engine `Ordinary` est obsolète. Vous recevrez un avertissement dans clickhouse-client si votre server l'utilise. Cela clôture [#52229](https://github.com/ClickHouse/ClickHouse/issues/52229). [#56942](https://github.com/ClickHouse/ClickHouse/pull/56942) ([shabroo](https://github.com/shabroo)).

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

* Prise en charge de la lecture et de l’écriture des sauvegardes au format `tar` (en plus de `zip`). [#59535](https://github.com/ClickHouse/ClickHouse/pull/59535) ([josh-hildred](https://github.com/josh-hildred)).
* Prise en charge des buckets S3 Express. [#59965](https://github.com/ClickHouse/ClickHouse/pull/59965) ([Nikita Taranov](https://github.com/nickitat)).
* Possibilité d’attacher des parts depuis un autre disk (en utilisant une copie au lieu d’un lien physique). [#60112](https://github.com/ClickHouse/ClickHouse/pull/60112) ([Unalian](https://github.com/Unalian)).
* Tables `Memory` avec taille plafonnée : contrôlées par leurs paramètres `min_bytes_to_keep`, `max_bytes_to_keep`, `min_rows_to_keep` et `max_rows_to_keep`. [#60612](https://github.com/ClickHouse/ClickHouse/pull/60612) ([Jake Bamrah](https://github.com/JakeBamrah)).
* Limites distinctes pour le nombre de requêtes en attente et en cours d’exécution. Ajout d’un nouveau paramètre serveur, `max_waiting_queries`, qui limite le nombre de requêtes en attente à cause de `async_load_databases`. Les limites existantes sur le nombre de requêtes en cours d’exécution ne comptent plus les requêtes en attente. [#61053](https://github.com/ClickHouse/ClickHouse/pull/61053) ([Sergei Trifonov](https://github.com/serxa)).
* Ajout d’une table `system.keywords` qui contient tous les mots-clés du parser. Elle est surtout nécessaire et sera utilisée pour améliorer le fuzzing et la coloration syntaxique. [#51808](https://github.com/ClickHouse/ClickHouse/pull/51808) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ajout de la prise en charge de `ATTACH PARTITION ALL`. [#61107](https://github.com/ClickHouse/ClickHouse/pull/61107) ([Kirill Nikiforov](https://github.com/allmazz)).
* Ajout d’une nouvelle fonction, `getClientHTTPHeader`. Cela clôt le ticket [#54665](https://github.com/ClickHouse/ClickHouse/issues/54665). Coécrit avec @lingtaolf. [#61820](https://github.com/ClickHouse/ClickHouse/pull/61820) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de `generate_series` comme table function (alias de compatibilité PostgreSQL pour la fonction existante `numbers`). Cette fonction génère une table contenant une progression arithmétique de nombres naturels. [#59390](https://github.com/ClickHouse/ClickHouse/pull/59390) ([divanik](https://github.com/divanik)).
* Ajout d’un mode pour `topK`/`topkWeighed` qui renvoie le nombre de valeurs et son erreur. [#54508](https://github.com/ClickHouse/ClickHouse/pull/54508) ([UnamedRus](https://github.com/UnamedRus)).
* Ajout de la fonction `toMillisecond`, qui renvoie la composante milliseconde pour les valeurs de type `DateTime` ou `DateTime64`. [#60281](https://github.com/ClickHouse/ClickHouse/pull/60281) ([Shaun Struwig](https://github.com/Blargian)).
* Possibilité de configurer des handlers de redirection HTTP pour clickhouse-server. Par exemple, vous pouvez faire en sorte que `/` redirige vers l’UI Play. [#60390](https://github.com/ClickHouse/ClickHouse/pull/60390) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Optimisation de la fonction `dotProduct` pour éviter les copies mémoire inutiles et coûteuses. [#60928](https://github.com/ClickHouse/ClickHouse/pull/60928) ([Robert Schulze](https://github.com/rschu1ze)).
* Affichage 30x plus rapide pour les entiers 256 bits. [#61100](https://github.com/ClickHouse/ClickHouse/pull/61100) ([Raúl Marín](https://github.com/Algunenano)).
* Si la clé primaire de la table contient surtout des colonnes inutiles, ne les conservez pas en mémoire. Ce comportement est contrôlé par un nouveau réglage `primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns`, dont la valeur par défaut est `0.9`, ce qui signifie : pour une clé primaire composite, si une colonne change de valeur dans au moins 0,9 de tous les cas, les colonnes suivantes ne seront pas chargées. [#60255](https://github.com/ClickHouse/ClickHouse/pull/60255) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliore les performances des méthodes d’agrégation sérialisées lorsqu’elles impliquent plusieurs colonnes `Nullable`. [#55809](https://github.com/ClickHouse/ClickHouse/pull/55809) ([Amos Bird](https://github.com/amosbird)).
* Construit la sortie JSON de façon lazy afin d’améliorer les performances de ALL JOIN. [#58278](https://github.com/ClickHouse/ClickHouse/pull/58278) ([LiuNeng](https://github.com/liuneng1994)).
* Rend réutilisables, pour tous les cas d’usage, les connexions HTTP/HTTPS vers des services externes comme AWS S3, même lorsque la réponse est 3xx ou 4xx. [#58845](https://github.com/ClickHouse/ClickHouse/pull/58845) ([Sema Checherinda](https://github.com/CheSema)).
* Améliorations des fonctions d’agrégation `argMin` / `argMax` / `any` / `anyLast` / `anyHeavy`, ainsi que des requêtes `ORDER BY {u8/u16/u32/u64/i8/i16/u32/i64) LIMIT 1`. [#58640](https://github.com/ClickHouse/ClickHouse/pull/58640) ([Raúl Marín](https://github.com/Algunenano)).
* Optimisation triviale du filtre de colonne. Le pic de mémoire peut être réduit à 44 % de la valeur d’origine dans certains cas. [#59698](https://github.com/ClickHouse/ClickHouse/pull/59698) ([李扬](https://github.com/taiyang-li)).
* Exécute la fonction `multiIf` de façon columnar lorsque le type sous-jacent du type de résultat est un nombre. [#60384](https://github.com/ClickHouse/ClickHouse/pull/60384) ([李扬](https://github.com/taiyang-li)).
* Mutex presque 2x plus rapides. [#60823](https://github.com/ClickHouse/ClickHouse/pull/60823) ([Azat Khuzhin](https://github.com/azat)).
* Draine plusieurs connexions en parallèle lorsqu’une requête distribuée se termine. [#60845](https://github.com/ClickHouse/ClickHouse/pull/60845) ([lizhuoyu5](https://github.com/lzydmxy)).
* Optimise le déplacement des données entre les colonnes d’un nombre Nullable ou d’une chaîne Nullable, ce qui améliore certains micro-benchmarks. [#60846](https://github.com/ClickHouse/ClickHouse/pull/60846) ([李扬](https://github.com/taiyang-li)).
* Les opérations sur le cache du système de fichiers souffriront moins de la contention sur les verrous. [#61066](https://github.com/ClickHouse/ClickHouse/pull/61066) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimise ARRAY JOIN et les autres JOIN en empêchant une optimisation incorrecte du compilateur. Ferme [#61074](https://github.com/ClickHouse/ClickHouse/issues/61074).  [#61075](https://github.com/ClickHouse/ClickHouse/pull/61075) ([李扬](https://github.com/taiyang-li)).
* Si une requête contenant une erreur de syntaxe utilisait le sélecteur `COLUMNS` avec une expression régulière, celle-ci était compilée à chaque retour en arrière du parseur, au lieu de l’être une seule fois. C’était une erreur fondamentale. L’expression régulière compilée était placée dans l’AST. Or, la lettre A de AST signifie « abstract », ce qui veut dire qu’il ne doit pas contenir d’objets lourds. Des parties de l’AST peuvent être créées puis supprimées pendant l’analyse, notamment lors d’un grand nombre de retours en arrière. Cela ralentit l’analyse et permet donc à un utilisateur readonly de provoquer un DoS. Mais le principal problème est que cela bloque la progression des fuzzers. [#61543](https://github.com/ClickHouse/ClickHouse/pull/61543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d’une nouvelle passe de l’analyseur pour optimiser l’opérateur IN lorsqu’il n’y a qu’une seule valeur. [#61564](https://github.com/ClickHouse/ClickHouse/pull/61564) ([LiuNeng](https://github.com/liuneng1994)).
* DNSResolver mélange l’ensemble des adresses IP résolues, ce qui est nécessaire pour utiliser de manière uniforme plusieurs points de terminaison d’AWS S3. [#60965](https://github.com/ClickHouse/ClickHouse/pull/60965) ([Sema Checherinda](https://github.com/CheSema)).

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

* Prise en charge de la lecture parallèle pour Azure Blob Storage. Cela améliore les performances du stockage d’objets Azure expérimental. [#61503](https://github.com/ClickHouse/ClickHouse/pull/61503) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Ajout d’un WriteBuffer asynchrone pour Azure Blob Storage, similaire à S3. Cela améliore les performances du stockage d’objets Azure expérimental. [#59929](https://github.com/ClickHouse/ClickHouse/pull/59929) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Utilisation d’une identité managée pour les E/S des sauvegardes avec Azure Blob Storage. Ajout d’un paramètre pour empêcher ClickHouse de tenter de créer un conteneur inexistant, ce qui nécessite des autorisations au niveau du compte de stockage. [#61785](https://github.com/ClickHouse/ClickHouse/pull/61785) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Ajout d’un paramètre `parallel_replicas_allow_in_with_subquery = 1` qui permet d’utiliser des sous-requêtes dans les expressions IN avec les répliques parallèles. [#60950](https://github.com/ClickHouse/ClickHouse/pull/60950) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Modification de la réplication « zero-copy » : tous les verrous zero-copy liés à une table doivent être supprimés lorsque la table est supprimée. Le répertoire qui contient ces verrous doit également être supprimé. [#57575](https://github.com/ClickHouse/ClickHouse/pull/57575) ([Sema Checherinda](https://github.com/CheSema)).

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

* Utiliser `MergeTree` comme table engine par défaut. [#60524](https://github.com/ClickHouse/ClickHouse/pull/60524) ([Alexey Milovidov](https://github.com/alexey-milovidov))
* Activer `output_format_pretty_row_numbers` par défaut. C'est plus pratique à l'usage. [#61791](https://github.com/ClickHouse/ClickHouse/pull/61791) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dans la version précédente, certains nombres dans les Pretty formats n'étaient pas affichés de manière assez élégante. [#61794](https://github.com/ClickHouse/ClickHouse/pull/61794) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Une valeur longue dans les Pretty formats ne sera pas tronquée si c'est l'unique valeur du resultset, comme dans le résultat de la query `SHOW CREATE TABLE`. [#61795](https://github.com/ClickHouse/ClickHouse/pull/61795) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* À l'instar de `clickhouse-local`, `clickhouse-client` acceptera l'option `--output-format` comme synonyme de l'option `--format`. Cela clôture [#59848](https://github.com/ClickHouse/ClickHouse/issues/59848). [#61797](https://github.com/ClickHouse/ClickHouse/pull/61797) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Si stdout est un terminal et que l'output format n'est pas spécifié, `clickhouse-client` et les outils similaires utiliseront `PrettyCompact` par défaut, comme en mode interactif. `clickhouse-client` et `clickhouse-local` géreront les arguments de ligne de commande des formats d'entrée et de sortie de manière unifiée. Cela clôture [#61272](https://github.com/ClickHouse/ClickHouse/issues/61272). [#61800](https://github.com/ClickHouse/ClickHouse/pull/61800) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Regrouper les chiffres avec des underscores dans les Pretty formats pour améliorer la lisibilité. Cela est contrôlé par un nouveau paramètre, `output_format_pretty_highlight_digit_groups`. [#61802](https://github.com/ClickHouse/ClickHouse/pull/61802) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajouter la possibilité de redéfinir les paramètres INSERT initiaux via `SYSTEM FLUSH DISTRIBUTED`. [#61832](https://github.com/ClickHouse/ClickHouse/pull/61832) ([Azat Khuzhin](https://github.com/azat)).
* Activer par défaut le profiling des processors (temps passé / octets entrants et sortants pour le tri, l'aggregation, ...). [#61096](https://github.com/ClickHouse/ClickHouse/pull/61096) ([Azat Khuzhin](https://github.com/azat)).
* Prise en charge des fichiers sans extension de format dans la base de données Filesystem. [#60795](https://github.com/ClickHouse/ClickHouse/pull/60795) ([Kruglov Pavel](https://github.com/Avogar)).
* Rendre tous les noms de format insensibles à la casse, comme Tsv, ou TSV, ou tsv, ou même rowbinary. [#60420](https://github.com/ClickHouse/ClickHouse/pull/60420) ([豪肥肥](https://github.com/HowePa)). J'apprécierais que vous continuiez à les écrire correctement, par exemple `JSON` 😇, et non `Json` 🤮, mais cela ne nous dérange pas si vous les écrivez comme vous préférez.
* Ajout du mode `none_only_active` pour le paramètre `distributed_ddl_output_mode`. [#60340](https://github.com/ClickHouse/ClickHouse/pull/60340) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Le tableau de bord Advanced a des couleurs légèrement meilleures pour les graphiques multilignes. [#60391](https://github.com/ClickHouse/ClickHouse/pull/60391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le tableau de bord Advanced dispose désormais de contrôles toujours visibles lors du défilement. Cela vous permet d'ajouter un nouveau graphique sans remonter en haut. [#60692](https://github.com/ClickHouse/ClickHouse/pull/60692) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lors de l’exécution de la requête `MODIFY COLUMN` sur des vues matérialisées, vérifiez la structure de la table interne pour vous assurer que chaque colonne existe. [#47427](https://github.com/ClickHouse/ClickHouse/pull/47427) ([sunny](https://github.com/sunny19930321)).
* Les types String et les Enums peuvent être utilisés dans le même contexte, par exemple dans les tableaux, les requêtes UNION et les expressions conditionnelles. Cela corrige [#60726](https://github.com/ClickHouse/ClickHouse/issues/60726). [#60727](https://github.com/ClickHouse/ClickHouse/pull/60727) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autorise la déclaration d’Enums dans la structure des données externes pour le traitement des requêtes (il s’agit d’une table temporaire immédiate que vous pouvez fournir à votre requête). [#57857](https://github.com/ClickHouse/ClickHouse/pull/57857) ([Duc Canh Le](https://github.com/canhld94)).
* Prend en compte les lignes supprimées par lightweight delete lors de la sélection des parts à fusionner, afin de mieux estimer la taille sur disque de la part résultante. [#58223](https://github.com/ClickHouse/ClickHouse/pull/58223) ([Zhuo Qiu](https://github.com/jewelzqiu)).
* Ajout de commentaires sur les colonnes dans davantage de tables système. Suite de [https://github.com/ClickHouse/ClickHouse/pull/58356](https://github.com/ClickHouse/ClickHouse/pull/58356). [#59016](https://github.com/ClickHouse/ClickHouse/pull/59016) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Il est désormais possible d’utiliser des colonnes virtuelles dans PREWHERE. Cela est utile pour les colonnes virtuelles non constantes comme `_part_offset`. [#59033](https://github.com/ClickHouse/ClickHouse/pull/59033) ([Amos Bird](https://github.com/amosbird)). Amélioration générale de l’utilisation des colonnes virtuelles. Il est désormais autorisé d’utiliser des colonnes virtuelles dans `PREWHERE` (cela est utile pour les colonnes virtuelles non constantes comme `_part_offset`). Une documentation intégrée est désormais disponible pour les colonnes virtuelles sous la forme d’un commentaire de colonne dans la requête `DESCRIBE` lorsque le paramètre `describe_include_virtual_columns` est activé. [#60205](https://github.com/ClickHouse/ClickHouse/pull/60205) ([Anton Popov](https://github.com/CurtizJ)).
* Au lieu d’utiliser une clé constante, le stockage d’objets génère désormais une clé pour déterminer la capacité de suppression d’objets. [#59495](https://github.com/ClickHouse/ClickHouse/pull/59495) ([Sema Checherinda](https://github.com/CheSema)).
* Autorise "local" comme type de stockage d’objets à la place de "local\_blob\_storage". [#60165](https://github.com/ClickHouse/ClickHouse/pull/60165) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Flush parallèle des blocks INSERT en attente du moteur Distributed lors de `DETACH`, de l’arrêt du serveur et de `SYSTEM FLUSH DISTRIBUTED` (le parallélisme ne fonctionnera que si vous avez une policy multi-disques pour une table, comme c’est déjà le cas pour tout dans le moteur Distributed). [#60225](https://github.com/ClickHouse/ClickHouse/pull/60225) ([Azat Khuzhin](https://github.com/azat)).
* Ajout d’un paramètre pour forcer le cache en lecture directe pour les fusions. [#60308](https://github.com/ClickHouse/ClickHouse/pull/60308) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Amélioration du protocole de compatibilité MySQL. Le ticket [#57598](https://github.com/ClickHouse/ClickHouse/issues/57598) mentionne un comportement différent concernant la gestion des transactions. L’envoi d’un COMMIT/ROLLBACK lorsqu’aucune transaction n’est active est signalé comme une erreur, contrairement au comportement de MySQL. [#60338](https://github.com/ClickHouse/ClickHouse/pull/60338) ([PapaToemmsn](https://github.com/PapaToemmsn)).
* La fonction `substring` dispose désormais d’un nouvel alias, `byteSlice`. [#60494](https://github.com/ClickHouse/ClickHouse/pull/60494) ([Robert Schulze](https://github.com/rschu1ze)).
* Le paramètre serveur `dns_cache_max_size` a été renommé en `dns_cache_max_entries` afin de réduire toute ambiguïté. [#60500](https://github.com/ClickHouse/ClickHouse/pull/60500) ([Kirill Nikiforov](https://github.com/allmazz)).
* `SHOW INDEX | INDEXES | INDICES | KEYS` ne trie plus selon les colonnes de clé primaire (ce qui n’était pas intuitif). [#60514](https://github.com/ClickHouse/ClickHouse/pull/60514) ([Robert Schulze](https://github.com/rschu1ze)).
* Amélioration de Keeper : interruption du démarrage si un snapshot invalide est détecté, afin d’éviter toute perte de données. [#60537](https://github.com/ClickHouse/ClickHouse/pull/60537) ([Antonio Andelic](https://github.com/antonio2368)).
* Mise à jour de tzdata vers 2024a. [#60768](https://github.com/ClickHouse/ClickHouse/pull/60768) ([Raúl Marín](https://github.com/Algunenano)).
* Amélioration de Keeper : prise en charge de `leadership_expiry_ms` dans les paramètres de Keeper. [#60806](https://github.com/ClickHouse/ClickHouse/pull/60806) ([Brokenice0415](https://github.com/Brokenice0415)).
* Toujours inférer les nombres en notation exponentielle dans les formats JSON, quel que soit le paramètre `input_format_try_infer_exponent_floats`. Ajout du paramètre `input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects`, qui permet d’utiliser le type String pour les chemins ambigus au lieu de lever une exception lors de l’inférence de tuples nommés à partir d’objets JSON. [#60808](https://github.com/ClickHouse/ClickHouse/pull/60808) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la prise en charge de la syntaxe `START TRANSACTION`, couramment utilisée avec MySQL, ce qui résout [https://github.com/ClickHouse/ClickHouse/discussions/60865](https://github.com/ClickHouse/ClickHouse/discussions/60865). [#60886](https://github.com/ClickHouse/ClickHouse/pull/60886) ([Zach Naimon](https://github.com/ArctypeZach)).
* Ajout d’un indicateur pour l’algorithme de jointure par fusion avec tri complet afin de traiter null comme la plus grande ou la plus petite valeur. Le comportement peut ainsi être rendu compatible avec d’autres systèmes SQL, comme Apache Spark. [#60896](https://github.com/ClickHouse/ClickHouse/pull/60896) ([loudongfeng](https://github.com/loudongfeng)).
* Prise en charge de la détection du format de sortie à partir de l’extension du fichier dans `clickhouse-client` et `clickhouse-local`. [#61036](https://github.com/ClickHouse/ClickHouse/pull/61036) ([豪肥肥](https://github.com/HowePa)).
* Mise à jour de la limite de mémoire à l’exécution lorsque la valeur des cgroups Linux change. [#61049](https://github.com/ClickHouse/ClickHouse/pull/61049) ([Han Fei](https://github.com/hanfei1991)).
* Ajout de la fonction `toUInt128OrZero`, qui avait été omise par erreur (cette erreur est liée à [https://github.com/ClickHouse/ClickHouse/pull/945](https://github.com/ClickHouse/ClickHouse/pull/945)). Les alias de compatibilité `FROM_UNIXTIME` et `DATE_FORMAT` (ils ne sont pas natifs de ClickHouse et n’existent que pour la compatibilité MySQL) sont désormais insensibles à la casse, comme attendu pour des alias de compatibilité SQL. [#61114](https://github.com/ClickHouse/ClickHouse/pull/61114) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Amélioration des vérifications d’accès, permettant de révoquer des droits non détenus lorsque l’utilisateur cible ne possède pas non plus les privilèges de révocation. Exemple : `GRANT SELECT ON *.* TO user1; REVOKE SELECT ON system.* FROM user1;`. [#61115](https://github.com/ClickHouse/ClickHouse/pull/61115) ([pufit](https://github.com/pufit)).
* Correction de la fonction `has()` avec une colonne `Nullable` (corrige [#60214](https://github.com/ClickHouse/ClickHouse/issues/60214)). [#61249](https://github.com/ClickHouse/ClickHouse/pull/61249) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Il est désormais possible de spécifier l’attribut `merge="true"` dans les substitutions de configuration pour les sous-arbres `<include from_zk="/path" merge="true">`. Si cet attribut est spécifié, ClickHouse fusionnera le sous-arbre avec la configuration existante ; sinon, le comportement par défaut consiste à ajouter le nouveau contenu à la configuration. [#61299](https://github.com/ClickHouse/ClickHouse/pull/61299) ([alesapin](https://github.com/alesapin)).
* Ajout de métriques asynchrones pour les mappings mémoire de la mémoire virtuelle : `VMMaxMapCount` & `VMNumMaps`. Clôt [#60662](https://github.com/ClickHouse/ClickHouse/issues/60662). [#61354](https://github.com/ClickHouse/ClickHouse/pull/61354) ([Tuan Pham Anh](https://github.com/tuanpavn)).
* Utilise le paramètre `temporary_files_codec` partout où des données temporaires sont créées, par exemple pour le tri en mémoire externe et le GROUP BY en mémoire externe. Auparavant, cela ne fonctionnait que dans l'algorithme de JOIN `partial_merge`. [#61456](https://github.com/ClickHouse/ClickHouse/pull/61456) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout d'un nouveau paramètre `max_parser_backtracks` permettant de limiter la complexité de l'analyse des query. [#61502](https://github.com/ClickHouse/ClickHouse/pull/61502) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réduction de la contention lors du redimensionnement dynamique du filesystem cache. [#61524](https://github.com/ClickHouse/ClickHouse/pull/61524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactivation du mode segmenté de la queue StorageS3, car il sera réécrit. [#61537](https://github.com/ClickHouse/ClickHouse/pull/61537) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'une faute de frappe : `use_leagcy_max_level` devient `use_legacy_max_level`. [#61545](https://github.com/ClickHouse/ClickHouse/pull/61545) ([William Schoeffel](https://github.com/wiledusc)).
* Suppression de certaines entrées en double dans `system.blob_storage_log`. [#61622](https://github.com/ClickHouse/ClickHouse/pull/61622) ([YenchangChan](https://github.com/YenchangChan)).
* Ajout de la fonction `current_user` comme alias de compatibilité pour MySQL. [#61770](https://github.com/ClickHouse/ClickHouse/pull/61770) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction d'états de fonctions d'agrégation à virgule flottante incohérents dans des clusters mixtes x86-64 / ARM [#60610](https://github.com/ClickHouse/ClickHouse/pull/60610) ([Harry Lee](https://github.com/HarryLeeIBM)).

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

* Le query profiler en temps réel fonctionne désormais sur AArch64. Dans les versions précédentes, il ne fonctionnait que lorsqu'un programme ne passait pas de temps dans un appel système. [#60807](https://github.com/ClickHouse/ClickHouse/pull/60807) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La version de ClickHouse a été ajoutée aux labels Docker. Résout [#54224](https://github.com/ClickHouse/ClickHouse/issues/54224). [#60949](https://github.com/ClickHouse/ClickHouse/pull/60949) ([Nikolay Monkov](https://github.com/nikmonkov)).
* Mise à niveau de `prqlc` vers la version 0.11.3. [#60616](https://github.com/ClickHouse/ClickHouse/pull/60616) ([Maximilian Roos](https://github.com/max-sixty)).
* Ajout d'un fuzzer générique pour le texte des requêtes dans `clickhouse-local`. [#61508](https://github.com/ClickHouse/ClickHouse/pull/61508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Correction de finished\_mutations\_to\_keep=0 pour MergeTree (comme l’indique la documentation, 0 signifie tout conserver) [#60031](https://github.com/ClickHouse/ClickHouse/pull/60031) ([Azat Khuzhin](https://github.com/azat)).
* Un problème affectait l’optimisation FINAL ; voici comment l’auteur le décrit : "PartsSplitter invalid ranges for the same part". [#60041](https://github.com/ClickHouse/ClickHouse/pull/60041) ([Maksim Kita](https://github.com/kitaisreal)).
* Un problème affectait Apache Hive, qui est expérimental et non pris en charge. [#60262](https://github.com/ClickHouse/ClickHouse/pull/60262) ([shanfengp](https://github.com/Aed-p)).
* Une amélioration pour les répliques parallèles expérimentales : forcer une nouvelle analyse si les répliques parallèles ont changé [#60362](https://github.com/ClickHouse/ClickHouse/pull/60362) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de l’utilisation du type de métadonnées simple avec la nouvelle option de configuration `disks` [#60396](https://github.com/ClickHouse/ClickHouse/pull/60396) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Tentative de correction de l’erreur logique 'Cannot capture column because it has incompatible type' dans mapContainsKeyLike [#60451](https://github.com/ClickHouse/ClickHouse/pull/60451) ([Kruglov Pavel](https://github.com/Avogar)).
* Éviter le calcul des sous-requêtes scalaires pour CREATE TABLE. [#60464](https://github.com/ClickHouse/ClickHouse/pull/60464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correction d’un interblocage lors de l’analyse en parallèle quand de nombreuses lignes sont ignorées à cause d’erreurs [#60516](https://github.com/ClickHouse/ClickHouse/pull/60516) ([Kruglov Pavel](https://github.com/Avogar)).
* Un problème affectait la prise en charge expérimentale de KQL (Kusto) : correction de `max_query_size_for_kql_compound_operator` : [#60534](https://github.com/ClickHouse/ClickHouse/pull/60534) ([Yong Wang](https://github.com/kashwy)).
* Correction dans Keeper : ajout de timeouts lors de l’attente des journaux de commit [#60544](https://github.com/ClickHouse/ClickHouse/pull/60544) ([Antonio Andelic](https://github.com/antonio2368)).
* Ne plus afficher d’astuces numériques pour les types Date [#60577](https://github.com/ClickHouse/ClickHouse/pull/60577) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de la lecture depuis MergeTree avec des fonctions non déterministes dans le filtre [#60586](https://github.com/ClickHouse/ClickHouse/pull/60586) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction d’une erreur logique en cas de mauvais type de valeur pour le paramètre de compatibilité [#60596](https://github.com/ClickHouse/ClickHouse/pull/60596) ([Kruglov Pavel](https://github.com/Avogar)).
* fix(prql) : gestion robuste des panic [#60615](https://github.com/ClickHouse/ClickHouse/pull/60615) ([Maximilian Roos](https://github.com/max-sixty)).
* Correction de `intDiv` pour les arguments Decimal et Date [#60672](https://github.com/ClickHouse/ClickHouse/pull/60672) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction : développer la CTE dans la requête alter modify [#60682](https://github.com/ClickHouse/ClickHouse/pull/60682) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction de system.parts pour le database engine non-Atomic/Ordinary (c.-à-d. Memory) [#60689](https://github.com/ClickHouse/ClickHouse/pull/60689) ([Azat Khuzhin](https://github.com/azat)).
* Correction de "Invalid storage definition in metadata file" pour les vues paramétrées [#60708](https://github.com/ClickHouse/ClickHouse/pull/60708) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un dépassement de tampon dans CompressionCodecMultiple [#60731](https://github.com/ClickHouse/ClickHouse/pull/60731) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Supprime des incohérences dans SQL/JSON [#60738](https://github.com/ClickHouse/ClickHouse/pull/60738) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Supprime une assertion incorrecte dans la fonction d'agrégation quantileGK [#60740](https://github.com/ClickHouse/ClickHouse/pull/60740) ([李扬](https://github.com/taiyang-li)).
* Corrige un bug de insert-select + insert\_deduplication\_token en définissant streams à 1 [#60745](https://github.com/ClickHouse/ClickHouse/pull/60745) ([Jordi Villar](https://github.com/jrdi)).
* Empêche la définition d'en-têtes de métadonnées personnalisés sur des opérations de multipart upload non prises en charge [#60748](https://github.com/ClickHouse/ClickHouse/pull/60748) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Corrige toStartOfInterval [#60763](https://github.com/ClickHouse/ClickHouse/pull/60763) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrige un crash dans arrayEnumerateRanked [#60764](https://github.com/ClickHouse/ClickHouse/pull/60764) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un crash lors de l'utilisation de input() dans INSERT SELECT JOIN [#60765](https://github.com/ClickHouse/ClickHouse/pull/60765) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un crash lorsque allow\_experimental\_analyzer a une valeur différente dans les sous-requêtes [#60770](https://github.com/ClickHouse/ClickHouse/pull/60770) ([Dmitry Novik](https://github.com/novikd)).
* Supprime la récursion lors de la lecture depuis S3 [#60849](https://github.com/ClickHouse/ClickHouse/pull/60849) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un blocage possible en cas d'erreur dans HashedDictionaryParallelLoader [#60926](https://github.com/ClickHouse/ClickHouse/pull/60926) ([vdimir](https://github.com/vdimir)).
* Corrige RESTORE asynchrone avec une base de données Replicated (fonctionnalité expérimentale) [#60934](https://github.com/ClickHouse/ClickHouse/pull/60934) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un interblocage dans les inserts asynchrones vers les tables `Log` via le protocole natif [#61055](https://github.com/ClickHouse/ClickHouse/pull/61055) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige l'exécution différée de l'argument par défaut dans dictGetOrDefault pour RangeHashedDictionary [#61196](https://github.com/ClickHouse/ClickHouse/pull/61196) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige plusieurs bugs dans groupArraySorted [#61203](https://github.com/ClickHouse/ClickHouse/pull/61203) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la reconfiguration de Keeper pour le binaire autonome [#61233](https://github.com/ClickHouse/ClickHouse/pull/61233) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l'utilisation de session\_token dans le moteur S3 [#61234](https://github.com/ClickHouse/ClickHouse/pull/61234) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un résultat potentiellement incorrect de la fonction d'agrégation `uniqExact` [#61257](https://github.com/ClickHouse/ClickHouse/pull/61257) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige des bugs dans SHOW DATABASE [#61269](https://github.com/ClickHouse/ClickHouse/pull/61269) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige une erreur logique dans le stockage RabbitMQ avec des colonnes MATERIALIZED [#61320](https://github.com/ClickHouse/ClickHouse/pull/61320) ([vdimir](https://github.com/vdimir)).
* Corrige CREATE OR REPLACE DICTIONARY [#61356](https://github.com/ClickHouse/ClickHouse/pull/61356) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige une requête ATTACH avec ON CLUSTER externe [#61365](https://github.com/ClickHouse/ClickHouse/pull/61365) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige l’optimisation des clés consécutives pour les clés Nullable [#61393](https://github.com/ClickHouse/ClickHouse/pull/61393) ([Anton Popov](https://github.com/CurtizJ)).
* corrige le problème de fractionnement du DAG d’actions [#61458](https://github.com/ClickHouse/ClickHouse/pull/61458) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la finalisation d’un RESTORE en échec [#61466](https://github.com/ClickHouse/ClickHouse/pull/61466) ([Vitaly Baranov](https://github.com/vitlibar)).
* Désactive correctement async\_insert\_use\_adaptive\_busy\_timeout avec les paramètres de compatibilité [#61468](https://github.com/ClickHouse/ClickHouse/pull/61468) ([Raúl Marín](https://github.com/Algunenano)).
* Autorise la mise en file d’attente dans le pool de restauration [#61475](https://github.com/ClickHouse/ClickHouse/pull/61475) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige une incohérence lors de la lecture de system.parts à l’aide d’un UUID. [#61479](https://github.com/ClickHouse/ClickHouse/pull/61479) ([Dan Wu](https://github.com/wudanzy)).
* Corrige ALTER QUERY MODIFY SQL SECURITY [#61480](https://github.com/ClickHouse/ClickHouse/pull/61480) ([pufit](https://github.com/pufit)).
* Corrige un crash dans window view (fonctionnalité expérimentale) [#61526](https://github.com/ClickHouse/ClickHouse/pull/61526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `repeat` avec des entiers non natifs [#61527](https://github.com/ClickHouse/ClickHouse/pull/61527) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l’argument `-s` du client [#61530](https://github.com/ClickHouse/ClickHouse/pull/61530) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrige un crash dans arrayPartialReverseSort [#61539](https://github.com/ClickHouse/ClickHouse/pull/61539) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la recherche de chaînes avec une position constante [#61547](https://github.com/ClickHouse/ClickHouse/pull/61547) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige l’erreur provoquée par addDays lorsqu’il est utilisé avec DateTime64 [#61561](https://github.com/ClickHouse/ClickHouse/pull/61561) ([Shuai li](https://github.com/loneylee)).
* Interdit le type d’entrée LowCardinality pour JSONExtract [#61617](https://github.com/ClickHouse/ClickHouse/pull/61617) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige `system.part_log` pour async insert avec déduplication [#61620](https://github.com/ClickHouse/ClickHouse/pull/61620) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une exception `Non-ready set` pour system.parts. [#61666](https://github.com/ClickHouse/ClickHouse/pull/61666) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige actual\_part\_name pour REPLACE\_RANGE (`Entry actual part isn't empty yet`) [#61675](https://github.com/ClickHouse/ClickHouse/pull/61675) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige un signalement du sanitizer dans `multiSearchAllPositionsCaseInsensitiveUTF8` pour un UTF-8 incorrect [#61749](https://github.com/ClickHouse/ClickHouse/pull/61749) ([pufit](https://github.com/pufit)).
* Corrige le fait que le frame RANGE n’est pas pris en charge pour les colonnes Nullable. [#61766](https://github.com/ClickHouse/ClickHouse/pull/61766) ([YuanLiu](https://github.com/ditgittube)).

### <a id="242" /> Version 24.2 de ClickHouse, 2024-02-29. [Présentation](https://presentations.clickhouse.com/2024-release-24.2/), [Vidéo](https://www.youtube.com/watch?v=iN2y-TK8f3A)

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

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

* Validation des types suspects/expérimentaux dans les types imbriqués. Auparavant, nous ne validions pas ces types (sauf JSON) dans des types imbriqués comme Array/Tuple/Map. [#59385](https://github.com/ClickHouse/ClickHouse/pull/59385) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout d'une vérification de cohérence pour le nombre de threads et la taille des blocs. [#60138](https://github.com/ClickHouse/ClickHouse/pull/60138) ([Raúl Marín](https://github.com/Algunenano)).
* Ne plus inférer les Float en notation exponentielle par défaut. Ajout du paramètre `input_format_try_infer_exponent_floats` pour restaurer le comportement précédent (désactivé par défaut). Clôt [#59476](https://github.com/ClickHouse/ClickHouse/issues/59476). [#59500](https://github.com/ClickHouse/ClickHouse/pull/59500) ([Kruglov Pavel](https://github.com/Avogar)).
* Autorisation des opérations alter entre parenthèses. L'ajout des parenthèses peut être contrôlé via la configuration `format_alter_operations_with_parentheses`. Par défaut, dans les requêtes formatées, les parenthèses sont ajoutées, car nous stockons les opérations alter formatées à certains endroits comme métadonnées (par exemple : mutations). La nouvelle syntaxe clarifie certaines requêtes dans lesquelles les opérations alter se terminent par une liste. Par exemple : `ALTER TABLE x MODIFY TTL date GROUP BY a, b, DROP COLUMN c` ne peut pas être analysée correctement avec l'ancienne syntaxe. Avec la nouvelle syntaxe, la requête `ALTER TABLE x (MODIFY TTL date GROUP BY a, b), (DROP COLUMN c)` est sans ambiguïté. Les anciennes versions ne peuvent pas lire la nouvelle syntaxe ; par conséquent, son utilisation peut poser problème si des versions récentes et anciennes de ClickHouse coexistent dans un même cluster. [#59532](https://github.com/ClickHouse/ClickHouse/pull/59532) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correctif d'un problème de sécurité des vues matérialisées, qui permettait à un utilisateur d'insérer dans une table sans disposer des privilèges requis. Le correctif vérifie que l'utilisateur a les droits nécessaires pour insérer non seulement dans une vue matérialisée, mais aussi dans toutes les tables sous-jacentes. Cela signifie que certaines requêtes, qui fonctionnaient auparavant, peuvent désormais échouer avec `Not enough privileges`. Pour résoudre ce problème, cette release introduit une nouvelle fonctionnalité de SQL security pour les vues [https://clickhouse.com/docs/sql-reference/statements/create/view#sql\&#95;security](https://clickhouse.com/docs/sql-reference/statements/create/view#sql\&#95;security). [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).

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

* Ajout d'une nouvelle syntaxe permettant de spécifier l'utilisateur définisseur dans une vue/vue matérialisée. Cela permet d'exécuter des SELECT/INSERT à partir de vues sans privilèges explicites sur les tables sous-jacentes. Une vue encapsule donc les privilèges. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).
* Détection automatique du format de fichier lors de l'inférence de schéma s'il est inconnu dans les moteurs `file/s3/hdfs/url/azureBlobStorage`. Clôture [#50576](https://github.com/ClickHouse/ClickHouse/issues/50576). [#59092](https://github.com/ClickHouse/ClickHouse/pull/59092) ([Kruglov Pavel](https://github.com/Avogar)).
* Mise en œuvre de l'ajustement automatique des délais d'attente des insertions asynchrones. Les settings suivants sont introduits : async\_insert\_poll\_timeout\_ms, async\_insert\_use\_adaptive\_busy\_timeout, async\_insert\_busy\_timeout\_min\_ms, async\_insert\_busy\_timeout\_max\_ms, async\_insert\_busy\_timeout\_increase\_rate, async\_insert\_busy\_timeout\_decrease\_rate. [#58486](https://github.com/ClickHouse/ClickHouse/pull/58486) ([Julia Kartseva](https://github.com/jkartseva)).
* Possibilité de définir un quota pour le nombre maximal d'échecs de connexion séquentiels. [#54737](https://github.com/ClickHouse/ClickHouse/pull/54737) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Nouvelle fonction d'agrégation `groupArrayIntersect`. Suite de [#49862](https://github.com/ClickHouse/ClickHouse/issues/49862). [#59598](https://github.com/ClickHouse/ClickHouse/pull/59598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Prise en charge de Backup & Restore pour `AzureBlobStorage`. Résout [#50747](https://github.com/ClickHouse/ClickHouse/issues/50747). [#56988](https://github.com/ClickHouse/ClickHouse/pull/56988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* L'utilisateur peut désormais spécifier directement la chaîne Template dans la requête à l'aide de `format_schema_rows_template` comme alternative à `format_template_row`. Clôture [#31363](https://github.com/ClickHouse/ClickHouse/issues/31363). [#59088](https://github.com/ClickHouse/ClickHouse/pull/59088) ([Shaun Struwig](https://github.com/Blargian)).
* Mise en œuvre de la conversion automatique de tables MergeTree de différents types vers le moteur Replicated. Créez un fichier vide `convert_to_replicated` dans le répertoire de données de la table (`/clickhouse/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`) et cette table sera convertie automatiquement au prochain démarrage du serveur. [#57798](https://github.com/ClickHouse/ClickHouse/pull/57798) ([Kirill](https://github.com/kirillgarbar)).
* Ajout de la requête `ALTER TABLE table FORGET PARTITION partition`, qui supprime les nœuds ZooKeeper liés à une partition vide. [#59507](https://github.com/ClickHouse/ClickHouse/pull/59507) ([Sergei Trifonov](https://github.com/serxa)). Il s'agit d'une fonctionnalité destinée aux experts.
* Prise en charge d'un fichier de credentials JWT pour le moteur de table NATS. [#59543](https://github.com/ClickHouse/ClickHouse/pull/59543) ([Nickolaj Jepsen](https://github.com/nickolaj-jepsen)).
* Mise en œuvre de la table `system.dns_cache`, qui peut être utile pour le débogage des problèmes DNS. [#59856](https://github.com/ClickHouse/ClickHouse/pull/59856) ([Kirill Nikiforov](https://github.com/allmazz)).
* Le codec `LZ4HC` acceptera un nouveau niveau 2, plus rapide que l’ancien niveau minimum 3, au prix d’une compression moindre. Dans les versions précédentes, `LZ4HC(2)` et toute valeur inférieure étaient équivalents à `LZ4HC(3)`. Auteur : [Cyan4973](https://github.com/Cyan4973). [#60090](https://github.com/ClickHouse/ClickHouse/pull/60090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la table `system.dns_cache`, qui peut être utile pour le débogage de problèmes DNS. Nouveau paramètre du serveur dns\_cache\_max\_size. [#60257](https://github.com/ClickHouse/ClickHouse/pull/60257) ([Kirill Nikiforov](https://github.com/allmazz)).
* Prise en charge de la version à argument unique pour la fonction de table `merge`, sous la forme `merge(['db_name', ] 'tables_regexp')`. [#60372](https://github.com/ClickHouse/ClickHouse/pull/60372) ([豪肥肥](https://github.com/HowePa)).
* Prise en charge des arguments positionnels négatifs. Clôture de [#57736](https://github.com/ClickHouse/ClickHouse/issues/57736). [#58292](https://github.com/ClickHouse/ClickHouse/pull/58292) ([flynn](https://github.com/ucasfl)).
* Prise en charge de la définition d’un ensemble d’utilisateurs autorisés pour certains paramètres S3 dans la config à l’aide de la clé `user`. [#60144](https://github.com/ClickHouse/ClickHouse/pull/60144) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout de la fonction de table `mergeTreeIndex`. Elle représente le contenu des fichiers d’index et de marks des tables `MergeTree`. Elle peut être utilisée pour l’introspection. Syntaxe : `mergeTreeIndex(database, table, [with_marks = true])`, où `database.table` est une table existante utilisant le moteur `MergeTree`. [#58140](https://github.com/ClickHouse/ClickHouse/pull/58140) ([Anton Popov](https://github.com/CurtizJ)).

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

* Ajout de la fonction `seriesOutliersDetectTukey` pour détecter les valeurs aberrantes dans des données de séries chronologiques à l’aide de l’algorithme des bornes de Tukey. [#58632](https://github.com/ClickHouse/ClickHouse/pull/58632) ([Bhavna Jindal](https://github.com/bhavnajindal)). Gardez à l’esprit que ce comportement sera modifié dans la prochaine version corrective.
* Ajout de la fonction `variantType`, qui renvoie un Enum contenant le nom du type de variante pour chaque ligne. [#59398](https://github.com/ClickHouse/ClickHouse/pull/59398) ([Kruglov Pavel](https://github.com/Avogar)).
* Prise en charge de `LEFT JOIN`, `ALL INNER JOIN` et des sous-requêtes simples pour les répliques parallèles (uniquement avec analyzer). Le nouveau paramètre `parallel_replicas_prefer_local_join` sélectionne l’exécution locale de `JOIN` (par défaut) ou `GLOBAL JOIN`. Toutes les tables doivent exister sur chaque réplique de `cluster_for_parallel_replicas`. Les nouveaux paramètres `min_external_table_block_size_rows` et `min_external_table_block_size_bytes` servent à regrouper les petits blocs envoyés pour les tables temporaires (uniquement avec analyzer). [#58916](https://github.com/ClickHouse/ClickHouse/pull/58916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Autorise la création concurrente de tables dans la base de données `Replicated` lors de l’ajout ou de la restauration d’une nouvelle réplique. [#59277](https://github.com/ClickHouse/ClickHouse/pull/59277) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Implémente l’opérateur de comparaison pour les valeurs `Variant` ainsi que l’insertion correcte de Field dans une colonne `Variant`. N’autorise pas, par défaut, la création du type `Variant` avec des types de variante similaires (autorisé avec le paramètre `allow_suspicious_variant_types`). Résout [#59996](https://github.com/ClickHouse/ClickHouse/issues/59996). Résout [#59850](https://github.com/ClickHouse/ClickHouse/issues/59850). [#60198](https://github.com/ClickHouse/ClickHouse/pull/60198) ([Kruglov Pavel](https://github.com/Avogar)).
* Désactive les `JOIN` de répliques parallèles avec CTE (sans analyzer) [#59239](https://github.com/ClickHouse/ClickHouse/pull/59239) ([Raúl Marín](https://github.com/Algunenano)).

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

* La clé primaire utilisera moins de mémoire. [#60049](https://github.com/ClickHouse/ClickHouse/pull/60049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Réduit l'utilisation de la mémoire pour la clé primaire et certaines autres opérations. [#60050](https://github.com/ClickHouse/ClickHouse/pull/60050) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Les clés primaires des tables seront chargées en mémoire de manière paresseuse, lors du premier accès. Ce comportement est contrôlé par le nouveau paramètre MergeTree `primary_key_lazy_load`, activé par défaut. Cela présente plusieurs avantages : - elles ne seront pas chargées pour les tables qui ne sont pas utilisées ; - s'il n'y a pas assez de mémoire, une exception sera levée lors de la première utilisation plutôt qu'au démarrage du serveur. Cela a aussi plusieurs inconvénients : - la latence de chargement de la clé primaire sera reportée à la première requête, au lieu d'être absorbée avant l'acceptation des connexions ; cela peut théoriquement entraîner un problème d'emballement. Ceci clôt [#11188](https://github.com/ClickHouse/ClickHouse/issues/11188). [#60093](https://github.com/ClickHouse/ClickHouse/pull/60093) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Fonctions de distance vectorisées utilisées pour la recherche vectorielle. [#58866](https://github.com/ClickHouse/ClickHouse/pull/58866) ([Robert Schulze](https://github.com/rschu1ze)).
* Fonction vectorisée `dotProduct`, utile pour la recherche vectorielle. [#60202](https://github.com/ClickHouse/ClickHouse/pull/60202) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajoute l'évaluation en court-circuit pour la fonction `dictGetOrDefault`. Clôt [#52098](https://github.com/ClickHouse/ClickHouse/issues/52098). [#57767](https://github.com/ClickHouse/ClickHouse/pull/57767) ([jsc0218](https://github.com/jsc0218)).
* Amélioration de Keeper : ne met en cache en mémoire qu'une certaine quantité de logs, contrôlée par `latest_logs_cache_size_threshold` et `commit_logs_cache_size_threshold`. [#59460](https://github.com/ClickHouse/ClickHouse/pull/59460) ([Antonio Andelic](https://github.com/antonio2368)).
* Amélioration de Keeper : réduit encore la taille du nœud de données. [#59592](https://github.com/ClickHouse/ClickHouse/pull/59592) ([Antonio Andelic](https://github.com/antonio2368)).
* Poursuit l'optimisation des ratés de prédiction de branchement de la fonction `if` lorsque le type de résultat est `Float*/Decimal*/*Int*`, dans la continuité de [https://github.com/ClickHouse/ClickHouse/pull/57885](https://github.com/ClickHouse/ClickHouse/pull/57885). [#59148](https://github.com/ClickHouse/ClickHouse/pull/59148) ([李扬](https://github.com/taiyang-li)).
* Optimise la fonction `if` lorsque le type d'entrée est `Map`, avec un gain de performance pouvant atteindre \~10x. [#59413](https://github.com/ClickHouse/ClickHouse/pull/59413) ([李扬](https://github.com/taiyang-li)).
* Améliore les performances du type `Int8` en implémentant le strict aliasing (nous l'avons déjà pour `UInt8` et tous les autres types entiers). [#59485](https://github.com/ClickHouse/ClickHouse/pull/59485) ([Raúl Marín](https://github.com/Algunenano)).
* Optimise conditionnellement les performances de sum/avg pour les types bigint et big decimal en réduisant les ratés de prédiction de branchement. [#59504](https://github.com/ClickHouse/ClickHouse/pull/59504) ([李扬](https://github.com/taiyang-li)).
* Améliore les performances des `SELECT` avec des mutations actives. [#59531](https://github.com/ClickHouse/ClickHouse/pull/59531) ([Azat Khuzhin](https://github.com/azat)).
* Fonction `isNotNull` optimisée avec AVX2. [#59621](https://github.com/ClickHouse/ClickHouse/pull/59621) ([李扬](https://github.com/taiyang-li)).
* Améliore les performances de ASOF JOIN pour les données triées ou presque triées. [#59731](https://github.com/ClickHouse/ClickHouse/pull/59731) ([Maksim Kita](https://github.com/kitaisreal)).
* La précédente valeur par défaut de `async_insert_max_data_size`, fixée à 1 MB, s’est avérée trop faible. La nouvelle sera de 10 MiB. [#59536](https://github.com/ClickHouse/ClickHouse/pull/59536) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Utilisation de plusieurs threads lors de la lecture des métadonnées des tables depuis une sauvegarde pendant l’exécution de la commande RESTORE. [#60040](https://github.com/ClickHouse/ClickHouse/pull/60040) ([Vitaly Baranov](https://github.com/vitlibar)).
* Désormais, si `StorageBuffer` possède plus d’un segment (`num_layers` > 1), le flush en arrière-plan s’effectuera simultanément pour tous les segments, sur plusieurs threads. [#60111](https://github.com/ClickHouse/ClickHouse/pull/60111) ([alesapin](https://github.com/alesapin)).

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

* Lorsque le format de sortie est `Pretty` et qu’un bloc contient une seule valeur numérique supérieure à un million, un nombre lisible est affiché à droite du tableau. [#60379](https://github.com/ClickHouse/ClickHouse/pull/60379) ([rogeryk](https://github.com/rogeryk)).
* Ajout des paramètres `split_parts_ranges_into_intersecting_and_non_intersecting_final` et `split_intersecting_parts_ranges_into_layers_final`. Ces paramètres servent à désactiver les optimisations pour les querys avec `FINAL` et sont uniquement destinés au débogage. [#59705](https://github.com/ClickHouse/ClickHouse/pull/59705) ([Maksim Kita](https://github.com/kitaisreal)). En réalité, pas seulement : ils peuvent aussi réduire l’utilisation de la mémoire au détriment des performances.
* Renommage du paramètre `extract_kvp_max_pairs_per_row` en `extract_key_value_pairs_max_pairs_per_row`. Le problème (abréviation inutile dans le nom du paramètre) a été introduit dans [https://github.com/ClickHouse/ClickHouse/pull/43606](https://github.com/ClickHouse/ClickHouse/pull/43606). Correction de la documentation de ce paramètre. [#59683](https://github.com/ClickHouse/ClickHouse/pull/59683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#59960](https://github.com/ClickHouse/ClickHouse/pull/59960) ([jsc0218](https://github.com/jsc0218)).
* L’exécution de `ALTER COLUMN MATERIALIZE` sur une colonne avec une expression `DEFAULT` ou `MATERIALIZED` respecte désormais précisément la sémantique attendue. [#58023](https://github.com/ClickHouse/ClickHouse/pull/58023) ([Duc Canh Le](https://github.com/canhld94)).
* Activation d’une logique de backoff exponentiel pour les erreurs survenant pendant les mutations. Cela réduira l’utilisation du CPU, l’utilisation de la mémoire et la taille des fichiers journaux. [#58036](https://github.com/ClickHouse/ClickHouse/pull/58036) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ajout d’une amélioration pour comptabiliser l’événement de profil `InitialQuery`. [#58195](https://github.com/ClickHouse/ClickHouse/pull/58195) ([Unalian](https://github.com/Unalian)).
* Possibilité de définir `volume_priority` dans `storage_configuration`. [#58533](https://github.com/ClickHouse/ClickHouse/pull/58533) ([Andrey Zvonov](https://github.com/zvonand)).
* Ajout de la prise en charge du type `Date32` dans le codec `T64`. [#58738](https://github.com/ClickHouse/ClickHouse/pull/58738) ([Hongbin Ma](https://github.com/binmahone)).
* Autorisation des virgules finales dans les types comportant plusieurs éléments. [#59119](https://github.com/ClickHouse/ClickHouse/pull/59119) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Les paramètres du Distributed table engine peuvent désormais être spécifiés dans le server configuration file (comme les paramètres de MergeTree), par exemple `<distributed> <flush_on_detach>false</flush_on_detach> </distributed>`. [#59291](https://github.com/ClickHouse/ClickHouse/pull/59291) ([Azat Khuzhin](https://github.com/azat)).
* Nouvelle tentative après déconnexion ou expiration de session lors de la lecture de `system.zookeeper`. Cela est utile lors de la lecture d’un grand nombre de lignes de la table `system.zookeeper`, en particulier en présence de déconnexions injectées pour les tests de panne. [#59388](https://github.com/ClickHouse/ClickHouse/pull/59388) ([Alexander Gololobov](https://github.com/davenger)).
* Ne plus interpréter les nombres avec des zéros initiaux comme des valeurs octales lorsque `input_format_values_interpret_expressions=0`. [#59403](https://github.com/ClickHouse/ClickHouse/pull/59403) ([Joanna Hulboj](https://github.com/jh0x)).
* Au démarrage et à chaque modification des fichiers de configuration, ClickHouse met à jour les limites strictes de mémoire de son memory tracker global. Ces limites sont calculées à partir de divers paramètres serveur et des limites des cgroups (sous Linux). Auparavant, le paramètre `/sys/fs/cgroup/memory.max` (pour cgroups v2) était codé en dur. Par conséquent, les limites de mémoire cgroup v2 configurées pour des groupes imbriqués (hiérarchies), par exemple `/sys/fs/cgroup/my/nested/group/memory.max`, étaient ignorées. Ce problème est désormais corrigé. Le comportement des limites de mémoire v1 reste inchangé. [#59435](https://github.com/ClickHouse/ClickHouse/pull/59435) ([Robert Schulze](https://github.com/rschu1ze)).
* Nouveaux événements de profil ajoutés pour observer le temps passé à calculer les PK/projections/indices secondaires pendant les `INSERT`. [#59436](https://github.com/ClickHouse/ClickHouse/pull/59436) ([Nikita Taranov](https://github.com/nickitat)).
* Permet de définir un point de départ pour S3Queue en mode Ordered lors de la création à l’aide du paramètre `s3queue_last_processed_path`. [#59446](https://github.com/ClickHouse/ClickHouse/pull/59446) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Les commentaires des tables système sont désormais également disponibles dans `system.tables` dans `clickhouse-local`. [#59493](https://github.com/ClickHouse/ClickHouse/pull/59493) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Table `system.zookeeper` : auparavant, l’ensemble du résultat était accumulé en mémoire et renvoyé en un seul gros fragment. Ce changement devrait aider à réduire la consommation de mémoire lors de la lecture d’un grand nombre de lignes depuis `system.zookeeper`, permettre d’afficher une progression intermédiaire (combien de lignes ont été lues jusqu’à présent) et éviter les délais d’expiration de la connexion lorsque l’ensemble de résultats est volumineux. [#59545](https://github.com/ClickHouse/ClickHouse/pull/59545) ([Alexander Gololobov](https://github.com/davenger)).
* Le tableau de bord comprend désormais aussi bien l’état compressé que non compressé du #hash des URL (rétrocompatibilité). Suite de [#59124](https://github.com/ClickHouse/ClickHouse/issues/59124). [#59548](https://github.com/ClickHouse/ClickHouse/pull/59548) ([Amos Bird](https://github.com/amosbird)).
* Mise à niveau d’Intel QPL (utilisé par le codec `DEFLATE_QPL`) de v1.3.1 à v1.4.0. Correction également d’un bug du mécanisme de délai d’expiration du polling : nous avons observé que, dans certains cas, le délai d’expiration ne fonctionnait pas correctement ; lorsqu’il expirait, IAA et le CPU pouvaient traiter le buffer de manière concurrente. Pour l’instant, il vaut mieux s’assurer que le statut du codec IAA n’est pas QPL\_STS\_BEING\_PROCESSED, puis basculer vers le codec logiciel. [#59551](https://github.com/ClickHouse/ClickHouse/pull/59551) ([jasperzhu](https://github.com/jinjunzh)).
* N’affichez pas d’avertissement concernant la version du serveur dans ClickHouse Cloud, car ClickHouse Cloud gère automatiquement et de manière transparente les mises à niveau. [#59657](https://github.com/ClickHouse/ClickHouse/pull/59657) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Après l’auto-extraction, le binaire temporaire est déplacé au lieu d’être copié. [#59661](https://github.com/ClickHouse/ClickHouse/pull/59661) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correction du déroulage de pile sur Apple macOS. Cela résout [#53653](https://github.com/ClickHouse/ClickHouse/issues/53653). [#59690](https://github.com/ClickHouse/ClickHouse/pull/59690) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Vérifie le débordement de pile dans les parseurs même si l’utilisateur a mal configuré le paramètre `max_parser_depth` à une valeur très élevée. Cela résout [#59622](https://github.com/ClickHouse/ClickHouse/issues/59622). [#59697](https://github.com/ClickHouse/ClickHouse/pull/59697) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#60434](https://github.com/ClickHouse/ClickHouse/pull/60434)
* Uniformise le comportement des named collections créées via XML et SQL dans le stockage Kafka. [#59710](https://github.com/ClickHouse/ClickHouse/pull/59710) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Lorsque `merge_max_block_size_bytes` est suffisamment petit et que les tables contiennent des lignes volumineuses (chaînes ou tuples), les fusions en arrière-plan peuvent rester bloquées dans une boucle infinie. Ce comportement est corrigé. Suite de [https://github.com/ClickHouse/ClickHouse/pull/59340](https://github.com/ClickHouse/ClickHouse/pull/59340). [#59812](https://github.com/ClickHouse/ClickHouse/pull/59812) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Autorise uuid dans replica\_path si CREATE TABLE l’indique explicitement. [#59908](https://github.com/ClickHouse/ClickHouse/pull/59908) ([Azat Khuzhin](https://github.com/azat)).
* Ajout de la colonne `metadata_version` pour les tables ReplicatedMergeTree dans la table système `system.tables`. [#59942](https://github.com/ClickHouse/ClickHouse/pull/59942) ([Maksim Kita](https://github.com/kitaisreal)).
* Amélioration de Keeper : n’envoyer à Prometheus que les métriques/événements liés à Keeper. [#59945](https://github.com/ClickHouse/ClickHouse/pull/59945) ([Antonio Andelic](https://github.com/antonio2368)).
* Le tableau de bord affichera les métriques de différentes versions de ClickHouse, même si la structure des tables système a changé après la mise à niveau. [#59967](https://github.com/ClickHouse/ClickHouse/pull/59967) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Autoriser le chargement des informations AZ à partir d’un fichier. [#59976](https://github.com/ClickHouse/ClickHouse/pull/59976) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Amélioration de Keeper : ajout de tentatives en cas d’échec pour les opérations liées aux disques. [#59980](https://github.com/ClickHouse/ClickHouse/pull/59980) ([Antonio Andelic](https://github.com/antonio2368)).
* Ajout du nouveau paramètre de configuration `backups.remove_backup_files_after_failure` : `<clickhouse> <backups> <remove_backup_files_after_failure>true</remove_backup_files_after_failure> </backups> </clickhouse>`. [#60002](https://github.com/ClickHouse/ClickHouse/pull/60002) ([Vitaly Baranov](https://github.com/vitlibar)).
* Pour la copie de fichiers S3, ajout d’un mécanisme de secours GCP vers une copie via tampon lorsque GCP renvoie `Internal Error` avec le code d’erreur HTTP `GATEWAY_TIMEOUT`. [#60164](https://github.com/ClickHouse/ClickHouse/pull/60164) ([Maksim Kita](https://github.com/kitaisreal)).
* Exécution avec court-circuit pour `ULIDStringToDateTime`. [#60211](https://github.com/ClickHouse/ClickHouse/pull/60211) ([Juan Madurga](https://github.com/jlmadurga)).
* Ajout de la colonne `query_id` pour les tables `system.backups` et `system.backup_log`. Ajout de la stacktrace de l’erreur dans la colonne `error`. [#60220](https://github.com/ClickHouse/ClickHouse/pull/60220) ([Maksim Kita](https://github.com/kitaisreal)).
* Les connexions via le port MySQL utilisent désormais automatiquement le paramètre `prefer_column_name_to_alias = 1` afin de prendre en charge QuickSight immédiatement. De plus, les paramètres `mysql_map_string_to_text_in_show_columns` et `mysql_map_fixed_string_to_text_in_show_columns` sont désormais activés par défaut, et n’affectent eux aussi que les connexions MySQL. Cela améliore la compatibilité avec davantage d’outils BI. [#60365](https://github.com/ClickHouse/ClickHouse/pull/60365) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction d’une condition de concurrence dans le code JavaScript entraînant la superposition de graphiques dupliqués. [#60392](https://github.com/ClickHouse/ClickHouse/pull/60392) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Ajout de builds et de tests avec collecte de couverture pour l’introspection. Suite de [#56102](https://github.com/ClickHouse/ClickHouse/issues/56102). [#58792](https://github.com/ClickHouse/ClickHouse/pull/58792) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mise à jour de la toolchain Rust dans `corrosion-cmake` lorsque la variable de toolchain de cross-compilation CMake est définie. [#59309](https://github.com/ClickHouse/ClickHouse/pull/59309) ([Aris Tritas](https://github.com/aris-aiven)).
* Ajout de fuzzing à ASTLiterals. [#59383](https://github.com/ClickHouse/ClickHouse/pull/59383) ([Raúl Marín](https://github.com/Algunenano)).
* Si vous souhaitez exécuter les scripts initdb à chaque démarrage du conteneur ClickHouse, vous devez définir la variable d’environnement CLICKHOUSE\_ALWAYS\_RUN\_INITDB\_SCRIPTS. [#59808](https://github.com/ClickHouse/ClickHouse/pull/59808) ([Alexander Nikolaev](https://github.com/AlexNik)).
* Suppression de la possibilité de désactiver les composants génériques de ClickHouse (comme server/client/...), tout en conservant ceux qui nécessitent des bibliothèques supplémentaires (comme ODBC ou Keeper). [#59857](https://github.com/ClickHouse/ClickHouse/pull/59857) ([Azat Khuzhin](https://github.com/azat)).
* Le fuzzer de requêtes prendra désormais en compte les SETTINGS dans les requêtes. [#60087](https://github.com/ClickHouse/ClickHouse/pull/60087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la prise en charge de la compilation de ClickHouse avec clang-19 (master). [#60448](https://github.com/ClickHouse/ClickHouse/pull/60448) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Corrige une erreur "Non-ready set" dans TTL WHERE. [#57430](https://github.com/ClickHouse/ClickHouse/pull/57430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un bug dans la fonction `quantilesGK` [#58216](https://github.com/ClickHouse/ClickHouse/pull/58216) ([李扬](https://github.com/taiyang-li)).
* Corrige un comportement incorrect de `intDiv` avec des arguments Decimal [#59243](https://github.com/ClickHouse/ClickHouse/pull/59243) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige `translate` avec une entrée FixedString [#59356](https://github.com/ClickHouse/ClickHouse/pull/59356) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige le calcul du digest dans Keeper [#59439](https://github.com/ClickHouse/ClickHouse/pull/59439) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige les stacktraces pour les binaires sans symboles de débogage [#59444](https://github.com/ClickHouse/ClickHouse/pull/59444) ([Azat Khuzhin](https://github.com/azat)).
* Corrige `ASTAlterCommand::formatImpl` dans le cas de paramètres spécifiques à une colonne... [#59445](https://github.com/ClickHouse/ClickHouse/pull/59445) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige `SELECT * FROM [...] ORDER BY ALL` avec Analyzer [#59462](https://github.com/ClickHouse/ClickHouse/pull/59462) ([zhongyuankai](https://github.com/zhongyuankai)).
* Corrige une exception potentiellement non interceptée lors de l’annulation d’une requête distribuée [#59487](https://github.com/ClickHouse/ClickHouse/pull/59487) ([Azat Khuzhin](https://github.com/azat)).
* Fait en sorte que MAX utilise les mêmes règles que permutation pour les types complexes [#59498](https://github.com/ClickHouse/ClickHouse/pull/59498) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un cas limite lors de l’utilisation de `update_insert_deduplication_token_in_dependent_materialized_views` [#59544](https://github.com/ClickHouse/ClickHouse/pull/59544) ([Jordi Villar](https://github.com/jrdi)).
* Corrige le résultat incorrect de arrayElement / map avec une valeur vide [#59594](https://github.com/ClickHouse/ClickHouse/pull/59594) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un crash dans topK lors de la fusion d’états vides [#59603](https://github.com/ClickHouse/ClickHouse/pull/59603) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige une table distribuée avec une clé de sharding constante [#59606](https://github.com/ClickHouse/ClickHouse/pull/59606) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige un problème KQL détecté par WingFuzz [#59626](https://github.com/ClickHouse/ClickHouse/pull/59626) ([Yong Wang](https://github.com/kashwy)).
* Corrige l’erreur "Read beyond last offset" pour AsynchronousBoundedReadBuffer [#59630](https://github.com/ClickHouse/ClickHouse/pull/59630) ([Vitaly Baranov](https://github.com/vitlibar)).
* Préserve l’alias de fonction dans RewriteSumFunctionWithSumAndCountVisitor [#59658](https://github.com/ClickHouse/ClickHouse/pull/59658) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige l’heure de début des requêtes non initiales [#59662](https://github.com/ClickHouse/ClickHouse/pull/59662) ([Raúl Marín](https://github.com/Algunenano)).
* Valide les types d’arguments pour l’index de skipping `minmax` [#59733](https://github.com/ClickHouse/ClickHouse/pull/59733) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige la fonction leftPad / rightPad avec une entrée FixedString [#59739](https://github.com/ClickHouse/ClickHouse/pull/59739) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’un problème de l’AST fuzzer dans la fonction `countMatches` [#59752](https://github.com/ClickHouse/ClickHouse/pull/59752) ([Robert Schulze](https://github.com/rschu1ze)).
* RabbitMQ : correction du cas où les messages n’étaient ni acquittés ni rejetés [#59775](https://github.com/ClickHouse/ClickHouse/pull/59775) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de StorageURL, qui exécutait une partie de la requête sur un seul thread [#59833](https://github.com/ClickHouse/ClickHouse/pull/59833) ([Michael Kolupaev](https://github.com/al13n321)).
* S3Queue : correction d’une valeur non initialisée [#59897](https://github.com/ClickHouse/ClickHouse/pull/59897) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de l’analyse syntaxique des expressions de partition entourées de parenthèses [#59901](https://github.com/ClickHouse/ClickHouse/pull/59901) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correction d’un plantage dans le format JSONColumnsWithMetadata via HTTP [#59925](https://github.com/ClickHouse/ClickHouse/pull/59925) ([Kruglov Pavel](https://github.com/Avogar)).
* Ne pas réécrire sum en count si la valeur de retour diffère dans l’analyseur [#59926](https://github.com/ClickHouse/ClickHouse/pull/59926) ([Azat Khuzhin](https://github.com/azat)).
* Correction d’un plantage à la lecture d’UniqExactSet [#59928](https://github.com/ClickHouse/ClickHouse/pull/59928) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’une valeur metadata\_version invalide dans ReplicatedMergeTree [#59946](https://github.com/ClickHouse/ClickHouse/pull/59946) ([Maksim Kita](https://github.com/kitaisreal)).
* Correction d’une data race dans `StorageDistributed` [#59987](https://github.com/ClickHouse/ClickHouse/pull/59987) ([Nikita Taranov](https://github.com/nickitat)).
* Docker : exécuter les scripts d’initialisation lorsque l’option est activée plutôt que lorsqu’elle est désactivée [#59991](https://github.com/ClickHouse/ClickHouse/pull/59991) ([jktng](https://github.com/jktng)).
* Correction d’INSERT dans `SQLite` avec guillemet simple (en échappant les guillemets simples avec un guillemet au lieu d’un antislash) [#60015](https://github.com/ClickHouse/ClickHouse/pull/60015) ([Azat Khuzhin](https://github.com/azat)).
* Correction de plusieurs erreurs logiques dans `arrayFold` [#60022](https://github.com/ClickHouse/ClickHouse/pull/60022) ([Raúl Marín](https://github.com/Algunenano)).
* Correction de optimize\_uniq\_to\_count, qui supprimait l’alias de colonne [#60026](https://github.com/ClickHouse/ClickHouse/pull/60026) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d’une exception possible de la table S3Queue lors d’un DROP [#60036](https://github.com/ClickHouse/ClickHouse/pull/60036) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction du formatage de NOT avec des littéraux isolés [#60042](https://github.com/ClickHouse/ClickHouse/pull/60042) ([Raúl Marín](https://github.com/Algunenano)).
* Utiliser max\_query\_size du contexte dans DDLLogEntry au lieu de la valeur 4096 codée en dur [#60083](https://github.com/ClickHouse/ClickHouse/pull/60083) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du formatage incohérent des requêtes contenant des tables nommées `table`. Correction du formatage erroné des requêtes avec `UNION ALL`, `INTERSECT` et `EXCEPT` lorsque leur structure n'était pas linéaire. Cela clôt #52349. Correction du formatage erroné des requêtes `SYSTEM`, notamment `SYSTEM ... DROP FILESYSTEM CACHE`, `SYSTEM ... REFRESH/START/STOP/CANCEL/TEST VIEW`, `SYSTEM ENABLE/DISABLE FAILPOINT`. Correction du formatage des requêtes DDL paramétrées. Correction du formatage de la requête `DESCRIBE FILESYSTEM CACHE`. Correction du formatage incorrect de `SET param_...` (une requête qui définit un paramètre). Correction du formatage incorrect des requêtes `CREATE INDEX`. Correction du formatage incohérent de `CREATE USER` et des requêtes similaires. Correction du formatage incohérent de `CREATE SETTINGS PROFILE`. Correction du formatage incorrect de `ALTER ... MODIFY REFRESH`. Correction du formatage incohérent des fonctions de fenêtre si les offsets du frame étaient des expressions. Correction du formatage incohérent de `RESPECT NULLS` et `IGNORE NULLS` lorsqu'ils étaient utilisés après une fonction qui implémente un opérateur (comme `plus`). Correction du formatage absurde de `SYSTEM SYNC REPLICA ... LIGHTWEIGHT FROM ...`. Correction du formatage incohérent des requêtes invalides avec `GROUP BY GROUPING SETS ... WITH ROLLUP/CUBE/TOTALS`. Correction du formatage incohérent de `GRANT CURRENT GRANTS`. Correction du formatage incohérent de `CREATE TABLE (... COLLATE)`. De plus, j'ai corrigé le formatage incorrect de `EXPLAIN` dans les sous-requêtes (#60102). Correction du formatage incorrect des fonctions lambda (#60012). Ajout d'une vérification pour qu'il soit impossible de laisser passer ces aberrations à l'avenir. [#60095](https://github.com/ClickHouse/ClickHouse/pull/60095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction du formatage incohérent de `EXPLAIN` dans les sous-requêtes [#60102](https://github.com/ClickHouse/ClickHouse/pull/60102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correction d'un crash de cosineDistance avec Nullable [#60150](https://github.com/ClickHouse/ClickHouse/pull/60150) ([Raúl Marín](https://github.com/Algunenano)).
* Autorisation du transtypage de booléens représentés sous forme de chaînes en véritables booléens [#60160](https://github.com/ClickHouse/ClickHouse/pull/60160) ([Robert Schulze](https://github.com/rschu1ze)).
* Correction de `system.s3queue_log` [#60166](https://github.com/ClickHouse/ClickHouse/pull/60166) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction de arrayReduce avec un nom de fonction d'agrégation nullable [#60188](https://github.com/ClickHouse/ClickHouse/pull/60188) ([Raúl Marín](https://github.com/Algunenano)).
* Masquage des informations sensibles pour `S3Queue` [#60233](https://github.com/ClickHouse/ClickHouse/pull/60233) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction des codes d'exception HTTP. [#60252](https://github.com/ClickHouse/ClickHouse/pull/60252) ([Austin Kothig](https://github.com/kothiga)).
* S3Queue : correction d'un bug (corrige aussi le test instable test\_storage\_s3\_queue/test.py::test\_shards\_distributed) [#60282](https://github.com/ClickHouse/ClickHouse/pull/60282) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correction d'une utilisation de valeur non initialisée et d'un résultat invalide dans les fonctions de hachage avec IPv6 [#60359](https://github.com/ClickHouse/ClickHouse/pull/60359) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction de OptimizeDateOrDateTimeConverterWithPreimageVisitor avec des arguments NULL [#60453](https://github.com/ClickHouse/ClickHouse/pull/60453) ([Raúl Marín](https://github.com/Algunenano)).
* Correction d'un bug mineur qui empêchait l'exécution sur les répliques des requêtes sur des tables distribuées envoyées par des clients utilisant le dialecte KQL ou PRQL. [#59674](https://github.com/ClickHouse/ClickHouse/issues/59674). [#60470](https://github.com/ClickHouse/ClickHouse/pull/60470) ([Alexey Milovidov](https://github.com/alexey-milovidov)) [#59674](https://github.com/ClickHouse/ClickHouse/pull/59674) ([Austin Kothig](https://github.com/kothiga)).

### <a id="241" /> version de ClickHouse 24.1, 2024-01-30. [Presentation](https://presentations.clickhouse.com/2024-release-24.1/), [Video](https://www.youtube.com/watch?v=pBF9g0wGAGs)

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

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

* Le paramètre `print_pretty_type_names` est activé par défaut. Vous pouvez le désactiver pour conserver l'ancien comportement, ou utiliser `SET compatibility = '23.12'`. [#57726](https://github.com/ClickHouse/ClickHouse/pull/57726) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le paramètre MergeTree `clean_deleted_rows` est déprécié et n'a désormais plus aucun effet. Le mot-clé `CLEANUP` pour `OPTIMIZE` n'est pas autorisé par défaut (sauf si `allow_experimental_replacing_merge_with_cleanup` est activé). [#58316](https://github.com/ClickHouse/ClickHouse/pull/58316) ([Alexander Tokmakov](https://github.com/tavplubix)).
* La fonction `reverseDNSQuery` n'est plus disponible. Cela résout [#58368](https://github.com/ClickHouse/ClickHouse/issues/58368). [#58369](https://github.com/ClickHouse/ClickHouse/pull/58369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Activez diverses modifications pour améliorer le contrôle d'accès dans le fichier de configuration. Ces changements modifient le comportement, et vous devez vérifier `config.xml` dans la section `access_control_improvements`. En cas de doute, conservez dans le fichier de configuration les valeurs de la version précédente. [#58584](https://github.com/ClickHouse/ClickHouse/pull/58584) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliore le fonctionnement de `sumMapFiltered` avec les valeurs NaN. Les valeurs NaN sont désormais placées à la fin (au lieu d'être placées aléatoirement) et considérées comme différentes de toutes les autres valeurs. `-0` est désormais également traité comme égal à `0` ; comme les valeurs 0 sont ignorées, les valeurs `-0` le sont aussi. [#58959](https://github.com/ClickHouse/ClickHouse/pull/58959) ([Raúl Marín](https://github.com/Algunenano)).
* La fonction `visibleWidth` se comportera conformément à la documentation. Dans les versions précédentes, elle comptait simplement les points de code après sérialisation de la chaîne, comme la fonction `lengthUTF8`, mais ne tenait pas compte des caractères de largeur nulle et des caractères combinés, des caractères pleine chasse, des tabulations et des suppressions. Ce comportement a désormais été ajusté en conséquence. Si vous souhaitez conserver l'ancien comportement, définissez `function_visible_width_behavior` sur `0`, ou `compatibility` sur `23.12` ou une version antérieure. [#59022](https://github.com/ClickHouse/ClickHouse/pull/59022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le dialecte `Kusto` est désactivé jusqu'à ce que ces deux bogues soient corrigés : [#59037](https://github.com/ClickHouse/ClickHouse/issues/59037) et [#59036](https://github.com/ClickHouse/ClickHouse/issues/59036). [#59305](https://github.com/ClickHouse/ClickHouse/pull/59305) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Toute tentative d'utiliser `Kusto` se soldera par une exception.
* Une implémentation plus efficace du modificateur `FINAL` ne garantit plus la préservation de l'ordre, même si `max_threads = 1`. Si vous vous appuyiez sur le comportement précédent, définissez `enable_vertical_final` sur 0 ou `compatibility` sur `23.12`.

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

* Implémente le type de données Variant, qui représente une union d’autres types de données. Le type `Variant(T1, T2, ..., TN)` signifie que chaque ligne de ce type contient une valeur de type `T1`, `T2`, ... `TN`, ou aucune d’entre elles (valeur `NULL`). Le type Variant est disponible via le paramètre `allow_experimental_variant_type`. Référence : [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#58047](https://github.com/ClickHouse/ClickHouse/pull/58047) ([Kruglov Pavel](https://github.com/Avogar)).
* Certains paramètres (actuellement `min_compress_block_size` et `max_compress_block_size`) peuvent désormais être spécifiés au niveau des colonnes, auquel cas ils prévalent sur le paramètre correspondant au niveau de la table. Exemple : `CREATE TABLE tab (col String SETTINGS (min_compress_block_size = 81920, max_compress_block_size = 163840)) ENGINE = MergeTree ORDER BY tuple();`. [#55201](https://github.com/ClickHouse/ClickHouse/pull/55201) ([Duc Canh Le](https://github.com/canhld94)).
* Ajoute la fonction d’agrégation `quantileDD`, ainsi que les fonctions correspondantes `quantilesDD` et `medianDD`. Elle est basée sur DDSketch [https://www.vldb.org/pvldb/vol12/p2195-masson.pdf](https://www.vldb.org/pvldb/vol12/p2195-masson.pdf). ### Entrée de documentation pour les changements visibles par les utilisateurs. [#56342](https://github.com/ClickHouse/ClickHouse/pull/56342) ([Srikanth Chekuri](https://github.com/srikanthccv)).
* Permet de configurer n’importe quel type de stockage objet avec n’importe quel type de métadonnées. [#58357](https://github.com/ClickHouse/ClickHouse/pull/58357) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ajout des modes `null_status_on_timeout_only_active` et `throw_only_active` pour `distributed_ddl_output_mode`, afin d’éviter d’attendre les répliques inactives. [#58350](https://github.com/ClickHouse/ClickHouse/pull/58350) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Ajoute la fonction `arrayShingles` pour calculer des sous-tableaux, par exemple `arrayShingles([1, 2, 3, 4, 5], 3)` renvoie `[[1,2,3],[2,3,4],[3,4,5]]`. [#58396](https://github.com/ClickHouse/ClickHouse/pull/58396) ([Zheng Miao](https://github.com/zenmiao7)).
* Ajout des fonctions `punycodeEncode`, `punycodeDecode`, `idnaEncode` et `idnaDecode`, utiles pour convertir les noms de domaine internationaux en représentation ASCII conformément à la norme IDNA. [#58454](https://github.com/ClickHouse/ClickHouse/pull/58454) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajout des fonctions de similarité de chaînes `dramerauLevenshteinDistance`, `jaroSimilarity` et `jaroWinklerSimilarity`. [#58531](https://github.com/ClickHouse/ClickHouse/pull/58531) ([Robert Schulze](https://github.com/rschu1ze)).
* Ajoute deux paramètres : `output_format_compression_level` pour modifier le niveau de compression de sortie, et `output_format_compression_zstd_window_log` pour définir explicitement la taille de fenêtre de compression et activer le mode longue portée pour la compression zstd si la méthode de compression de sortie est `zstd`. S’applique à `INTO OUTFILE` et lors de l’écriture vers les fonctions de table `file`, `url`, `hdfs`, `s3` et `azureBlobStorage`. [#58539](https://github.com/ClickHouse/ClickHouse/pull/58539) ([Duc Canh Le](https://github.com/canhld94)).
* Désactive automatiquement les séquences d’échappement ANSI dans les formats Pretty si la sortie n’est pas un terminal. Ajoute le nouveau mode `auto` au paramètre `output_format_pretty_color`. [#58614](https://github.com/ClickHouse/ClickHouse/pull/58614) ([Shaun Struwig](https://github.com/Blargian)).
* Ajout de la fonction `sqidDecode`, qui décode les [Sqids](https://sqids.org/). [#58544](https://github.com/ClickHouse/ClickHouse/pull/58544) ([Robert Schulze](https://github.com/rschu1ze)).
* Permet la lecture de valeurs Bool comme String dans les formats d’entrée JSON. Cela se fait via le paramètre `input_format_json_read_bools_as_strings`, activé par défaut. [#58561](https://github.com/ClickHouse/ClickHouse/pull/58561) ([Kruglov Pavel](https://github.com/Avogar)).
* Ajout de la fonction `seriesDecomposeSTL`, qui décompose une série temporelle en une composante saisonnière, une tendance et une composante résiduelle. [#57078](https://github.com/ClickHouse/ClickHouse/pull/57078) ([Bhavna Jindal](https://github.com/bhavnajindal)).
* Introduction de MySQL Binlog Client pour MaterializedMySQL : une seule connexion binlog pour de nombreuses bases de données. [#57323](https://github.com/ClickHouse/ClickHouse/pull/57323) ([Val Doroshchuk](https://github.com/valbok)).
* Intel QuickAssist Technology (QAT) fournit une compression et une cryptographie accélérées matériellement. ClickHouse dispose d’un nouveau codec de compression `ZSTD_QAT` qui utilise QAT pour la compression zstd. Le codec s’appuie sur [QATlib d’Intel](https://github.com/intel/qatlib) et le [plugin QAT ZSTD d’Intel](https://github.com/intel/QAT-ZSTD-Plugin). Pour l’instant, seule la compression peut être accélérée matériellement (un mécanisme de repli logiciel prend le relais si QAT ne peut pas être initialisé) ; la décompression s’exécute toujours en logiciel. [#57509](https://github.com/ClickHouse/ClickHouse/pull/57509) ([jasperzhu](https://github.com/jinjunzh)).
* Mise en œuvre d’une nouvelle méthode de génération des clés du stockage objet pour les disques S3. Le format peut désormais être défini selon la syntaxe regex `re2` avec l’option `key_template` dans la description du disque. [#57663](https://github.com/ClickHouse/ClickHouse/pull/57663) ([Sema Checherinda](https://github.com/CheSema)).
* La table system.dropped\_tables\_parts contient les parts des tables de system.dropped\_tables (tables supprimées mais pas encore retirées). [#58038](https://github.com/ClickHouse/ClickHouse/pull/58038) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ajout du paramètre `max_materialized_views_size_for_table` pour limiter le nombre de vues matérialisées rattachées à une table. [#58068](https://github.com/ClickHouse/ClickHouse/pull/58068) ([zhongyuankai](https://github.com/zhongyuankai)).
* Améliorations de `clickhouse-format` : prise en charge des requêtes INSERT avec `VALUES` ; prise en charge des commentaires (utilisez `--comments` pour les afficher) ; prise en charge de l’option `--max_line_length` pour formater uniquement les requêtes longues sur plusieurs lignes. [#58246](https://github.com/ClickHouse/ClickHouse/pull/58246) ([vdimir](https://github.com/vdimir)).
* Attache toutes les tables système dans `clickhouse-local`, y compris `system.parts`. Cela résout [#58312](https://github.com/ClickHouse/ClickHouse/issues/58312). [#58359](https://github.com/ClickHouse/ClickHouse/pull/58359) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge des types de données `Enum` dans la fonction `transform`. Cela résout [#58241](https://github.com/ClickHouse/ClickHouse/issues/58241). [#58360](https://github.com/ClickHouse/ClickHouse/pull/58360) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout de la table `system.database_engines`. [#58390](https://github.com/ClickHouse/ClickHouse/pull/58390) ([Bharat Nallan](https://github.com/bharatnc)). Permet d’enregistrer les moteurs de base de données indépendamment dans le code source. [#58365](https://github.com/ClickHouse/ClickHouse/pull/58365) ([Bharat Nallan](https://github.com/bharatnc)). Permet d’enregistrer les interpréteurs indépendamment. [#58443](https://github.com/ClickHouse/ClickHouse/pull/58443) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajout du modificateur `FROM <Replicas>` pour la requête `SYSTEM SYNC REPLICA LIGHTWEIGHT`. Le modificateur `FROM` garantit que nous attendons les fetches et les drop-ranges uniquement pour les répliques source spécifiées, ainsi que pour toute réplique absente de ZooKeeper ou avec un `source&#95;replica` vide. [#58393](https://github.com/ClickHouse/ClickHouse/pull/58393) ([Jayme Bird](https://github.com/jaymebrd)).
* Ajout du paramètre `update_insert_deduplication_token_in_dependent_materialized_views`. Ce paramètre permet de mettre à jour le jeton de déduplication des insertions avec l'identifiant de la table lors d'un insert dans des vues matérialisées dépendantes. Clôt [#59165](https://github.com/ClickHouse/ClickHouse/issues/59165). [#59238](https://github.com/ClickHouse/ClickHouse/pull/59238) ([Maksim Kita](https://github.com/kitaisreal)).
* Ajout de l'instruction `SYSTEM RELOAD ASYNCHRONOUS METRICS`, qui met à jour les métriques asynchrones. Principalement utile pour les tests et le développement. [#53710](https://github.com/ClickHouse/ClickHouse/pull/53710) ([Robert Schulze](https://github.com/rschu1ze)).

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

* La coordination des répliques parallèles a été réécrite pour améliorer le parallélisme et la localité du cache. Elle a été testée avec une scalabilité linéaire sur des centaines de répliques. La lecture dans l’ordre est désormais également prise en charge. [#57968](https://github.com/ClickHouse/ClickHouse/pull/57968) ([Nikita Taranov](https://github.com/nickitat)).
* Remplace le buffering sortant HTTP par les buffers natifs de ClickHouse. Ajoute des métriques de comptage des octets pour les interfaces. [#56064](https://github.com/ClickHouse/ClickHouse/pull/56064) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Les états d’agrégation volumineux de `uniqExact` seront fusionnés en parallèle dans les requêtes distribuées. [#59009](https://github.com/ClickHouse/ClickHouse/pull/59009) ([Nikita Taranov](https://github.com/nickitat)).
* Réduction de l’utilisation mémoire après lecture depuis des tables `MergeTree`. [#59290](https://github.com/ClickHouse/ClickHouse/pull/59290) ([Anton Popov](https://github.com/CurtizJ)).
* Réduction de l’utilisation mémoire lors des fusions verticales. [#59340](https://github.com/ClickHouse/ClickHouse/pull/59340) ([Anton Popov](https://github.com/CurtizJ)).
* Évite une consommation mémoire excessive au démarrage de Keeper dans davantage de cas. [#58455](https://github.com/ClickHouse/ClickHouse/pull/58455) ([Antonio Andelic](https://github.com/antonio2368)).
* Amélioration de Keeper : réduction de l’utilisation mémoire pour les nœuds stockés. [#59002](https://github.com/ClickHouse/ClickHouse/pull/59002) ([Antonio Andelic](https://github.com/antonio2368)).
* Implémentation de FINAL davantage optimisée pour le cache. Remarque concernant le changement de comportement : auparavant, les requêtes avec le modificateur `FINAL` lues via un flux unique (par exemple `max_threads = 1`) produisaient une sortie triée sans clause `ORDER BY` explicitement fournie. Cela n’est plus garanti lorsque `enable_vertical_final = true` (et c’est la valeur par défaut). [#54366](https://github.com/ClickHouse/ClickHouse/pull/54366) ([Duc Canh Le](https://github.com/canhld94)).
* Évite une copie supplémentaire dans `ReadBufferFromIStream`, utilisé, par exemple, pour la lecture depuis S3. [#56961](https://github.com/ClickHouse/ClickHouse/pull/56961) ([Nikita Taranov](https://github.com/nickitat)).
* Optimise la fonction d’élément de tableau lorsque l’entrée est de type Array(Map)/Array(Array(Num)/Array(Array(String))/Array(BigInt)/Array(Decimal). Les implémentations précédentes effectuaient plus d’allocations que nécessaire. Le gain de performance apporté par cette optimisation peut atteindre \~6x, en particulier lorsque le type d’entrée est Array(Map). [#56403](https://github.com/ClickHouse/ClickHouse/pull/56403) ([李扬](https://github.com/taiyang-li)).
* Lit la colonne une seule fois lors de la lecture de plusieurs sous-colonnes dans des compact parts. [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631) ([Kruglov Pavel](https://github.com/Avogar)).
* Réécrit l’AST de la fonction `sum(column + constant)`. Cette optimisation est disponible comme passe d’optimisation pour l’analyseur [#57853](https://github.com/ClickHouse/ClickHouse/pull/57853) ([Jiebin Sun](https://github.com/jiebinn)).
* L’évaluation de la fonction `match` utilise désormais les skipping indices `ngrambf_v1` et `tokenbf_v1`. [#57882](https://github.com/ClickHouse/ClickHouse/pull/57882) ([凌涛](https://github.com/lingtaolf)).
* L’évaluation de la fonction `match` utilise désormais des indices inversés. [#58284](https://github.com/ClickHouse/ClickHouse/pull/58284) ([凌涛](https://github.com/lingtaolf)).
* MergeTree `FINAL` ne compare pas les lignes d’une même part non-L0. [#58142](https://github.com/ClickHouse/ClickHouse/pull/58142) ([Duc Canh Le](https://github.com/canhld94)).
* Accélère les appels à iota (remplissage d’un tableau avec des nombres consécutifs). [#58271](https://github.com/ClickHouse/ClickHouse/pull/58271) ([Raúl Marín](https://github.com/Algunenano)).
* Accélère MIN/MAX pour les types non numériques. [#58334](https://github.com/ClickHouse/ClickHouse/pull/58334) ([Raúl Marín](https://github.com/Algunenano)).
* Optimiser la combinaison des filtres (comme dans PREWHERE à plusieurs étapes) avec les intrinsèques BMI2/SSE [#58800](https://github.com/ClickHouse/ClickHouse/pull/58800) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Utiliser un thread de moins dans `clickhouse-local`. [#58968](https://github.com/ClickHouse/ClickHouse/pull/58968) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Améliorer les performances de la fonction `multiIf` lorsque le type est Nullable. [#57745](https://github.com/ClickHouse/ClickHouse/pull/57745) ([KevinyhZou](https://github.com/KevinyhZou)).
* Ajouter `SYSTEM JEMALLOC PURGE` pour purger les pages jemalloc inutilisées, `SYSTEM JEMALLOC [ ENABLE | DISABLE | FLUSH ] PROFILE` pour contrôler le profil jemalloc si le profileur est activé. Ajouter la commande 4LW liée à jemalloc dans Keeper : `jmst` pour afficher les statistiques jemalloc, `jmfp`, `jmep`, `jmdp` pour contrôler le profil jemalloc si le profileur est activé. [#58665](https://github.com/ClickHouse/ClickHouse/pull/58665) ([Antonio Andelic](https://github.com/antonio2368)).
* Réduire la consommation de mémoire des sauvegardes vers S3. [#58962](https://github.com/ClickHouse/ClickHouse/pull/58962) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Ajout de commentaires (brèves descriptions) à toutes les colonnes des tables système. Il y a plusieurs raisons à cela : - Nous utilisons beaucoup les tables système, et il peut parfois être très difficile pour un développeur de comprendre le rôle et la signification d'une colonne donnée. - Nous modifions souvent les tables système (en ajoutant de nouvelles colonnes ou en modifiant celles qui existent déjà) et leur documentation est toujours obsolète. Par exemple, jetez un œil à la page de documentation de [`system.parts`](/docs/fr/reference/system-tables/parts). Il y manque beaucoup de colonnes - À terme, nous aimerions générer la documentation directement depuis ClickHouse. [#58356](https://github.com/ClickHouse/ClickHouse/pull/58356) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Autorise les requêtes sans alias pour les sous-requêtes avec `PASTE JOIN`. [#58654](https://github.com/ClickHouse/ClickHouse/pull/58654) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Active l'intégration `MySQL`/`MariaDB` sur macOS. Cela clôt [#21191](https://github.com/ClickHouse/ClickHouse/issues/21191). [#46316](https://github.com/ClickHouse/ClickHouse/pull/46316) ([Alexey Milovidov](https://github.com/alexey-milovidov)) ([Robert Schulze](https://github.com/rschu1ze)).
* Désactive `max_rows_in_set_to_optimize_join` par défaut. [#56396](https://github.com/ClickHouse/ClickHouse/pull/56396) ([vdimir](https://github.com/vdimir)).
* Ajout du paramètre de config `<host_name>`, qui permet d'éviter la résolution des noms d'hôte dans les requêtes DDL ON CLUSTER et les moteurs de base de données Replicated. Cela réduit le risque que la file d'attente se bloque en cas de modification de la définition du cluster. Clôt [#57573](https://github.com/ClickHouse/ClickHouse/issues/57573). [#57603](https://github.com/ClickHouse/ClickHouse/pull/57603) ([Nikolay Degterinsky](https://github.com/evillique)).
* Augmente `load_metadata_threads` à 16 pour le cache du système de fichiers. Cela permettra au serveur de démarrer plus rapidement. [#57732](https://github.com/ClickHouse/ClickHouse/pull/57732) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajoute la possibilité de limiter les merges/mutations (`max_mutations_bandwidth_for_server`/`max_merges_bandwidth_for_server`). [#57877](https://github.com/ClickHouse/ClickHouse/pull/57877) ([Azat Khuzhin](https://github.com/azat)).
* Remplace la colonne non documentée (booléenne) `is_hot_reloadable` dans la table système `system.server_settings` par la colonne (Enum8) `changeable_without_restart`, avec les valeurs possibles `No`, `Yes`, `IncreaseOnly` et `DecreaseOnly`. La colonne a également été documentée. [#58029](https://github.com/ClickHouse/ClickHouse/pull/58029) ([skyoct](https://github.com/skyoct)).
* Cluster discovery prend désormais en charge la définition d'un nom d'utilisateur et d'un mot de passe, clôt [#58063](https://github.com/ClickHouse/ClickHouse/issues/58063). [#58123](https://github.com/ClickHouse/ClickHouse/pull/58123) ([vdimir](https://github.com/vdimir)).
* Prise en charge des paramètres de requête dans `ALTER TABLE ... PART`. [#58297](https://github.com/ClickHouse/ClickHouse/pull/58297) ([Azat Khuzhin](https://github.com/azat)).
* Crée des consumers pour les tables Kafka à la volée (tout en les conservant pendant un certain temps — `kafka_consumers_pool_ttl_ms` depuis leur dernière utilisation). Cela devrait corriger le problème des statistiques pour `system.kafka_consumers` (qui ne consommait rien lorsque personne ne lisait depuis une table Kafka, ce qui entraînait une fuite mémoire active et un détachement lent de la table) et cette PR réactive également par défaut les statistiques pour `system.kafka_consumers`. [#58310](https://github.com/ClickHouse/ClickHouse/pull/58310) ([Azat Khuzhin](https://github.com/azat)).
* `sparkBar` comme alias de `sparkbar`. [#58335](https://github.com/ClickHouse/ClickHouse/pull/58335) ([凌涛](https://github.com/lingtaolf)).
* Évite l'envoi de requêtes `ComposeObject` après le téléversement vers `GCS`. [#58343](https://github.com/ClickHouse/ClickHouse/pull/58343) ([Azat Khuzhin](https://github.com/azat)).
* Gérer correctement les clés dont le nom contient un point dans les fichiers de configuration XML. [#58354](https://github.com/ClickHouse/ClickHouse/pull/58354) ([Azat Khuzhin](https://github.com/azat)).
* Faire en sorte que la fonction `format` renvoie une constante lorsque ses arguments sont constants. Cela résout [#58355](https://github.com/ClickHouse/ClickHouse/issues/58355). [#58358](https://github.com/ClickHouse/ClickHouse/pull/58358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajout d'un paramètre `max_estimated_execution_time` pour dissocier `max_execution_time` et `max_estimated_execution_time`. [#58402](https://github.com/ClickHouse/ClickHouse/pull/58402) ([Zhang Yifan](https://github.com/zhangyifan27)).
* Fournir une indication lorsqu'un nom de moteur de base de données non valide est utilisé. [#58444](https://github.com/ClickHouse/ClickHouse/pull/58444) ([Bharat Nallan](https://github.com/bharatnc)).
* Ajouter des paramètres pour mieux contrôler le type des index dans le dictionnaire Arrow. Utiliser par défaut un type entier signé pour les index, comme le recommande Arrow. Résout [#57401](https://github.com/ClickHouse/ClickHouse/issues/57401). [#58519](https://github.com/ClickHouse/ClickHouse/pull/58519) ([Kruglov Pavel](https://github.com/Avogar)).
* Implémente [#58575](https://github.com/ClickHouse/ClickHouse/issues/58575) : prise en charge de la variable d'environnement `CLICKHOUSE_PASSWORD_FILE ` lors de l'exécution de l'image Docker. [#58583](https://github.com/ClickHouse/ClickHouse/pull/58583) ([Eyal Halpern Shalev](https://github.com/Eyal-Shalev)).
* Lors de l'exécution de certaines requêtes nécessitant de nombreux flux pour lire les données, l'erreur `"Paste JOIN requires sorted tables only"` était auparavant levée. Désormais, le nombre de flux est ramené à 1 dans ce cas. [#58608](https://github.com/ClickHouse/ClickHouse/pull/58608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Message amélioré pour l'erreur INVALID\_IDENTIFIER. [#58703](https://github.com/ClickHouse/ClickHouse/pull/58703) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Amélioration de la gestion des littéraux numériques signés dans normalizeQuery. [#58710](https://github.com/ClickHouse/ClickHouse/pull/58710) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Prise en charge du type de données Point pour MySQL. [#58721](https://github.com/ClickHouse/ClickHouse/pull/58721) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Lors de la comparaison d'une colonne Float32 avec une chaîne constante, lire la chaîne comme un Float32 (au lieu d'un Float64). [#58724](https://github.com/ClickHouse/ClickHouse/pull/58724) ([Raúl Marín](https://github.com/Algunenano)).
* Améliorer la compatibilité avec S3 et ajouter la prise en charge du stockage EOS d'ECloud. [#58786](https://github.com/ClickHouse/ClickHouse/pull/58786) ([xleoken](https://github.com/xleoken)).
* Autoriser `KILL QUERY` à annuler les sauvegardes / restaurations. Cette PR rend également visibles les sauvegardes et restaurations en cours dans `system.processes`. De plus, un nouveau paramètre est désormais disponible dans la configuration du serveur : `shutdown_wait_backups_and_restores` (default=true), qui permet au serveur soit d'attendre, lors de l'arrêt, la fin de toutes les sauvegardes et restaurations en cours, soit de simplement les annuler. [#58804](https://github.com/ClickHouse/ClickHouse/pull/58804) ([Vitaly Baranov](https://github.com/vitlibar)).
* Le format Avro prend désormais en charge le codec ZSTD. Résout [#58735](https://github.com/ClickHouse/ClickHouse/issues/58735). [#58805](https://github.com/ClickHouse/ClickHouse/pull/58805) ([flynn](https://github.com/ucasfl)).
* L'interface MySQL prend désormais en charge les paramètres `net_write_timeout` et `net_read_timeout`. `net_write_timeout` est converti en paramètre natif ClickHouse `send_timeout` et, de même, `net_read_timeout` en `receive_timeout`. Correction d'un problème qui empêchait de définir le paramètre MySQL `sql_select_limit` sauf si l'instruction entière était en majuscules. [#58835](https://github.com/ClickHouse/ClickHouse/pull/58835) ([Serge Klochkov](https://github.com/slvrtrn)).
* Meilleur message d'exception en cas de conflit lors de la création d'un dictionnaire et d'une table portant le même nom. [#58841](https://github.com/ClickHouse/ClickHouse/pull/58841) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Vérification que, pour les disques personnalisés (créés depuis SQL), `filesystem_caches_path` (préfixe de répertoire commun à tous les caches du système de fichiers) ou `custom_cached_disks_base_directory` (préfixe de répertoire commun uniquement aux caches du système de fichiers créés à partir de disques personnalisés) est spécifié dans la config du serveur. `custom_cached_disks_base_directory` est prioritaire sur `filesystem_caches_path` pour les disques personnalisés, ce dernier n'étant utilisé que si le premier est absent. Le paramètre `path` du cache du système de fichiers doit se trouver dans ce répertoire, sinon une exception sera levée et empêchera la création du disque. Cela n'affecte pas les disques créés avec une ancienne version avant mise à niveau du serveur : dans ce cas, l'exception ne sera pas levée afin de permettre au serveur de démarrer correctement. `custom_cached_disks_base_directory` est ajouté à la config serveur par défaut avec la valeur `/var/lib/clickhouse/caches/`. Ferme [#57825](https://github.com/ClickHouse/ClickHouse/issues/57825). [#58869](https://github.com/ClickHouse/ClickHouse/pull/58869) ([Kseniia Sumarokova](https://github.com/kssenii)).
* L'interface MySQL est désormais compatible avec les requêtes `SHOW WARNINGS`/`SHOW COUNT(*) WARNINGS`, bien que le résultat renvoyé soit toujours un ensemble vide. [#58929](https://github.com/ClickHouse/ClickHouse/pull/58929) ([Serge Klochkov](https://github.com/slvrtrn)).
* Ignorer les répliques indisponibles lors de l'exécution d'un `INSERT SELECT` distribué en parallèle. [#58931](https://github.com/ClickHouse/ClickHouse/pull/58931) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Afficher le niveau de log en toutes lettres lors de l'activation du formatage structuré des logs en JSON. [#58936](https://github.com/ClickHouse/ClickHouse/pull/58936) ([Tim Liou](https://github.com/wheatdog)).
* L'interface MySQL prend désormais en charge les instructions `CAST(x AS SIGNED)` et `CAST(x AS UNSIGNED)` via des alias de type de données : `SIGNED` pour Int64 et `UNSIGNED` pour UInt64. Cela améliore la compatibilité avec des outils de BI comme Looker Studio. [#58954](https://github.com/ClickHouse/ClickHouse/pull/58954) ([Serge Klochkov](https://github.com/slvrtrn)).
* Changer le répertoire de travail pour le data path dans le conteneur Docker. [#58975](https://github.com/ClickHouse/ClickHouse/pull/58975) ([cangyin](https://github.com/cangyin)).
* Ajout du paramètre `azure_max_unexpected_write_error_retries` pour Azure Blob Storage ; il peut également être défini dans la config, sous la section azure. [#59001](https://github.com/ClickHouse/ClickHouse/pull/59001) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Permettre au serveur de démarrer avec une table de data lake défectueuse. Ferme [#58625](https://github.com/ClickHouse/ClickHouse/issues/58625). [#59080](https://github.com/ClickHouse/ClickHouse/pull/59080) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permettre d'ignorer l'évolution du schéma dans le moteur de table `Iceberg` et de lire toutes les données en utilisant soit le schéma spécifié par l'utilisateur lors de la création de la table, soit le dernier schéma analysé à partir des métadonnées au moment de la création de la table. Cela se fait via le paramètre `iceberg_engine_ignore_schema_evolution`, désactivé par défaut. Notez que l'activation de ce paramètre peut produire des résultats incorrects car, en cas d'évolution du schéma, tous les data files seront lus à l'aide du même schéma. [#59133](https://github.com/ClickHouse/ClickHouse/pull/59133) ([Kruglov Pavel](https://github.com/Avogar)).
* Interdire les opérations de modification (`INSERT`/`ALTER`/`OPTIMIZE`/...) sur les stockages en lecture seule/à écriture unique avec une erreur `TABLE_IS_READ_ONLY` appropriée (pour éviter les résidus). Éviter de laisser des résidus sur les disques à écriture unique (`format_version.txt`) lors de `CREATE`/`ATTACH`. Ignorer `DROP` pour `ReplicatedMergeTree` (comme pour `MergeTree`). Corriger l'itération sur `s3_plain` (`MetadataStorageFromPlainObjectStorage::iterateDirectory`). À noter que le stockage en lecture seule est le disque `web`, et que le stockage à écriture unique est `s3_plain`. [#59170](https://github.com/ClickHouse/ClickHouse/pull/59170) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un bug dans la colonne expérimentale `_block_number` qui pouvait entraîner une logical error lors d'une combinaison complexe de `ALTER` et de `merge`. Corrige [#56202](https://github.com/ClickHouse/ClickHouse/issues/56202). Remplace [#58601](https://github.com/ClickHouse/ClickHouse/issues/58601). [#59295](https://github.com/ClickHouse/ClickHouse/pull/59295) ([alesapin](https://github.com/alesapin)).
* L'UI Play comprend désormais lorsqu'une exception est renvoyée dans du JSON. Ajustement pour [#52853](https://github.com/ClickHouse/ClickHouse/issues/52853). [#59303](https://github.com/ClickHouse/ClickHouse/pull/59303) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Le handler HTTP `/binary` permet de spécifier l'utilisateur, l'hôte et, éventuellement, le mot de passe dans la query string. [#59311](https://github.com/ClickHouse/ClickHouse/pull/59311) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge des backups pour les tables compressées en mémoire. Cela clôt [#57893](https://github.com/ClickHouse/ClickHouse/issues/57893). [#59315](https://github.com/ClickHouse/ClickHouse/pull/59315) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Prise en charge de la clause `FORMAT` dans les query `BACKUP` et `RESTORE`. [#59338](https://github.com/ClickHouse/ClickHouse/pull/59338) ([Vitaly Baranov](https://github.com/vitlibar)).
* La fonction `concatWithSeparator` prend désormais en charge des types d'arguments arbitraires (au lieu des seuls arguments `String` et `FixedString`). Par exemple, `SELECT concatWithSeparator('.', 'number', 1)` renvoie désormais `number.1`. [#59341](https://github.com/ClickHouse/ClickHouse/pull/59341) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Améliore les alias du binaire ClickHouse (`ch`/`clickhouse` correspond désormais à `clickhouse-local` ou `clickhouse`, selon les arguments) et ajoute l’autocomplétion bash pour les nouveaux alias. [#58344](https://github.com/ClickHouse/ClickHouse/pull/58344) ([Azat Khuzhin](https://github.com/azat)).
* Ajoute à la CI une vérification des modifications de paramètres afin de s’assurer que toutes les modifications de paramètres sont bien reflétées dans leur historique. [#58555](https://github.com/ClickHouse/ClickHouse/pull/58555) ([Kruglov Pavel](https://github.com/Avogar)).
* Utilise des tables attachées directement depuis S3 dans les tests avec état. [#58791](https://github.com/ClickHouse/ClickHouse/pull/58791) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Enregistre l’intégralité de `fuzzer.log` sous forme d’archive au lieu des 100k dernières lignes. `tail -n 100000` supprime souvent des lignes contenant des définitions de table. Exemple : [#58821](https://github.com/ClickHouse/ClickHouse/pull/58821) ([Dmitry Novik](https://github.com/novikd)).
* Active Rust sur MacOS avec Aarch64 (cela ajoutera la recherche floue dans le client avec skim et le langage PRQL, même si je ne pense pas qu’il y ait beaucoup de gens qui hébergent ClickHouse sur Darwin, donc c’est surtout pour la recherche floue dans le client, dirais-je). [#59272](https://github.com/ClickHouse/ClickHouse/pull/59272) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un problème d’agrégation dans des clusters mixtes x86\_64 et ARM [#59132](https://github.com/ClickHouse/ClickHouse/pull/59132) ([Harry Lee](https://github.com/HarryLeeIBM)).

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

* Ajouter la conversion des clés de jointure pour les LowCardinality imbriqués [#51550](https://github.com/ClickHouse/ClickHouse/pull/51550) ([vdimir](https://github.com/vdimir)).
* Aplatir uniquement le véritable type Nested si flatten\_nested=1, et non tous les Array(Tuple) [#56132](https://github.com/ClickHouse/ClickHouse/pull/56132) ([Kruglov Pavel](https://github.com/Avogar)).
* Corriger un bogue avec les projections et le paramètre `aggregate_functions_null_for_empty` lors de l’insertion. [#56944](https://github.com/ClickHouse/ClickHouse/pull/56944) ([Amos Bird](https://github.com/amosbird)).
* Corriger une exception potentielle due à un UUID de profil obsolète [#57263](https://github.com/ClickHouse/ClickHouse/pull/57263) ([Vasily Nemkov](https://github.com/Enmk)).
* Corriger la gestion des tampons de lecture dans StreamingFormatExecutor [#57438](https://github.com/ClickHouse/ClickHouse/pull/57438) ([Kruglov Pavel](https://github.com/Avogar)).
* Ignorer les MV dont la table cible a été supprimée lors de la propagation vers les vues [#57520](https://github.com/ClickHouse/ClickHouse/pull/57520) ([Kruglov Pavel](https://github.com/Avogar)).
* Éliminer une possible condition de concurrence entre ALTER\_METADATA et MERGE\_PARTS [#57755](https://github.com/ClickHouse/ClickHouse/pull/57755) ([Azat Khuzhin](https://github.com/azat)).
* Corriger un bogue dans l’ordre des expressions de GROUP BY avec rollup [#57786](https://github.com/ClickHouse/ClickHouse/pull/57786) ([Chen768959](https://github.com/Chen768959)).
* Correctif pour la fonctionnalité obsolète de réplication "zero-copy" : corriger la perte de blobs après la suppression d’une réplique avec des parties détachées corrompues [#58333](https://github.com/ClickHouse/ClickHouse/pull/58333) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Permettre aux utilisateurs de travailler avec des liens symboliques dans user\_files\_path [#58447](https://github.com/ClickHouse/ClickHouse/pull/58447) ([Duc Canh Le](https://github.com/canhld94)).
* Corriger un plantage lorsque la table Graphite n’a pas de fonction d’agrégation [#58453](https://github.com/ClickHouse/ClickHouse/pull/58453) ([Duc Canh Le](https://github.com/canhld94)).
* Retarder la lecture depuis StorageKafka afin d’autoriser plusieurs lectures dans les vues matérialisées [#58477](https://github.com/ClickHouse/ClickHouse/pull/58477) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corriger un cas absurde de parties qui se chevauchent [#58482](https://github.com/ClickHouse/ClickHouse/pull/58482) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Désactiver MergeTreePrefetchedReadPool pour les requêtes avec uniquement LIMIT [#58505](https://github.com/ClickHouse/ClickHouse/pull/58505) ([Maksim Kita](https://github.com/kitaisreal)).
* Activer les bases de données ordinaires pendant la restauration [#58520](https://github.com/ClickHouse/ClickHouse/pull/58520) ([Jihyuk Bok](https://github.com/tomahawk28)).
* Corriger la lecture via le pool de threads Apache Hive pour ORC/Parquet/... [#58537](https://github.com/ClickHouse/ClickHouse/pull/58537) ([sunny](https://github.com/sunny19930321)).
* Masquer les informations d’authentification dans la colonne `base_backup_name` de `system.backup_log` [#58550](https://github.com/ClickHouse/ClickHouse/pull/58550) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* `toStartOfInterval` pour l’arrondi des valeurs en millisecondes et microsecondes [#58557](https://github.com/ClickHouse/ClickHouse/pull/58557) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Désactiver `max_joined_block_rows` dans ConcurrentHashJoin [#58595](https://github.com/ClickHouse/ClickHouse/pull/58595) ([vdimir](https://github.com/vdimir)).
* Corriger les jointures utilisant Nullable dans l’ancien analyzer [#58596](https://github.com/ClickHouse/ClickHouse/pull/58596) ([vdimir](https://github.com/vdimir)).
* `makeDateTime64` : autorise un argument de fraction non constant [#58597](https://github.com/ClickHouse/ClickHouse/pull/58597) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige une possible déréférence de NULL lors de la symbolisation de frames inline [#58607](https://github.com/ClickHouse/ClickHouse/pull/58607) ([Azat Khuzhin](https://github.com/azat)).
* Améliore l’isolation des entrées du cache de requêtes pour les utilisateurs recréés ou lors des changements de rôle [#58611](https://github.com/ClickHouse/ClickHouse/pull/58611) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige une analyse défaillante de la clé de partitionnement lors de l’optimisation des projections [#58638](https://github.com/ClickHouse/ClickHouse/pull/58638) ([Amos Bird](https://github.com/amosbird)).
* Cache de requêtes : corrige le quota par utilisateur [#58731](https://github.com/ClickHouse/ClickHouse/pull/58731) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige le partitionnement des flux dans les fonctions de fenêtre exécutées en parallèle [#58739](https://github.com/ClickHouse/ClickHouse/pull/58739) ([Dmitry Novik](https://github.com/novikd)).
* Corrige un double appel au destructeur lors de la levée d’une exception dans addBatchLookupTable8 [#58745](https://github.com/ClickHouse/ClickHouse/pull/58745) ([Raúl Marín](https://github.com/Algunenano)).
* Ne traite pas les requêtes dans Keeper pendant l’arrêt [#58765](https://github.com/ClickHouse/ClickHouse/pull/58765) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige une déréférence de pointeur nul dans `SlabsPolygonIndex::find` [#58771](https://github.com/ClickHouse/ClickHouse/pull/58771) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige la fonction JSONExtract pour les colonnes LowCardinality(Nullable) [#58808](https://github.com/ClickHouse/ClickHouse/pull/58808) ([vdimir](https://github.com/vdimir)).
* Corrige une accumulation inattendue de l’utilisation mémoire lors de la création d’un très grand nombre de tables avec CREATE et DROP. [#58831](https://github.com/ClickHouse/ClickHouse/pull/58831) ([Maksim Kita](https://github.com/kitaisreal)).
* Lecture multiple du stockage file log dans mv [#58877](https://github.com/ClickHouse/ClickHouse/pull/58877) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Restriction de l’identifiant de clé d’accès pour S3. [#58900](https://github.com/ClickHouse/ClickHouse/pull/58900) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige un possible crash dans clickhouse-local lors du chargement des suggestions [#58907](https://github.com/ClickHouse/ClickHouse/pull/58907) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un crash lorsque `indexHint` est utilisé [#58911](https://github.com/ClickHouse/ClickHouse/pull/58911) ([Dmitry Novik](https://github.com/novikd)).
* Corrige l’oubli des headers par StorageURL au redémarrage du serveur [#58933](https://github.com/ClickHouse/ClickHouse/pull/58933) ([Michael Kolupaev](https://github.com/al13n321)).
* Analyseur : corrige le remplacement du stockage avec le bloc d’insertion [#58958](https://github.com/ClickHouse/ClickHouse/pull/58958) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige le seek dans ReadBufferFromZipArchive [#58966](https://github.com/ClickHouse/ClickHouse/pull/58966) ([Michael Kolupaev](https://github.com/al13n321)).
* Correctif pour les index inversés expérimentaux (ne pas utiliser en production) : `DROP INDEX` d’un index inversé supprime désormais tous les fichiers pertinents du stockage persistant [#59040](https://github.com/ClickHouse/ClickHouse/pull/59040) ([mochi](https://github.com/MochiXu)).
* Corrige une situation de concurrence sur query\_factories\_info [#59049](https://github.com/ClickHouse/ClickHouse/pull/59049) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Désactivation des nouvelles tentatives en cas d'erreur "Too many redirects" [#59099](https://github.com/ClickHouse/ClickHouse/pull/59099) ([skyoct](https://github.com/skyoct)).
* Correction d'un interblocage lors de l'arrêt d'une base de données non démarrée [#59137](https://github.com/ClickHouse/ClickHouse/pull/59137) ([Sergei Trifonov](https://github.com/serxa)).
* Correction : LIMIT BY et LIMIT dans une requête distribuée [#59153](https://github.com/ClickHouse/ClickHouse/pull/59153) ([Igor Nikonov](https://github.com/devcrafter)).
* Correction d'un crash avec un fuseau horaire Nullable pour `toString` [#59190](https://github.com/ClickHouse/ClickHouse/pull/59190) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correction d'un arrêt brutal dans les métadonnées Iceberg en cas de chemins de fichier invalides [#59275](https://github.com/ClickHouse/ClickHouse/pull/59275) ([Kruglov Pavel](https://github.com/Avogar)).
* Correction du nom d'architecture dans la sélection de la cible Rust [#59307](https://github.com/ClickHouse/ClickHouse/pull/59307) ([p1rattttt](https://github.com/p1rattttt)).
* Correction d'une erreur logique liée à "not-ready set" lors de l'interrogation de `system.tables` avec une sous-requête dans la clause IN. [#59351](https://github.com/ClickHouse/ClickHouse/pull/59351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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