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

# ajustes de sesión allow_*

> Ajustes de sesión de ClickHouse en el grupo generado allow_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versión", "Valor predeterminado", "Comentario"];
  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
  }}>
        Historial de versiones
      </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
  }}>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 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>Funcionalidad beta</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>
            Funcionalidad experimental
        </a>;
};

Estos ajustes están disponibles en [system.settings](/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="allow_aggregate_partitions_independently">
  ## allow\_aggregate\_partitions\_independently
</div>

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

Habilita la agregación independiente de las particiones en hilos separados cuando la clave de partición coincide con la clave de group by. Resulta beneficioso cuando el número de particiones es cercano al número de núcleos y las particiones tienen aproximadamente el mismo tamaño. Las heurísticas de `ReadFromMergeTree` desactivan automáticamente la optimización para distribuciones desfavorables (muy pocas particiones, demasiadas particiones o tamaños de partición muy desiguales); consulta `force_aggregate_partitions_independently` para omitir esas comprobaciones.

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

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

Los motores File/S3 y la función de tabla interpretarán las rutas con '::' como `<archive> :: <file>` si el archivo tiene la extensión correcta.

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

Usa el grupo de E/S en segundo plano para leer desde tablas MergeTree. Esta configuración puede mejorar el rendimiento de las consultas limitadas por 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" />

Cuando está habilitado, ClickHouse calculará el tamaño de los archivos necesarios para leer cada subcolumna, lo que mejora el cálculo de los tamaños de las tareas y los bloques.

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

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

Si está habilitado, en las solicitudes hedged podemos iniciar una nueva conexión hasta recibir el primer paquete de datos, incluso si ya se ha registrado cierto progreso
(aunque el progreso no se haya actualizado durante el tiempo de espera de `receive_data_timeout`); de lo contrario, se deshabilita el cambio de réplica después de la primera vez que se registra progreso.

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

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

Permite la consulta CREATE INDEX sin TYPE. La consulta se ignorará. Creado para pruebas de compatibilidad con SQL.

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

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

Permite usar un código de error personalizado en la función throwIf(). Si es true, las excepciones lanzadas pueden tener códigos de error inesperados.

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

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

Si se establece en true, un usuario puede ejecutar consultas DDL.

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

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

Si se establece en true, se permite a un usuario ejecutar consultas DDL distribuidas.

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

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

Permite las consultas 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" />

Permite usar el tipo Dynamic en las claves de JOIN. Se añadió por compatibilidad. No se recomienda usar el tipo Dynamic en las claves de JOIN, porque la comparación con otros tipos puede dar lugar a resultados inesperados.

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

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

Permite ejecutar la función multiIf de forma columnar

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

<ExperimentalBadge />

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

Habilita la función `fuzzQuery`, que aplica mutaciones aleatorias del AST a una cadena de consulta.

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

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

Permite un algoritmo de planificación de JOIN más general, capaz de manejar condiciones más complejas, pero solo funciona con hash join. Si hash join no está habilitado, se usa el algoritmo habitual de planificación de JOIN independientemente del valor de esta configuración.

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

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

Permite usar la función `getClientHTTPHeader`, que permite obtener el valor de un encabezado de la solicitud HTTP actual. No está habilitada de forma predeterminada por motivos de seguridad, porque algunos encabezados, como `Cookie`, podrían contener información sensible. Ten en cuenta que los encabezados `X-ClickHouse-*`, `Authentication` y `Authorization` siempre están restringidos y no se pueden obtener con esta función.

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

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

Permite el uso de funciones que utilizan la biblioteca Hyperscan. Desactívelo para evitar tiempos de compilación potencialmente largos y un uso excesivo de recursos.

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

<ExperimentalBadge />

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

Permite usar 'ALTER TABLE ... EXECUTE remove\_orphan\_files()' en tablas Iceberg.

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

<BetaBadge />

**Aliases**: `allow_experimental_insert_into_iceberg`

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

Permite ejecutar consultas `insert` en Iceberg.

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

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

Activa o desactiva las [funciones de introspección](/es/reference/functions/regular-functions/introspection) para el perfilado de consultas.

Valores posibles:

* 1 — Funciones de introspección activadas.
* 0 — Funciones de introspección desactivadas.

**Véase también**

* [Sampling Query Profiler](/es/concepts/features/performance/troubleshoot/sampling-query-profiler)
* Tabla del sistema [trace\_log](/es/reference/system-tables/trace_log)

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

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

Permite que la clave primaria de MergeTree y los índices de omisión descarten gránulos para predicados `WHERE`/`PREWHERE` que incluyan `coalesce` o `ifNull`. Sin esta configuración, esos predicados son opacos al análisis de índices y no permiten descartar, por lo que se siguen leyendo gránulos que no pueden coincidir. Esto solo afecta a qué gránulos se leen; los resultados de la consulta no cambian, porque las filas se siguen filtrando mediante el predicado original.

Antes del análisis de índices, se reescriben dos patrones de predicados:

* Una comparación con `coalesce`/`ifNull`, como `coalesce(a, b) = 5`, se convierte en una disyunción para que un índice sobre cada argumento pueda descartar: `a = 5 OR (a IS NULL AND b = 5)`, ampliado a más argumentos.
* Un `coalesce`/`ifNull` con un valor predeterminado falso (cero) usado directamente como condición, como `ifNull(a = 5, 0)` o `coalesce(a = 5, 0)`, se simplifica a su predicado interno `a = 5`. Estas envolturas reducen el resultado ternario del predicado interno a un booleano definido (asignando `NULL` a `false`).

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

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

Habilita la evaluación independiente de `LIMIT BY` por partición en hilos separados cuando la expresión de partición es una función determinista de las columnas de `LIMIT BY`.

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

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

Permite CREATE MATERIALIZED VIEW con una consulta SELECT que haga referencia a tablas o columnas inexistentes. Debe seguir siendo sintácticamente válida. No se aplica a las MV refrescables. No se aplica si el esquema de la MV debe inferirse a partir de la consulta SELECT (es decir, si CREATE no tiene lista de columnas ni cláusula TO). Puede usarse para crear una MV antes de su tabla de origen.

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

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

Permite crear índices de omisión minmax en columnas JSON (Object). Está deshabilitado de forma predeterminada porque la ruta de serialización del índice minmax no puede manejar valores de Field heterogéneos que pueden contener las columnas JSON.

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

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

Permite sobrescribir de forma predeterminada los campos de las colecciones con nombre.

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

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

Permite ejecutar operaciones ALTER que afectan no solo a los metadatos de las tablas, sino también a los datos en disco

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

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

Permite argumentos de zona horaria no constantes en determinadas funciones relacionadas con el tiempo, como toTimeZone(), fromUnixTimestamp\*(), snowflakeIDToDateTime\*().
Esta configuración existe únicamente por motivos de compatibilidad. En ClickHouse, la zona horaria es una propiedad del tipo de dato y, por extensión, de la columna.
Habilitar esta configuración da la impresión errónea de que distintos valores dentro de una columna pueden tener distintas zonas horarias.
Por lo tanto, no habilite esta configuración.

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

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

Controla si las subcolumnas extraídas de tipo `Tuple(...)` pueden tener el tipo `Nullable(Tuple(...))`.

* `false`: Devuelve `Tuple(...)` y usa valores de tupla predeterminados para las filas en las que falta la subcolumna.
* `true`: Devuelve `Nullable(Tuple(...))` y usa `NULL` para las filas en las que falta la subcolumna.

Esta configuración controla solo el comportamiento de las subcolumnas extraídas.
No controla si se pueden crear columnas `Nullable(Tuple(...))` en tablas; eso lo controla `enable_nullable_tuple_type`.

ClickHouse usa el valor de esta configuración cargado al iniciar el servidor.
Los cambios realizados con `SET` o con `SETTINGS` a nivel de consulta no cambian el comportamiento de las subcolumnas extraídas.
Para cambiar el comportamiento de las subcolumnas extraídas, actualiza `allow_nullable_tuple_in_extracted_subcolumns` en la configuración del perfil de inicio (por ejemplo, users.xml) y reinicia el servidor.

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

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

Permite pasar argumentos a las funciones de ventana `RANK` y `DENSE_RANK` para mantener la compatibilidad con versiones anteriores.

Según el estándar SQL, `RANK` y `DENSE_RANK` no aceptan argumentos: clasifican las filas basándose únicamente en la
window `OVER (ORDER BY ...)`. En las versiones de ClickHouse anteriores a la 26.5, consultas como
`RANK(x) OVER (...)` aceptaban e ignoraban silenciosamente el argumento, lo que generaba confusión entre los usuarios
(el argumento visible sugería que influía en la clasificación, pero no era así).

Cuando esta configuración es `false` (la predeterminada), `RANK` y `DENSE_RANK` rechazan cualquier argumento y
lanzan `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`. Cuando se establece en `true`, se
restaura el comportamiento flexible heredado: los argumentos se ignoran silenciosamente, igual que antes de la versión 26.5.

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

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

Permite reordenar las condiciones al moverlas de WHERE a PREWHERE para optimizar el filtrado

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

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

Permite que `ALTER TABLE ... REPLACE PARTITION ... FROM ...` elimine silenciosamente la partición de destino cuando la tabla de origen no tiene partes en esa partición.

De forma predeterminada, esto no está permitido: `REPLACE PARTITION` desde una tabla de origen que no tiene datos en la partición solicitada genera una excepción, porque en ese caso la operación pasa, en la práctica, a ser un `DROP PARTITION` silencioso en el destino (se eliminan los datos del destino y nada los sustituye), una causa habitual de pérdida accidental de datos (consulta [#23727](https://github.com/ClickHouse/ClickHouse/issues/23727)).

Habilita esta configuración para restaurar el comportamiento anterior, por ejemplo, cuando uses intencionadamente una partición de origen vacía para borrar datos del destino. Si quieres eliminarla sin condiciones, es preferible usar `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" />

Controla si se permite o no `SETTINGS` después de `FORMAT` en las consultas `INSERT`. No se recomienda usarlo, ya que puede interpretar parte de `SETTINGS` como valores.

Ejemplo:

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

Pero la siguiente consulta solo funcionará con `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;
```

Valores posibles:

* 0 — No permitir.
* 1 — Permitir.

<Note>
  Use esta configuración solo para mantener la compatibilidad con versiones anteriores si sus casos de uso dependen de la sintaxis anterior.
</Note>

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

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

Permite usar la library simdjson en las funciones 'JSON\*' si hay disponibles instrucciones AVX2. Si se desactiva, se usará rapidjson.

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

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

Permite generar la salida de columnas con tipos especiales de serialización, como Sparse y Replicated, sin convertirlas a una representación de columna completa.
Ayuda a evitar copias de datos innecesarias durante el formateo.

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

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

Permite lecturas sin restricciones (sin condición sobre la ruta) desde la tabla system.zookeeper; puede resultar útil, pero no es seguro para ZooKeeper
