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

# paramètres de session allow_*

> Paramètres de session ClickHouse du groupe généré allow_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Version", "Valeur par défaut", "Commentaire"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Historique des versions
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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 BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Beta</span>
            </a>;
  }
  return <a href="/docs/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Fonctionnalité en bêta</span>
        </a>;
};

export const ExperimentalBadge = () => {
  return <a href="/docs/beta-and-experimental-features#experimental-features" 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
        </a>;
};

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

<div id="allow_aggregate_partitions_independently">
  ## allow\_aggregate\_partitions\_independently
</div>

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

Active l’agrégation indépendante des partitions sur des threads séparés lorsque la clé de partitionnement est adaptée à la clé GROUP BY. Cela est utile lorsque le nombre de partitions est proche du nombre de cœurs et que les partitions ont à peu près la même taille. Les heuristiques de `ReadFromMergeTree` désactivent automatiquement l’optimisation pour les organisations défavorables (trop peu de partitions, trop de partitions ou des tailles de partition fortement déséquilibrées) ; consultez `force_aggregate_partitions_independently` pour contourner ces vérifications.

<div id="allow_archive_path_syntax">
  ## allow\_archive\_path\_syntax
</div>

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

Les moteurs File/S3 et la fonction de table analyseront les chemins contenant '::' comme `<archive> :: <file>` si l'archive a l'extension appropriée.

<div id="allow_asynchronous_read_from_io_pool_for_merge_tree">
  ## allow\_asynchronous\_read\_from\_io\_pool\_for\_merge\_tree
</div>

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

Utilise le pool d’E/S d’arrière-plan pour lire les tables MergeTree. Ce paramètre peut améliorer les performances des requêtes limitées par les E/S.

<div id="allow_calculating_subcolumns_sizes_for_merge_tree_reading">
  ## allow\_calculating\_subcolumns\_sizes\_for\_merge\_tree\_reading
</div>

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

Lorsqu’il est activé, ClickHouse calcule la taille des fichiers nécessaires à la lecture de chaque sous-colonne afin de mieux dimensionner les tâches et les blocs.

<div id="allow_changing_replica_until_first_data_packet">
  ## allow\_changing\_replica\_until\_first\_data\_packet
</div>

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

Si ce paramètre est activé, dans les requêtes hedged, nous pouvons établir une nouvelle connexion jusqu'à la réception du premier paquet de données, même si un certain progrès a déjà été réalisé
(mais que la progression n'a pas été mise à jour pendant le délai d'expiration `receive_data_timeout`) ; sinon, nous désactivons le changement de réplique dès qu'un premier progrès a été réalisé.

<div id="allow_create_index_without_type">
  ## allow\_create\_index\_without\_type
</div>

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

Autorise les requêtes CREATE INDEX sans TYPE. La requête est alors ignorée. Prévu pour les tests de compatibilité SQL.

<div id="allow_custom_error_code_in_throwif">
  ## allow\_custom\_error\_code\_in\_throwif
</div>

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

Active l’utilisation d’un code d’erreur personnalisé dans la fonction throwIf(). Si true, les exceptions levées peuvent avoir des codes d’erreur inattendus.

<div id="allow_ddl">
  ## allow\_ddl
</div>

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

S'il est défini sur true, l'utilisateur est autorisé à exécuter des requêtes DDL.

<div id="allow_distributed_ddl">
  ## allow\_distributed\_ddl
</div>

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

Si ce paramètre est défini sur true, l'utilisateur est autorisé à exécuter des requêtes DDL distribuées.

<div id="allow_drop_detached">
  ## allow\_drop\_detached
</div>

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

Autorise les requêtes ALTER TABLE ... DROP DETACHED PART\[ITION] ...

<div id="allow_dynamic_type_in_join_keys">
  ## allow\_dynamic\_type\_in\_join\_keys
</div>

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

Autorise l'utilisation du type Dynamic dans les clés de JOIN. Ajouté pour des raisons de compatibilité. Il n'est pas recommandé d'utiliser le type Dynamic dans les clés de JOIN, car les comparaisons avec d'autres types peuvent produire des résultats inattendus.

<div id="allow_execute_multiif_columnar">
  ## allow\_execute\_multiif\_columnar
</div>

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

Autorise l’exécution de la fonction multiIf en mode colonnaire

<div id="allow_fuzz_query_functions">
  ## allow\_fuzz\_query\_functions
</div>

<ExperimentalBadge />

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

Active la fonction `fuzzQuery`, qui applique des mutations aléatoires de l'AST à une chaîne de requête.

<div id="allow_general_join_planning">
  ## allow\_general\_join\_planning
</div>

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

Autorise un algorithme de planification des jointures plus générique, capable de gérer des conditions plus complexes, mais qui fonctionne uniquement avec le hash join. Si le hash join n’est pas activé, l’algorithme habituel de planification des jointures est utilisé, quelle que soit la valeur de ce paramètre.

<div id="allow_get_client_http_header">
  ## allow\_get\_client\_http\_header
</div>

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

Permet d'utiliser la fonction `getClientHTTPHeader`, qui permet d'obtenir la valeur d'un en-tête de la requête HTTP en cours. Elle n'est pas activée par défaut pour des raisons de sécurité, car certains en-têtes, comme `Cookie`, peuvent contenir des informations sensibles. Notez que les en-têtes `X-ClickHouse-*`, `Authentication` et `Authorization` sont toujours restreints et ne peuvent pas être obtenus avec cette fonction.

<div id="allow_hyperscan">
  ## allow\_hyperscan
</div>

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

Autorise les fonctions qui utilisent la bibliothèque Hyperscan. Désactivez-la pour éviter des temps de compilation potentiellement longs et une consommation excessive de ressources.

<div id="allow_iceberg_remove_orphan_files">
  ## allow\_iceberg\_remove\_orphan\_files
</div>

<ExperimentalBadge />

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

Permet d’utiliser `ALTER TABLE ... EXECUTE remove_orphan_files()` pour les tables Iceberg.

<div id="allow_insert_into_iceberg">
  ## allow\_insert\_into\_iceberg
</div>

<BetaBadge />

**Alias** : `allow_experimental_insert_into_iceberg`

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

Permet d’exécuter des requêtes `insert` dans Iceberg.

<div id="allow_introspection_functions">
  ## allow\_introspection\_functions
</div>

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

Active ou désactive les [fonctions d'introspection](/fr/reference/functions/regular-functions/introspection) pour le profilage des requêtes.

Valeurs possibles :

* 1 — Fonctions d'introspection activées.
* 0 — Fonctions d'introspection désactivées.

**Voir aussi**

* [Profileur de requêtes par échantillonnage](/fr/concepts/features/performance/troubleshoot/sampling-query-profiler)
* Table système [trace\_log](/fr/reference/system-tables/trace_log)

<div id="allow_key_condition_coalesce_rewrite">
  ## allow\_key\_condition\_coalesce\_rewrite
</div>

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

Permet à la clé primaire MergeTree et aux skip indexes d’exclure des granules pour les prédicats `WHERE`/`PREWHERE` qui utilisent `coalesce` ou `ifNull`. Sans ce paramètre, ces prédicats sont opaques pour l’analyse des index et ne permettent pas d’exclure de granules, de sorte que des granules qui ne peuvent pas correspondre sont quand même lus. Cela n’affecte que les granules lus ; le résultat de la requête reste inchangé, car les lignes sont toujours filtrées par le prédicat d’origine.

Deux formes de prédicats sont réécrites avant l’analyse des index :

* Une comparaison avec `coalesce`/`ifNull`, telle que `coalesce(a, b) = 5`, devient une disjonction afin qu’un index sur chaque argument puisse exclure des granules : `a = 5 OR (a IS NULL AND b = 5)`, avec extension à davantage d’arguments.
* Un `coalesce`/`ifNull` avec une constante par défaut falsy (zéro) utilisée directement comme condition, telle que `ifNull(a = 5, 0)` ou `coalesce(a = 5, 0)`, est ramené à son prédicat interne `a = 5`. De tels wrappers ramènent le résultat ternaire du prédicat interne à un booléen déterminé (en faisant correspondre `NULL` à `false`).

<div id="allow_limit_by_partitions_independently">
  ## allow\_limit\_by\_partitions\_independently
</div>

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

Active l’évaluation indépendante de `LIMIT BY` pour chaque partition sur des threads séparés lorsque l’expression de partition est une fonction déterministe des colonnes de `LIMIT BY`.

<div id="allow_materialized_view_with_bad_select">
  ## allow\_materialized\_view\_with\_bad\_select
</div>

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

Autorise CREATE MATERIALIZED VIEW avec une requête SELECT faisant référence à des tables ou colonnes inexistantes. Elle doit toutefois rester syntaxiquement valide. Ne s'applique pas aux MV actualisables. Ne s'applique pas non plus si le schéma de la MV doit être inféré à partir de la requête SELECT (c.-à-d. si le CREATE ne comporte ni liste de colonnes ni table TO). Peut être utilisé pour créer une MV avant sa table source.

<div id="allow_minmax_index_for_json">
  ## allow\_minmax\_index\_for\_json
</div>

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

Autorise la création d’index de saut minmax sur les colonnes JSON (Object). Désactivé par défaut, car le mécanisme de sérialisation de l’index minmax ne peut pas prendre en charge les valeurs de Field hétérogènes que peuvent contenir les colonnes JSON.

<div id="allow_named_collection_override_by_default">
  ## allow\_named\_collection\_override\_by\_default
</div>

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

Autorise par défaut la surcharge des champs des collections nommées.

<div id="allow_non_metadata_alters">
  ## allow\_non\_metadata\_alters
</div>

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

Permet d’exécuter des opérations ALTER qui affectent non seulement les métadonnées des tables, mais aussi les données sur le disque

<div id="allow_nonconst_timezone_arguments">
  ## allow\_nonconst\_timezone\_arguments
</div>

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

Autorise des arguments de fuseau horaire non constants dans certaines fonctions liées au temps, comme toTimeZone(), fromUnixTimestamp\*() et snowflakeIDToDateTime\*().
Ce paramètre existe uniquement pour des raisons de compatibilité. Dans ClickHouse, le fuseau horaire est une propriété du type de données, ou plus précisément de la colonne.
L'activation de ce paramètre donne à tort l'impression que différentes valeurs d'une même colonne peuvent avoir des fuseaux horaires différents.
Par conséquent, veuillez ne pas activer ce paramètre.

<div id="allow_nullable_tuple_in_extracted_subcolumns">
  ## allow\_nullable\_tuple\_in\_extracted\_subcolumns
</div>

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

Détermine si les sous-colonnes extraites de type `Tuple(...)` peuvent être typées comme `Nullable(Tuple(...))`.

* `false` : renvoie `Tuple(...)` et utilise les valeurs de tuple par défaut pour les lignes où la sous-colonne est absente.
* `true` : renvoie `Nullable(Tuple(...))` et utilise `NULL` pour les lignes où la sous-colonne est absente.

Ce paramètre contrôle uniquement le comportement des sous-colonnes extraites.
Il ne détermine pas si des colonnes `Nullable(Tuple(...))` peuvent être créées dans des tables ; cela est contrôlé par `enable_nullable_tuple_type`.

ClickHouse utilise la valeur de ce paramètre chargée au démarrage du serveur.
Les modifications effectuées avec `SET` ou la clause `SETTINGS` au niveau de la requête ne changent pas le comportement des sous-colonnes extraites.
Pour modifier le comportement des sous-colonnes extraites, mettez à jour `allow_nullable_tuple_in_extracted_subcolumns` dans la configuration du profil de démarrage (par exemple, users.xml) et redémarrez le serveur.

<div id="allow_rank_dense_rank_arguments">
  ## allow\_rank\_dense\_rank\_arguments
</div>

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

Autorise le passage d'arguments aux fonctions de fenêtre `RANK` et `DENSE_RANK` pour assurer la rétrocompatibilité.

Selon la norme SQL, `RANK` et `DENSE_RANK` ne prennent aucun argument — elles classent les lignes uniquement en fonction de la fenêtre
`OVER (ORDER BY ...)`. Dans les versions de ClickHouse antérieures à la 26.5, des requêtes telles que
`RANK(x) OVER (...)` acceptaient et ignoraient silencieusement l'argument, ce qui prêtait à confusion
(l'argument visible laissait penser qu'il influençait le classement, mais ce n'était pas le cas).

Lorsque ce paramètre est `false` (valeur par défaut), `RANK` et `DENSE_RANK` rejettent tout argument et
renvoient `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`. Lorsqu'il est défini sur `true`, le comportement permissif legacy est
rétabli — les arguments sont silencieusement ignorés, comme avant la version 26.5.

<div id="allow_reorder_prewhere_conditions">
  ## allow\_reorder\_prewhere\_conditions
</div>

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

Lors du déplacement des conditions de WHERE vers PREWHERE, autoriser leur réordonnancement afin d’optimiser le filtrage

<div id="allow_replace_partition_from_empty_source">
  ## allow\_replace\_partition\_from\_empty\_source
</div>

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

Autorise `ALTER TABLE ... REPLACE PARTITION ... FROM ...` à supprimer silencieusement la partition de destination lorsque la source n’a aucune part dans cette partition.

Par défaut, ce n’est pas autorisé : un `REPLACE PARTITION` à partir d’une source qui ne contient aucune donnée dans la partition demandée lève une exception, car dans ce cas l’opération revient en pratique à un `DROP PARTITION` silencieux sur la destination (les données de destination sont supprimées et rien ne les remplace), ce qui est une cause fréquente de perte accidentelle de données (voir [#23727](https://github.com/ClickHouse/ClickHouse/issues/23727)).

Activez ce paramètre pour rétablir le comportement précédent, par exemple si vous utilisez volontairement une partition source vide pour effacer les données de destination. Pour une suppression inconditionnelle, préférez `ALTER TABLE ... DROP PARTITION ...`.

<div id="allow_settings_after_format_in_insert">
  ## allow\_settings\_after\_format\_in\_insert
</div>

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

Détermine si `SETTINGS` après `FORMAT` dans les requêtes `INSERT` est autorisé ou non. Il n'est pas recommandé d'utiliser ce paramètre, car une partie de `SETTINGS` peut être interprétée comme des valeurs.

Exemple :

```sql theme={null}
INSERT INTO FUNCTION null('foo String') SETTINGS max_threads=1 VALUES ('bar');
```

Mais la requête suivante ne fonctionne qu'avec `allow_settings_after_format_in_insert` :

```sql theme={null}
SET allow_settings_after_format_in_insert=1;
INSERT INTO FUNCTION null('foo String') VALUES ('bar') SETTINGS max_threads=1;
```

Valeurs possibles :

* 0 — Interdire.
* 1 — Autoriser.

<Note>
  Utilisez ce paramètre uniquement à des fins de rétrocompatibilité si vos cas d’usage dépendent de l’ancienne syntaxe.
</Note>

<div id="allow_simdjson">
  ## allow\_simdjson
</div>

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

Permet d'utiliser la bibliothèque simdjson dans les fonctions 'JSON\*' si les instructions AVX2 sont disponibles. Si cette option est désactivée, rapidjson sera utilisé.

<div id="allow_special_serialization_kinds_in_output_formats">
  ## allow\_special\_serialization\_kinds\_in\_output\_formats
</div>

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

Permet de produire des colonnes avec des types de sérialisation spéciaux comme Sparse et Replicated sans les convertir en représentation complète de colonne.
Cela permet d’éviter des copies de données inutiles lors de la mise en forme.

<div id="allow_unrestricted_reads_from_keeper">
  ## allow\_unrestricted\_reads\_from\_keeper
</div>

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

Autorise les lectures sans restriction (sans condition sur le path) depuis la table system.zookeeper ; cela peut être pratique, mais n'est pas sans risque pour ZooKeeper
