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

# Otras configuraciones de sesión

> Configuraciones de sesión de ClickHouse incluidas en el grupo generado Otras.

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
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Predeterminado</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modificable sin reiniciar
        </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>
            {'Solo para 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>
                Funcionalidad beta. 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        Más información.
                    </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>
            Funcionalidad experimental. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">Más información.</a></u>
        </div>;
};

Estos ajustes están disponibles en [system.settings](/docs/es/reference/system-tables/settings) y se generan automáticamente a partir del [código fuente](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" />

Escribe el encabezado HTTP CORS adicional.

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

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

Si una tabla tiene una curva de llenado de espacio en su índice, por ejemplo, `ORDER BY mortonEncode(x, y)` o `ORDER BY hilbertEncode(x, y)`, y la consulta tiene condiciones sobre sus argumentos, por ejemplo, `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, use la curva de llenado de espacio para el análisis de índices.

<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": "Nueva configuración"}]}]} />

Cuando está habilitada, el analizador reemplaza las vistas ordinarias (no materializadas y no parametrizadas) por las subconsultas que las definen, lo que permite optimizaciones entre límites como el pushdown de predicados y la poda de columnas.

<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": "Desactiva ANY RIGHT y ANY FULL JOIN de forma predeterminada para evitar inconsistencias"}]}]} />

Habilita el comportamiento heredado del servidor ClickHouse en las operaciones `ANY INNER|LEFT JOIN`.

<Note>
  Use esta configuración solo por compatibilidad con versiones anteriores si sus casos de uso dependen del comportamiento heredado de `JOIN`.
</Note>

Cuando el comportamiento heredado está habilitado:

* Los resultados de las operaciones `t1 ANY LEFT JOIN t2` y `t2 ANY RIGHT JOIN t1` no son iguales porque ClickHouse usa una lógica de asociación de claves entre tablas de muchas a una, de izquierda a derecha.
* Los resultados de las operaciones `ANY INNER JOIN` contienen todas las filas de la tabla izquierda, como ocurre con las operaciones `SEMI LEFT JOIN`.

Cuando el comportamiento heredado está deshabilitado:

* Los resultados de las operaciones `t1 ANY LEFT JOIN t2` y `t2 ANY RIGHT JOIN t1` son iguales porque ClickHouse usa una lógica que proporciona una asociación de claves de una a muchas en las operaciones `ANY RIGHT JOIN`.
* Los resultados de las operaciones `ANY INNER JOIN` contienen una fila por clave de las tablas izquierda y derecha.

Valores posibles:

* 0 — El comportamiento heredado está deshabilitado.
* 1 — El comportamiento heredado está habilitado.

Véase también:

* [JOIN strictness](/docs/es/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": "configuración"}]}]} />

Limita el tamaño máximo del búfer adaptativo utilizado al escribir en archivos contenedores (por ejemplo, archivos 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": "Nueva configuración. Tipo de descriptor que se usará para las solicitudes de Arrow Flight: 'path' o 'command'. Dremio requiere 'command'."}]}]} />

Tipo de descriptor que se usará para las solicitudes de Arrow Flight. 'path' envía el nombre del conjunto de datos como descriptor PATH. 'command' envía una consulta SQL como descriptor de comando (obligatorio para Dremio).

Posibles valores:

* 'path' — Usa FlightDescriptor::Path (predeterminado; funciona con la mayoría de los servidores Arrow Flight)
* 'command' — Usa FlightDescriptor::Command con una consulta SELECT (obligatorio para 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": "Nueva configuración"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "0"},{"label": "Nueva configuración"}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "Configuración deshabilitada de forma predeterminada"}]}]} />

Cuando se establece en `true`, todos los hilos que ejecutan solicitudes S3 al mismo endpoint de copia de seguridad se ralentizan
después de que una sola solicitud S3 encuentre un error de S3 reintentable, como 'Slow Down'.
Cuando se establece en `false`, cada hilo gestiona el backoff de las solicitudes S3 de forma independiente de los demás.

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

<CloudOnlyBadge />

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

Solo tiene efecto en ClickHouse Cloud. Número de hilos en segundo plano para descargar de forma especulativa nuevas partes de datos a la caché del sistema de archivos cuando [cache\_populated\_by\_fetch](/docs/es/reference/settings/merge-tree-settings#cache_populated_by_fetch) está habilitado. Cero para deshabilitarlo.

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

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

Calcula la traza de pila textual en caso de excepciones durante la ejecución de consultas. Este es el valor predeterminado. Requiere búsquedas de símbolos que pueden ralentizar las pruebas de fuzzing cuando se ejecuta una gran cantidad de consultas erróneas. En condiciones normales, no debería desactivar esta opción.

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

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

Cancela las consultas HTTP de solo lectura (por ejemplo, `SELECT`) cuando un cliente cierra la conexión sin esperar la respuesta.

Valor predeterminado en Cloud: `1`.

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

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

Valida las sumas de comprobación al leer. Está habilitada de forma predeterminada y siempre debe estarlo en producción. No espere obtener ningún beneficio por deshabilitar este ajuste. Solo debería usarse para experimentos y benchmarks. Este ajuste solo se aplica a tablas de la familia MergeTree. Las sumas de comprobación siempre se validan en otros motores de tabla y al recibir datos a través de la red.

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

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

El tiempo de espera en milisegundos de una conexión cuando el grupo de conexiones está lleno.

Valores posibles:

* Entero positivo.
* 0 — tiempo de espera infinito.

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

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

El número máximo de intentos de conexión con cada réplica para el motor de tabla Distributed.

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

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

Cuando se establece en `true`, una consulta `SELECT` se convierte a la forma normal conjuntiva (CNF). En algunos casos, reescribir una consulta en CNF puede ejecutarse más rápido (consulta este [Github issue](https://github.com/ClickHouse/ClickHouse/issues/11749) para obtener una explicación).

Por ejemplo, observa cómo la siguiente consulta `SELECT` no se modifica (este es el comportamiento predeterminado):

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

El resultado es:

```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                              │
└────────────────────────────────────────────────────────────────┘
```

Establezcamos `convert_query_to_cnf` en `true` y veamos qué cambia:

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

Observa que la cláusula `WHERE` se reescribe en CNF, pero el conjunto de resultados sigue siendo idéntico: la lógica booleana no cambia.

```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                                                                                     │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Valores posibles: 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": "configuración."}]}]} />

Deja de contar cuando un patrón tenga una coincidencia de longitud cero en la función `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": "Forzar la reescritura de los joins con coma a inner join"}]}]} />

Usa inner join en lugar de comma join/cross join si hay expresiones de join en la sección WHERE. Valores: 0 - sin reescritura, 1 - aplicar si es posible para comma/cross, 2 - forzar la reescritura de todos los joins con coma, cross - si es posible

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

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

Permite que los tipos de datos sin modificadores explícitos [NULL o NOT NULL](/docs/es/reference/statements/create/table#null-or-not-null-modifiers) en la definición de columnas sean [Nullable](/docs/es/reference/data-types/nullable).

Valores posibles:

* 1 — Los tipos de datos en las definiciones de columnas se establecen como `Nullable` de forma predeterminada.
* 0 — Los tipos de datos en las definiciones de columnas se establecen como no `Nullable` de forma predeterminada.

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

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

Comprueba el desbordamiento en las operaciones aritméticas y de comparación de Decimal

<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": "Habilita de forma predeterminada la deduplicación para las vistas materializadas dependientes."}]}]} />

Habilita o deshabilita la comprobación de deduplicación para las vistas materializadas que reciben datos de tablas Replicated\*.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

Cuando está habilitado, ClickHouse realiza la deduplicación de bloques en las vistas materializadas que dependen de tablas Replicated\*.
Esta configuración es útil para garantizar que las vistas materializadas no contengan datos duplicados cuando se reintenta la operación de inserción debido a un fallo.

**Véase también**

* [Procesamiento de NULL en los operadores IN](/docs/es/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": "Configuración añadida en la versión 26.5 para controlar el comportamiento de poda de particiones de FINAL, incorporado de forma silenciosa en la 26.3 (https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242). El cambio semántico relevante se registra en el bloque de la 26.3 para que `compatibility = '26.2'` lo revierta; esta entrada existe para que la comprobación de actualización desde la 26.4 acepte el nombre recién introducido."}]}, {"id": "row-2","items": [{"label": "26.3"},{"label": "1"},{"label": "Controla la omisión incondicional, por parte del planner de FINAL, de la poda de particiones cuando la columna de la clave de partición no está en la clave de ordenación. El cambio de comportamiento en sí se incorporó de forma silenciosa en la 26.3 mediante https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242; esta entrada lo documenta de forma retroactiva para que `compatibility = '26.2'` restaure el comportamiento anterior a la regresión (0 = podar antes de FINAL, rápido; 1 = aplazar la poda, seguro desde el punto de vista de la corrección)."}]}]} />

Cuando está habilitada (valor predeterminado), se omite la poda de particiones en consultas `FINAL` sobre tablas cuyas
columnas de la clave de partición no forman parte de la clave de ordenación. Este es el comportamiento seguro desde el punto de vista de la corrección
introducido en la 26.3: `FINAL` puede necesitar deduplicar filas que comparten una clave primaria pero están
en distintas particiones, y la poda de particiones excluiría silenciosamente esas filas del
conjunto de entrada para la deduplicación.

Cuando está deshabilitada, la poda de particiones se aplica incluso con `FINAL`, restaurando el comportamiento
anterior a la 26.3. Esto puede ser bastante más rápido para consultas con predicados `WHERE` sobre la
columna de partición, pero solo es correcto cuando no pueden existir filas con la misma clave primaria
en distintas particiones; por ejemplo, en tablas de registro de eventos cuya columna de partición se establece en el momento de la inserción
y nunca cambia.

Esta configuración solo afecta a las tablas particionadas cuyas columnas de la clave de partición no están incluidas
en la clave de ordenación; en las demás tablas, la poda de particiones siempre se aplica.

Posibles valores:

* 0 — Aplicar la poda de particiones antes de `FINAL` (comportamiento anterior a la 26.3, más rápido pero inseguro en el caso general).
* 1 — Aplazar la poda de particiones hasta después de `FINAL` (valor predeterminado, seguro desde el punto de vista de la corrección).

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

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

Si es true, incluye solo los nombres de las columnas y los tipos en el resultado de la consulta DESCRIBE

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

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

Qué dialecto se utilizará para interpretar la consulta

<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": "Nueva configuración para omitir el envío al cliente de las filas del resultado de la consulta a través del protocolo TCP nativo."}]}]} />

Si está habilitado, el servidor omite enviar al cliente las filas del resultado de la consulta. La consulta se sigue ejecutando y registrando por completo en el servidor, y el cliente sigue recibiendo los paquetes restantes.

Se usa para shadow traffic, benchmark y fuzzing.

No tiene efecto en las consultas secundarias.

Afecta solo al protocolo TCP nativo.

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

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

Establece lo que sucede cuando la cantidad de datos supera uno de los límites.

Valores posibles:

* `throw`: lanzar una excepción (predeterminado).
* `break`: detener la ejecución de la consulta y devolver el resultado parcial, como si los
  datos de origen se hubieran agotado.

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

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

Mejora las consultas FINAL al evitar las fusiones entre distintas particiones.

Cuando está habilitado, durante las consultas SELECT FINAL, las partes de distintas particiones no se fusionarán entre sí. En su lugar, la fusión solo se producirá por separado dentro de cada partición. Esto puede mejorar significativamente el rendimiento de las consultas al trabajar con tablas particionadas.

<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": "Nueva configuración para controlar el comportamiento ante incompatibilidades de tipo en la implementación predeterminada de Dynamic"}]}]} />

Al aplicar una función a una columna [Dynamic](/docs/es/reference/data-types/dynamic) mediante la implementación predeterminada,
controla qué ocurre con las filas cuyo tipo real es incompatible con la función:

* `true` (predeterminado) — lanzar una excepción.
* `false` — devolver `NULL` para esas filas.

<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": "Nueva configuración."}]}]} />

Si está habilitado, solo se permiten identificadores que contengan caracteres alfanuméricos y guiones bajos.

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

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

Activa o desactiva la omisión de archivos vacíos en las tablas con motor [URL](/docs/es/reference/engines/table-engines/special/url).

Valores posibles:

* 0 — `SELECT` genera una excepción si el archivo vacío no es compatible con el formato solicitado.
* 1 — `SELECT` devuelve un resultado vacío cuando el archivo está vacío.

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

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

Cuando está habilitada, ClickHouse proporcionará el valor exacto de la estadística rows\_before\_limit\_at\_least, pero a costa de que los datos anteriores al límite deban leerse por completo

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

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

Establece el modo predeterminado en la consulta EXCEPT. Posibles valores: cadena vacía, 'ALL', 'DISTINCT'. Si está vacío, una consulta sin modo lanzará una excepción.

<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": "Nueva configuración."}]}]} />

Excluye los índices de omisión especificados para que no se construyan ni se almacenen durante las operaciones INSERT. Los índices de omisión excluidos seguirán construyéndose y almacenándose [durante las fusiones](/docs/es/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) o mediante una
consulta [MATERIALIZE INDEX](/docs/es/reference/statements/alter/skipping-index#materialize-index) explícita.

No tiene efecto si [materialize\_skip\_indexes\_on\_insert](/docs/es/reference/settings/session-settings/materialize#materialize_skip_indexes_on_insert) es false.

Ejemplo:

```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": "configuración"}]}]} />

Ejecuta subconsultas EXISTS no correlacionadas como subconsultas escalares. Al igual que con las subconsultas escalares, se utiliza la caché y el plegado de constantes se aplica al resultado.

Valor predeterminado en 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": "A partir de la versión 26.7, `EXPLAIN PLAN` usa por defecto `actions=1, compact=1, pretty=1`. Establece este valor en `legacy` para restaurar la salida anterior a la versión 26.7."}]}]} />

Formato predeterminado que usa `EXPLAIN PLAN`.

Posibles valores:

* `pretty` (predeterminado desde la versión 26.7) — `actions`, `compact` y `pretty` toman `true` por defecto, lo que genera un plan compacto, Pretty y anotado con acciones.
* `legacy` — salida anterior a la versión 26.7.

Si especificas explícitamente las opciones `actions`, `compact` o `pretty` en la sentencia `EXPLAIN` (por ejemplo, `EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...`), esta configuración siempre se sobrescribe.

`EXPLAIN PLAN` con `json = 1` o `distributed = 1` mantiene los valores predeterminados de `legacy` (anteriores a la versión 26.7) independientemente de esta configuración, a menos que `actions`, `compact` o `pretty` se establezcan explícitamente. La salida Pretty no puede representar resultados JSON ni planes distribuidos por segmento, por lo que esos modos solo se muestran correctamente en el formato `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": "Número máximo de pares que puede generar la función `extractKeyValuePairs`. Se utiliza como medida de protección para evitar un consumo excesivo de memoria."}]}]} />

Número máximo de pares que puede generar la función `extractKeyValuePairs`. Se utiliza como medida de protección para evitar un consumo excesivo de memoria.

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

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

Indica si se deben contabilizar los valores extremos (los mínimos y máximos de las columnas del resultado de una consulta). Acepta 0 o 1. El valor predeterminado es 0 (deshabilitado).
Para obtener más información, consulte la sección "Valores extremos".

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

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

Fuerza una consulta a una réplica obsoleta si no hay datos actualizados disponibles. Consulte [Replicación](/docs/es/reference/engines/table-engines/mergetree-family/replication).

ClickHouse selecciona la réplica más adecuada entre las réplicas obsoletas de la tabla.

Se utiliza al realizar `SELECT` desde una tabla distribuida que apunta a tablas replicadas.

De forma predeterminada, 1 (habilitado).

<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": "Cambia la estrategia de partición predeterminada de los motores de tabla tipo archivo (S3, AzureBlobStorage, etc.) de `wildcard` a `hive` cuando no se proporciona `partition_strategy`."}]}]} />

Estrategia de partición predeterminada para motores tipo archivo.

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

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

Número máximo de prefetches. Cero significa que no hay límite. Se recomienda más la configuración `filesystem_prefetches_max_memory_usage` si desea limitar el número de prefetches

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

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

Aplica automáticamente el modificador [FINAL](/docs/es/reference/statements/select/from#final-modifier) a todas las tablas de una consulta en las que [FINAL](/docs/es/reference/statements/select/from#final-modifier) sea aplicable, incluidas las tablas unidas, las tablas en subconsultas y
las tablas distribuidas.

Posibles valores:

* 0 - deshabilitado
* 1 - habilitado

Ejemplo:

```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": "Nueva configuración para finalizar las partes de proyección de forma síncrona durante INSERT y reducir el uso máximo de memoria."}]}]} />

Si se habilita, las partes de proyección se finalizan de forma síncrona durante INSERT, lo que reduce el uso máximo de memoria a costa de un menor paralelismo de carga en S3. De forma predeterminada, el flujo de salida de cada proyección se mantiene activo hasta que se finaliza toda la parte (incluidas todas las proyecciones), lo que permite solapar las cargas en S3, pero aumenta el uso máximo de memoria de forma proporcional al número de proyecciones. Esta configuración solo afecta a INSERT; merge y mutation ya finalizan las proyecciones de forma síncrona.

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

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

Establece el formato de los datos de las columnas [Nested](/docs/es/reference/data-types/nested-data-structures/index).

Valores posibles:

* 1 — La columna Nested se aplana en arrays separados.
* 0 — La columna Nested permanece como un único array de tuplas.

**Uso**

Si este ajuste se establece en `0`, es posible usar un nivel arbitrario de anidamiento.

**Ejemplos**

Consulta:

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

Resultado:

```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 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Consulta:

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

Resultado:

```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" />

Habilita o deshabilita [fsync](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html) al escribir archivos `.sql`. Está habilitado de forma predeterminada.

Puede tener sentido deshabilitarlo si el server tiene millones de tablas pequeñas que se crean y eliminan constantemente.

<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": "Una nueva configuración para el comportamiento heredado que permite entradas no válidas en las funciones h3"}]}]} />

Si es false, las funciones h3, por ejemplo h3CellAreaM2, lanzan una excepción si la entrada no es válida. Si es true, devuelven 0 o el valor predeterminado.

<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": "Se aumenta la precisión predeterminada."}]}]} />

Si los cuatro argumentos de las funciones `geoDistance`, `greatCircleDistance` y `greatCircleAngle` son Float64, estas devuelven Float64 y emplean doble precisión en los cálculos internos. En versiones anteriores de ClickHouse, las funciones siempre devolvían 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": "Una nueva configuración para el comportamiento heredado que establece el orden de los argumentos lon y lat"}]}]} />

La función 'geoToH3' acepta (lon, lat) si se establece en 'lon\_lat' y (lat, lon) si se establece en 'lat\_lon'.

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

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

Máximo número de direcciones permitidas (para almacenamiento externo, funciones de tabla, 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": "Nueva configuración"}]}]} />

La función 'h3ToGeo' devuelve (lon, lat) si es true; de lo contrario, (lat, lon).

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

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

Tiempo de espera, en milisegundos, para recibir el paquete Hello de las réplicas durante el handshake.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "50"},{"label": "Inicia una nueva conexión en solicitudes hedged después de 50 ms en lugar de 100, para que coincida con el tiempo de espera de conexión anterior"}]}]} />

Tiempo de espera para establecer una conexión con una réplica en solicitudes 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": "Nueva configuración para limitar el número de coincidencias resaltadas por fila y evitar un uso excesivo de memoria."}]}]} />

Establece el número máximo de coincidencias resaltadas por fila en la función [highlight](/docs/es/reference/functions/regular-functions/string-search-functions#highlight). Sirve para evitar un uso excesivo de memoria al resaltar patrones muy repetitivos en textos extensos.

Valores posibles:

* Entero positivo.

<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": "Nueva configuración. Anteriormente, el valor se especificaba opcionalmente en CREATE INDEX y el valor predeterminado era 64."}]}]} />

El tamaño de la lista dinámica de candidatos durante la búsqueda en el índice de similitud vectorial, también conocido como 'ef\_search'.

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

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

Tiempo de expiración de HSTS. 0 significa desactivar HSTS.

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

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

Tiempo de espera para cerrar conexiones TCP inactivas tras el número especificado de segundos.

Valores posibles:

* Entero positivo (0: cerrar inmediatamente, tras 0 segundos).

<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": "Nueva configuración"}]}]} />

Si está habilitada, inserta 'ORDER BY rand()' en las consultas SELECT sin cláusula ORDER BY.
Se aplica solo cuando la profundidad de la subconsulta = 0. Las subconsultas e INSERT INTO ... SELECT no se ven afectados.
Si la estructura de nivel superior es UNION, 'ORDER BY rand()' se inserta en cada rama de forma independiente.
Solo es útil para pruebas y desarrollo (la ausencia de ORDER BY es una fuente de resultados no deterministas en las consultas).

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

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

El intervalo, en microsegundos, para comprobar si se ha cancelado la ejecución de la solicitud y enviar el progreso.

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

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

Establece el modo predeterminado en la consulta INTERSECT. Valores posibles: cadena vacía, 'ALL', 'DISTINCT'. Si está vacío, una consulta sin modo generará una excepción.

<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": "Nueva configuración"}]}]} />

Si está habilitada, las funciones 'least' y 'greatest' devuelven NULL si alguno de sus argumentos es 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": "Se añadió esta configuración solo por motivos de compatibilidad. Tiene sentido establecerla en 'true' al realizar una actualización progresiva del clúster desde una versión anterior a la 21.7 a una posterior"}]}]} />

Enumera todos los nombres de los elementos de los literales de tupla grandes en los nombres de sus columnas en lugar del hash. Esta configuración existe solo por motivos de compatibilidad. Tiene sentido establecerla en 'true' al realizar una actualización progresiva del clúster desde una versión anterior a la 21.7 a una posterior.

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

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

Establece el número máximo de filas que se pueden obtener del resultado de la consulta. Ajusta el valor definido por la cláusula [LIMIT](/docs/es/reference/statements/select/limit), de modo que el límite especificado en la consulta no pueda superar el límite establecido por esta opción.

Valores posibles:

* 0 — El número de filas no está limitado.
* Entero positivo.

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

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

Carga las marcas de MergeTree de forma asíncrona

Valor predeterminado en Cloud: `1`.

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

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

Define cuántos segundos espera una solicitud de bloqueo antes de fallar.

El tiempo de espera de bloqueo se usa para proteger frente a interbloqueos al ejecutar operaciones de lectura/escritura con tablas. Cuando el tiempo de espera expira y la solicitud de bloqueo falla, el servidor de ClickHouse lanza una excepción "¡El intento de bloqueo excedió el tiempo de espera! Se evitó un posible interbloqueo. El cliente debería reintentar." con el código de error `DEADLOCK_AVOIDED`.

Valores posibles:

* Entero positivo (en segundos).
* 0 — Sin tiempo de espera de bloqueo.

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

<BetaBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "Nueva configuración."},{"label": "1000"}]}]} />

Cuando se utiliza el mecanismo de priorización de consultas (consulte la configuración `priority`), las consultas de baja prioridad esperan a que terminen las consultas de mayor prioridad. Esta configuración especifica cuánto tiempo deben esperar.

<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": "Nueva configuración experimental."}]}]} />

Crea un plan de consulta distribuida.

<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": "Nueva configuración"}]}]} />

Al crear una tabla `Merge` sin un esquema explícito o al usar la función de tabla `merge`, se infiere el esquema como una unión de no más del número especificado de tablas coincidentes.
Si hay un número mayor de tablas, el esquema se inferirá a partir del primer número especificado de tablas.

<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": "Nueva configuración."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Si está habilitada, las tablas de MongoDB devolverán un error cuando no se pueda generar una consulta de MongoDB. De lo contrario, ClickHouse lee la tabla completa y la procesa localmente. Esta opción no se aplica cuando '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" />

No añadir alias a la lista de expresiones de nivel superior al reescribir múltiples joins

<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": "Normalizar los nombres de las funciones a su forma canónica; esto era necesario para el enrutamiento de consultas de proyección"}]}]} />

Normalizar los nombres de las funciones a su forma canónica

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

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

Establece el número de filas que se omitirán antes de empezar a devolver filas de la consulta. Ajusta el desplazamiento establecido por la cláusula [OFFSET](/docs/es/reference/statements/select/offset), de modo que ambos valores se sumen.

Posibles valores:

* 0 — No se omite ninguna fila.
* Entero positivo.

**Ejemplo**

Tabla de entrada:

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

Consulta:

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

Resultado:

```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": "Nueva configuración."}]}]} />

Lectura de la instantánea de destino a nivel de consulta para el modo incremental de Paimon. Cuando es >0, el lector solo recuperará el delta
del snapshot\_id especificado sin avanzar la marca de agua confirmada.
Predeterminado: -1 (deshabilitado)

<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": "Permite el paralelismo al ejecutar consultas que leen desde file\/url\/s3\/etc. Esto puede reordenar las filas."}]}]} />

Paraleliza la salida en la etapa de lectura desde el almacenamiento. Permite paralelizar el procesamiento de consultas justo después de la lectura desde el almacenamiento, cuando sea posible

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

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

Permite que la consulta devuelva un resultado parcial después de cancelarse.

<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": "Nueva opción."}]}]} />

Registra estadísticas de índices por parte

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

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

Bloquea el bucle de espera de la consulta en el servidor durante el número de segundos especificado.

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

<ExperimentalBadge />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": ""},{"label": "Nueva opción de configuración para especificar el dialecto SQL de origen del transpilador polyglot."}]}]} />

Dialecto SQL de origen del transpilador polyglot (p. ej., '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": "Nueva configuración"}]}]} />

Probabilidad aproximada de que fallen las consultas internas de PostgreSQL (para la replicación). El valor válido está en el intervalo \[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": "Nueva configuración para recopilar estadísticas de selectividad de predicados en system.predicate_statistics_log"}]}]} />

Recopila estadísticas de selectividad de predicados en `system.predicate_statistics_log`. Cuando se establece en N > 0, se toma una muestra de aproximadamente 1/N de las consultas (en función del ID de la consulta). 0 significa que está deshabilitado.

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

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

El tamaño máximo del búfer de precarga para leer desde el sistema de archivos. Los valores superiores a 256 MiB se ajustan a 256 MiB, ya que un búfer de lectura nunca necesita ser mayor.

<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": "Mejora la experiencia del usuario."}]}]} />

Permite mostrar nombres de tipos con anidamiento profundo de forma legible y con sangrías en la consulta `DESCRIBE` y en la función `toTypeName()`.

Ejemplo:

```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" />

Prioridad de la consulta. 1: la más alta; cuanto mayor sea el valor, menor será la prioridad; 0: no usar prioridades.

<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": "Nueva configuración."}]}]} />

Permite enviar los roles de usuario desde el nodo de origen a otros nodos al ejecutar una consulta.

<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": "Nueva configuración."}]}]} />

El intervalo, en milisegundos, con el que se recopila el [query\_metric\_log](/docs/es/reference/system-tables/query_metric_log) de las consultas individuales.

Si se establece en cualquier valor negativo, tomará el valor `collect_interval_milliseconds` de la [configuración query\_metric\_log](/docs/es/reference/settings/server-settings/settings#query_metric_log) o, si no está presente, usará 1000 de forma predeterminada.

Para deshabilitar la recopilación de una sola consulta, establezca `query_metric_log_interval` en 0.

Valor predeterminado: -1

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

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

El tiempo de espera en la cola de solicitudes si el número de solicitudes concurrentes supera el máximo.

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

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

El tiempo de espera para leer de RabbitMQ antes de volver a intentarlo.

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

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

0: sin restricciones de solo lectura. 1: solo solicitudes de lectura, así como el cambio de configuraciones permitidas explícitamente. 2: solo solicitudes de lectura, así como el cambio de configuraciones, excepto la configuración '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": "Número máximo de iteraciones para inferir los tipos de las columnas en CTE recursivas mediante `getLeastSupertype` iterativo"}]}]} />

Número máximo de iteraciones para inferir los tipos de las columnas en CTE recursivas. Los tipos de las columnas se determinan aplicando iterativamente `getLeastSupertype` a las partes no recursiva y recursiva de la UNION ALL hasta alcanzar la convergencia. Establézcalo en 0 para desactivar la ampliación de tipos y usar solo los tipos de la parte no recursiva.

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

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

Establece el número máximo de coincidencias de una única expresión regular por fila. Úselo para evitar la sobrecarga de memoria al usar una expresión regular codiciosa en la función [extractAllGroupsHorizontal](/docs/es/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal).

Posibles valores:

* Entero positivo.

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

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

Rechaza patrones cuya evaluación con hyperscan probablemente resulte costosa (debido a la explosión de estados del NFA)

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

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

Si el uso de memoria después del remerge no se reduce en esta proporción, el remerge se deshabilitará.

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

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

Cantidad mínima de bytes necesaria para que una lectura remota (url, s3) haga `seek` en lugar de leer ignorando datos.

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

* **Type:** String

* **Valor predeterminado:** Cadena vacía

Esta configuración permite especificar un patrón de cambio de nombre para los archivos procesados por la función de tabla `file`. Cuando esta opción está establecida, todos los archivos leídos por la función de tabla `file` se renombrarán según el patrón especificado con placeholders, siempre que el procesamiento de los archivos haya finalizado correctamente.

<div id="placeholders">
  ### Marcadores de posición
</div>

* `%a` — Nombre completo del archivo original (p. ej., "sample.csv").
* `%f` — Nombre del archivo original sin extensión (p. ej., "sample").
* `%e` — Extensión del archivo original con punto (p. ej., ".csv").
* `%t` — Marca de tiempo (en microsegundos).
* `%%` — Signo de porcentaje ("%").

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

* Opción: `--rename_files_after_processing="processed_%f_%t%e"`

* Consulta: `SELECT * FROM file('sample.csv')`

Si `sample.csv` se lee correctamente, el archivo se renombrará a `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" />

Especifica cuánto tiempo (en segundos) hay que esperar para que las réplicas inactivas ejecuten consultas [`ALTER`](/docs/es/reference/statements/alter/index), [`OPTIMIZE`](/docs/es/reference/statements/optimize) o [`TRUNCATE`](/docs/es/reference/statements/truncate).

Valores posibles:

* `0` — No esperar.
* Entero negativo — Esperar indefinidamente.
* Entero positivo — Número de segundos de espera.

<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": "Nueva configuración para reservar memoria para una carga de trabajo específica antes de iniciar una consulta."}]}]} />

Se usa en la planificación de cargas de trabajo. Es la cantidad mínima de RAM reservada para ejecutar una consulta en un solo servidor. La reserva se realiza a través de la jerarquía WORKLOAD usando el valor de la configuración de consulta `workload`.
Si no hay suficiente memoria disponible para la carga de trabajo, la consulta no se inicia y queda en estado pendiente hasta que la reserva pueda satisfacerse.
Un valor de `0` significa que no hay reserva.
Esta configuración solo tiene efecto si se crea el recurso MEMORY RESERVATION.

<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": "Nueva configuración."}]}]} />

Sustituye el motor de tabla de Replicated*MergeTree por Shared*MergeTree durante RESTORE.

Valor predeterminado en Cloud: `1`.

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

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

Establece qué hacer si el volumen del resultado supera alguno de los límites.

Valores posibles:

* `throw`: lanzar una excepción (predeterminado).
* `break`: detener la ejecución de la consulta y devolver el resultado parcial, como si
  se hubieran agotado los datos de origen.

Usar 'break' es similar a usar LIMIT. `Break` interrumpe la ejecución solo a nivel de
bloque. Esto significa que la cantidad de filas devueltas es mayor que
[`max_result_rows`](/docs/es/reference/settings/session-settings/max-result#max_result_rows), es múltiplo de [`max_block_size`](/docs/es/reference/settings/session-settings/max#max_block_size)
y depende de [`max_threads`](/docs/es/reference/settings/session-settings/max-threads#max_threads).

**Ejemplo**

```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": "Proporciona el valor exacto de la estadística rows_before_aggregation; representa el número de filas leídas antes de la agregación"}]}]} />

Si está habilitado, ClickHouse proporcionará el valor exacto de la estadística rows\_before\_aggregation; representa el número de filas leídas antes de la agregación

<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 nuevo algoritmo de filtrado con índices de omisión de datos"}]}]} />

Activa el algoritmo de filtrado masivo para los índices. Se espera que siempre ofrezca mejores resultados, pero esta configuración se mantiene por compatibilidad y control.

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

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

<Note>
  El comportamiento de esta configuración difiere entre SharedMergeTree y ReplicatedMergeTree; consulte [SharedMergeTree consistency](/docs/es/products/cloud/features/infrastructure/shared-merge-tree#consistency) para obtener más información sobre el comportamiento de `select_sequential_consistency` en SharedMergeTree.
</Note>

Habilita o deshabilita la consistencia secuencial para las consultas `SELECT`. Requiere que `insert_quorum_parallel` esté deshabilitado (habilitado de forma predeterminada).

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

Uso

Cuando la consistencia secuencial está habilitada, ClickHouse permite al client ejecutar la consulta `SELECT` solo en aquellas réplicas que contienen datos de todas las consultas `INSERT` anteriores ejecutadas con `insert_quorum`. Si el client hace referencia a una réplica parcial, ClickHouse generará una excepción. La consulta `SELECT` no incluirá datos que aún no se hayan escrito en el quórum de réplicas.

Cuando `insert_quorum_parallel` está habilitado (el valor predeterminado), `select_sequential_consistency` no funciona. Esto se debe a que las consultas `INSERT` en paralelo pueden escribirse en distintos conjuntos de réplicas de quórum, por lo que no hay garantía de que una sola réplica haya recibido todas las escrituras.

Véase también:

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

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

<BetaBadge />

Establece la zona horaria implícita de la sesión o consulta actual.
La zona horaria implícita es la zona horaria que se aplica a los valores de tipo DateTime/DateTime64 que no tienen una zona horaria especificada de forma explícita.
Esta configuración tiene prioridad sobre la zona horaria implícita configurada globalmente (a nivel del servidor).
Un valor de '' (cadena vacía) significa que la zona horaria implícita de la sesión o consulta actual es igual a la [zona horaria del servidor](/docs/es/reference/settings/server-settings/settings#timezone).

Puede usar las funciones `timeZone()` y `serverTimeZone()` para obtener la zona horaria de la sesión y la del servidor.

Valores posibles:

* Cualquier nombre de zona horaria de `system.time_zones`, por ejemplo, `Europe/Berlin`, `UTC` o `Zulu`

Ejemplos:

```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"
```

Asigne la zona horaria de la sesión 'America/Denver' al DateTime interno sin una zona horaria especificada explícitamente:

```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>
  No todas las funciones que procesan DateTime/DateTime64 respetan `session_timezone`. Esto puede provocar errores sutiles.
  Consulta el siguiente ejemplo y su explicación.
</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 │
└─────────────────────┴──────────────────┘
```

Esto sucede debido a distintos flujos de análisis:

* `toDateTime()` sin una zona horaria especificada explícitamente, usado en la primera consulta `SELECT`, respeta la configuración `session_timezone` y la zona horaria global.
* En la segunda consulta, se interpreta un DateTime a partir de un String y hereda el tipo y la zona horaria de la columna existente `d`. Por lo tanto, no se respetan la configuración `session_timezone` ni la zona horaria global.

**Véase también**

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

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

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

Establece qué sucede cuando la cantidad de datos supera uno de los límites.

Valores posibles:

* `throw`: lanzar una excepción (predeterminado).
* `break`: dejar de ejecutar la consulta y devolver el resultado parcial, como si los
  datos de origen se hubieran agotado.

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

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

Para un solo JOIN, en caso de ambigüedad de identificadores, se prefiere la tabla de la izquierda

<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": "Cuando está habilitado, permite usar la misma función definida por el usuario varias veces para varias columnas materializadas en la misma tabla."}]}]} />

Los alias redundantes se omiten (se sustituyen) en las funciones definidas por el usuario para simplificar su uso.

Valores posibles:

* 1 — Los alias se omiten (se sustituyen) en las UDF.
* 0 — Los alias no se omiten (se sustituyen) en las UDF.

**Ejemplo**

La diferencia entre habilitado y deshabilitado:

Consulta:

```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);
```

Resultado:

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

Consulta:

```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);
```

Resultado:

```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="Milisegundos" default_value="0" />

Tiempo de espera tras recibir una consulta en 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": "Nueva configuración para controlar el formato de transmisión usado para la compresión snappy en la E/S genérica de archivos\/URL. El valor predeterminado `basic` conserva la compatibilidad con versiones anteriores para la lectura del formato de bloques snappy de Hadoop; HTTP `Content-Encoding: snappy` siempre usa el formato framing, independientemente de esta configuración."}]}]} />

Controla el formato de transmisión usado para la compresión snappy en rutas genéricas de E/S de archivos, como `file` y `url`. HTTP `Content-Encoding: snappy` siempre usa el formato framing e ignora esta configuración.

Ten en cuenta que el formato bruto de bloques snappy producido por una única llamada a `snappy::Compress` (por ejemplo, las cargas útiles del protocolo remoto de Prometheus gestionadas por `SnappyBasicReadBuffer`) es un formato de transmisión independiente y específico del protocolo, y no está controlado por esta configuración.

Valores posibles:

* `basic` — Formato de bloques snappy de Hadoop. Compatible con archivos leídos y escritos por Hadoop. Admite lectura y escritura.
* `framed` — Formato framing de Snappy, el formato estándar de streaming definido por Google. Admite lectura y escritura.

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

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

Establece qué sucede si el número de filas recibidas antes de la ordenación supera uno de los límites.

Valores posibles:

* `throw`: lanzar una excepción.
* `break`: detener la ejecución de la consulta y devolver el resultado parcial.

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

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

Controla si la función [splitBy\*()](/docs/es/reference/functions/regular-functions/splitting-merging-functions) con el argumento `max_substrings` > 0 incluirá la cadena restante en el último elemento del array de resultados.

Valores posibles:

* `0` - La cadena restante no se incluirá en el último elemento del array de resultados.
* `1` - La cadena restante se incluirá en el último elemento del array de resultados. Este es el comportamiento de la función [`split()`](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html) de Spark y del método ['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" />

Al iniciar el servidor, impide la planificación de las vistas materializadas actualizables, como si se hubiera ejecutado SYSTEM STOP VIEWS. Después, puedes iniciarlas manualmente con `SYSTEM START VIEWS` o `SYSTEM START VIEW <name>`. También se aplica a las vistas creadas posteriormente. No tiene efecto sobre las vistas materializadas no actualizables.

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

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

El tiempo, en segundos, que debe permanecer inactiva la conexión antes de que TCP comience a enviar sondas de 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": "Tiempo de espera para bloquear la caché al reservar espacio para datos temporales en la caché del sistema de archivos"}]}]} />

Tiempo de espera para bloquear la caché al reservar espacio para datos temporales en la caché del sistema de archivos

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

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

Permite o prohíbe los INSERT vacíos; está habilitada de forma predeterminada (lanza un error si el insert está vacío). Solo se aplica a los INSERT que usan [`clickhouse-client`](/docs/es/concepts/features/interfaces/cli) o la [interfaz gRPC](/docs/es/concepts/features/interfaces/grpc).

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

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

Comprueba que la velocidad de ejecución no sea demasiado baja (no inferior a `min_execution_speed`)
una vez transcurrido el tiempo especificado en segundos.

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

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

Establece qué sucede cuando la cantidad de datos supera uno de los límites.

Valores posibles:

* `throw`: lanzar una excepción (por defecto).
* `break`: dejar de ejecutar la consulta y devolver el resultado parcial, como si los
  datos de origen se hubieran agotado.

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

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

Habilita la igualdad entre valores [NULL](/docs/es/reference/syntax#null) para el operador [IN](/docs/es/reference/statements/in).

De forma predeterminada, los valores `NULL` no se pueden comparar porque `NULL` significa un valor indefinido. Por lo tanto, la comparación `expr = NULL` siempre debe devolver `false`. Con esta configuración, `NULL = NULL` devuelve `true` para el operador `IN`.

Valores posibles:

* 0 — La comparación de valores `NULL` en el operador `IN` devuelve `false`.
* 1 — La comparación de valores `NULL` en el operador `IN` devuelve `true`.

**Ejemplo**

Considere la tabla `null_in`:

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

Consulta:

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

Resultado:

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

Consulta:

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

Resultado:

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

**Véase también**

* [Procesamiento de NULL en los operadores IN](/docs/es/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": "Recorre el directorio shadow al consultar system.remote_data_paths."}]}]} />

Recorre los datos congelados (directorio shadow), además de los datos reales de la tabla, al consultar system.remote\_data\_paths

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

Establece un modo para combinar los resultados de las consultas `SELECT`. Esta configuración solo se usa con [UNION](/docs/es/reference/statements/select/union) cuando no se especifica explícitamente `UNION ALL` ni `UNION DISTINCT`.

Valores posibles:

* `'DISTINCT'` — ClickHouse devuelve como resultado de la combinación de consultas las filas sin duplicados.
* `'ALL'` — ClickHouse devuelve como resultado de la combinación de consultas todas las filas, incluidas las duplicadas.
* `''` — ClickHouse genera una excepción cuando se usa con `UNION`.

Vea ejemplos en [UNION](/docs/es/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": "Nueva configuración: tamaño máximo (en bytes) de la codificación binaria con preservación del orden de una sola fila de UNIQUE KEY"}]}]} />

Tamaño máximo (en bytes) de la codificación binaria con preservación del orden de una sola fila de `UNIQUE KEY`.

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

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

Envía un paquete desconocido en lugar del enésimo paquete de datos

<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": "Nueva configuración para controlar el comportamiento ante incompatibilidades de tipo en la implementación predeterminada de Variant"}]}]} />

Al aplicar una función a una columna [Variant](/docs/es/reference/data-types/variant) mediante la implementación predeterminada,
controla qué ocurre con las filas cuyo tipo real es incompatible con la función:

* `true` (por defecto) — lanzar una excepción.
* `false` — devolver `NULL` para esas filas.

<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" />

Esperar a que los cambios confirmados sean realmente visibles en la instantánea más reciente

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

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

Nombre del workload que se utilizará para acceder a los recursos

<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": "Nueva configuración."}]}]} />

Escribir rutas completas (incluido s3://) en los archivos de metadatos de Iceberg.

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

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

Permite seleccionar el valor máximo de window log de ZSTD (no se utilizará para la familia MergeTree)
