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

# Autres paramètres de session

> Paramètres de session ClickHouse du groupe généré « Autres ».

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Par défaut</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modifiable sans redémarrage
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const CloudOnlyBadge = () => {
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Uniquement sur ClickHouse Cloud'}
        </div>;
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Fonctionnalité en bêta. 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        En savoir plus.
                    </a>
                </u>
            </span>
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Fonctionnalité expérimentale. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">En savoir plus.</a></u>
        </div>;
};

Ces paramètres sont disponibles dans [system.settings](/docs/fr/reference/system-tables/settings) et sont générés automatiquement à partir du [code source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="add_http_cors_header">
  ## add\_http\_cors\_header
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Écrit un en-tête CORS HTTP supplémentaire.

<div id="analyze_index_with_space_filling_curves">
  ## analyze\_index\_with\_space\_filling\_curves
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Si une table possède une courbe de remplissage de l’espace dans son index, par exemple `ORDER BY mortonEncode(x, y)` ou `ORDER BY hilbertEncode(x, y)`, et que la requête comporte des conditions sur ses arguments, par exemple `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, utilisez la courbe de remplissage de l’espace pour l’analyse de l’index.

<div id="analyzer_inline_views">
  ## analyzer\_inline\_views
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nouveau paramètre"}]}]} />

Lorsqu’il est activé, l’analyseur remplace les vues ordinaires (non matérialisées et non paramétrées) par les sous-requêtes qui les définissent, ce qui permet des optimisations transversales telles que le pushdown des prédicats et l’élagage des colonnes.

<div id="any_join_distinct_right_table_keys">
  ## any\_join\_distinct\_right\_table\_keys
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.14"},{"label": "0"},{"label": "Désactive par défaut les JOIN ANY RIGHT et ANY FULL afin d’éviter les incohérences"}]}]} />

Active le comportement legacy du serveur ClickHouse pour les opérations `ANY INNER|LEFT JOIN`.

<Note>
  Utilisez ce paramètre uniquement pour assurer la rétrocompatibilité si vos cas d’usage dépendent du comportement legacy de `JOIN`.
</Note>

Lorsque le comportement legacy est activé :

* Les résultats des opérations `t1 ANY LEFT JOIN t2` et `t2 ANY RIGHT JOIN t1` ne sont pas identiques, car ClickHouse utilise une logique de correspondance des clés entre les tables, de gauche à droite, de plusieurs à un.
* Les résultats des opérations `ANY INNER JOIN` contiennent toutes les lignes de la table de gauche, comme c’est le cas pour les opérations `SEMI LEFT JOIN`.

Lorsque le comportement legacy est désactivé :

* Les résultats des opérations `t1 ANY LEFT JOIN t2` et `t2 ANY RIGHT JOIN t1` sont identiques, car ClickHouse utilise une logique qui permet une correspondance des clés de un à plusieurs dans les opérations `ANY RIGHT JOIN`.
* Les résultats des opérations `ANY INNER JOIN` contiennent une ligne par clé provenant des tables de gauche et de droite.

Valeurs possibles :

* 0 — Le comportement legacy est désactivé.
* 1 — Le comportement legacy est activé.

Voir aussi :

* [strictness des JOIN](/docs/fr/reference/statements/select/join#settings)

<div id="archive_adaptive_buffer_max_size_bytes">
  ## archive\_adaptive\_buffer\_max\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="8388608" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "8388608"},{"label": "Nouveau paramètre"}]}]} />

Limite la taille maximale du tampon adaptatif utilisé pour l’écriture dans des fichiers d’archive (par exemple, des archives tar

<div id="arrow_flight_request_descriptor_type">
  ## arrow\_flight\_request\_descriptor\_type
</div>

<SettingsInfoBlock type="ArrowFlightDescriptorType" default_value="path" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "path"},{"label": "Nouveau paramètre. Type de descripteur à utiliser pour les requêtes Arrow Flight : 'path' ou 'command'. Dremio nécessite 'command'."}]}]} />

Type de descripteur à utiliser pour les requêtes Arrow Flight. 'path' envoie le nom du jeu de données sous forme de descripteur de chemin. 'command' envoie une requête SQL sous forme de descripteur de commande (requis pour Dremio).

Valeurs possibles :

* 'path' — Utilise FlightDescriptor::Path (par défaut, fonctionne avec la plupart des serveurs Arrow Flight)
* 'command' — Utilise FlightDescriptor::Command avec une requête SELECT (requis pour Dremio)

<div id="backup_slow_all_threads_after_retryable_s3_error">
  ## backup\_slow\_all\_threads\_after\_retryable\_s3\_error
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nouveau paramètre"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "0"},{"label": "Nouveau paramètre"}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "Paramètre désactivé par défaut"}]}]} />

Lorsqu'il est défini sur `true`, tous les threads exécutant des requêtes S3 vers le même endpoint de sauvegarde sont ralentis
dès qu'une requête S3 rencontre une erreur S3 pouvant donner lieu à un réessai, telle que 'Slow Down'.
Lorsqu'il est défini sur `false`, chaque thread gère le backoff des requêtes S3 indépendamment des autres.

<div id="cache_warmer_threads">
  ## cache\_warmer\_threads
</div>

<CloudOnlyBadge />

<SettingsInfoBlock type="UInt64" default_value="4" />

N’a d’effet que dans ClickHouse Cloud. Nombre de threads d’arrière-plan utilisés pour télécharger de manière spéculative de nouvelles parties de données dans le cache du système de fichiers lorsque [cache\_populated\_by\_fetch](/docs/fr/reference/settings/merge-tree-settings#cache_populated_by_fetch) est activé. Zéro pour désactiver.

<div id="calculate_text_stack_trace">
  ## calculate\_text\_stack\_trace
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Calcule une stack trace textuelle en cas d'exception pendant l'exécution des requêtes. Il s'agit du comportement par défaut. Cela nécessite des recherches de symboles, ce qui peut ralentir les tests de fuzzing lorsqu'un très grand nombre de requêtes erronées sont exécutées. Dans des conditions normales, vous ne devriez pas désactiver cette option.

<div id="cancel_http_readonly_queries_on_client_close">
  ## cancel\_http\_readonly\_queries\_on\_client\_close
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Annule les requêtes HTTP en lecture seule (par ex. `SELECT`) lorsqu’un client ferme la connexion sans attendre de réponse.

Valeur par défaut dans Cloud : `1`.

<div id="checksum_on_read">
  ## checksum\_on\_read
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Valide les sommes de contrôle lors de la lecture. Ce paramètre est activé par défaut et doit toujours l’être en production. N’attendez aucun bénéfice de la désactivation de ce paramètre. Il ne doit être utilisé que pour des expérimentations et des benchmarks. Ce paramètre s’applique uniquement aux tables de la famille MergeTree. Les sommes de contrôle sont toujours validées pour les autres moteurs de table et lors de la réception de données sur le réseau.

<div id="connection_pool_max_wait_ms">
  ## connection\_pool\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Millisecondes" default_value="0" />

Temps d’attente, en millisecondes, pour obtenir une connexion lorsque le pool de connexions est plein.

Valeurs possibles :

* Entier positif.
* 0 — Délai d’attente infini.

<div id="connections_with_failover_max_tries">
  ## connections\_with\_failover\_max\_tries
</div>

<SettingsInfoBlock type="UInt64" default_value="3" />

Le nombre maximal de tentatives de connexion à effectuer avec chaque réplique pour le moteur de table Distributed.

<div id="convert_query_to_cnf">
  ## convert\_query\_to\_cnf
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Lorsqu'elle est définie sur `true`, une requête `SELECT` est convertie en forme normale conjonctive (CNF). Dans certains cas, réécrire une requête en CNF peut accélérer son exécution (voir cette [issue GitHub](https://github.com/ClickHouse/ClickHouse/issues/11749) pour plus d'explications).

Par exemple, notez que la requête `SELECT` suivante n'est pas modifiée (comportement par défaut) :

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = false;
```

Le résultat est :

```response theme={null}
┌─explain────────────────────────────────────────────────────────┐
│ SELECT x                                                       │
│ FROM                                                           │
│ (                                                              │
│     SELECT number AS x                                         │
│     FROM numbers(20)                                           │
│     WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15)) │
│ ) AS a                                                         │
│ WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))     │
│ SETTINGS convert_query_to_cnf = 0                              │
└────────────────────────────────────────────────────────────────┘
```

Définissons `convert_query_to_cnf` à `true` et voyons ce qui change :

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = true;
```

Notez que la clause `WHERE` est réécrite en CNF, mais le jeu de résultats reste identique : la logique booléenne est inchangée.

```response theme={null}
┌─explain───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ SELECT x                                                                                                              │
│ FROM                                                                                                                  │
│ (                                                                                                                     │
│     SELECT number AS x                                                                                                │
│     FROM numbers(20)                                                                                                  │
│     WHERE ((x <= 15) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x >= 10) OR (x >= 1)) │
│ ) AS a                                                                                                                │
│ WHERE ((x >= 10) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x <= 15) OR (x <= 5))     │
│ SETTINGS convert_query_to_cnf = 1                                                                                     │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Valeurs possibles : true, false

<div id="count_matches_stop_at_empty_match">
  ## count\_matches\_stop\_at\_empty\_match
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Nouveau paramètre."}]}]} />

Arrête le comptage dès qu’un motif produit une correspondance de longueur nulle dans la fonction `countMatches`.

<div id="cross_to_inner_join_rewrite">
  ## cross\_to\_inner\_join\_rewrite
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.7"},{"label": "2"},{"label": "Forcer la réécriture des jointures par virgule en jointures internes"}]}]} />

Utilisez INNER JOIN au lieu d'une jointure par virgule/CROSS JOIN s'il existe des expressions de jointure dans la clause WHERE. Valeurs : 0 - aucune réécriture, 1 - appliquer si possible aux jointures par virgule/CROSS JOIN, 2 - forcer la réécriture de toutes les jointures par virgule, cross - si possible

<div id="data_type_default_nullable">
  ## data\_type\_default\_nullable
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permet aux types de données sans modificateurs explicites [NULL or NOT NULL](/docs/fr/reference/statements/create/table#null-or-not-null-modifiers) dans les définitions de colonnes d’être [Nullable](/docs/fr/reference/data-types/nullable).

Valeurs possibles :

* 1 — Les types de données dans les définitions de colonnes sont `Nullable` par défaut.
* 0 — Les types de données dans les définitions de colonnes ne sont pas `Nullable` par défaut.

<div id="decimal_check_overflow">
  ## decimal\_check\_overflow
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Vérifie les dépassements de capacité des opérations arithmétiques et de comparaison sur les nombres décimaux

<div id="deduplicate_blocks_in_dependent_materialized_views">
  ## deduplicate\_blocks\_in\_dependent\_materialized\_views
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Active par défaut la déduplication pour les vues matérialisées dépendantes."}]}]} />

Active ou désactive la vérification de déduplication pour les vues matérialisées qui reçoivent des données de tables Replicated\*.

Valeurs possibles :

* 0 — Désactivé.
* 1 — Activé.

Lorsqu’il est activé, ClickHouse effectue la déduplication des blocs dans les vues matérialisées qui dépendent de tables Replicated\*.
Ce paramètre est utile pour garantir que les vues matérialisées ne contiennent pas de données dupliquées lorsque l’opération d’insertion est réessayée à la suite d’une défaillance.

**Voir aussi**

* [Traitement de NULL dans les opérateurs IN](/docs/fr/concepts/features/operations/insert/deduplicating-inserts-on-retries#insert-deduplication-with-materialized-views)

<div id="defer_partition_pruning_after_final">
  ## defer\_partition\_pruning\_after\_final
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Paramètre ajouté en 26.5 pour contrôler le comportement d'élagage des partitions avec FINAL, introduit discrètement en 26.3 (https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242). Le changement sémantique important est consigné dans le bloc 26.3 afin que `compatibility = '26.2'` l'annule ; cette entrée existe pour que la vérification de mise à niveau depuis 26.4 accepte ce nom nouvellement introduit."}]}, {"id": "row-2","items": [{"label": "26.3"},{"label": "1"},{"label": "Contrôle la désactivation inconditionnelle, par le planner de FINAL, de l'élagage des partitions lorsque la colonne de clé de partition ne figure pas dans la clé de tri. Le changement de comportement lui-même a été introduit discrètement en 26.3 via https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242 ; cette entrée le documente rétroactivement afin que `compatibility = '26.2'` rétablisse le comportement antérieur à la régression (0 = élaguer avant FINAL, rapide ; 1 = différer l'élagage, sûr du point de vue de la validité des résultats)."}]}]} />

Lorsqu'il est activé (par défaut), l'élagage des partitions est ignoré pour les requêtes `FINAL` sur les tables dont les
colonnes de clé de partition ne font pas partie de la clé de tri. Il s'agit du comportement sûr du point de vue de la validité des résultats,
introduit en 26.3 : `FINAL` peut devoir dédupliquer des lignes qui partagent une clé primaire mais se trouvent
dans des partitions différentes, et l'élagage des partitions exclurait silencieusement ces lignes de
l'ensemble d'entrée de la déduplication.

Lorsqu'il est désactivé, l'élagage des partitions s'applique même avec `FINAL`, ce qui rétablit le comportement
antérieur à 26.3. Cela peut être nettement plus rapide pour les requêtes avec des prédicats `WHERE` sur la
colonne de partition, mais n'est correct que lorsque des lignes ayant la même clé primaire ne peuvent pas exister
dans des partitions différentes — par exemple, des tables de journaux d'événements dont la colonne de partition est définie au moment de l'insert
et ne change jamais.

Ce paramètre n'affecte que les tables partitionnées dont les colonnes de clé de partition ne sont pas incluses
dans la clé de tri ; pour les autres tables, l'élagage des partitions est toujours appliqué.

Valeurs possibles :

* 0 — Appliquer l'élagage des partitions avant `FINAL` (comportement antérieur à 26.3, plus rapide mais non sûr dans le cas général).
* 1 — Différer l'élagage des partitions après `FINAL` (par défaut, sûr du point de vue de la validité des résultats).

<div id="describe_compact_output">
  ## describe\_compact\_output
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Si cette valeur est définie sur true, inclut uniquement les noms de colonnes et les types dans le résultat de la requête DESCRIBE

<div id="dialect">
  ## dialecte
</div>

<SettingsInfoBlock type="Dialect" default_value="clickhouse" />

Dialecte utilisé pour interpréter la requête

<div id="discard_query_data">
  ## discard\_query\_data
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Nouveau paramètre permettant de ne pas envoyer au client les lignes du résultat de la requête via le protocole TCP natif."}]}]} />

S’il est activé, le serveur n’envoie pas au client les lignes du résultat de la requête. La requête est toujours exécutée et intégralement journalisée sur le serveur, et le client reçoit toujours les paquets restants.

Utilisé pour le trafic miroir, les benchmarks et le fuzzing.

N’a aucun effet sur les requêtes secondaires.

Affecte uniquement le protocole TCP natif.

<div id="distinct_overflow_mode">
  ## distinct\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Définit ce qui se produit lorsque la quantité de données dépasse l’une des limites.

Valeurs possibles :

* `throw` : lever une exception (par défaut).
* `break` : arrêter l’exécution de la requête et renvoyer le résultat partiel, comme si les
  données source étaient épuisées.

<div id="do_not_merge_across_partitions_select_final">
  ## do\_not\_merge\_across\_partitions\_select\_final
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Améliore les requêtes FINAL en évitant les fusions entre partitions différentes.

Lorsqu’il est activé, lors des requêtes SELECT FINAL, les parts provenant de partitions différentes ne sont pas fusionnées entre elles. La fusion s’effectue uniquement au sein de chaque partition. Cela peut considérablement améliorer les performances des requêtes sur les tables partitionnées.

<div id="dynamic_throw_on_type_mismatch">
  ## dynamic\_throw\_on\_type\_mismatch
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nouveau paramètre permettant de contrôler le comportement en cas d'incompatibilité de type dans l'implémentation Dynamic par défaut"}]}]} />

Lorsqu’une fonction est appliquée à une colonne [Dynamic](/docs/fr/reference/data-types/dynamic) à l’aide de l’implémentation par défaut,
ce paramètre contrôle ce qui se passe pour les lignes dont le type réel est incompatible avec la fonction :

* `true` (par défaut) — lever une exception.
* `false` — renvoyer `NULL` pour ces lignes à la place.

<div id="enforce_strict_identifier_format">
  ## enforce\_strict\_identifier\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Nouveau paramètre."}]}]} />

Si cette option est activée, n’autoriser que les identifiants contenant des caractères alphanumériques et des traits de soulignement.

<div id="engine_url_skip_empty_files">
  ## engine\_url\_skip\_empty\_files
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permet d’ignorer ou non les fichiers vides dans les tables du moteur [URL](/docs/fr/reference/engines/table-engines/special/url).

Valeurs possibles :

* 0 — `SELECT` lève une exception si le fichier vide n’est pas compatible avec le format demandé.
* 1 — `SELECT` renvoie un résultat vide pour un fichier vide.

<div id="exact_rows_before_limit">
  ## exact\_rows\_before\_limit
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Lorsqu’il est activé, ClickHouse fournit la valeur exacte de la statistique rows\_before\_limit\_at\_least, mais au prix d’une lecture complète des données avant la limite.

<div id="except_default_mode">
  ## except\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

Définit le mode par défaut de la requête EXCEPT. Valeurs possibles : chaîne vide, 'ALL', 'DISTINCT'. Si elle est vide, une requête sans mode lèvera une exception.

<div id="exclude_materialize_skip_indexes_on_insert">
  ## exclude\_materialize\_skip\_indexes\_on\_insert
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": ""},{"label": "Nouveau paramètre."}]}]} />

Exclut les index de saut spécifiés afin qu’ils ne soient ni construits ni stockés lors des INSERT. Les index de saut exclus seront toutefois toujours construits et stockés [lors des fusions](/docs/fr/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) ou par une requête
[MATERIALIZE INDEX](/docs/fr/reference/statements/alter/skipping-index#materialize-index) explicite.

N’a aucun effet si [materialize\_skip\_indexes\_on\_insert](/docs/fr/reference/settings/session-settings/materialize#materialize_skip_indexes_on_insert) vaut false.

Exemple :

```sql theme={null}
CREATE TABLE tab
(
    a UInt64,
    b UInt64,
    INDEX idx_a a TYPE minmax,
    INDEX idx_b b TYPE set(3)
)
ENGINE = MergeTree ORDER BY tuple();

SET exclude_materialize_skip_indexes_on_insert='idx_a'; -- idx_a will be not be updated upon insert
--SET exclude_materialize_skip_indexes_on_insert='idx_a, idx_b'; -- neither index would be updated on insert

INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- only idx_b is updated

-- since it is a session setting it can be set on a per-query level
INSERT INTO tab SELECT number, number / 50 FROM numbers(100, 100) SETTINGS exclude_materialize_skip_indexes_on_insert='idx_b';

ALTER TABLE tab MATERIALIZE INDEX idx_a; -- this query can be used to explicitly materialize the index

SET exclude_materialize_skip_indexes_on_insert = DEFAULT; -- reset setting to default
```

<div id="execute_exists_as_scalar_subquery">
  ## execute\_exists\_as\_scalar\_subquery
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nouveau paramètre"}]}]} />

Exécute les sous-requêtes EXISTS non corrélées sous forme de sous-requêtes scalaires. Comme pour les sous-requêtes scalaires, le cache est utilisé et le constant folding s'applique au résultat.

Valeur par défaut dans Cloud : `0`.

<div id="explain_query_plan_default">
  ## explain\_query\_plan\_default
</div>

<SettingsInfoBlock type="ExplainQueryPlanDefault" default_value="pretty" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "pretty"},{"label": "À partir de la version 26.7, `EXPLAIN PLAN` utilise par défaut `actions=1, compact=1, pretty=1`. Définissez cette valeur sur `legacy` pour restaurer la sortie utilisée avant la version 26.7."}]}]} />

Format par défaut utilisé par `EXPLAIN PLAN`.

Valeurs possibles :

* `pretty` (par défaut depuis la version 26.7) — `actions`, `compact` et `pretty` valent par défaut `true`, ce qui produit un plan compact, pretty et annoté avec les actions.
* `legacy` — sortie antérieure à la version 26.7.

Si vous spécifiez explicitement les options `actions`, `compact` ou `pretty` dans l’instruction `EXPLAIN` (par exemple, `EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...`), cela prévaut toujours sur ce paramètre.

`EXPLAIN PLAN` avec `json = 1` ou `distributed = 1` conserve les valeurs par défaut legacy (antérieures à la version 26.7), indépendamment de ce paramètre, sauf si `actions`, `compact` ou `pretty` sont définis explicitement. La sortie pretty ne peut pas représenter des résultats JSON ni des plans distribués par shard ; ces modes ne sont donc correctement rendus qu’au format legacy.

<div id="extract_key_value_pairs_max_pairs_per_row">
  ## extract\_key\_value\_pairs\_max\_pairs\_per\_row
</div>

**Alias**: `extract_kvp_max_pairs_per_row`

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "Nombre maximal de paires que la fonction `extractKeyValuePairs` peut produire. Sert de garde-fou pour éviter une consommation excessive de mémoire."}]}]} />

Nombre maximal de paires que la fonction `extractKeyValuePairs` peut produire. Sert de garde-fou pour éviter une consommation excessive de mémoire.

<div id="extremes">
  ## extremes
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Indique s’il faut prendre en compte les valeurs extrêmes (les valeurs minimales et maximales des colonnes dans le résultat de la requête). Accepte 0 ou 1. La valeur par défaut est 0 (désactivé).
Pour plus d’informations, consultez la section « Valeurs extrêmes ».

<div id="fallback_to_stale_replicas_for_distributed_queries">
  ## fallback\_to\_stale\_replicas\_for\_distributed\_queries
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Force une requête vers une réplique obsolète si des données à jour ne sont pas disponibles. Voir [Replication](/docs/fr/reference/engines/table-engines/mergetree-family/replication).

ClickHouse sélectionne la réplique la plus pertinente parmi les répliques obsolètes de la table.

Utilisé lors de l’exécution d’un `SELECT` depuis une table distribuée pointant vers des tables répliquées.

Par défaut, 1 (activé).

<div id="file_like_engine_default_partition_strategy">
  ## file\_like\_engine\_default\_partition\_strategy
</div>

<SettingsInfoBlock type="FileLikeEngineDefaultPartitionStrategy" default_value="hive" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "hive"},{"label": "Modifie la stratégie de partitionnement par défaut des moteurs de table de type fichier (S3, AzureBlobStorage, etc.), qui passe de `wildcard` à `hive` lorsqu’aucun `partition_strategy` n’est fourni."}]}]} />

Stratégie de partitionnement par défaut pour les moteurs de type fichier.

<div id="filesystem_prefetches_limit">
  ## filesystem\_prefetches\_limit
</div>

<SettingsInfoBlock type="UInt64" default_value="200" />

Nombre maximal de prefetches. Zéro signifie qu'il n'y a pas de limite. Il est toutefois recommandé d'utiliser le paramètre `filesystem_prefetches_max_memory_usage` si vous souhaitez limiter le nombre de prefetches.

<div id="final">
  ## final
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Applique automatiquement le modificateur [FINAL](/docs/fr/reference/statements/select/from#final-modifier) à toutes les tables d'une requête auxquelles [FINAL](/docs/fr/reference/statements/select/from#final-modifier) s'applique, y compris les tables jointes, les tables dans les sous-requêtes et les
tables distribuées.

Valeurs possibles :

* 0 - désactivé
* 1 - activé

Exemple :

```sql theme={null}
CREATE TABLE test
(
    key Int64,
    some String
)
ENGINE = ReplacingMergeTree
ORDER BY key;

INSERT INTO test FORMAT Values (1, 'first');
INSERT INTO test FORMAT Values (1, 'second');

SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
┌─key─┬─some──┐
│   1 │ first │
└─────┴───────┘

SELECT * FROM test SETTINGS final = 1;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘

SET final = 1;
SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
```

<div id="finalize_projection_parts_synchronously">
  ## finalize\_projection\_parts\_synchronously
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nouveau paramètre pour finaliser les parties de projection de manière synchrone pendant INSERT afin de réduire l’utilisation mémoire maximale."}]}]} />

Lorsqu’il est activé, les parties de projection sont finalisées de manière synchrone pendant INSERT, ce qui réduit l’utilisation mémoire maximale au prix d’un parallélisme de téléversement vers S3 moindre. Par défaut, le flux de sortie de chaque projection est maintenu actif jusqu’à la finalisation de l’intégralité de la part (y compris toutes les projections), ce qui permet de faire se chevaucher les téléversements vers S3, mais augmente l’utilisation mémoire maximale proportionnellement au nombre de projections. Ce paramètre n’affecte que le processus d’INSERT ; merge et mutation finalisent déjà les projections de manière synchrone.

<div id="flatten_nested">
  ## flatten\_nested
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Définit le format des données des colonnes [Nested](/docs/fr/reference/data-types/nested-data-structures/index).

Valeurs possibles :

* 1 — La colonne Nested est aplatie en tableaux distincts.
* 0 — La colonne Nested reste un tableau unique de tuples.

**Utilisation**

Si ce paramètre est défini sur `0`, il est possible d'utiliser un niveau d'imbrication quelconque.

**Exemples**

Requête :

```sql theme={null}
SET flatten_nested = 1;
CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

Résultat :

```text theme={null}
┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n.a` Array(UInt32),
    `n.b` Array(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Requête :

```sql theme={null}
SET flatten_nested = 0;

CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

Résultat :

```text theme={null}
┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n` Nested(a UInt32, b UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="fsync_metadata">
  ## fsync\_metadata
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Active ou désactive [fsync](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html) lors de l’écriture de fichiers `.sql`. Activé par défaut.

Il peut être judicieux de le désactiver si le serveur possède des millions de petites tables constamment créées et supprimées.

<div id="functions_h3_default_if_invalid">
  ## functions\_h3\_default\_if\_invalid
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nouveau paramètre du comportement legacy permettant d’autoriser des entrées non valides pour les fonctions h3"}]}]} />

Si false, les fonctions h3, par exemple h3CellAreaM2, génèrent une exception si l’entrée n’est pas valide. Si true, elles renvoient 0 ou la valeur par défaut.

<div id="geo_distance_returns_float64_on_float64_arguments">
  ## geo\_distance\_returns\_float64\_on\_float64\_arguments
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Augmentation de la précision par défaut."}]}]} />

Si les quatre arguments des fonctions `geoDistance`, `greatCircleDistance` et `greatCircleAngle` sont de type Float64, celles-ci renvoient un Float64 et utilisent la double précision pour les calculs internes. Dans les versions précédentes de ClickHouse, ces fonctions renvoyaient toujours un Float32.

<div id="geotoh3_argument_order">
  ## geotoh3\_argument\_order
</div>

<BetaBadge />

<SettingsInfoBlock type="GeoToH3ArgumentOrder" default_value="lat_lon" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "lat_lon"},{"label": "Nouveau paramètre de comportement legacy permettant de définir l'ordre des arguments lon et lat"}]}]} />

La fonction `geoToH3` accepte (lon, lat) si le paramètre est réglé sur `lon_lat`, et (lat, lon) s'il est réglé sur `lat_lon`.

<div id="glob_expansion_max_elements">
  ## glob\_expansion\_max\_elements
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Nombre maximal d’adresses autorisées (pour les stockages externes, les fonctions table, etc.).

<div id="h3togeo_lon_lat_result_order">
  ## h3togeo\_lon\_lat\_result\_order
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nouveau paramètre"}]}]} />

La fonction 'h3ToGeo' renvoie (lon, lat) si la valeur est true, sinon (lat, lon).

<div id="handshake_timeout_ms">
  ## handshake\_timeout\_ms
</div>

<SettingsInfoBlock type="Millisecondes" default_value="10000" />

Délai d’expiration, en millisecondes, pour la réception du paquet Hello des répliques lors de la négociation initiale.

<div id="hedged_connection_timeout_ms">
  ## hedged\_connection\_timeout\_ms
</div>

<SettingsInfoBlock type="Millisecondes" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "50"},{"label": "Ouvre une nouvelle connexion pour les requêtes hedged après 50 ms au lieu de 100, afin de conserver le délai d'expiration de connexion précédent"}]}]} />

Délai d'expiration pour établir une connexion avec une réplique dans le cadre des requêtes hedged

<div id="highlight_max_matches_per_row">
  ## highlight\_max\_matches\_per\_row
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10000"},{"label": "Nouveau paramètre limitant le nombre de correspondances de surlignage par ligne afin d’éviter une consommation excessive de mémoire."}]}]} />

Définit le nombre maximal de correspondances de surlignage par ligne dans la fonction [highlight](/docs/fr/reference/functions/regular-functions/string-search-functions#highlight). Utilisez-le pour éviter une consommation excessive de mémoire lors du surlignage de motifs très répétitifs dans de longs textes.

Valeurs possibles :

* Entier positif.

<div id="hnsw_candidate_list_size_for_search">
  ## hnsw\_candidate\_list\_size\_for\_search
</div>

<SettingsInfoBlock type="UInt64" default_value="256" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "256"},{"label": "Nouveau paramètre. Auparavant, la valeur était éventuellement spécifiée dans CREATE INDEX, et sa valeur par défaut était 64."}]}]} />

Taille de la liste dynamique des candidats lors de la recherche dans l’index de similarité vectorielle, également appelée « ef\_search ».

<div id="hsts_max_age">
  ## hsts\_max\_age
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Durée d’expiration du HSTS. 0 signifie que le HSTS est désactivé.

<div id="idle_connection_timeout">
  ## idle\_connection\_timeout
</div>

<SettingsInfoBlock type="UInt64" default_value="3600" />

Délai d’expiration avant la fermeture des connexions TCP inactives après le nombre de secondes spécifié.

Valeurs possibles :

* Entier positif (0 : fermeture immédiate, après 0 seconde).

<div id="inject_random_order_for_select_without_order_by">
  ## inject\_random\_order\_for\_select\_without\_order\_by
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nouveau paramètre"}]}]} />

Si ce paramètre est activé, 'ORDER BY rand()' est injecté dans les requêtes SELECT sans clause ORDER BY.
S'applique uniquement à une profondeur de sous-requête = 0. Les sous-requêtes et INSERT INTO ... SELECT ne sont pas affectés.
Si la structure de premier niveau est UNION, 'ORDER BY rand()' est injecté indépendamment dans chacune des branches.
Utile uniquement pour les tests et le développement (l'absence de ORDER BY est une source de résultats de requête non déterministes).

<div id="interactive_delay">
  ## interactive\_delay
</div>

<SettingsInfoBlock type="UInt64" default_value="100000" />

L’intervalle, en microsecondes, entre les vérifications de l’annulation de l’exécution de la requête et l’envoi de la progression.

<div id="intersect_default_mode">
  ## intersect\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

Définit le mode par défaut de la requête INTERSECT. Valeurs possibles : chaîne vide, 'ALL', 'DISTINCT'. Si cette valeur est vide, une requête sans mode générera une exception.

<div id="least_greatest_legacy_null_behavior">
  ## least\_greatest\_legacy\_null\_behavior
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Nouveau réglage"}]}]} />

S'il est activé, les fonctions 'least' et 'greatest' renvoient NULL si l'un de leurs arguments est NULL.

<div id="legacy_column_name_of_tuple_literal">
  ## legacy\_column\_name\_of\_tuple\_literal
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.7"},{"label": "0"},{"label": "Ajoutez ce paramètre uniquement pour des raisons de compatibilité. Il est pertinent de le définir sur 'true' lors d'une mise à jour progressive du cluster d'une version inférieure à 21.7 vers une version supérieure"}]}]} />

Répertorie tous les noms des éléments des grands littéraux tuple dans leurs noms de colonne au lieu d’un hachage. Ce paramètre n’existe que pour des raisons de compatibilité. Il est pertinent de le définir sur 'true' lors d’une mise à jour progressive du cluster d’une version inférieure à 21.7 vers une version supérieure.

<div id="limit">
  ## limit
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Définit le nombre maximal de lignes à renvoyer dans le résultat de la requête. Ce paramètre ajuste la valeur définie par la clause [LIMIT](/docs/fr/reference/statements/select/limit), de sorte que la limite spécifiée dans la requête ne puisse pas dépasser celle définie par ce paramètre.

Valeurs possibles :

* 0 — Le nombre de lignes n’est pas limité.
* Entier positif.

<div id="load_marks_asynchronously">
  ## load\_marks\_asynchronously
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Charger les marks MergeTree de façon asynchrone

Valeur par défaut dans Cloud : `1`.

<div id="lock_acquire_timeout">
  ## lock\_acquire\_timeout
</div>

<SettingsInfoBlock type="Secondes" default_value="120" />

Définit le nombre de secondes pendant lequel une demande de verrouillage attend avant d’échouer.

Le délai d’expiration du verrouillage est utilisé pour éviter les interblocages lors de l’exécution d’opérations de lecture/écriture sur des tables. Lorsque ce délai expire et que la demande de verrouillage échoue, le serveur ClickHouse lève une exception "Locking attempt timed out! Possible deadlock avoided. Client should retry." avec le code d’erreur `DEADLOCK_AVOIDED`.

Valeurs possibles :

* Entier positif (en secondes).
* 0 — Aucun délai d’expiration du verrouillage.

<div id="low_priority_query_wait_time_ms">
  ## low\_priority\_query\_wait\_time\_ms
</div>

<BetaBadge />

<SettingsInfoBlock type="Millisecondes" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "Nouveau paramètre."},{"label": "1000"}]}]} />

Lorsque le mécanisme de priorisation des requêtes est utilisé (voir le paramètre `priority`), les requêtes à faible priorité attendent la fin des requêtes de priorité plus élevée. Ce paramètre définit cette durée d'attente.

<div id="make_distributed_plan">
  ## make\_distributed\_plan
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Nouveau paramètre expérimental."}]}]} />

Créer un plan de requête distribuée.

<div id="merge_table_max_tables_to_look_for_schema_inference">
  ## merge\_table\_max\_tables\_to\_look\_for\_schema\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "Nouveau paramètre"}]}]} />

Lors de la création d'une table `Merge` sans schéma explicite ou lors de l'utilisation de la fonction de table `merge`, le schéma est inféré comme l'union d'au plus le nombre spécifié de tables correspondantes.
S'il y a davantage de tables, le schéma sera inféré à partir des premières tables, jusqu'au nombre spécifié.

<div id="mongodb_throw_on_unsupported_query">
  ## mongodb\_throw\_on\_unsupported\_query
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "1"},{"label": "Nouveau paramètre."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "Nouveau paramètre."}]}]} />

Si ce paramètre est activé, les tables MongoDB renverront une erreur lorsqu'une requête MongoDB ne peut pas être générée. Sinon, ClickHouse lit l'intégralité de la table et la traite localement. Cette option ne s'applique pas lorsque 'allow\_experimental\_analyzer=0'.

<div id="multiple_joins_try_to_keep_original_names">
  ## multiple\_joins\_try\_to\_keep\_original\_names
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ne pas ajouter d’alias à la liste des expressions de premier niveau lors de la réécriture de plusieurs JOIN

<div id="normalize_function_names">
  ## normalize\_function\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.3"},{"label": "1"},{"label": "Ramener les noms de fonctions à leur forme canonique, ce qui était nécessaire pour le routage des requêtes de projection"}]}]} />

Ramener les noms de fonctions à leur forme canonique

<div id="offset">
  ## offset
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Définit le nombre de lignes à ignorer avant de commencer à renvoyer les lignes de la requête. Il ajuste l’offset défini par la clause [OFFSET](/docs/fr/reference/statements/select/offset), de sorte que ces deux valeurs soient additionnées.

Valeurs possibles :

* 0 — Aucune ligne n’est ignorée.
* Entier positif.

**Exemple**

Table d’entrée :

```sql theme={null}
CREATE TABLE test (i UInt64) ENGINE = MergeTree() ORDER BY i;
INSERT INTO test SELECT number FROM numbers(500);
```

Requête :

```sql theme={null}
SET limit = 5;
SET offset = 7;
SELECT * FROM test LIMIT 10 OFFSET 100;
```

Résultat :

```text theme={null}
┌───i─┐
│ 107 │
│ 108 │
│ 109 │
└─────┘
```

<div id="paimon_target_snapshot_id">
  ## paimon\_target\_snapshot\_id
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "-1"},{"label": "Nouveau paramètre."}]}]} />

Lecture ciblée d’un snapshot au niveau de la requête pour le mode incrémental de Paimon. Lorsque >0, le lecteur récupère uniquement le delta
pour le `snapshot_id` spécifié sans faire progresser le watermark validé.
Par défaut : -1 (désactivé)

<div id="parallelize_output_from_storages">
  ## parallelize\_output\_from\_storages
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.5"},{"label": "1"},{"label": "Autorise le parallélisme lors de l’exécution de requêtes lisant depuis file/url/s3/etc. Cela peut réordonner les lignes."}]}]} />

Parallélise la sortie à l’étape de lecture depuis les stockages. Cela permet, lorsque c’est possible, de paralléliser le traitement des requêtes immédiatement après la lecture depuis les stockages.

<div id="partial_result_on_first_cancel">
  ## partial\_result\_on\_first\_cancel
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permet à la requête de renvoyer un résultat partiel après son annulation.

<div id="per_part_index_stats">
  ## per\_part\_index\_stats
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nouveau paramètre."}]}]} />

Enregistre les statistiques d’index pour chaque partie

<div id="poll_interval">
  ## poll\_interval
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

Bloque dans la boucle d’attente des requêtes sur le serveur pendant le nombre de secondes spécifié.

<div id="polyglot_dialect">
  ## polyglot\_dialect
</div>

<ExperimentalBadge />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": ""},{"label": "Nouveau paramètre permettant de spécifier le dialecte SQL source pour le transpileur polyglotte."}]}]} />

Dialecte SQL source du transpileur polyglotte (par ex. 'sqlite', 'mysql', 'postgresql', 'snowflake', 'duckdb').

<div id="postgresql_fault_injection_probability">
  ## postgresql\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "Nouveau paramètre"}]}]} />

Probabilité approximative d’échec des requêtes PostgreSQL internes (utilisées pour la réplication). La valeur valide se situe dans l’intervalle \[0.0f, 1.0f]

<div id="predicate_statistics_sample_rate">
  ## predicate\_statistics\_sample\_rate
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nouveau paramètre pour collecter des statistiques sur la sélectivité des prédicats dans system.predicate_statistics_log"}]}]} />

Collecte des statistiques sur la sélectivité des prédicats dans `system.predicate_statistics_log`. Lorsqu’il est défini sur N > 0, environ 1/N des requêtes sont échantillonnées (en fonction de l’identifiant de requête). 0 signifie désactivé.

<div id="prefetch_buffer_size">
  ## prefetch\_buffer\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

La taille maximale du tampon de prélecture pour la lecture à partir du système de fichiers. Les valeurs supérieures à 256 MiB sont limitées à 256 MiB, car un tampon de lecture n’a jamais besoin d’être plus grand.

<div id="print_pretty_type_names">
  ## print\_pretty\_type\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "Meilleure expérience utilisateur."}]}]} />

Permet d'afficher de façon lisible, avec des retraits, les noms de types profondément imbriqués dans la requête `DESCRIBE` et la fonction `toTypeName()`.

Exemple :

```sql theme={null}
CREATE TABLE test (a Tuple(b String, c Tuple(d Nullable(UInt64), e Array(UInt32), f Array(Tuple(g String, h Map(String, Array(Tuple(i String, j UInt64))))), k Date), l Nullable(String))) ENGINE=Memory;
DESCRIBE TABLE test FORMAT TSVRaw SETTINGS print_pretty_type_names=1;
```

```
a   Tuple(
    b String,
    c Tuple(
        d Nullable(UInt64),
        e Array(UInt32),
        f Array(Tuple(
            g String,
            h Map(
                String,
                Array(Tuple(
                    i String,
                    j UInt64
                ))
            )
        )),
        k Date
    ),
    l Nullable(String)
)
```

<div id="priority">
  ## priority
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Priorité de la requête. 1 - la plus élevée ; plus la valeur est grande, plus la priorité est faible ; 0 - ne pas utiliser de priorités.

<div id="push_external_roles_in_interserver_queries">
  ## push\_external\_roles\_in\_interserver\_queries
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nouveau paramètre."}]}]} />

Active la transmission des rôles utilisateur de l’initiateur aux autres nœuds lors de l’exécution d’une requête.

<div id="query_metric_log_interval">
  ## query\_metric\_log\_interval
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "-1"},{"label": "Nouveau paramètre."}]}]} />

Intervalle, en millisecondes, de collecte du [query\_metric\_log](/docs/fr/reference/system-tables/query_metric_log) pour les requêtes individuelles.

S'il est défini sur une valeur négative, il prendra la valeur `collect_interval_milliseconds` du [paramètre query\_metric\_log](/docs/fr/reference/settings/server-settings/settings#query_metric_log), ou utilisera 1000 par défaut si ce paramètre n'est pas présent.

Pour désactiver la collecte pour une requête donnée, définissez `query_metric_log_interval` sur 0.

Valeur par défaut : -1

<div id="queue_max_wait_ms">
  ## queue\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Millisecondes" default_value="0" />

Le temps d’attente dans la file de requêtes si le nombre de requêtes simultanées dépasse le maximum autorisé.

<div id="rabbitmq_max_wait_ms">
  ## rabbitmq\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Millisecondes" default_value="5000" />

Le délai d’attente avant une nouvelle tentative de lecture depuis RabbitMQ.

<div id="readonly">
  ## readonly
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

0 - aucune restriction en mode lecture seule. 1 - uniquement les requêtes de lecture, ainsi que la modification des paramètres explicitement autorisés. 2 - uniquement les requêtes de lecture, ainsi que la modification des paramètres, à l'exception du paramètre 'readonly'.

<div id="recursive_cte_max_steps_in_type_inference">
  ## recursive\_cte\_max\_steps\_in\_type\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10"},{"label": "Nombre maximal d’itérations pour déduire les types de colonnes dans les CTE récursives via l’application itérative de `getLeastSupertype`"}]}]} />

Nombre maximal d’itérations pour déduire les types de colonnes dans les CTE récursives. Les types de colonnes sont déterminés en appliquant de manière itérative `getLeastSupertype` aux parties non récursive et récursive de l’UNION ALL jusqu’à convergence. Définissez cette valeur sur 0 pour désactiver l’élargissement des types et utiliser uniquement les types de la partie non récursive.

<div id="regexp_max_matches_per_row">
  ## regexp\_max\_matches\_per\_row
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Définit le nombre maximal de correspondances d’une même expression régulière par ligne. Utilisez ce paramètre pour éviter une surcharge de mémoire lors de l’utilisation d’une expression régulière gourmande dans la fonction [extractAllGroupsHorizontal](/docs/fr/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal).

Valeurs possibles :

* Entier positif.

<div id="reject_expensive_hyperscan_regexps">
  ## reject\_expensive\_hyperscan\_regexps
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Rejette les motifs dont l’évaluation avec hyperscan est susceptible d’être coûteuse (en raison d’une explosion du nombre d’états de l’AFN)

<div id="remerge_sort_lowered_memory_bytes_ratio">
  ## remerge\_sort\_lowered\_memory\_bytes\_ratio
</div>

<SettingsInfoBlock type="Float" default_value="2" />

Si l’utilisation de la mémoire après une nouvelle fusion n’est pas réduite dans cette proportion, cette nouvelle fusion sera désactivée.

<div id="remote_read_min_bytes_for_seek">
  ## remote\_read\_min\_bytes\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="4194304" />

Nombre minimal d’octets requis pour qu’une lecture distante (URL, S3) effectue un seek, plutôt qu’une lecture avec ignore.

<div id="rename_files_after_processing">
  ## rename\_files\_after\_processing
</div>

* **Type:** String

* **Valeur par défaut :** Chaîne vide

Ce paramètre permet de spécifier un modèle de renommage pour les fichiers traités par la fonction de table `file`. Lorsque cette option est définie, tous les fichiers lus par la fonction de table `file` sont renommés selon le modèle spécifié et ses espaces réservés, uniquement si leur traitement a réussi.

<div id="placeholders">
  ### Marqueurs de substitution
</div>

* `%a` — Nom de fichier d’origine complet (p. ex., "sample.csv").
* `%f` — Nom de fichier d’origine sans extension (p. ex., "sample").
* `%e` — Extension du fichier d’origine avec le point (p. ex., ".csv").
* `%t` — Horodatage (en microsecondes).
* `%%` — Signe de pourcentage ("%").

<div id="example">
  ### Exemple
</div>

* Option : `--rename_files_after_processing="processed_%f_%t%e"`

* Requête : `SELECT * FROM file('sample.csv')`

Si `sample.csv` est lu avec succès, le fichier sera renommé en `processed_sample_1683473210851438.csv`

<div id="replication_wait_for_inactive_replica_timeout">
  ## replication\_wait\_for\_inactive\_replica\_timeout
</div>

<SettingsInfoBlock type="Int64" default_value="120" />

Indique combien de temps (en secondes) attendre que les répliques inactives exécutent les requêtes [`ALTER`](/docs/fr/reference/statements/alter/index), [`OPTIMIZE`](/docs/fr/reference/statements/optimize) ou [`TRUNCATE`](/docs/fr/reference/statements/truncate).

Valeurs possibles :

* `0` — Ne pas attendre.
* Entier négatif — Attendre indéfiniment.
* Entier positif — Nombre de secondes à attendre.

<div id="reserve_memory">
  ## reserve\_memory
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Nouveau paramètre permettant de réserver de la mémoire pour une charge de travail spécifique avant le démarrage d’une requête."}]}]} />

Utilisé dans la planification des charges de travail. Quantité minimale de RAM réservée à l’exécution d’une requête sur un seul serveur. La réservation s’effectue via la hiérarchie WORKLOAD à l’aide de la valeur du paramètre de requête `workload`.
Si la charge de travail ne dispose pas de suffisamment de mémoire, une requête ne peut pas démarrer et reste en attente jusqu’à ce que la réservation puisse être honorée.
Une valeur de `0` signifie qu’il n’y a pas de réservation.
Ce paramètre ne prend effet que si la ressource MEMORY RESERVATION est créée.

<div id="restore_replicated_merge_tree_to_shared_merge_tree">
  ## restore\_replicated\_merge\_tree\_to\_shared\_merge\_tree
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "Nouveau paramètre."}]}]} />

Remplace le moteur de table Replicated*MergeTree par Shared*MergeTree lors de RESTORE.

Valeur par défaut Cloud : `1`.

<div id="result_overflow_mode">
  ## result\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Définit le comportement à adopter si le volume du résultat dépasse l'une des limites.

Valeurs possibles :

* `throw` : lever une exception (par défaut).
* `break` : arrêter l'exécution de la requête et renvoyer un résultat partiel, comme si les
  données source étaient épuisées.

L'utilisation de 'break' est similaire à celle de LIMIT. `Break` interrompt l'exécution uniquement au
niveau du block. Cela signifie que le nombre de lignes renvoyées est supérieur à
[`max_result_rows`](/docs/fr/reference/settings/session-settings/max-result#max_result_rows), est un multiple de [`max_block_size`](/docs/fr/reference/settings/session-settings/max#max_block_size)
et dépend de [`max_threads`](/docs/fr/reference/settings/session-settings/max-threads#max_threads).

**Exemple**

```sql title="Query" theme={null}
SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';

SELECT *
FROM numbers_mt(100000)
FORMAT Null;
```

```text title="Result" theme={null}
6666 rows in set. ...
```

<div id="rows_before_aggregation">
  ## rows\_before\_aggregation
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "Fournit la valeur exacte de la statistique rows_before_aggregation, qui correspond au nombre de lignes lues avant l’agrégation"}]}]} />

Lorsqu’il est activé, ClickHouse fournit la valeur exacte de la statistique rows\_before\_aggregation, qui correspond au nombre de lignes lues avant l’agrégatio

<div id="secondary_indices_enable_bulk_filtering">
  ## secondary\_indices\_enable\_bulk\_filtering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Un nouvel algorithme de filtrage par indices de saut de données"}]}]} />

Active l’algorithme de filtrage groupé pour les indices. Il devrait toujours offrir de meilleures performances, mais ce paramètre est conservé pour des raisons de compatibilité et de contrôle.

<div id="select_sequential_consistency">
  ## select\_sequential\_consistency
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<Note>
  Le comportement de ce paramètre diffère entre SharedMergeTree et ReplicatedMergeTree. Voir [la cohérence de SharedMergeTree](/docs/fr/products/cloud/features/infrastructure/shared-merge-tree#consistency) pour plus d’informations sur le comportement de `select_sequential_consistency` dans SharedMergeTree.
</Note>

Active ou désactive la cohérence séquentielle pour les requêtes `SELECT`. Nécessite que `insert_quorum_parallel` soit désactivé (activé par défaut).

Valeurs possibles :

* 0 — Désactivé.
* 1 — Activé.

Utilisation

Lorsque la cohérence séquentielle est activée, ClickHouse n’autorise l’exécution de la requête `SELECT` par le client que sur les répliques qui contiennent les données de toutes les requêtes `INSERT` précédentes exécutées avec `insert_quorum`. Si le client pointe vers une réplique incomplète, ClickHouse génère une exception. La requête `SELECT` n’inclura pas les données qui n’ont pas encore été écrites sur le quorum de répliques.

Lorsque `insert_quorum_parallel` est activé (par défaut), `select_sequential_consistency` ne fonctionne pas. En effet, les requêtes `INSERT` parallèles peuvent être écrites sur différents ensembles de répliques de quorum, sans garantie qu’une seule réplique ait reçu toutes les écritures.

Voir aussi :

* [insert\_quorum](/docs/fr/reference/settings/session-settings/insert-quorum#insert_quorum)
* [insert\_quorum\_timeout](/docs/fr/reference/settings/session-settings/insert-quorum#insert_quorum_timeout)
* [insert\_quorum\_parallel](/docs/fr/reference/settings/session-settings/insert-quorum#insert_quorum_parallel)

<div id="session_timezone">
  ## session\_timezone
</div>

<BetaBadge />

Définit le fuseau horaire implicite de la session ou de la requête actuelle.
Le fuseau horaire implicite est celui appliqué aux valeurs de type DateTime/DateTime64 pour lesquelles aucun fuseau horaire n’est explicitement spécifié.
Ce paramètre a préséance sur le fuseau horaire implicite configuré globalement (au niveau du serveur).
Une valeur de '' (chaîne vide) signifie que le fuseau horaire implicite de la session ou de la requête actuelle est celui du [fuseau horaire du serveur](/docs/fr/reference/settings/server-settings/settings#timezone).

Vous pouvez utiliser les fonctions `timeZone()` et `serverTimeZone()` pour obtenir le fuseau horaire de la session et celui du serveur.

Valeurs possibles :

* N’importe quel nom de fuseau horaire de `system.time_zones`, par exemple `Europe/Berlin`, `UTC` ou `Zulu`

Exemples :

```sql theme={null}
SELECT timeZone(), serverTimeZone() FORMAT CSV

"Europe/Berlin","Europe/Berlin"
```

```sql theme={null}
SELECT timeZone(), serverTimeZone() SETTINGS session_timezone = 'Asia/Novosibirsk' FORMAT CSV

"Asia/Novosibirsk","Europe/Berlin"
```

Attribuez au DateTime interne le fuseau horaire de session 'America/Denver', sans fuseau horaire explicitement spécifié :

```sql theme={null}
SELECT toDateTime64(toDateTime64('1999-12-12 23:23:23.123', 3), 3, 'Europe/Zurich') SETTINGS session_timezone = 'America/Denver' FORMAT TSV

1999-12-13 07:23:23.123
```

<Warning>
  Toutes les fonctions qui analysent des valeurs DateTime/DateTime64 ne respectent pas `session_timezone`. Cela peut entraîner des erreurs subtiles.
  Voir l'exemple et l'explication ci-dessous.
</Warning>

```sql theme={null}
CREATE TABLE test_tz (`d` DateTime('UTC')) ENGINE = Memory AS SELECT toDateTime('2000-01-01 00:00:00', 'UTC');

SELECT *, timeZone() FROM test_tz WHERE d = toDateTime('2000-01-01 00:00:00') SETTINGS session_timezone = 'Asia/Novosibirsk'
0 rows in set.

SELECT *, timeZone() FROM test_tz WHERE d = '2000-01-01 00:00:00' SETTINGS session_timezone = 'Asia/Novosibirsk'
┌───────────────────d─┬─timeZone()───────┐
│ 2000-01-01 00:00:00 │ Asia/Novosibirsk │
└─────────────────────┴──────────────────┘
```

Cela s’explique par l’utilisation de chaînes d’analyse différentes :

* `toDateTime()` sans fuseau horaire explicitement indiqué, utilisé dans la première requête `SELECT`, respecte le paramètre `session_timezone` et le fuseau horaire global.
* Dans la deuxième requête, une valeur DateTime est analysée à partir d’une String et hérite du type et du fuseau horaire de la colonne existante `d`. Ainsi, le paramètre `session_timezone` et le fuseau horaire global ne sont pas pris en compte.

**Voir aussi**

* [timezone](/docs/fr/reference/settings/server-settings/settings#timezone)

<div id="set_overflow_mode">
  ## set\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Définit ce qui se produit lorsque la quantité de données dépasse l’une des limites.

Valeurs possibles :

* `throw` : lever une exception (par défaut).
* `break` : arrêter l’exécution de la requête et renvoyer le résultat partiel, comme si les
  données source étaient épuisées.

<div id="single_join_prefer_left_table">
  ## single\_join\_prefer\_left\_table
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Pour un seul JOIN, en cas d’ambiguïté d’identifiant, privilégier la table de gauche

<div id="skip_redundant_aliases_in_udf">
  ## skip\_redundant\_aliases\_in\_udf
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Lorsqu’elle est activée, cette option vous permet d’utiliser plusieurs fois la même fonction définie par l’utilisateur pour plusieurs colonnes matérialisées dans la même table."}]}]} />

Les alias redondants ne sont pas utilisés (substitués) dans les fonctions définies par l’utilisateur afin d’en simplifier l’utilisation.

Valeurs possibles :

* 1 — Les alias sont ignorés (substitués) dans les UDFs.
* 0 — Les alias ne sont pas ignorés (substitués) dans les UDFs.

**Exemple**

Différence entre l’état activé et désactivé :

Requête :

```sql theme={null}
SET skip_redundant_aliases_in_udf = 0;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

Résultat :

```text theme={null}
SELECT ((4 + 2) + 1 AS y, y + 2)
```

Requête :

```sql theme={null}
SET skip_redundant_aliases_in_udf = 1;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

Résultat :

```text theme={null}
SELECT ((4 + 2) + 1, ((4 + 2) + 1) + 2)
```

<div id="sleep_after_receiving_query_ms">
  ## sleep\_after\_receiving\_query\_ms
</div>

<SettingsInfoBlock type="Millisecondes" default_value="0" />

Durée d’attente après réception d’une requête dans TCPHandler

<div id="snappy_mode">
  ## snappy\_mode
</div>

<SettingsInfoBlock type="SnappyMode" default_value="basic" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "basic"},{"label": "Nouveau paramètre permettant de contrôler le format binaire de transmission utilisé pour la compression snappy dans les E/S génériques de fichier/URL. La valeur par défaut `basic` conserve la compatibilité de lecture avec le format de bloc Hadoop snappy ; HTTP `Content-Encoding: snappy` utilise toujours le format de tramage, indépendamment de ce paramètre."}]}]} />

Contrôle le format binaire de transmission utilisé pour la compression snappy sur les chemins d’E/S de fichiers génériques tels que `file` et `url`. HTTP `Content-Encoding: snappy` utilise toujours le format de tramage et ignore ce paramètre.

Notez que le format brut de bloc snappy produit par un seul appel à `snappy::Compress` (par exemple, les charges utiles du protocole distant Prometheus gérées par `SnappyBasicReadBuffer`) est un format binaire de transmission distinct, propre au protocole, et n’est pas contrôlé par ce paramètre.

Valeurs possibles :

* `basic` — format de bloc Hadoop snappy. Compatible avec les fichiers lus et écrits par Hadoop. Prend en charge la lecture et l’écriture.
* `framed` — format de tramage Snappy, le format de streaming standard défini par Google. Prend en charge la lecture et l’écriture.

<div id="sort_overflow_mode">
  ## sort\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Définit ce qui se produit si le nombre de lignes reçues avant le tri dépasse l'une des limites.

Valeurs possibles :

* `throw` : lever une exception.
* `break` : arrêter l'exécution de la requête et renvoyer un résultat partiel.

<div id="splitby_max_substrings_includes_remaining_string">
  ## splitby\_max\_substrings\_includes\_remaining\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Contrôle si la fonction [splitBy\*()](/docs/fr/reference/functions/regular-functions/splitting-merging-functions), avec l'argument `max_substrings` > 0, inclut la chaîne restante dans le dernier élément du tableau résultant.

Valeurs possibles :

* `0` - La chaîne restante ne sera pas incluse dans le dernier élément du tableau résultant.
* `1` - La chaîne restante sera incluse dans le dernier élément du tableau résultant. Il s'agit du comportement de la fonction [`split()`](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html) de Spark et de la méthode ['string.split()'](https://docs.python.org/3/library/stdtypes.html#str.split) de Python.

<div id="stop_refreshable_materialized_views_on_startup">
  ## stop\_refreshable\_materialized\_views\_on\_startup
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

Au démarrage du serveur, empêche la programmation des vues matérialisées actualisables, comme avec SYSTEM STOP VIEWS. Vous pouvez ensuite les démarrer manuellement avec `SYSTEM START VIEWS` ou `SYSTEM START VIEW <name>`. S’applique également aux vues nouvellement créées. N’a aucun effet sur les vues matérialisées non actualisables.

<div id="tcp_keep_alive_timeout">
  ## tcp\_keep\_alive\_timeout
</div>

<SettingsInfoBlock type="Secondes" default_value="290" />

Le temps, en secondes, pendant lequel la connexion doit rester inactive avant que TCP ne commence à envoyer des sondes keepalive

<div id="temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds">
  ## temporary\_data\_in\_cache\_reserve\_space\_wait\_lock\_timeout\_milliseconds
</div>

<SettingsInfoBlock type="UInt64" default_value="600000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "600000"},{"label": "Délai d'attente pour verrouiller le cache lors de la réservation d'espace pour les données temporaires dans le cache du système de fichiers"}]}]} />

Délai d'attente pour verrouiller le cache lors de la réservation d'espace pour les données temporaires dans le cache du système de fichiers

<div id="throw_if_no_data_to_insert">
  ## throw\_if\_no\_data\_to\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Autorise ou interdit les `INSERT` vides. Ce paramètre est activé par défaut (et déclenche une erreur en cas d'insert vide). S'applique uniquement aux `INSERT` effectués avec [`clickhouse-client`](/docs/fr/concepts/features/interfaces/cli) ou via l'[interface gRPC](/docs/fr/concepts/features/interfaces/grpc).

<div id="timeout_before_checking_execution_speed">
  ## timeout\_before\_checking\_execution\_speed
</div>

<SettingsInfoBlock type="Secondes" default_value="10" />

Vérifie que la vitesse d'exécution n'est pas trop faible (pas inférieure à `min_execution_speed`),
une fois le délai spécifié en secondes écoulé.

<div id="transfer_overflow_mode">
  ## transfer\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Détermine ce qui se passe lorsque la quantité de données dépasse l'une des limites.

Valeurs possibles :

* `throw` : lever une exception (par défaut).
* `break` : arrêter l'exécution de la requête et renvoyer un résultat partiel, comme si les
  données source étaient épuisées.

<div id="transform_null_in">
  ## transform\_null\_in
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Active l'égalité des valeurs [NULL](/docs/fr/reference/syntax#null) pour l'opérateur [IN](/docs/fr/reference/statements/in).

Par défaut, les valeurs `NULL` ne peuvent pas être comparées, car `NULL` désigne une valeur indéfinie. Ainsi, la comparaison `expr = NULL` doit toujours renvoyer `false`. Avec ce paramètre, `NULL = NULL` renvoie `true` pour l'opérateur `IN`.

Valeurs possibles :

* 0 — La comparaison des valeurs `NULL` avec l'opérateur `IN` renvoie `false`.
* 1 — La comparaison des valeurs `NULL` avec l'opérateur `IN` renvoie `true`.

**Exemple**

Considérez la table `null_in` :

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
│    3 │     3 │
└──────┴───────┘
```

Requête :

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 0;
```

Résultat :

```text theme={null}
┌──idx─┬────i─┐
│    1 │    1 │
└──────┴──────┘
```

Requête :

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1;
```

Résultat :

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
└──────┴───────┘
```

**Voir aussi**

* [Traitement de NULL dans les opérateurs IN](/docs/fr/reference/statements/in#null-processing)

<div id="traverse_shadow_remote_data_paths">
  ## traverse\_shadow\_remote\_data\_paths
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Parcourir le répertoire shadow lors de l'interrogation de system.remote_data_paths."}]}]} />

Parcourir les données gelées (répertoire shadow) en plus des données réelles de la table lors de l'interrogation de system.remote\_data\_paths

<div id="union_default_mode">
  ## union\_default\_mode
</div>

Définit un mode de combinaison des résultats des requêtes `SELECT`. Ce paramètre n'est utilisé que lorsqu'il est employé avec [UNION](/docs/fr/reference/statements/select/union) sans préciser explicitement `UNION ALL` ou `UNION DISTINCT`.

Valeurs possibles :

* `'DISTINCT'` — ClickHouse renvoie les lignes issues de la combinaison de requêtes en supprimant les lignes dupliquées.
* `'ALL'` — ClickHouse renvoie toutes les lignes issues de la combinaison de requêtes, y compris les lignes dupliquées.
* `''` — ClickHouse génère une exception lorsqu'il est utilisé avec `UNION`.

Voir des exemples dans [UNION](/docs/fr/reference/statements/select/union).

<div id="unique_key_max_encoded_size">
  ## unique\_key\_max\_encoded\_size
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="256" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "256"},{"label": "Nouveau paramètre : taille maximale (en octets) de l’encodage binaire d’une seule ligne `UNIQUE KEY` qui préserve l’ordre"}]}]} />

Taille maximale (en octets) de l’encodage binaire d’une seule ligne `UNIQUE KEY` qui préserve l’ordre.

<div id="unknown_packet_in_send_data">
  ## unknown\_packet\_in\_send\_data
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Envoyer un paquet inconnu à la place du n-ième paquet de données

<div id="variant_throw_on_type_mismatch">
  ## variant\_throw\_on\_type\_mismatch
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nouveau paramètre pour contrôler le comportement en cas d'incompatibilité de type dans l'implémentation par défaut de Variant"}]}]} />

Lorsqu'une fonction est appliquée à une colonne [Variant](/docs/fr/reference/data-types/variant) à l'aide de l'implémentation par défaut,
contrôle ce qui se passe pour les lignes dont le type réel est incompatible avec la fonction :

* `true` (par défaut) — lever une exception.
* `false` — renvoyer `NULL` pour ces lignes à la place.

<div id="wait_changes_become_visible_after_commit_mode">
  ## wait\_changes\_become\_visible\_after\_commit\_mode
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="TransactionsWaitCSNMode" default_value="wait_unknown" />

Attendre que les modifications validées deviennent réellement visibles dans le snapshot le plus récent

<div id="workload">
  ## workload
</div>

<SettingsInfoBlock type="String" default_value="default" />

Nom de la charge de travail à utiliser pour accéder aux ressources

<div id="write_full_path_in_iceberg_metadata">
  ## write\_full\_path\_in\_iceberg\_metadata
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nouveau paramètre."}]}]} />

Écrit les chemins complets (y compris s3://) dans les fichiers de métadonnées Iceberg.

<div id="zstd_window_log_max">
  ## zstd\_window\_log\_max
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

Permet de définir la taille maximale du journal de fenêtre de ZSTD (ne sera pas utilisé pour la famille MergeTree)
