> ## 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 external_table_*

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

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

## external\_table\_functions\_use\_nulls

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

Définit comment les fonctions de table [mysql](/fr/reference/functions/table-functions/mysql), [postgresql](/fr/reference/functions/table-functions/postgresql) et [odbc](/fr/reference/functions/table-functions/odbc) utilisent des colonnes Nullable.

Valeurs possibles :

* 0 — La fonction de table utilise explicitement des colonnes Nullable.
* 1 — La fonction de table utilise implicitement des colonnes Nullable.

**Utilisation**

Si ce paramètre est défini sur `0`, la fonction de table n'utilise pas de colonnes Nullable et insère des valeurs par défaut à la place de NULL. Cela s'applique également aux valeurs NULL à l'intérieur des tableaux.

## external\_table\_strict\_query

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

S'il est défini à true, un filtre portant sur les colonnes d'une external table (`MySQL`, `PostgreSQL`, `SQLite`, `ODBC`, `JDBC`) qui ne peut pas être pushed down vers l'external database est rejeté avec une exception au lieu d'être appliqué localement après la récupération des données.

La vérification couvre le predicate `WHERE` de premier niveau ainsi que chaque conjonction d'un `AND` de premier niveau. Un `PREWHERE` sur les colonnes de l'external table ne relève pas de ce paramètre : ces table engines ne prennent pas en charge `PREWHERE`, et une telle query est rejetée avec `ILLEGAL_PREWHERE`, quelle que soit la valeur du paramètre. La vérification n'a lieu que là où un filtre peut effectivement être pushed down : lorsque l'external table est la seule table de la query, de part et d'autre d'un `INNER JOIN`, ou du côté préservé d'un outer join (le côté gauche d'un `LEFT JOIN`, le côté droit d'un `RIGHT JOIN`). Du côté non préservé d'un `LEFT`/`RIGHT JOIN` et de part et d'autre d'un `FULL JOIN`, rien n'est pushed down et rien n'est vérifié : un filtre sur les colonnes de l'external table est donc appliqué localement après le join, même en mode strict. Là où la vérification a lieu, un predicate qui référence d'autres tables jointes dans la query environnante n'est pas pushed down et se trouve exclu de la vérification, qu'il référence uniquement le côté joint (par exemple `WHERE r.flag`) ou qu'il le combine avec l'external table au sein d'une même expression non-`AND` (par exemple `WHERE l.id = 1 OR r.flag`) ; un tel predicate conserve son point d'évaluation ClickHouse habituel (`WHERE` après le join, `PREWHERE` avant) et n'est pas rejeté.
