> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# paramètres de session validate_*

> Paramètres de session de ClickHouse dans le groupe généré validate_*.

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>;
};

Ces paramètres sont disponibles dans [system.settings](/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).

## validate\_enum\_literals\_in\_operators

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

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

Si cette option est activée, les littéraux enum utilisés dans des opérateurs tels que `IN`, `NOT IN`, `==` et `!=` sont validés par rapport au type enum, et une exception est levée si le littéral n’est pas une valeur enum valide.

## validate\_group\_by\_all\_key\_types

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "1"},{"label": "La validation des types de clés issus du développement des expressions `SELECT` par `GROUP BY ALL` est maintenue sous `compatibility` avec les versions 26.7 ou 26.8 : la valeur précédente est délibérément identique à la nouvelle, car ces versions rejetaient déjà une telle clé et seule une version antérieure à 26.7 rétablit l'acceptation antérieure."}]}, {"id": "row-2","items": [{"label": "26.7"},{"label": "1"},{"label": "Nouveau paramètre contrôlant la validation des types de clés issus du développement des expressions `SELECT` par `GROUP BY ALL`. La version 26.7 a commencé à rejeter une clé `Variant`\/`Dynamic` dans ce cas, alors que les versions antérieures l'acceptaient lorsque l'analyseur était activé (`enable_analyzer = 1`, valeur par défaut ; l'ancien analyseur rejetait également une telle clé avant la version 26.7). La valeur précédente est donc `false` et `compatibility` avec une version antérieure à 26.7 rétablit l'acceptation antérieure."}]}]} />

Contrôle si les clés de regroupement issues du développement des expressions `SELECT` par `GROUP BY ALL` sont vérifiées selon [allow\_suspicious\_types\_in\_group\_by](/fr/reference/settings/session-settings/allow-suspicious#allow_suspicious_types_in_group_by). Désactivez-le pour rétablir le comportement des versions antérieures à 26.7, qui acceptaient une clé [Variant](/fr/reference/data-types/variant) ou [Dynamic](/fr/reference/data-types/dynamic) utilisée avec `GROUP BY ALL`, par exemple une clé de regroupement correspondant à un sous-chemin JSON non typé. Ne prend effet que lorsque l'analyseur est activé (`enable_analyzer = 1`, valeur par défaut) ; avec l'ancien analyseur, une telle clé était déjà rejetée avant la version 26.7, il n'y a donc rien à rétablir. Un `GROUP BY` explicite n'est pas concerné et continue de rejeter une telle clé dans tous les cas. Cette option est donc plus restrictive que le paramètre `allow_suspicious_types_in_group_by`, qui les autorise également dans un `GROUP BY` explicite.

Valeurs possibles :

* 0 - Les types de clés issus du développement des expressions par `GROUP BY ALL` ne sont pas validés.
* 1 - Ils sont validés, comme le sont les propres clés d'un `GROUP BY` explicite.

## validate\_mutation\_query

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nouveau paramètre qui valide les requêtes de mutation par défaut."}]}]} />

Valider les requêtes de mutation avant de les accepter. Les mutations sont exécutées en arrière-plan, et l'exécution d'une requête invalide peut entraîner leur blocage, nécessitant une intervention manuelle.

Ne modifiez ce paramètre que si vous rencontrez un bogue non rétrocompatible.

## validate\_polygons

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.4"},{"label": "1"},{"label": "Lever une exception si le polygone est invalide dans la fonction pointInPolygon par défaut, au lieu de renvoyer des résultats potentiellement erronés"}]}]} />

Active ou désactive le déclenchement d'une exception dans la fonction [pointInPolygon](/fr/reference/functions/regular-functions/geo/coordinates#pointinpolygon) si le polygone est auto-intersecté ou présente une tangence à lui-même.

Valeurs possibles :

* 0 — Le déclenchement d'une exception est désactivé. `pointInPolygon` accepte les polygones invalides et peut renvoyer des résultats incorrects.
* 1 — Le déclenchement d'une exception est activé.
