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

> Registro de cambios de 2026

# Registro de cambios 2026

<div id="265">
  ### Lanzamiento de ClickHouse 26.5, 2026-05-21. [Presentación](https://presentations.clickhouse.com/2026-release-26.5/), [Vídeo](https://www.youtube.com/watch?v=P1IDAvsi7p8)
</div>

<div id="backward-incompatible-change">
  #### Cambio incompatible con versiones anteriores
</div>

* Se cambiaron los valores predeterminados de `date_time_input_format` y `cast_string_to_date_time_mode` de `basic` a `best_effort`. Las consultas que antes no podían interpretar cadenas de fecha y hora no básicas (por ejemplo, `2024 April 4`, `Apr 15, 2020 10:30:00`) ahora pueden ejecutarse correctamente de forma predeterminada. Para mantener el comportamiento estricto anterior de análisis, configure estos ajustes en `basic` (o use `compatibility`). [#89334](https://github.com/ClickHouse/ClickHouse/pull/89334) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El nombre de elemento de Tuple `null` ahora está prohibido porque entra en conflicto con el nombre de subcolumna usado para los mapas nulos de Nullable, lo que provoca una resolución ambigua de subcolumnas. [#98377](https://github.com/ClickHouse/ClickHouse/pull/98377) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadieron los ajustes `dynamic_disk_allow_from_env`, `dynamic_disk_allow_from_zk`, `dynamic_disk_allow_include` para impedir el uso de `from_env`, `from_zk` e `include` en discos dinámicos. Es un cambio incompatible con versiones anteriores porque prohíbe de forma predeterminada un comportamiento que antes estaba permitido de forma predeterminada. [#99138](https://github.com/ClickHouse/ClickHouse/pull/99138) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ya no se puede usar el lector y escritor de Parquet obsoleto basado en Arrow. En su lugar, se usará la implementación nativa. [#100949](https://github.com/ClickHouse/ClickHouse/pull/100949) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `SHOW CREATE TABLE t` ahora da preferencia a la tabla temporal cuando existen tanto una tabla permanente como una tabla temporal llamadas `t` y no se especifica ninguna base de datos, en consonancia con el comportamiento existente de `DESCRIBE TABLE`. Además, ahora se admite la sintaxis `DESCRIBE TEMPORARY TABLE`. [#100966](https://github.com/ClickHouse/ClickHouse/pull/100966) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se redujo el valor predeterminado de `http_max_fields` de 1,000,000 a 1,000 y el de `http_max_field_name_size` de 128 KB a 4 KB para limitar el uso de memoria antes de la autenticación por parte de las conexiones HTTP. Se añadieron los ajustes `http_max_request_header_size` y `http_headers_read_timeout`. Los usuarios que dependan de los límites superiores anteriores pueden restaurarlos mediante ajustes. [#103285](https://github.com/ClickHouse/ClickHouse/pull/103285) ([Sema Checherinda](https://github.com/CheSema)).
* Se añadió una columna anidada `histograms` a `system.metric_log` que toma una instantánea de cada métrica de histograma registrada por fila, con un nuevo ajuste `system_metric_log_show_zero_values_in_histograms` para controlar la emisión de valores cero. Deja obsoleta la tabla `system.histogram_metric_log`. [#103770](https://github.com/ClickHouse/ClickHouse/pull/103770) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* `CAST` a `DateTime` o `DateTime64` sin una zona horaria explícita ahora conserva la zona horaria de su argumento de origen (cuando el origen es un `DateTime`/`DateTime64` con una zona horaria explícita), en consonancia con el comportamiento de las funciones `toDateTime`/`toDateTime64`. Cierra [#55072](https://github.com/ClickHouse/ClickHouse/issues/55072). [#104433](https://github.com/ClickHouse/ClickHouse/pull/104433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se eliminó la table function `kql`. Use `SET dialect = 'kusto'` para ejecutar consultas en el dialecto KQL. [#105101](https://github.com/ClickHouse/ClickHouse/pull/105101) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las window functions `RANK` y `DENSE_RANK` ahora rechazan argumentos y lanzan `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`, en línea con el estándar SQL. Antes, consultas como `RANK(x) OVER (ORDER BY id)` se aceptaban silenciosamente, ignorando el argumento. Para restaurar el comportamiento permisivo anterior, configure `allow_rank_dense_rank_arguments = 1`. Cierra [#49526](https://github.com/ClickHouse/ClickHouse/issues/49526). [#104324](https://github.com/ClickHouse/ClickHouse/pull/104324) ([Groene AI](https://github.com/groeneai)).

<div id="new-feature">
  #### Nueva funcionalidad
</div>

* Se agregó una nueva configuración `max_bytes_ratio_before_external_join`, que refleja `max_bytes_ratio_before_external_group_by` y `max_bytes_ratio_before_external_sort`. Expresa el umbral de spill a disco para hash joins como una fracción de la memoria disponible; combinada con el valor absoluto `max_bytes_before_external_join`, se aplica el umbral resultante más bajo. [#103862](https://github.com/ClickHouse/ClickHouse/pull/103862) ([Alexey Milovidov](https://github.com/alexey-milovidov)). La nueva configuración `max_bytes_ratio_before_external_join` ahora está habilitada de forma predeterminada con un valor de 0.5, reflejando `max_bytes_ratio_before_external_group_by` y `max_bytes_ratio_before_external_sort`. Los hash joins pasan automáticamente a grace hash join una vez que los datos del lado derecho superan la mitad de la memoria disponible del sistema (cuando hay límites de memoria configurados). [#104285](https://github.com/ClickHouse/ClickHouse/pull/104285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agregó la table function `filesystem`. Permite representar la estructura de directorios como una tabla y consultar con SQL los metadatos y el contenido de los archivos. Originalmente [#42039](https://github.com/ClickHouse/ClickHouse/pull/42039) por @perst20. Consulte [#42039](https://github.com/ClickHouse/ClickHouse/issues/42039). Consulte [#50208](https://github.com/ClickHouse/ClickHouse/issues/50208). [#53610](https://github.com/ClickHouse/ClickHouse/pull/53610) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite pasar nombres de funciones sin envoltura a funciones de orden superior como `arrayMap`, `arrayFilter`, etc. Por ejemplo, `arrayMap(negate, [1, 2, 3])` ahora es equivalente a `arrayMap(x -> negate(x), [1, 2, 3])`. [#101033](https://github.com/ClickHouse/ClickHouse/pull/101033) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agregan la configuración `send_table_structure_on_insert_with_inline_data` y la opción `--inline-insert-data` del client para permitir que el server analice por sí mismo los datos de INSERT en línea a través del native protocol, evitando el viaje de ida y vuelta para recibir la estructura de la tabla y mejorando el rendimiento en muchas inserciones pequeñas. [#101034](https://github.com/ClickHouse/ClickHouse/pull/101034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agregan las funciones `tokenizeQuery` y `highlightQuery` para la tokenización de consultas SQL y el resaltado de sintaxis. `tokenizeQuery` devuelve tokens del lexer con desplazamientos de bytes y tipos de token; `highlightQuery` devuelve rangos de resaltado de sintaxis basados en el parser con categorías de resaltado (keyword, identificador, función, número, cadena, etc.). [#101054](https://github.com/ClickHouse/ClickHouse/pull/101054) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agrega la configuración `url_base` para resolver URL relativas en la table function `url` y el table engine `URL`, siguiendo la semántica de RFC 3986. [#101113](https://github.com/ClickHouse/ClickHouse/pull/101113) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se admiten valores negativos en la cláusula `LIMIT BY` para seleccionar filas desde el *final* de cada grupo en lugar del inicio. Por ejemplo, `LIMIT -2 BY id` devuelve las dos últimas filas por `id`. También se admiten desplazamientos negativos (`LIMIT -1 OFFSET -1 BY id`) y signos mixtos (`LIMIT -2 OFFSET 1 BY id`). [#103222](https://github.com/ClickHouse/ClickHouse/pull/103222) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se admite la función `json_value` para generar salida con `tuple` y `array`, lo que mejora el rendimiento de múltiples consultas JSON. [#78362](https://github.com/ClickHouse/ClickHouse/pull/78362) ([kevinyhzou](https://github.com/KevinyhZou)). Se admite el argumento JSONPath de múltiples rutas `Tuple`/`Array` en `JSON_VALUE`, `JSON_EXISTS` y `JSON_QUERY`, por @KevinyhZou. [#101102](https://github.com/ClickHouse/ClickHouse/pull/101102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se introduce un nuevo parámetro `kafka_autodetect_client_rack`. Si se configura, detecta la zona de disponibilidad mediante las capacidades de la nube y la propaga como parámetro `client.rack` de `librdkafka` para evitar comunicaciones entre zonas. [#81323](https://github.com/ClickHouse/ClickHouse/pull/81323) ([Ilya Golshtein](https://github.com/ilejn)).
* Se añade el tipo de evento `Read` a `system.blob_storage_log` para hacer seguimiento de las operaciones de lectura en el almacenamiento de objetos, controlado por la nueva configuración `enable_blob_storage_log_for_read_operations`. [#96867](https://github.com/ClickHouse/ClickHouse/pull/96867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los usuarios ahora pueden ver los watches de ZooKeeper emitidos por `clickhouse-server` mediante la nueva tabla `system.zookeeper_watches`. [#99277](https://github.com/ClickHouse/ClickHouse/pull/99277) ([Den Kalantaevskii](https://github.com/Diskein)).
* Se añadió el evento de perfil `Shards`, que cuenta el número de segmentos implicados en las consultas distribuidas, sumado en todas las tablas. [#99470](https://github.com/ClickHouse/ClickHouse/pull/99470) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las UDF de `WASM` pueden declararse como `DETERMINISTIC` y pasar a estar sujetas al plegado de constantes. [#100005](https://github.com/ClickHouse/ClickHouse/pull/100005) ([Vasily Chekalkin](https://github.com/bacek)).
* Se añade la configuración `parallel_replicas_prefer_local_replica`: cuando está deshabilitada, las réplicas paralelas se seleccionan únicamente mediante el algoritmo de equilibrio de carga, lo que permite que incluso las consultas con `max_parallel_replicas = 1` se dirijan a otro host. [#100139](https://github.com/ClickHouse/ClickHouse/pull/100139) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añaden las configuraciones de servidor `{disk,storage,http}_connections_rcvbuf` y `{disk,storage,http}_connections_sndbuf` para controlar el tamaño de los búferes de socket TCP en las conexiones HTTP salientes, lo que permite a los operadores anular el autotuning del kernel y limitar el uso de memoria por conexión. [#100478](https://github.com/ClickHouse/ClickHouse/pull/100478) ([Sema Checherinda](https://github.com/CheSema)).
* Se admite `CREATE OR REPLACE MATERIALIZED VIEW` con la misma semántica de intercambio atómico que `CREATE OR REPLACE TABLE`. Funciona con tablas internas, tablas `TO`, `POPULATE`, `REFRESH` y `ON CLUSTER`. [#100539](https://github.com/ClickHouse/ClickHouse/pull/100539) ([DQ](https://github.com/il9ue)).
* Se añaden las métricas de histograma `s3_read_request_duration_microseconds` y `s3_read_request_bytes` para observar la duración de la conexión de las solicitudes GET a S3 y los bytes consumidos, visibles en `system.histogram_metrics` y en el endpoint de Prometheus. [#102058](https://github.com/ClickHouse/ClickHouse/pull/102058) ([Sema Checherinda](https://github.com/CheSema)).
* Se añaden los motores de tabla `Paimon`, `PaimonS3`, `PaimonAzure`, `PaimonHDFS` y `PaimonLocal`, con compatibilidad con lectura incremental respaldada por el seguimiento del progreso de snapshots de Keeper. El modo incremental devuelve solo las filas nuevas desde el último snapshot confirmado. Las lecturas delta de snapshots específicos están disponibles mediante `paimon_target_snapshot_id`, y los límites de snapshots por consulta, mediante `max_consume_snapshots`. La actualización de metadatos en segundo plano se puede configurar con `paimon_metadata_refresh_interval_sec`. Controlado por `allow_experimental_paimon_storage_engine`. [#102343](https://github.com/ClickHouse/ClickHouse/pull/102343) ([XiaoBinMu](https://github.com/Binnn-MX)).
* Se añadió una nueva configuración de tabla de Kafka, `kafka_map_virtual_columns_on_write`. Cuando está habilitada, las columnas llamadas `_key`, `_timestamp`, `_headers.name` y `_headers.value` en el esquema de la tabla de Kafka se emiten como la clave, la marca temporal y los encabezados correspondientes del mensaje de Kafka en `INSERT`, y se excluyen de la carga útil del mensaje. [#103243](https://github.com/ClickHouse/ClickHouse/pull/103243) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadieron las consultas `SYSTEM PAUSE VIEW [db.]name` y `SYSTEM PAUSE VIEWS` para vistas materializadas actualizables. A diferencia de `SYSTEM STOP VIEW`, `SYSTEM PAUSE VIEW` no interrumpe la actualización que se esté ejecutando en ese momento: deja que la actualización en curso termine y solo impide las actualizaciones posteriores. Esto se deshace con `SYSTEM START VIEW` o `SYSTEM START VIEWS`, que ahora eliminan de forma uniforme tanto el estado detenido como el pausado. [#103252](https://github.com/ClickHouse/ClickHouse/pull/103252) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añadió la función `regexpPosition` (con los alias compatibles con PostgreSQL `regexpInstr` y `regexp_instr`) que devuelve la posición en bytes de la coincidencia número N de una expresión regular en una cadena. Admite desplazamiento inicial, modo de devolución tras la coincidencia, indicadores de regex y selección de grupo de captura. [#104172](https://github.com/ClickHouse/ClickHouse/pull/104172) ([Abhinav Agarwal](https://github.com/aagarwal-gtr)).
* Nuevas funciones `isPrime` e `isProbablePrime` para comprobaciones de primalidad. `isPrime` devuelve un resultado exacto para enteros sin signo de hasta `UInt64`. `isProbablePrime` también admite `UInt128` y `UInt256`; para esos tipos más amplios, `0` significa definitivamente compuesto y `1` significa probablemente primo. El segundo argumento opcional de `isProbablePrime`, `rounds`, controla la confianza (con un máximo de `256`); el valor predeterminado de `25` rondas limita la tasa de falsos positivos para un compuesto aleatorio a menos de `10^-15`, y `isProbablePrime` puede cancelarse. [#104234](https://github.com/ClickHouse/ClickHouse/pull/104234) ([Nihal Z. Miaji](https://github.com/nihalzp)). [#104639](https://github.com/ClickHouse/ClickHouse/pull/104639) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#104806](https://github.com/ClickHouse/ClickHouse/pull/104806) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* `clear` y `/clear` ahora limpian la terminal en las herramientas de línea de comandos de ClickHouse en lugar de ejecutarse como una consulta por error. [#104318](https://github.com/ClickHouse/ClickHouse/pull/104318) ([Tyler Hannan](https://github.com/tylerhannan)).
* Se permite que la table function `file` acepte un `Array(String)` de paths en consultas `SELECT`. [#104442](https://github.com/ClickHouse/ClickHouse/pull/104442) ([Yue](https://github.com/niyue)).
* Se añaden las columnas `deterministic` y `higher_order` a la tabla `system.functions`. [#104479](https://github.com/ClickHouse/ClickHouse/pull/104479) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Se añade un parámetro opcional de variante de codificación a `bech32Encode` (`bech32` / `bech32m`) y un modo de decodificación en bruto a `bech32Decode` para la codificación de direcciones no SegWit (p. ej., Cosmos SDK, Injective, Osmosis). [#98986](https://github.com/ClickHouse/ClickHouse/pull/98986) ([Yash ](https://github.com/Onyx2406)).
* Ahora puede write data en formato `AvroConfluent`, que antes era solo de entrada. Esto permite generar mensajes Avro con el framing de Confluent Schema Registry directamente desde ClickHouse, por ejemplo, al escribir en Kafka. El schema se registra automáticamente en el registry. Use la nueva configuración `output_format_avro_confluent_subject` para especificar el nombre del subject. [#101935](https://github.com/ClickHouse/ClickHouse/pull/101935) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se añadió la función `prettyPrintJSON` para dar formato a una cadena JSON de forma legible para humanos. Resulta útil para dashboards o informes en los que antes embellecerlo requería un paso adicional del lado del client. Cierra [#62523](https://github.com/ClickHouse/ClickHouse/issues/62523). [#102594](https://github.com/ClickHouse/ClickHouse/pull/102594) ([Dmitry Prokofyev](https://github.com/prokofyevDmitry)).
* Se añadió `STRING_AGG` como alias que no distingue entre mayúsculas y minúsculas de `groupConcat` para ofrecer compatibilidad con PostgreSQL y el estándar SQL. [#105125](https://github.com/ClickHouse/ClickHouse/pull/105125) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los resultados de subconsultas individuales ahora pueden almacenarse en caché de forma independiente mediante `SETTINGS use_query_cache = true` en subconsultas específicas, sin almacenar en caché toda la consulta externa. Un nuevo ajuste, `query_cache_for_subqueries = true`, permite propagar `use_query_cache` de forma masiva a todas las subconsultas. Nota: `use_query_cache` en la consulta externa ya no se propaga automáticamente a las subconsultas. [#99804](https://github.com/ClickHouse/ClickHouse/pull/99804) ([Vincent Voyer](https://github.com/vvo)).
* Se añadió resaltado de sintaxis basado en lexer al editor de consultas de la Web UI (`play.html`), siguiendo los colores de `clickhouse-client`. [#105105](https://github.com/ClickHouse/ClickHouse/pull/105105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="experimental-feature">
  #### Funcionalidad experimental
</div>

* Se añadió una interfaz experimental de terminal web en `/webterminal` que ofrece una sesión interactiva de `clickhouse-client` en el navegador a través de WebSocket. Está deshabilitada de forma predeterminada; actívela con la configuración del servidor `allow_experimental_webterminal`. Véala [aquí](https://play.clickhouse.com/webterminal?user=play). [#100277](https://github.com/ClickHouse/ClickHouse/pull/100277) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#105191](https://github.com/ClickHouse/ClickHouse/pull/105191) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#105059](https://github.com/ClickHouse/ClickHouse/pull/105059) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El motor `Kafka2` (experimental, con almacenamiento de offset basado en Keeper) ahora admite consultas `SELECT` directas y la configuración `kafka_commit_on_select`. [#100276](https://github.com/ClickHouse/ClickHouse/pull/100276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las UDF de `WASM` ahora pueden convertir más tipos numéricos: enteros más pequeños a enteros más amplios (p. ej., de `Int8` a `UInt64`) y cualquier entero a punto flotante (p. ej., de `Int32` a `Float32`). [#100435](https://github.com/ClickHouse/ClickHouse/pull/100435) ([Vasily Chekalkin](https://github.com/bacek)).
* Se admite la función `LIKE` en la consulta `DELETE FROM system.webassembly_modules`. [#104397](https://github.com/ClickHouse/ClickHouse/pull/104397) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Compatibilidad con tipos geo para `Iceberg`. [#103113](https://github.com/ClickHouse/ClickHouse/pull/103113) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se añadió la funcionalidad de sentencias preparadas al servidor ArrowFlight SQL. [#103047](https://github.com/ClickHouse/ClickHouse/pull/103047) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se mejoró la robustez del parser de KQL (para la compatibilidad con el lenguaje Kusto) al preservar la profundidad del parser y los contadores de retroceso entre las distintas etapas del parser de KQL, de modo que los límites del parser se apliquen de forma coherente en consultas KQL complejas. [#103528](https://github.com/ClickHouse/ClickHouse/pull/103528) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).

<div id="performance-improvement">
  #### Mejora del rendimiento
</div>

* Reutiliza la caché de metadatos del pie de página de Parquet al leer archivos Parquet locales mediante la table function `file` o el table engine `File`. Anteriormente, la caché solo se consultaba para backends de almacenamiento de objetos. [#104260](https://github.com/ClickHouse/ClickHouse/pull/104260) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Propaga `ORDER BY ... LIMIT n` a través de joins `LEFT`/`RIGHT` cuando la clave de ordenación solo hace referencia a columnas del lado conservado por el join, lo que restringe cuántas filas debe producir la entrada de ese lado antes de realizar el join. Esto se controla con la nueva configuración `query_plan_top_k_through_join` (habilitada de forma predeterminada). [#104268](https://github.com/ClickHouse/ClickHouse/pull/104268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilita de forma predeterminada las configuraciones `use_top_k_dynamic_filtering` y `use_skip_indexes_for_top_k` para mejorar el rendimiento de las consultas `ORDER BY ... LIMIT N`. [#99537](https://github.com/ClickHouse/ClickHouse/pull/99537) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Restringe `use_top_k_dynamic_filtering` de forma predeterminada a columnas de ordenación de longitud fija, evitando regresiones en consultas `ORDER BY <var-length-column> LIMIT N` en las que el coste de comparar el umbral por fila supera el ahorro de E/S. El comportamiento anterior sigue disponible mediante la nueva configuración `use_top_k_dynamic_filtering_for_variable_length_types`. [#104216](https://github.com/ClickHouse/ClickHouse/pull/104216) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usa la funcionalidad de arena sobredimensionada de `jemalloc` para reducir los fallos de página. [#103958](https://github.com/ClickHouse/ClickHouse/pull/103958) ([Nikita Taranov](https://github.com/nickitat)).
* Limita los streams activos simultáneamente en `UNION ALL` para reducir el uso máximo de memoria. [#100176](https://github.com/ClickHouse/ClickHouse/pull/100176) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimiza ligeramente la caché de páginas en espacio de usuario. [#100300](https://github.com/ClickHouse/ClickHouse/pull/100300) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Ahora la caché de páginas en espacio de usuario siempre es mejor que la caché de páginas del SO.
* Las lecturas en frío de almacenamiento de objetos a través de la caché de páginas en espacio de usuario (`use_page_cache_for_object_storage = 1`) ahora son significativamente más rápidas, porque los fallos consecutivos de caché se consolidan en una sola solicitud HTTP en lugar de una solicitud por bloque `page_cache_block_size`. [#104230](https://github.com/ClickHouse/ClickHouse/pull/104230) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera el análisis de índices que implica conversión de tipos y aplicación de funciones. Cierra [#55653](https://github.com/ClickHouse/ClickHouse/issues/55653). [#100366](https://github.com/ClickHouse/ClickHouse/pull/100366) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera las consultas muy grandes en tablas `Merge` sobre un gran número de tablas subyacentes. Cierra [#32465](https://github.com/ClickHouse/ClickHouse/issues/32465). [#100369](https://github.com/ClickHouse/ClickHouse/pull/100369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Elimina la vtable de los tipos de campo de configuración, reduciendo el tamaño de copia de `Settings` en \~28x y mejorando la localidad de caché mediante una disposición en arrays tipados para todos los tipos de configuración. [#102269](https://github.com/ClickHouse/ClickHouse/pull/102269) ([Raúl Marín](https://github.com/Algunenano)).
* Añade las configuraciones `max_threads_min_free_memory_per_thread` y `max_insert_threads_min_free_memory_per_thread` para reducir automáticamente el paralelismo de las consultas cuando el servidor tiene poca memoria libre. [#100383](https://github.com/ClickHouse/ClickHouse/pull/100383) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduce el uso de memoria en sistemas con poca memoria (\< 4 GiB). [#100389](https://github.com/ClickHouse/ClickHouse/pull/100389) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió `OptimizeTrivialGroupByLimitPass`. Para consultas triviales `SELECT ... FROM t GROUP BY k LIMIT n` (sin `HAVING`, `ORDER BY` ni funciones de ventana), el analizador ahora establece `max_rows_to_group_by = n + offset` con `group_by_overflow_mode = 'any'`, de modo que la agregación se detiene en cuanto se han generado `n` claves distintas, en lugar de agrupar todo el conjunto de entrada. Controlado por la nueva opción `optimize_trivial_group_by_limit_query` (habilitada de forma predeterminada). [#104473](https://github.com/ClickHouse/ClickHouse/pull/104473) ([Amos Bird](https://github.com/amosbird)) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Índice min-max implícito a nivel de gránulo para las columnas virtuales `_part_offset` y `_block_number`, también para proyecciones. Permite una poda rápida de gránulos basada en predicados sobre columnas virtuales. [#103952](https://github.com/ClickHouse/ClickHouse/pull/103952) ([Mikhail Artemenko](https://github.com/Michicosun)). [#104746](https://github.com/ClickHouse/ClickHouse/pull/104746) ([Mikhail Artemenko](https://github.com/Michicosun)). [#105137](https://github.com/ClickHouse/ClickHouse/pull/105137) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Para la familia de métodos de agregación `prealloc_serialized`, se precalculan los hash por fila durante la pasada de serialización por lotes y se usan para (a) evitar volver a calcular el hash en `emplaceKey`/`findKey` y (b) realizar prefetch por software del bucket de la siguiente fila. Esto acelera la agregación serializada o de cadenas con múltiples claves al ocultar la latencia de los fallos de caché de la tabla hash. [#104475](https://github.com/ClickHouse/ClickHouse/pull/104475) ([Amos Bird](https://github.com/amosbird)) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Caché de condiciones de consulta para tablas `Iceberg`. [#102115](https://github.com/ClickHouse/ClickHouse/pull/102115) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se optimizaron `cramersV`, `cramersVBiasCorrected`, `theilsU` y `contingency` cuando se usan con funciones de ventana. Cierra [#83521](https://github.com/ClickHouse/ClickHouse/issues/83521). [#93384](https://github.com/ClickHouse/ClickHouse/pull/93384) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se añadió una optimización de consultas que reescribe `tupleElement(dictGet('dict', ('a', 'b', 'c'), key), N)` como `dictGet('dict', 'a', key)`, evitando recuperar atributos de diccionario innecesarios. Controlado por la opción `optimize_dictget_tuple_element` (habilitada de forma predeterminada). [#100186](https://github.com/ClickHouse/ClickHouse/pull/100186) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se habilitó el almacenamiento en búfer para los pasos de ordenación en el iniciador de consultas distribuidas con ordenación. [#100661](https://github.com/ClickHouse/ClickHouse/pull/100661) ([Nikita Taranov](https://github.com/nickitat)).
* Mejora del rendimiento de `partial_merge` JOIN. [#100945](https://github.com/ClickHouse/ClickHouse/pull/100945) ([Artem Zuikov](https://github.com/4ertus2)).
* Se redujo ligeramente la sobreasignación de memoria en `partial_merge` JOIN. [#100963](https://github.com/ClickHouse/ClickHouse/pull/100963) ([Artem Zuikov](https://github.com/4ertus2)).
* Se optimizaron las asignaciones/liberaciones de memoria almacenando en caché la configuración de muestreo en lugar de recorrer toda la jerarquía del rastreador de memoria. [#101267](https://github.com/ClickHouse/ClickHouse/pull/101267) ([Azat Khuzhin](https://github.com/azat)).
* Se redujo la sobrecarga de asignación de memoria durante las cargas multiparte a S3 preasignando contenedores internos de seguimiento. [#101799](https://github.com/ClickHouse/ClickHouse/pull/101799) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
* Se añadió prefetch por software en la fase de sondeo de hash join para reducir la latencia de acceso a memoria en tablas hash grandes, controlado por la opción `enable_software_prefetch_in_join`. [#102444](https://github.com/ClickHouse/ClickHouse/pull/102444) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Optimiza la estructura de `MemoryTracker`, mejorando su rendimiento en \~25%. [#103464](https://github.com/ClickHouse/ClickHouse/pull/103464) ([Azat Khuzhin](https://github.com/azat)).
* Reescribe los predicados `coalesce(a, b, ...) <op> const` y `ifNull(a, b) <op> const` antes del análisis de índices para que la primary key por columna y los skip indexes de cada argumento puedan descartar gránulos. Se controla con la nueva configuración `allow_key_condition_coalesce_rewrite` (activada de forma predeterminada). [#103468](https://github.com/ClickHouse/ClickHouse/pull/103468) ([Manuel](https://github.com/raimannma)).
* Se mejoró significativamente el rendimiento de las consultas al leer catálogos Iceberg con archivos JSON de metadatos grandes al optimizar el procesamiento de barras escapadas. [#103998](https://github.com/ClickHouse/ClickHouse/pull/103998) ([Mohaidoss](https://github.com/mohaidoss)).
* Evita la sobrecarga de la caché sin comprimir de índices cuando la caché está deshabilitada (configuración del servidor `index_uncompressed_cache_size = 0`, que es el valor predeterminado). [#104063](https://github.com/ClickHouse/ClickHouse/pull/104063) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige consultas `ORDER BY ... LIMIT` con límites pequeños que leían demasiados gránulos al combinarse con un filtro `WHERE` no selectivo. Antes, cualquier filtro por encima de una lectura en orden deshabilitaba la división de tareas por rango de marcas, por lo que el pipeline no podía cancelarse entre gránulos y leía toda la parte para cada flujo. [#104112](https://github.com/ClickHouse/ClickHouse/pull/104112) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigió la falta de reutilización de la caché de tamaños de hash table tras reordenar los lados del JOIN. [#104131](https://github.com/ClickHouse/ClickHouse/pull/104131) ([Nikita Taranov](https://github.com/nickitat)).
* Cuando `fsync_after_insert` está habilitada, ahora el fsync de los archivos de la parte se realiza en paralelo usando el IO thread pool, lo que acelera la finalización de inserciones en wide tables. La carga completa de ClickBench `hits` es aproximadamente un 22% más rápida. [#104137](https://github.com/ClickHouse/ClickHouse/pull/104137) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Vectoriza `find_first_symbols`, `find_first_not_symbols`, `find_last_symbols_or_null`, `find_last_not_symbols_or_null` y `splitInto` en AArch64 usando NEON. Antes, estas funciones auxiliares solo tenían una ruta SIMD en x86 (SSE2 / SSE4.2) y en ARM recurrían a un bucle escalar. Acelera el parsing de TSV en \~2x, las funciones de URL y `splitByChar` en \~1.3x en el dataset `hits` de ClickBench; el parsing de JSON muy denso (cadencia de campos de menos de 16 bytes) empeora ligeramente, en línea con la compensación ya existente en SSE2. [#104228](https://github.com/ClickHouse/ClickHouse/pull/104228) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La lectura de datos a través de una columna `ALIAS` trivial (p. ej., `some_alias['key']` donde `some_alias ALIAS m`) ahora sigue la misma ruta de lectura por subcolumna que al referenciar directamente la columna subyacente, restaurando un importante ahorro de E/S para columnas con alias `Map`, `Array`, `Tuple` y `Nullable`. [#104245](https://github.com/ClickHouse/ClickHouse/pull/104245) ([Raúl Marín](https://github.com/Algunenano)).
* Reduce la contención de bloqueos en la ruta de lectura asíncrona de sistemas de archivos remotos al hacer que `AsyncReadCounters` por consulta no use bloqueos. [#104374](https://github.com/ClickHouse/ClickHouse/pull/104374) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Plan de consulta ligeramente mejor para el escaneo en orden de projections. [#103723](https://github.com/ClickHouse/ClickHouse/pull/103723) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Amplía `optimizeUseNormalProjections` para que también maneje un caso específico en el que no se filtró nada, pero la sorting key de la projection puede eliminar el paso de ordenación del plan de consulta. [#104680](https://github.com/ClickHouse/ClickHouse/pull/104680) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Permitir que el azúcar sintáctico `json.path[]` y las indicaciones de tipo explícitas funcionen correctamente en rutas `JSON` tipadas. [#99179](https://github.com/ClickHouse/ClickHouse/pull/99179) ([Pavel Kruglov](https://github.com/Avogar)).
* Optimizar `json.path[N].nested.path` (que se expande a `tupleElement(tupleElement(json.path[N], 'nested'), 'path')`) a `json.path[].nested.path[N]`, que lee muchos menos datos. [#99802](https://github.com/ClickHouse/ClickHouse/pull/99802) ([Pavel Kruglov](https://github.com/Avogar)).
* Optimizar las comprobaciones de acceso de `SHOW TABLES` en `system.parts` sacando del bucle por tabla las comprobaciones de permisos a nivel de base de datos. [#100860](https://github.com/ClickHouse/ClickHouse/pull/100860) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Eliminar una comprobación redundante de acceso por tabla para `SHOW TABLES` en la ruta rápida de `SELECT name` / `SELECT database, name` de `system.tables`. [#100881](https://github.com/ClickHouse/ClickHouse/pull/100881) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Habilitar la compilación JIT en macOS. [#100947](https://github.com/ClickHouse/ClickHouse/pull/100947) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Omitir el aplazamiento de la política de filas después de `FINAL` cuando depende solo de las columnas de la clave de ordenación y es determinista, y omitir el aplazamiento correspondiente de `PREWHERE` que la política de filas estaba forzando en ese caso. [#102884](https://github.com/ClickHouse/ClickHouse/pull/102884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añadió soporte para `hasAny` y `hasAll` como predicados de filtro en índices de texto. [#103266](https://github.com/ClickHouse/ClickHouse/pull/103266) ([Anton Popov](https://github.com/CurtizJ)).
* Dirigir el estado de heap persistente de MergeTree (metadatos por parte y por tabla) a una arena dedicada de jemalloc, expuesta mediante las métricas asíncronas `jemalloc.mergetree_arena.*`. Reduce la fragmentación de la arena predeterminada en estado estable y evita que los supervivientes por parte retengan páginas que, de otro modo, podrían liberarse por decaimiento. [#104136](https://github.com/ClickHouse/ClickHouse/pull/104136) ([Raúl Marín](https://github.com/Algunenano)).
* Mejorar el manejo del tiempo de espera del client de ZooKeeper bajo carga elevada cuando muchas solicitudes se canalizan por una sola sesión. El client de ZooKeeper ahora usa un tiempo de espera basado en el progreso: mientras se reciba cualquier dato del servidor dentro de `session_timeout_ms`, la espera se amplía. Un límite estricto de `3 * session_timeout_ms` por solicitud sigue acotando la latencia del llamador. Cierra [#100466](https://github.com/ClickHouse/ClickHouse/issues/100466). [#104351](https://github.com/ClickHouse/ClickHouse/pull/104351) ([Antonio Andelic](https://github.com/antonio2368)).
* Mover los indicadores de trace por evento a un array separado y asignarlos de forma diferida, reduciendo la sobrecarga del tracing de `ProfileEvents`. [#105030](https://github.com/ClickHouse/ClickHouse/pull/105030) ([Azat Khuzhin](https://github.com/azat)).
* Añadir `compareTrackAt` para `ColumnDecimal`, mejorando el rendimiento de las comparaciones en columnas `Decimal`. [#105110](https://github.com/ClickHouse/ClickHouse/pull/105110) ([Artem Zuikov](https://github.com/4ertus2)).
* Se añadió una implementación SIMD de `MD5` (`AVX2` / `AVX512`) que calcula hashes de múltiples entradas en paralelo, mejorando el rendimiento. [#105161](https://github.com/ClickHouse/ClickHouse/pull/105161) ([Joanna Hulboj](https://github.com/jh0x)).

<div id="improvement">
  #### Mejora
</div>

* Mejora la salida de ayuda de todas las aplicaciones de ClickHouse: `--help` ahora devuelve siempre el código de salida `0`, escribe en `stdout` y `clickhouse --help` en el nivel superior muestra todos los subcomandos. Añade una opción `--no-sudo` para `clickhouse start` / `restart` (útil en Docker) y un subcomando `clickhouse help`. Continuación de [#58244](https://github.com/ClickHouse/ClickHouse/issues/58244) de @qoega. [#98148](https://github.com/ClickHouse/ClickHouse/pull/98148) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El valor predeterminado de `input_format_column_name_matching_mode` cambia de `match_case` a `auto`. Los formatos de entrada que comparan los nombres de las columnas de entrada con el esquema de la tabla (`JSONEachRow`, `CSVWithNames`, `JSONColumns`, `BSONEachRow`, `RowBinaryWithNames`, etc.) ahora primero intentan una coincidencia sensible a mayúsculas y minúsculas y, si falla, recurren a una coincidencia no sensible a mayúsculas y minúsculas. El comportamiento estricto anterior se conserva con `compatibility`. [#104320](https://github.com/ClickHouse/ClickHouse/pull/104320) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió `STDDEV` como alias no sensible a mayúsculas y minúsculas de `stddevSamp` para compatibilidad con PostgreSQL/el estándar SQL. [#105120](https://github.com/ClickHouse/ClickHouse/pull/105120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió `array_to_string` como alias no sensible a mayúsculas y minúsculas de `arrayStringConcat` para compatibilidad con PostgreSQL. [#105121](https://github.com/ClickHouse/ClickHouse/pull/105121) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió `unnest` como alias no sensible a mayúsculas y minúsculas de `arrayJoin` para compatibilidad con PostgreSQL (en forma de llamada de función). [#105124](https://github.com/ClickHouse/ClickHouse/pull/105124) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La barra de progreso de `clickhouse-client` ahora muestra el uso de disco de los datos temporales (p. ej., para ordenación externa, aggregation o JOIN) junto a la RAM, incluido un desglose por host para las consultas distribuidas. [#105190](https://github.com/ClickHouse/ClickHouse/pull/105190) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió `system.predicate_statistics_log`, un nuevo log muestreado de la selectividad de los filtros de predicado y de la poda de gránulos de índice de MergeTree por consulta. Está deshabilitado de forma predeterminada; actívelo mediante la configuración del servidor `predicate_statistics_sample_rate`. Es necesario para las recomendaciones automáticas de índices y proyecciones. [#98727](https://github.com/ClickHouse/ClickHouse/pull/98727) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Permite omitir el segmento local con una tabla ausente cuando `skip_unavailable_shards` está habilitado. [#100141](https://github.com/ClickHouse/ClickHouse/pull/100141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade advertencias al iniciar (visibles en `system.warnings`) cuando se está resincronizando un arreglo mdraid de Linux o este se encuentra en estado degradado, ya que ambas situaciones pueden afectar al rendimiento de E/S del disco o indicar fallos de disco. [#100941](https://github.com/ClickHouse/ClickHouse/pull/100941) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las UDFs de WASM ahora aparecen en `system.functions` con las columnas `origin` (`WasmUserDefined`), `syntax`, `arguments` y `returned_value` correctas, rellenadas a partir de sus metadatos de tipos de ClickHouse. Antes faltaban o aparecían duplicadas con un origen incorrecto. [#101053](https://github.com/ClickHouse/ClickHouse/pull/101053) ([Vasily Chekalkin](https://github.com/bacek)).
* La table function `generate_series` ahora admite valores negativos de step para generar secuencias descendentes; por ejemplo, `SELECT * FROM generate_series(99, 0, -1)`. [#101056](https://github.com/ClickHouse/ClickHouse/pull/101056) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige las excepciones `Context has expired` que generaban algunas funciones (`dotProduct`, `formatRow`, `structureToCapnProtoSchema`/`structureToProtobufSchema`, funciones definidas por el usuario) al usarse en rutas de ejecución diferida, como expresiones `DEFAULT`/`MATERIALIZED` y configuraciones del motor de tabla, asegurando que esas funciones conserven una referencia fuerte al contexto cuando sea necesario. [#101109](https://github.com/ClickHouse/ClickHouse/pull/101109) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige errores lógicos espurios `Cache limits violated` en prioridades creadas con límites cero (como la prioridad de filesystem cache por consulta que se usa cuando `enable_filesystem_query_cache_limit` está activado). [#101428](https://github.com/ClickHouse/ClickHouse/pull/101428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Detecta automáticamente la región de los endpoints `s3express`. [#101520](https://github.com/ClickHouse/ClickHouse/pull/101520) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Añade soporte para IDs de campo en archivos de datos al escribir en `Iceberg`. Cierra [#102322](https://github.com/ClickHouse/ClickHouse/issues/102322). [#102362](https://github.com/ClickHouse/ClickHouse/pull/102362) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* El panel izquierdo de la interfaz web (`play.html`) ahora se desplaza de forma independiente, permanece visible al desplazarse por la página y, al hacer clic en una tabla, lleva al área de consulta. [#102498](https://github.com/ClickHouse/ClickHouse/pull/102498) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite abrir la interfaz de Play en una pestaña nueva mediante Ctrl/Cmd/Shift+clic o clic central sobre el logotipo de ClickHouse en el panel izquierdo. [#102501](https://github.com/ClickHouse/ClickHouse/pull/102501) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nuevas métricas para rastrear la memoria utilizada por las claves primarias de las proyecciones y la granularidad del índice de las proyecciones en todas las tablas. [#102587](https://github.com/ClickHouse/ClickHouse/pull/102587) ([Narasimha Pakeer](https://github.com/npakeer)).
* Aplica `max_network_bandwidth_for_user` y `max_network_bandwidth_for_all_users` a las lecturas y escrituras en sistemas de archivos remotos. [#103080](https://github.com/ClickHouse/ClickHouse/pull/103080) ([Azat Khuzhin](https://github.com/azat)).
* Mejora la resiliencia de las copias de seguridad cuando las vistas materializadas actualizables se refrescan constantemente, tomando decisiones basadas en el estado de las tablas de la instantánea en lugar de en un estado global. [#103384](https://github.com/ClickHouse/ClickHouse/pull/103384) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* `SELECT * FROM system.databases` ahora siempre muestra las bases de datos de los catálogos de lago de datos, independientemente de la configuración `show_data_lake_catalogs_in_system_tables`. Antes estaban ocultas de forma predeterminada, lo que no era coherente con `SHOW DATABASES`, que siempre las mostraba. [#103444](https://github.com/ClickHouse/ClickHouse/pull/103444) ([Alsu Giliazova](https://github.com/alsugiliazova)).
* Alinea en el código el valor predeterminado de la configuración del servidor `concurrent_threads_soft_limit_ratio_to_cores` con el valor incluido en `config.xml` (`2`), para que el scheduler predeterminado de hilos concurrentes `max_min_fair` limite los hilos de procesamiento de consultas a 2x núcleos desde el inicio, incluso cuando no se use el `config.xml` distribuido. [#103446](https://github.com/ClickHouse/ClickHouse/pull/103446) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora la robustez del sanitizador en casos límite del parser y de funciones de cadenas: maneja entradas vacías en `getURLScheme`, evita la aritmética con punteros nulos en las comprobaciones de `max_query_size` de `Lexer::nextToken` y corta la evaluación de subsecuencias UTF-8 en haystacks vacíos antes de decodificar. [#103489](https://github.com/ClickHouse/ClickHouse/pull/103489) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se mejoró la corrección de la inferencia de monotonicidad para `divide(0, x)` e `intDiv(0, x)`: antes, las funciones se marcaban incondicionalmente como monotónicas, pero `0 / x` no es monotónica en ningún rango que incluya 0 porque `0 / 0` no está definido (`NaN`/`Inf` para `divide`, excepción de división por cero para `intDiv`). Esta suposición incorrecta hacía que `KeyCondition::applyMonotonicFunctionsChainToRange` produjera rangos con `left > right`, lo que provocaba un `LOGICAL_ERROR` `Invalid binary search result in MergeTreeSetIndex` en compilaciones de depuración cuando una expresión `IN` / `NOT IN` sobre la primary key envolvía la clave en `divide(0, key)` o `intDiv(0, key)`. Las compilaciones de release no se vieron afectadas: la aserción está condicionada por `#ifndef NDEBUG`. [#103621](https://github.com/ClickHouse/ClickHouse/pull/103621) ([Groene AI](https://github.com/groeneai)).
* Se reemplazaron las métricas asíncronas `HTTPConnectionPool*TCP{Rcv,Snd}BufBytes_{p50,p75,p90,p95}` por un histograma basado en buckets `http_pool_tcp_buf_bytes` (labels `group`, `direction`) en `system.histogram_metrics`. Se conservan las métricas asíncronas totales por grupo. [#103704](https://github.com/ClickHouse/ClickHouse/pull/103704) ([Sema Checherinda](https://github.com/CheSema)).
* Los server settings `{disk,storage,http}_connections_{rcvbuf,sndbuf}` ahora se muestran como modificables sin reinicio en `system.server_settings`. Sus values pueden actualizarse mediante `SYSTEM RELOAD CONFIG`; la ruta de aplicación en runtime ya existía desde [#100478](https://github.com/ClickHouse/ClickHouse/issues/100478). [#103772](https://github.com/ClickHouse/ClickHouse/pull/103772) ([Sema Checherinda](https://github.com/CheSema)).
* Se añadió soporte para símbolos resueltos (`Array(String)`) en `flameGraph`. [#103816](https://github.com/ClickHouse/ClickHouse/pull/103816) ([Azat Khuzhin](https://github.com/azat)).
* El client de la CLI ahora puede especificar `<rainbow_parentheses>false</rainbow_parentheses>` en su configuración en entornos donde los colores del terminal interfieren con los paréntesis (de forma similar, `clickhouse format` ahora tiene `--no_rainbow_parentheses`). [#103851](https://github.com/ClickHouse/ClickHouse/pull/103851) ([Larry Snizek](https://github.com/larry-cdn77)).
* Se corrigió la búsqueda UTF-8 sin distinción entre mayúsculas y minúsculas de `MultiVolnitsky` revirtiendo inserciones parciales de `putNGram` en caso de fallo y cambiando los needles fallidos a buscadores de fallback, para evitar estados inconsistentes. [#103864](https://github.com/ClickHouse/ClickHouse/pull/103864) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se implementó `sched_getcpu` mediante `rseq` TLS en musl con compatibilidad con glibc. [#104016](https://github.com/ClickHouse/ClickHouse/pull/104016) ([Azat Khuzhin](https://github.com/azat)).
* Una vista materializada actualizable replicada en modo APPEND ya no se actualizará dos veces si la connection con ZooKeeper se pierde brevemente durante la actualización. [#104051](https://github.com/ClickHouse/ClickHouse/pull/104051) ([Michael Kolupaev](https://github.com/al13n321)).
* Se permite que las tablas Distributed sin una lista explícita de columnas validen las claves de sharding con respecto a la structure inferida de la tabla remota. [#104111](https://github.com/ClickHouse/ClickHouse/pull/104111) ([Yue](https://github.com/niyue)).
* Se corrigió REST catalog con la path `Azure` `abfss`. [#104120](https://github.com/ClickHouse/ClickHouse/pull/104120) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se respetan los ajustes de authentication `role_arn` y `role_session_name` en el client de snapshots S3 de Keeper, lo que permite que las cargas de snapshots usen autenticación basada en STS `AssumeRole`. [#104140](https://github.com/ClickHouse/ClickHouse/pull/104140) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una fuga de memoria al ejecutar consultas con CTE `MATERIALIZED`. [#104153](https://github.com/ClickHouse/ClickHouse/pull/104153) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la excepción de `lowerUTF8` / `upperUTF8` al procesar grandes conjuntos de datos no ASCII (p. ej., durante la creación de índices de texto) en los que el búfer de salida acumulado superaría los 2 GiB; rechaza las filas individuales excesivamente largas con un error claro. [#104229](https://github.com/ClickHouse/ClickHouse/pull/104229) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Refuerza la carga de estadísticas de columnas de MergeTree frente a fallos transitorios de E/S para evitar que se desactiven permanentemente las optimizaciones basadas en estadísticas para las partes afectadas. [#104372](https://github.com/ClickHouse/ClickHouse/pull/104372) ([zoomxi](https://github.com/zoomxi)).
* `INSERT INTO ... SELECT FROM input(...)` ya no requiere el privilegio `CREATE TEMPORARY TABLE`. [#104470](https://github.com/ClickHouse/ClickHouse/pull/104470) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió una nueva configuración de MergeTree, `concurrent_part_removal_threshold_for_remote_disk` (valor predeterminado: `16`), que se usa en lugar de `concurrent_part_removal_threshold` cuando al menos una de las partes que se va a eliminar está almacenada en un disco remoto. El umbral anterior de `100` podía hacer que `DROP TABLE` y otras operaciones de eliminación de partes en backends de object storage se quedaran bloqueadas durante decenas de segundos porque las eliminaciones se realizaban en serie, aunque cada una implicaba una ida y vuelta de red independiente. La nueva configuración hace que la ruta de eliminación en paralelo se active mucho antes en el almacenamiento remoto, sin cambiar el comportamiento en disco local. [#104676](https://github.com/ClickHouse/ClickHouse/pull/104676) ([Groene AI](https://github.com/groeneai)).
* La nueva configuración `defer_partition_pruning_after_final` (valor predeterminado: `1`) hace que el comportamiento introducido en la versión 26.3 de omitir la partition pruning bajo `FINAL` pase a ser opcional. Establécela en `0` para restaurar la partition pruning anterior a la 26.3, sustancialmente más rápida en cargas de trabajo de registros de eventos donde las filas con la misma PK no pueden abarcar particiones. `compatibility = '26.2'` la cambia a `0` automáticamente. [#104705](https://github.com/ClickHouse/ClickHouse/pull/104705) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige que `intExp2` devolviera resultados incorrectos para entradas fuera de rango (desplazamientos `>= 64` bajo JIT, y enteros con magnitud superior a `INT_MAX` en ambas rutas de código). [#105054](https://github.com/ClickHouse/ClickHouse/pull/105054) ([Raúl Marín](https://github.com/Algunenano)).
* Pone entre comillas los argumentos del shell construidos a partir de opciones de CLI y de la entrada analizada en `clickhouse install` y `clickhouse git-import` para que las rutas, los nombres de usuario/grupo y los hash de commit que contienen espacios en blanco o metacaracteres del shell se manejen correctamente. [#105232](https://github.com/ClickHouse/ClickHouse/pull/105232) ([Raúl Marín](https://github.com/Algunenano)).
* El table engine `Alias` ya no es experimental y está disponible sin la configuración `allow_experimental_alias_table_engine`. [#103488](https://github.com/ClickHouse/ClickHouse/pull/103488) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la opción `--queries-format` a `clickhouse-benchmark` para elegir entre el formato de entrada predeterminado, con una consulta por línea y tabulaciones escapadas (`tsv`), y el análisis de la entrada estándar como un script con varias consultas separadas por `;` (`script`). [#99972](https://github.com/ClickHouse/ClickHouse/pull/99972) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Los operadores de tuplas por elemento `tuplePlus`, `tupleMinus`, `tupleMultiply`, `tupleDivide`, `tupleModulo`, `tupleIntDiv` y `tupleIntDivOrZero` ahora son variádicos y aceptan dos o más tuplas del mismo tamaño, aplicándose elemento por elemento como un left fold. Antes aceptaban exactamente dos argumentos. [#104659](https://github.com/ClickHouse/ClickHouse/pull/104659) ([Aruj Bansal](https://github.com/arujbansal)).
* Se añadió una nueva interfaz web integrada en `/processors-profile` que visualiza el pipeline de cualquier consulta `SELECT` anterior como un mapa de calor, a partir de `system.query_log` y `system.processors_profile_log`. Cada procesador se colorea según su `elapsed_us` y muestra estadísticas por procesador (filas, bytes, tiempos de espera) al pasar el cursor. [#104614](https://github.com/ClickHouse/ClickHouse/pull/104614) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* La configuración `query_plan_use_logical_join_step` (y su alias `query_plan_use_new_logical_join_step`) ahora está obsoleta y no tiene ningún efecto; el paso lógico de JOIN se usa siempre. [#104017](https://github.com/ClickHouse/ClickHouse/pull/104017) ([Vladimir Cherkasov](https://github.com/vdimir)).
* El campo `user` en `play.html` y en las demás páginas web integradas (`dashboard.html`, `jemalloc.html`, `merges.html`, `binary.html`, `webterminal.html`) ya no se rellena previamente con el texto literal `default`. Ahora muestra una sugerencia de marcador de posición `user` y está vacío de forma predeterminada. Cuando se deja vacío, la página no envía un parámetro de URL `user=` (y el JSON de autenticación de WebTerminal omite el campo `user`), por lo que el servidor aplica su comportamiento habitual y recurre al usuario `default`; además, las credenciales HTTP proporcionadas a través de otros canales (`X-ClickHouse-User`, HTTP Basic, configuración `<handler><user>` por handler) ya no se sobrescriben. [#105254](https://github.com/ClickHouse/ClickHouse/pull/105254) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lector `ORC`: se desacopla la lectura basada en offsets (`readBigAt`) de `use_prefetch`, para que los datos codificados con EC en `HDFS` puedan leerse correctamente incluso cuando `use_prefetch = false` (por ejemplo, con Gluten). [#103348](https://github.com/ClickHouse/ClickHouse/pull/103348) ([zhanglistar](https://github.com/zhanglistar)).
* Los archivos descargados desde `play.html` con el formato `CSVWithNames` ahora usan la extensión de archivo `.csv`. [#103737](https://github.com/ClickHouse/ClickHouse/pull/103737) ([JackFielding](https://github.com/JackFielding)).
* Se añadió más validación de entrada para el catálogo BigLake. [#105117](https://github.com/ClickHouse/ClickHouse/pull/105117) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Corrección de errores (mal funcionamiento visible para el usuario en una versión estable oficial)
</div>

* Corrige el formato inconsistente al recordar si una expresión estaba entre paréntesis. [#92340](https://github.com/ClickHouse/ClickHouse/pull/92340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la comparación correcta entre los tipos Decimal y Float. [#94293](https://github.com/ClickHouse/ClickHouse/pull/94293) ([zoomxi](https://github.com/zoomxi)).
* Permite argumentos posicionales en consultas distribuidas. [#94359](https://github.com/ClickHouse/ClickHouse/pull/94359) ([simonmichal](https://github.com/simonmichal)).
* Corrige un fallo de aserción en `DatabaseCatalog::updateDependencies` al eliminar y volver a crear una vista materializada con el mismo nombre; también corrige la pérdida silenciosa de dependencias de vistas durante `RENAME TABLE` o `EXCHANGE TABLES` cuando las dependencias referenciales estaban vacías. [#98779](https://github.com/ClickHouse/ClickHouse/pull/98779) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una interrupción del servidor (fallo de aserción en `DatabaseCatalog::getTableImpl`) que se producía al crear una tabla mediante `ON CLUSTER` con un UUID idéntico al de una base de datos existente. [#98861](https://github.com/ClickHouse/ClickHouse/pull/98861) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Se corrigió el uso de índices de omisión en lecturas de datos (con la configuración `use_skip_indexes_on_data_read` habilitada) y en patch parts existentes creados por actualizaciones ligeras. [#99543](https://github.com/ClickHouse/ClickHouse/pull/99543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la excepción "Not-ready Set" cuando un filtro con `IN (subquery)` es movido a PREWHERE por el optimizador de consultas. [#100375](https://github.com/ClickHouse/ClickHouse/pull/100375) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el error "Cannot find column" al combinar `ADD COLUMN` con `RENAME COLUMN` en una sola instrucción `ALTER TABLE`. [#100387](https://github.com/ClickHouse/ClickHouse/pull/100387) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige las vistas con operadores `UNION` y `INTERSECT`/`EXCEPT` mixtos que devolvían resultados incorrectos después de `DETACH`/`ATTACH` o de reiniciar el servidor. [#100390](https://github.com/ClickHouse/ClickHouse/pull/100390) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la excepción "Trying to execute PLACEHOLDER action" que podía producirse durante pruebas de estrés con el AST fuzzer cuando aparecía una subconsulta correlacionada en una cláusula IN. [#100398](https://github.com/ClickHouse/ClickHouse/pull/100398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una excepción de error lógico al insertar en una tabla Iceberg con una columna `Date` particionada por transformaciones `year`, `month` o `day`. [#100404](https://github.com/ClickHouse/ClickHouse/pull/100404) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el uso de un índice de omisión con datos incompatibles después de que `ALTER TABLE MODIFY COLUMN` cambie el tipo de la columna, lo que podía provocar fallos del servidor en compilaciones con sanitizador o resultados de consulta incorrectos. [#100526](https://github.com/ClickHouse/ClickHouse/pull/100526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la filtración de credenciales en `query_log` para las funciones de tabla `paimonCluster`, `paimonS3Cluster`, `paimonAzureCluster` y `deltaLakeS3`. [#100529](https://github.com/ClickHouse/ClickHouse/pull/100529) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* Corrige que `DROP TABLE` en tablas con motor Kafka pudiera quedar bloqueado indefinidamente debido a un interbloqueo en `rd_kafka_consumer_close`. [#100604](https://github.com/ClickHouse/ClickHouse/pull/100604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Sustituye la lista `source_table_engines` codificada de forma fija por una búsqueda en tiempo de ejecución mediante `StorageFactory` y `DatabaseFactory`. Añade `source_access_type` a `DatabaseFactory::EngineFeatures` para que `CREATE DATABASE` con motores de origen (PostgreSQL, MySQL, S3, etc.) requiera los mismos permisos de origen que `CREATE TABLE`. Corrige el fallo de `GRANT TABLE ENGINE ON *` con `table_engines_require_grant=false`. Cierra [#71544](https://github.com/ClickHouse/ClickHouse/issues/71544). [#100746](https://github.com/ClickHouse/ClickHouse/pull/100746) ([pufit](https://github.com/pufit)).
* Corrige un fallo del servidor al leer desde una tabla cuya columna `ALIAS` contenía una subconsulta correlacionada anidada dentro de una llamada a función (p. ej., `ALIAS toString(intDivOrZero(x, (SELECT ...)))`). `CREATE TABLE` y `ALTER TABLE` ahora rechazan cualquier subconsulta, a cualquier profundidad, en expresiones de columna `DEFAULT` / `ALIAS` / `MATERIALIZED` con `THERE_IS_NO_DEFAULT_VALUE`. Antes, la validación superficial aceptaba subconsultas anidadas, por lo que el caso correlacionado provocaba un fallo en tiempo de lectura y el caso anidado no correlacionado parecía funcionar, pero podía dar lugar a comportamientos inesperados; ahora ambos se rechazan en tiempo de DDL. [#100753](https://github.com/ClickHouse/ClickHouse/pull/100753) ([Groene AI](https://github.com/groeneai)).
* Se corrigió un fallo del servidor (`Logical error: Bad cast from type DB::FunctionNode to DB::ColumnNode`) que podía producirse al usar consultas con subconsultas correlacionadas en tablas que tienen definiciones `CONSTRAINT ... ASSUME`, cuando están habilitadas las settings `optimize_substitute_columns` y `convert_query_to_cnf`. [#100756](https://github.com/ClickHouse/ClickHouse/pull/100756) ([Groene AI](https://github.com/groeneai)).
* Corrige una excepción que podía producirse al insertar una fila en una columna JSON cuando la fila introducía un nuevo campo dinámico junto con un campo tipado con un valor incompatible, y la columna se usaba posteriormente como clave de GROUP BY. [#100758](https://github.com/ClickHouse/ClickHouse/pull/100758) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige que la planificación de IO de la carga de trabajo se omitiera silenciosamente para escrituras en S3 o almacenamiento de objetos que pasan por la ruta `DiskObjectStorageTransaction` (usada por los discos `s3_with_keeper` y explícitamente cuando `use_fake_transaction=false`). Antes, las escrituras de INSERT en tablas MergeTree sobre esos discos ignoraban la limitación de `CREATE RESOURCE` / `CREATE WORKLOAD` porque el enlace del recurso nunca se inyectaba en `WriteSettings` para la ruta de escritura transaccional. [#100777](https://github.com/ClickHouse/ClickHouse/pull/100777) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* Corrige una colisión de caché de esquema compartida entre `Protobuf` y `ProtobufList`: leer primero un mensaje como `FORMAT Protobuf` y luego como `FORMAT ProtobufList` podía fallar porque `ProtobufList` forzaba el esquema en caché a su forma de sobre. `ProtobufList` ahora recurre al tipo de mensaje almacenado en caché cuando no hay ningún esquema de sobre disponible. [#100849](https://github.com/ClickHouse/ClickHouse/pull/100849) ([Callum Cooper](https://github.com/callumc34)).
* Corrige un desbordamiento de búfer en el montón en el puente Rust CXX debido a una incompatibilidad de ABI de `std::exception`. [#100931](https://github.com/ClickHouse/ClickHouse/pull/100931) ([Azat Khuzhin](https://github.com/azat)).
* `FunctionVariantAdaptor` ahora lanza `ILLEGAL_TYPE_OF_ARGUMENT` cuando todas las alternativas de `Variant` son incompatibles con una función, en lugar de devolver silenciosamente `Nullable(Nothing)`. Antes, un predicado `WHERE function(variant_col)` en el que ningún tipo alternativo era compatible devolvía 0 filas sin error, mientras que el contexto equivalente de `SELECT` ya lanzaba correctamente la excepción. [#100939](https://github.com/ClickHouse/ClickHouse/pull/100939) ([Vasily Chekalkin](https://github.com/bacek)).
* `TRUNCATE ALL TABLES` ya no falla cuando la base de datos contiene vistas. [#100943](https://github.com/ClickHouse/ClickHouse/pull/100943) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la optimización `optimize_rewrite_array_exists_to_has` para que maneje correctamente los casos con tipos incompatibles (p. ej., Date frente a String) y se volvió a habilitar de forma predeterminada. [#100944](https://github.com/ClickHouse/ClickHouse/pull/100944) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la prioridad de la configuración de S3 para que la configuración de disco de `storage_configuration` prevalezca sobre la sección global `<s3>`, y la configuración a nivel de usuario/perfil/consulta prevalezca sobre ambas. [#100975](https://github.com/ClickHouse/ClickHouse/pull/100975) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la serialización dispersa, que perdía el signo del cero negativo (-0.0) en columnas BFloat16, Float32 y Float64. [#100983](https://github.com/ClickHouse/ClickHouse/pull/100983) ([Takumi Hara](https://github.com/takumihara)).
* Se corrigieron dos errores en el parser de geometría WKT usado al leer archivos GeoParquet y Arrow codificados en WKT: las geometrías `MULTILINESTRING` se analizaban incorrectamente como `Polygon` (lo que provocaba una excepción en las columnas tipadas y corrupción silenciosa de datos en columnas `Geometry` mixtas), y una cadena WKT malformada sin palabra clave de tipo desencadenaba un comportamiento indefinido en lugar de un error claro. [#100997](https://github.com/ClickHouse/ClickHouse/pull/100997) ([Vasily Chekalkin](https://github.com/bacek)).
* Se corrigieron las consultas `grouping`/`GROUPING SETS` en tablas distribuidas con un solo segmento que fallaban con "Method executeImpl is not supported for 'grouping' function". [#101030](https://github.com/ClickHouse/ClickHouse/pull/101030) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió `LOGICAL_ERROR` "Column identifier is already registered" en el planificador, que podía producirse cuando la misma expresión de tabla se procesaba varias veces. [#101048](https://github.com/ClickHouse/ClickHouse/pull/101048) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción LOGICAL\_ERROR "Column identifier is already registered" cuando se usa la configuración `additional_result_filter` con consultas UNION o EXCEPT. [#101051](https://github.com/ClickHouse/ClickHouse/pull/101051) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un fallo del servidor (Logical error: Bad cast from ColumnVector to ColumnNullable) al usar `* APPLY` con funciones de agregación y `group_by_use_nulls=1` con GROUPING SETS, ROLLUP o CUBE. [#101062](https://github.com/ClickHouse/ClickHouse/pull/101062) ([Groene AI](https://github.com/groeneai)).
* Se corrigió un bucle infinito cuando `input_format_csv_skip_first_lines` o `input_format_tsv_skip_first_lines` supera el número de líneas del archivo. [#101111](https://github.com/ClickHouse/ClickHouse/pull/101111) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un acceso fuera de límites en la optimización de materialización diferida que podía provocar una excepción en builds de depuración. [#101144](https://github.com/ClickHouse/ClickHouse/pull/101144) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la inferencia de tipos en CTE recursivas: los tipos de columna ahora se amplían iterativamente mediante `getLeastSupertype` entre las partes no recursiva y recursiva del `UNION ALL` hasta converger, lo que evita el desbordamiento de enteros en expresiones como `x + 1`. [#101155](https://github.com/ClickHouse/ClickHouse/pull/101155) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se limitó la configuración del tamaño de bloque de compresión de MergeTree (max\_compress\_block\_size, min\_compress\_block\_size, marks\_compress\_block\_size, primary\_key\_compress\_block\_size) a 256 MiB para evitar fallos del servidor cuando se establecen valores extremos mediante CREATE TABLE SETTINGS. [#101159](https://github.com/ClickHouse/ClickHouse/pull/101159) ([Groene AI](https://github.com/groeneai)).
* Corrige un fallo LOGICAL\_ERROR en `QueryAnalyzer::resolve()` cuando una ROW POLICY usa una subconsulta escalar en su cláusula `USING` (p. ej., `USING (SELECT 1)`). Cierra [#100695](https://github.com/ClickHouse/ClickHouse/issues/100695). [#101263](https://github.com/ClickHouse/ClickHouse/pull/101263) ([Groene AI](https://github.com/groeneai)).
* Corrige un comportamiento indefinido en `MergeTreeDataPartWriterCompact::cancel` cuando falla la asignación de un stream. [#101292](https://github.com/ClickHouse/ClickHouse/pull/101292) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un caso en el que no se incluía la timezone durante la asignación en la sentencia ALTER. Cierra [#101328](https://github.com/ClickHouse/ClickHouse/issues/101328). Relacionado: [https://github.com/ClickHouse/ClickHouse/pull/100647](https://github.com/ClickHouse/ClickHouse/pull/100647). [#101403](https://github.com/ClickHouse/ClickHouse/pull/101403) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige un fallo del server (LOGICAL\_ERROR) en consultas INSERT SELECT con ORDER BY ALL cuando el pipeline de SELECT produce múltiples streams. [#101443](https://github.com/ClickHouse/ClickHouse/pull/101443) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorrectos de consultas causados por el reordenamiento de join al mover un filtro de INNER JOIN (que solo hace referencia al lado preservado de un outer join) a la cláusula ON del outer join. [#101504](https://github.com/ClickHouse/ClickHouse/pull/101504) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Omite aplicar materialización diferida a planes con arrayJoin, ya que esto podía hacer que no se respetara el límite. Cierra [#101608](https://github.com/ClickHouse/ClickHouse/issues/101608). [#101644](https://github.com/ClickHouse/ClickHouse/pull/101644) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige resultados incorrectos en consultas JOIN cuando la optimización `mergeFilterIntoJoinCondition` descartaba silenciosamente una condición de igualdad en WHERE con tipos incompatibles. [#101652](https://github.com/ClickHouse/ClickHouse/pull/101652) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Corrige que la pista de prueba `error` no funcionara para errores de sintaxis/análisis: antes, `-- { error SYNTAX_ERROR }` en una consulta malformada fallaba con "Expected server error" en lugar de coincidir con el error de análisis del lado del client. [#101675](https://github.com/ClickHouse/ClickHouse/pull/101675) ([Groene AI](https://github.com/groeneai)).
* Corrige que `INTO OUTFILE ... TRUNCATE` no usara realmente el renombrado atómico: la escritura se hacía directamente en el archivo original en lugar de en un archivo temporal, por lo que, si la consulta fallaba, se destruía el contenido original. Ahora los datos se escriben en un archivo temporal y solo se renombran si la operación finaliza correctamente. [#101884](https://github.com/ClickHouse/ClickHouse/pull/101884) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige una excepción `Unsupported DeltaLake type: varchar(n)` al leer tablas Delta Lake cuyo schema contiene tipos de columna varchar(n) o char(n). Estos tipos ahora se asignan a String, en consonancia con cómo el protocolo Delta Lake los almacena como matrices de bytes simples en Parquet. [#101973](https://github.com/ClickHouse/ClickHouse/pull/101973) ([Flavio Malavazi](https://github.com/flaviomalavazi)).
* Corrige una pérdida silenciosa de datos al leer archivos tar desde S3 con `schema_inference_mode=union` y schemas de Parquet heterogéneos: la caché de metadatos de Parquet reutilizaba incorrectamente los metadatos del primer archivo para todos los archivos posteriores del archivo tar. [#101990](https://github.com/ClickHouse/ClickHouse/pull/101990) ([Ahaan Limaye](https://github.com/ahaanlimaye)).
* Corrige un fallo del server (LOGICAL\_ERROR) al ejecutar ALTER TABLE UPDATE/DELETE en tablas Iceberg cuando no se había hecho ningún SELECT o INSERT previo en la tabla durante el mismo lifetime del server. [#102113](https://github.com/ClickHouse/ClickHouse/pull/102113) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un posible crash cuando se ejecuta una consulta ALTER en tablas de una base de datos en memoria (p. ej., tablas temporales). [#102360](https://github.com/ClickHouse/ClickHouse/pull/102360) ([Den Kalantaevskii](https://github.com/Diskein)).
* Se corrigió que `formatQuery` produjera grants duplicados como `GRANT FILE ON *.*, FILE ON *.* TO x` en lugar de `GRANT FILE ON *.* TO x` al dar formato a grants READ/WRITE retrocompatibles sobre la misma source. [#102411](https://github.com/ClickHouse/ClickHouse/pull/102411) ([Groene AI](https://github.com/groeneai)).
* Se corrige la pérdida de paralelismo en la agregación después de consultas read-in-order cuando `max_streams_to_max_threads_ratio` es mayor que 1. [#102467](https://github.com/ClickHouse/ClickHouse/pull/102467) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un crash (`LOGICAL_ERROR: Unknown virtual column`) al seleccionar subcolumns (como `.null` para Nullable, `.size0` para Array, elementos de Tuple o keys/values de Map) desde una tabla con el engine Buffer. [#102470](https://github.com/ClickHouse/ClickHouse/pull/102470) ([Groene AI](https://github.com/groeneai)).
* Se corrige la excepción "Cannot fold actions for projection" en la optimización de reordenación de join cuando un LEFT/RIGHT JOIN con `join_use_nulls` se combina con otros joins que involucran más de dos tablas. [#102516](https://github.com/ClickHouse/ClickHouse/pull/102516) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un overflow silencioso en operaciones escalares pointwise sobre numericIndexedVector (p. ej., `numericIndexedVectorPointwiseAdd`) cuando el escalar está fuera de rango. Estas entradas ahora generan `INCORRECT_DATA` en lugar de devolver valores corruptos. [#102546](https://github.com/ClickHouse/ClickHouse/pull/102546) ([FriendLey](https://github.com/FriendLey)).
* Se corrige el formato inconsistente del AST para INSERT con SAMPLE y OFFSET a nivel de consulta. Cierra [#102523](https://github.com/ClickHouse/ClickHouse/issues/102523). [#102547](https://github.com/ClickHouse/ClickHouse/pull/102547) ([zoomxi](https://github.com/zoomxi)).
* Se corrige la excepción `LOGICAL_ERROR` en `groupConcat` al deserializar un estado malformado de aggregate function. [#102558](https://github.com/ClickHouse/ClickHouse/pull/102558) ([Christoph Wurm](https://github.com/cwurm)).
* Ya no se acepta contenido no válido al final de los valores CSV de Time64 con `input_format_csv_use_default_on_bad_values=0`. Cierra [#102490](https://github.com/ClickHouse/ClickHouse/issues/102490). [#102596](https://github.com/ClickHouse/ClickHouse/pull/102596) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige la excepción UNKNOWN\_ELEMENT\_OF\_ENUM al insertar el valor predeterminado en una JSON column con paths tipados como Enum. Cierra [#102359](https://github.com/ClickHouse/ClickHouse/issues/102359). [#102687](https://github.com/ClickHouse/ClickHouse/pull/102687) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige la corrupción de columns\_substreams.txt al renombrar columnas en algunos casos. Cierra [#102259](https://github.com/ClickHouse/ClickHouse/issues/102259). [#102689](https://github.com/ClickHouse/ClickHouse/pull/102689) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige la inserción en el tipo de dato Time durante el parsing de JSON. Cierra [#102016](https://github.com/ClickHouse/ClickHouse/issues/102016). [#102690](https://github.com/ClickHouse/ClickHouse/pull/102690) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige la codificación hexadecimal de la muestra de contenido en nombres de archivo de schema en caché. Cierra [#101904](https://github.com/ClickHouse/ClickHouse/issues/101904). [#102703](https://github.com/ClickHouse/ClickHouse/pull/102703) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió una infracción del orden de clasificación (`crash` en debug, corrupción silenciosa de datos en release) durante la operación de `merge` de `SummingMergeTree` cuando la clave `ORDER BY` es una expresión `hash` sobre una columna `Float32` que contiene valores NaN de señalización. [#102791](https://github.com/ClickHouse/ClickHouse/pull/102791) ([Groene AI](https://github.com/groeneai)).
* Se hicieron cancelables mediante `KILL QUERY` `DETACH DATABASE ... SYNC` y otras operaciones que llaman a `waitDetachedTableNotInUse`, y se hizo que respondieran al apagado del server, evitando bloqueos indefinidos cuando una consulta concurrente mantiene una referencia a una tabla. [#102804](https://github.com/ClickHouse/ClickHouse/pull/102804) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un posible resultado incorrecto de `ANY RIGHT JOIN`. [#102893](https://github.com/ClickHouse/ClickHouse/pull/102893) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrigió un problema por el que las solicitudes a S3 fallaban con `ios_base::clear: unspecified iostream_category error` en lugar de reintentarse, debido a que `BufferedStreamBuf::flushBuffer` de Poco no manejaba escrituras cortas desde la capa de socket. [#102894](https://github.com/ClickHouse/ClickHouse/pull/102894) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrigió el fallo de la función de tabla `input('auto')` a través de la interfaz HTTP en consultas INSERT SELECT. [#102902](https://github.com/ClickHouse/ClickHouse/pull/102902) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se deshabilitó la optimización trivial de LIMIT con row policies/additional\_table\_filters (para permitir el análisis paralelo de índices). [#102921](https://github.com/ClickHouse/ClickHouse/pull/102921) ([Azat Khuzhin](https://github.com/azat)).
* Se ocultó la clave secreta en la función SQL `HMAC`. Corrige [#102927](https://github.com/ClickHouse/ClickHouse/issues/102927). [#102997](https://github.com/ClickHouse/ClickHouse/pull/102997) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se corrigió la excepción `MULTIPLE_EXPRESSIONS_FOR_ALIAS` generada en consultas distribuidas que hacen referencia varias veces a la misma llamada a `quantile` (por ejemplo, en `SELECT`, `HAVING` y `ORDER BY`) con `optimize_syntax_fuse_functions` habilitado. [#103014](https://github.com/ClickHouse/ClickHouse/pull/103014) ([tanner-bruce](https://github.com/tanner-bruce)).
* Se corrige un caso detectado por CI en el que se pasaba un set no preparado cuando el filtro depende de la columna del lado izquierdo. Cierra [#102966](https://github.com/ClickHouse/ClickHouse/issues/102966). [#103029](https://github.com/ClickHouse/ClickHouse/pull/103029) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige `castOrNull` a JSON en algunos casos. Cierra [#101818](https://github.com/ClickHouse/ClickHouse/issues/101818). [#103036](https://github.com/ClickHouse/ClickHouse/pull/103036) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió un problema por el que `SELECT DISTINCT` devolvía silenciosamente resultados incompletos cuando una proyección de agregación coincidía con la consulta y algunas partes de la tabla no tenían datos de proyección (por ejemplo, la proyección se añadió a una tabla que ya contenía datos y no se ejecutó `MATERIALIZE PROJECTION`). Cierra [#102951](https://github.com/ClickHouse/ClickHouse/issues/102951). [#103052](https://github.com/ClickHouse/ClickHouse/pull/103052) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió la excepción `TOO_FEW_ARGUMENTS_FOR_FUNCTION` cuando un predicado `WHERE` como `AND(OR(A, A), A)` se reduce a un único argumento de nivel superior durante la extracción de expresiones comunes en el analizador. [#103072](https://github.com/ClickHouse/ClickHouse/pull/103072) ([Peng](https://github.com/fastio)).
* Corrige un error lógico `Function writeSlice expects same column types for GenericArraySlice and GenericArraySink` que se producía al evaluar `if`/`ifNull` sobre tuplas, mapas o arrays que contenían un elemento `QBit`. `ColumnQBit::structureEquals` comparaba incorrectamente la tupla interna de una columna `QBit` con el envoltorio externo de la otra, por lo que columnas `QBit` estructuralmente idénticas se reportaban como diferentes. [#103084](https://github.com/ClickHouse/ClickHouse/pull/103084) ([Groene AI](https://github.com/groeneai)).
* Hace que `DETACH DATABASE` con `database_atomic_wait_for_drop_and_detach_synchronously` respete `KILL QUERY` en lugar de quedar bloqueado indefinidamente cuando se mantiene una referencia a una tabla. [#103095](https://github.com/ClickHouse/ClickHouse/pull/103095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un segfault al eliminar un módulo WASM usando un predicado que no es un identificador (por ejemplo, `WHERE 1=1`). [#103101](https://github.com/ClickHouse/ClickHouse/pull/103101) ([Joe Redfern](https://github.com/JosephRedfern)).
* Corrige una ruptura de compatibilidad con versiones anteriores por la que clientes antiguos fallaban con `UNEXPECTED_PACKET_FROM_SERVER` al insertar en un servidor más reciente mediante `remote()` o tablas distribuidas, causada por una llamada incondicional a `sendProgress` al final de `processInsertQuery`. [#103148](https://github.com/ClickHouse/ClickHouse/pull/103148) ([Sema Checherinda](https://github.com/CheSema)).
* IN con un segundo argumento de tipo tuple no constante no debe aplicar CAST a los elementos de la tuple reduciéndolos al tipo del lado izquierdo, ya que esto puede provocar overflow. Cierra [#103055](https://github.com/ClickHouse/ClickHouse/issues/103055). [#103169](https://github.com/ClickHouse/ClickHouse/pull/103169) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige el uso de un valor no inicializado en una función del protocolo. [#103187](https://github.com/ClickHouse/ClickHouse/pull/103187) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `LOGICAL_ERROR` (`Bad cast … to ColumnLowCardinality`) durante el análisis de índices de MergeTree cuando una cláusula `WHERE` compara una columna clave `LowCardinality` con una constante convertida a un tipo que contiene `LowCardinality` anidado (por ejemplo, `Variant(LowCardinality(Date), String)`). [#103211](https://github.com/ClickHouse/ClickHouse/pull/103211) ([Groene AI](https://github.com/groeneai)).
* Corrige `Logical error: 'index < bucket_count'` en la familia de funciones de agregación `timeSeries*ToGrid` (por ejemplo, `timeSeriesResampleToGridWithStaleness`, `timeSeriesChangesToGrid`, `timeSeriesResetsToGrid`, `timeSeriesRateToGrid`) cuando se llamaba con parámetros de timestamp extremos que provocarían overflow en la aritmética con signo de 64 bits durante el cálculo del número de buckets. También limita el número total de buckets de la cuadrícula a 16 millones para evitar asignaciones accidentales de grandes cantidades de memoria a partir de entradas maliciosas. [#103223](https://github.com/ClickHouse/ClickHouse/pull/103223) ([Groene AI](https://github.com/groeneai)).
* Corrige la excepción `Logical error: 'Port is already connected'` durante la expansión de la pipeline en la ruta `FINAL` diferida para `ReplacingMergeTree`. El error afectaba a las consultas con `query_plan_optimize_lazy_final = 1` cuando `ReadFromMergeTree::initializePipeline` insertaba transformaciones internas (por ejemplo, un `Resize`) que conectaban entre sí los procesadores de la sub-pipeline, lo que hacía que `LazyUnorderedReadFromMergeTreeSource::expandPipeline` intentara conectar puertos de salida que ya estaban conectados. [#103230](https://github.com/ClickHouse/ClickHouse/pull/103230) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorrectos de `LIMIT BY` y `DISTINCT` cuando la entrada es un `UNION ALL` de subconsultas ordenadas. El optimizador del plan de consulta trataba incorrectamente esa unión como si estuviera ordenada globalmente, lo que provocaba que se devolvieran filas adicionales. [#103231](https://github.com/ClickHouse/ClickHouse/pull/103231) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige un posible fallo durante el cálculo de estadísticas en el tipo Map con replicación diferida. Cierra [#102390](https://github.com/ClickHouse/ClickHouse/issues/102390). [#103273](https://github.com/ClickHouse/ClickHouse/pull/103273) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige una carrera de dato en las fuentes de diccionario de ClickHouse, MySQL, PostgreSQL y XDBC, donde `clone() const` lee de la misma cadena `invalidate_query_response` en la que `isModified() const` escribe. [#103277](https://github.com/ClickHouse/ClickHouse/pull/103277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige la detección incorrecta de monotonicidad para `Date32`. Cierra [#101265](https://github.com/ClickHouse/ClickHouse/issues/101265). [#103283](https://github.com/ClickHouse/ClickHouse/pull/103283) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Limita a 64 KB las cadenas del paquete TCP Hello previas a la autenticación y añade la configuración de servidor `handshake_timeout_milliseconds` para limitar el tiempo total de handshake, evitando que clientes no autenticados consuman memoria en exceso o mantengan hilos ocupados indefinidamente. [#103284](https://github.com/ClickHouse/ClickHouse/pull/103284) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige `min_value &gt; max_value` en las estadísticas de Parquet ColumnIndex para columnas String. [#103334](https://github.com/ClickHouse/ClickHouse/pull/103334) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)).
* Corrige el manejo incorrecto de filas NULL para entradas `Nullable(Tuple(...))` en `flattenTuple` y `tupleToNameValuePairs`. `flattenTuple` ahora conserva el mapa nulo externo para que las filas NULL sigan siendo NULL. `tupleToNameValuePairs` ahora cambia el tipo de valor del resultado a `Nullable(T)` cuando es posible si la entrada es `Nullable(Tuple(...))`, de modo que las filas NULL produzcan `[('a', NULL), ('b', NULL)]` en lugar de `[('a', 0), ('b', 0)]`. Cuando el tipo de elemento no puede envolverse en `Nullable` (por ejemplo, `Array`), se usan valores predeterminados en lugar de NULL. Cierra [#103312](https://github.com/ClickHouse/ClickHouse/issues/103312). [#103383](https://github.com/ClickHouse/ClickHouse/pull/103383) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Comprueba si hay datos Dynamic aplanados malformados en Native format. [#103392](https://github.com/ClickHouse/ClickHouse/pull/103392) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige una RPC obsoleta que provocaba que la replicación se quedara bloqueada tras la sincronización del snapshot. [#103406](https://github.com/ClickHouse/ClickHouse/pull/103406) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige un fallo del servidor por `LOGICAL_ERROR` "Cannot pop N rows from X" (en builds de depuración / con sanitizador) al leer un documento BSON malformado que contenía un valor cuyo tipo BSON es incompatible con el tipo de la columna de destino dentro de una columna `Nullable(T)` o `Array(Nullable(T))`. La fila malformada ahora produce una excepción `ILLEGAL_COLUMN` limpia, como estaba previsto. [#103418](https://github.com/ClickHouse/ClickHouse/pull/103418) ([Groene AI](https://github.com/groeneai)).
* Corrige un fallo del servidor en `arrayFill` y `arrayReverseFill` cuando se aplican a una columna `Array(String)` cuya primera fila está vacía junto con una lambda constantemente falsa. El índice `size_t` del bucle de agregación / subarreglo sufría un underflow hasta `SIZE_MAX`, lo que luego provocaba una lectura fuera de límites dentro de `ColumnString::doInsertManyFrom`. Misma familia de errores que [#12263](https://github.com/ClickHouse/ClickHouse/issues/12263). [#103424](https://github.com/ClickHouse/ClickHouse/pull/103424) ([Groene AI](https://github.com/groeneai)).
* Corrige ACCESS\_DENIED / UNKNOWN\_TABLE en RMV APPEND descendentes con SQL SECURITY DEFINER cuando el EXCHANGE de un RMV REPLACE ascendente cambia la identidad del almacenamiento de destino a mitad de la resolución. [#103427](https://github.com/ClickHouse/ClickHouse/pull/103427) ([Alexander Gololobov](https://github.com/davenger)).
* Pobla la columna `_time` a partir de la table function `url`. [#103437](https://github.com/ClickHouse/ClickHouse/pull/103437) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige una posible lectura fuera de los límites en la ruta de descompresión del codec `ALP` al procesar una entrada malformada con un ancho de bits no válido. [#103457](https://github.com/ClickHouse/ClickHouse/pull/103457) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige un error por el que `SYSTEM SYNC FILESYSTEM CACHE '<name>' ON CLUSTER ...` podía perder el nombre de la caché al dar formato a la consulta, lo que provocaba que los nodos remotos sincronizaran todas las cachés del filesystem en lugar de solo la caché solicitada. [#103469](https://github.com/ClickHouse/ClickHouse/pull/103469) ([Asish Kumar](https://github.com/officialasishkumar)).
* Corrige el procesamiento de la ruta codificada en URL en `deltaLakeAzure`. Cierra [#103509](https://github.com/ClickHouse/ClickHouse/issues/103509). [#103525](https://github.com/ClickHouse/ClickHouse/pull/103525) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Corrige un uso de memoria después de su liberación en el heap al multiplicar un estado de `AggregateFunction` por un entero (por ejemplo, `quantilesExactState(...) * N`). El bucle de exponenciación por cuadrados fusionaba el estado consigo mismo, lo que no está definido cuando la `merge` de la función de agregación reasigna su almacenamiento interno. Cierra STID 0988-40af. [#103536](https://github.com/ClickHouse/ClickHouse/pull/103536) ([Groene AI](https://github.com/groeneai)).
* Corrige un raro `LOGICAL_ERROR` "Part X intersects previous part Y" que se producía durante el arranque de una tabla `ReplicatedMergeTree` cuando dos partes vacías inesperadas en disco tenían rangos de bloques superpuestos, pero sin que una contuviera a la otra. La excepción abortaba el hilo de asociación de la tabla e impedía que la tabla se iniciara. [#103537](https://github.com/ClickHouse/ClickHouse/pull/103537) ([Groene AI](https://github.com/groeneai)).
* Corrige `Logical error: Incorrect mark rows for part ...` (aserción solo de depuración) que se activaba por mutaciones en tablas `MergeTree` con granularidad de índice no adaptativa (`index_granularity_bytes = 0`) cuya última marca de datos estaba incompleta (se reproduce de forma más fiable con `DETACH`/`ATTACH` seguido de una eliminación ligera `DELETE`). [#103538](https://github.com/ClickHouse/ClickHouse/pull/103538) ([Groene AI](https://github.com/groeneai)).
* Corrige que `clickhouse-local` devolviera silenciosamente 0 filas al leer desde los pseudoficheros `/proc` y `/sys` mediante la table function `file()` (por ejemplo, `SELECT * FROM file('/proc/cpuinfo', 'RawBLOB')`). [#103548](https://github.com/ClickHouse/ClickHouse/pull/103548) ([Ashrith Bandla](https://github.com/ashrithb)).
* Corrige el manejo del argumento `max_string_length` para el table engine `GenerateRandom`. [#103550](https://github.com/ClickHouse/ClickHouse/pull/103550) ([Alex Kuleshov](https://github.com/0xAX)).
* Corrige el enmascaramiento de credenciales anidadas en los logs. [#103552](https://github.com/ClickHouse/ClickHouse/pull/103552) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige la detección de SVE que usaba instrucciones SVE cuando no estaban disponibles. [#103568](https://github.com/ClickHouse/ClickHouse/pull/103568) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige el análisis de los argumentos de almacenamiento de `GenerateRandom`. [#103574](https://github.com/ClickHouse/ClickHouse/pull/103574) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige un bucle infinito en `WITH FILL` para datos que empiezan con ±inf. [#103580](https://github.com/ClickHouse/ClickHouse/pull/103580) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se corrige que `JSONExtract` en un tipo `Variant` truncara silenciosamente los números JSON fraccionarios. Antes, `JSONExtract('{"x": 3.14}', 'x', 'Variant(Int64, Float64)')` devolvía `Int64=3` y `JSONExtract('{"x": 3.14}', 'x', 'Variant(String, Int64)')` devolvía `Int64=3`, perdiendo la parte fraccionaria. Ahora el valor fraccionario se conserva sin pérdida: un miembro `Float64`/`Decimal` lo toma cuando está presente; de lo contrario, un miembro `String` captura el JSON original. Los tipos `Variant` que contienen solo miembros enteros (p. ej., `Variant(Int64, Int32)`) y la extracción directa como entero (`JSONExtract(json, 'Int64')`, `JSONExtractInt`, etc.) no cambian. [#103620](https://github.com/ClickHouse/ClickHouse/pull/103620) ([Groene AI](https://github.com/groeneai)).
* Se corrige que `SYSTEM INSTRUMENT REMOVE` sin argumentos produjera `std::bad_optional_access` (código de error 1001) en lugar de `SYNTAX_ERROR` (código de error 62). [#103622](https://github.com/ClickHouse/ClickHouse/pull/103622) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrige un error lógico/comportamiento indefinido en la window view `windowID` y `tumble` cuando se llamaban con una cadena de zona horaria como tercer argumento. [#103641](https://github.com/ClickHouse/ClickHouse/pull/103641) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El logging del client de S3 ahora trata las respuestas HTTP 400 que incluyen un encabezado x-amz-bucket-region no vacío (región de firma SigV4 incorrecta) como un caso informativo de región incorrecta, con una línea de log más clara en lugar de la ruta genérica de error. El proveedor de credenciales de identidad web de STS se añade a la cadena de credenciales de S3 solo cuando la identidad web está configurada, lo que reduce las advertencias espurias en implementaciones que no la usan. Cierra [#99140](https://github.com/ClickHouse/ClickHouse/issues/99140). [#103673](https://github.com/ClickHouse/ClickHouse/pull/103673) ([MeltonSmith](https://github.com/MeltonSmith)).
* Se corrige `SYSTEM SYNC REPLICA <db>.<tbl> IF EXISTS` para que finalice correctamente y sin errores cuando la base de datos no exista, en consonancia con el comportamiento actual para una table inexistente y con el precedente establecido por `DROP TABLE IF EXISTS`. Antes, la consulta lanzaba `UNKNOWN_DATABASE` pese a `IF EXISTS`. Cierra [#103629](https://github.com/ClickHouse/ClickHouse/issues/103629). [#103689](https://github.com/ClickHouse/ClickHouse/pull/103689) ([Groene AI](https://github.com/groeneai)).
* Se corrige el error lógico `Arguments of 'plus' have incorrect data types` lanzado por `FunctionBinaryArithmetic::executeImpl2` cuando una table `MergeTree` tenía `Array(LowCardinality(...))` en su clave de ordenación y una cláusula `WHERE` usaba `plus` / `minus` entre esa columna y una constante `Array` de un tipo de elemento distinto. `KeyCondition::getMonotonicityForRange` ahora elimina `LowCardinality` de forma recursiva antes de invocar el despacho numérico interno. [#103701](https://github.com/ClickHouse/ClickHouse/pull/103701) ([Groene AI](https://github.com/groeneai)).
* Se corrige una condición de carrera al redimensionar dinámicamente la cache en 26.1+. [#103702](https://github.com/ClickHouse/ClickHouse/pull/103702) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un problema por el que los índices de omisión text y bloom\_filter en columnas `ALIAS` cuya expresión contenía una lambda con constantes capturadas (p. ej., `arrayMap((k, v) -> concat(k, '=', v), mapKeys(m), mapValues(m)))` se ignoraban silenciosamente. [#103708](https://github.com/ClickHouse/ClickHouse/pull/103708) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige que `position` y `positionCaseInsensitive` con un `start_pos` cercano a `UINT64_MAX` se quedaran bloqueados o provocaran un fallo de segmentación debido a un desbordamiento en la aritmética de punteros. [#103766](https://github.com/ClickHouse/ClickHouse/pull/103766) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un comportamiento indefinido al analizar `DateTime` con una parte fraccionaria doble. [#103773](https://github.com/ClickHouse/ClickHouse/pull/103773) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigió una regresión de corrección de datos en 26.x por la que `if` y `multiIf` compilados con JIT, con un tipo de resultado `Decimal` y un literal no `Decimal` (entero o de coma flotante) en una rama, devolvían silenciosamente un valor `10^scale` demasiado pequeño. La ruta lenta (sin JIT) no se veía afectada. Solución temporal en las versiones afectadas: `SET compile_expressions = 0`. [#103809](https://github.com/ClickHouse/ClickHouse/pull/103809) ([Groene AI](https://github.com/groeneai)).
* Corrige el reenvío del tokenizer desde el text index a las funciones compatibles. [#103826](https://github.com/ClickHouse/ClickHouse/pull/103826) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Corrige resultados incorrectos de `numbers`, `generate_series` y fuentes similares que respetan rangos cuando la cláusula `WHERE` usa `IN` o `NOT IN` sobre una tupla cuyos elementos se deduplican en una única columna clave (por ejemplo, `WHERE tuple(number, number) NOT IN (tuple(1, 2))`). Cierra [#103660](https://github.com/ClickHouse/ClickHouse/issues/103660). [#103835](https://github.com/ClickHouse/ClickHouse/pull/103835) ([Groene AI](https://github.com/groeneai)).
* Mantiene el pico real de memoria del hash join con spilling automático por debajo de `max_bytes_before_external_join`. Antes, la preasignación basada en estadísticas, el redimensionamiento in situ de la hash table y los buckets en memoria sin límite de `GraceHashJoin` podían hacer que la consulta superara el límite configurado y provocara `MEMORY_LIMIT_EXCEEDED`. [#103838](https://github.com/ClickHouse/ClickHouse/pull/103838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un bloqueo durante el cierre de `clickhouse-local` cuando hay logs del sistema configurados (como `text_log` o `filesystem_cache_log`). `SystemLogs::flushImpl` llamaba a `BaseDaemon::instance().flushTextLogs()`, que lanza `std::bad_cast` fuera de `clickhouse-server`, y dejaba los hilos de guardado en ejecución hasta que `pthread_cond_destroy` bloqueaba la destrucción de las colas de logs del sistema. [#103874](https://github.com/ClickHouse/ClickHouse/pull/103874) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rechaza las consultas CTE `MATERIALIZED` cuyo body se resuelve en distintos tipos de columna inferidos según la referencia, con un error claro `TYPE_MISMATCH` en lugar de hacer que el server falle con un `Bad cast` `LOGICAL_ERROR`. Esto ocurría cuando el body del CTE hacía referencia a identificadores de un ámbito externo (por ejemplo, un alias de la proyección de la subconsulta llamante) que se expandían en línea como constantes distintas para cada referencia. [#103879](https://github.com/ClickHouse/ClickHouse/pull/103879) ([Groene AI](https://github.com/groeneai)).
* Corrige un uso de valor no inicializado en los optimizadores del query plan de conversión de JOIN (`tryConvertAnyOuterJoinToInnerJoin`, `tryConvertAnyJoinToSemiOrAntiJoin`) cuando el filtro sobre un `ANY` `OUTER` `JOIN` contiene una función no determinista como `rand`, `now` o `rowNumberInAllBlocks`. El optimizador ya no intenta plegar constantes en esos filtros y deja el JOIN sin cambios, lo que también evita conversiones incorrectas a `INNER`/`SEMI`/`ANTI JOIN` que podían descartar filas silenciosamente. [#103880](https://github.com/ClickHouse/ClickHouse/pull/103880) ([Groene AI](https://github.com/groeneai)).
* Corrige un uso de memoria tras su liberación en `StorageKafka2` que podía hacer que el server fallara cuando se sustituye una session de Keeper mientras el consumer mantiene bloqueos efímeros de partición de tópico. [#103890](https://github.com/ClickHouse/ClickHouse/pull/103890) ([Groene AI](https://github.com/groeneai)).
* Se corrigió un `LOGICAL_ERROR` "Primary key type mismatch" lanzado al hacer JOIN de una tabla `EmbeddedRocksDB` mediante `JOIN ... USING (key)` con una subconsulta cuya columna clave tiene un tipo distinto (por ejemplo, `Nullable(UInt64)`, `Int64`, `Decimal`) al de la primary key del almacenamiento. El planner ahora descarta `DirectKeyValueJoin` cuando hay incompatibilidad de tipos y recurre a `HashJoin`, que gestiona la conversión de tipos. [#103928](https://github.com/ClickHouse/ClickHouse/pull/103928) ([Groene AI](https://github.com/groeneai)).
* `SET max_threads = DEFAULT` (y lo mismo para `max_final_threads` y `max_parsing_threads`) ya no pierde el estado `auto`. Anteriormente, después de restablecer una de estas configuraciones, `system.settings` mostraba el recuento de núcleos resuelto (p. ej., `32`) en lugar de `'auto(32)'`, y el servidor se comportaba como si el valor se hubiera fijado explícitamente. [#103991](https://github.com/ClickHouse/ClickHouse/pull/103991) ([Groene AI](https://github.com/groeneai)).
* Corrige `SIZES_OF_ARRAYS_DONT_MATCH` al leer columnas `AggregateFunction(topK(N), String)` cuyo `alpha_size` persistido había aumentado debido a un ciclo de deserialize+serialize anterior a la versión 25.12. [#104002](https://github.com/ClickHouse/ClickHouse/pull/104002) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió una vulnerabilidad de inyección SQL en dictionary sources de PostgreSQL, Cassandra y XDBC: las claves de tipo cadena que contenían comillas simples se escapaban con `\'` (barra invertida), que estos backends interpretan como una barra invertida literal en lugar de una secuencia de escape, lo que permitía inyectar SQL arbitrario en las consultas de lookup del diccionario. `ExternalQueryBuilder` ahora emite el escape estándar de SQL `''` para esos backends; los dictionary sources de ClickHouse y MySQL siguen usando escape con barra invertida. [#104009](https://github.com/ClickHouse/ClickHouse/pull/104009) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Se corrigió una posible incompatibilidad de tipos en la agregación cuando el tipo de una columna se cambiaba a o desde LowCardinality y no se reconstruía la proyección min-max. [#104013](https://github.com/ClickHouse/ClickHouse/pull/104013) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige un bucle infinito de optimizaciones de consultas provocado por no propagar la prevención de eliminar columnas no usadas al fusionar expresiones. [#104083](https://github.com/ClickHouse/ClickHouse/pull/104083) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige `LOGICAL_ERROR` en `StreamingStorageRegistry::renameTable` al renombrar por lotes tablas de streaming (S3Queue, Kafka, RabbitMQ) mediante seguimiento de identidad basado en UUID en lugar de nombres. [#104101](https://github.com/ClickHouse/ClickHouse/pull/104101) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrigieron resultados incorrectos cuando un CTE construido con `UNION ALL` contenía una rama `SELECT DISTINCT` y la consulta externa proyectaba solo un subconjunto de las columnas del CTE. El nuevo `analyzer` `RemoveUnusedProjectionColumnsPass` eliminaba incorrectamente la columna no referenciada de la proyección `DISTINCT` interna, lo que hacía que filas que debían seguir siendo distintas (mismo valor en la columna proyectada, pero distinto valor en la columna eliminada) colapsaran en una sola. [#104114](https://github.com/ClickHouse/ClickHouse/pull/104114) ([Groene AI](https://github.com/groeneai)).
* Corrige varios problemas de exactitud en casos límite en la configuración `optimize_inverse_dictionary_lookup`, donde la optimización podía descartar filas silenciosamente o suprimir excepciones. Cierra [#103270](https://github.com/ClickHouse/ClickHouse/issues/103270). Cierra [#103085](https://github.com/ClickHouse/ClickHouse/issues/103085). [#104133](https://github.com/ClickHouse/ClickHouse/pull/104133) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige una escritura fuera de límites al deserializar el estado `quantileTiming`. [#104141](https://github.com/ClickHouse/ClickHouse/pull/104141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un comportamiento indefinido cuando un valor `Float64` fuera de rango se convierte a un tipo entero wide (`UInt64`, `Int64`, `Int128`, `UInt128`, `Int256`, `UInt256`). Anteriormente, valores iguales a `Float64(numeric_limits<T>::max())` (que se redondea hacia arriba a un valor por encima del máximo real) eludían la comprobación de límites y producían UB en el cast posterior. Esto afectaba al parsing de parámetros de funciones de agregación (`topK`, `histogram`, `uniqUpTo`, `groupArrayInsertAt`, etc.) y a configuraciones de tipo entero mediante `SET <setting> = <Float64>`. Cierra [#103817](https://github.com/ClickHouse/ClickHouse/issues/103817). [#104154](https://github.com/ClickHouse/ClickHouse/pull/104154) ([Groene AI](https://github.com/groeneai)).
* Se corrige la excepción `LOGICAL_ERROR` "Unexpected return type from comparison. Expected `UInt8`. Got `Const(Nullable(UInt8))`" al comparar un `Tuple(Tuple(Nullable(...)))` anidado (o con un nivel de anidamiento mayor) con un literal `String`. El tipo de retorno de la comparación ahora se infiere correctamente como `Nullable(UInt8)`, en consonancia con el comportamiento en tiempo de ejecución. [#104171](https://github.com/ClickHouse/ClickHouse/pull/104171) ([Groene AI](https://github.com/groeneai)).
* Se corrigió un aborto del servidor (`UndefinedBehaviorSanitizer: reference binding to null pointer`, segfault en versiones release) en `SELECT ... FROM <ReplacingMergeTree(version, is_deleted)> FINAL PREWHERE is_deleted = <expr> AND <other column expr>` cuando `query_plan_optimize_lazy_final = 1`. El paso de lectura lazy-FINAL sin intersección perdió la columna `is_deleted` de su encabezado de salida porque `PREWHERE` la consumió como entrada sin volver a exponerla como salida. El paso posterior `addIsDeletedFilter` acabó desreferenciando un puntero nulo `ActionsDAG::Node`. [#104177](https://github.com/ClickHouse/ClickHouse/pull/104177) ([Groene AI](https://github.com/groeneai)).
* Al llamar a la tabla system.failpoints, se usaba un failpoint, por lo que podía quedar deshabilitado. [#104237](https://github.com/ClickHouse/ClickHouse/pull/104237) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Se corrige `MemorySanitizer: use-of-uninitialized-value` en las funciones `detectLanguage*` cuando la entrada contiene un carácter UTF-8 que termina exactamente en el límite del búfer. [#104257](https://github.com/ClickHouse/ClickHouse/pull/104257) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un error lógico (`Bad cast from type DB::CachedObjectStorage to DB::S3ObjectStorage`) que abortaba el análisis de argumentos de los motores y las table functions de data lake (`icebergS3`, `deltaLakeS3`, etc.) cuando se invocaban con `SETTINGS disk = '...'` sobre un disco cuyo object storage subyacente está envuelto por un decorador, como una filesystem cache. Cierra [#89300](https://github.com/ClickHouse/ClickHouse/issues/89300). [#104258](https://github.com/ClickHouse/ClickHouse/pull/104258) ([Groene AI](https://github.com/groeneai)).
* Se corrige el análisis de expresiones de subíndice entre paréntesis en columnas llamadas `values`, por ejemplo `(values['a'])`, para que ya no se interpreten como expresiones de tabla `VALUES` estándar de SQL. [#104312](https://github.com/ClickHouse/ClickHouse/pull/104312) ([Desel72](https://github.com/Desel72)).
* Se corrige un aborto del servidor/`LOGICAL_ERROR` en el hilo de eviction en segundo plano de la filesystem cache (`SLRUFileCachePriority::collectEvictionInfo`) que podía producirse cuando `keep_free_space_size_ratio` o `keep_free_space_elements_ratio` eran lo bastante altos como para activar la eviction mientras todas las cache entries ya habían sido promovidas a la protected queue de SLRU (con la probationary vacía). [#104313](https://github.com/ClickHouse/ClickHouse/pull/104313) ([Groene AI](https://github.com/groeneai)).
* Se corrigen excepciones (`NOT_FOUND_COLUMN_IN_BLOCK`, `LOGICAL_ERROR`, `AMBIGUOUS_COLUMN_NAME`) al usar projections con vistas UNION ALL, window functions o colisiones de nombres entre alias y columnas. Regresión de [#88798](https://github.com/ClickHouse/ClickHouse/issues/88798). [#104317](https://github.com/ClickHouse/ClickHouse/pull/104317) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un posible underflow en el análisis de arrays de Postgres. [#104322](https://github.com/ClickHouse/ClickHouse/pull/104322) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Las funciones que devuelven un tipo no `Nullable` (como `Array`, `Tuple` o `Map`) ahora aceptan argumentos `Nullable`. Las funciones afectadas incluyen `extractAll`, `extractAllGroups`, `extractAllGroupsHorizontal`, `extractAllGroupsVertical`, `extractGroups`, `splitByChar`, `splitByString`, `splitByRegexp`, `splitByWhitespace`, `splitByNonAlpha` y `alphaTokens`. Las filas de entrada `NULL` ahora producen el valor predeterminado del tipo de resultado (por ejemplo, un array vacío) en lugar de generar "Nested type is not allowed inside Nullable type". [#104326](https://github.com/ClickHouse/ClickHouse/pull/104326) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige las estadísticas de Iceberg en tablas particionadas. Esto cierra [#104321](https://github.com/ClickHouse/ClickHouse/issues/104321). [#104329](https://github.com/ClickHouse/ClickHouse/pull/104329) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige un error lógico fatal durante el arranque del servidor en macOS (y compilaciones similares de jemalloc), en el que `Jemalloc::verifySetup` informaba incorrectamente de una discrepancia en `jemalloc_enable_background_threads` porque los mallctls opcionales `background_thread` / `max_background_threads` no existen; la verificación se omite cuando esos mallctls no están disponibles, y `getValue` ya no deja la salida sin inicializar si falla. Cierra [#102183](https://github.com/ClickHouse/ClickHouse/issues/102183). [#104330](https://github.com/ClickHouse/ClickHouse/pull/104330) ([SAYON DEEP](https://github.com/sayondeep)).
* Corrige una regresión que afectaba a la corrección, por la que las consultas `SELECT` con `max_rows_to_read_leaf` y `read_overflow_mode_leaf = 'throw'` podían lanzar incorrectamente `TOO_MANY_ROWS` incluso cuando un skip index habría reducido la lectura por debajo del límite del leaf. La configuración simétrica para non-leaf (`max_rows_to_read` / `read_overflow_mode`) ya estaba contemplada. [#104331](https://github.com/ClickHouse/ClickHouse/pull/104331) ([Groene AI](https://github.com/groeneai)).
* `toUUID`, `toUUIDOrNull`, `toUUIDOrZero`, `toUUIDOrDefault`, `CAST` a `UUID` y `Nullable(UUID)`, `accurateCastOrNull` a `UUID`, y los formatos de entrada que interpretan un UUID a partir de texto (`Avro`, `MsgPack`, `JSONExtract`, ...) ahora rechazan cadenas con la longitud correcta pero que contienen caracteres no hexadecimales. Antes, estas entradas se convertían silenciosamente en un UUID fabricado al leer más allá del final de la tabla de búsqueda de dígitos hexadecimales; ahora `toUUID` lanza `CANNOT_PARSE_UUID`, y las variantes `Or*` devuelven `NULL` / el UUID cero / el valor predeterminado proporcionado. [#104370](https://github.com/ClickHouse/ClickHouse/pull/104370) ([Groene AI](https://github.com/groeneai)).
* Corrige `Bad cast` `LOGICAL_ERROR` en `caseWithExpression` (y en SQL `CASE expr WHEN ... THEN ... ELSE ...`) cuando el supertype solo de THEN y el supertype de (THENs + ELSE) acaban en distintos almacenamientos `ColumnDecimal`; por ejemplo, valores THEN `(UInt16, Int8)` con un ELSE de `Decimal(9, 2)`. Cierra [#104335](https://github.com/ClickHouse/ClickHouse/issues/104335). [#104378](https://github.com/ClickHouse/ClickHouse/pull/104378) ([Groene AI](https://github.com/groeneai)).
* Los fallos internos informados mediante `logExceptionBeforeStart` (flushes de asynchronous insert, refreshes de vistas materialized, errores de parse lanzados durante consultas internas) ahora incrementan correctamente los ProfileEvents `FailedInternalQuery`, `FailedInternalSelectQuery` y `FailedInternalInsertQuery`, junto con los contadores visibles para el usuario `FailedQuery`, `FailedSelectQuery` y `FailedInsertQuery`. Antes, estos contadores internos permanecían en cero para los fallos ocurridos antes de que empezara la ejecución de la consulta, por lo que no contabilizaban una clase importante de fallos internos. [#104399](https://github.com/ClickHouse/ClickHouse/pull/104399) ([Groene AI](https://github.com/groeneai)).
* Corrige el error `Code: 36. BAD_ARGUMENTS Expected literal, got {name:Type}` que se producía al usar un parámetro de consulta dentro del ajuste `base_backup` de una sentencia `BACKUP` o `RESTORE` (p. ej., `BACKUP ... SETTINGS base_backup = S3({backup_name:String}, ...)`). La regresión se introdujo en `26.1.5` con el PR [#99205](https://github.com/ClickHouse/ClickHouse/issues/99205). Cierra [#103324](https://github.com/ClickHouse/ClickHouse/issues/103324). [#104413](https://github.com/ClickHouse/ClickHouse/pull/104413) ([Groene AI](https://github.com/groeneai)).
* Corrige un abort del servidor en escrituras de `IcebergLocal`/`IcebergS3` cuando a `ALTER TABLE ... DROP COLUMN` le sigue un `INSERT` con `iceberg_metadata_staleness_ms` mayor que cero. Ahora `ALTER` invalida la caché local de archivos de metadatos de Iceberg para que las lecturas y escrituras posteriores vean el nuevo esquema. [#104419](https://github.com/ClickHouse/ClickHouse/pull/104419) ([Groene AI](https://github.com/groeneai)).
* Corrige `DROP ROLE`, `DROP USER`, `DROP SETTINGS PROFILE`, `DROP ROW POLICY`, `DROP QUOTA` y `DROP MASKING POLICY` para eliminar las referencias a la entidad eliminada de cualquier otra entidad de acceso que la referenciara (p. ej., la lista `DEFAULT ROLE` de un usuario, la lista `TO` de un perfil de ajustes o los beneficiarios de una política de filas) y persistir esa limpieza en disco. Antes, el estado en memoria parecía correcto porque `SHOW CREATE` filtra los UUID desconocidos, pero los archivos `.sql` en disco conservaban entradas colgantes `ID('<dropped-uuid>')`, y las referencias reaparecían en el siguiente reinicio del servidor, manifestándose como errores `ACCESS_ENTITY_NOT_FOUND` durante la ejecución distribuida de consultas. [#104427](https://github.com/ClickHouse/ClickHouse/pull/104427) ([Groene AI](https://github.com/groeneai)).
* Corrige un abort del servidor provocado por `azureBlobStorage`, el engine `AzureBlobStorage` y DeltaLake-on-Azure con una cadena de conexión cuya URL `BlobEndpoint` tiene un puerto vacío, no numérico o fuera de rango (p. ej., `BlobEndpoint=http://host:abc/`). Ahora el servidor devuelve un error `BAD_ARGUMENTS` claro en lugar de abortar en builds de depuración o con sanitizador. [#104460](https://github.com/ClickHouse/ClickHouse/pull/104460) ([Groene AI](https://github.com/groeneai)).
* Permite usar un identificador sin comillas como nombre de usuario en las Table functions `remote` y `remoteSecure`, igual que los argumentos de base de datos y tabla aceptan identificadores sin comillas. Antes, esa consulta fallaba con un error de autenticación engañoso que hacía referencia al usuario `default`. [#104465](https://github.com/ClickHouse/ClickHouse/pull/104465) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `Logical error: Incorrect ASTSelectWithUnionQuery (modes: M, selects: N)` que se activaba cuando el cuerpo de una función definida por el usuario en SQL contiene un `UNION ALL` interno entre paréntesis (p. ej., `CREATE FUNCTION f AS x -> (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))`). [#104477](https://github.com/ClickHouse/ClickHouse/pull/104477) ([Groene AI](https://github.com/groeneai)).
* Corrige que `uniqThetaIntersect` devolviera la cardinalidad del primer argumento en lugar de `0` cuando el segundo argumento es un estado `uniqTheta` vacío; por ejemplo, el resultado de `uniqThetaMergeStateIf(s, predicate)` cuando el predicado excluye todas las filas. [#104529](https://github.com/ClickHouse/ClickHouse/pull/104529) ([Groene AI](https://github.com/groeneai)).
* Corrige `SHOW TABLES` y `system.tables`, que truncaban silenciosamente el listado de las bases de datos `DataLakeCatalog` respaldadas por catálogos REST de Iceberg (`iceberg-rest`, `onelake`, `biglake`). Cuando el servidor del catálogo paginaba la respuesta de list-tables o list-namespaces (por ejemplo, Microsoft Fabric / OneLake con más de \~50 tablas por espacio de nombres), las tablas de las páginas posteriores quedaban silenciosamente ocultas para `SHOW TABLES` y `system.tables`, aunque se podían consultar mediante `SELECT` directo. `RestCatalog` ahora sigue el token de continuación `next-page-token` definido por la especificación OpenAPI de Iceberg REST, en consonancia con el comportamiento existente de `PaimonRestCatalog` y `UnityCatalog`. [#104531](https://github.com/ClickHouse/ClickHouse/pull/104531) ([Groene AI](https://github.com/groeneai)).
* La función de tabla `input` ahora infiere su estructura a partir de la cláusula `FORMAT` de la consulta `INSERT` circundante cuando ese formato tiene un esquema fijo (`LineAsString`, `RawBLOB`, `JSONAsString`, etc.), por lo que los usuarios ya no tienen que repetir la estructura como `input('line String')` para estos formatos. [#104532](https://github.com/ClickHouse/ClickHouse/issues/104532). [#104533](https://github.com/ClickHouse/ClickHouse/pull/104533) ([Groene AI](https://github.com/groeneai)).
* Se actualizó el tipo de dato de los campos del historial de Iceberg de `Int32` a `Int64`. Cierra [#94176](https://github.com/ClickHouse/ClickHouse/issues/94176). [#104579](https://github.com/ClickHouse/ClickHouse/pull/104579) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Se corrigió `Inconsistent AST formatting` `LOGICAL_ERROR` al analizar una llamada a función en la que una lambda va después de una coma, por ejemplo ``SELECT substring(x, `x` -> `x`)``. Antes, el parser fusionaba silenciosamente los argumentos anteriores en el lado izquierdo de la lambda, produciendo una llamada de un solo argumento que no podía volver a analizarse para reconstruir el mismo AST. Ahora preserva la aridad original de la función. [#104626](https://github.com/ClickHouse/ClickHouse/pull/104626) ([Groene AI](https://github.com/groeneai)).
* `CHECK TABLE t` ahora da preferencia a una tabla `TEMPORARY` frente a una permanente con el mismo nombre cuando no se proporciona un calificador de base de datos, en consonancia con la precedencia ya utilizada por `SHOW CREATE TABLE`, `DESCRIBE TABLE`, `OPTIMIZE TABLE` y `ALTER TABLE`. Anteriormente, `CHECK TABLE t` omitía por completo las tablas temporales, por lo que fallaba con `UNKNOWN_TABLE` en una tabla temporal `Log` o `File`, aunque esos motores admiten `CHECK`. Continuación de [#100966](https://github.com/ClickHouse/ClickHouse/pull/100966). [#104637](https://github.com/ClickHouse/ClickHouse/pull/104637) ([Groene AI](https://github.com/groeneai)).
* Corrige el bucle de terminación y reinicio de Keeper cuando se envía `get /keeper/availability_zone` con `quorum_reads=true` a un Keeper sin `<placement>` configurado. [#104663](https://github.com/ClickHouse/ClickHouse/pull/104663) ([myeongjun](https://github.com/myeongjjun)).
* Corrige una carrera de dato TOCTOU en `FutureSetFromTuple::buildOrderedSetInplace` que provoca un error lógico. [#104673](https://github.com/ClickHouse/ClickHouse/pull/104673) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige varias funciones que devolvían resultados distintos para la misma entrada según si los argumentos llegaban como columnas o constantes: `bitRotateLeft` / `bitRotateRight` (recuentos de desplazamiento en los límites), `length(FixedString)` / `concatWithSeparator` con entradas `LowCardinality(Nullable)`, `roundDown` sobre NaN y `rightUTF8` sobre UTF-8 no válido. [#104710](https://github.com/ClickHouse/ClickHouse/pull/104710) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió que `anyHeavy` devolviera un valor no dominante cuando el valor más frecuente era el valor predeterminado de la columna y los datos estaban repartidos en varias partes de `MergeTree` (ruta de lectura de columnas dispersas). [#104712](https://github.com/ClickHouse/ClickHouse/pull/104712) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigen varios defectos en el manejo de restricciones de configuración: las restricciones de `MergeTreeSettings` declaradas sobre el nombre canónico de una configuración podían eludirse escribiendo en un alias de esa configuración; la comprobación de la restricción `disallowed_values` lanzaba una excepción en rutas de clamp (consultas secundarias, workers `ON CLUSTER`, vistas `SQL SECURITY DEFINER`) en lugar de descartar silenciosamente el cambio. [#104737](https://github.com/ClickHouse/ClickHouse/pull/104737) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige una excepción `LOGICAL_ERROR` (`Metadata is not initialized`) provocada por `OPTIMIZE TABLE`, `ALTER TABLE ... DELETE`, `ALTER TABLE ... ADD COLUMN` y otras variantes de ALTER en una tabla `Iceberg` / `IcebergLocal` / `DeltaLake` / `Hudi` adjunta de forma diferida cuyo metadata aún no se había cargado (algo típico después de un reinicio del server, o después de que una escritura previa de metadata fallara y dejara en disco un archivo de metadata corrupto). Ahora la operación continúa normalmente si el metadata se carga correctamente o, en caso contrario, muestra el fallo de carga subyacente como una excepción normal visible para el usuario en lugar de abortar el server en builds de debug / sanitizador. [#104738](https://github.com/ClickHouse/ClickHouse/pull/104738) ([Groene AI](https://github.com/groeneai)).
* Se corrige un segfault debido a un error de use-after-free en `AvroConfluentRowInputFormat`. [#104751](https://github.com/ClickHouse/ClickHouse/pull/104751) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Las variantes escalares de `numericIndexedVectorPointwiseMultiply`, `numericIndexedVectorPointwiseDivide`, `numericIndexedVectorPointwiseEqual` y `numericIndexedVectorPointwiseNotEqual` ahora generan `INCORRECT_DATA` cuando se llaman con un escalar `UInt64` superior a `Int64::max`. [#104784](https://github.com/ClickHouse/ClickHouse/pull/104784) ([FriendLey](https://github.com/FriendLey)).
* Se corrige un error por el que sobrescribir manualmente una configuración mediante su nombre de alias (por ejemplo, `SET enable_analyzer = 1` en lugar de `SET allow_experimental_analyzer = 1`) después de aplicar una configuración `compatibility` podía hacer que esa sobrescritura se revirtiera tras un cambio posterior de la configuración `compatibility`. [#104829](https://github.com/ClickHouse/ClickHouse/pull/104829) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige que el logger de AWS quedara deshabilitado después de [https://github.com/ClickHouse/ClickHouse/commit/0e8ad4355c9d](https://github.com/ClickHouse/ClickHouse/commit/0e8ad4355c9d). [#104837](https://github.com/ClickHouse/ClickHouse/pull/104837) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se corrigen otras tres funciones que devolvían resultados distintos para la misma entrada según si los argumentos llegaban como columnas o como constantes: `transform` (y `caseWithExpression` a través de ella) con un valor predeterminado constante `Date`/`Date32`/`Enum`/`FixedString`, operadores de comparación entre un `String` y un `FixedString` constante, e `if`/`ifNull`/`nullIf` con una rama `FixedString` bajo una condición constante. [#104858](https://github.com/ClickHouse/ClickHouse/pull/104858) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige el cierre del server con `Bad cast from type DB::ColumnConst to DB::ColumnNullable` durante la poda de particiones de tablas `MergeTree` cuando la expresión de partición contiene una cadena de funciones que colapsa en un único valor constante (como `floor(NULL, toRelativeYearNum(...))`). [#104861](https://github.com/ClickHouse/ClickHouse/pull/104861) ([Groene AI](https://github.com/groeneai)).
* Se corrige una carrera de dato detectada por `ThreadSanitizer` en el constructor de copia de `ContextData`: `table_function_results` se copiaba desde el objeto fuente sin adquirir `table_function_results_mutex`, por lo que un escritor concurrente de `Context::executeTableFunction` podía entrar en carrera con la lectura no sincronizada en el constructor de copia. [#104879](https://github.com/ClickHouse/ClickHouse/pull/104879) ([Groene AI](https://github.com/groeneai)).
* Se corrigen las comprobaciones de consistencia de data part para tipos con estructura dinámica y se detectan `columns_substreams.txt` corruptos. Reenvío de [https://github.com/ClickHouse/ClickHouse/pull/103858](https://github.com/ClickHouse/ClickHouse/pull/103858) con cambios adicionales. [#104888](https://github.com/ClickHouse/ClickHouse/pull/104888) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige una condición de carrera entre DROP y UNDROP en DatabaseCatalog. [#104915](https://github.com/ClickHouse/ClickHouse/pull/104915) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el redimensionamiento dinámico de la caché del sistema de archivos con segmentos descargados parcialmente, incluida la restauración de la contabilidad tras una expulsión fallida. [#104921](https://github.com/ClickHouse/ClickHouse/pull/104921) ([Antonio Andelic](https://github.com/antonio2368)).
* `DETACH TABLE` sobre una tabla temporal (sin la palabra clave `TEMPORARY`) ahora genera correctamente `SYNTAX_ERROR`, en línea con el comportamiento de `DETACH TEMPORARY TABLE`. Antes, establecía silenciosamente una marca interna `is_detached` y devolvía el control sin error. Para eliminar una tabla temporal, use `DROP TEMPORARY TABLE` o `DROP TABLE` (este último resuelve la tabla temporal mediante `Context::ResolveExternal`). Cierra [#103475](https://github.com/ClickHouse/ClickHouse/issues/103475). [#104943](https://github.com/ClickHouse/ClickHouse/pull/104943) ([Groene AI](https://github.com/groeneai)).
* Hace que la table function `filesystem` respete `max_memory_usage` / `max_server_memory_usage` al cargar el contenido de los archivos. Antes, las lecturas paralelas de contenido, si eran grandes o numerosas, podían superar el límite sin generar `MEMORY_LIMIT_EXCEEDED` y terminar siendo finalizadas por OOM. [#104956](https://github.com/ClickHouse/ClickHouse/pull/104956) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un `LOGICAL_ERROR` generado al filtrar `system.detached_tables` por `uuid` (por ejemplo, `SELECT count() FROM system.detached_tables WHERE uuid = '...'`). La consulta ahora devuelve el resultado esperado en lugar de abortar el servidor. [#104979](https://github.com/ClickHouse/ClickHouse/pull/104979) ([Groene AI](https://github.com/groeneai)).
* `flattenTuple` ya no genera un `LOGICAL_ERROR` cuando se invoca sobre una tupla cuya estructura anidada contiene solo hojas `Tuple()` vacías (por ejemplo, `Tuple(c0 Array(Tuple()))` o `Tuple(c0 Tuple())`). Estas entradas ahora producen una excepción `ILLEGAL_TYPE_OF_ARGUMENT` orientada al usuario, que explica que el resultado del aplanado sería una tupla vacía. [#104989](https://github.com/ClickHouse/ClickHouse/pull/104989) ([Groene AI](https://github.com/groeneai)).
* Corrige un aborto del servidor y un error silencioso de resultados incorrectos al consultar `loop(remote(...))` (o cualquier `loop()` que envuelva un almacenamiento que pueda diferir la agregación) con `GROUP BY`. Antes, el planner externo añadía `MergingAggregatedStep` basándose en la etapa de procesamiento informada por el almacenamiento interno, pero `LoopSource` siempre materializa su `select` interno con `QueryProcessingStage::Complete` y emite fragmentos de columnas simples, por lo que `MergingAggregatedTransform` provocaba un `LOGICAL_ERROR` (`Chunk info was not set for chunk in MergingAggregatedTransform`) con `enable_parallel_replicas = 1` y, en caso contrario, descartaba silenciosamente la agregación externa. [#105001](https://github.com/ClickHouse/ClickHouse/pull/105001) ([Groene AI](https://github.com/groeneai)).
* `clickhouse-benchmark --reconnect` (solo, sin valor) dejó de funcionar inadvertidamente en 25.4 debido a un cambio que convirtió `--reconnect` en una opción entera, exigiendo un valor. La forma sin valor vuelve a funcionar y equivale a `--reconnect=1` (reconectar en cada consulta). [#105006](https://github.com/ClickHouse/ClickHouse/pull/105006) ([Groene AI](https://github.com/groeneai)).
* Se corrigió una salida JSON malformada para nombres de columnas terminados en secuencias UTF-8 incompletas. [#105012](https://github.com/ClickHouse/ClickHouse/pull/105012) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige la pérdida silenciosa de datos tras `EXCHANGE TABLES` o `CREATE OR REPLACE TABLE` en la tabla de origen de una vista materializada. La arista de dependencia entre la `MV` y su vista de origen ahora se conserva en el nombre original para que siga activándose en los inserts. La regresión fue introducida por [#98779](https://github.com/ClickHouse/ClickHouse/issues/98779); restaura el comportamiento anterior a la regresión. [#105029](https://github.com/ClickHouse/ClickHouse/pull/105029) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige `CANNOT_COMPILE_CODE Could not find symbol __fixunsdfti` al compilar con JIT expresiones que convierten un `Float` a `UInt128`, como `toUInt128(<Float64 expression>)`. Faltaban en el resolvedor de símbolos del JIT las builtins sin signo de compiler-rt para conversión de float a entero de 128 bits. Cierra [#105031](https://github.com/ClickHouse/ClickHouse/issues/105031). [#105048](https://github.com/ClickHouse/ClickHouse/pull/105048) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige que `clickhouse-local` no imprimiera mensajes de registro de una consulta fallida cuando `send_logs_level` está configurado. [#105067](https://github.com/ClickHouse/ClickHouse/pull/105067) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen resultados incorrectos cuando se hace referencia a la misma vista parametrizada más de una vez en la misma consulta con distintos valor del argumento. Antes, el analizador agrupaba las llamadas en una sola, descartando silenciosamente todos los filtros salvo el primero. [#105170](https://github.com/ClickHouse/ClickHouse/pull/105170) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige que la fila `TOTALS` se mostrara dos veces en la parte inferior de la tabla de resultados en la interfaz web `play.html`. [#103803](https://github.com/ClickHouse/ClickHouse/pull/103803) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se rechazan vectores no finitos (`NaN`, `±Inf`) durante la búsqueda vectorial (ya sea como vectores de búsqueda o como vectores de referencia); antes provocaban un comportamiento indefinido en `usearch`. [#104079](https://github.com/ClickHouse/ClickHouse/pull/104079) ([Groene AI](https://github.com/groeneai)).
* PromQL: se corrige el operador de agregación para vectores vacíos. [#104425](https://github.com/ClickHouse/ClickHouse/pull/104425) ([Vitaly Baranov](https://github.com/vitlibar)).
* PromQL: se corrige el manejo de errores en la API de consulta de Prometheus. [#104741](https://github.com/ClickHouse/ClickHouse/pull/104741) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige una condición de carrera en `MergeTreeTransaction::afterCommit` en la que, tras una pérdida de connection entre la escritura del `CSN` de commit en ZooKeeper y la finalización de la transacción, la respuesta `COMMIT` podía llegar al client antes de que el nuevo `creation_csn` / `removal_csn` se hiciera visible en `system.parts`. [#104708](https://github.com/ClickHouse/ClickHouse/pull/104708) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Se corrige el crecimiento exponencial del uso de memoria en el parser de KQL al convertir la indexación de arrays anidados (`arr[arr[arr[...]]]`). [#105142](https://github.com/ClickHouse/ClickHouse/pull/105142) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen resultados incorrectos para `RIGHT ANY JOIN` cuando la tabla de la derecha tiene varias filas por clave y el block de salida se divide debido a límites de tamaño. Cierra [#99431](https://github.com/ClickHouse/ClickHouse/issues/99431). [#102064](https://github.com/ClickHouse/ClickHouse/pull/102064) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se comprueba si hay desbordamiento de pila en el lector de `Avro` durante la deserialización de tipos anidados. [#102417](https://github.com/ClickHouse/ClickHouse/pull/102417) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigen filas duplicadas en `system.completions` para la configuración de `MergeTree`: cada nombre de configuración aparecía dos veces porque tanto `getMergeTreeSettings` como `getReplicatedMergeTreeSettings` se volcaban pese a tener nombres de configuración idénticos. Cierra [#102013](https://github.com/ClickHouse/ClickHouse/issues/102013). [#102015](https://github.com/ClickHouse/ClickHouse/pull/102015) ([Groene AI](https://github.com/groeneai)).
* Se corrige que `StorageObjectStorageQueue` (`S3Queue`, `AzureQueue`) bloqueara el apagado hasta completar la lectura desde el almacenamiento de objetos de archivos procesados parcialmente. Ahora la fuente aborta la lectura inmediatamente al apagarse; la deduplicación garantiza que las filas ya transmitidas a la tabla de destino antes del apagado no se dupliquen cuando se vuelva a intentar procesar el archivo en el siguiente inicio. [#103126](https://github.com/ClickHouse/ClickHouse/pull/103126) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Se corrigen las inserciones de varios bloques en el table engine `Alias` con `insert_deduplication_token` para que se conserven todos los bloques. [#103246](https://github.com/ClickHouse/ClickHouse/pull/103246) ([Enric Calabuig](https://github.com/eclbg)).
* Se corrigen `JSONHas` y `JSONExtractBool` en columnas `JSON` nativas, que devolvían el valor extraído (convertido a `UInt8`) en lugar de `0`/`1`. [#103313](https://github.com/ClickHouse/ClickHouse/pull/103313) ([zxuhan7](https://github.com/zxuhan)).
* Se protege el formato de entrada `CustomSeparated` frente a datos malformados o maliciosos que omiten `format_custom_row_after_delimiter`. La detección de encabezados, la inferencia de esquemas y las filas con un número variable de columnas acumulaban antes campos sin límite y podían asignar muchos gigabytes de memoria antes de fallar. Ahora la lectura falla con `INCORRECT_DATA` en cuanto una sola fila contiene más de 1.000.000 de campos. [#103404](https://github.com/ClickHouse/ClickHouse/pull/103404) ([Groene AI](https://github.com/groeneai)).
* Se corrige `RESTORE` de tablas `MergeTree` replicadas para que la asociación de partes restauradas use `backup_restore_keeper_max_retries` en lugar del presupuesto habitual de reintentos de inserción de Keeper. [#104610](https://github.com/ClickHouse/ClickHouse/pull/104610) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrigen resultados incorrectos de `WHERE p AND <LowCardinality(Nullable(int)) constant>` en tablas `MergeTree`. Antes, esas consultas devolvían cero filas porque la poda de partes derivaba un valor `NULL` predeterminado del tipo `LowCardinality(Nullable(...))` y generaba una condición de guarda `notEquals(x, NULL)`, descartando todas las partes. [#104767](https://github.com/ClickHouse/ClickHouse/pull/104767) ([Groene AI](https://github.com/groeneai)).
* Se corrige un resultado de agregación incorrecto al agrupar por una función no inyectiva de una columna que también es la clave de partición (por ejemplo, `PARTITION BY a` con `GROUP BY intDiv(a, 2)` o `a % 2`). Los valores de distintas particiones que se asignaban al mismo grupo no se fusionaban, lo que producía filas de grupo duplicadas con `allow_aggregate_partitions_independently = 1`. [#104869](https://github.com/ClickHouse/ClickHouse/pull/104869) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige una condición de carrera en la transferencia de instantáneas de `Keeper` por la que una instantánea podía eliminarse o moverse mientras se enviaba a un follower en recuperación. [#104941](https://github.com/ClickHouse/ClickHouse/pull/104941) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige un error silencioso de resultados incorrectos en `hilbertEncode` y `mortonEncode`, por el que un primer argumento `Tuple` no constante (máscara de rango) usaba los valores de la fila 0 para determinar el desplazamiento de bits de todas las filas. Ahora las funciones calculan los valores de la máscara para cada fila, por lo que el resultado ya no depende de que la entrada sea constante ni del tamaño del bloque. [#104992](https://github.com/ClickHouse/ClickHouse/pull/104992) ([Groene AI](https://github.com/groeneai)).
* Se corrige que `clickhouse-local` ignorara silenciosamente la configuración a nivel de usuario (`profiles`, `users`, `quotas`, ajustes de control de acceso) cuando el archivo de configuración se detectaba automáticamente en `./clickhouse-local.xml`, `~/.clickhouse-local/config.xml` o `/etc/clickhouse-local/config.xml`. Antes, estos ajustes se aplicaban solo cuando se pasaba `--config-file` o existía `./config.xml` en el directorio actual; ahora todas las rutas de detección se comportan de forma coherente. [#105008](https://github.com/ClickHouse/ClickHouse/pull/105008) ([Groene AI](https://github.com/groeneai)).
* Se corrigen las columnas `BFloat16` que devolvían silenciosamente cero coincidencias al compararlas con un literal de cadena (p. ej., `WHERE bf16_col = '49.9'`). [#105042](https://github.com/ClickHouse/ClickHouse/pull/105042) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige el manejo de `CLEAR COLUMN` y TTL durante los merges en `SummingMergeTree`, `AggregatingMergeTree` y `CoalescingMergeTree` cuando faltan columnas necesarias para el merge o han expirado. Cierra [#101953](https://github.com/ClickHouse/ClickHouse/issues/101953). [#105203](https://github.com/ClickHouse/ClickHouse/pull/105203) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige una condición de carrera entre `DNSCacheUpdater::run` y `Context::reloadClusterConfig` añadiendo una comprobación explícita de null para `shared->clusters_config` antes de desreferenciarlo. [#105220](https://github.com/ClickHouse/ClickHouse/pull/105220) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se corrige el parsing `best_effort` de fecha y hora para `toDateTime64` con precisión `ms` y `ns`. [#105233](https://github.com/ClickHouse/ClickHouse/pull/105233) ([Kaviraj Kanagaraj](https://github.com/kavirajk)).
* Se corrige que `OSIOWaitMicroseconds` informara la espera de E/S durante el ciclo de vida del hilo en lugar de la espera de E/S por consulta. [#105246](https://github.com/ClickHouse/ClickHouse/pull/105246) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* El table engine `Hudi` ahora genera `INCORRECT_DATA` (una excepción normal a nivel de consulta) en lugar de `LOGICAL_ERROR` cuando un archivo Parquet del directorio de la tabla no sigue la convención de nombres de Hudi `[FileId]_[FileWriteToken]_[Timestamp].[extension]`. Anteriormente, esos nombres de archivo provocaban una excepción en las builds de depuración. [#105266](https://github.com/ClickHouse/ClickHouse/pull/105266) ([Groene AI](https://github.com/groeneai)).
* Se corrige un interbloqueo en `ParallelFormattingOutputFormat` ante un fallo de planificación: cuando `scheduleFormatterThreadForUnitWithNumber` lanza una excepción (p. ej., `CANNOT_SCHEDULE_TASK`), la unidad quedaba en `READY_TO_FORMAT` sin ningún hilo formatter para procesarla, lo que provocaba un bloqueo. La llamada de planificación ahora se encapsula en `try`/`catch` y cualquier fallo se canaliza a través de `onBackgroundException` para que el collector finalice correctamente. [#105275](https://github.com/ClickHouse/ClickHouse/pull/105275) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige una pérdida silenciosa de datos en `Distributed` async inserts al recuperarse de un apagado anómalo: si el último archivo `.bin` de un batch guardado estaba intacto pero uno intermedio estaba corrupto, `DistributedAsyncInsertBatch::recoverBatch` solo validaba el header del último archivo y luego `sendBatch` marcaba todo el batch —incluidos los archivos intactos— como dañado, perdiendo sus filas. Ahora se valida individualmente el header de cada archivo, de modo que solo el archivo realmente dañado se mueve a `broken/` y las filas que sobreviven llegan al segmento remoto. [#105281](https://github.com/ClickHouse/ClickHouse/pull/105281) ([Groene AI](https://github.com/groeneai)).
* Se corrige una regresión en `clickhouse extract-from-config --try`: cuando la configuración usaba attributes `from_env` y no tenía ningún elemento `include_from` (o tenía uno que apuntaba a un archivo inexistente), todas las substitutions `from_env` se descartaban silenciosamente y devolvían cadenas vacías. Esto rompía la detección de puertos del entrypoint de Docker en la versión 26.2.5. Cierra [#101704](https://github.com/ClickHouse/ClickHouse/issues/101704). [#105283](https://github.com/ClickHouse/ClickHouse/pull/105283) ([Groene AI](https://github.com/groeneai)).
* Se corrige que `INSERT INTO` en una tabla `SQLite` fallara con un error de sintaxis de SQLite cuando el valor insertado es un `Enum`, `JSON` o `AggregateFunction` cuya representación textual contiene una comilla simple. El ajuste `output_format_values_escape_quote_with_quote` ahora se respeta en las serializations correspondientes (anteriormente, solo `String` y `FixedString` lo respetaban). [#105285](https://github.com/ClickHouse/ClickHouse/pull/105285) ([Groene AI](https://github.com/groeneai)).
* Se corrige `Code: 44. ILLEGAL_COLUMN: Cannot add column ...: column with this name already exists`, lanzado por consultas distribuidas con `allow_push_predicate_ast_for_distributed_subqueries = 1` (valor predeterminado) cuando una tupla `GLOBAL IN` se compara con una subconsulta cuya proyección contiene nombres de columna duplicados; por ejemplo, `(x, y) GLOBAL IN (SELECT number, number FROM numbers(5))`. [#105290](https://github.com/ClickHouse/ClickHouse/pull/105290) ([Groene AI](https://github.com/groeneai)).
* Se corrige el caso en que `reinterpret` a `Array(LowCardinality(...))` devolvía un error `NOT_IMPLEMENTED` confuso en tiempo de ejecución; ahora devuelve `ILLEGAL_TYPE_OF_ARGUMENT` durante la verificación de tipos. [#105301](https://github.com/ClickHouse/ClickHouse/pull/105301) ([Raúl Marín](https://github.com/Algunenano)).
* `minMap`/`maxMap` (forma de array) y `minMappedArrays`/`maxMappedArrays` ahora tratan `NaN` de forma coherente con `ORDER BY`: `NaN` se trata como el último valor (solo se devuelve cuando todos los valores son `NaN`). Antes, los resultados dependían de la posición de `NaN` en los datos debido a la semántica de comparación no ordenada de IEEE 754, y no coincidían con la forma con argumento `Map` de `minMap`/`maxMap`, corregida en [#100448](https://github.com/ClickHouse/ClickHouse/pull/100448). [#105331](https://github.com/ClickHouse/ClickHouse/pull/105331) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige una fuga de memoria en la caché `ColumnsDescription` por tabla para tablas de la familia `MergeTree` con columnas `Nested`. Las entradas nunca se desalojaban durante ciclos de `ALTER ADD COLUMN`/`DROP COLUMN` cuando `share_nested_offsets = 1` (valor predeterminado). [#105376](https://github.com/ClickHouse/ClickHouse/pull/105376) ([Groene AI](https://github.com/groeneai)).
* Se corrige la excepción `BAD_ARGUMENTS` "It's a bug! Only integer types are supported by `__bitWrapperFunc`", lanzada cuando un `SELECT` con un skip index `TYPE set(N)` tiene un átomo `WHERE` cuyo tipo de resultado es `Float`, `BFloat16` o cualquier otro tipo no entero (por ejemplo, `WHERE c0 + 0.1` o `WHERE log(c0)`). En ese caso, el skip index ahora vuelve a la ruta de filtro normal. [#105384](https://github.com/ClickHouse/ClickHouse/pull/105384) ([Groene AI](https://github.com/groeneai)).

<div id="buildtestingpackaging-improvement">
  #### Mejora en compilación/pruebas/empaquetado
</div>

* Dejar de usar las bibliotecas y encabezados `compiler-rt` del sistema. Cierra [#91475](https://github.com/ClickHouse/ClickHouse/issues/91475). [#102857](https://github.com/ClickHouse/ClickHouse/pull/102857) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Actualizar la image base distroless de Docker para corregir CVE de OpenSSL en `libssl3t64`. [#103583](https://github.com/ClickHouse/ClickHouse/pull/103583) ([Rahul Nair](https://github.com/motsc)).
* Recibir de forma fiable la clave GPG durante las releases encadenando varios servidores de claves de Ubuntu, en lugar de agotar el tiempo de espera en `keyserver.ubuntu.com`. [#103834](https://github.com/ClickHouse/ClickHouse/pull/103834) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Eliminar y prohibir las comprobaciones de `CMake` en tiempo de compilación (`check_*`, `try_compile`, `try_run`). El compilador y la cadena de herramientas son fijos, por lo que la detección de funcionalidades en tiempo de configuración es innecesaria y ahora está bloqueada en todo el proyecto; cualquier comportamiento específico de una versión debe condicionarse explícitamente a `CMAKE_CXX_COMPILER_VERSION`. [#103980](https://github.com/ClickHouse/ClickHouse/pull/103980) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Actualizar `libarchive` de la versión 3.8.6 a la 3.8.7. [#104047](https://github.com/ClickHouse/ClickHouse/pull/104047) ([Robert Schulze](https://github.com/rschu1ze)).
* Actualizar `mongo-c-driver` a la versión 2.3.0. [#104300](https://github.com/ClickHouse/ClickHouse/pull/104300) ([Raúl Marín](https://github.com/Algunenano)).
* Actualizar las dependencias de LLVM para 22.x. [#104381](https://github.com/ClickHouse/ClickHouse/pull/104381) ([Joshua Carp](https://github.com/jmcarp)).
* Hacer que las clases de embedded-client y descriptor PTY se compilen en macOS y FreeBSD usando `posix_openpt` / `grantpt` / `unlockpt` de POSIX portable y eliminando las protecciones `#if` exclusivas de Linux. [#104436](https://github.com/ClickHouse/ClickHouse/pull/104436) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Actualizar `librdkafka` a la versión 2.14.1. [#105222](https://github.com/ClickHouse/ClickHouse/pull/105222) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).

<div id="264">
  ### lanzamiento de ClickHouse 26.4, 2026-04-30. [Presentación](https://presentations.clickhouse.com/2026-release-26.4/), [Vídeo](https://www.youtube.com/watch?v=9lSVy7k2EoI)
</div>

<div id="backward-incompatible-change">
  #### Cambio incompatible con versiones anteriores
</div>

* El operador `IN` ahora usa una semántica de valores exactos para el tipo `Bool`: solo los valores `0` y `1` del conjunto coinciden con valores `Bool`. Antes, los valores numéricos mayores que `255` en el conjunto `IN` se truncaban incorrectamente a true al compararse con `Bool`, por lo que `SELECT CAST(1, 'Bool') IN (256)` devolvía 1. Ahora devuelve correctamente `0`. Cierra [#92980](https://github.com/ClickHouse/ClickHouse/issues/92980). [#93115](https://github.com/ClickHouse/ClickHouse/pull/93115) ([Ashrith Bandla](https://github.com/ashrithb)).
* La biblioteca H3 se ha actualizado a la v4, lo que mejora la precisión de los cálculos de longitud, área y otras métricas. Este cambio es incompatible con versiones anteriores porque los nuevos resultados difieren de los anteriores. [#100348](https://github.com/ClickHouse/ClickHouse/pull/100348) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ya no se permite usar `SELECT` como identificador sin comillas en un elemento de la lista de expresiones `WITH`. [#101059](https://github.com/ClickHouse/ClickHouse/pull/101059) ([Aruj Bansal](https://github.com/arujbansal)).
* Este parche cambia cómo la tabla Merge manejará las columnas virtuales. Si la tabla subyacente contiene `_table` o `_database`, estas columnas se leerán desde el almacenamiento; de lo contrario, se rellenarán después del paso de lectura mediante el paso de expresión. [#101742](https://github.com/ClickHouse/ClickHouse/pull/101742) ([Mikhail Artemenko](https://github.com/Michicosun)).
* El operador `IN` ahora también rechaza conversiones de `Decimal` con pérdida dentro de tipos compuestos (`Tuple`, `Array`, `Map`), lo que hace que su comportamiento sea coherente con el de las comparaciones escalares de nivel superior. Antes, las comprobaciones de precisión solo se aplicaban a los valores escalares de nivel superior: por ejemplo, `CAST('33.3', 'Decimal64(1)') IN (33.33)` devolvía correctamente `0`, pero `CAST(['33.3'], 'Array(Decimal64(1))') IN ([33.33])` devolvía incorrectamente `1` porque la conversión con pérdida se producía dentro de un `Array`. Ahora ambos casos devuelven correctamente `0`. [#101812](https://github.com/ClickHouse/ClickHouse/pull/101812) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se redujo el valor predeterminado de `http_max_fields` de 1,000,000 a 1,000 y el de `http_max_field_name_size` de 128 KB a 4 KB para limitar el uso de memoria previo a la autenticación de las conexiones HTTP. Se añadieron los ajustes `http_max_request_header_size` y `http_headers_read_timeout`. Los usuarios que dependan de los límites anteriores más altos pueden restaurarlos mediante ajustes. [#103285](https://github.com/ClickHouse/ClickHouse/pull/103285) ([Sema Checherinda](https://github.com/CheSema)).

<div id="new-feature">
  #### Nueva funcionalidad
</div>

* Se añade el volcado automático a disco a los hash join y parallel hash join, convirtiéndolos en grace hash join cuando se alcanza el límite de memoria. Este comportamiento se controla con `max_bytes_before_external_join`. [#97813](https://github.com/ClickHouse/ClickHouse/pull/97813) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se añade soporte para Arrow Flight SQL. [#91170](https://github.com/ClickHouse/ClickHouse/pull/91170) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Agregar compatibilidad con lectura incremental para los motores de tabla `Paimon`, con seguimiento del progreso de snapshots respaldado por Keeper, incluidas lecturas delta dirigidas de snapshots mediante `paimon_target_snapshot_id`, y ampliar la cobertura de pruebas para la correspondencia de tipos, la poda de particiones y los escenarios de lectura incremental. [#93655](https://github.com/ClickHouse/ClickHouse/pull/93655) ([XiaoBinMu](https://github.com/Binnn-MX)).
* La función `stem` ha dejado de ser experimental (anteriormente, era necesario habilitar la configuración `allow_experimental_nlp_functions`). [#102399](https://github.com/ClickHouse/ClickHouse/pull/102399) ([Jimmy Aguilar Mena](https://github.com/Ergus)). Ahora puede aplicar fácilmente stemming a todas las palabras/tokens de las columnas `String`, `FixedString`, `Array([Fixed]String)`, `Nullable`, `LowCardinality` y `Const` con la función `stem`. [#99137](https://github.com/ClickHouse/ClickHouse/pull/99137) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Se implementa el nuevo comportamiento de `max_insert_block_size_rows`, `max_insert_block_size_bytes`, `min_insert_block_size_rows`, `min_insert_block_size_bytes` en el squashing con la configuración de compatibilidad `use_strict_insert_block_limits`. [#94207](https://github.com/ClickHouse/ClickHouse/pull/94207) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Se añade la función `arrayAutocorrelation(arr [, max_lag])`, que calcula la autocorrelación normalizada de un arreglo numérico para cada valor de retraso. Admite arreglos de tipo entero, Float y Decimal. [#94776](https://github.com/ClickHouse/ClickHouse/pull/94776) ([Wenyu Chen](https://github.com/wenyuchen96)).
* Una función SQL `obfuscateQuery`. Cierra el issue [#98010](https://github.com/ClickHouse/ClickHouse/issues/98010). [#98305](https://github.com/ClickHouse/ClickHouse/pull/98305) ([Xuewei Wang](https://github.com/Sallery-X)).
* Se añadió compatibilidad con los tipos Map y JSON/Object como atributos de diccionario. Ahora los diccionarios pueden almacenar y recuperar tipos complejos, incluidos Map(String, String), Map(String, Array(String)), JSON y Nullable(JSON), tanto en los layouts FLAT como HASHED. [#98627](https://github.com/ClickHouse/ClickHouse/pull/98627) ([yanglongwei](https://github.com/ylw510)).
* Se añadieron dos nuevos ajustes de MergeTree — `replicated_fetches_min_part_level` y `replicated_fetches_min_part_level_timeout_seconds` — que permiten a las réplicas evitar recuperar partes recién insertadas (sin fusionar) de otras réplicas, lo que reduce la sobrecarga de la replicación durante periodos de ingestión intensiva. [#98625](https://github.com/ClickHouse/ClickHouse/pull/98625) ([tanner-bruce](https://github.com/tanner-bruce)).
* Añade soporte para índices de omisión de MergeTree en columnas JSON mediante JSONAllPaths con los tipos de índice bloom\_filter, tokenbf\_v1, ngrambf\_v1 y text (invertido), lo que permite omitir gránulos según el conjunto de rutas JSON presentes en cada gránulo. [#98886](https://github.com/ClickHouse/ClickHouse/pull/98886) ([Pavel Kruglov](https://github.com/Avogar)).
* La función `printf` ahora admite cadenas de formato no constantes, lo que permite usar distintos formatos por fila según los valores de las columnas. [#98991](https://github.com/ClickHouse/ClickHouse/pull/98991) ([Yash ](https://github.com/Onyx2406)).
* Se añade un nuevo índice de proyección, `commit_order`, que reorganiza los datos en orden de inserción. [#99004](https://github.com/ClickHouse/ClickHouse/pull/99004) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Se añade la función `highlight`, que envuelve las apariciones de términos de búsqueda en una cadena de texto con etiquetas HTML (por defecto, `<em>`/`</em>`). Admite coincidencias ASCII sin distinción entre mayúsculas y minúsculas, la fusión automática de coincidencias superpuestas y etiquetas de apertura y cierre personalizadas. [#99131](https://github.com/ClickHouse/ClickHouse/pull/99131) ([Peng](https://github.com/fastio)).
* Implementa cuotas basadas en el hash de la consulta normalizada para proteger los servicios públicos de ClickHouse frente a abusos. 1. Añade compatibilidad con `NORMALIZED_QUERY_HASH` como tipo de clave de cuota: buckets de cuota separados para cada consulta normalizada única, de modo que `CREATE QUOTA q KEYED BY normalized_query_hash` realiza un seguimiento independiente de cada consulta distinta. 2. Añade compatibilidad con `QUERIES_PER_NORMALIZED_HASH` como tipo de recurso de cuota -- limita el número máximo de ejecuciones de una misma consulta normalizada dentro de un intervalo, de modo que `MAX queries_per_normalized_hash = 100` evita que un mismo patrón de consulta se ejecute más de 100 veces. [#99586](https://github.com/ClickHouse/ClickHouse/pull/99586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora, los usuarios pueden escribir consultas con la sintaxis `NATURAL JOIN`, que hace coincidir automáticamente todas las columnas con el mismo nombre y evita duplicarlas en el resultado. [#99840](https://github.com/ClickHouse/ClickHouse/pull/99840) ([Peter Nguyen](https://github.com/petern48)).
* Se admite `SET TIME ZONE 'tz'` como alias de `SET session_timezone`. [#99883](https://github.com/ClickHouse/ClickHouse/pull/99883) ([phulv94](https://github.com/phulv94)).
* Se añadió soporte para consultas parametrizadas en la interfaz web (`play.html`): se detectan parámetros de consulta como `{name:Type}` y se muestran campos de entrada para introducir sus valores. [#100041](https://github.com/ClickHouse/ClickHouse/pull/100041) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite usar la cláusula estándar SQL `VALUES` como expresión de tabla en `FROM`, p. ej. `SELECT * FROM (VALUES (1, 'a'), (2, 'b')) AS t(id, val)`. [#100143](https://github.com/ClickHouse/ClickHouse/pull/100143) ([Desel72](https://github.com/Desel72)).
* Se añaden unidades compatibles con PostgreSQL al operador `EXTRACT`: `EPOCH`, `DOW`, `DOY`, `ISODOW`, `ISOYEAR`, `WEEK`, `CENTURY`, `DECADE`, `MILLENNIUM`. También se corrige `EXTRACT(WEEK FROM date)`, que antes generaba un error. [#100274](https://github.com/ClickHouse/ClickHouse/pull/100274) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió compatibilidad con literales compuestos de intervalos según el estándar SQL con calificadores de rango `TO`, p. ej., `INTERVAL '1:30' HOUR TO MINUTE`. Internamente, se descomponen en sumas de intervalos. [#100453](https://github.com/ClickHouse/ClickHouse/pull/100453) ([Desel72](https://github.com/Desel72)).
* Añade métricas asíncronas para la memoria de los búferes TCP de recepción y envío del kernel (`sk_rmem_alloc`, `sk_wmem_alloc`) de los sockets del pool de conexiones HTTP, notificadas como percentiles p50/p75/p90/p95 y totales por grupo de conexiones. [#100575](https://github.com/ClickHouse/ClickHouse/pull/100575) ([Sema Checherinda](https://github.com/CheSema)).
* Se añadió una web UI para el profiling de jemalloc en ClickHouse Keeper, disponible en `/jemalloc` en el puerto de control HTTP. [#100606](https://github.com/ClickHouse/ClickHouse/pull/100606) ([murphy-4o](https://github.com/murphy-4o)).
* Se implementó el comando `SYSTEM FLUSH OBJECT STORAGE QUEUE db.table PATH 'x'` para los modos ordered y unordered. [#100709](https://github.com/ClickHouse/ClickHouse/pull/100709) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añadió la función `JSONAllValues`, que devuelve todos los valores de una columna `JSON` como `Array(String)`, con los valores serializados en representación textual y ordenados por sus nombres de ruta. Se añadió compatibilidad con el índice de texto para la expresión `JSONAllValues` en columnas `JSON`. Cuando se crea un índice de texto en `JSONAllValues(json_column)`, se utiliza automáticamente para filtrar consultas sobre subcolumnas `JSON` (p. ej., `json_column.key1 = 'value'`). [#100730](https://github.com/ClickHouse/ClickHouse/pull/100730) ([Anton Popov](https://github.com/CurtizJ)).
* Añade una nueva opción de configuración, `input_format_column_name_matching_mode`, que permite distintos modos de distinguir entre mayúsculas y minúsculas en los formatos de entrada. [#99346](https://github.com/ClickHouse/ClickHouse/pull/99346) ([manerone](https://github.com/Manerone)).
* Se añade el comando `watch` a `clickhouse-keeper-client`, con compatibilidad con `watch` en los comandos `get`, `exists` y `ls`. [#100834](https://github.com/ClickHouse/ClickHouse/pull/100834) ([Den Kalantaevskii](https://github.com/Diskein)).
* Se añadió la solicitud `getChildrenRecursive` (ListRecursive) a ClickHouse Keeper y el comando `lsr` a `clickhouse-keeper-client`. Esto cierra [#99916](https://github.com/ClickHouse/ClickHouse/issues/99916). [#100998](https://github.com/ClickHouse/ClickHouse/pull/100998) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Añade la nueva función `arrayTranspose`, que toma un array bidimensional (matriz) y lo transpone: `SELECT arrayTranspose([[1, 2, 3], [4, 5, 6]])`. [#101214](https://github.com/ClickHouse/ClickHouse/pull/101214) ([Vitaly Baranov](https://github.com/vitlibar)).
* La configuración `auto_statistics_types mergetree` tiene como valor predeterminado `'minmax, uniq'` — las estadísticas minmax y uniq se crean automáticamente para todas las columnas adecuadas de las tablas nuevas - `materialize_statistics_on_insert` tiene como valor predeterminado false — las estadísticas ahora se generan durante las fusiones en lugar de en el momento de la inserción, lo que reduce la sobrecarga de inserción. use `SET materialize_statistics_on_insert = 1` para restaurar el comportamiento anterior. [#101275](https://github.com/ClickHouse/ClickHouse/pull/101275) ([Han Fei](https://github.com/hanfei1991)).
* Añade la opción de refresh `prefer_dependency_replica` para las cadenas de dependencias de vistas materializadas, a fin de reducir la pérdida de datos causada por el retraso de replicación entre réplicas. [#101591](https://github.com/ClickHouse/ClickHouse/pull/101591) ([Seva Potapov](https://github.com/seva-potapov)).
* Añade la función `hasPhrase` (alias `matchPhrase`) para la búsqueda de frases (secuencias continuas de tokens). La búsqueda se realiza por fuerza bruta; es decir, el índice de texto aún no la admite. [#101997](https://github.com/ClickHouse/ClickHouse/pull/101997) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Añade las métricas de histograma `s3_read_request_duration_microseconds` y `s3_read_request_bytes` para observar el tiempo de vida de la conexión de las solicitudes GET de S3 y los bytes consumidos, visibles en `system.histogram_metrics` y en el endpoint de Prometheus. [#102058](https://github.com/ClickHouse/ClickHouse/pull/102058) ([Sema Checherinda](https://github.com/CheSema)).
* Los valores `Date` y `Date32` ahora se pueden sumar a los valores `Time` y `Time64` mediante el operador `+`, lo que da como resultado un `DateTime` o `DateTime64`. Por ejemplo, `SELECT toDate('2024-01-15') + toTime('14:30:25')` devuelve `2024-01-15 14:30:25`. El resultado se calcula en la zona horaria de la sesión, y los resultados fuera de rango se tratan según la configuración `date_time_overflow_behavior`. Cierra [#95914](https://github.com/ClickHouse/ClickHouse/issues/95914). [#102421](https://github.com/ClickHouse/ClickHouse/pull/102421) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* El índice de texto ahora es GA y permanece habilitado independientemente del ajuste `compatibility`, lo que evita que se deshabilite de forma inesperada durante las restauraciones desde copias de seguridad o al ejecutarse en modo de compatibilidad. [#101518](https://github.com/ClickHouse/ClickHouse/pull/101518) ([Nikita Fomichev](https://github.com/fm4v)).

#### funcionalidad experimental

* Se añadió `ALTER TABLE ... EXECUTE remove_orphan_files` para tablas Iceberg, con el fin de identificar y eliminar archivos no referenciados del almacenamiento de objetos. [#99127](https://github.com/ClickHouse/ClickHouse/pull/99127) ([murphy-4o](https://github.com/murphy-4o)).
* Se añadió la opción de configuración `query_plan_optimize_join_order_randomize`, que aleatoriza las estadísticas usadas para reordenar joins, lo que resulta útil para pruebas. [#100643](https://github.com/ClickHouse/ClickHouse/pull/100643) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se añadió compatibilidad con funciones de IA en ClickHouse, lo que permite a los usuarios llamar a endpoints de OpenAI y Anthropic mediante SQL. `aiGenerate` se incluye como la primera función de este tipo. [#100831](https://github.com/ClickHouse/ClickHouse/pull/100831) ([George Larionov](https://github.com/george-larionov)).
* Se añadieron funciones de IA: `aiClassify`, `aiExtract` y `aiTranslate`, para aprovechar las API de LLM en ClickHouse. [#100832](https://github.com/ClickHouse/ClickHouse/pull/100832) ([George Larionov](https://github.com/george-larionov)).
* Se añadió `system.histogram_metric_log`, una nueva tabla del sistema que toma periódicamente instantáneas de todas las métricas de histograma (p. ej., latencias de S3/Azure y duraciones de las etapas de procesamiento de solicitudes de Keeper). Además, la columna `value` de `system.histogram_metrics` pasa a ser `Float64`, ya que es más flexible y compatible con el modelo de datos de Prometheus. [#103046](https://github.com/ClickHouse/ClickHouse/pull/103046) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). Es probable que la estructura de la tabla cambie en futuras versiones.

<div id="performance-improvement">
  #### Mejora del rendimiento
</div>

* ClickHouse ahora puede descartar partes de datos completas en las consultas SELECT basándose en estadísticas mín./máx. [#94140](https://github.com/ClickHouse/ClickHouse/pull/94140) ([zoomxi](https://github.com/zoomxi)).
* Reducir la contención por bloqueos durante las operaciones de solo lectura en tablas ReplicatedMergeTree con mutaciones completadas. [#95771](https://github.com/ClickHouse/ClickHouse/pull/95771) ([Eduard Karacharov](https://github.com/korowa)).
* Se respeta `optimize_read_in_order` al leer proyecciones. Cierra [#89453](https://github.com/ClickHouse/ClickHouse/issues/89453). [#95885](https://github.com/ClickHouse/ClickHouse/pull/95885) ([Andrey Zvonov](https://github.com/zvonand)).
* Pequeñas mejoras en Hash Join y Concurrent Hash Join. [#96663](https://github.com/ClickHouse/ClickHouse/pull/96663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Optimiza la transformación `DISTINCT` deshabilitando la optimización de columnas `LowCardinality` cuando los datos de entrada son casi todos distintos. [#97113](https://github.com/ClickHouse/ClickHouse/pull/97113) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Optimización del rendimiento para las consultas con `LIKE` de [#97723](https://github.com/ClickHouse/ClickHouse/issues/97723). Ahora estas consultas pueden usar índices de texto. [#98149](https://github.com/ClickHouse/ClickHouse/pull/98149) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Las funciones matemáticas vectorizadas (`exp`, `log`, `sigmoid`, `tanh`) ahora están aceleradas en AArch64 (mediante NEON/SVE) y en FreeBSD/Darwin, donde antes usaban un fallback escalar más lento. [#98230](https://github.com/ClickHouse/ClickHouse/pull/98230) ([Raúl Marín](https://github.com/Algunenano)).
* Las consultas que filtran por columnas de la clave primaria de `MergeTree` con alternancias en expresiones regulares sobre cadenas literales, como `^(abc-1|abc-2)`, ahora pueden usar la poda de la clave primaria cuando las alternativas comparten un prefijo común. [#98988](https://github.com/ClickHouse/ClickHouse/pull/98988) ([Yash ](https://github.com/Onyx2406)).
* Se generaliza el filtrado dinámico top-k de `ORDER BY ... LIMIT` para admitir los tipos `Nullable`, `String` y `COLLATE`. [#99033](https://github.com/ClickHouse/ClickHouse/pull/99033) ([murphy-4o](https://github.com/murphy-4o)).
* Se aceleró el hash join con claves `Int32` y `Int64` de rango pequeño mediante el uso de una tabla hash de índice directo. [#99275](https://github.com/ClickHouse/ClickHouse/pull/99275) ([Hechem Selmi](https://github.com/m-selmi)).
* Consultas discontinuas más rápidas para columnas `LowCardinality` con un único diccionario. [#99285](https://github.com/ClickHouse/ClickHouse/pull/99285) ([Ivan Babrou](https://github.com/bobrik)).
* Se aceleran las funciones `var*Stable` y `stddev*Stable` para columnas `Float64` al desvirtualizar el bucle interno. Nota: esto permite optimizaciones del compilador (FMA/registros) que alteran los resultados de coma flotante a nivel de ULP. [#99460](https://github.com/ClickHouse/ClickHouse/pull/99460) ([Riyane El Qoqui](https://github.com/riyaneel)).
* Usar la codificación base58 optimizada de Firedancer para entradas de 32/64 bytes (automática para `base58Encode`). Permitir la decodificación base58 optimizada si el resultado de la decodificación es de 32/64 bytes (de forma explícita con `base58Decode('...', 32)` o similar). [#99461](https://github.com/ClickHouse/ClickHouse/pull/99461) ([Joanna Hulboj](https://github.com/jh0x)).
* Se habilitan optimizaciones basadas en secciones del enlazador (`-ffunction-sections`, `-fdata-sections`, `--icf=all`) para reducir el tamaño del binario y mejorar el aprovechamiento de la caché de instrucciones. [#99474](https://github.com/ClickHouse/ClickHouse/pull/99474) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el escalado negativo en consultas cortas con agregación en máquinas con muchos núcleos. Cuando una consulta lee pocas marcas, el pipeline ya no se expande hasta `max_threads` después de la agregación, lo que evita la sobrecarga de streams prácticamente vacíos. [#99493](https://github.com/ClickHouse/ClickHouse/pull/99493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora el rendimiento de las consultas con réplicas paralelas seleccionando adecuadamente el tamaño de la tarea de lectura. [#99801](https://github.com/ClickHouse/ClickHouse/pull/99801) ([Nikita Taranov](https://github.com/nickitat)).
* Permitir la precarga al leer un archivo remoto mediante la caché de páginas en espacio de usuario. [#99919](https://github.com/ClickHouse/ClickHouse/pull/99919) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evitar el cálculo innecesario de la subcolumna `.size` de String al enumerar subcolumnas. [#99941](https://github.com/ClickHouse/ClickHouse/pull/99941) ([Pavel Kruglov](https://github.com/Avogar)).
* Hacer que la barra de progreso de clickhouse-client sea menos inestable al trabajar desde un hotel con clústeres que tienen un número muy elevado de réplicas. [#100145](https://github.com/ClickHouse/ClickHouse/pull/100145) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Iniciar `MemoryWorker` en `clickhouse-local` cuando la caché de páginas esté habilitada, para que la caché de páginas de espacio de usuario pueda utilizarse realmente. [#100306](https://github.com/ClickHouse/ClickHouse/pull/100306) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimiza las consultas aplicando la cláusula `LIMIT` dentro de `UNION ALL`. [#100364](https://github.com/ClickHouse/ClickHouse/pull/100364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade compatibilidad con compilación JIT para comparaciones de columnas `String` y `FixedString` en `ORDER BY`, lo que mejora entre un 6 y un 17 % el rendimiento de la ordenación en la fase de merge para claves de ordenación con predominio de cadenas. En coautoría con @lgbo-ustc. [#100577](https://github.com/ClickHouse/ClickHouse/pull/100577) ([Raúl Marín](https://github.com/Algunenano)).
* Cuando `read_in_order_use_virtual_row` está habilitado junto con la nueva configuración `read_in_order_use_virtual_row_per_block`, ahora se emite información sobre los límites de las filas virtuales después de cada bloque leído de `MergeTree`, lo que permite que el proceso de mezcla vuelva a priorizar las fuentes a mitad del flujo para las partes cuyos datos quedan completamente filtrados por `WHERE`/`PREWHERE`/`JOIN`. Cierra [#99945](https://github.com/ClickHouse/ClickHouse/issues/99945). [#100603](https://github.com/ClickHouse/ClickHouse/pull/100603) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Conversión más rápida de Float a String para valores enteros grandes al extender la vía rápida de `itoa` con redondeo compatible con dragonbox. [#100649](https://github.com/ClickHouse/ClickHouse/pull/100649) ([Raúl Marín](https://github.com/Algunenano)).
* Sustituye `dragonbox` por `zmij` para lograr una conversión de Float a String entre 1.5x y 3x más rápida. [#100650](https://github.com/ClickHouse/ClickHouse/pull/100650) ([Raúl Marín](https://github.com/Algunenano)).
* Conversión más rápida de `Int128`/`UInt128` a cadena mediante la sustitución de la división por software por la reducción de Barrett y el desenrollado del bucle de conversión. [#100671](https://github.com/ClickHouse/ClickHouse/pull/100671) ([Raúl Marín](https://github.com/Algunenano)).
* Evita generar hilos redundantes en la fusión paralela de `uniqExact`. [#100686](https://github.com/ClickHouse/ClickHouse/pull/100686) ([Jiebin Sun](https://github.com/jiebinn)).
* Se añade la fusión paralela por lotes para `uniqExact`. [#100687](https://github.com/ClickHouse/ClickHouse/pull/100687) ([Jiebin Sun](https://github.com/jiebinn)).
* Mejor paralelización de consultas con vistas simples (con una tabla `MergeTree` subyacente) ejecutadas con réplicas paralelas. [#100815](https://github.com/ClickHouse/ClickHouse/pull/100815) ([Igor Nikonov](https://github.com/devcrafter)).
* Implementa compatibilidad con réplicas paralelas en vistas simples (incluidas las vistas `UNION ALL` compatibles sobre tablas `MergeTree`) cuando `parallel_replicas_allow_view_over_mergetree=1`. Esto permite paralelizar la consulta externa de la vista en lugar de la interna, lo que aumenta la paralelización de consultas entre nodos. [#100958](https://github.com/ClickHouse/ClickHouse/pull/100958) ([Igor Nikonov](https://github.com/devcrafter)).
* Optimizar la lectura en el orden de la clave primaria para `full_sorting_merge` cuando hay filtros con `IN` en el plan de consulta. [#101261](https://github.com/ClickHouse/ClickHouse/pull/101261) ([Nikita Taranov](https://github.com/nickitat)).
* Optimización de las asignaciones/liberaciones mediante el almacenamiento en caché de la configuración de muestreo, en lugar de recorrer toda la jerarquía del rastreador de memoria. [#101267](https://github.com/ClickHouse/ClickHouse/pull/101267) ([Azat Khuzhin](https://github.com/azat)).
* Corrige una regresión significativa en el rendimiento de INSERT cuando `deduplicate_insert = 'enable'` (predeterminado desde la versión 26.2) al posponer el cálculo del hash de los datos del squashing al sink y usar hashing por lotes de columnas mediante `updateHashWithValueRange`, lo que reduce la sobrecarga de \~2.5s a \~0.5s para 5M filas con 22 columnas. [#101494](https://github.com/ClickHouse/ClickHouse/pull/101494) ([Sema Checherinda](https://github.com/CheSema)).
* Reduce la sobrecarga del perfilado de bloqueos usando `try_lock` para evitar medir el tiempo de las adquisiciones sin contención y eliminar la medición del tiempo de retención. [#101502](https://github.com/ClickHouse/ClickHouse/pull/101502) ([Antonio Andelic](https://github.com/antonio2368)).
* Se sustituyeron las intrínsecas AVX-512 escritas a mano en `arrayDotProduct` por bucles autovectorizables independientes de la plataforma, añadiendo compatibilidad con AVX2 y ARM NEON. [#101571](https://github.com/ClickHouse/ClickHouse/pull/101571) ([Peng](https://github.com/fastio)).
* Mejora el rendimiento de `INSERT VALUES` para las columnas `Map`, `Array` y `Tuple` cuando los valores se pasan como cadenas escapadas (p. ej., `'{\'key\':1}'`), evitando recurrir innecesariamente al analizador de expresiones SQL. [#102119](https://github.com/ClickHouse/ClickHouse/pull/102119) ([Joanna Hulboj](https://github.com/jh0x)).
* Se corrigió el uso excesivo de CPU del motor de tabla `RabbitMQ`. [#102711](https://github.com/ClickHouse/ClickHouse/pull/102711) ([Jaap Elst](https://github.com/jaapieaapie1)).
* El optimizador del orden de JOIN ahora infiere predicados transitivos de equi-join a partir de las condiciones JOIN existentes. Por ejemplo, dado `A.x = B.x AND B.x = C.x`, se reconoce la equivalencia `A.x = C.x`, lo que permite al optimizador considerar joins directos entre tablas conectadas de forma transitiva. Esto puede mejorar la calidad del plan en esquemas en estrella y en copo de nieve, donde las tablas de dimensiones se conectan a través de una tabla de hechos compartida. Esta funcionalidad se controla mediante la nueva configuración `enable_join_transitive_predicates` (desactivada de forma predeterminada). [#98479](https://github.com/ClickHouse/ClickHouse/pull/98479) ([Alexander Gololobov](https://github.com/davenger)).
* Optimiza `TRUNCATE DATABASE TABLES LIKE` al cancelar previamente las operaciones de merge en paralelo. [#98597](https://github.com/ClickHouse/ClickHouse/pull/98597) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Se añade compatibilidad con la monotonicidad en la multiplicación, lo que permite la poda por clave primaria en expresiones `key * constant`. [#98983](https://github.com/ClickHouse/ClickHouse/pull/98983) ([Amos Bird](https://github.com/amosbird)).
* Los diccionarios de caché ya no adquieren un bloqueo exclusivo en `hasKeys`; esto reduce la contención de bloqueos al usar un bloqueo compartido para las lecturas de la caché. [#100796](https://github.com/ClickHouse/ClickHouse/pull/100796) ([liuguangliang](https://github.com/sourcelliu)).
* Incorporar en línea la subconsulta VIEW en el árbol de consulta para permitir aplicar más optimizaciones a la VIEW. [#100830](https://github.com/ClickHouse/ClickHouse/pull/100830) ([Dmitry Novik](https://github.com/novikd)).
* Optimizar la carga de la caché al arrancar el servidor. [#101500](https://github.com/ClickHouse/ClickHouse/pull/101500) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Implementar la materialización diferida de columnas para ReplacingMergeTree con FINAL cuando el predicado sea lo bastante selectivo. [#101647](https://github.com/ClickHouse/ClickHouse/pull/101647) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se reactiva la optimización `optimize_rewrite_array_exists_to_has` (desactivada de forma predeterminada desde la versión 23.10). Reescribe `arrayExists(x -> x = elem, arr)` como la mucho más rápida `has(arr, elem)` y ahora omite correctamente la reescritura cuando el tipo de elemento del array y `elem` no son compatibles para `has` (p. ej., `Date` y `String`), por lo que las consultas que antes fallaban siguen funcionando. Cierra [#71431](https://github.com/ClickHouse/ClickHouse/issues/71431). [#100944](https://github.com/ClickHouse/ClickHouse/pull/100944) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="improvement">
  #### Mejora
</div>

* Salida mejorada de EXPLAIN PLAN pretty=1: imprime las columnas de salida de la consulta de nivel superior, muestra las etiquetas/símbolos de la relación de join junto con las filas estimadas del resultado y la localidad, e incluye las columnas de salida de cada paso para los pasos de join/source. Los cambios abarcan la parte de Information Deficit de [#98117](https://github.com/ClickHouse/ClickHouse/issues/98117). [#99462](https://github.com/ClickHouse/ClickHouse/pull/99462) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Añade la configuración de tabla MergeTree `share_nested_offsets` (valor predeterminado: `true`). Cuando se establece en `false`, las columnas Array con nombres con puntos (p. ej., `n.a`, `n.b`) se tratan como columnas independientes, en lugar de compartir archivos de desplazamiento y validar que los arrays tengan el mismo tamaño como parte de la semántica heredada de `Nested`. [#98416](https://github.com/ClickHouse/ClickHouse/pull/98416) ([Amos Bird](https://github.com/amosbird)).
* Ahora, los usuarios pueden especificar varios métodos de autenticación en el archivo de configuración users.xml/yaml (en SQL, esto siempre fue posible). [#91998](https://github.com/ClickHouse/ClickHouse/pull/91998) ([Flip-Liquid](https://github.com/Flip-Liquid)).
* Recarga automática de las conexiones entre nodos de Raft que usan TLS. [#93455](https://github.com/ClickHouse/ClickHouse/pull/93455) ([Evgeny](https://github.com/evkuzin)).
* Se amplía `cast_keep_nullable` para que funcione con tipos Dynamic/JSON. Cuando está habilitado, convertir NULL desde tipos que pueden ser Nullable devolverá NULL; de lo contrario, NULL provocará el error `CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN`. [#96504](https://github.com/ClickHouse/ClickHouse/pull/96504) ([Seva Potapov](https://github.com/seva-potapov)).
* Se redujo la huella de memoria de las estructuras de datos internas (objetos `ISerialization`) gracias a la incorporación de un grupo de objetos. [#96563](https://github.com/ClickHouse/ClickHouse/pull/96563) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añade compatibilidad con los campos `password` e `identity` en la configuración XML de keeper-client. [#96800](https://github.com/ClickHouse/ClickHouse/pull/96800) ([Grigorii Sokolik](https://github.com/GSokol)).
* Mejora de las escrituras de `Iceberg` para Unity Catalog. [#98162](https://github.com/ClickHouse/ClickHouse/pull/98162) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Añade la opción de configuración `finalize_projection_parts_synchronously` para permitir la finalización síncrona de las partes de proyección durante INSERT, lo que reduce el pico de uso de memoria en tablas con muchas proyecciones, mientras mantiene por defecto el comportamiento asíncrono existente. [#98228](https://github.com/ClickHouse/ClickHouse/pull/98228) ([Amos Bird](https://github.com/amosbird)).
* Agregar la columna `projections_duration_ms` a `system.part_log`, que registra la duración en milisegundos de la fusión/reconstrucción de cada proyección. [#98292](https://github.com/ClickHouse/ClickHouse/pull/98292) ([Amos Bird](https://github.com/amosbird)).
* Mejora en la cancelación de consultas mediante ExpressionTransform y NumbersRangedSource con KILL QUERY y «cancel query» (Ctrl+C) en clickhouse-client. [#98908](https://github.com/ClickHouse/ClickHouse/pull/98908) ([Roman Vasin](https://github.com/rvasin)).
* Reemplaza la lista `source_table_engines` codificada de forma fija por una consulta en tiempo de ejecución mediante `StorageFactory::getAllStorages()`. Esto añade comprobaciones de acceso para algunos motores de tabla que faltaban y cierra [#71544](https://github.com/ClickHouse/ClickHouse/issues/71544). [#98984](https://github.com/ClickHouse/ClickHouse/pull/98984) ([pufit](https://github.com/pufit)).
* Añade un ajuste para controlar el comportamiento ante incompatibilidades de tipo en Variant y Dynamic (throw o devolver null). [#99085](https://github.com/ClickHouse/ClickHouse/pull/99085) ([Bharat Nallan](https://github.com/bharatnc)).
* Mejorar la compatibilidad entre `Iceberg` y Spark: corregir el manejo inconsistente de rutas causado por el uso combinado de rutas de almacenamiento y rutas de metadata; exigir que las tablas `Iceberg` escriban una ubicación de tabla que sea una URL o una ruta absoluta; añadir un fallback para calcular el tamaño de los archivos en `Azure`, ya que algunos lectores de ClickHouse no admiten el conteo de bytes tras el recorrido; manejar `version-hint.txt` de forma compatible con Spark; introducir abstracciones a nivel de tipos que dificulten mezclar tipos de rutas en el futuro; añadir pruebas para `Azure` y `Local` que verifiquen la interoperabilidad entre motores sin carga ni descarga intermedias; corregir el uso de position deletes, que antes dependía de heurísticas de inferencia de rutas cuando ese enfoque no es adecuado. [#99163](https://github.com/ClickHouse/ClickHouse/pull/99163) ([Daniil Ivanik](https://github.com/divanik)). [#100420](https://github.com/ClickHouse/ClickHouse/pull/100420) ([Daniil Ivanik](https://github.com/divanik)).
* Se corrigió una posible condición de carrera en `IPartitionStrategy::cached_result` introducida en [https://github.com/ClickHouse/ClickHouse/pull/92844](https://github.com/ClickHouse/ClickHouse/pull/92844). [#99400](https://github.com/ClickHouse/ClickHouse/pull/99400) ([Arthur Passos](https://github.com/arthurpassos)).
* Los usuarios ahora pueden escribir tipos de datos Interval de ClickHouse en formato Arrow. [#99519](https://github.com/ClickHouse/ClickHouse/pull/99519) ([Peter Nguyen](https://github.com/petern48)).
* Añade compatibilidad nativa para importar y exportar tipos de datos `UUID` en los formatos `Arrow` y `Parquet`. Los usuarios ahora pueden consultar y transferir directamente datos UUID entre ClickHouse y otras herramientas de datos sin necesidad de realizar conversiones manuales a cadenas ni recurrir a soluciones alternativas. Inferencia lógica automatizada para UUID de nivel superior y compatibilidad con una sugerencia de schema explícita para UUID anidados. [#99521](https://github.com/ClickHouse/ClickHouse/pull/99521) ([Ivan](https://github.com/ivanmantova)).
* Admite archivos `7z` en el almacenamiento de objetos. Cierra [#70968](https://github.com/ClickHouse/ClickHouse/issues/70968). [#99600](https://github.com/ClickHouse/ClickHouse/pull/99600) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añaden los ProfileEvents `ObjectStorageListedObjects`, `ObjectStorageGlobFilteredObjects`, `ObjectStoragePredicateFilteredObjects` y `ObjectStorageReadObjects` para la introspección del pipeline de listado y lectura de archivos en almacenamiento de objetos (`S3`, `Azure`, etc.). [#99778](https://github.com/ClickHouse/ClickHouse/pull/99778) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige el fallo de la función de tabla `merge` que provocaba el error `UNKNOWN_IDENTIFIER` al consultar columnas que no están presentes en todas las tablas distribuidas/remotas subyacentes. [#99833](https://github.com/ClickHouse/ClickHouse/pull/99833) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora incluimos el tiempo de commit en la métrica del tiempo total de ejecución de las mutaciones para ReplicatedMergeTree. Se había omitido después de [#96376](https://github.com/ClickHouse/ClickHouse/issues/96376). [#99936](https://github.com/ClickHouse/ClickHouse/pull/99936) ([alesapin](https://github.com/alesapin)).
* Se añade un write-ahead log para los objetos blob pendientes de eliminación en `MetadataStorageFromDisk`, lo que mejora la durabilidad y la coherencia entre los metadatos y el almacenamiento remoto de objetos cuando se eliminan objetos. [#100019](https://github.com/ClickHouse/ClickHouse/pull/100019) ([Maksim Kita](https://github.com/kitaisreal)).
* Se deshabilitó la generación de SQL con IA (comando `??`) en el client embebido (protocolos SSH y WebSocket) para evitar el acceso a las variables de entorno del servidor. [#100290](https://github.com/ClickHouse/ClickHouse/pull/100290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se cambia la interfaz del catálogo para las inserciones de Iceberg. Quedan obsoletas las configuraciones `storage_catalog_type`, `storage_aws_access_key_id`, etc. [#100334](https://github.com/ClickHouse/ClickHouse/pull/100334) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Interpretar las tabulaciones como 4 espacios al pegar en clickhouse-client. Cierra [#100405](https://github.com/ClickHouse/ClickHouse/issues/100405). [#100416](https://github.com/ClickHouse/ClickHouse/pull/100416) ([Raúl Marín](https://github.com/Algunenano)).
* Evita escanear todo el catálogo remoto del lago de datos para mostrar sugerencias de tablas del tipo “Quizá quiso decir…” cuando `show_data_lake_catalogs_in_system_tables` está deshabilitado. [#100452](https://github.com/ClickHouse/ClickHouse/pull/100452) ([Alsu Giliazova](https://github.com/alsugiliazova)).
* Aplicar `distributed_index_analysis_min_indexes_bytes_to_activate` tras la poda de particiones. [#100477](https://github.com/ClickHouse/ClickHouse/pull/100477) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un error de aserción en el pushdown del bloom filter de Parquet al usar cláusulas IN/NOT IN vacías. [#100543](https://github.com/ClickHouse/ClickHouse/pull/100543) ([zoomxi](https://github.com/zoomxi)).
* Las estadísticas de columna MinMax ahora almacenan los valores mínimo y máximo como Field (tipado) en lugar de Float64. El formato serializado incluye el nombre del tipo de la columna junto con los valores. La versión del archivo de estadísticas se actualiza a V2; los archivos escritos por versiones anteriores requieren volver a materializarse (ALTER TABLE … MATERIALIZE STATISTICS ALL). corrección [#53140](https://github.com/ClickHouse/clickhouse-private/issues/53140). [#100605](https://github.com/ClickHouse/ClickHouse/pull/100605) ([Han Fei](https://github.com/hanfei1991)).
* Actualizar `cppkafka` para incluir una corrección del interbloqueo al cerrar el consumidor. [#100612](https://github.com/ClickHouse/ClickHouse/pull/100612) ([Azat Khuzhin](https://github.com/azat)).
* La información del objeto que se utiliza para analizar los archivos de datos en Iceberg ahora incluye el número de filas del archivo y su tamaño en bytes, obtenidos del archivo de manifiesto. [#100645](https://github.com/ClickHouse/ClickHouse/pull/100645) ([Daniil Ivanik](https://github.com/divanik)).
* Se añadió el parámetro de configuración `use_separate_cache_arena` para poder controlar la separación de la arena de memoria de la caché. [#100664](https://github.com/ClickHouse/ClickHouse/pull/100664) ([Seva Potapov](https://github.com/seva-potapov)).
* Agrega compatibilidad nativa para importar los tipos de datos `StringView` y `BinaryView` de Apache Arrow a columnas `String` de ClickHouse, lo que mejora la compatibilidad con la ingestión basada en Arrow. [#100762](https://github.com/ClickHouse/ClickHouse/pull/100762) ([Ivan](https://github.com/ivanmantova)).
* Algunos ajustes del servidor Keeper ahora se recargan en caliente si el archivo de configuración cambia en tiempo de ejecución: max\_requests\_batch\_size, max\_requests\_batch\_bytes\_size, max\_request\_size, quorum\_reads. [#100773](https://github.com/ClickHouse/ClickHouse/pull/100773) ([Michael Kolupaev](https://github.com/al13n321)).
* Se incrementan los eventos de perfil `MemoryAllocatedWithoutCheck/MemoryAllocatedWithoutCheckBytes` en la compilación release. [#100899](https://github.com/ClickHouse/ClickHouse/pull/100899) ([Pavel Kruglov](https://github.com/Avogar)).
* El seguimiento de memoria en Cgroupv2 ahora excluye `slab_reclaimable` de la memoria del kernel, lo que ofrece una medición más precisa del uso de memoria no recuperable. [#100901](https://github.com/ClickHouse/ClickHouse/pull/100901) ([Antonio Andelic](https://github.com/antonio2368)).
* `use_partition_pruning = 0` ahora también desactiva la poda del índice `MinMax` y la optimización de conteo en las columnas de la clave de partición, además de desactivar la poda basada en claves de partición. [#100904](https://github.com/ClickHouse/ClickHouse/pull/100904) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* `pretty=1` en `EXPLAIN [PLAN]` ahora muestra las expresiones en un formato legible. [#100927](https://github.com/ClickHouse/ClickHouse/pull/100927) ([Kirill Kopnev](https://github.com/Fgrtue)).
* `accurateCastOrNull` y `accurateCastOrDefault` ahora admiten tipos de destino `Tuple`, incluidos `Tuples` anidados con elementos `Nullable`. Antes, estas funciones rechazaban destinos `Tuple` porque `Tuple` no podía estar dentro de `Nullable`. Cierra [#100820](https://github.com/ClickHouse/ClickHouse/issues/100820). [#100942](https://github.com/ClickHouse/ClickHouse/pull/100942) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corregir la duplicación de gráficos en la interfaz de Play al cambiar entre los temas claro y oscuro. [#101058](https://github.com/ClickHouse/ClickHouse/pull/101058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Actualización de chdig a [v26.3.1](https://github.com/azat/chdig/releases/tag/v26.3.1) (interfaz de perfetto, minigráficos en el resumen para CPU/Memoria/Fusiones/Consultas, system.warnings, búsqueda con regexp en los logs). [#101092](https://github.com/ClickHouse/ClickHouse/pull/101092) ([Azat Khuzhin](https://github.com/azat)). Actualización de chdig a [v26.4.3](https://github.com/azat/chdig/releases/tag/v26.4.3) (mejoras en perfetto, correcciones para compartir mediante pastila.nl, diferencias de flamegraph, cambio de configuración en tiempo real). [#103145](https://github.com/ClickHouse/ClickHouse/pull/103145) ([Azat Khuzhin](https://github.com/azat)).
* Ahora se permite una coma final en la cláusula `WITH` antes de una consulta `SELECT`. [#101093](https://github.com/ClickHouse/ClickHouse/pull/101093) ([Aruj Bansal](https://github.com/arujbansal)).
* Añade el ajuste de MergeTree `compress_per_column_in_compact_parts` para controlar cómo se organizan los bloques comprimidos dentro de las partes Compact. Cuando es `true` (valor predeterminado, que conserva el comportamiento actual), cada columna inicia un nuevo bloque comprimido, lo que permite la descompresión selectiva. Cuando es `false`, todas las columnas dentro de un gránulo se empaquetan en el mismo bloque comprimido, lo que mejora la relación de compresión y el rendimiento de lectura en cargas de trabajo que siempre leen todas las columnas. [#101114](https://github.com/ClickHouse/ClickHouse/pull/101114) ([Amos Bird](https://github.com/amosbird)).
* Mostrar el tooltip de información de la tabla en la UI de Play solo al pasar el cursor sobre el nombre de la tabla, no sobre toda la fila. [#101118](https://github.com/ClickHouse/ClickHouse/pull/101118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade iconos específicos para cada motor y mejora la UX de la lista de tablas en la barra lateral de la UI de Play. [#101134](https://github.com/ClickHouse/ClickHouse/pull/101134) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compatibilidad con `Nullable(Tuple)` en los formatos `Arrow`, `ArrowStream`, `ORC` y `Parquet` heredado. [#101272](https://github.com/ClickHouse/ClickHouse/pull/101272) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Mostrar la fila TOTALS como pie de la tabla en la web UI (play.html). [#101286](https://github.com/ClickHouse/ClickHouse/pull/101286) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compatibilidad con el modo multiconsulta en la interfaz web (`play.html`): ejecución de varias consultas a la vez, con ejecución en paralelo de consultas de tipo `SELECT` y visualización de resultados por consulta. [#101290](https://github.com/ClickHouse/ClickHouse/pull/101290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el redimensionamiento de columnas en la interfaz web `play.html` después de refactorizar la tabla de resultados como un componente web. [#101295](https://github.com/ClickHouse/ClickHouse/pull/101295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la posibilidad de limitar la cantidad de flushes del perfil de jemalloc en MEMORY\_LIMIT\_EXCEEDED por intervalo de tiempo. [#101396](https://github.com/ClickHouse/ClickHouse/pull/101396) ([Azat Khuzhin](https://github.com/azat)).
* Se añadieron las configuraciones de Keeper `nuraft_streaming_mode` (valor predeterminado: `false`), `nuraft_max_log_gap_in_stream`, `nuraft_max_bytes_in_flight_in_stream`. Cierra [#90743](https://github.com/ClickHouse/ClickHouse/issues/90743). [#101427](https://github.com/ClickHouse/ClickHouse/pull/101427) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió la métrica asíncrona `CGroupMemoryUsedWithoutPageCache`, que informa del uso de memoria del cgroup excluyendo tanto la caché de páginas del kernel del sistema operativo como la caché de páginas en espacio de usuario de ClickHouse, en consonancia con `MemoryResidentWithoutPageCache`. También se aclaró la descripción de la métrica `CGroupMemoryUsed`. [#101513](https://github.com/ClickHouse/ClickHouse/pull/101513) ([Francesco Ciocchetti](https://github.com/primeroz)).
* Añade azúcar sintáctico a nivel del analizador sintáctico para la sintaxis de la función `OVERLAY` del estándar SQL. La función `overlay` ya existe; esto añade compatibilidad con la forma basada en palabras clave que usa `PLACING`, `FROM` y `FOR` como separadores. [#101681](https://github.com/ClickHouse/ClickHouse/pull/101681) ([Desel72](https://github.com/Desel72)).
* Se añadió el alias de columna `INDEX_LENGTH` a la tabla del sistema `information_schema.tables`, en consonancia con los alias existentes en mayúsculas de esta tabla. [#101705](https://github.com/ClickHouse/ClickHouse/pull/101705) ([Robert Schulze](https://github.com/rschu1ze)).
* La tabla del sistema `information_schema.tables` ahora ignora las partes inactivas de la tabla. Esto hace que los valores de tamaño de la tabla que se muestran sean más realistas. [#101706](https://github.com/ClickHouse/ClickHouse/pull/101706) ([Robert Schulze](https://github.com/rschu1ze)).
* La función `ngrams` ahora rechaza longitudes de ngram no válidas. Ejemplo: `SELECT ngrams('abc', 0)` ahora devuelve un error. [#101922](https://github.com/ClickHouse/ClickHouse/pull/101922) ([Robert Schulze](https://github.com/rschu1ze)).
* Como seguimiento de [#91820](https://github.com/ClickHouse/ClickHouse/issues/91820) y [#90837](https://github.com/ClickHouse/ClickHouse/issues/90837): eliminar del mensaje de error los algoritmos no compatibles; ejecutar pruebas específicas de FIPS en compilaciones FIPS. [#102067](https://github.com/ClickHouse/ClickHouse/pull/102067) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Limita la altura de las celdas a tres líneas en la Web UI (`play.html`), con posibilidad de expandirlas al hacer clic. [#102154](https://github.com/ClickHouse/ClickHouse/pull/102154) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió una nueva opción que permite forzar el estilo (virtual/path) para los endpoints de S3. Resuelve [#82019](https://github.com/ClickHouse/ClickHouse/issues/82019); [#76007](https://github.com/ClickHouse/ClickHouse/issues/76007). Da continuidad a [https://github.com/ClickHouse/ClickHouse/pull/83168](https://github.com/ClickHouse/ClickHouse/pull/83168). [#102378](https://github.com/ClickHouse/ClickHouse/pull/102378) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* La configuración `restore_replace_external_engines_to_null` ahora también omite la restauración de bases de datos con motores externos (p. ej., `DataLakeCatalog`, `MySQL`, `PostgreSQL`, `S3`) en lugar de producir un error o iniciar conexiones externas. [#102400](https://github.com/ClickHouse/ClickHouse/pull/102400) ([Nikita Fomichev](https://github.com/fm4v)).
* Se añade soporte para el análisis de índices de texto de la función `hasPhrase` mediante el modo `HINT`. [#102438](https://github.com/ClickHouse/ClickHouse/pull/102438) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Considerar STATISTICS como solo lectura en ColumnDependency para corregir LOGICAL\_ERROR durante MATERIALIZE STATISTICS ALL. [#102627](https://github.com/ClickHouse/ClickHouse/pull/102627) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Crear y poblar `system.asynchronous_metric_log` en modo keeper-as-server. [#102664](https://github.com/ClickHouse/ClickHouse/pull/102664) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se añade la opción de configuración `default_system_log_flush_policy.skip_alias_columns` para permitir omitir las columnas ALIAS de las tablas de logs del sistema, lo que corrige los logs del sistema respaldados por S3 que rechazan columnas ALIAS. [#102669](https://github.com/ClickHouse/ClickHouse/pull/102669) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* No habilite las estadísticas automáticas para las tablas del sistema. Rara vez pueden aprovecharlas. [#102862](https://github.com/ClickHouse/ClickHouse/pull/102862) ([Han Fei](https://github.com/hanfei1991)).
* Se admite el tokenizer `array` para la optimización de LIKE. [#102880](https://github.com/ClickHouse/ClickHouse/pull/102880) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Enviar MemoryAllocatedWithoutCheck incluso en compilaciones de producción. [#103064](https://github.com/ClickHouse/ClickHouse/pull/103064) ([Azat Khuzhin](https://github.com/azat)).
* Exponer untracked\_memory de cada hilo en system.stack\_trace. [#103065](https://github.com/ClickHouse/ClickHouse/pull/103065) ([Azat Khuzhin](https://github.com/azat)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Corrección de errores (mal funcionamiento visible para el usuario en una versión estable oficial)
</div>

* Se corrige el error `Block structure mismatch in stream` causado por columnas innecesarias devueltas por la materialización diferida. Soluciona [#95191](https://github.com/ClickHouse/ClickHouse/issues/95191). [#96682](https://github.com/ClickHouse/ClickHouse/pull/96682) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un error lógico en una consulta de política de enmascaramiento de datos al usar `ON CLUSTER`. [#97594](https://github.com/ClickHouse/ClickHouse/pull/97594) ([Bharat Nallan](https://github.com/bharatnc)).
* Se corrige un error al usar Unity Catalog sobre GCS. [#98456](https://github.com/ClickHouse/ClickHouse/pull/98456) ([Melvyn Peignon](https://github.com/melvynator)).
* `DataLakeCatalog` ahora respeta la configuración `http_forbid_headers` del servidor al validar la opción `auth_header`. [#98827](https://github.com/ClickHouse/ClickHouse/pull/98827) ([Michael Anastasakis](https://github.com/michael-anastasakis)).
* Se corrigen las llamadas N+1 a `HeadObject` para globs con expansión entre llaves de S3. [#99219](https://github.com/ClickHouse/ClickHouse/pull/99219) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Validar los cambios de configuración en las consultas CREATE cuando el propio motor también admite parámetros de configuración. [#99279](https://github.com/ClickHouse/ClickHouse/pull/99279) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se corrigió un fallo por el que `ALTER TABLE UPDATE/DELETE` fallaba con el error `Missing columns` cuando una tabla tiene una columna MATERIALIZED cuya expresión depende de una columna EPHEMERAL. [#99281](https://github.com/ClickHouse/ClickHouse/pull/99281) ([Yash ](https://github.com/Onyx2406)).
* Las credenciales en las cadenas de conexión de JDBC, ODBC y NATS ahora se enmascaran en los registros de consultas y en la salida de `SHOW CREATE`, lo que evita la exposición accidental de información confidencial. En las cadenas de conexión con formato URI (p. ej., `{scheme}://{user}:{password}@{host}`), solo se enmascara la contraseña, mientras que el resto permanece visible para facilitar la depuración. El ajuste `nats_token` ahora también se enmascara. [#99344](https://github.com/ClickHouse/ClickHouse/pull/99344) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige el análisis incorrecto de palabras que comienzan con prefijos de meses en el formato DD-month-YYYY por parte de parseDateTimeBestEffort. Cierra [#99345](https://github.com/ClickHouse/ClickHouse/issues/99345#event-23517658314). [#99350](https://github.com/ClickHouse/ClickHouse/pull/99350) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió que se ignorara TABLE\_UUID\_MISMATCH cuando no se usa el analizador. [#99380](https://github.com/ClickHouse/ClickHouse/pull/99380) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un error por el que los ajustes explícitos enviados junto con `compatibility` en la misma solicitud podían ignorarse de forma silenciosa cuando su valor coincidía con el valor predeterminado del servidor. [#99402](https://github.com/ClickHouse/ClickHouse/pull/99402) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige los casos en los que los números con ceros a la izquierda en la ruta de particionado de Hive producían errores. Corrige [#98801](https://github.com/ClickHouse/ClickHouse/issues/98801). [#99458](https://github.com/ClickHouse/ClickHouse/pull/99458) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige `heap-use-after-free` cuando se elimina una tabla de forma concurrente mientras hay una consulta de lectura en ejecución (19 casos en CI durante los últimos 90 días). [#99483](https://github.com/ClickHouse/ClickHouse/pull/99483) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un error en Keeper por el que una solicitud de lectura podía quedarse bloqueada (haciendo que la sesión expirara) si se cerraba una sesión distinta y no relacionada en el mismo servidor justo en un mal momento. [#99484](https://github.com/ClickHouse/ClickHouse/pull/99484) ([Michael Kolupaev](https://github.com/al13n321)).
* Validar la estructura de la columna antes de aplicar parches. [#99531](https://github.com/ClickHouse/ClickHouse/pull/99531) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige el fallo de aserción de `rows_sources` en la fusión vertical cuando `SYSTEM STOP/START MERGES` se activa y desactiva rápidamente durante la fusión de una tabla con columnas `Dynamic`. [#99532](https://github.com/ClickHouse/ClickHouse/pull/99532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la poda incorrecta de particiones en `toWeek()`, que provocaba que las consultas con `WHERE toWeek(date, mode) = N` devolvieran resultados vacíos para las semanas 49-52 en tablas particionadas por `toYYYYMM(date)`. [#99542](https://github.com/ClickHouse/ClickHouse/pull/99542) ([Takumi Hara](https://github.com/takumihara)).
* Se corrige una excepción en funciones que operan con ColumnReplicated con filas no referenciadas producidas por JOIN. [#99564](https://github.com/ClickHouse/ClickHouse/pull/99564) ([Hechem Selmi](https://github.com/m-selmi)).
* Corrige un problema por el que `CLEAR COLUMN` no reconstruía las proyecciones ni reevaluaba las columnas materializadas que dependen de la columna eliminada, lo que podía provocar excepciones o corrupción de datos durante fusiones posteriores. [#99565](https://github.com/ClickHouse/ClickHouse/pull/99565) ([Desel72](https://github.com/Desel72)).
* Se corrigió una excepción (`Bad get: has Tuple, actual type String`) en `ConditionSelectivityEstimator` cuando una consulta usa IN con un solo parámetro de consulta escalar (p. ej., `WHERE col IN ({p:String})`) en una tabla que tiene estadísticas de columna y con `use_statistics` habilitado. [#99614](https://github.com/ClickHouse/ClickHouse/pull/99614) ([Ilya Yatsishin](https://github.com/qoega)).
* La parte con proyecciones desconocidas no debe marcarse como perdida para siempre. [#99623](https://github.com/ClickHouse/ClickHouse/pull/99623) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige una excepción poco frecuente de error lógico durante una fusión vertical cuando `SYSTEM STOP MERGES` y `SYSTEM START MERGES` se ejecutan de forma concurrente. [#99628](https://github.com/ClickHouse/ClickHouse/pull/99628) ([Desel72](https://github.com/Desel72)).
* Se corrige una referencia colgante en injectRequiredColumns que provocaba un fallo durante un merge. [#99679](https://github.com/ClickHouse/ClickHouse/pull/99679) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige el comportamiento indefinido en el lector del formato Avro al leer valores numéricos que exceden la capacidad del tipo de la columna de destino. Ahora las consultas fallan cuando se producen desbordamientos, en lugar de generar silenciosamente valores incorrectos. [#99697](https://github.com/ClickHouse/ClickHouse/pull/99697) ([asyablue22](https://github.com/asyablue22)).
* Se corrige el procesamiento de las comillas de estilo shell en los argumentos de la función de tabla `executable`. [#99794](https://github.com/ClickHouse/ClickHouse/pull/99794) ([Nikita Semenov](https://github.com/leftmain)).
* Corrige un aborto por falso positivo en `NativeReader` al deserializar un flujo en formato Native con una discrepancia en el recuento de filas: se cambió de `LOGICAL_ERROR` a `INCORRECT_DATA` para que el error se trate como un error de datos en lugar de activar `abort()` en compilaciones con sanitizador/depuración. [#99822](https://github.com/ClickHouse/ClickHouse/pull/99822) ([Rahul Nair](https://github.com/motsc)).
* Corregida la interrupción del proceso en la deserialización de la columna `Tuple` cuando el tipo de serialización en el flujo binario es `DETACHED`. [#99823](https://github.com/ClickHouse/ClickHouse/pull/99823) ([Rahul Nair](https://github.com/motsc)).
* Se corrigió la falsa excepción `LOGICAL_ERROR` durante el redimensionamiento dinámico de la caché del sistema de archivos debido a una condición de carrera en la promoción de la subcola de SLRU. [#99850](https://github.com/ClickHouse/ClickHouse/pull/99850) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregidas las consultas de async insert que mostraban `written_rows`, `read_rows` y `result_rows` en cero en `query_log` y en la salida del client. [#99879](https://github.com/ClickHouse/ClickHouse/pull/99879) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige la excepción "Bad cast from type X to Y" en `KILL QUERY` cuando la consulta interna sobre las tablas del sistema devuelve columnas encapsuladas en `ColumnConst`. [#99881](https://github.com/ClickHouse/ClickHouse/pull/99881) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un error lógico en una subconsulta correlacionada dentro del argumento untuple. [#99917](https://github.com/ClickHouse/ClickHouse/pull/99917) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige una excepción al llamar a `right`, `rightUTF8` u otras funciones de subcadena con una longitud de INT64\_MIN (-9223372036854775808), lo que antes provocaba un comportamiento indefinido debido a un desbordamiento de enteros. Ahora las funciones devuelven correctamente el error ARGUMENT\_OUT\_OF\_BOUND. [#99934](https://github.com/ClickHouse/ClickHouse/pull/99934) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Ahora ClickHouse debería manejar correctamente las tablas de estilo Spark (donde tenemos la ruta absoluta completa para cada archivo o una ruta relativa a la ruta común de la tabla). Corrige [#92348](https://github.com/ClickHouse/ClickHouse/issues/92348). [#99935](https://github.com/ClickHouse/ClickHouse/pull/99935) ([alesapin](https://github.com/alesapin)).
* Se corrige la excepción "formato AST incoherente" en `ALTER TABLE ... MODIFY QUERY` con subconsultas anidadas que contienen `SETTINGS` cuando el propio `ALTER` también incluye `SETTINGS`. [#99938](https://github.com/ClickHouse/ClickHouse/pull/99938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se revierte [#97114](https://github.com/ClickHouse/ClickHouse/issues/97114) "Mover la estimación de filas en el paso de join antes de la comprobación de que haya 1 hijo" debido a una posible regresión del rendimiento. [#99957](https://github.com/ClickHouse/ClickHouse/pull/99957) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige un error por el que ClickHouse podía omitir archivos si faltaba el encabezado `Content-Length` en la respuesta a la solicitud HEAD correspondiente (por ejemplo, debido a la transcodificación descompresiva en GCS). [#99971](https://github.com/ClickHouse/ClickHouse/pull/99971) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige un fallo de aserción (excepción en builds de depuración, resultados incorrectos en builds de lanzamiento) al multiplicar estados de agregación de `NumericIndexedVector` por una constante entera par, provocado por un XOR consigo mismos en bitmaps Roaring con alias en `pointwiseAddInplace`. [#99976](https://github.com/ClickHouse/ClickHouse/pull/99976) ([Desel72](https://github.com/Desel72)).
* Evitar la excepción `Unexpected return type` en el pushdown heredado de filtros a través de `JOIN USING` encadenados cuando los tipos de las claves cambian después de las conversiones de JOIN. [#99999](https://github.com/ClickHouse/ClickHouse/pull/99999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la excepción `LOGICAL_ERROR` "Tipo de nodo inesperado para la expresión de tabla ... se obtuvo IDENTIFIER" cuando se usa una subconsulta escalar dentro de un argumento sin resolver de una función de tabla, p. ej., `SELECT * FROM remote('localhost', view(SELECT 2 AS x), concat(x, (SELECT 1)))`. [#100014](https://github.com/ClickHouse/ClickHouse/pull/100014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un fallo de `INSERT` con `VALUES` cuando los datos iban seguidos de un comentario SQL al final (`--` o `/* */`) en la línea siguiente. Ahora se omite el comentario en lugar de interpretarlo como otra fila. [#100016](https://github.com/ClickHouse/ClickHouse/pull/100016) ([Pratima Patel](https://github.com/pratimapatel2008)).
* Se corrige una excepción en `arrayRemove` al comparar Tuples con componentes NULL. [#100017](https://github.com/ClickHouse/ClickHouse/pull/100017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una filtración de datos entre usuarios en `system.asynchronous_inserts`: cualquier usuario con `SELECT` sobre la tabla podía ver entradas pendientes de inserción asíncrona de otros usuarios. Ahora las entradas se filtran según el usuario actual, salvo que el usuario tenga el privilegio `SHOW_USERS`. [#100024](https://github.com/ClickHouse/ClickHouse/pull/100024) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige un caso en el que la conversión de Time64 a UInt64 podía restringir los valores a 24 horas. [#100025](https://github.com/ClickHouse/ClickHouse/pull/100025) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigió un bloqueo del servidor local cuando CREATE DICTIONARY tiene una definición con un valor de lista que contiene una función inexistente. [#100036](https://github.com/ClickHouse/ClickHouse/pull/100036) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige un problema que impedía que los formatos `CSV` y `MsgPack` analizaran correctamente `Nullable(Tuple)`. Cierra [#99753](https://github.com/ClickHouse/ClickHouse/issues/99753). [#100038](https://github.com/ClickHouse/ClickHouse/pull/100038) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige el error de `CREATE VIEW` con `UNKNOWN_IDENTIFIER` al usar como lado derecho de `IN` un alias de expresión de función en `WITH` (por ejemplo, `tuple(...)`). [#100042](https://github.com/ClickHouse/ClickHouse/pull/100042) ([Peng](https://github.com/fastio)).
* Se corrigieron las funciones de agregación de series temporales (p. ej., `timeSeriesResampleToGridWithStaleness`) que fallaban con `ILLEGAL_TYPE_OF_ARGUMENT` cuando se usaban con `initializeAggregation` o `AggregatingMergeTree` en réplicas paralelas. [#100053](https://github.com/ClickHouse/ClickHouse/pull/100053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el procesamiento de valores negativos en NumericIndexedVectorDataBSI. [#100086](https://github.com/ClickHouse/ClickHouse/pull/100086) ([Daniil Ivanik](https://github.com/divanik)).
* Se corrigieron las funciones `accurateCastOrDefault` y `to*OrDefault`, que no preservaban el tipo de columna Const para entradas constantes. [#100132](https://github.com/ClickHouse/ClickHouse/pull/100132) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los parámetros de consulta omitidos de tipo `LowCardinality(Nullable(T))` ahora toman correctamente NULL como valor predeterminado, igual que `Nullable(T)`. [#100144](https://github.com/ClickHouse/ClickHouse/pull/100144) ([Denys Melnyk](https://github.com/germiBest)).
* Se corrige el uso de un valor sin inicializar en StringSearcher.h. [#100225](https://github.com/ClickHouse/ClickHouse/pull/100225) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Permite cancelar subconsultas escalares y otras canalizaciones durante el análisis mediante Ctrl+C. Anteriormente, al pulsar Ctrl+C durante una subconsulta escalar de larga duración no ocurría nada hasta que la subconsulta terminaba. También corrige la barra de progreso y las estadísticas JSON para que informen correctamente de las filas leídas durante la ejecución de subconsultas escalares, tanto en `clickhouse-client` como en `clickhouse-local`. En coautoría con @YjyJeff. [#100230](https://github.com/ClickHouse/ClickHouse/pull/100230) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió una excepción `LOGICAL_ERROR` en consultas que involucran columnas `Dynamic` con uniones cruzadas y filtros en tiempo de ejecución, causada por `ColumnVariant::filter`, que compartía punteros a columnas Variant en lugar de clonarlos en la ruta de optimización `hasOnlyNulls`. Cierra [https://github.com/ClickHouse/ClickHouse/pull/100147](https://github.com/ClickHouse/ClickHouse/pull/100147). [#100234](https://github.com/ClickHouse/ClickHouse/pull/100234) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió un error en `Array` de `Variant` que podía reinterpretar el tipo de dato al llamar a la función `arrayFirst`/`arrayLast`. Por ejemplo, antes `Array(Variant(Date, Bool))` se convertía en `Bool` cuando el tipo de variante subyacente real era `Date`. [#100255](https://github.com/ClickHouse/ClickHouse/pull/100255) ([timothygk](https://github.com/timothygk)).
* Algunos cambios menores en las funciones: las funciones h3 ahora validan mejor los límites; readWKB comprueba los límites de tamaño (una nueva configuración, `max_wkb_geometry_elements`); las funciones del generador aleatorio limitan el número máximo de iteraciones en sus cálculos. Como seguimiento de [#93543](https://github.com/ClickHouse/ClickHouse/issues/93543). [#100270](https://github.com/ClickHouse/ClickHouse/pull/100270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un problema por el que cutURLParameter podía omitir parámetros por error cuando aparecían como subcadenas de otros parámetros. [#100280](https://github.com/ClickHouse/ClickHouse/pull/100280) ([Nikita Semenov](https://github.com/leftmain)).
* Se corrige una excepción cuando la configuración de la ruta del archivo de metadata de Iceberg contiene un byte nulo. [#100283](https://github.com/ClickHouse/ClickHouse/pull/100283) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el crecimiento cuadrático del número de consultas ejecutadas cuando se usa `distributed_index_analysis` con predicados que contienen subconsultas `IN`. [#100287](https://github.com/ClickHouse/ClickHouse/pull/100287) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige la excepción "Block structure mismatch" al usar `GROUP BY ... WITH TOTALS HAVING` en combinación con `UNION DISTINCT` y expresiones Nullable. [#100293](https://github.com/ClickHouse/ClickHouse/pull/100293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción LOGICAL\_ERROR en `estimateCompressionRatio` cuando el parámetro `block_size_bytes` es extremadamente grande. [#100298](https://github.com/ClickHouse/ClickHouse/pull/100298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción "Inconsistent AST formatting" en compilaciones de depuración al usar `GROUP BY CUBE(...) WITH ROLLUP` o combinaciones similares. [#100376](https://github.com/ClickHouse/ClickHouse/pull/100376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una excepción al crear una vista con alias de columnas y consultas `SELECT *` o `EXCEPT`/`INTERSECT`. [#100386](https://github.com/ClickHouse/ClickHouse/pull/100386) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Soluciona que `DROP TABLE` se quede bloqueado indefinidamente en tablas con motor Kafka cuando los consumidores se quedan atascados en un rebalance tras un error de heartbeat. [#100388](https://github.com/ClickHouse/ClickHouse/pull/100388) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `ReadBuffer is canceled. Can't read from it.` en las operaciones de copia de seguridad y restauración que usan archivos ZIP. [#100400](https://github.com/ClickHouse/ClickHouse/pull/100400) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `TOO_MANY_ROWS` en consultas `SELECT count()` con `max_rows_to_read` / `force_primary_key` cuando los datos están repartidos en varias partes con límites de gránulo no alineados. [#100408](https://github.com/ClickHouse/ClickHouse/pull/100408) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige `system.completions` para filtrar correctamente bases de datos, tablas y columnas según los derechos de acceso en todas las combinaciones de permisos: por tabla, por base de datos y con revocación por columna. [#100432](https://github.com/ClickHouse/ClickHouse/pull/100432) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Se corrige un SEGFAULT en NuRaft debido a una condición de carrera. [#100444](https://github.com/ClickHouse/ClickHouse/pull/100444) ([Pablo Marcos](https://github.com/pamarcos)).
* `min`/`max`/`argMin`/`argMax` ahora tratan los NaN de forma coherente con `ORDER BY`: los NaN siempre se omiten (solo se devuelven cuando todos los valores son NaN). Antes, los resultados dependían de la posición de los NaN en los datos debido a la semántica de comparación no ordenada de IEEE 754. [#100448](https://github.com/ClickHouse/ClickHouse/pull/100448) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió un error de copiar y pegar por el que `delta_lake_snapshot_end_version`, cuando se establecía sin `delta_lake_snapshot_start_version`, se ignoraba silenciosamente en lugar de generar un error `BAD_ARGUMENTS`. [#100454](https://github.com/ClickHouse/ClickHouse/pull/100454) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* `StorageRabbitMQ::shutdown` no es idempotente (accede incondicionalmente a punteros débiles y luego destruye los punteros compartidos correspondientes), pero ahora se invoca dos veces: una vez en `StreamingStorageRegistry` y después en `DatabaseCatalog`. Esta corrección hace que el método sea idempotente y añade comprobaciones defensivas de valores nulos. [#100455](https://github.com/ClickHouse/ClickHouse/pull/100455) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrigió la excepción `LOGICAL_ERROR` al usar `accurateCastOrNull` con el tipo de destino `QBit`. [#100470](https://github.com/ClickHouse/ClickHouse/pull/100470) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se corrigió la excepción LOGICAL\_ERROR "Stream ... not found" al insertar en una tabla con columnas `Array(JSON)` anidadas en partes wide con `optimize_on_insert=0`. [#100475](https://github.com/ClickHouse/ClickHouse/pull/100475) ([Pavel Kruglov](https://github.com/Avogar)).
* Validar las rutas de las entradas de archivo en los metadatos de la copia de seguridad para rechazar secuencias de path traversal, rutas absolutas y nombres vacíos durante `RESTORE`. [#100483](https://github.com/ClickHouse/ClickHouse/pull/100483) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrige un problema por el que la sintaxis `LIMIT m OFFSET n WITH TIES` no funcionaba. Esta sintaxis es equivalente a `LIMIT n, m WITH TIES`, que ya funcionaba. [#100491](https://github.com/ClickHouse/ClickHouse/pull/100491) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige la excepción "No set is registered for key" al usar `IN` con columnas `Nullable(Tuple)` que tienen campos con nombre y elementos `LowCardinality`. [#100523](https://github.com/ClickHouse/ClickHouse/pull/100523) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un desbordamiento de búfer en el montón en usearch `sorted_buffer_gt::insert()` que podía provocar un cierre inesperado o corromper silenciosamente la memoria durante la búsqueda por similitud vectorial. [#100537](https://github.com/ClickHouse/ClickHouse/pull/100537) ([Dustin Healy](https://github.com/dustinhealy)).
* Se corrigió un problema por el que `EXECUTE AS` ignoraba las cláusulas `FORMAT` e `INTO OUTFILE` especificadas en la consulta. [#100538](https://github.com/ClickHouse/ClickHouse/pull/100538) ([pufit](https://github.com/pufit)).
* Corrige la inconsistencia en el formato del AST para SAMPLE con OFFSET a nivel de consulta. Cierra [#100576](https://github.com/ClickHouse/ClickHouse/issues/100576). [#100579](https://github.com/ClickHouse/ClickHouse/pull/100579) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige el catálogo Polaris en Azure. Desde la versión 25.12, este catálogo en Azure empezó a añadir el bucket al principio de la ruta. Por ejemplo, `abfss://polaris-polaris@<some_url>.windows.net/polaris-polaris/<other-path>` en lugar de `abfss://polaris-polaris@<some_url>.windows.net/<other-path>`. Este PR elimina el bucket de la ruta. [#100583](https://github.com/ClickHouse/ClickHouse/pull/100583) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige la excepción por incompatibilidad de tipos en transform cuando la columna por defecto es const en algunos bloques. Cierra [#100574](https://github.com/ClickHouse/ClickHouse/issues/100574). [#100616](https://github.com/ClickHouse/ClickHouse/pull/100616) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige los casos de NOT\_FOUND\_COLUMN\_IN\_BLOCK en los que la parte SELECT de la proyección contiene columnas que no existen en la parte SELECT original de la consulta. Cierra [#100194](https://github.com/ClickHouse/ClickHouse/issues/100194). [#100623](https://github.com/ClickHouse/ClickHouse/pull/100623) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Validar las dimensiones de la forma del formato Npy frente al tamaño del archivo y los límites de desbordamiento para evitar ataques de denegación de servicio mediante archivos `.npy` especialmente diseñados con dimensiones desmesuradamente grandes. También se rechazan las formas vacías y se limita la memoria por fila a 2 GiB. [#100625](https://github.com/ClickHouse/ClickHouse/pull/100625) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un problema por el que se ignoraba `session_timezone` al analizar valores `DateTime` durante las inserciones asíncronas (TCP) y todas las inserciones a través de HTTP. [#100647](https://github.com/ClickHouse/ClickHouse/pull/100647) ([Sema Checherinda](https://github.com/CheSema)).
* Permitir pasar la clave de segmentación a las funciones de tabla `cluster()` y `clusterAllReplicas()` al usar una función de tabla como fuente (p. ej., `cluster('name', view(...), sharding_key)`). [#100665](https://github.com/ClickHouse/ClickHouse/pull/100665) ([Sergey Veletskiy](https://github.com/velom)).
* Se corrige un cierre inesperado del servidor (fallo de aserción) al usar funciones de agregación paramétricas con el combinador Array y argumentos NULL, como `quantileIfArrayArray(0.5)([[NULL]], [[1]])`. [#100679](https://github.com/ClickHouse/ClickHouse/pull/100679) ([nerve-bot](https://github.com/nerve-bot)).
* Corrige la excepción al calcular el supertipo común para tuplas vacías y no vacías con `use_variant_as_common_type` activado. [#100699](https://github.com/ClickHouse/ClickHouse/pull/100699) ([Antonio Andelic](https://github.com/antonio2368)).
* El servidor ya no deja de iniciarse cuando se configura un disco de Azure blob storage, pero el endpoint no está accesible temporalmente (p. ej., por un fallo de DNS). [#100701](https://github.com/ClickHouse/ClickHouse/pull/100701) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió el comportamiento indefinido en `positiveModulo` cuando el divisor sin signo no cabe en el tipo de resultado con signo. [#100705](https://github.com/ClickHouse/ClickHouse/pull/100705) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige el cierre inesperado del servidor (error lógico "tipo de retorno inesperado de \_\_topKFilter") cuando `use_top_k_dynamic_filtering` está habilitado y la columna de `ORDER BY` es de tipo `Dynamic` o `Variant`. [#100742](https://github.com/ClickHouse/ClickHouse/pull/100742) ([Groene AI](https://github.com/groeneai)).
* Corrige un fallo del servidor al usar la función `has()` con PREWHERE/WHERE en una clave Tuple que contiene elementos LowCardinality. [#100760](https://github.com/ClickHouse/ClickHouse/pull/100760) ([Groene AI](https://github.com/groeneai)).
* Se corrige el error de aserción `file_offset_of_buffer_end <= getFileSize()` (excepción en compilaciones de depuración) al leer tablas `Log` o `StripeLog` en almacenamiento de objetos S3 con escrituras concurrentes. [#100763](https://github.com/ClickHouse/ClickHouse/pull/100763) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una excepción en el estimador de selectividad de estadísticas cuando una cláusula WHERE incluye una expresión de función (p. ej., toDecimal64(col, 3)) en una tabla con estadísticas activadas. Ahora, el estimador omite esos predicados en lugar de intentar una conversión de tipos no válida. [#100764](https://github.com/ClickHouse/ClickHouse/pull/100764) ([Han Fei](https://github.com/hanfei1991)).
* Corrige un caso poco frecuente en el que un join con reordenación puede dar un resultado incorrecto. [#100790](https://github.com/ClickHouse/ClickHouse/pull/100790) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige los tipos incorrectos de los argumentos de `AggregateFunction` en el conteo trivial optimizado, lo que provocaba la excepción `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` al consultar expresiones como `count(v0 + v1)` en tablas distribuidas. [#100794](https://github.com/ClickHouse/ClickHouse/pull/100794) ([YjyJeff](https://github.com/YjyJeff)).
* Algunos catálogos pueden mostrar secretos en la sección `SETTINGS` del resultado de la consulta `select * from system.databases`. Este PR evita ese comportamiento. [#100800](https://github.com/ClickHouse/ClickHouse/pull/100800) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige el comportamiento indefinido (desbordamiento de enteros con signo) en `toStartOfInterval` al usar intervalos de Week, Quarter o Year con el argumento `origin` y valores extremos del intervalo. [#100817](https://github.com/ClickHouse/ClickHouse/pull/100817) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigen los combinadores de funciones de agregación `If`, `Distinct`, `DistinctIf`, `IfState ` con tipo de retorno `Tuple` y uno o más argumentos `Nullable`, que no podían leer estados serializados antiguos tras la introducción de `Nullable(Tuple)`. Cierra [#98917](https://github.com/ClickHouse/ClickHouse/issues/98917). [#100826](https://github.com/ClickHouse/ClickHouse/pull/100826) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige un segfault en s3Cluster y en las consultas distribuidas debido a un use-after-free en el pool de conexiones. [#100837](https://github.com/ClickHouse/ClickHouse/pull/100837) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se corrige un segfault por desreferenciación de puntero nulo al cargar diccionarios durante el apagado del servidor. `Context::getUserDefinedSQLObjectsStorage` (desreferencia `user_defined_sql_objects_storage`) es invocado por los hilos de diccionario de forma concurrente mientras el hilo principal llama a `Context::shutdown` (establece `user_defined_sql_objects_storage` en null). Debemos asegurarnos de deshabilitar futuras actualizaciones en el cargador de diccionarios, terminar las consultas de diccionario que se estén ejecutando en ese momento y esperar a que finalicen los hilos de carga de diccionarios, todo ello antes de ejecutar `Context::shutdown`. De forma similar a lo que hacemos con las consultas normales. [#100839](https://github.com/ClickHouse/ClickHouse/pull/100839) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrigió el desbordamiento de búfer en `ULIDStringToDateTime` cuando la entrada contiene bytes no ASCII. [#100843](https://github.com/ClickHouse/ClickHouse/pull/100843) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corregido un cierre inesperado (`LOGICAL_ERROR`) al consultar una tabla `Merge` (o la table function `merge()`) que engloba varias tablas, incluida una tabla `Distributed`, con `distributed_group_by_no_merge=1` activado. [#100859](https://github.com/ClickHouse/ClickHouse/pull/100859) ([Groene AI](https://github.com/groeneai)).
* Cast\_keep\_nullable, cuando está habilitado, no lanzará una excepción al convertir un NULL de Dynamic a Variant. [#100864](https://github.com/ClickHouse/ClickHouse/pull/100864) ([Seva Potapov](https://github.com/seva-potapov)).
* Se corrige un problema por el que los comandos `clickhouse-keeper-client` `get`, `exists` y `ls` imprimían mensajes de error duplicados de `watch_id` en stdout en lugar de stderr. [#100893](https://github.com/ClickHouse/ClickHouse/pull/100893) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* Corrige una excepción en `intDiv`/`intDivOrZero` en arrays de tuplas Nullable, p. ej., `SELECT intDiv([divide((1, 2), ... AND NULL)], 2)`. [#100895](https://github.com/ClickHouse/ClickHouse/pull/100895) ([Raúl Marín](https://github.com/Algunenano)).
* Evaluar los argumentos del motor de `StorageAlias` antes de almacenar la definición, para que expresiones como `currentDatabase()` se resuelvan como literales antes de guardarse en la base de datos. [#100902](https://github.com/ClickHouse/ClickHouse/pull/100902) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige `processAndOptimizeTextIndexFunctions` cuando `query_plan_merge_expressions = 0`, donde `ExpressionStep` está directamente sobre `ReadFromMergeTree`. Corrige [#100879](https://github.com/ClickHouse/ClickHouse/issues/100879). [#100909](https://github.com/ClickHouse/ClickHouse/pull/100909) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Se actualizó replxx para incluir la corrección de un acceso fuera de límites en do\_complete\_line. [#100925](https://github.com/ClickHouse/ClickHouse/pull/100925) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigen resultados incorrectos cuando un JOIN con la optimización de segmento por PK usa la caché de condiciones de consulta y algunas partes quedan filtradas por condiciones en caché. [#100926](https://github.com/ClickHouse/ClickHouse/pull/100926) ([Groene AI](https://github.com/groeneai)).
* Se corrigió que `divide` e `intDiv` devolvieran `ILLEGAL_DIVISION` en algunos casos al usarse en expresiones de filtro durante el análisis de índices. [#100928](https://github.com/ClickHouse/ClickHouse/pull/100928) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigieron los errores "La tabla de destino no existe" en las vistas materializadas con tablas internas durante el arranque asíncrono, causados por un orden incorrecto de las dependencias de inicio. [#100946](https://github.com/ClickHouse/ClickHouse/pull/100946) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige el comportamiento indefinido (desbordamiento de enteros con signo) en parseDateTimeBestEffort al parsear cadenas de fecha y hora con más de 18 dígitos fraccionarios de segundo. [#100948](https://github.com/ClickHouse/ClickHouse/pull/100948) ([Vasily Chekalkin](https://github.com/bacek)).
* Se corrigió un fallo al usar un índice de búsqueda de texto con una cláusula `IN` que contiene una subconsulta de tipo Tuple, por ejemplo, `WHERE (id, str) IN (SELECT (id, str) FROM ...)`, o cuando el número de columnas de la subconsulta no coincide con el de la tupla del lado izquierdo de `IN`. [#100959](https://github.com/ClickHouse/ClickHouse/pull/100959) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió un fallo al crear un diccionario de polígonos a partir de una tabla `MergeTree` que utiliza serialización dispersa de columnas. [#100964](https://github.com/ClickHouse/ClickHouse/pull/100964) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el error lógico "nodo de acción del árbol de consulta no válido" al usar `INTERSECT ALL` / `UNION ALL` con expresiones reducidas a constantes. [#100977](https://github.com/ClickHouse/ClickHouse/pull/100977) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un problema que impedía que la función de agregación `sumCountOrDefault` con uno o más argumentos `Nullable` leyera estados serializados antiguos tras la introducción de `Nullable(Tuple)`. Cierra [#100882](https://github.com/ClickHouse/ClickHouse/issues/100882). [#101021](https://github.com/ClickHouse/ClickHouse/pull/101021) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige un cierre inesperado (`Logical error: isConst/isSparse/isReplicated assertTypeEquality`) en los algoritmos de merge cuando la replicación diferida de columnas (`enable_lazy_columns_replication`) genera columnas `ColumnReplicated` que pasan a canalizaciones de merge-sort con entradas que llegan tarde. [#101036](https://github.com/ClickHouse/ClickHouse/pull/101036) ([Groene AI](https://github.com/groeneai)).
* Se corrige el error incorrecto `UNKNOWN_IDENTIFIER` cuando se usa el mismo alias para varias expresiones en `SELECT`; ahora se muestra el error correcto `MULTIPLE_EXPRESSIONS_FOR_ALIAS`. [#101040](https://github.com/ClickHouse/ClickHouse/pull/101040) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrección de las columnas ALIAS con tipos `DateTime`/`DateTime64` que no aplicaban la conversión de zona horaria cuando la zona horaria declarada difiere de la de la expresión. [#101043](https://github.com/ClickHouse/ClickHouse/pull/101043) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige que las políticas de fila no se registraran en `query_log` para vistas, subconsultas e `INSERT ... SELECT`. Aunque las políticas de fila se aplicaban durante la planificación de la consulta, no se propagaban de los subplanificadores al planificador principal para su registro. Las políticas de fila (solo para el registro) ahora se mantienen en `QueryAccessInfo` para que tanto los planificadores como los subplanificadores puedan poblarlas. [#101044](https://github.com/ClickHouse/ClickHouse/pull/101044) ([Narasimha Pakeer](https://github.com/npakeer)).
* Se corrige una excepción en `DirectJoinMergeTreeEntity` cuando los bloques del pipeline contienen columnas `ColumnConst` que se combinan con columnas normales. [#101046](https://github.com/ClickHouse/ClickHouse/pull/101046) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un espacio innecesario en el formato del alias de columna en la CTE (`WITH t (a, b)` → `WITH t(a, b)`). [#101049](https://github.com/ClickHouse/ClickHouse/pull/101049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigieron las funciones de tabla `remote`/`cluster` que fallaban con funciones de tabla anidadas como `merge` cuando el analizador está habilitado. [#101055](https://github.com/ClickHouse/ClickHouse/pull/101055) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un problema por el que `OFFSET` se aplicaba dos veces en consultas distribuidas cuando `prefer_localhost_replica=1`, lo que producía menos filas de las esperadas. [#101071](https://github.com/ClickHouse/ClickHouse/pull/101071) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió un fallo al usar el formato `Regexp` con una expresión regular no válida en la configuración `format_regexp`. [#101074](https://github.com/ClickHouse/ClickHouse/pull/101074) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige el error "Illegal type Decimal64 of start parameter" en las funciones de agregación de series temporales al usar `serialize_query_plan=1` con réplicas paralelas. [#101083](https://github.com/ClickHouse/ClickHouse/pull/101083) ([Groene AI](https://github.com/groeneai)).
* Se corrige una excepción en `optimizeLazyMaterialization` cuando se utiliza una proyección con PREWHERE junto con `ORDER BY ... LIMIT`. [#101115](https://github.com/ClickHouse/ClickHouse/pull/101115) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el fallo del servidor (SIGABRT) al usar funciones de agregación con el combinador `Null` de uso exclusivamente interno (p. ej., `sumNull`, `avgNull`) y con la configuración `aggregate_functions_null_for_empty = 1` habilitada. [#101147](https://github.com/ClickHouse/ClickHouse/pull/101147) ([Groene AI](https://github.com/groeneai)).
* Corrige un uso de memoria después de liberarla en la ruta de escritura de la caché del sistema de archivos que podía provocar lecturas de memoria ya liberada al registrar segmentos de archivo completados (detectado por MemorySanitizer en BuzzHouse). [#101161](https://github.com/ClickHouse/ClickHouse/pull/101161) ([Groene AI](https://github.com/groeneai)).
* Se corrige un cierre inesperado del servidor con "Intento de adjuntar una tabla externa a un Set listo sin elementos explícitos" cuando el análisis distribuido de índices encuentra un predicado GLOBAL IN cuyo Set se creó sin elementos explícitos. [#101178](https://github.com/ClickHouse/ClickHouse/pull/101178) ([Groene AI](https://github.com/groeneai)).
* Se corrigen las funciones de agregación `MAX`/`MIN` en columnas `Decimal` que devolvían resultados incorrectos cuando la compilación JIT está activada (tras alcanzar el umbral de compilación). [#101203](https://github.com/ClickHouse/ClickHouse/pull/101203) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigen las optimizaciones de `minmax_count_projection` y las optimizaciones triviales de `COUNT(*)`, que quedaban deshabilitadas de forma permanente después de una eliminación ligera, incluso tras haberse fusionado todas las partes con una máscara de eliminación ligera. [#101212](https://github.com/ClickHouse/ClickHouse/pull/101212) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un caso que podía provocar el error lógico `Having zero bytes, ...` en la caché cuando se sobrescribía un objeto remoto entre `list` y `read`, lo que antes daba lugar a metadatos de objeto obsoletos. [#101219](https://github.com/ClickHouse/ClickHouse/pull/101219) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un cierre inesperado del servidor (LOGICAL\_ERROR: Bad cast from ColumnVector to ColumnLowCardinality) al consultar una tabla MergeTree con `ORDER BY CAST(lc_column, 'Type')`, donde `lc_column` tiene el tipo LowCardinality. [#101220](https://github.com/ClickHouse/ClickHouse/pull/101220) ([Groene AI](https://github.com/groeneai)).
* Se corrige la limpieza de los nodos de procesamiento obsoletos en `S3Queue`. [#101230](https://github.com/ClickHouse/ClickHouse/pull/101230) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió el UB en mergeTreeAnalyzeIndexes() cuando el argumento optimizations no es válido. [#101253](https://github.com/ClickHouse/ClickHouse/pull/101253) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la excepción `Logical error: 'partitions_count > 0'` al realizar operaciones consecutivas de `ALTER TABLE UPDATE` en una tabla Iceberg particionada. [#101278](https://github.com/ClickHouse/ClickHouse/pull/101278) ([Desel72](https://github.com/Desel72)).
* Corrige resultados erróneos en consultas cuando se usa una constante entera grande (p. ej., 256, 2147483648) como predicado booleano en una cláusula WHERE con AND sobre tablas MergeTree. Por ejemplo, `SELECT count() FROM t WHERE (2147483648 > b) AND 2147483648` devolvía incorrectamente 0 en lugar de coincidir con todas las filas. [#101287](https://github.com/ClickHouse/ClickHouse/pull/101287) ([Groene AI](https://github.com/groeneai)).
* Se corrige el INSERT SELECT desde un clúster de Delta Lake con ReplicatedMergeTree. [#101299](https://github.com/ClickHouse/ClickHouse/pull/101299) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrigió un fallo que provocaba un cierre inesperado con "Error lógico: lectura desde una CTE materializada antes de la materialización" cuando una subconsulta escalar hace referencia a una cadena de CTE materializadas dependientes entre sí. [#101305](https://github.com/ClickHouse/ClickHouse/pull/101305) ([Groene AI](https://github.com/groeneai)).
* Se corrige una condición de carrera en los datos de `storage_id` en `IStorage::getDependentViewsByColumn`. [#101385](https://github.com/ClickHouse/ClickHouse/pull/101385) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigen el formato y la clonación del AST de BACKUP FROM SNAPSHOT. [#101405](https://github.com/ClickHouse/ClickHouse/pull/101405) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrige el cierre inesperado por LOGICAL\_ERROR "Current component is empty" al consultar `system.part_moves_between_shards` con `enforce_keeper_component_tracking` habilitado. [#101462](https://github.com/ClickHouse/ClickHouse/pull/101462) ([Groene AI](https://github.com/groeneai)).
* Se corrigió un fallo de segmentación en DataTypeDynamic::create() cuando el fuzzer genera un AST malformado del tipo Dynamic. [#101464](https://github.com/ClickHouse/ClickHouse/pull/101464) ([Groene AI](https://github.com/groeneai)).
* Genera un error cuando se usan la configuración `delta_lake_snapshot_version` o la configuración de versión de CDF sin DeltaKernel habilitado, en lugar de devolver datos incorrectos en silencio. [#101489](https://github.com/ClickHouse/ClickHouse/pull/101489) ([Desel72](https://github.com/Desel72)).
* Se corrige la excepción `NOT_FOUND_COLUMN_IN_BLOCK` al usar ARRAY JOIN con JOIN USING y con la configuración `analyzer_compatibility_join_using_top_level_identifier` habilitada. Cierra [#101240](https://github.com/ClickHouse/ClickHouse/issues/101240). [#101507](https://github.com/ClickHouse/ClickHouse/pull/101507) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigió el fallo en el bucle de reintento de INSERT de Iceberg cuando la tabla se había creado con `iceberg_metadata_file_path` y la versión de metadatos de destino ya existía. [#101548](https://github.com/ClickHouse/ClickHouse/pull/101548) ([Groene AI](https://github.com/groeneai)).
* Eliminar Nullable de la columna de resultados en arrayIntersect y funciones relacionadas para evitar discrepancias en la serialización/deserialización. [#101569](https://github.com/ClickHouse/ClickHouse/pull/101569) ([George Larionov](https://github.com/george-larionov)).
* Se corrige un cierre inesperado del servidor (LOGICAL\_ERROR) al hacer SELECT desde una vista materializada basada en una tabla con engine IcebergLocal. [#101577](https://github.com/ClickHouse/ClickHouse/pull/101577) ([Groene AI](https://github.com/groeneai)).
* Se corrige un mensaje de error incorrecto al llamar a `intExp10` con un argumento NaN: mostraba `intExp2` en lugar de `intExp10`. [#101582](https://github.com/ClickHouse/ClickHouse/pull/101582) ([Krishna Chaitanya](https://github.com/Krishnachaitanyakc)).
* Se corrige un problema por el que `allow_statistics=0` no bloqueaba `ALTER TABLE ADD STATISTICS` ni `ALTER TABLE DROP STATISTICS` tras la refactorización en [#100288](https://github.com/ClickHouse/ClickHouse/issues/100288). [#101585](https://github.com/ClickHouse/ClickHouse/pull/101585) ([Krishna Chaitanya](https://github.com/Krishnachaitanyakc)).
* Se corrige el error por el que `KeeperMap` `CREATE TABLE` fallaba con "Cannot create metadata for table" cuando en nodos de ZooKeeper remanentes de un `drop` parcial anterior a la versión 25.1 faltaba el nodo `drop_lock_version`. [#101623](https://github.com/ClickHouse/ClickHouse/pull/101623) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un posible error lógico al leer las subcolumnas de Map. Cierra [#100769](https://github.com/ClickHouse/ClickHouse/issues/100769). Cierra [#101336](https://github.com/ClickHouse/ClickHouse/issues/101336). [#101641](https://github.com/ClickHouse/ClickHouse/pull/101641) ([Pavel Kruglov](https://github.com/Avogar)).
* Da prioridad a la coincidencia exacta de la subcolumna frente a la coincidencia por prefijo en `getSubcolumnData` para evitar un posible fallo. Cierra [#101271](https://github.com/ClickHouse/ClickHouse/issues/101271). [#101645](https://github.com/ClickHouse/ClickHouse/pull/101645) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un fallo (LOGICAL\_ERROR: "ColumnUnique can't contain null values") al comparar una columna `LowCardinality` con una constante NULL de `Variant` mientras `use_variant_default_implementation_for_comparisons` está deshabilitado. [#101690](https://github.com/ClickHouse/ClickHouse/pull/101690) ([Groene AI](https://github.com/groeneai)).
* Qué: Se añadió una comprobación de flujo vacío a Bzip2ReadBuffer para que devuelva EOF en lugar de lanzar UNEXPECTED\_END\_OF\_FILE cuando el flujo interno está vacío. [#101691](https://github.com/ClickHouse/ClickHouse/pull/101691) ([ClickGap AI Bot](https://github.com/clickgapai)).
* Qué: Se corrigió la descripción invertida de la columna `alterable` en `system.s3_queue_settings` y `system.azure_queue_settings`: se intercambiaron los significados de `0` y `1` para que coincidan con el comportamiento real del código. [#101703](https://github.com/ClickHouse/ClickHouse/pull/101703) ([ClickGap AI Bot](https://github.com/clickgapai)).
* Se corrige un error por el que positiveModulo(tuple, number) se derivaba incorrectamente a la división en lugar de al módulo. [#101709](https://github.com/ClickHouse/ClickHouse/pull/101709) ([ClickGap AI Bot](https://github.com/clickgapai)).
* Corrige un fallo al configurar `thread_pool_size` en un disco con caché. Anteriormente, `FileCacheSettings::loadFromConfig()` rechazaba `thread_pool_size` como una configuración desconocida, lo que impedía que el servidor arrancara. Esta configuración es un parámetro válido de `IDisk` que controla la cantidad de hilos usados en operaciones de copia de disco a disco durante los movimientos de partes en segundo plano. [#101712](https://github.com/ClickHouse/ClickHouse/pull/101712) ([Francisco](https://github.com/Milias)).
* Se corrigió la creación de diccionarios `RANGE_HASHED`, que aceptaba silenciosamente un atributo de rango `MAX` inexistente y usaba una configuración de tipos incorrecta cuando los atributos de rango mínimo y máximo tenían tipos distintos. El error se debía a un fallo de copiar y pegar en `buildRangeConfiguration`, que buscaba `min_attr_name` en lugar de `max_attr_name` para el atributo máximo. [#101732](https://github.com/ClickHouse/ClickHouse/pull/101732) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige un fallo de acceso a memoria liberada en el planificador de concesión de CPU cuando el temporizador de espera sobrevive al hilo de trabajo cuyos `ProfileEvents::Counters` referencia. [#101761](https://github.com/ClickHouse/ClickHouse/pull/101761) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un error en las funciones arrayLevenshteinDistanceWeighted y arraySimilarity. Cierra el [issue #101725](https://github.com/ClickHouse/ClickHouse/issues/101725). [#101767](https://github.com/ClickHouse/ClickHouse/pull/101767) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se corrige un problema por el que la API de consulta de Prometheus ignoraba los cuerpos de formulario en POST. [#101794](https://github.com/ClickHouse/ClickHouse/pull/101794) ([James Cunningham](https://github.com/JTCunning)).
* Se corrigió el escape de excepciones desde el destructor `Client::~Client` de S3 que provocaba el cierre del servidor. [#101798](https://github.com/ClickHouse/ClickHouse/pull/101798) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
* Corrige un use-after-scope en la deserialización en paralelo de rutas dinámicas del tipo `Object`, que podía provocar bloqueos al leer tablas con muchas rutas dinámicas. [#101823](https://github.com/ClickHouse/ClickHouse/pull/101823) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió una salida incorrecta de la función `formatDateTime` con el formateador `%W` bajo ciertas configuraciones de formato (no predeterminadas). [#101847](https://github.com/ClickHouse/ClickHouse/pull/101847) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigió el falso negativo de `shouldPatchFunction` en `SYSTEM INSTRUMENT ADD` cuando la cadena de búsqueda aparece por primera vez dentro de un argumento de plantilla del nombre de símbolo desdemangleado. [#101885](https://github.com/ClickHouse/ClickHouse/pull/101885) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrigió la pérdida del registro de UDF cuando la sesión de ZooKeeper expiraba durante una actualización periódica; todas las funciones definidas por el usuario podían quedar no disponibles hasta que una actualización completa se realizara correctamente. [#101891](https://github.com/ClickHouse/ClickHouse/pull/101891) ([Nikita Fomichev](https://github.com/fm4v)).
* Se corrigió la descripción de `system.codecs` de `AES_256_GCM_SIV` para que indicara `AES-256` en lugar de `AES-128`. [#101917](https://github.com/ClickHouse/ClickHouse/pull/101917) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Se corrige un problema por el que se usaban extremos incorrectos en un índice min-max creado sobre una columna JSON, lo que provocaba un resultado de consulta incorrecto. Cierra [#101700](https://github.com/ClickHouse/ClickHouse/issues/101700). [#101918](https://github.com/ClickHouse/ClickHouse/pull/101918) ([Pavel Kruglov](https://github.com/Avogar)).
* El tokenizador `splitByString` ahora rechaza las cadenas separadoras vacías. [#101928](https://github.com/ClickHouse/ClickHouse/pull/101928) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigió un problema por el que `materialize_skip_indexes_on_merge=false` no suprimía los índices de texto (de texto completo) durante la fusión. Anteriormente, solo se suprimían los índices de omisión no textuales (minmax, set, bloom\_filter); los índices de texto seguían generándose, lo que desperdiciaba CPU y E/S. [#101932](https://github.com/ClickHouse/ClickHouse/pull/101932) ([Groene AI](https://github.com/groeneai)).
* El tokenizador `sparseGrams` generó tokens más largos que la longitud máxima especificada (esto se debía a un `+2` codificado de forma fija en la implementación). [#101934](https://github.com/ClickHouse/ClickHouse/pull/101934) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Se corrigió SIGSEGV en `MergeTreeDataPartWriterWide::cancel` cuando un constructor de flujo lanza una excepción durante `addStreams`, dejando una entrada nula en `column_streams`. [#101936](https://github.com/ClickHouse/ClickHouse/pull/101936) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige una excepción al consultar tablas Merge o Distributed con un índice de texto completo y condiciones de filtro combinadas que mezclan `has*Tokens` con LIKE cuando `query_plan_direct_read_from_text_index` está habilitado. [#101939](https://github.com/ClickHouse/ClickHouse/pull/101939) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Se corrige un comportamiento indefinido al analizar paquetes de consulta del protocolo nativo con valores de `QueryProcessingStage` no válidos. [#101972](https://github.com/ClickHouse/ClickHouse/pull/101972) ([Raúl Marín](https://github.com/Algunenano)).
* Cerrar la conexión TCP cuando se produzca una excepción durante el análisis inicial de la consulta para evitar leer datos basura de un flujo desincronizado. [#101989](https://github.com/ClickHouse/ClickHouse/pull/101989) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige una condición de carrera de SLRU en la caché del sistema de archivos 26.1+, que puede provocar un error lógico en la reserva de espacio. En una compilación de depuración, también puede causar un fallo de aserción: `'Previous state is Evicting, but expected state to be Active while setting Evicting flag for 2c1e3484ecdc6b78a8978fa5b17c5097:0:339 (state: Evicting)'.`. [#101991](https://github.com/ClickHouse/ClickHouse/pull/101991) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige una excepción al convertir una cadena con datos sobrantes al tipo `Tuple()` vacío. [#102011](https://github.com/ClickHouse/ClickHouse/pull/102011) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el orden incorrecto de las filas en las consultas que usan ORDER BY con el algoritmo de join grace\_hash. Las consultas afectadas podían devolver resultados en un orden incorrecto, lo que producía una salida incorrecta sin que se advirtiera. [#102036](https://github.com/ClickHouse/ClickHouse/pull/102036) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige un ERROR LÓGICO (Tamaño inesperado del tipo de índice) que podía producirse en consultas RIGHT JOIN y FULL JOIN cuando se había configurado el ajuste `max_bytes_in_join`. [#102042](https://github.com/ClickHouse/ClickHouse/pull/102042) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige los casos en los que Time con valores negativos devolvía resultados incorrectos al compararse con DateTime. Cierra [#101670](https://github.com/ClickHouse/ClickHouse/issues/101670). [#102056](https://github.com/ClickHouse/ClickHouse/pull/102056) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige un crash en la actualización de UDF causado por `ZooKeeperRetriesControl`, que reintentaba sobre una sesión de ZooKeeper obsoleta (caducada) sin renovarla. [#102059](https://github.com/ClickHouse/ClickHouse/pull/102059) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige los espacios que faltaban al formatear `unlock snapshot`. cierra [https://github.com/clickhouse/clickhouse/issues/101723](https://github.com/clickhouse/clickhouse/issues/101723). [#102063](https://github.com/ClickHouse/ClickHouse/pull/102063) ([Han Fei](https://github.com/hanfei1991)).
* Se corrige un fallo (SIGSEGV) al consultar una vista con una cláusula WHERE cuando la consulta interna genera columnas con tipos distintos de los metadatos de la vista (p. ej., Nullable de LEFT JOIN con `join_use_nulls`). [#102085](https://github.com/ClickHouse/ClickHouse/pull/102085) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrigen las entradas de `VectorSimilarityIndexCache` que nunca se desalojaban al eliminar una parte debido a una discrepancia en las claves de la caché. [#102152](https://github.com/ClickHouse/ClickHouse/pull/102152) ([Seva Potapov](https://github.com/seva-potapov)).
* Hacer NACK de los mensajes defectuosos al usar almacenamiento de RabbitMQ. [#102157](https://github.com/ClickHouse/ClickHouse/pull/102157) ([Seva Potapov](https://github.com/seva-potapov)).
* Se corrige un error lógico al analizar una cadena incorrecta correspondiente a una tupla vacía. [#102289](https://github.com/ClickHouse/ClickHouse/pull/102289) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige resultados de agregación incorrectos (filas duplicadas) al usar `optimize_aggregation_in_order=1` con columnas de GROUP BY en un orden distinto al de la clave de ordenación de la tabla. [#102299](https://github.com/ClickHouse/ClickHouse/pull/102299) ([Groene AI](https://github.com/groeneai)).
* Se corrige un fallo en `IcebergLocal` `ALTER TABLE ... UPDATE` al usar el formato Avro, causado porque los tipos envoltorio `LowCardinality`/`Nullable` no se desenvolvían antes de la serialización. [#102337](https://github.com/ClickHouse/ClickHouse/pull/102337) ([Desel72](https://github.com/Desel72)).
* Se corrigió un fallo de segmentación en mutaciones sobre columnas materializadas sin expresión. Resuelve [#102185](https://github.com/ClickHouse/ClickHouse/issues/102185). [#102342](https://github.com/ClickHouse/ClickHouse/pull/102342) ([zoomxi](https://github.com/zoomxi)).
* Corrección en Coalescing merge tree para el tipo Array. Se cierra [#89509](https://github.com/ClickHouse/ClickHouse/issues/89509). [#102384](https://github.com/ClickHouse/ClickHouse/pull/102384) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrige un segfault (o `LOGICAL_ERROR` en compilaciones de depuración) al leer archivos Parquet con el push down del filtro bloom habilitado y condiciones de igualdad/desigualdad en la cláusula WHERE. El fallo se producía por un acceso a memoria fuera de límites durante la recuperación de datos del filtro bloom del prefetcher de Parquet, y también podía provocar resultados de consulta incorrectos y no deterministas. [#102385](https://github.com/ClickHouse/ClickHouse/pull/102385) ([Groene AI](https://github.com/groeneai)).
* Corrige el `LOGICAL_ERROR` que abortaba el redimensionamiento dinámico de la caché del sistema de archivos SLRU, causado por estadísticas de desalojo compartidas entre subcolas y una ruta de recuperación incorrecta para candidatos fallidos. [#102396](https://github.com/ClickHouse/ClickHouse/pull/102396) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un fallo al inicializar tablas alias sin tabla de destino en una réplica nueva de la base de datos Replicated. Cierra [#101320](https://github.com/ClickHouse/ClickHouse/issues/101320). [#102397](https://github.com/ClickHouse/ClickHouse/pull/102397) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige una lectura fuera de los límites en las funciones de búsqueda en cadenas (`countSubstrings`, `position`, etc.) al buscar una subcadena objetivo compuesta íntegramente por bytes nulos. [#102401](https://github.com/ClickHouse/ClickHouse/pull/102401) ([Raúl Marín](https://github.com/Algunenano)).
* Los ajustes de los índices de texto completo (`enable_full_text_index`, `allow_experimental_full_text_index`, `use_skip_indexes_on_data_read`) ya no se desactivan cuando la configuración `compatibility` apunta a una versión anterior a la 26.1. Antes, esto podía impedir que `SharedDatabaseCatalog` creara tablas con índices de texto. [#102422](https://github.com/ClickHouse/ClickHouse/pull/102422) ([Nikita Fomichev](https://github.com/fm4v)).
* Corregida una lectura fuera de límites en `printf` con un `%` al final. [#102472](https://github.com/ClickHouse/ClickHouse/pull/102472) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige una excepción de chassert `ReadBuffer is canceled` en compilaciones de depuración de AsynchronousMetrics, causada porque `rewind` no restablecía la marca de cancelación del búfer. [#102524](https://github.com/ClickHouse/ClickHouse/pull/102524) ([Yuri Fedoseev](https://github.com/yurifedoseev)).
* Se corrigió `hasToken` / `hasTokenOrNull` con cadenas de búsqueda formadas solo por separadores (p. ej., `'()'`, `'!!!'`) en columnas con un índice de texto: anteriormente, el índice omitía silenciosamente todos los gránulos en lugar de generar `BAD_ARGUMENTS` (para `hasToken`) o devolver `NULL` (para `hasTokenOrNull`). [#102544](https://github.com/ClickHouse/ClickHouse/pull/102544) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Soluciona OOM en solicitudes `multi` enormes en keeper. Para el tracing de OpenTelemetry, asignamos incondicionalmente >1 KiB a spans de OpenTelemetry en objetos `ZooKeeperRequest`; es decir, en solicitudes `multi` realmente enormes, intentamos asignar >10 GiB de memoria adicional. Para solucionarlo, ahora mantenemos los datos compartidos en memoria estática y usamos `std::unique_ptr` en lugar de `std::optional` en `ZooKeeperOpentelemetrySpans`. [#102586](https://github.com/ClickHouse/ClickHouse/pull/102586) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corregido el problema por el que `CurrentMetric` de `NamedCollection` se inflaba con `CREATE NAMED COLLECTION IF NOT EXISTS` en colecciones existentes, y no se inicializaba para las colecciones cargadas desde la configuración o el almacenamiento SQL al inicio. Cierra [#102507](https://github.com/ClickHouse/ClickHouse/issues/102507). [#102598](https://github.com/ClickHouse/ClickHouse/pull/102598) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrigió una excepción en `getStructureOfRemoteTable` cuando el segmento local devuelve columnas vacías debido a DDL concurrente. [#102604](https://github.com/ClickHouse/ClickHouse/pull/102604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la excepción `LOGICAL_ERROR` cuando varias consultas simultáneas `CREATE TABLE IF NOT EXISTS` se dirigen a la misma tabla `S3Queue` en una base de datos Shared. [#102610](https://github.com/ClickHouse/ClickHouse/pull/102610) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrige el fallo LOGICAL\_ERROR "Unexpected number of rows in column subchunk" en el lector nativo de Parquet V3 al leer columnas Nullable con un filtro WHERE. [#102628](https://github.com/ClickHouse/ClickHouse/pull/102628) ([Groene AI](https://github.com/groeneai)).
* Se corrigió la descripción del evento de perfil `AzureWriteMicroseconds`, que indicaba "read" en lugar de "write". [#102639](https://github.com/ClickHouse/ClickHouse/pull/102639) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Error en la política de filas que provoca la excepción 'Not found column in block' en algunos casos especiales. [#102648](https://github.com/ClickHouse/ClickHouse/pull/102648) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigió una excepción del servidor en ClusterDiscovery cuando un clúster estático (definido en la configuración) se quedaba temporalmente sin nodos activos. [#102661](https://github.com/ClickHouse/ClickHouse/pull/102661) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige una inferencia incorrecta del tipo de dato Date en caso de desbordamiento después del ajuste de la zona horaria. Cierra [#102601](https://github.com/ClickHouse/ClickHouse/issues/102601). [#102674](https://github.com/ClickHouse/ClickHouse/pull/102674) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige el bloqueo indefinido de `SYSTEM WAIT VIEW` cuando se elimina la vista materializada actualizable mientras la espera está en curso. [#102681](https://github.com/ClickHouse/ClickHouse/pull/102681) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige CASE con una expresión Dynamic que devolvía ELSE en todas las filas. Cierra [#102511](https://github.com/ClickHouse/ClickHouse/issues/102511). [#102684](https://github.com/ClickHouse/ClickHouse/pull/102684) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la serialización del tipo Dynamic aplanado con tipos de datos codificados en formato binario. Cierra [#101911](https://github.com/ClickHouse/ClickHouse/issues/101911). [#102692](https://github.com/ClickHouse/ClickHouse/pull/102692) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un problema por el que format\_schema\_source='query' ignoraba silenciosamente los resultados de varias filas. Cierra [#101905](https://github.com/ClickHouse/ClickHouse/issues/101905). [#102698](https://github.com/ClickHouse/ClickHouse/pull/102698) ([Pavel Kruglov](https://github.com/Avogar)).
* Informar del código de salida real a través del client SSH en lugar de asignar todos los errores a `1`. Cierra [#101741](https://github.com/ClickHouse/ClickHouse/issues/101741). [#102700](https://github.com/ClickHouse/ClickHouse/pull/102700) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se corrige la pérdida de encabezados HTTP en los controladores de consultas dinámicas y predefinidas. Cierra [#101846](https://github.com/ClickHouse/ClickHouse/issues/101846). [#102706](https://github.com/ClickHouse/ClickHouse/pull/102706) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Aplicar la corrección por muestreo de Poisson a los perfiles de heap colapsados de jemalloc para ajustarlos a la salida de jeprof. Anteriormente, el formato colapsado subestimaba los tamaños reales de asignación al no tener en cuenta la probabilidad de muestreo. [#102759](https://github.com/ClickHouse/ClickHouse/pull/102759) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige el fallo provocado por un argumento `NULL` en la función `hasPhrase`. [#102802](https://github.com/ClickHouse/ClickHouse/pull/102802) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrige un fallo del servidor (SIGSEGV) al leer archivos Avro con esquemas recursivos que contienen referencias cíclicas a tipos simbólicos. Ahora, esos esquemas se detectan y se rechazan con un mensaje de error claro, en lugar de provocar un fallo. [#102853](https://github.com/ClickHouse/ClickHouse/pull/102853) ([Groene AI](https://github.com/groeneai)).
* Corrige un cierre inesperado del servidor (aserción `LOGICAL&#95;ERROR`) cuando una función sobre una columna `Variant` alcanza el límite de memoria u otra excepción no relacionada con la conversión de tipos durante la conversión del resultado en `FunctionVariantAdaptor`. Ahora la excepción se propaga correctamente en lugar de clasificarse por error como un error interno. [#102855](https://github.com/ClickHouse/ClickHouse/pull/102855) ([Groene AI](https://github.com/groeneai)).
* Se corrige un fallo del servidor en compilaciones de depuración/sanitizador cuando se produce `std::length_error` durante la inferencia de esquema (p. ej., por valores extremos de `input_format_msgpack_number_of_columns` o datos de entrada malformados). [#102859](https://github.com/ClickHouse/ClickHouse/pull/102859) ([Groene AI](https://github.com/groeneai)).
* Hacer que la representación de NULL en la serialización de columnas replicadas y dispersas respete la configuración (p. ej., format\_tsv\_null\_representation). [#102888](https://github.com/ClickHouse/ClickHouse/pull/102888) ([Hechem Selmi](https://github.com/m-selmi)).
* Retroportado en [#103499](https://github.com/ClickHouse/ClickHouse/issues/103499): Se corrigen las solicitudes a S3 que fallaban con `ios_base::clear: unspecified iostream_category error` en lugar de reintentarse, debido a que `BufferedStreamBuf::flushBuffer` de Poco no gestionaba escrituras cortas desde la capa de socket. [#102894](https://github.com/ClickHouse/ClickHouse/pull/102894) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige el problema por el que las optimizaciones de `minmax_count_projection` y de `COUNT(*)` trivial quedaban deshabilitadas de forma permanente tras una eliminación ligera, incluso después de que se hubieran fusionado todas las partes con una máscara de eliminación ligera. [#102900](https://github.com/ClickHouse/ClickHouse/pull/102900) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigieron cierres inesperados aleatorios en jemalloc debidos a LTO. [#102913](https://github.com/ClickHouse/ClickHouse/pull/102913) ([Azat Khuzhin](https://github.com/azat)).
* Optimiza las cadenas OR de las políticas de fila convirtiéndolas en IN en el nuevo analizador. [#102915](https://github.com/ClickHouse/ClickHouse/pull/102915) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la corrupción de metadatos de jemalloc debida a la liberación de la caché de páginas con una alineación incorrecta, que puede provocar bloqueos. [#102918](https://github.com/ClickHouse/ClickHouse/pull/102918) ([Azat Khuzhin](https://github.com/azat)).
* Los INSERT simples sin vistas materializadas ya no solicitan una cantidad excesiva de slots e hilos de ConcurrencyControl (`max_threads` en lugar de `max_insert_threads`), lo que evita la inanición de slots de CC y el crecimiento descontrolado del número de hilos en clústeres con alto throughput de INSERT. [#102961](https://github.com/ClickHouse/ClickHouse/pull/102961) ([Sema Checherinda](https://github.com/CheSema)).
* Reintroducir ArrowMemoryPool para permitir que se lance MEMORY\_LIMIT\_EXCEEDED y así evitar el OOM del kernel. [#102999](https://github.com/ClickHouse/ClickHouse/pull/102999) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el problema por el que se ignoraba `cast_string_to_date_time_mode` al hacer `CAST` a `Nullable(DateTime)`. Cierra [#101840](https://github.com/ClickHouse/ClickHouse/issues/101840). [#103035](https://github.com/ClickHouse/ClickHouse/pull/103035) ([Pavel Kruglov](https://github.com/Avogar)).
* Se añadió compatibilidad con las columnas `ALIAS` en la optimización de lectura directa del índice de texto. [#103037](https://github.com/ClickHouse/ClickHouse/pull/103037) ([Anton Popov](https://github.com/CurtizJ)).
* Retroportado en [#103454](https://github.com/ClickHouse/ClickHouse/issues/103454): se corrige un problema por el que `SELECT DISTINCT` devolvía silenciosamente resultados incompletos cuando una proyección de agregación coincidía con la consulta y algunas partes de la tabla no tenían datos de proyección (p. ej., la proyección se añadió a una tabla que ya contenía datos y no se ejecutó `MATERIALIZE PROJECTION`). Cierra [#102951](https://github.com/ClickHouse/ClickHouse/issues/102951). [#103052](https://github.com/ClickHouse/ClickHouse/pull/103052) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige los resultados erróneos devueltos por `WHERE x AND toNullable(N)` en tablas `MergeTree` cuando `N` es un entero de mayor tamaño que `UInt8` (p. ej., `256`, `65535`, `2147483648` o cualquier entero negativo). El filtro descartaba incorrectamente todas las filas porque `splitFilterNodeForAllowedInputs` usaba un cero `NULL` al convertir a booleano el remainder `Nullable` de un `AND` reducido, lo que hacía que la comparación se convirtiera en `NULL` bajo la lógica ternaria. [#103077](https://github.com/ClickHouse/ClickHouse/pull/103077) ([Groene AI](https://github.com/groeneai)).
* Se corrigió el tipo de argumento incorrecto que se mostraba en los mensajes de error de las funciones de búsqueda de cadenas (p. ej., `locate`, `position`) cuando los argumentos se pasan en orden invertido (`locate(needle, haystack)` con `function_locate_has_mysql_compatible_argument_order = 1`). [#103102](https://github.com/ClickHouse/ClickHouse/pull/103102) ([Alex Kuleshov](https://github.com/0xAX)).
* Se corrige que waitForPause quede bloqueado indefinidamente cuando se llama a disableFailPoint sin ningún hilo pausado en el failpoint. [#103119](https://github.com/ClickHouse/ClickHouse/pull/103119) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Limite las cadenas del paquete TCP Hello previo a la autenticación a 64 KB y agregue la configuración del servidor `handshake_timeout_milliseconds` para limitar el tiempo total del protocolo de enlace, evitando que los clientes no autenticados consuman memoria en exceso o mantengan hilos ocupados indefinidamente. [#103284](https://github.com/ClickHouse/ClickHouse/pull/103284) ([Sema Checherinda](https://github.com/CheSema)).
* Corregidas las estadísticas de ColumnIndex de Parquet cuando min\_value > max\_value en columnas String. [#103334](https://github.com/ClickHouse/ClickHouse/pull/103334) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)).
* Validación de datos Dynamic aplanados malformados en Native format. [#103392](https://github.com/ClickHouse/ClickHouse/pull/103392) ([Pavel Kruglov](https://github.com/Avogar)).
* Poblar la columna `_time` a partir de la función de tabla `url`. [#103437](https://github.com/ClickHouse/ClickHouse/pull/103437) ([Nikita Taranov](https://github.com/nickitat)).
* Corregida la detección de SVE cuando se utilizan instrucciones SVE no disponibles. [#103568](https://github.com/ClickHouse/ClickHouse/pull/103568) ([Raúl Marín](https://github.com/Algunenano)).

<div id="buildtestingpackaging-improvement">
  #### Mejora en compilación/pruebas/empaquetado
</div>

* La dependencia de Libstemmer (Snowball) ahora utiliza la versión más reciente, la v3.0.1. [#99256](https://github.com/ClickHouse/ClickHouse/pull/99256) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Se aleatorizó la configuración en clickhouse-test: `use_skip_indexes_for_top_k`, `use_top_k_dynamic_filtering`, `query_plan_max_limit_for_top_k_optimization`. [#91782](https://github.com/ClickHouse/ClickHouse/pull/91782) ([Nikita Fomichev](https://github.com/fm4v)).
* Implementar una prueba de estrés para las funciones, para comprobar la robustez de sus distintas propiedades. [#93543](https://github.com/ClickHouse/ClickHouse/pull/93543) ([Michael Kolupaev](https://github.com/al13n321)).
* Proporcionar una configuración propia de CMake para `llvm-project` en lugar de importar la de upstream. [#97453](https://github.com/ClickHouse/ClickHouse/pull/97453) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Aleatorizar más configuraciones `optimize_*` en la infraestructura de pruebas para mejorar la cobertura de las pasadas de optimización de consultas. [#97547](https://github.com/ClickHouse/ClickHouse/pull/97547) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usa la toolchain de Rust nightly-2026-03-22. [#98602](https://github.com/ClickHouse/ClickHouse/pull/98602) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se usa `wasmtime` v42.0.1. [#98603](https://github.com/ClickHouse/ClickHouse/pull/98603) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se usa `llvm-project` 22.1.1. [#98882](https://github.com/ClickHouse/ClickHouse/pull/98882) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se reemplazó `SANITIZE_COVERAGE` (callbacks personalizados del sanitizador, granularidad a nivel de símbolo) por la cobertura basada en código fuente de LLVM (`WITH_COVERAGE`, `-fprofile-instr-generate -fcoverage-mapping`) para el pipeline nocturno de cobertura por prueba. El server ahora lee su propio mapa de cobertura de las secciones ELF durante el arranque y recopila tuplas `(file, line_start, line_end)` por prueba mediante un nuevo comando `SYSTEM SET COVERAGE TEST 'name'`. La selección de pruebas en las comprobaciones de CI específicas usa consultas por rango de líneas sobre una nueva table CIDB `checks_coverage_lines` y ordena las pruebas candidatas según cuántas líneas modificadas del diff cubren. [#99513](https://github.com/ClickHouse/ClickHouse/pull/99513) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige el error de enlazado de llvm-libc en compilaciones con `-O0`. [#100023](https://github.com/ClickHouse/ClickHouse/pull/100023) ([Zheguang Zhao](https://github.com/zheguang)).
* Se corrigieron dos mensajes de error al arrancar el contenedor cuando la configuración no contenía las opciones `logger.log` y `logger.errorlog` (p. ej., cuando todos los mensajes de registro deben enviarse a STDOUT/STDERR). [#100239](https://github.com/ClickHouse/ClickHouse/pull/100239) ([Simon](https://github.com/simonhammes)).
* Se prefiere `ld64.lld` en lugar del `ld` de Apple (cctools-port ld64) para las compilaciones de macOS. Esto debería reducir significativamente los tiempos de enlace en Darwin, ya que el ld64 de cctools-port es muy lento con `-ffunction-sections` y `-dead_strip`. Se vuelve a `ld` si `ld64.lld` no está disponible. [#100275](https://github.com/ClickHouse/ClickHouse/pull/100275) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Pruebas para garantizar que los directorios no registren secretos (REST + Glue). [#100307](https://github.com/ClickHouse/ClickHouse/pull/100307) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Repetir las pruebas modificadas recientemente con distintas configuraciones aleatorias. [#100385](https://github.com/ClickHouse/ClickHouse/pull/100385) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Registrar las dependencias de archivos `#embed` en CMake y habilitar el modo de dependencias de ccache para que las recompilaciones sean correctas. [#100411](https://github.com/ClickHouse/ClickHouse/pull/100411) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadieron pruebas de corrección para consultas TPC-H. [#100580](https://github.com/ClickHouse/ClickHouse/pull/100580) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se usa `aws-sdk-cpp` 1.11.771. [#100582](https://github.com/ClickHouse/ClickHouse/pull/100582) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Permitir que los archivos XML de pruebas de rendimiento hagan referencia a archivos externos con consultas SQL y ajustes mediante el atributo `file`. [#100747](https://github.com/ClickHouse/ClickHouse/pull/100747) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se corrigió la compilación con `-march=x86-64-v4` añadiendo la inclusión faltante de `TargetSpecific.h` en `LowerUpperImpl.h`. [#100932](https://github.com/ClickHouse/ClickHouse/pull/100932) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la compilación en Gentoo al añadir --no-default-config a cxxflags. [#100973](https://github.com/ClickHouse/ClickHouse/pull/100973) ([Isak Ellmer](https://github.com/spinojara)).
* Se añadió `utils/auto-bisect/` — un marco de bisección basado en shell que descarga binarios precompilados de CI y ejecuta un script de prueba proporcionado por el usuario para encontrar el primer commit que introdujo una regresión, sin necesidad de una compilación local. [#100989](https://github.com/ClickHouse/ClickHouse/pull/100989) ([Nikita Fomichev](https://github.com/fm4v)).
* Se desactiva ThinLTO de forma predeterminada en CMake para que las compilaciones locales de los desarrolladores ya no lo activen implícitamente. Las compilaciones de release de CI no se ven afectadas, ya que pasan explícitamente `-DENABLE_THINLTO=1`. [#101041](https://github.com/ClickHouse/ClickHouse/pull/101041) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade el benchmark TPC-DS SF1 a las pruebas de rendimiento. [#101209](https://github.com/ClickHouse/ClickHouse/pull/101209) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se añadieron pruebas sin estado para las eliminaciones ligeras de MergeTree que cubren: el ciclo de vida de la marca `has_lightweight_delete`, la corrección de `COUNT(*)` con `optimize_trivial_count_query`, la integridad de las columnas `MATERIALIZED`/`DEFAULT`, la recuperación de la marca en `ReplicatedMergeTree`, `read_in_order` con filas eliminadas, múltiples ciclos de eliminación y merge, la ocultación de la columna `_row_exists`, la variedad de predicados y la aplicación de RBAC en `ALTER DELETE`. [#101792](https://github.com/ClickHouse/ClickHouse/pull/101792) ([Nikita Fomichev](https://github.com/fm4v)).
* Ahora se publican imágenes distroless de Docker con variantes ubuntu y alpine para las versiones etiquetadas. [#101941](https://github.com/ClickHouse/ClickHouse/pull/101941) ([Rahul Nair](https://github.com/motsc)).
* Los stack traces ahora muestran rutas relativas limpias (p. ej., `src/Common/Exception.cpp`) en lugar de rutas contaminadas con el directorio de compilación (p. ej., `./ci/tmp/fast_build/./src/Common/Exception.cpp`). [#102000](https://github.com/ClickHouse/ClickHouse/pull/102000) ([Raúl Marín](https://github.com/Algunenano)).
* Añade una comprobación de estilo de CI que rechace los archivos de más de 5 MB incluidos en commits del repositorio, con una lista blanca para los datos de prueba legítimos ya existentes. Elimina `zookeeper_log.parquet`, sin usar, de 14 MB. [#102080](https://github.com/ClickHouse/ClickHouse/pull/102080) ([Raúl Marín](https://github.com/Algunenano)).
* Elimina \~400 directivas `#include` sin usar de las cabeceras para reducir los tiempos de compilación. [#102585](https://github.com/ClickHouse/ClickHouse/pull/102585) ([Raúl Marín](https://github.com/Algunenano)).
* Se utiliza `wasmtime` v43.0.1. [#102603](https://github.com/ClickHouse/ClickHouse/pull/102603) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se utiliza `openssl` 3.5.6. [#102606](https://github.com/ClickHouse/ClickHouse/pull/102606) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Use `xz` 5.8.3. [#102607](https://github.com/ClickHouse/ClickHouse/pull/102607) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Actualización de la imagen base distroless de Docker de Debian 12 (glibc 2.36, OpenSSL 3.0) a Debian 13 (glibc 2.41, OpenSSL 3.5), lo que reduce la superficie de CVE a cero vulnerabilidades alcanzables. [#101678](https://github.com/ClickHouse/ClickHouse/pull/101678) ([Rahul Nair](https://github.com/motsc)).

<div id="263">
  ### Lanzamiento de ClickHouse 26.3 LTS, 2026-03-26. [Presentación](https://presentations.clickhouse.com/), [Vídeo](https://www.youtube.com/watch?v=_bY0ucNB1lQ)
</div>

<div id="backward-incompatible-change">
  #### Cambio incompatible con versiones anteriores
</div>

* Volver a una versión anterior tras actualizar puede provocar pérdida de datos. Las versiones de serialización de los tipos de datos ahora se propagan a los tipos de datos anidados. Por ejemplo, la versión de serialización de String `with_size_stream` antes se aplicaba solo a las columnas String de nivel superior y a los elementos de Tuple. Ahora se aplica a cualquier tipo String dentro de cualquier tipo anidado, como `Array`/`Map`/`Variant`/`JSON`/etc. Este comportamiento está controlado por la configuración de MergeTree `propagate_types_serialization_versions_to_nested_types`, que ahora está activada de forma predeterminada. Después de este cambio, las partes de datos recién creadas no pueden ser leídas por versiones anteriores, pero las partes antiguas pueden leerse en la versión nueva sin problemas. **La actualización es segura, pero volver a una versión anterior no lo es: si necesitas revertir después de actualizar a 26.3, ¡los datos escritos por 26.3 en columnas con tipos anidados no podrán leerse!** Consulta [#101429](https://github.com/ClickHouse/ClickHouse/issues/101429) para más detalles. [#94859](https://github.com/ClickHouse/ClickHouse/pull/94859) ([Pavel Kruglov](https://github.com/Avogar)).
* Se elimina el tipo de índice de omisión `hypothesis`. Era una función experimental poco conocida y de utilidad práctica limitada. Crear tablas con `INDEX ... TYPE hypothesis` ahora producirá un error. [#96874](https://github.com/ClickHouse/ClickHouse/pull/96874) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se elimina la función experimental `detectProgrammingLanguage`. [#99567](https://github.com/ClickHouse/ClickHouse/pull/99567) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la precedencia del operador `NOT` para ajustarla al estándar SQL: `NOT` ahora tiene menor precedencia que `IS NULL`, `BETWEEN`, `LIKE` y los operadores aritméticos. Por ejemplo, `NOT (x) IS NULL` ahora se interpreta como `NOT (x IS NULL)` en lugar de `(NOT x) IS NULL`. Esto puede cambiar el resultado de las consultas que dependían del comportamiento anterior (no estándar). [#97680](https://github.com/ClickHouse/ClickHouse/pull/97680) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige los metadatos de las proyecciones normales para que las proyecciones con claves de ordenación de varias columnas se reconozcan adecuadamente. Se basa en [#90429](https://github.com/ClickHouse/ClickHouse/issues/90429). [#91352](https://github.com/ClickHouse/ClickHouse/pull/91352) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió un problema por el que los archivos de índices de omisión no respetaban la configuración replace\_long\_file\_name\_to\_hash, lo que provocaba errores de "Nombre de archivo demasiado largo" y fallos al leer índices con nombres largos. Ahora, los nombres de archivo de los índices de omisión se convierten en hash cuando superan max\_file\_name\_length, de forma similar a los archivos de columnas. Esto es retrocompatible (los servidores nuevos leen las partes antiguas), pero una degradación de versión (o el uso de servidores antiguos durante una actualización gradual) puede hacer que se ignoren los índices con nombres largos. [#97128](https://github.com/ClickHouse/ClickHouse/pull/97128) ([Raúl Marín](https://github.com/Algunenano)).
* Se activa async insert de forma predeterminada. Ahora ClickHouse agrupará por lotes todas las inserciones pequeñas de forma predeterminada. Este ajuste se define en compatibility. Si establece `compatibility=<version less than 26.2>`, el valor predeterminado será el anterior, `false`. Puede activar o desactivar async inserts en varios niveles: en la configuración de los perfiles de usuario, para la sesión, para la consulta o para la tabla MergeTree. [#97590](https://github.com/ClickHouse/ClickHouse/pull/97590) ([Sema Checherinda](https://github.com/CheSema)).
* Se cambió el valor predeterminado de `mysql_datatypes_support_level` de vacío a `decimal,datetime64,date2Date32`, lo que permite la asignación correcta de `DATE` de MySQL a `Date32`, de `DECIMAL`/`NUMERIC` a `Decimal` y de `DATETIME`/`TIMESTAMP` con precisión a `DateTime64` de forma predeterminada. Anteriormente, las columnas `DATE` de MySQL se asignaban a `Date`, que no puede representar fechas anteriores a 1970-01-01, lo que provocaba corrupción de datos. [#97716](https://github.com/ClickHouse/ClickHouse/pull/97716) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Aceptar un array de nombres de las partes en lugar de una expresión regular para `mergeTreeAnalyzeIndexes{,UUID}`, ya que las expresiones regulares son lentas (*Funcionalidad experimental*). [#98474](https://github.com/ClickHouse/ClickHouse/pull/98474) ([Azat Khuzhin](https://github.com/azat)).
* Cambiar el valor predeterminado de `stderr_reaction` de `throw` a `log_last` para las UDF ejecutables. Las UDFs que escriben advertencias en stderr ya no provocan errores cuando el código de salida es 0. Las excepciones por código de salida ahora incluyen el contenido de stderr. [#99232](https://github.com/ClickHouse/ClickHouse/pull/99232) ([Xu Jia](https://github.com/XuJia0210)).

<div id="new-feature">
  #### Nueva funcionalidad
</div>

* Se añadió serialización en buckets para columnas Map en MergeTree (`map_serialization_version = 'with_buckets'`). Las claves se dividen en buckets basados en hash, de modo que al leer una sola clave (`m['key']`) solo se lea un bucket en lugar de toda la columna, lo que proporciona una aceleración de 2 a 49 veces en búsquedas de una sola clave, según el tamaño del mapa. El número de buckets y la estrategia de asignación a buckets pueden controlarse mediante nuevas configuraciones de MergeTree: `map_serialization_version`, `max_buckets_in_map`, `map_buckets_strategy`, `map_buckets_coefficient` y `map_buckets_min_avg_size`. [#99200](https://github.com/ClickHouse/ClickHouse/pull/99200) ([Pavel Kruglov](https://github.com/Avogar)).
* Compatibilidad con CTE materializadas. Permite evaluar las CTE solo una vez durante la ejecución de la consulta y almacenar sus resultados en tablas temporales. Cierra [#53449](https://github.com/ClickHouse/ClickHouse/issues/53449). [#94849](https://github.com/ClickHouse/ClickHouse/pull/94849) ([Dmitry Novik](https://github.com/novikd)).
* Permite usar determinadas funciones estándar de SQL sin paréntesis por compatibilidad, como `NOW`. Cierra [#52102](https://github.com/ClickHouse/ClickHouse/issues/52102). [#95949](https://github.com/ClickHouse/ClickHouse/pull/95949) ([Aly Kafoury](https://github.com/AlyHKafoury)).
* Ahora puede usar la función de clave de ordenación natural `naturalSortKey(s)`. [#90322](https://github.com/ClickHouse/ClickHouse/pull/90322) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* Ahora puede usar JSON/Object nativo como entrada para las funciones JSONExtract. Cierra [#88370](https://github.com/ClickHouse/ClickHouse/issues/88370). [#96711](https://github.com/ClickHouse/ClickHouse/pull/96711) ([Fisnik Kastrati](https://github.com/fkastrati)).
* Si un parámetro de consulta es de tipo `Nullable` y no se especifica, asumiremos que su valor es `NULL`. [#93869](https://github.com/ClickHouse/ClickHouse/pull/93869) ([Vikash Kumar](https://github.com/vikashkumar2020)).
* Se admite ZooKeeper auxiliar para la base de datos `Replicated`. [#95590](https://github.com/ClickHouse/ClickHouse/pull/95590) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Se añadió compatibilidad con la función `has` para el tipo JSON a fin de comprobar la existencia de una ruta, de forma similar a Map. [#96927](https://github.com/ClickHouse/ClickHouse/pull/96927) ([DQ](https://github.com/il9ue)).
* Se añadió la función de tabla `mergeTreeTextIndex(database, table, index)`, que permite leer datos directamente desde un índice de texto. Esta función puede usarse para tareas de introspección o para realizar agregaciones sobre los datos del índice de texto. [#97003](https://github.com/ClickHouse/ClickHouse/pull/97003) ([Anton Popov](https://github.com/CurtizJ)).
* Añade la configuración de MergeTree `table_readonly` para marcar las tablas como de solo lectura y evitar inserciones y modificaciones. [#97652](https://github.com/ClickHouse/ClickHouse/pull/97652) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade la nueva configuración `use_partition_pruning` y el alias `use_partition_key`. Establécela en `false` para deshabilitar la poda de particiones en función de la clave de partición. [#97888](https://github.com/ClickHouse/ClickHouse/pull/97888) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Implementa `ALTER TABLE ... EXECUTE expire_snapshots('<timestamp>')` en tablas Iceberg. [#97904](https://github.com/ClickHouse/ClickHouse/pull/97904) ([murphy-4o](https://github.com/murphy-4o)). [#99130](https://github.com/ClickHouse/ClickHouse/pull/99130)
* Permite que cada entrada `type=http` de `<protocols>` especifique una clave `<handlers>` personalizada que apunte a una sección de configuración `<http_handlers_*>` independiente, lo que permite definir distintas reglas de enrutamiento HTTP para cada puerto. [#98414](https://github.com/ClickHouse/ClickHouse/pull/98414) ([Amos Bird](https://github.com/amosbird)).
* Se agrega la opción `pretty=1` a `EXPLAIN` para obtener una salida con sangría en forma de árbol, y `compact=1` para contraer los pasos de `Expression`, lo que hace que los planes de consulta sean más legibles. [#98500](https://github.com/ClickHouse/ClickHouse/pull/98500) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Se añade la configuración del servidor `restore_access_entities_with_current_grants`. Cuando está habilitada, los usuarios/roles restaurados desde copias de seguridad ven sus grants limitados a lo que el usuario que realiza la restauración puede conceder (con la misma semántica que `GRANT CURRENT GRANTS`), en lugar de fallar con `ACCESS_DENIED`. [#98795](https://github.com/ClickHouse/ClickHouse/pull/98795) ([pufit](https://github.com/pufit)).
* Se añaden las funciones `caseFoldUTF8` y `removeDiacriticsUTF8` para el plegado de mayúsculas y minúsculas de Unicode y la eliminación de marcas diacríticas. [#98973](https://github.com/ClickHouse/ClickHouse/pull/98973) ([George Larionov](https://github.com/george-larionov)).
* Se agregó la función de cadena `normalizeUTF8NFKCCasefold` para la normalización Unicode NFKC\_Casefold, que combina la normalización NFKC con el plegado de mayúsculas y minúsculas. [#99276](https://github.com/ClickHouse/ClickHouse/pull/99276) ([George Larionov](https://github.com/george-larionov)).
* Se añade el `tokenizer` `asciiCJK` para índices de texto completo y la función `tokens`. Segmenta el texto según las reglas de límites de palabras de Unicode: las palabras ASCII se forman con caracteres conectores (guion bajo, dos puntos, punto y comilla simple), mientras que los caracteres Unicode no ASCII se convierten en tokens de un solo carácter. [#99357](https://github.com/ClickHouse/ClickHouse/pull/99357) ([Amos Bird](https://github.com/amosbird)).
* Se agregaron las configuraciones `max_skip_unavailable_shards_num` y `max_skip_unavailable_shards_ratio` para limitar cuántos segmentos pueden omitirse sin avisar cuando `skip_unavailable_shards` está habilitado. Si la cantidad o la proporción de segmentos no disponibles supera el umbral configurado, se genera una excepción en lugar de devolver resultados incompletos sin avisar. [#99369](https://github.com/ClickHouse/ClickHouse/pull/99369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora los usuarios pueden usar la palabra clave `SOME` en expresiones de subconsulta. Se comporta de forma idéntica a `ANY`. [#99842](https://github.com/ClickHouse/ClickHouse/pull/99842) ([Artem Kytkin](https://github.com/Vinceent)).
* Se añade la configuración `output_format_trim_fixed_string` para eliminar los bytes nulos al final de los valores `FixedString` en los formatos de salida de texto. [#97558](https://github.com/ClickHouse/ClickHouse/pull/97558) ([NeedmeFordev](https://github.com/spider-yamet)).
* Se admiten expresiones JOIN de tablas entre paréntesis en la cláusula FROM, p. ej., `SELECT * FROM (t1 CROSS JOIN t2)`. [#97650](https://github.com/ClickHouse/ClickHouse/pull/97650) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementar la función `toDaysInMonth`: devuelve el número de días del mes correspondiente a la fecha especificada. [#99227](https://github.com/ClickHouse/ClickHouse/pull/99227) ([Vitaly Baranov](https://github.com/vitlibar)).

<div id="experimental-feature">
  #### Funcionalidad experimental
</div>

* Se añade compatibilidad experimental con funciones definidas por el usuario (UDFs) basadas en WebAssembly, lo que permite implementar lógica de funciones personalizadas en WebAssembly y ejecutarla dentro de ClickHouse. Agradecimientos especiales a [Alexey Smirnov](https://github.com/lioshik) por aportar compatibilidad con el backend de Wasmtime. [#88747](https://github.com/ClickHouse/ClickHouse/pull/88747) ([Vladimir Cherkasov](https://github.com/vdimir)). Mejoras incrementales en la compatibilidad con UDF de WASM. [#99373](https://github.com/ClickHouse/ClickHouse/pull/99373) ([Vasily Chekalkin](https://github.com/bacek)).
* Se añade compatibilidad con dialectos SQL externos mediante la biblioteca `polyglot`. [#99496](https://github.com/ClickHouse/ClickHouse/pull/99496) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade el códec de compresión de punto flotante `ALP` (sin fallback ALP\_rd para valores `double` no compresibles). [#91362](https://github.com/ClickHouse/ClickHouse/pull/91362) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* Se añaden indicaciones de tipo diferidas experimentales para columnas `JSON`. Cuando se habilita mediante `allow_experimental_json_lazy_type_hints`, la instrucción `ALTER TABLE ... MODIFY COLUMN json JSON(path TypeName)` que solo añade o modifica indicaciones de tipo se completa de forma instantánea como una operación solo de metadatos, sin reescribir datos históricos. Las indicaciones de tipo se aplican en tiempo de consulta a las partes antiguas y se materializan durante las operaciones INSERT y las fusiones en segundo plano. [#97412](https://github.com/ClickHouse/ClickHouse/pull/97412) ([tanner-bruce](https://github.com/tanner-bruce)).
* Se habilitan lecturas paralelas desde el motor de tabla YTsaurus. [#97343](https://github.com/ClickHouse/ClickHouse/pull/97343) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).

<div id="performance-improvement">
  #### Mejora del rendimiento
</div>

* Mejora el rendimiento de los lagos de datos. En versiones anteriores, la lectura desde el almacenamiento de objetos no ajustaba el pipeline al número de hilos de procesamiento. Esto supone mejoras de varios órdenes de magnitud (\~40x) en máquinas multinúcleo. [#99548](https://github.com/ClickHouse/ClickHouse/pull/99548) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora, la relación entre `enable_parallel_replicas` y `automatic_parallel_replicas_mode` es la siguiente. Una consulta puede usar réplicas paralelas solo si `enable_parallel_replicas > 0`. Además, si `automatic_parallel_replicas_mode=1`, la decisión de usar réplicas paralelas se toma durante la planificación en función de las estadísticas recopiladas previamente. Si `automatic_parallel_replicas_mode=0`, las réplicas paralelas se usarán en todas las consultas compatibles, independientemente de las estadísticas. Una excepción destacada es `insert-select` distribuido con réplicas paralelas: en este caso, las consultas siempre se ejecutarán como si `automatic_parallel_replicas_mode=0`. [#97517](https://github.com/ClickHouse/ClickHouse/pull/97517) ([Nikita Taranov](https://github.com/nickitat)).
* Permite la poda de particiones cuando el predicado contiene cualquier operador de comparación (`=`, `<`, `>`, `!=`) y la clave de partición está incluida en una cadena de funciones deterministas (p. ej., `PARTITION BY x` y predicados como `cityHash64(x) % 5 > 2`, `toYYYYMM(x) < 2026`, `toYYYYMM(x) = 2026` o `toYYYYMM(x) != 2026` usarán la clave de partición para la poda). Cierra [#28800](https://github.com/ClickHouse/ClickHouse/issues/28800). [#98432](https://github.com/ClickHouse/ClickHouse/pull/98432) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Permite la optimización de lectura en orden y la poda de la primary key cuando el tipo de destino de `CAST` es `Nullable` y la conversión es monótona; por ejemplo, con `PRIMARY KEY x`, ClickHouse puede usar la optimización de lectura en orden para `ORDER BY x::Nullable(UInt64)` y aplicar la poda de la primary key a predicados como `WHERE x::Nullable(UInt64) > 500000`. [#98482](https://github.com/ClickHouse/ClickHouse/pull/98482) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se habilitan la poda de índices y el pushdown de filtros cuando una columna de tipo entero se compara con un literal de coma flotante; por ejemplo, predicados como `WHERE x < 10.5` ahora pueden usar la clave primaria para la poda, y filtros como `prime < 1e9` o `number < 1e5` ahora hacen pushdown en las funciones de tabla `primes()` y `numbers()` en lugar de provocar una ejecución sin límite. Cierra [#85167](https://github.com/ClickHouse/ClickHouse/issues/85167). [#98516](https://github.com/ClickHouse/ClickHouse/pull/98516) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se añadió una nueva caché SLRU para los metadatos de Parquet a fin de mejorar el rendimiento de lectura, al eliminar la necesidad de volver a descargar archivos solo para leer esos metadatos. [#98140](https://github.com/ClickHouse/ClickHouse/pull/98140) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Se admite el intercambio de lados en los joins ANTI, SEMI y FULL según las estadísticas del optimizador. [#97498](https://github.com/ClickHouse/ClickHouse/pull/97498) ([Hechem Selmi](https://github.com/m-selmi)).
* Optimiza el descarte de gránulos para `pointInPolygon` en polígonos grandes y corrige que el análisis de índices de `pointInPolygon` arroje excepciones durante la poda de la clave primaria. [#91633](https://github.com/ClickHouse/ClickHouse/pull/91633) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Mejora del rendimiento de la función `levenshteinDistance`. [#94543](https://github.com/ClickHouse/ClickHouse/pull/94543) ([Joanna Hulboj](https://github.com/jh0x)).
* Optimiza las conversiones por lotes de tipo Decimal al evitar llamadas a funciones para cada elemento. [#95923](https://github.com/ClickHouse/ClickHouse/pull/95923) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Las tablas Iceberg ahora admiten la precarga asíncrona de metadatos mediante la configuración de tabla `iceberg_metadata_async_prefetch_period_ms`, que precarga periódicamente la caché de metadatos. Además, la configuración de consulta `iceberg_metadata_staleness_ms` permite que las consultas SELECT usen metadatos en caché si son más recientes que el umbral de obsolescencia especificado, lo que elimina las llamadas al catálogo Iceberg durante el procesamiento de solicitudes. [#96191](https://github.com/ClickHouse/ClickHouse/pull/96191) ([Arsen Muk](https://github.com/arsenmuk)).
* El modo ordered de `S3Queue` usa S3 ListObjectsV2 StartAfter para evitar volver a listar el historial completo del prefijo, lo que reduce las llamadas a ListObjects. [#96370](https://github.com/ClickHouse/ClickHouse/pull/96370) ([Venkata  Vineel ](https://github.com/vyalamar)).
* Menor uso de memoria para la deduplicación de inserciones. En general, el bloque original es necesario para la deduplicación, pero en los insert síncronos se pudo omitir y ahorrar memoria por completo. [#96661](https://github.com/ClickHouse/ClickHouse/pull/96661) ([Sema Checherinda](https://github.com/CheSema)).
* Se usa un valor específico de la arquitectura para el tamaño de línea de caché en lugar de un valor fijo de 64. [#97357](https://github.com/ClickHouse/ClickHouse/pull/97357) ([Nikita Taranov](https://github.com/nickitat)).
* Se optimizó ligeramente la lectura del diccionario del índice de texto, lo que mejora el rendimiento general del análisis de índices de texto. [#97519](https://github.com/ClickHouse/ClickHouse/pull/97519) ([Anton Popov](https://github.com/CurtizJ)).
* Acelera la descompresión de bloques de 16 bytes con `LZ4` en ARM. [#97774](https://github.com/ClickHouse/ClickHouse/pull/97774) ([Raúl Marín](https://github.com/Algunenano)).
* Se ha refactorizado la tokenización con una nueva interfaz de alto rendimiento, sustituyendo la antigua API de tipo iterador para admitir SIMD y tokenizadores con estado. Parte de [#90268](https://github.com/ClickHouse/ClickHouse/issues/90268). [#97871](https://github.com/ClickHouse/ClickHouse/pull/97871) ([Amos Bird](https://github.com/amosbird)).
* Se mejoró el rendimiento del análisis de índices de texto para consultas con condiciones combinadas que involucran columnas indexadas y no indexadas. Anteriormente, la optimización de salida temprana durante el análisis de índices se deshabilitaba incorrectamente en estos casos. [#98096](https://github.com/ClickHouse/ClickHouse/pull/98096) ([Anton Popov](https://github.com/CurtizJ)).
* Mejora el rendimiento de las consultas que contienen expresiones constantes que generan arrays o maps muy largos. [#98287](https://github.com/ClickHouse/ClickHouse/pull/98287) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el análisis de las condiciones sobre claves primarias `DateTime64` al compararlas con constantes enteras, lo que antes impedía la poda de gránulos. [#98410](https://github.com/ClickHouse/ClickHouse/pull/98410) ([Amos Bird](https://github.com/amosbird)).
* La configuración `optimize_syntax_fuse_functions` está activada de forma predeterminada. [#98424](https://github.com/ClickHouse/ClickHouse/pull/98424) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimiza la función de agregación `avgWeighted` mediante acumuladores locales en lugar del almacenamiento y reenvío fila por fila a través del estado de agregación, mejorando el rendimiento hasta en un 27 % para entradas Nullable. [#98793](https://github.com/ClickHouse/ClickHouse/pull/98793) ([Antonio Andelic](https://github.com/antonio2368)).
* Mejora el rendimiento y reduce el uso de memoria de las funciones de ventana paralelas en determinados escenarios, así como de las cargas de trabajo de `arrayFold` con arrays grandes. Esto también puede reducir la presión de fallos de página y mejorar la estabilidad con límites de memoria ajustados en las consultas afectadas. [#98892](https://github.com/ClickHouse/ClickHouse/pull/98892) ([filimonov](https://github.com/filimonov)).
* Mejora el rendimiento de las fusiones ordenadas. [#99013](https://github.com/ClickHouse/ClickHouse/pull/99013) ([Artem Zuikov](https://github.com/4ertus2)).
* Se optimizan `INTERSECT ALL` y `EXCEPT ALL`. [#99097](https://github.com/ClickHouse/ClickHouse/pull/99097) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se añadió soporte para la optimización `read_in_order_use_virtual_row` en lecturas en orden inverso. [#99198](https://github.com/ClickHouse/ClickHouse/pull/99198) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Reducir la contención de la caché en los `RIGHT` y `FULL` JOINs comprobando si JoinUsedFlags está definido antes de escribir. [#99274](https://github.com/ClickHouse/ClickHouse/pull/99274) ([Hechem Selmi](https://github.com/m-selmi)).
* Optimiza `PrefetchingHelper::calcPrefetchLookAhead` sustituyendo la aritmética de coma flotante por aritmética entera pura, mejorando la disposición de la caché de instrucciones y reduciendo la sobrecarga de ciclos en los bucles de agregación. [#99327](https://github.com/ClickHouse/ClickHouse/pull/99327) ([Riyane El Qoqui](https://github.com/riyaneel)).
* Reducir el consumo de memoria de Keeper sustituyendo `absl::flat_hash_set` por `CompactChildrenSet` para almacenar los hijos de los nodos. El nuevo contenedor almacena de 0 a 1 hijos directamente, sin asignación en el heap, lo que cubre la mayoría de los nodos de Keeper. Esto reduce el tamaño de `KeeperMemNode` de 144 a 128 bytes. [#99860](https://github.com/ClickHouse/ClickHouse/pull/99860) ([Antonio Andelic](https://github.com/antonio2368)).
* Las proyecciones de agregación ahora funcionan correctamente en las vistas. Corrige [#32753](https://github.com/ClickHouse/ClickHouse/issues/32753). [#88798](https://github.com/ClickHouse/ClickHouse/pull/88798) ([Amos Bird](https://github.com/amosbird)).
* Se añadió compatibilidad con la optimización de conversión de OUTER a INNER join con `join_use_nulls`. Cierra [#90978](https://github.com/ClickHouse/ClickHouse/issues/90978). [#95968](https://github.com/ClickHouse/ClickHouse/pull/95968) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Mejora la lectura de subcolumnas mediante el cálculo correcto de los tamaños antes de leerlas. Reduce el uso de memoria y acelera la lectura de subcolumnas. [#96251](https://github.com/ClickHouse/ClickHouse/pull/96251) ([Pavel Kruglov](https://github.com/Avogar)).
* Hacer que las cachés de mark, de datos sin comprimir y de páginas utilicen una arena de jemalloc independiente para evitar la fragmentación de memoria cuando las asignaciones de corta duración, es decir, para consultas y solicitudes, se mezclan con asignaciones de mayor duración para las cachés. [#96812](https://github.com/ClickHouse/ClickHouse/pull/96812) ([Seva Potapov](https://github.com/seva-potapov)). [#98812](https://github.com/ClickHouse/ClickHouse/pull/98812). [#99021](https://github.com/ClickHouse/ClickHouse/pull/99021)
* Las tablas con reglas `DELETE TTL` ahora pueden utilizar el algoritmo de fusión vertical. [#97332](https://github.com/ClickHouse/ClickHouse/pull/97332) ([murphy-4o](https://github.com/murphy-4o)).
* Aplicar índices de omisión de datos durante el análisis distribuido de índices. [#97767](https://github.com/ClickHouse/ClickHouse/pull/97767) ([Azat Khuzhin](https://github.com/azat)).
* Las marcas de los índices secundarios ahora se precargan cuando la configuración `prewarm_mark_cache` está habilitada (se cargan en la caché de marcas de índice durante la obtención de partes de datos y el arranque de la tabla). [#97772](https://github.com/ClickHouse/ClickHouse/pull/97772) ([Anton Popov](https://github.com/CurtizJ)).
* Menor bloqueo durante el control de acceso. [#97894](https://github.com/ClickHouse/ClickHouse/pull/97894) ([Nikita Taranov](https://github.com/nickitat)).
* Cuando se habilita apply\_row\_policy\_after\_final o apply\_prewhere\_after\_final, las condiciones compuestas con AND en las políticas de fila y en PREWHERE ahora se descomponen para extraer átomos de la clave de ordenación y utilizarlos en el análisis del índice de clave primaria. Anteriormente, si un filtro diferido contenía una combinación de predicados de la clave de ordenación y de predicados que no pertenecían a ella (p. ej., x > 1 AND y != 'foo'), toda la expresión quedaba excluida del análisis del índice. Ahora, los átomos de la clave de ordenación (como x > 1) se extraen y se usan para la poda de gránulos, incluso dentro de expresiones AND anidadas. [#98513](https://github.com/ClickHouse/ClickHouse/pull/98513) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Reduce la contención por bloqueos en MergeTreeBackgroundExecutor al hacer que los recursos de la tarea se liberen sin adquirir el bloqueo. Cierra [#93620](https://github.com/ClickHouse/ClickHouse/issues/93620). [#98604](https://github.com/ClickHouse/ClickHouse/pull/98604) ([Dmitry Novik](https://github.com/novikd)).
* Corrige el uso excesivo de memoria (\~514 MiB) durante la autodetección de formato al leer datos que no son Arrow (p. ej., JSON desde `url` o `file` sin un formato explícito), debido a que el lector ArrowStream interpretaba erróneamente los primeros bytes como una longitud de metadatos enorme. [#98893](https://github.com/ClickHouse/ClickHouse/pull/98893) ([Konstantin Bogdanov](https://github.com/thevar1able)).

<div id="improvement">
  #### Mejora
</div>

* Permite analizar archivos GeoParquet que contienen distintos tipos Geo en la misma columna. [#97851](https://github.com/ClickHouse/ClickHouse/pull/97851) ([Mark Needham](https://github.com/mneedham)).
* Se introduce la función SQL `tokensForLikePattern`, que tokeniza patrones LIKE respetando la semántica de los comodines: `%` y `_` se consideran comodines, los comodines escapados (`\%`, `\_`) se consideran literales y se descartan los tokens adyacentes a comodines no escapados. [#97872](https://github.com/ClickHouse/ClickHouse/pull/97872) ([Amos Bird](https://github.com/amosbird)).
* Se añade un marcador de posición `{_schema_hash}` para el motor de tabla S3, que inserta un hash de las definiciones de las columnas de la tabla en la ruta de S3. [#98265](https://github.com/ClickHouse/ClickHouse/pull/98265) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* `SymbolIndex`, `addressToSymbol`, `system.symbols` y `buildId` ahora funcionan en macOS mediante el análisis de las tablas de símbolos Mach-O. [#99014](https://github.com/ClickHouse/ClickHouse/pull/99014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La tabla `system.stack_trace` ahora funciona en macOS, lo que permite inspeccionar las trazas de pila de todos los hilos del servidor. [#98982](https://github.com/ClickHouse/ClickHouse/pull/98982) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade la opción de configuración LDAP por servidor `<follow_referrals>` (valor predeterminado: `false`) para controlar si el client LDAP sigue las referencias. Deshabilitar el seguimiento de referencias evita timeouts y bloqueos al buscar desde un base DN raíz de dominio de Active Directory. Los mensajes de registro relacionados con las referencias se han movido de `warn` a `trace`. [#96765](https://github.com/ClickHouse/ClickHouse/pull/96765) ([paf91](https://github.com/paf91)).
* Ahora registramos en una nueva columna llamada `skip_indices` de la tabla `query&#95;log` todos los índices de omisión de datos utilizados durante la ejecución de la consulta. Corrige [#78676](https://github.com/ClickHouse/ClickHouse/issues/78676). Autor original @pheepa. [#87862](https://github.com/ClickHouse/ClickHouse/pull/87862) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Las sugerencias de ACCESS\_DENIED ya no revelan los nombres de las columnas, a menos que el usuario pueda mostrar todas las columnas requeridas; los nombres de la base de datos y de la tabla siguen siendo visibles en la sugerencia. [#91067](https://github.com/ClickHouse/ClickHouse/pull/91067) ([filimonov](https://github.com/filimonov)).
* Añade un hilo dedicado a la limpieza para MergeTree, a fin de evitar retrasos en la limpieza cuando la carga de merge es elevada. Esto resuelve [#86181](https://github.com/ClickHouse/ClickHouse/issues/86181). [#91574](https://github.com/ClickHouse/ClickHouse/pull/91574) ([Amos Bird](https://github.com/amosbird)).
* Recargar la configuración del clúster si cambian las IP asociadas al hostname del servidor local, en lugar de las IP de cualquier host. Corrige [#81215](https://github.com/ClickHouse/ClickHouse/issues/81215), [#70156](https://github.com/ClickHouse/ClickHouse/issues/70156) y [#65268](https://github.com/ClickHouse/ClickHouse/issues/65268). [#93726](https://github.com/ClickHouse/ClickHouse/pull/93726) ([Zhigao Hong](https://github.com/zghong)).
* Permite que optimize\_aggregators\_of\_group\_by\_keys optimice correctamente las funciones de agregación en las consultas GROUPING SETS. [#93935](https://github.com/ClickHouse/ClickHouse/pull/93935) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Keeper-bench: informar de errores en las métricas y generar un archivo JSON de métricas para el modo --input-request-log. [#95748](https://github.com/ClickHouse/ClickHouse/pull/95748) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* Se añade la nueva cláusula ROLE a CREATE USER. [#97074](https://github.com/ClickHouse/ClickHouse/pull/97074) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ahora puede establecer la configuración de internal\_replication para un clúster creado por la base de datos Replicated. [#97228](https://github.com/ClickHouse/ClickHouse/pull/97228) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Nueva configuración: `allow_nullable_tuple_in_extracted_subcolumns` controla si las subcolumnas `Tuple(...)` extraídas de `Tuple`, `Variant`, `Dynamic` y `JSON` se devuelven como `Nullable(Tuple(...))` (`NULL` para las filas que faltan) o como `Tuple(...)` (valores de tupla predeterminados para las filas que faltan). Está deshabilitada de forma predeterminada y solo puede cambiarse reiniciando el servidor. [#97299](https://github.com/ClickHouse/ClickHouse/pull/97299) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Agregar información sobre los filtros diferidos como un elemento independiente en la salida de EXPLAIN (al usar Row Policies/PREWHERE con FINAL). Relacionado: [#91065](https://github.com/ClickHouse/ClickHouse/pull/91065). [#97374](https://github.com/ClickHouse/ClickHouse/pull/97374) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Habilita `type_json_allow_duplicated_key_with_literal_and_nested_object` de forma predeterminada. Permite evitar errores por claves duplicadas durante el análisis de JSON como `{"a" : 42, "a" : {"b" : 42}}`, que ClickHouse puede generar a partir de los datos JSON originales `{"a" : 42, "a.b" : 42}`. [#97423](https://github.com/ClickHouse/ClickHouse/pull/97423) ([Pavel Kruglov](https://github.com/Avogar)).
* Mejora de Keeper: `find_super_nodes` es un comando muy útil para depurar el crecimiento inesperado del número de nodos en Keeper. Desafortunadamente, si hay varios supernodos, es casi imposible encontrar más de uno, porque el comando se queda bloqueado indefinidamente al recorrer los hijos del primer supernodo que encuentra. Este PR impide recorrer los hijos de los supernodos. [#97819](https://github.com/ClickHouse/ClickHouse/pull/97819) ([pufit](https://github.com/pufit)).
* Compatibilidad inicial con el autocompletado para `clickhouse-keeper-client`. [#97828](https://github.com/ClickHouse/ClickHouse/pull/97828) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Vaciar los búferes de logging asíncrono en caso de cierre inesperado. [#97836](https://github.com/ClickHouse/ClickHouse/pull/97836) ([Azat Khuzhin](https://github.com/azat)).
* Se habilita de forma predeterminada la función de suplantación de identidad (consulta [EXECUTE AS target\_user](/es/reference/statements/execute_as)). [#97870](https://github.com/ClickHouse/ClickHouse/pull/97870) ([Vitaly Baranov](https://github.com/vitlibar)).
* Mejora en la cancelación de consultas con el motor de tabla SQLite mediante KILL QUERY y la cancelación de consultas (Ctrl+C) en clickhouse-client. [#97944](https://github.com/ClickHouse/ClickHouse/pull/97944) ([Roman Vasin](https://github.com/rvasin)).
* Se añadió la configuración del servidor `jemalloc_profiler_sampling_rate` para controlar `lg_prof_sample` de jemalloc y exponerla como la métrica asíncrona `jemalloc.prof.lg_sample`. [#97945](https://github.com/ClickHouse/ClickHouse/pull/97945) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añade compatibilidad con pesos en la implementación de la cola acotada concurrente. [#97962](https://github.com/ClickHouse/ClickHouse/pull/97962) ([Daniil Ivanik](https://github.com/divanik)).
* Se añade `sslmode` a las claves permitidas para los orígenes de diccionario de PostgreSQL. Anteriormente, `sslmode` no figuraba en la lista de claves permitidas `dictionary&#95;allowed&#95;keys` de `PostgreSQLDictionarySource.cpp`, lo que imposibilitaba configurar el modo SSL para las conexiones de diccionario de PostgreSQL. Esto impedía que los diccionarios se conectaran a servidores PostgreSQL que requieren SSL (por ejemplo, AWS RDS, que exige SSL de forma predeterminada), ya que la conexión fallaba durante la negociación TLS y el servidor rechazaba la alternativa no cifrada. [#98014](https://github.com/ClickHouse/ClickHouse/pull/98014) ([mcalfin](https://github.com/mcalfin)).
* Mostrar un error claro de "archivo no encontrado" al pasar una ruta de archivo inexistente a `clickhouse` o `clickhouse-local`, en lugar de un mensaje genérico confuso. [#98048](https://github.com/ClickHouse/ClickHouse/pull/98048) ([Raúl Marín](https://github.com/Algunenano)).
* Ahora también se pueden crear índices de texto en columnas `Nullable([Fixed]String)` y `Array(Nullable([Fixed]String))`. [#98118](https://github.com/ClickHouse/ClickHouse/pull/98118) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Evite eliminar colecciones con nombre de las que dependan las fuentes de diccionario. [#98127](https://github.com/ClickHouse/ClickHouse/pull/98127) ([Pablo Marcos](https://github.com/pamarcos)).
* Se habilita el algoritmo de join `grace_hash` para consultas con totales. [#98144](https://github.com/ClickHouse/ClickHouse/pull/98144) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Cancelar antes las fusiones en segundo plano en DROP DATABASE para ordinary shared merge tree. [#98161](https://github.com/ClickHouse/ClickHouse/pull/98161) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Mejora de la cancelación de consultas con MongoDB y MySQL mediante KILL QUERY y la cancelación de consultas (Ctrl+C) en clickhouse-client. [#98187](https://github.com/ClickHouse/ClickHouse/pull/98187) ([Roman Vasin](https://github.com/rvasin)).
* Elimina NetlinkMetricsProvider y usa procfs exclusivamente para recopilar métricas taskstats por hilo. La recopilación basada en Netlink presenta problemas en entornos contenerizados y tiene una latencia en cola peor en situaciones de contención. [#98229](https://github.com/ClickHouse/ClickHouse/pull/98229) ([Amos Bird](https://github.com/amosbird)).
* Se refactorizó el manejo de los archivos de manifiesto de Iceberg para corregir problemas con la caché de archivos de manifiesto. [#98231](https://github.com/ClickHouse/ClickHouse/pull/98231) ([Daniil Ivanik](https://github.com/divanik)).
* Ahora también tenemos en cuenta los casos en que la clave de ordenación de la tabla puede ser una expresión como `toDate(time)`, y podemos decidir no aplazar expresiones de este tipo si forman parte de filtros. [#98237](https://github.com/ClickHouse/ClickHouse/pull/98237) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Añade una nueva métrica `MaxAllocatedEphemeralLockSequentialNumber` para el número secuencial máximo asignado a los znodes de bloqueo efímeros de ZooKeeper. [#98243](https://github.com/ClickHouse/ClickHouse/pull/98243) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Actualización de ClickStack a la versión 2.20.0. [#98252](https://github.com/ClickHouse/ClickHouse/pull/98252) ([Aaron Knudtson](https://github.com/knudtty)).
* Se agregó un nuevo evento de perfil `KeeperRequestTotalWithSubrequests` que cuenta cada subsolicitud dentro de una solicitud múltiple de forma individual, lo que ofrece una mejor visibilidad de la carga de trabajo real de Keeper. El evento existente `KeeperRequestTotal` sigue contando cada solicitud múltiple como una sola solicitud. [#98348](https://github.com/ClickHouse/ClickHouse/pull/98348) ([Antonio Andelic](https://github.com/antonio2368)).
* `SYSTEM RELOAD DICTIONARIES` ahora recarga los diccionarios en orden topológico para que los diccionarios que toman datos de otros diccionarios vean datos actualizados tras la recarga. [#98356](https://github.com/ClickHouse/ClickHouse/pull/98356) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reiniciar la caché de estadísticas después de cambiar la configuración de MergeTree. [#98520](https://github.com/ClickHouse/ClickHouse/pull/98520) ([Han Fei](https://github.com/hanfei1991)).
* Solo las réplicas "vivas" (a las que se puede acceder) participan en el análisis distribuido de índices. [#98521](https://github.com/ClickHouse/ClickHouse/pull/98521) ([Azat Khuzhin](https://github.com/azat)).
* Se añade la configuración `access_control_improvements.disallow_config_defined_profiles_for_sql_defined_users` (deshabilitada/permitida de forma predeterminada), que impide usar perfiles de configuración definidos en la configuración (excepto el perfil `default`) para usuarios definidos mediante SQL. [#98662](https://github.com/ClickHouse/ClickHouse/pull/98662) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se limita el número de nodos usados por la heurística automática de réplicas paralelas al número real de nodos del clúster (en lugar de basarse solo en la configuración `max_parallel_replicas`). [#98668](https://github.com/ClickHouse/ClickHouse/pull/98668) ([Nikita Taranov](https://github.com/nickitat)).
* Implementación de solicitudes redundantes y lectura asíncrona para el análisis distribuido de índices. [#98724](https://github.com/ClickHouse/ClickHouse/pull/98724) ([Azat Khuzhin](https://github.com/azat)).
* La deserialización de estados `AggregateFunction` binarios ahora requiere consumir toda la entrada. Si hay bytes redundantes adicionales al final, ClickHouse lanza una excepción en lugar de aceptar datos de estado malformados. [#98786](https://github.com/ClickHouse/ClickHouse/pull/98786) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Hacer que TRUNCATE DATABASE responda a la cancelación de consultas. [#98828](https://github.com/ClickHouse/ClickHouse/pull/98828) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Se mejora `keeper-bench` con canalización de solicitudes, período de calentamiento, estadísticas por operación, semillas reproducibles y una mejor gestión de errores. [#98906](https://github.com/ClickHouse/ClickHouse/pull/98906) ([Antonio Andelic](https://github.com/antonio2368)).
* Se admite la cláusula SAMPLE en el análisis distribuido de índices. [#98931](https://github.com/ClickHouse/ClickHouse/pull/98931) ([Azat Khuzhin](https://github.com/azat)).
* Mostrar el título del gráfico en el dashboard incluso cuando la consulta devuelve un resultado vacío o produce un error. [#98975](https://github.com/ClickHouse/ClickHouse/pull/98975) ([Yash ](https://github.com/Onyx2406)).
* Los mensajes de error del analizador ya no muestran todas las columnas de una tabla (lo que podía generar excepciones de más de 150 KB). Las listas de columnas ahora están limitadas a 10 elementos. [#99002](https://github.com/ClickHouse/ClickHouse/pull/99002) ([Yash ](https://github.com/Onyx2406)).
* Devolver correctamente las estadísticas de las columnas de las subconsultas con joins para que la consulta padre pueda utilizarlas para reordenar los joins. [#99096](https://github.com/ClickHouse/ClickHouse/pull/99096) ([Alexander Gololobov](https://github.com/davenger)).
* Marque la sesión de ZooKeeper como expirada inmediatamente al comenzar la finalización, en lugar de esperar a que termine el hilo de envío. Esto permite que otros hilos establezcan una nueva sesión sin demora. [#99102](https://github.com/ClickHouse/ClickHouse/pull/99102) ([Raúl Marín](https://github.com/Algunenano)).
* Se usan más funciones matemáticas de LLVM-libc: `exp`, `exp2`, `expm1`, `fabs`, `fabsl`, `floor`, `fmodl`, `log`, `log2`, `logf`, `pow`, `scalbn`, `scalbnl`, `copysignl`, `nan`, `nanf`, `nanl` y las constantes compartidas `explogxf`. [#99118](https://github.com/ClickHouse/ClickHouse/pull/99118) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Reducir el uso de memoria y corregir una posible duplicación de la salida en el formato collapsed de `system.jemalloc_profile_text`. [#99121](https://github.com/ClickHouse/ClickHouse/pull/99121) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió la columna `is_subrequest` a `system.aggregated_zookeeper_log` para separar las solicitudes independientes de las subsolicitudes dentro de las solicitudes Multi/MultiRead. Anteriormente, las subsolicitudes se agregaban en las mismas agrupaciones que las solicitudes independientes y, como cada suboperación se registraba con la duración total de la solicitud múltiple, la latencia media resultaba engañosa. Las subsolicitudes ahora tienen latencia cero. [#99169](https://github.com/ClickHouse/ClickHouse/pull/99169) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Permite el comando `ALTER TABLE MODIFY COLUMN x TTL ...` sin especificar el tipo de columna. [#99208](https://github.com/ClickHouse/ClickHouse/pull/99208) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se omiten las solicitudes obsoletas de Keeper para las sesiones que ya se han desconectado, lo que evita recorridos de ida y vuelta innecesarios de Raft. El número de sesiones finalizadas rastreadas está limitado por la configuración de coordinación `max_finished_sessions_cache_size`. [#99246](https://github.com/ClickHouse/ClickHouse/pull/99246) ([Antonio Andelic](https://github.com/antonio2368)).
* Compatibilidad con índices de texto construidos sobre `mapValues(map)` con el operador `IN`. [#99286](https://github.com/ClickHouse/ClickHouse/pull/99286) ([Anton Popov](https://github.com/CurtizJ)).
* Soporte de autocompletado similar al de una shell en clickhouse keeper-client (gestiona el autocompletado de argumentos entre comillas, es decir, `'foo ba'`, gestiona argumentos escapados, es decir, `foo\ ba`, hace que `ls` imprima los nodos entre comillas si contienen espacios en blanco). [#99312](https://github.com/ClickHouse/ClickHouse/pull/99312) ([Azat Khuzhin](https://github.com/azat)).
* Se evita que el comando `mntr` de Keeper se quede bloqueado por contención de bloqueos. [#99472](https://github.com/ClickHouse/ClickHouse/pull/99472) ([Antonio Andelic](https://github.com/antonio2368)).
* Se reduce la contención de bloqueos en el despachador de Keeper al invocar callbacks y despachar solicitudes de lectura fuera del ámbito del mutex, y se añaden guardas de bloqueo con perfilado para la observabilidad. [#99751](https://github.com/ClickHouse/ClickHouse/pull/99751) ([Antonio Andelic](https://github.com/antonio2368)).
* Se tolera la ausencia de relleno al final del último bloque de archivos Parquet. [#99857](https://github.com/ClickHouse/ClickHouse/pull/99857) ([Seva Potapov](https://github.com/seva-potapov)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Corrección de errores (mal funcionamiento visible para el usuario en una versión estable oficial)
</div>

* Corrige cómo se guarda el destino de una tabla Alias como dependencia DDL cuando no está totalmente calificado: ahora se guarda con la base de datos de la tabla Alias en lugar de con la base de datos de la sesión. [#95175](https://github.com/ClickHouse/ClickHouse/pull/95175) ([Enric Calabuig](https://github.com/eclbg)).
* Se corrigió un resultado incorrecto o una excepción durante la lectura de subcolumnas de columnas ALIAS. [#95408](https://github.com/ClickHouse/ClickHouse/pull/95408) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la ausencia de una columna al usar un alias de identificador no estándar en JOIN con el analizador antiguo. Soluciona [#25594](https://github.com/ClickHouse/ClickHouse/issues/25594), [#47288](https://github.com/ClickHouse/ClickHouse/issues/47288) y [#53263](https://github.com/ClickHouse/ClickHouse/issues/53263). [#95679](https://github.com/ClickHouse/ClickHouse/pull/95679) ([Zhigao Hong](https://github.com/zghong)).
* Soluciona un fallo en las funciones del dialecto Kusto `bin()`, `bin_at()`, `extract()` e `indexof()` cuando se pasan argumentos vacíos. [#95736](https://github.com/ClickHouse/ClickHouse/pull/95736) ([NeedmeFordev](https://github.com/spider-yamet)).
* Prohíbe montar local\_object\_storage (que se utiliza en datalakes sobre el sistema de archivos local y, posiblemente, por LocalDisk) en cualquier lugar distinto de user\_files\_path en clickhouse-client. [#96201](https://github.com/ClickHouse/ClickHouse/pull/96201) ([Daniil Ivanik](https://github.com/divanik)).
* En el motor de tablas `DeltaLake`, se corrige una condición de carrera lógica al cambiar la versión de la instantánea y se eliminan recargas redundantes y costosas de la instantánea. [#96226](https://github.com/ClickHouse/ClickHouse/pull/96226) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un error lógico al hacer attach de una parte en MergeTree si se habían producido varios cambios de nombre encadenados entre el detach y el attach. [#96351](https://github.com/ClickHouse/ClickHouse/pull/96351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un error por el que los ajustes explícitos enviados junto con `compatibility` en la misma solicitud podían ignorarse de forma silenciosa cuando su valor coincidía con el valor predeterminado del servidor. [#97078](https://github.com/ClickHouse/ClickHouse/pull/97078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se corrige un problema por el que el client informaba `NETWORK_ERROR` en lugar del error de parsing real (con el número de fila correcto) cuando un INSERT con parsing en paralelo encontraba datos no válidos. [#97339](https://github.com/ClickHouse/ClickHouse/pull/97339) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un problema por el que la función de agregación `sumCount` no podía leer estados serializados antiguos tras la introducción de `Nullable(Tuple)`. Cierra [#97370](https://github.com/ClickHouse/ClickHouse/issues/97370). [#97502](https://github.com/ClickHouse/ClickHouse/pull/97502) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió la excepción en la comparación de tuplas que involucra elementos del tipo `Nothing` (p. ej., al comparar con elementos de tupla `NULL`) cuando se usa con `GROUPING SETS` y `ORDER BY`. [#97509](https://github.com/ClickHouse/ClickHouse/pull/97509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el cálculo no determinista de `uncompressed_hash` para las partes de Compact MergeTree cuando se utilizan varios códecs de compresión, lo que podía provocar un comportamiento incorrecto de deduplicación. [#97522](https://github.com/ClickHouse/ClickHouse/pull/97522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un error lógico por la falta de stream durante INSERT SELECT con JSON y buckets en shared data. Cierra [#97331](https://github.com/ClickHouse/ClickHouse/issues/97331). [#97523](https://github.com/ClickHouse/ClickHouse/pull/97523) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió el problema por el que las excepciones `MEMORY_LIMIT_EXCEEDED` se informaban incorrectamente como `CORRUPTED_DATA` durante las fusiones de SummingMergeTree y CoalescingMergeTree. [#97537](https://github.com/ClickHouse/ClickHouse/pull/97537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Soluciona la excepción "Context has expired" en subconsultas correlacionadas que contienen funciones de tabla como `url()`. [#97544](https://github.com/ClickHouse/ClickHouse/pull/97544) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen excepciones y comportamientos incorrectos en `optimize_syntax_fuse_functions` con proyecciones de agregación, tipos Date y preservación de nombres de columna. [#97545](https://github.com/ClickHouse/ClickHouse/pull/97545) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se elimina la reescritura incorrecta de consultas de `replaceRegexpOne` a `extract`, que producía resultados erróneos cuando la regexp no coincidía; también se corrige una excepción cuando `replaceRegexpOne` se usa con `GROUP BY ... WITH CUBE` y `group_by_use_nulls=1`. [#97546](https://github.com/ClickHouse/ClickHouse/pull/97546) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el bloqueo indefinido de `DROP DATABASE` con `database_atomic_wait_for_drop_and_detach_synchronously` cuando se fuerza la finalización de la consulta. [#97586](https://github.com/ClickHouse/ClickHouse/pull/97586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un problema por el que `KILL QUERY` no podía finalizar consultas bloqueadas durante la generación de `WITH FILL`, la carga de diccionarios mediante `dictGet` o `ALTER DELETE` con `mutations_sync=1` en `ReplicatedMergeTree`. [#97589](https://github.com/ClickHouse/ClickHouse/pull/97589) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La función de tabla `loop` llamaba a `inner_storage->read()` directamente, omitiendo la capa del intérprete, donde se aplican las políticas de fila, los privilegios a nivel de columna y otras comprobaciones de seguridad. Esto permitía que un usuario restringido por políticas de fila leyera todas las filas mediante `loop(table)`, incluso cuando un SELECT directo devolvía cero filas. [#97682](https://github.com/ClickHouse/ClickHouse/pull/97682) ([pufit](https://github.com/pufit)).
* Corrige la poda incorrecta de particiones al usar DateTime64 anterior a la época Unix con la función `toDate()`. [#97746](https://github.com/ClickHouse/ClickHouse/pull/97746) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Después de este parche, `hasPartitionId` devolverá `false` si existe otra partición con un ID de partición superior en el conjunto de partes de datos. [#97748](https://github.com/ClickHouse/ClickHouse/pull/97748) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Se corrigen posibles fallos al leer gránulos vacíos en datos compartidos avanzados en JSON. Cierra [#97563](https://github.com/ClickHouse/ClickHouse/issues/97563). [#97778](https://github.com/ClickHouse/ClickHouse/pull/97778) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige `Cannot schedule a file` `LOGICAL_ERROR` al hacer `INSERT` en `Distributed` debido a una condición de carrera entre `DROP` e `INSERT`. [#97822](https://github.com/ClickHouse/ClickHouse/pull/97822) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un cierre inesperado/fallo de aserción del servidor de ClickHouse en la llamada a `mapContainsKey/mapContainsKeyLike` con el índice de omisión `tokenbf_v1`. [#97826](https://github.com/ClickHouse/ClickHouse/pull/97826) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Se corrigieron las excepciones `LOGICAL&#95;ERROR` causadas por `LowCardinality` dentro de tipos compuestos (`Variant`, `Dynamic`, `Tuple`) en `concatWithSeparator`, `format`, las subconsultas `IN`, `GLOBAL IN` y los joins con filtros en tiempo de ejecución. [#97831](https://github.com/ClickHouse/ClickHouse/pull/97831) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige la excepción `LOGICAL_ERROR` `Chunk info was not set for chunk in MergingAggregatedTransform` al usar `ARRAY JOIN` con la función de tabla `merge()` en varias tablas Distributed combinadas con `GROUP BY`. [#97838](https://github.com/ClickHouse/ClickHouse/pull/97838) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un cierre inesperado del servidor (`std::terminate`) causado por una excepción no capturada en el destructor del grupo de conexiones HTTP cuando se alcanza el límite estricto del grupo de conexiones en condiciones de alta concurrencia. La excepción `HTTP_CONNECTION_LIMIT_REACHED` podía propagarse desde `~PooledConnection` al devolver una conexión al grupo para su reutilización, lo que provocaba `SIGABRT`. [#97850](https://github.com/ClickHouse/ClickHouse/pull/97850) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un resultado incorrecto cuando se usa el algoritmo `grace_hash` con joins no equi y el bloque de la izquierda no puede procesarse por completo debido a las restricciones de tamaño del resultado del join. [#97866](https://github.com/ClickHouse/ClickHouse/pull/97866) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige la ineficiencia de rendimiento en el escaneo de metadatos de DeltaLake introducida en [#96686](https://github.com/ClickHouse/ClickHouse/pull/96686). [#97880](https://github.com/ClickHouse/ClickHouse/pull/97880) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió una condición de carrera de datos en el client de ZooKeeper entre sendThread y receiveThread. [#97887](https://github.com/ClickHouse/ClickHouse/pull/97887) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige un error por el que no era posible usar CTE con sentencias insert SELECT distribuidas. Continuación de [https://github.com/ClickHouse/ClickHouse/pull/87789](https://github.com/ClickHouse/ClickHouse/pull/87789). Cierra [#95837](https://github.com/ClickHouse/ClickHouse/issues/95837). [#97889](https://github.com/ClickHouse/ClickHouse/pull/97889) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige una excepción en `CachedOnDiskReadBufferFromFile::readBigAt`. Cierra [#97325](https://github.com/ClickHouse/ClickHouse/issues/97325). [#97890](https://github.com/ClickHouse/ClickHouse/pull/97890) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige la excepción `LOGICAL_ERROR` en el motor `Alias` con columnas materializadas debido a un desajuste de columnas. Cierra [#97907](https://github.com/ClickHouse/ClickHouse/issues/97907). [#97921](https://github.com/ClickHouse/ClickHouse/pull/97921) ([Kai Zhu](https://github.com/nauu)).
* Se corrige la pérdida de datos de Keeper tras un reinicio al usar Azure Blob Storage con metadatos `s3_plain` para el almacenamiento de registros. [#97987](https://github.com/ClickHouse/ClickHouse/pull/97987) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige una compilación errónea del JIT de la función `sign` para tipos enteros de mayor tamaño que `Int8` — los valores fuera del intervalo -128..127 podían producir un signo incorrecto. [#98012](https://github.com/ClickHouse/ClickHouse/pull/98012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción `DUPLICATE_COLUMN` y la aparición silenciosa de valores NULL al leer tablas de Delta Lake que usan el modo "name" de asignación de columnas con campos de struct cuyos nombres contienen puntos (p. ej., ``STRUCT<`a.foo`: STRING, `b.foo`: STRING>``). [#98013](https://github.com/ClickHouse/ClickHouse/pull/98013) ([Caio Ishizaka Costa](https://github.com/ch-caioishizaka)).
* Se corrige la mutación tras una actualización ligera y los índices secundarios. [#98044](https://github.com/ClickHouse/ClickHouse/pull/98044) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un resultado incorrecto en las consultas FINAL al mezclar índices de salto de clave primaria y de columnas que no forman parte de la clave primaria. [#98097](https://github.com/ClickHouse/ClickHouse/pull/98097) ([Raúl Marín](https://github.com/Algunenano)).
* Se aplican comprobaciones de READ ON FILE a file() escalar y a DESCRIBE TABLE file(). [#98115](https://github.com/ClickHouse/ClickHouse/pull/98115) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige un fallo por el que, al consultar archivos con un patrón glob (p. ej., `file('dir/**', 'LineAsString')`), se producía una excepción no controlada del sistema de archivos (`STD_EXCEPTION`) si el directorio contenía un enlace simbólico roto. Ahora los enlaces simbólicos rotos se omiten silenciosamente, y la consulta devuelve resultados de todos los archivos válidos. [#98143](https://github.com/ClickHouse/ClickHouse/pull/98143) ([Mark Andreev](https://github.com/mrk-andreev)).
* Se corrigió un segfault durante la optimización del plan de consulta al convertir un outer join en un inner join con `arrayJoin` en una expresión de filtro. [#98147](https://github.com/ClickHouse/ClickHouse/pull/98147) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el problema por el que el formato `ProtobufList` no funcionaba con el motor Kafka porque el estado de lectura no se restablecía entre mensajes. [#98151](https://github.com/ClickHouse/ClickHouse/pull/98151) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un fallo lógico con analyzer\_compatibility\_join\_using\_top\_level\_identifier y ARRAY JOIN; cierra [#98164](https://github.com/ClickHouse/ClickHouse/issues/98164). [#98179](https://github.com/ClickHouse/ClickHouse/pull/98179) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Configura el componente `Watch` para las respuestas de watch en `aggregated_zookeeper_log` en lugar de dejarlo vacío. [#98202](https://github.com/ClickHouse/ClickHouse/pull/98202) ([Antonio Andelic](https://github.com/antonio2368)).
* Si las columnas de la clave de partición no están incluidas en la clave de ordenación, la poda de particiones podría omitir por error particiones que contienen filas que deberían "prevalecer" durante la deduplicación FINAL. [#98242](https://github.com/ClickHouse/ClickHouse/pull/98242) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige el error lógico "Bad cast from type DB::ColumnConst to DB::ColumnArray" en `kql_array_sort_asc`/`kql_array_sort_desc` cuando se llama con argumentos constantes de tipo array. [#98251](https://github.com/ClickHouse/ClickHouse/pull/98251) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un acceso fuera de rango en `ColumnConst::getExtremes` que podía provocar un bloqueo cuando `extremes = 1` está habilitado. [#98263](https://github.com/ClickHouse/ClickHouse/pull/98263) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un posible interbloqueo cuando dos operaciones concurrentes de `MOVE PARTITION` actúan sobre el mismo par de tablas en direcciones opuestas. [#98264](https://github.com/ClickHouse/ClickHouse/pull/98264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El servidor HTTP ahora devuelve un mensaje de error en el cuerpo de la respuesta en las respuestas 400 Bad Request causadas por cabeceras malformadas, en lugar de devolver un cuerpo vacío. [#98268](https://github.com/ClickHouse/ClickHouse/pull/98268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorrectos en el análisis distribuido de índices (función experimental) y en la caché de condiciones de consulta. [#98269](https://github.com/ClickHouse/ClickHouse/pull/98269) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la excepción LOGICAL\_ERROR "Resultado no válido de la búsqueda binaria en `MergeTreeSetIndex`", provocada por la conversión `toDate` en columnas clave con datos que cruzan el umbral de 65535. [#98276](https://github.com/ClickHouse/ClickHouse/pull/98276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `LOGICAL_ERROR` cuando un RIGHT JOIN contenido dentro de un CROSS JOIN se intercambia mediante la optimización `query_plan_join_swap_table` en la ruta de código heredada del paso de JOIN. [#98279](https://github.com/ClickHouse/ClickHouse/pull/98279) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Validar los datos corruptos durante la deserialización de `DDSketch` para evitar segfaults, excepciones, bucles infinitos y OOM al leer estados corruptos de la función de agregación `quantilesDD`. [#98284](https://github.com/ClickHouse/ClickHouse/pull/98284) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige LOGICAL\_ERROR "Intentando ejecutar la acción PLACEHOLDER" al hacer referencia a columnas correlacionadas de consultas externas dentro de funciones lambda como `arrayMap`. [#98285](https://github.com/ClickHouse/ClickHouse/pull/98285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una excepción por error lógico en `caseWithExpression` cuando la expresión `CASE` incluye `materialize(NULL)` u otros argumentos `Nullable(Nothing)`. [#98290](https://github.com/ClickHouse/ClickHouse/pull/98290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregida una excepción por conversión de tipo incorrecta al filtrar la columna virtual `_table` en la table function `merge`. [#98291](https://github.com/ClickHouse/ClickHouse/pull/98291) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un fallo esporádico de deduplicación por el que las reinserciones se deduplicaban incorrectamente debido a un orden de limpieza incoherente entre los directorios `blocks/` y `deduplication_hashes/` de ZooKeeper. [#98293](https://github.com/ClickHouse/ClickHouse/pull/98293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una excepción al usar `ORDER BY ... WITH FILL` junto con `LIMIT BY`. [#98361](https://github.com/ClickHouse/ClickHouse/pull/98361) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la corrupción silenciosa de datos al insertar una columna `Date` de Parquet/Arrow en una columna `Enum`: ahora rechaza correctamente la conversión incompatible de tipos en lugar de almacenar valores `Enum` no válidos. [#98364](https://github.com/ClickHouse/ClickHouse/pull/98364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una excepción al leer un archivo Arrow que contiene una columna `Array` en una tabla con una columna `Nested`. [#98365](https://github.com/ClickHouse/ClickHouse/pull/98365) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen las mutaciones `MATERIALIZE INDEX` y `MATERIALIZE PROJECTION` que se quedaban bloqueadas cuando se eliminaba el índice o la proyección antes de que terminara la mutación. [#98369](https://github.com/ClickHouse/ClickHouse/pull/98369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una excepción al leer desde `Nullable(Tuple(...))` cuando el nombre de un elemento de Tuple entra en conflicto con la subcolumna `null` de Nullable. [#98372](https://github.com/ClickHouse/ClickHouse/pull/98372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción "Column ... query tree node does not have valid source node" al hacer join entre una tabla `Merge` (que envuelve una tabla `Distributed`) y otra tabla. [#98376](https://github.com/ClickHouse/ClickHouse/pull/98376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la conversión incorrecta de Parquet `Bool` a `FixedString` en el lector nativo V3, que producía bytes sin procesar en lugar de una representación de cadena. [#98378](https://github.com/ClickHouse/ClickHouse/pull/98378) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregido `tryGetColumnDescription` para filtrar las subcolumnas según el tipo de la columna padre, en consonancia con otros métodos de búsqueda de columnas. [#98391](https://github.com/ClickHouse/ClickHouse/pull/98391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Aceptar credenciales base64 sin relleno en la autenticación HTTP Basic. Algunos clientes HTTP omiten el relleno final `=` en el encabezado `Authorization: Basic`, lo que antes provocaba fallos de autenticación. [#98392](https://github.com/ClickHouse/ClickHouse/pull/98392) ([Amos Bird](https://github.com/amosbird)).
* Corrige resultados incorrectos de la poda de particiones tras fusionar partes con columnas `Nullable` de clave de partición, causados por límites incorrectos del índice min-max. [#98405](https://github.com/ClickHouse/ClickHouse/pull/98405) ([Amos Bird](https://github.com/amosbird)).
* Se corrige una excepción poco frecuente en el ejecutor del pipeline, que podía manifestarse como `Received signal 6` (solo en compilaciones de depuración) cuando la expansión del pipeline se solapa con la cancelación de la consulta debido a una condición de carrera. [#98428](https://github.com/ClickHouse/ClickHouse/pull/98428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción "Column identifier is already registered" cuando se usa `count_distinct_optimization` con la cláusula `QUALIFY`. [#98433](https://github.com/ClickHouse/ClickHouse/pull/98433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción "cannot be inside Nullable type" al usar `IN`/`NOT IN` con argumentos de columna `LowCardinality` (p. ej., `a NOT IN (b)` donde `a` es `LowCardinality(String)`). [#98443](https://github.com/ClickHouse/ClickHouse/pull/98443) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción "Pipeline stuck" en los JOIN `full_sorting_merge`, causada por un interbloqueo en `PingPongProcessor` cuando la optimización `FilterBySetOnTheFly` creó una dependencia circular con `MergeJoinTransform`. [#98454](https://github.com/ClickHouse/ClickHouse/pull/98454) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `LOGICAL_ERROR` "Projection cannot increase the number of rows in a block" al fusionar partes con un TTL que elimina todas las filas y una proyección de agregación con una clave `GROUP BY` constante. [#98458](https://github.com/ClickHouse/ClickHouse/pull/98458) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una excepción por error lógico cuando `CROSS JOIN` se usa junto con `INNER JOIN USING`. [#98459](https://github.com/ClickHouse/ClickHouse/pull/98459) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una desreferenciación de puntero nulo en `dictGetOrDefault` cuando el argumento de la clave es `Nullable`. [#98460](https://github.com/ClickHouse/ClickHouse/pull/98460) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una excepción en consultas `DISTINCT` al usar proyecciones de agregación cuando `materialize` provoca diferencias de tipo `LowCardinality` entre la consulta y la proyección. [#98462](https://github.com/ClickHouse/ClickHouse/pull/98462) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción LOGICAL\_ERROR cuando se usa `arrayJoin` en una expresión de filtro con OUTER JOIN y `join_use_nulls` activado. [#98464](https://github.com/ClickHouse/ClickHouse/pull/98464) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción de error lógico "La réplica decidió leer en modo WithOrder, no en ReverseOrder" al usar réplicas paralelas con `optimize_aggregation_in_order`. [#98467](https://github.com/ClickHouse/ClickHouse/pull/98467) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un problema por el que ClickHouse Keeper desconectaba a los clientes Java de ZooKeeper después de la solicitud `addWatch`. El cliente Java espera un cuerpo `ErrorResponse` de 4 bytes en la respuesta de `addWatch`, pero Keeper estaba enviando un cuerpo vacío, lo que provocaba `EOFException` y la desconexión de la sesión. Esto rompía `CuratorCache` de Apache Curator y cualquier aplicación Java que usara watches persistentes. Corrige [#98079](https://github.com/ClickHouse/ClickHouse/issues/98079). [#98499](https://github.com/ClickHouse/ClickHouse/pull/98499) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige que las métricas de Keeper `zk_followers` y `zk_synced_followers` no disminuyeran cuando un follower deja de estar disponible. Se añaden las nuevas métricas `zk_learners` y `zk_synced_non_voting_followers` al comando de cuatro letras `mntr`. Corrige [#54173](https://github.com/ClickHouse/ClickHouse/issues/54173). [#98504](https://github.com/ClickHouse/ClickHouse/pull/98504) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió una excepción LOGICAL\_ERROR en `renameAndCommitEmptyParts` que podía producirse cuando `TRUNCATE TABLE` se ejecutaba de manera concurrente con `OPTIMIZE TABLE` usando transacciones de MergeTree. [#98508](https://github.com/ClickHouse/ClickHouse/pull/98508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un problema por el que el puerto seguro de Raft de Keeper ignoraba `cipherList` y `dhParamsFile` de la configuración de `openSSL`, y siempre usaba los valores predeterminados en lugar de los especificados por el usuario. Cierra [#51188](https://github.com/ClickHouse/ClickHouse/issues/51188). [#98509](https://github.com/ClickHouse/ClickHouse/pull/98509) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigieron mensajes de log de Keeper engañosos, como "Recibir la solicitud de la sesión X tomó 9963 ms", donde el tiempo informado en realidad se invertía en esperar inactivo en `poll()` entre latidos, y no en realizar la operación en sí. Corrige [#79026](https://github.com/ClickHouse/ClickHouse/issues/79026). [#98510](https://github.com/ClickHouse/ClickHouse/pull/98510) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un resultado inesperado con read\_in\_order\_use\_virtual\_row y funciones monótonas; cierra [#97837](https://github.com/ClickHouse/ClickHouse/issues/97837). [#98514](https://github.com/ClickHouse/ClickHouse/pull/98514) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige `LOGICAL_ERROR: Not-ready Set is passed as the second argument for function 'in'` al usar `PREWHERE` con una subconsulta `IN` en tablas MergeTree. [#98522](https://github.com/ClickHouse/ClickHouse/pull/98522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen las conexiones TCP de Keeper que, al no responder a la señal de apagado, impedían el cierre ordenado del servidor. [#98525](https://github.com/ClickHouse/ClickHouse/pull/98525) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción "No se encontró la columna de ordenación entre las salidas de ActionsDAG" cuando `query_plan_convert_join_to_in` está habilitado con `query_plan_merge_expressions = 0`. [#98526](https://github.com/ClickHouse/ClickHouse/pull/98526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un fallo en el origen de diccionario de MongoDB con named collections. Cierra [#97840](https://github.com/ClickHouse/ClickHouse/issues/97840). [#98528](https://github.com/ClickHouse/ClickHouse/pull/98528) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrigió LOGICAL\_ERROR cuando Identifier queda vacío tras la sustitución de parámetros. [#98530](https://github.com/ClickHouse/ClickHouse/pull/98530) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Se corrige un bloqueo mutuo en el pipeline al usar `sort_overflow_mode = 'break'` junto con funciones de ventana. [#98543](https://github.com/ClickHouse/ClickHouse/pull/98543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la reversión de columnas en el motor Buffer al gestionar una excepción al agregar un bloque nuevo. La lógica anterior podía provocar un estado de las columnas en memoria corrupto. [#98551](https://github.com/ClickHouse/ClickHouse/pull/98551) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió la excepción `Bad cast from type ColumnConst to ColumnDynamic` en la comparación null-safe (`<=>` / `IS NOT DISTINCT FROM`) con columnas const `Dynamic` o `Variant` y `NULL`. También se corrigió que `IS DISTINCT FROM` con `Dynamic`/`Variant` frente a `NULL` devolvía siempre 0 de forma incorrecta. [#98553](https://github.com/ClickHouse/ClickHouse/pull/98553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el uso del índice de texto con otros índices de omisión. Anteriormente, podían producirse errores lógicos como "Trying to get non-existing mark" cuando un filtro de consulta utilizaba simultáneamente un índice de texto y otros índices de omisión convencionales. [#98555](https://github.com/ClickHouse/ClickHouse/pull/98555) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el error lógico "TABLE\_FUNCTION is not allowed in expression context" cuando una función de tabla con alias aparece varias veces en el mismo ámbito de la consulta (por ejemplo, en las cláusulas `PREWHERE` y `QUALIFY`). [#98557](https://github.com/ClickHouse/ClickHouse/pull/98557) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el análisis distribuido de índices con expresiones (no solo columnas) en la PK (lo que provoca que no se filtren gránulos redundantes en réplicas remotas). [#98561](https://github.com/ClickHouse/ClickHouse/pull/98561) ([Azat Khuzhin](https://github.com/azat)).
* Impedir la eliminación de una columna cuando sus subcolumnas se utilicen en expresiones default/alias de otras columnas, y usar el analizador para las expresiones default en alter drop column. [#98569](https://github.com/ClickHouse/ClickHouse/pull/98569) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió el reintento incorrecto de solicitudes de S3 ante errores no reintentables (incluido `HTTP_CONNECTION_LIMIT_REACHED`) en el client HTTP. [#98598](https://github.com/ClickHouse/ClickHouse/pull/98598) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige un desbordamiento decimal al aplicar la poda de particiones con DateTime64. [#98628](https://github.com/ClickHouse/ClickHouse/pull/98628) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige dos errores en la compilación JIT de expresiones: un error de copia y pega en la verificación de tipos de `nativeCast` que hacía inalcanzables las ramas de conversión de entero a entero y de float a float, y un `TargetMachine` nulo (`nullptr`) incorrecto pasado a LLVM `PassBuilder`, lo que impedía registrar las pasadas de optimización específicas del destino. [#98660](https://github.com/ClickHouse/ClickHouse/pull/98660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una elusión de RBAC que permitía a los usuarios ejecutar DESCRIBE sobre cualquier tabla mediante `remote()`, `remoteSecure()`, `cluster()` o `clusterAllReplicas()` apuntando a localhost, sin requerir el privilegio `SHOW_COLUMNS`. [#98669](https://github.com/ClickHouse/ClickHouse/pull/98669) ([pufit](https://github.com/pufit)).
* Corrige la excepción `BAD_GET` y los resultados de consulta incorrectos cuando se usa una expresión no booleana (p. ej., `sin(col)`) tanto en WHERE como en SELECT con un JOIN, debido a que la optimización de push-down de filtros corrompe nodos DAG compartidos. [#98681](https://github.com/ClickHouse/ClickHouse/pull/98681) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige LOGICAL\_ERROR "La réplica decidió leer en modo Default, no en WithOrder" al usar `read_in_order_through_join` con réplicas paralelas. [#98685](https://github.com/ClickHouse/ClickHouse/pull/98685) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la excepción "Bad cast from type `DB::TableFunctionNode` to `DB::QueryNode`" al usar la función de tabla `input` como argumento de `remote`. [#98694](https://github.com/ClickHouse/ClickHouse/pull/98694) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la resurrección de partes de datos obsoletas causada por la limpieza incorrecta de partes vacías que las cubren. [#98698](https://github.com/ClickHouse/ClickHouse/pull/98698) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige una excepción en `LogicalExpressionOptimizerPass` cuando una función booleana en una comparación `equals` devuelve un tipo `Variant`. [#98712](https://github.com/ClickHouse/ClickHouse/pull/98712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige que `parseDateTimeBestEffort` analizara incorrectamente palabras que comienzan con prefijos de nombres de meses o días de la semana. Cierra [#97965](https://github.com/ClickHouse/ClickHouse/issues/97965). [#98742](https://github.com/ClickHouse/ClickHouse/pull/98742) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la excepción `UNKNOWN_IDENTIFIER` al consultar la table function `merge()` o el engine `Merge` en tablas con columnas JSON que tienen parámetros distintos (p. ej., diferentes campos `SKIP`) y columnas ALIAS que hacen referencia a subrutas de JSON, cuando está habilitado el nuevo analizador. Cierra [#97812](https://github.com/ClickHouse/ClickHouse/issues/97812). [#98753](https://github.com/ClickHouse/ClickHouse/pull/98753) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige la optimización `optimize_skip_unused_shards` del analizador cuando se usa el motor `Distributed` en una `View`. [#98754](https://github.com/ClickHouse/ClickHouse/pull/98754) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige el acceso por nombre a las subcolumnas de tuplas (p. ej., `SELECT x.a` para `Tuple(a UUID, b Int32)`) en las tablas externas pasadas mediante `--external` en `clickhouse-client`. Cierra [#96925](https://github.com/ClickHouse/ClickHouse/issues/96925). [#98755](https://github.com/ClickHouse/ClickHouse/pull/98755) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió la excepción de `reverseUTF8` con entradas UTF-8 no válidas (truncadas). [#98770](https://github.com/ClickHouse/ClickHouse/pull/98770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregida la detección de la utilidad del índice de omisión Set con un predicado OR con false (es decir, or(x, 0)). [#98776](https://github.com/ClickHouse/ClickHouse/pull/98776) ([Azat Khuzhin](https://github.com/azat)).
* Corrige una excepción `LOGICAL_ERROR` (desajuste en la estructura de bloques en `removeUnusedColumns`) que podía producirse con `FINAL` + `PREWHERE` + una expresión `WHERE` constante + agregaciones independientes de las columnas, como `count()`. [#98778](https://github.com/ClickHouse/ClickHouse/pull/98778) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las entradas de `system.trace_log` para las recargas automáticas de diccionarios de ClickHouse ahora tienen identificadores de consulta no vacíos. [#98784](https://github.com/ClickHouse/ClickHouse/pull/98784) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige un fallo en el que podíamos desreferenciar un puntero nulo en tablas del sistema creadas entre el momento en que tomábamos una instantánea de las tablas en la llamada a `IDatabaseTablesIterator::table()` y el momento en que esas tablas cambiaban en otro hilo durante una iteración posterior. [#98792](https://github.com/ClickHouse/ClickHouse/pull/98792) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Se corrige un problema por el que `SYSTEM START REPLICATED VIEW` no activaba la tarea de actualización. [#98797](https://github.com/ClickHouse/ClickHouse/pull/98797) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige la excepción "Inconsistent table names" al usar la función de tabla `view()` con JOINs dentro de otro JOIN (solo con el analizador antiguo). [#98809](https://github.com/ClickHouse/ClickHouse/pull/98809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el ajuste de RLIMIT\_SIGPENDING (mediante pending\_signals). [#98829](https://github.com/ClickHouse/ClickHouse/pull/98829) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige una excepción al combinar `loop` con funciones de tabla de clúster. [#98860](https://github.com/ClickHouse/ClickHouse/pull/98860) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* LEFT ANTI JOIN con múltiples columnas de clave de JOIN devolvía resultados incorrectos cuando `enable_join_runtime_filters=1` (que es el valor predeterminado). [#98871](https://github.com/ClickHouse/ClickHouse/pull/98871) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrige `WITH FILL STALENESS`, que producía filas adicionales rellenadas al leer los datos en varios fragmentos (p. ej., con `index_granularity` pequeño). [#98895](https://github.com/ClickHouse/ClickHouse/pull/98895) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el error lógico "RPNBuilderFunctionTreeNode has A arguments, attempted to get argument at index B" LOGICAL\_ERROR. [#98900](https://github.com/ClickHouse/ClickHouse/pull/98900) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el desajuste en el seguimiento de memoria causado por asignaciones fallidas que no se revertían, el comportamiento indefinido de `nallocx(0)` y un error de una unidad en el seguimiento del pico global. Amplía el seguimiento para abarcar los búferes circulares de `io_uring`. [#98915](https://github.com/ClickHouse/ClickHouse/pull/98915) ([Antonio Andelic](https://github.com/antonio2368)).
* Prohibir adjuntar tablas locales de lago de datos fuera de las rutas del usuario, no solo crearlas. [#98936](https://github.com/ClickHouse/ClickHouse/pull/98936) ([Daniil Ivanik](https://github.com/divanik)).
* Se corrige una condición de carrera que podía causar la excepción "ReadBuffer is canceled" en consultas que usan `urlCluster` o funciones de tabla de clúster similares. [#98955](https://github.com/ClickHouse/ClickHouse/pull/98955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `LOGICAL_ERROR` en las funciones financieras (`financialNetPresentValue`, `financialInternalRateOfReturn`, etc.) al pasar argumentos de tipo `BFloat16`. [#98958](https://github.com/ClickHouse/ClickHouse/pull/98958) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen los skip indexes (y las condiciones de la clave primaria) que no se aplicaban a las columnas ALIAS cuando la fusión de expresiones del plan de consulta está deshabilitada (query\_plan\_merge\_expressions = 0 o query\_plan\_enable\_optimizations = 0). [#98960](https://github.com/ClickHouse/ClickHouse/pull/98960) ([Peng](https://github.com/fastio)).
* Incrementa el evento de perfil `InsertQuery` para inserciones asíncronas. Cierra [#98626](https://github.com/ClickHouse/ClickHouse/issues/98626). [#98962](https://github.com/ClickHouse/ClickHouse/pull/98962) ([Narasimha Pakeer](https://github.com/npakeer)).
* Corrige la excepción "Comportamiento inconsistente de KeyCondition" en compilaciones de depuración cuando la clave primaria contiene valores `NaN` de coma flotante, haciendo que `accurateLess` y `accurateEquals` manejen `NaN` de forma coherente con el orden de ordenación de ClickHouse. Cierra [#98075](https://github.com/ClickHouse/ClickHouse/issues/98075). [#98964](https://github.com/ClickHouse/ClickHouse/pull/98964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* SummingMergeTree ya no suma las columnas de tipo Bool (ni las de otros tipos de dominio). Los valores Bool se conservan tal cual, en lugar de sumarse aritméticamente. [#98976](https://github.com/ClickHouse/ClickHouse/pull/98976) ([Yash ](https://github.com/Onyx2406)).
* Corrige la excepción Scalar doesn't exist que se producía al ejecutar una consulta en un segmento remoto con `optimize_const_name_size` activado y `enable_scalar_subquery_optimization` = 0. Las constantes grandes sustituidas por referencias `__getScalar` en la consulta remota no se enviaban al segmento, lo que hacía que la consulta fallara. [#98979](https://github.com/ClickHouse/ClickHouse/pull/98979) ([andriibeee](https://github.com/andriibeee)).
* Corrige `NOT_FOUND_COLUMN_IN_BLOCK` en algunas consultas con `GROUP BY` y expresiones que incluyen búsquedas inversas en diccionarios, comparaciones de conversión `Date/DateTime` y comparaciones de tuplas. Cierra [#98888](https://github.com/ClickHouse/ClickHouse/issues/98888). [#98980](https://github.com/ClickHouse/ClickHouse/pull/98980) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió un comportamiento indefinido (desreferenciación de un puntero nulo) al cambiar una columna version/sign/is\_deleted a `EPHEMERAL` o `ALIAS` en motores MergeTree. Ahora, esos cambios se rechazan correctamente. [#98985](https://github.com/ClickHouse/ClickHouse/pull/98985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un problema por el que `system.grants` omitía, en la columna `access_object`, los parámetros de expresiones regulares de los privilegios `URL` y `S3`. [#98987](https://github.com/ClickHouse/ClickHouse/pull/98987) ([DQ](https://github.com/il9ue)).
* Se corrigieron las lecturas de Iceberg BigLake: las credenciales de ADC ahora se reenvían al client S3 de GCS (lo que corrige errores 403), las credenciales de OAuth2 ahora se codifican para URL antes de enviarse (lo que corrige fallos de autenticación en tokens con caracteres especiales) y el recorrido del espacio de nombres ya no se aborta ante respuestas HTTP 400 de BigLake. [#98998](https://github.com/ClickHouse/ClickHouse/pull/98998) ([Nikita Fomichev](https://github.com/fm4v)).
* Se corrigió un problema por el que `clickhouse-client` no podía cambiar la zona horaria cuando la variable de entorno `TZ` usa la sintaxis de ruta de archivo de POSIX (por ejemplo, `TZ=:/etc/localtime`). [#99000](https://github.com/ClickHouse/ClickHouse/pull/99000) ([Yash ](https://github.com/Onyx2406)).
* Corrige la poda incorrecta o insuficiente cuando se usan `startsWith`, `LIKE` y `NOT LIKE` con una columna `FixedString`. Además, la función de conversión de tipo de `FixedString` a `String` ahora puede podar gránulos cuando se aplica sobre la columna clave. Cierra [#98940](https://github.com/ClickHouse/ClickHouse/issues/98940). [#99001](https://github.com/ClickHouse/ClickHouse/pull/99001) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió `windowFunnel` con `strict_deduplication`, que devolvía un Level incorrecto al encontrar un evento duplicado. [#99003](https://github.com/ClickHouse/ClickHouse/pull/99003) ([Yash ](https://github.com/Onyx2406)).
* Corrige un error por el que EXISTS ignoraba las cláusulas LIMIT y OFFSET en las subconsultas, lo que provocaba resultados incorrectos cuando la subconsulta no devolvía ninguna fila debido a un OFFSET o a un límite de cero. Cierra [#88722](https://github.com/ClickHouse/ClickHouse/issues/88722). [#99005](https://github.com/ClickHouse/ClickHouse/pull/99005) ([andriibeee](https://github.com/andriibeee)).
* Se corrige la excepción "Block structure mismatch" cuando la optimización de push-down de filtros encuentra una expresión AND que se cortocircuita a una constante con `GROUPING SETS`. [#99010](https://github.com/ClickHouse/ClickHouse/pull/99010) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una excepción al leer partes de parche (actualizaciones ligeras) cuando el plan de consulta no incluye la columna `_part_offset`. [#99023](https://github.com/ClickHouse/ClickHouse/pull/99023) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Una consulta como `SELECT * FROM table WHERE pk_id = ''`, donde `pk_id` es la clave primaria y es de tipo `String`, ahora usará correctamente el índice de clave primaria para filtrar gránulos. [#99027](https://github.com/ClickHouse/ClickHouse/pull/99027) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Se corrigió la excepción `DEPENDENCIES_NOT_FOUND` en el motor Kafka cuando la vista materializada se desacopla mientras el hilo en segundo plano está transmitiendo datos. [#99028](https://github.com/ClickHouse/ClickHouse/pull/99028) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregida una excepción al crear una tabla con una columna `EPHEMERAL` con el mismo nombre que una columna virtual (p. ej., `_part_offset`). [#99031](https://github.com/ClickHouse/ClickHouse/pull/99031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el confuso "inflate failed: error de búfer" al leer archivos comprimidos inexistentes mediante la función de tabla `url()` con patrones glob. Ahora devuelve un resultado vacío, como se esperaba, cuando `http_skip_not_found_url_for_globs` está habilitado. [#99034](https://github.com/ClickHouse/ClickHouse/pull/99034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un fallo del servidor (`std::terminate`) al ejecutar `ALTER TABLE ... DROP PART` en una `patch part` tras un cambio de esquema (p. ej., `ADD COLUMN`). El fallo se producía por la ausencia de columnas del sistema (`_part`) en los metadatos de la parte de cobertura vacía, lo que provocaba una excepción no capturada dentro de un `NOEXCEPT&#95;SCOPE`. [#99036](https://github.com/ClickHouse/ClickHouse/pull/99036) ([Peng](https://github.com/fastio)).
* El proceso del servidor ClickHouse podía bloquearse si se producía una excepción por excederse el límite de memoria durante una *lectura de disco en caché*. Esto ya se ha corregido. [#99042](https://github.com/ClickHouse/ClickHouse/pull/99042) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Corrige `LOGICAL_ERROR` al consultar una tabla que tiene tanto una ROW POLICY como una columna ALIAS al usar `dictGet`. El problema se debía a un acceso prematuro a la expresión de la tabla durante la resolución de la columna ALIAS en el nuevo analizador. [#99065](https://github.com/ClickHouse/ClickHouse/pull/99065) ([Peng](https://github.com/fastio)).
* Corrige un error por acceso fuera de rango cuando el usuario intenta consultar solo columnas virtuales de una tabla Iceberg con los datos en formato Avro. Es un caso extremadamente raro, así que no se marca como crítico. Corrige [#88238](https://github.com/ClickHouse/ClickHouse/issues/88238). [#99080](https://github.com/ClickHouse/ClickHouse/pull/99080) ([alesapin](https://github.com/alesapin)).
* Se corrigió un fallo de segmentación en una CTE recursiva con `remote()` + `view()`. [#99081](https://github.com/ClickHouse/ClickHouse/pull/99081) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se omite el análisis adicional de índices innecesario cuando se aplica la optimización de lectura en orden. [#99084](https://github.com/ClickHouse/ClickHouse/pull/99084) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigió un fallo causado por una excepción por límite de memoria lanzada durante la aplicación de un patch part. [#99086](https://github.com/ClickHouse/ClickHouse/pull/99086) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió una aserción de depuración en `DDLWorker` provocada por un `first_failed_task_name` obsoleto después de que se eliminara una entrada de ZooKeeper durante la recuperación tras la reinicialización. [#99099](https://github.com/ClickHouse/ClickHouse/pull/99099) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió la reconstrucción de los índices de texto en las fusiones con TTL. [#99107](https://github.com/ClickHouse/ClickHouse/pull/99107) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un fallo en la consulta `ALTER TABLE ... REMOVE SETTINGS` para el motor de tabla Iceberg. Corrige [#86330](https://github.com/ClickHouse/ClickHouse/issues/86330). [#99108](https://github.com/ClickHouse/ClickHouse/pull/99108) ([alesapin](https://github.com/alesapin)).
* Corrige un error en la optimización `query_plan_convert_any_join_to_semi_or_anti_join`, que devolvía un resultado incorrecto para las filas sin coincidencia. Relacionado: [https://github.com/ClickHouse/ClickHouse/pull/95995](https://github.com/ClickHouse/ClickHouse/pull/95995). [#99112](https://github.com/ClickHouse/ClickHouse/pull/99112) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige la excepción LOGICAL\_ERROR en `ASTColumnsExceptTransformer::transform`. [#99119](https://github.com/ClickHouse/ClickHouse/pull/99119) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige una evasión de RBAC que permitía a los usuarios obtener la estructura de la tabla mediante `DESCRIBE TABLE` o `CREATE TABLE AS` en funciones de tabla (`mysql()`, `postgresql()`, `sqlite()`, `arrowFlight()`, `jdbc()`, `odbc()`, etc.) sin los privilegios de acceso al origen necesarios. En funciones que infieren el esquema desde servidores remotos, esto también permitía desencadenar conexiones salientes (SSRF) sin autorización. [#99122](https://github.com/ClickHouse/ClickHouse/pull/99122) ([pufit](https://github.com/pufit)).
* Se corrigió el fallo de Keeper (segfault en NuRaft) durante la reconfiguración dinámica y la transferencia de liderazgo. [#99133](https://github.com/ClickHouse/ClickHouse/pull/99133) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* Corrige un fallo al usar una tabla Buffer con SAMPLE cuando el destino no lo admite. [#99141](https://github.com/ClickHouse/ClickHouse/pull/99141) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige el LOGICAL\_ERROR causado por una discrepancia en el orden de las columnas de las partes de parche. [#99164](https://github.com/ClickHouse/ClickHouse/pull/99164) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrige un cierre inesperado muy poco frecuente cuando una tabla Iceberg contiene archivos en formatos mixtos (ORC y Parquet). Corrige [#88126](https://github.com/ClickHouse/ClickHouse/issues/88126). [#99168](https://github.com/ClickHouse/ClickHouse/pull/99168) ([alesapin](https://github.com/alesapin)).
* Se corrigió un problema por el que `max_execution_time` no se aplicaba a las operaciones de copia de seguridad/restauración. [#99205](https://github.com/ClickHouse/ClickHouse/pull/99205) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un problema por el que `insert_deduplication_token` se ignoraba silenciosamente en las consultas `INSERT SELECT` sin `ORDER BY ALL`. Anteriormente, la deduplicación estaba completamente deshabilitada para los `INSERT SELECT` sin ordenar, incluso cuando se proporcionaba un token de usuario explícito. Ahora, proporcionar `insert_deduplication_token` basta para habilitar la deduplicación independientemente de `ORDER BY ALL`. [#99206](https://github.com/ClickHouse/ClickHouse/pull/99206) ([Desel72](https://github.com/Desel72)).
* Se corrigen las comprobaciones de acceso excesivas durante la optimización `InverseDictionaryLookupPass` al comprobar el privilegio `CREATE_TEMPORARY_TABLE` una sola vez antes de la pasada, en lugar de hacerlo en cada nodo visitado. [#99210](https://github.com/ClickHouse/ClickHouse/pull/99210) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige un problema por el que `clickhouse format --obfuscate` producía SQL no válido al ofuscar tipos de skip index, nombres de códecs de compresión, nombres de motores de base de datos y definiciones de layout/source de diccionarios. [#99260](https://github.com/ClickHouse/ClickHouse/pull/99260) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió un error por el que, en algunos casos, la comparación entre los tipos Time\[64] y DateTime\[64] resultaba confusa; ahora, en casos como este, los valores de Time\[64] se convierten en DateTime\[64] al añadir `1970-01-01` como parte de la fecha. [#99267](https://github.com/ClickHouse/ClickHouse/pull/99267) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Limitar las restricciones de configuración en el worker de DDL para las consultas DDL distribuidas. [#99317](https://github.com/ClickHouse/ClickHouse/pull/99317) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige pequeños problemas en la autenticación TOTP: la opción de CLI `--one-time-password` con contraseña vacía y la validación de los valores de configuración `<digits>` y `<period>`. [#99322](https://github.com/ClickHouse/ClickHouse/pull/99322) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige el error lógico `unordered_map::at: key not found` en el formato de salida Avro al serializar columnas `Enum8`/`Enum16` con valores no presentes en la definición del enum. [#99332](https://github.com/ClickHouse/ClickHouse/pull/99332) ([Desel72](https://github.com/Desel72)).
* Se corrige CHECK TABLE con serialización dispersa en Tuple con Dynamic. Cierra [#96588](https://github.com/ClickHouse/ClickHouse/issues/96588). [#99351](https://github.com/ClickHouse/ClickHouse/pull/99351) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió una validación excesivamente estricta del preprocesador del índice de texto. [#99359](https://github.com/ClickHouse/ClickHouse/pull/99359) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un problema de compatibilidad al actualizar tablas replicadas con índices minmax implícitos de la versión 25.10 a versiones más recientes. [#99392](https://github.com/ClickHouse/ClickHouse/pull/99392) ([Raúl Marín](https://github.com/Algunenano)).
* Se eliminó la compatibilidad con las funciones negadas (`notEquals`, `notLike`, `notIn`) en el análisis del índice de texto. Estas funciones nunca podían descartar ningún gránulo, por lo que su análisis en el índice solo añadía sobrecarga sin aportar ningún beneficio. [#99393](https://github.com/ClickHouse/ClickHouse/pull/99393) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige `optimize_skip_unused_shards` con el nuevo analizador para el caso en que se usaba una tabla `Distributed` dentro de una subconsulta con IN. [#99436](https://github.com/ClickHouse/ClickHouse/pull/99436) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un error de tipo `heap-use-after-free` en `INTERSECT`/`EXCEPT` cuando la consulta produce nombres de columna duplicados. [#99471](https://github.com/ClickHouse/ClickHouse/pull/99471) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un error lógico en `ALTER TABLE ... DROP PART` cuando se utiliza un parámetro de consulta tipado para el nombre de la parte. [#99489](https://github.com/ClickHouse/ClickHouse/pull/99489) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción `NOT_FOUND_COLUMN_IN_BLOCK` cuando se hacía referencia a un predicado de índice de texto (p. ej., `hasAllTokens`) tanto en las cláusulas `SELECT` como en `WHERE` mediante un alias. [#99504](https://github.com/ClickHouse/ClickHouse/pull/99504) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige los resultados incorrectos al usar `hasAllTokens` con OR entre columnas que tienen índices de texto separados. [#99505](https://github.com/ClickHouse/ClickHouse/pull/99505) ([Anton Popov](https://github.com/CurtizJ)).
* Inicializar la caché de páginas en `clickhouse-local` para que la opción `page_cache_max_size` surta efecto. [#99510](https://github.com/ClickHouse/ClickHouse/pull/99510) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un caso poco frecuente en el que una parte de datos se marcaba incorrectamente como dañada y se desasociaba después de la consulta `DETACH/ATTACH TABLE`. [#99529](https://github.com/ClickHouse/ClickHouse/pull/99529) ([Anton Popov](https://github.com/CurtizJ)).
* Soluciona la excepción `std::length_error` al consultar tablas del sistema vacías con el formato Pretty a través de la interfaz HTTP. [#99541](https://github.com/ClickHouse/ClickHouse/pull/99541) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió `LOGICAL_ERROR` al usar `ALTER TABLE ADD COLUMN` para crear una columna `EPHEMERAL` con el mismo nombre que una columna virtual (p. ej., `_part_offset`). [#99549](https://github.com/ClickHouse/ClickHouse/pull/99549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un problema por el que las entradas de `VectorSimilarityIndexCache` nunca se expulsaban tras eliminar una parte, debido a claves de caché inconsistentes. [#99575](https://github.com/ClickHouse/ClickHouse/pull/99575) ([Seva Potapov](https://github.com/seva-potapov)).
* Se prohíbe la lectura de credenciales de Google desde un archivo local. Esta configuración es insegura porque permite leer otras credenciales si se conoce la ruta del archivo. [#99584](https://github.com/ClickHouse/ClickHouse/pull/99584) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrige la degradación del rendimiento en el analizador. Se eliminan de ARRAY JOIN las columnas no utilizadas. [#99587](https://github.com/ClickHouse/ClickHouse/pull/99587) ([Dmitry Novik](https://github.com/novikd)).
* Se corrigió la lectura del índice de texto en tablas con eliminaciones ligeras y políticas de fila ya existentes. [#99661](https://github.com/ClickHouse/ClickHouse/pull/99661) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige una desreferenciación de nullptr en el lector de Parquet cuando la ruta filter-in-decoder encuentra páginas descartadas por el filtro. Cierra [#99676](https://github.com/ClickHouse/ClickHouse/issues/99676). [#99677](https://github.com/ClickHouse/ClickHouse/pull/99677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una operación de seek incorrecta en AsynchronousReadBufferFromFileDescriptor con O\_DIRECT. Cierra [#99358](https://github.com/ClickHouse/ClickHouse/issues/99358). [#99678](https://github.com/ClickHouse/ClickHouse/pull/99678) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió un heap-buffer-overflow en `CompressionCodecT64` y un aborto del proceso en `CompressionCodecMultiple` al descomprimir datos comprimidos malformados. Ambos problemas fueron detectados por nuevos targets de libFuzzer. Los códecs ahora lanzan una excepción en lugar de bloquearse. [#99680](https://github.com/ClickHouse/ClickHouse/pull/99680) ([Rahul](https://github.com/motsc)).
* Retrasar el procesamiento hasta que el servidor termine de cargar todas las tablas. [#99700](https://github.com/ClickHouse/ClickHouse/pull/99700) ([Seva Potapov](https://github.com/seva-potapov)).
* Se corrigió que la fuente de diccionario MySQL omitiera `RemoteHostFilter` con `params` de DDL en línea. [#99720](https://github.com/ClickHouse/ClickHouse/pull/99720) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Se corrige un error lógico al iterar sobre tablas de lago de datos en `system.tables`. [#99739](https://github.com/ClickHouse/ClickHouse/pull/99739) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrigió el análisis de predicados con la función `IN` en el índice de texto con preprocesador. Se corrigió la colisión entre los tokens buscados en el índice de texto, que podía dar lugar a resultados incorrectos. [#99755](https://github.com/ClickHouse/ClickHouse/pull/99755) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un bucle infinito al leer archivos en formato `Npy` con dimensiones negativas en la forma. [#99812](https://github.com/ClickHouse/ClickHouse/pull/99812) ([Desel72](https://github.com/Desel72)).
* Corrige un desbordamiento global de búfer en la función `CRC32` con argumentos `FixedString` al evaluarse con cero filas durante el cálculo de la cabecera del plan de consulta. [#99835](https://github.com/ClickHouse/ClickHouse/pull/99835) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un bloqueo (desreferenciación de puntero nulo) al ejecutar `ALTER TABLE ... MODIFY COLUMN ... COMMENT` en tablas Iceberg. [#99838](https://github.com/ClickHouse/ClickHouse/pull/99838) ([Desel72](https://github.com/Desel72)).
* Se corrigió la configuración `aggregate_functions_null_for_empty` para que funcione con funciones de agregación que devuelven tipos no `Nullable`, como `Array` o `Map` (por ejemplo, `groupArray`, `sumMap`). [#99839](https://github.com/ClickHouse/ClickHouse/pull/99839) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción LOGICAL\_ERROR en la función `midpoint` al llamarla con tipos enteros mixtos con y sin signo. [#99867](https://github.com/ClickHouse/ClickHouse/pull/99867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción "Block structure mismatch" en consultas con cláusula HAVING en las que la expresión de filtro contiene tanto una agregación envuelta en una función que devuelve NULL como `materialize(0)`. [#99915](https://github.com/ClickHouse/ClickHouse/pull/99915) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un error de aserción en `sipHash128Keyed` (y funciones hash con clave similares) cuando el argumento de datos es un Map con claves de Array u otros tipos de Array anidados. [#99921](https://github.com/ClickHouse/ClickHouse/pull/99921) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción `LOGICAL_ERROR` "Not-ready Set" en la función `IN` durante la optimización del plan de consulta mediante `convertAnyJoinToSemiOrAntiJoin`. [#99939](https://github.com/ClickHouse/ClickHouse/pull/99939) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

#### mejora en compilación/pruebas/empaquetado

* Reducir el tiempo de compilación eliminando inclusiones pesadas de cabeceras y moviendo las instanciaciones costosas de plantillas fuera de las cabeceras. [#97893](https://github.com/ClickHouse/ClickHouse/pull/97893) ([Raúl Marín](https://github.com/Algunenano)).
* Reducir el tiempo de compilación de las funciones aritméticas y de las cabeceras relacionadas reduciendo las matrices de despacho de plantillas y eliminando inclusiones pesadas. [#98204](https://github.com/ClickHouse/ClickHouse/pull/98204) ([Raúl Marín](https://github.com/Algunenano)).
* Usar `mongo-c-driver` 2.2.2. [#98304](https://github.com/ClickHouse/ClickHouse/pull/98304) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usar `postgres` REL\_18\_3. [#98306](https://github.com/ClickHouse/ClickHouse/pull/98306) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Habilitar el jemalloc allocator para las builds de UBSan para evitar la acumulación de RSS causada por el deficiente comportamiento de recuperación de memoria de `malloc` de glibc. [#98444](https://github.com/ClickHouse/ClickHouse/pull/98444) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usar el name mangling v0 de Rust y eliminar los símbolos internos de la biblioteca PRQL para reducir la proliferación de nombres de símbolos procedente de las bibliotecas parser combinator. [#98446](https://github.com/ClickHouse/ClickHouse/pull/98446) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añadir la suite de benchmark TPC-H y el README de TPC-DS a `tests/benchmarks`. [#98495](https://github.com/ClickHouse/ClickHouse/pull/98495) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Añadir pruebas de corrección para las 99 consultas de TPC-DS. [#99204](https://github.com/ClickHouse/ClickHouse/pull/99204) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Añadir una prueba de integración que reproduce el error de DDL CREATE TABLE + ALTER con una réplica fuera de línea ([#44070](https://github.com/ClickHouse/ClickHouse/issues/44070)), marcada como fallo esperado. [#99259](https://github.com/ClickHouse/ClickHouse/pull/99259) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Integrar jemalloc con el prefijo `je_` y eliminar el uso de `--wrap` del enlazador. [#99342](https://github.com/ClickHouse/ClickHouse/pull/99342) ([Azat Khuzhin](https://github.com/azat)).

<div id="262">
  ### Lanzamiento de ClickHouse 26.2, 2026-02-26. [Presentación](https://presentations.clickhouse.com/2026-release-26.2/), [Vídeo](https://www.youtube.com/watch?v=7qHba08vNfo)
</div>

<div id="backward-incompatible-change">
  #### Cambio incompatible con versiones anteriores
</div>

* La deduplicación está activada de forma predeterminada para todas las inserciones. Antes estaba desactivada para las inserciones asíncronas y para las MV, pero activada para las inserciones síncronas. El objetivo es tener los mismos valores predeterminados en ambas formas de inserción. Si tiene la deduplicación desactivada explícitamente en su clúster, debe establecer explícitamente `deduplicate_insert='backward_compatible_choice'` para mantener el comportamiento anterior. Lo mismo sucede con `deduplicate_blocks_in_dependent_materialized_views`. [#95970](https://github.com/ClickHouse/ClickHouse/pull/95970) ([Sema Checherinda](https://github.com/CheSema)).
* Se ha mejorado el formato de almacenamiento de las estadísticas. Ahora, todas las estadísticas se almacenan en un único archivo. [#93414](https://github.com/ClickHouse/ClickHouse/pull/93414) ([Anton Popov](https://github.com/CurtizJ)). Si no habilitaste explícitamente las estadísticas de tablas, puedes ignorar este punto.
* Se limitan los metadatos en memoria de S3(Azure)Queue. Las tablas del sistema cambian de nombre de `azure_queue` a `azure_queue_metadata_cache` y de `system.s3queue` a `s3queue_metadata_cache`. [#95809](https://github.com/ClickHouse/ClickHouse/pull/95809) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Anteriormente, al aplicar una función a una columna `Variant`, se devolvía NULL de forma silenciosa cuando un subtipo de `Variant` era incompatible con la función; ahora se lanza una excepción, lo que puede romper consultas que dependían de ese comportamiento silencioso de NULL. [#95811](https://github.com/ClickHouse/ClickHouse/pull/95811) ([Bharat Nallan](https://github.com/bharatnc)).
* Las columnas `DATE` de PostgreSQL ahora se infieren como `Date32` en ClickHouse (en versiones anteriores se inferían como `Date`, lo que provocaba un desbordamiento de los valores fuera de un rango estrecho). Se permite insertar valores `Date32` de nuevo en PostgreSQL. Cierra [#73084](https://github.com/ClickHouse/ClickHouse/issues/73084). [#95999](https://github.com/ClickHouse/ClickHouse/pull/95999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La semántica de la configuración `do_not_merge_across_partitions_select_final` se aclaró. Anteriormente, la funcionalidad podía habilitarse automáticamente cuando la configuración no se establecía explícitamente en la configuración. Esto provocó confusión en repetidas ocasiones y, lamentablemente, dio lugar a algunos problemas en producción. Ahora, las reglas son más simples: `do_not_merge_across_partitions_select_final=1` habilita la funcionalidad de forma incondicional. Si `do_not_merge_across_partitions_select_final=0`, el modo automático se usa solo si la nueva configuración `enable_automatic_decision_for_merging_across_partitions_for_final=1`; de lo contrario, no se usa. Para preservar en la medida de lo posible el comportamiento anterior, los valores predeterminados se establecieron en `do_not_merge_across_partitions_select_final=0` y `enable_automatic_decision_for_merging_across_partitions_for_final=1`. [#96110](https://github.com/ClickHouse/ClickHouse/pull/96110) ([Nikita Taranov](https://github.com/nickitat)).
* Al crear una tabla de S3 con columnas especificadas explícitamente, ClickHouse ahora valida que esos nombres de columna realmente existan en el esquema del archivo remoto. Las consultas que antes funcionaban con nombres de columna que no coincidían ahora fallarán en el momento de crear la tabla. Esto cierra [#96089](https://github.com/ClickHouse/ClickHouse/issues/96089). [#96194](https://github.com/ClickHouse/ClickHouse/pull/96194) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se prohíbe el uso de subconsultas en ORDER BY y en otras expresiones de clave de tabla. [#96847](https://github.com/ClickHouse/ClickHouse/pull/96847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se habilita `apply_row_policy_after_final` de forma predeterminada. Inicialmente, cuando `optimize_move_to_prewhere_if_final=0`, tanto ROW POLICY como PREWHERE respetaban FINAL y se aplicaban después de FINAL. Esto se vio afectado por [#87303](https://github.com/ClickHouse/ClickHouse/issues/87303), que ignoraba `optimize_move_to_prewhere_if_final` para el filtro de ROW POLICY. Para corregirlo, este PR habilita la configuración `apply_row_policy_after_final`, introducida en [#91065](https://github.com/ClickHouse/ClickHouse/issues/91065). Con `apply_row_policy_after_final` habilitado, ROW POLICY seguirá respetando FINAL de forma predeterminada, como antes. Este PR es un cambio incompatible porque modifica el comportamiento de `optimize_move_to_prewhere_if_final=1`. Ahora, para que ROW POLICY se aplique antes de FINAL, debe usarse `apply_row_policy_after_final` en lugar de `optimize_move_to_prewhere_if_final`. [#97279](https://github.com/ClickHouse/ClickHouse/pull/97279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* El tipo `Date` ahora se serializa como el tipo `date32` nativo de Arrow en los formatos Arrow/ArrowStream, en lugar de `uint16`. Herramientas como PyArrow ahora reconocerán correctamente la columna como un tipo de fecha. El comportamiento anterior puede restaurarse con la configuración `output_format_arrow_date_as_uint16`. Se sigue admitiendo la lectura de archivos Arrow antiguos que usaban `uint16` para columnas `Date`. [#96860](https://github.com/ClickHouse/ClickHouse/pull/96860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Nueva funcionalidad
</div>

* Ahora los usuarios pueden usar ClickStack (una UI de observabilidad) directamente desde ClickHouse, lo que resulta útil para la depuración y el desarrollo local. [#96597](https://github.com/ClickHouse/ClickHouse/pull/96597) ([Aaron Knudtson](https://github.com/knudtty)).
* Se admite la autenticación mediante contraseña de un solo uso basada en el tiempo (TOTP). [#71273](https://github.com/ClickHouse/ClickHouse/pull/71273) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Añade la configuración de la base de datos `lazy_load_tables`. Cuando está habilitada, las tablas no se cargan durante el arranque de la base de datos; en su lugar, se crea un `StorageTableProxy` ligero y el table engine real se materializa al acceder por primera vez. [#96283](https://github.com/ClickHouse/ClickHouse/pull/96283) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Se añadió la configuración `input_format_max_block_wait_ms` para emitir bloques de datos al agotarse el tiempo de espera y se permitió procesar los datos restantes cuando una conexión HTTP se cierra de forma inesperada. [#94509](https://github.com/ClickHouse/ClickHouse/pull/94509) ([Mostafa Mohamed Salah](https://github.com/Sasao4o)).
* Integración del catálogo de Google BigLake. Esto cierra [#95339](https://github.com/ClickHouse/ClickHouse/issues/95339). [#97104](https://github.com/ClickHouse/ClickHouse/pull/97104) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se añadió la tabla del sistema `system.tokenizers`, que muestra todos los tokenizadores disponibles. [#96753](https://github.com/ClickHouse/ClickHouse/pull/96753) ([Robert Schulze](https://github.com/rschu1ze)).
* Añadir una nueva tabla del sistema `system.user_defined_functions` para supervisar el estado de carga y la configuración de las UDF. [#90340](https://github.com/ClickHouse/ClickHouse/pull/90340) ([Xu Jia](https://github.com/XuJia0210)).
* Se añade la tabla `system.jemalloc_stats`, que expone estadísticas del allocator de memoria jemalloc (mediante `malloc_stats_print`) para diagnosticar el uso de memoria en servidores compilados con jemalloc. También se añade un endpoint HTTP `/jemalloc.html` en la interfaz HTTP de ClickHouse para visualizar interactivamente estas estadísticas. [#97077](https://github.com/ClickHouse/ClickHouse/pull/97077) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió la tabla `system.jemalloc_profile_text` para leer y analizar perfiles del heap de jemalloc. El formato de salida se controla con la configuración `jemalloc_profile_text_output_format` (raw, simbolizado o collapsed; el valor predeterminado es collapsed). La resolución de frames inline se controla con `jemalloc_profile_text_symbolize_with_inline` (cuando está activado, los frames inline se incluyen a costa de una simbolización más lenta; cuando está desactivado, se omiten para obtener una salida más rápida). Para el formato collapsed, `jemalloc_profile_text_collapsed_use_count` controla si las pilas se ponderan por el número de asignaciones activas (true) o por bytes activos (false, valor predeterminado). Esto facilita el perfilado de memoria y la visualización de flame graphs a partir de perfiles del heap de jemalloc. Corrige [#93248](https://github.com/ClickHouse/ClickHouse/issues/93248). [#97218](https://github.com/ClickHouse/ClickHouse/pull/97218) ([Antonio Andelic](https://github.com/antonio2368)).
* Añade la configuración `default_dictionary_database`, que permite a ClickHouse resolver los diccionarios externos a los que se hace referencia sin un calificador de base de datos dentro de una base de datos predeterminada especificada. Esto simplifica la migración de diccionarios globales definidos en XML a diccionarios definidos en SQL por base de datos, lo que permite que las consultas de diccionario existentes (p. ej., dictGet('name', …)) sigan funcionando sin cambios. [#91412](https://github.com/ClickHouse/ClickHouse/pull/91412) ([Dmitrii Plotnikov](https://github.com/dimbo4ka)).
* Soporte para ZooKeeper auxiliar en `DatabaseReplicated`. [#91683](https://github.com/ClickHouse/ClickHouse/pull/91683) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Implementa la nueva función de tabla `primes` y la nueva tabla del sistema `system.primes`, que contiene números primos en orden ascendente. Cierra [#90839](https://github.com/ClickHouse/ClickHouse/issues/90839). [#92776](https://github.com/ClickHouse/ClickHouse/pull/92776) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Los async inserts admiten quorum en paralelo. Los datos insertados se replican en el quorum. Si se detectan duplicados, la consulta espera hasta que los datos insertados previamente también se repliquen. [#93356](https://github.com/ClickHouse/ClickHouse/pull/93356) ([Sema Checherinda](https://github.com/CheSema)).
* Se añadieron las funciones `colorOKLABToSRGB`, `colorSRGBToOKLAB` para convertir valores de sRGB a OKLAB y viceversa. [#93361](https://github.com/ClickHouse/ClickHouse/pull/93361) ([Pranav Tiwari](https://github.com/pranavt84)).
* Un nuevo ajuste `deduplicate_insert` que anula `insert_deduplicate` y `async_insert_deduplicate`. [#94413](https://github.com/ClickHouse/ClickHouse/pull/94413) ([Sema Checherinda](https://github.com/CheSema)).
* La configuración del servidor `insert_deduplication_version` permite realizar la migración a un hash de deduplicación unificado. [#95409](https://github.com/ClickHouse/ClickHouse/pull/95409) ([Sema Checherinda](https://github.com/CheSema)).
* Se añade la función hash `xxh3_128`. [#96055](https://github.com/ClickHouse/ClickHouse/pull/96055) ([Raúl Marín](https://github.com/Algunenano)).
* Se añadió la consulta `OPTIMIZE <table> DRY RUN PARTS <part names>` para simular merges sin hacer commit de la parte resultante. Puede ser útil para pruebas: verificar la corrección del merge en la nueva versión, reproducir de forma determinista errores relacionados con merges y hacer benchmark del rendimiento de los merges de forma fiable. [#96122](https://github.com/ClickHouse/ClickHouse/pull/96122) ([Anton Popov](https://github.com/CurtizJ)).
* Añade una nueva comprobación habilitada de forma predeterminada mediante la configuración `check_named_collection_dependencies` para evitar eliminar colecciones nombradas utilizadas por tablas. [#96181](https://github.com/ClickHouse/ClickHouse/pull/96181) ([Pablo Marcos](https://github.com/pamarcos)).
* Se agregó `system.fail_points` para inspeccionar los failpoints existentes en el servidor y verificar si están habilitados o no. Esto ayudará a automatizar las pruebas. [#96762](https://github.com/ClickHouse/ClickHouse/pull/96762) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Añade acceso basado en roles al catálogo de Glue. Usa la configuración `aws_role_arn` y, opcionalmente, `aws_role_session_name`. [#90825](https://github.com/ClickHouse/ClickHouse/pull/90825) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió una configuración, `add_minmax_index_for_temporal_columns`, que, al habilitarse, crea automáticamente índices minmax para todas las columnas `Date`, `Date32`, `Time`, `Time64`, `DateTime` y `DateTime64`. [#93355](https://github.com/ClickHouse/ClickHouse/pull/93355) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Soporte para alias de tabla extendidos en JOINs (consultas como `SELECT * FROM (SELECT 1) AS t(a) JOIN (SELECT 1) AS u(b) ON a = b`). Cierra [#95131](https://github.com/ClickHouse/ClickHouse/issues/95131). [#95331](https://github.com/ClickHouse/ClickHouse/pull/95331) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añadió compatibilidad con `ALTER TABLE RENAME COLUMN` para tablas Iceberg. Antes, solo se admitían `ADD COLUMN, DROP COLUMN, and MODIFY COLUMN`. [#97455](https://github.com/ClickHouse/ClickHouse/pull/97455) ([murphy-4o](https://github.com/murphy-4o)).

<div id="experimental-feature">
  #### Funcionalidad experimental
</div>

* El índice de texto ahora es GA. [#96794](https://github.com/ClickHouse/ClickHouse/pull/96794) ([Robert Schulze](https://github.com/rschu1ze)).
* El tipo de dato `QBit`, para el almacenamiento vectorial cuantizado y empaquetado en bits (usado para la búsqueda aproximada de vecinos más cercanos), ahora está disponible de forma general y ya no requiere habilitar una configuración experimental. [#95358](https://github.com/ClickHouse/ClickHouse/pull/95358) ([Raufs Dunamalijevs](https://github.com/rienath)).
* La búsqueda vectorial en ClickHouse ahora puede usar réplicas en el clúster para *distribuir* la carga y la búsqueda entre las partes del índice vectorial. Esto permite que ClickHouse admita índices vectoriales grandes que superan la capacidad de memoria de una sola VM. [#95876](https://github.com/ClickHouse/ClickHouse/pull/95876) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Se añade un AST fuzzer del servidor controlado por las configuraciones `ast_fuzzer_runs` y `ast_fuzzer_any_query`. Cuando está habilitado, el servidor ejecuta mutaciones aleatorias de cada consulta después de su ejecución normal y descarta los resultados. [#97568](https://github.com/ClickHouse/ClickHouse/pull/97568) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade la función `iif` al dialecto KQL experimental. [#94790](https://github.com/ClickHouse/ClickHouse/pull/94790) ([happyso](https://github.com/sunyeongchoi)).
* La inferencia de esquema ahora tiene en cuenta `allow_experimental_nullable_tuple_type`. Cuando está habilitado, permite que los tipos de tupla inferidos sean `Nullable(Tuple(...))`, de modo que los objetos anidados que falten puedan convertirse en `NULL` en lugar de en una tupla de elementos `NULL`. [#95525](https://github.com/ClickHouse/ClickHouse/pull/95525) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* La configuración `use_statistics_cache` ahora está habilitada de forma predeterminada, por lo que las estadísticas de columnas se almacenan en caché en memoria para acelerar la optimización de consultas sin necesidad de volver a cargarlas desde cada parte. [#95950](https://github.com/ClickHouse/ClickHouse/pull/95950) ([Han Fei](https://github.com/hanfei1991)).

<div id="performance-improvement">
  #### Mejora del rendimiento
</div>

* Permite usar cualquier expresión determinista de la clave primaria para la omisión de datos (por ejemplo, `ORDER BY cityHash64(user_id)`/ `ORDER BY length(user_id)`). En el caso de las expresiones deterministas, ClickHouse puede aplicar la expresión a las constantes de la consulta y usar el resultado en el índice de la clave primaria para predicados como `=`, `IN` y `has`. Si la expresión también es inyectiva (por ejemplo, `ORDER BY hex(p)` o `ORDER BY reverse(tuple(reverse(p), hex(p)))`), podemos usar eficazmente el índice para las formas negadas: `!=`, `NOT IN` y `NOT has`. Cierra [#10685](https://github.com/ClickHouse/ClickHouse/issues/10685). Cierra [#82161](https://github.com/ClickHouse/ClickHouse/issues/82161). [#92952](https://github.com/ClickHouse/ClickHouse/pull/92952) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se ha mejorado el formato de almacenamiento de las estadísticas. Ahora, todas las estadísticas se almacenan en un único archivo. [#93414](https://github.com/ClickHouse/ClickHouse/pull/93414) ([Anton Popov](https://github.com/CurtizJ)).
* Permitir la lectura en paralelo para motores de tabla y funciones remotos en la caché del sistema de archivos. [#71781](https://github.com/ClickHouse/ClickHouse/pull/71781) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se permite usar la caché de páginas en espacio de usuario con archivos locales y con funciones de tabla de almacenamiento de objetos. [#77874](https://github.com/ClickHouse/ClickHouse/pull/77874) ([Michael Kolupaev](https://github.com/al13n321)).
* Se evita el uso innecesario de `memcpy` en la caché de páginas en espacio de usuario. [#77884](https://github.com/ClickHouse/ClickHouse/pull/77884) ([Michael Kolupaev](https://github.com/al13n321)).
* El valor predeterminado de `concurrent_threads_scheduler` ahora es `max_min_fair` en lugar de `fair_round_robin`. Esto mejora la equidad cuando la carga es alta al priorizar las consultas con menos slots asignados, de modo que las consultas de corta duración no se vean penalizadas por las de larga duración. [#95300](https://github.com/ClickHouse/ClickHouse/pull/95300) ([Sergei Trifonov](https://github.com/serxa)).
* Si una consulta `FINAL` usaba la condición de la clave primaria para filtrar, seguida de índices de omisión para otras condiciones, el paso de procesamiento `PrimaryKeyExpand` ahora solo comprobará la intersección de los rangos iniciales preseleccionados de la clave primaria. [#94903](https://github.com/ClickHouse/ClickHouse/pull/94903) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Al usar réplicas paralelas con funciones de tabla como `s3(...)`, las consultas con una sola subconsulta que envuelve la función de tabla ahora se paralelizan automáticamente entre las réplicas, mientras que antes solo se paralelizaban las referencias directas a funciones de tabla. Cierra [#92264](https://github.com/ClickHouse/ClickHouse/issues/92264). [#96332](https://github.com/ClickHouse/ClickHouse/pull/96332) ([phulv94](https://github.com/phulv94)).
* Se habilita la división en segmentos separados de los archivos de datos y del sistema de la caché. [#87834](https://github.com/ClickHouse/ClickHouse/pull/87834) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se aceleran algunas operaciones de hash join al implementar despacho dinámico para `ColumnVector::replicate`. [#79573](https://github.com/ClickHouse/ClickHouse/pull/79573) ([Raúl Marín](https://github.com/Algunenano)).
* Mejora del rendimiento para `parallel hash join` en casos de predicados complejos. Anteriormente, procesábamos las filas no emparejadas en un solo hilo, lo que no es óptimo; esta optimización paraleliza el procesamiento de las filas no emparejadas en varios hilos. Se puede activar o desactivar con el ajuste `parallel_non_joined_rows_processing`. Activado de forma predeterminada. [#92068](https://github.com/ClickHouse/ClickHouse/pull/92068) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se optimizó ligeramente el análisis del tipo JSON. [#93614](https://github.com/ClickHouse/ClickHouse/pull/93614) ([Pavel Kruglov](https://github.com/Avogar)).
* Mejora de la huella de memoria del AST. La optimización tiene sentido, ya que los campos no se utilizan cuando no se usa el resaltado ni se analizan VALUES. [#93974](https://github.com/ClickHouse/ClickHouse/pull/93974) ([Ilya Yatsishin](https://github.com/qoega)).
* Optimiza el consumo de memoria de los objetos AST de Tuple con nombres. Coloca los nombres de columna como cadenas en el objeto Tuple en lugar de mantenerlos en nodos literales AST genéricos. [#94704](https://github.com/ClickHouse/ClickHouse/pull/94704) ([Ilya Yatsishin](https://github.com/qoega)).
* Se mejora la desvirtualización con opciones adicionales del enlazador. [#94737](https://github.com/ClickHouse/ClickHouse/pull/94737) ([Nikita Taranov](https://github.com/nickitat)).
* Mejora el rendimiento de la clonación de réplicas para tablas ReplicatedMergeTree con muchas partes agrupando en lotes las solicitudes a ZooKeeper. [#94847](https://github.com/ClickHouse/ClickHouse/pull/94847) ([c-end](https://github.com/c-end)).
* Cuando la etapa de lectura ya tenía filtros PREWHERE, no se podía añadir un filtro nuevo. Este cambio pospone la optimización de PREWHERE hasta después de la optimización de filtros runtime de JOIN, para que los filtros runtime también puedan llevarse a PREWHERE. [#95838](https://github.com/ClickHouse/ClickHouse/pull/95838) ([Alexander Gololobov](https://github.com/davenger)).
* Acelera la compresión del códec `T64` usando despacho dinámico en x86. [#95881](https://github.com/ClickHouse/ClickHouse/pull/95881) ([Raúl Marín](https://github.com/Algunenano)).
* Se acelera `uniq` para tipos numéricos agrupando las inserciones en lotes cuando es posible (sin NULL, sin -If, sin GROUP BY y sin IPv6 ni String). [#95904](https://github.com/ClickHouse/ClickHouse/pull/95904) ([Raúl Marín](https://github.com/Algunenano)).
* Optimizaciones de bajo nivel para Keeper: se ha detectado que `ZooKeeper::observeOperations` supone >20% del consumo de CPU del hilo de recepción de ZooKeeper. Este cambio lo corrige de la siguiente manera: 1. Para `AggregatedZooKeeperLog::stats`, se usa `CityHash64` en lugar de `SipHash`, ya que es >10x más rápido. 2. Para `Coordination::ErrorCounter`, se usa `std::array<std::atomic<UInt32>, N>` en lugar de `std::unordered_map` y `std::mutex`. [#95962](https://github.com/ClickHouse/ClickHouse/pull/95962) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se eliminó la alineación de 64 bytes para ProfileEvents::Counter para ahorrar memoria. [#96097](https://github.com/ClickHouse/ClickHouse/pull/96097) ([Azat Khuzhin](https://github.com/azat)).
* Optimización de memoria: reducir en 50 veces el tamaño de la estructura `CachedOnDiskReadBufferFromFile`. [#96098](https://github.com/ClickHouse/ClickHouse/pull/96098) ([Azat Khuzhin](https://github.com/azat)).
* No copiar los datos antiguos al redimensionar la tabla hash si está vacía. [#96180](https://github.com/ClickHouse/ClickHouse/pull/96180) ([Raúl Marín](https://github.com/Algunenano)).
* Se admiten filtros de runtime de JOIN para JOINs `RIGHT OUTER`. [#96183](https://github.com/ClickHouse/ClickHouse/pull/96183) ([Hechem Selmi](https://github.com/m-selmi)).
* La optimización `enable_join_runtime_filters` ahora es la predeterminada. [#89314](https://github.com/ClickHouse/ClickHouse/pull/89314) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Anteriormente, la optimización direct read del índice de texto se aplicaba solo cuando todas las partes tenían un índice de texto materializado. Este PR añade compatibilidad parcial: si algunas partes tienen un índice de texto materializado, esas partes lo usarán, mientras que las partes sin un índice de texto materializado recurrirán a la expresión de filtro original. [#96411](https://github.com/ClickHouse/ClickHouse/pull/96411) ([Anton Popov](https://github.com/CurtizJ)).
* Se añadieron índices secundarios `minmax` en las columnas de tiempo e índices `bloom_filter` en las columnas `query_id`/`initial_query_id` de las tablas de logs del sistema para agilizar el filtrado. [#96712](https://github.com/ClickHouse/ClickHouse/pull/96712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La optimización de materialización diferida ahora se aplica a todas las ramas de una consulta `UNION ALL`, no solo a la primera. Las consultas que combinan varias lecturas ordenadas y limitadas de distintas tablas `MergeTree` mediante `UNION ALL` ahora se beneficiarán de la lectura diferida de columnas en cada rama, lo que reduce la E/S. [#96832](https://github.com/ClickHouse/ClickHouse/pull/96832) ([Federico Ginosa](https://github.com/menxit)).
* Optimiza el cálculo del skip index minmax durante INSERT eliminando una copia de datos innecesaria y habilitando el cálculo vectorizado de mínimos/máximos en columnas numéricas. [#97392](https://github.com/ClickHouse/ClickHouse/pull/97392) ([Raúl Marín](https://github.com/Algunenano)).
* El motor `DeltaLake` ahora toma el resultado de `count()` de los metadatos de Delta Lake y muestra las estadísticas correctas de la tabla en system.tables (bytes/filas totales). [#96190](https://github.com/ClickHouse/ClickHouse/pull/96190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Las columnas no utilizadas también se eliminan del paso de lectura cuando se lee desde un MergeTree. Esto es especialmente útil cuando se hace pushdown de un filtro a `PREWHERE`. [#89982](https://github.com/ClickHouse/ClickHouse/pull/89982) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se mejoró el procesamiento de la consulta `SHOW TABLES` al obtener solo los nombres de las tablas, y se mejoró getLightweightTablesIterator para que devuelva una estructura que contenga únicamente los nombres de las tablas. Resuelve [#93835](https://github.com/ClickHouse/ClickHouse/issues/93835). [#94467](https://github.com/ClickHouse/ClickHouse/pull/94467) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Mejora `assumeNotNull`, `coalesce` e `ifNull` para permitir la poda de la clave primaria y del `skip index` en predicados de rango cuando las columnas clave se envuelven en estas funciones. Cierra [#94689](https://github.com/ClickHouse/ClickHouse/issues/94689). [#94754](https://github.com/ClickHouse/ClickHouse/pull/94754) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se añaden las extensiones with\_data & with\_stat a la solicitud getChildren de Keeper. Esto permite obtener no solo la lista de hijos, sino también su `stat` y/o `data` en una sola operación. [#94826](https://github.com/ClickHouse/ClickHouse/pull/94826) ([Nikolay Degterinsky](https://github.com/evillique)).
* El análisis de índices se realiza solo una vez (en la mayoría de los casos), independientemente de si se acaba ejecutando un plan local o uno con réplicas paralelas. [#94854](https://github.com/ClickHouse/ClickHouse/pull/94854) ([Nikita Taranov](https://github.com/nickitat)).
* Permite habilitar el análisis distribuido de índices según la cantidad de partes (`distributed_index_analysis_min_parts_to_activate`) y el tamaño de los índices (`distributed_index_analysis_min_indexes_size_to_activate`). [#95216](https://github.com/ClickHouse/ClickHouse/pull/95216) ([Azat Khuzhin](https://github.com/azat)).
* Se habilita la optimización de PREWHERE para tablas Iceberg. [#95476](https://github.com/ClickHouse/ClickHouse/pull/95476) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se reduce el consumo de memoria de algunas clases de AST. [#95514](https://github.com/ClickHouse/ClickHouse/pull/95514) ([Raúl Marín](https://github.com/Algunenano)).
* Limita el número de flujos del pipeline generados con `split_intersecting_parts_ranges_into_layers` habilitado. Ayuda a evitar un consumo excesivo de memoria. [#96478](https://github.com/ClickHouse/ClickHouse/pull/96478) ([Nikita Taranov](https://github.com/nickitat)).
* Se implementó la optimización de conjuntos equivalentes para múltiples joins. Las consultas con múltiples operaciones consecutivas de `INNER JOIN` ahora se benefician de una mejora en la optimización de pushdown de filtros. Cuando las tablas se unen por columnas equivalentes (p. ej., `t1 JOIN t2 ON t1.id = t2.id JOIN t3 ON t2.id = t3.id WHERE t1.id > 10`), los filtros aplicados a cualquier tabla de la cadena se hacen pushdown automáticamente a todas las tablas. Cierra [#96550](https://github.com/ClickHouse/ClickHouse/issues/96550). [#96596](https://github.com/ClickHouse/ClickHouse/pull/96596) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Optimiza el escaneo de metadata de delta lake. Incorpora cambios de la PR de delta-kernel [https://github.com/delta-io/delta-kernel-rs/pull/1827](https://github.com/delta-io/delta-kernel-rs/pull/1827). [#96686](https://github.com/ClickHouse/ClickHouse/pull/96686) ([Kseniia Sumarokova](https://github.com/kssenii)).
* En la base de datos Replicated, no actualice el clúster almacenado en caché para cada consulta de prueba. [#96897](https://github.com/ClickHouse/ClickHouse/pull/96897) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Utiliza el índice de clave primaria al filtrar con `startsWithUTF8` si el prefijo contiene únicamente caracteres ASCII. [#97055](https://github.com/ClickHouse/ClickHouse/pull/97055) ([vkcku](https://github.com/vkcku)).

<div id="improvement">
  #### Mejora
</div>

* Añadir trazas de OpenTelemetry para las peticiones de Keeper. [#91332](https://github.com/ClickHouse/ClickHouse/pull/91332) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Nuevas opciones de configuración: `logger.startup_console_level` & `logger.shutdown_console_level` para anular el nivel de registro de la consola durante el inicio y el apagado de ClickHouse, respectivamente. [#95919](https://github.com/ClickHouse/ClickHouse/pull/95919) ([Garrett Thomas](https://github.com/garrettthomaskth)).
* Se respetan las sobrescrituras de la línea de comandos al recargar la configuración. Cierra [#80294](https://github.com/ClickHouse/ClickHouse/issues/80294). [#80295](https://github.com/ClickHouse/ClickHouse/pull/80295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permitir sobrescrituras de clave-valor en los parámetros de named collection de la función de tabla `mongodb`. [#89616](https://github.com/ClickHouse/ClickHouse/pull/89616) ([vanchaklar](https://github.com/vanchaklar)).
* La optimización de lectura en orden para las tablas Iceberg ahora también funciona con funciones de ordenación complejas como `icebergBucket` y `icebergTruncate`, no solo con referencias simples a columnas. [#90256](https://github.com/ClickHouse/ClickHouse/pull/90256) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se añade una nueva columna llamada parts\_postpone\_reasons en system.mutations para mejorar el diagnóstico, que muestra los motivos de aplazamiento de las partes. [#92206](https://github.com/ClickHouse/ClickHouse/pull/92206) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Seguimiento de los cambios en el número de filas que se van a leer (debido a inserciones/eliminaciones o al uso de la caché de condiciones de consulta) en `DataflowStatisticsCache`. [#93636](https://github.com/ClickHouse/ClickHouse/pull/93636) ([Nikita Taranov](https://github.com/nickitat)).
* Se admite la consulta SYSTEM RESET DDL WORKER \[ON CLUSTER]. Solicita restablecer el estado de DDLWorker en su thread principal. Resulta útil para refrescar la réplica activa cuando se actualizan los ID del host. [#93780](https://github.com/ClickHouse/ClickHouse/pull/93780) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Se añade compatibilidad con `mutation_ids` en `system.part_log` para los tipos de evento `MUTATE_PART` y `MUTATE_PART_START`. [#93811](https://github.com/ClickHouse/ClickHouse/pull/93811) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Las operaciones en segundo plano (Mutate, Merge) ahora pueden configurarse de forma independiente a través del perfil 'background'. Antes, estas operaciones compartían la configuración con las consultas normales mediante el perfil 'default'. [#93905](https://github.com/ClickHouse/ClickHouse/pull/93905) ([Arsen Muk](https://github.com/arsenmuk)).
* Se añadió más información a `system.crash_log`. [#94112](https://github.com/ClickHouse/ClickHouse/pull/94112) [#95857](https://github.com/ClickHouse/ClickHouse/pull/95857) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se añadió la nueva métrica `QueryNonInternal` para realizar un seguimiento del número de consultas no internas en ejecución. Esta métrica se expone como `ClickHouseMetrics_QueryNonInternal` y ayuda a los operadores a supervisar la concurrencia de consultas con respecto al límite `max_concurrent_queries`, que solo se aplica a las consultas no internas. [#94284](https://github.com/ClickHouse/ClickHouse/pull/94284) ([Ashwath Singh](https://github.com/ashwath)).
* Se añade compatibilidad con la recopilación de estadísticas de bytes de entrada para columnas de partes compactas en `RuntimeDataflowStatisticsCacheUpdater`. [#94626](https://github.com/ClickHouse/ClickHouse/pull/94626) ([Nikita Taranov](https://github.com/nickitat)).
* Añade una comprobación para detectar una configuración incorrecta de Keeper que provoca fallos en la formación del clúster. Cierra [#60932](https://github.com/ClickHouse/ClickHouse/issues/60932). [#94682](https://github.com/ClickHouse/ClickHouse/pull/94682) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Mejorar la deserialización de prefijos JSON al cargar partes. [#94848](https://github.com/ClickHouse/ClickHouse/pull/94848) ([Pavel Kruglov](https://github.com/Avogar)).
* Refactoriza la escritura para usar el pipeline completo de INSERT, que activa las vistas materializadas en la tabla de destino. [#94890](https://github.com/ClickHouse/ClickHouse/pull/94890) ([Kai Zhu](https://github.com/nauu)).
* Usar optimizaciones del plan de búsqueda por similitud vectorial solo si existe el índice para la columna de búsqueda. [#94998](https://github.com/ClickHouse/ClickHouse/pull/94998) ([Eduard Karacharov](https://github.com/korowa)).
* Comprobar el límite total de memoria antes de la autenticación del usuario y lanzar `(total) memory limit exceeded` si el límite total supera lo permitido. [#95003](https://github.com/ClickHouse/ClickHouse/pull/95003) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se añadió la opción de configuración `throw_on_unmatched_row_policies` que, cuando está habilitada, lanza una excepción si un usuario consulta una tabla que tiene políticas de filas pero ninguna de ellas se le aplica, lo que evita el comportamiento ambiguo de devolver todas las filas debido a una mala configuración del control de acceso. [#95014](https://github.com/ClickHouse/ClickHouse/pull/95014) ([Vitaly Baranov](https://github.com/vitlibar)).
* Actualización dinámica de los tokens de acceso de S3 en consultas largas con Unity Catalog. Esto cierra [#93981](https://github.com/ClickHouse/ClickHouse/issues/93981). [#95069](https://github.com/ClickHouse/ClickHouse/pull/95069) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Desactiva la liberación gradual de páginas sucias de jemalloc si ClickHouse está sometido a una presión de memoria sostenida durante `memory_worker_decay_adjustment_period_ms` milisegundos. Vuelve a activarla si ClickHouse opera en condiciones normales durante el mismo periodo de tiempo. [#95145](https://github.com/ClickHouse/ClickHouse/pull/95145) ([Antonio Andelic](https://github.com/antonio2368)).
* Compatibilidad con ZooKeeper auxiliar para S3Queue mediante la configuración `keeper_path` de s3Queue. [#95203](https://github.com/ClickHouse/ClickHouse/pull/95203) ([Diego Nieto](https://github.com/lesandie)).
* Se respeta `max_parts_to_merge_at_once` en las fusiones de partes con eliminación por TTL. [#95315](https://github.com/ClickHouse/ClickHouse/pull/95315) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Añadir `connection_address` y `connection_port` a query\_log para reflejar la conexión física (`address` y `port` se reemplazan al conectarse a través de un proxy y auth\_use\_forwarded\_address=1). [#95471](https://github.com/ClickHouse/ClickHouse/pull/95471) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige el cálculo incorrecto de memoria para la caché de condiciones de la consulta. El problema principal era que no se tenía en cuenta la clave de la caché, que estaba compuesta por varias cadenas (como part\_name, el id de la tabla y la condición SQL completa). [#95478](https://github.com/ClickHouse/ClickHouse/pull/95478) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* El servidor iniciado con la configuración integrada permitirá gestionar usuarios y permisos, guardándolos en el directorio `access`, igual que la configuración habitual. Esto mejora las pruebas. También se habilitaron todas las access\_control\_improvements en la configuración integrada y en clickhouse-local. [#95481](https://github.com/ClickHouse/ClickHouse/pull/95481) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se mejoraron los mensajes de error de autenticación de S3 para incluir una indicación de revisar las credenciales cuando se deniega el acceso. [#95648](https://github.com/ClickHouse/ClickHouse/pull/95648) ([Gerald Latkovic](https://github.com/batkovic75)).
* Se habilita la caché de estadísticas y se establece el período de actualización de la caché en 300 s. [#95841](https://github.com/ClickHouse/ClickHouse/pull/95841) ([Han Fei](https://github.com/hanfei1991)).
* Se añadió el nombre del componente a `system.aggregated_zookeeper_log`. [#95882](https://github.com/ClickHouse/ClickHouse/pull/95882) ([Antonio Andelic](https://github.com/antonio2368)).
* Omitir las lecturas desde el almacenamiento de objetos al consultar las tablas `DeltaLake` desde `system.tables`. [#95899](https://github.com/ClickHouse/ClickHouse/pull/95899) ([Antonio Andelic](https://github.com/antonio2368)).
* Se habilita `enable_max_bytes_limit_for_min_age_to_force_merge` de forma predeterminada si la configuración `compatibility` es `26.2` o superior. [#95917](https://github.com/ClickHouse/ClickHouse/pull/95917) ([Christoph Wurm](https://github.com/cwurm)).
* Delta Lake ya está disponible en macOS. Cierra #95979. [#95985](https://github.com/ClickHouse/ClickHouse/pull/95985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* En versiones anteriores, al combinar expresiones ALTER en conflicto con UPDATE y RENAME COLUMN, se lanzaba un error lógico en lugar de una excepción adecuada. Cierra [#70678](https://github.com/ClickHouse/ClickHouse/issues/70678). [#96022](https://github.com/ClickHouse/ClickHouse/pull/96022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora la salida de ayuda de todas las aplicaciones de ClickHouse y añade una opción `--no-sudo`, junto con algunas correcciones. Da continuidad a [#58244](https://github.com/ClickHouse/ClickHouse/issues/58244) de [Ilya Yatsishin](https://github.com/qoega). [#96025](https://github.com/ClickHouse/ClickHouse/pull/96025) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agregó el alias `distanceCosine` para `cosineDistance`, ya que todas las demás funciones de distancia ya tienen un alias de este tipo. [#96065](https://github.com/ClickHouse/ClickHouse/pull/96065) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se añadió compatibilidad con la extensión `with_data` de Keeper para mejorar la obtención de tablas en la base de datos Replicated. [#96090](https://github.com/ClickHouse/ClickHouse/pull/96090) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se actualiza chdig a [v26.2.1](https://github.com/azat/chdig/releases/tag/v26.2.1) (nuevas funcionalidades y compatibilidad con MacOS). [#96113](https://github.com/ClickHouse/ClickHouse/pull/96113) ([Azat Khuzhin](https://github.com/azat)).
* Mejora del pushdown de filtros para `numbers` y `primes`. ClickHouse ahora puede derivar cotas conservadoras de valores a partir de las condiciones `WHERE` cuando no es posible derivar cotas exactas, y restringir en consecuencia la generación de secuencias (por ejemplo, para `WHERE number % 5 < 2 AND number > 100 AND number < 300`, ClickHouse solo generará números entre 100 y 300, y luego aplicará el predicado), evitando escaneos no acotados. Cierra [#84853](https://github.com/ClickHouse/ClickHouse/issues/84853). Cierra [#93913](https://github.com/ClickHouse/ClickHouse/issues/93913). [#96115](https://github.com/ClickHouse/ClickHouse/pull/96115) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Anteriormente, el formateador ponía SELECT entre paréntesis cuando había una cláusula `COMMENT` para evitar ambigüedades en el análisis sintáctico. En su lugar, ahora coloca `COMMENT` antes de `AS SELECT`, lo que elimina la ambigüedad sin necesidad de paréntesis. [#96293](https://github.com/ClickHouse/ClickHouse/pull/96293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La opción de configuración `allow_impersonate_user` ahora se encuentra dentro de la sección `access_control_improvements`, en lugar de ser una opción de configuración del servidor independiente. [#96451](https://github.com/ClickHouse/ClickHouse/pull/96451) ([Vitaly Baranov](https://github.com/vitlibar)).
* Hacer que la opción de configuración `core_dump.size_limit` admita recarga en caliente, para evitar tener que reiniciar los servidores para que los cambios de configuración surtan efecto. [#96524](https://github.com/ClickHouse/ClickHouse/pull/96524) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Mejora la interoperabilidad del perfilador de CPU y del perfilador en tiempo real con los tiempos de espera de socket. [#96601](https://github.com/ClickHouse/ClickHouse/pull/96601) ([Sergei Trifonov](https://github.com/serxa)).
* Evita que reaparezcan los datos eliminados si se ejecuta ADD COLUMN poco después de la mutación DROP COLUMN. [#96713](https://github.com/ClickHouse/ClickHouse/pull/96713) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Cambio del tipo de `function_id` en `system.instrumentation` de LowCardinality(Int32) a Int32. [#96726](https://github.com/ClickHouse/ClickHouse/pull/96726) (Copilot).
* La espera síncrona de las mutaciones respetará la cancelación de consultas y los límites de tiempo. [#96756](https://github.com/ClickHouse/ClickHouse/pull/96756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió el comando de sistema `SYSTEM RELOAD DELTA KERNEL TRACING <level>` para cambiar el logging de delta-kernel, lo que puede resultar útil para la depuración. [#96763](https://github.com/ClickHouse/ClickHouse/pull/96763) ([Kseniia Sumarokova](https://github.com/kssenii)).
* El filtrado por familia de direcciones IP, es decir, los ajustes `dns_allow_resolve_names_to_ipv4/ipv6`, se aplica incluso si la caché de DNS está deshabilitada. [#96810](https://github.com/ClickHouse/ClickHouse/pull/96810) ([c-end](https://github.com/c-end)).
* Mejora de la introspección de jemalloc. [#96840](https://github.com/ClickHouse/ClickHouse/pull/96840) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la interfaz web de `/play`, que arrojaba `QUERY_CACHE_USED_WITH_SYSTEM_TABLE` al consultar tablas del sistema. [#96869](https://github.com/ClickHouse/ClickHouse/pull/96869) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora de la interfaz web: cambiar el favicon para indicar el estado de ejecución de una consulta; mostrar los errores de las consultas auxiliares (carga de bases de datos y tablas) en lugar de ignorarlos silenciosamente. Cierra [#85055](https://github.com/ClickHouse/ClickHouse/issues/85055). [#96883](https://github.com/ClickHouse/ClickHouse/pull/96883) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se puede hacer clic en el panel izquierdo de la UI de `/play` para mostrar u ocultar la lista de bases de datos. [#96884](https://github.com/ClickHouse/ClickHouse/pull/96884) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `DROP DATABASE` ahora elimina las tablas en orden inverso de dependencia, lo que mejora la tolerancia a fallos cuando la base de datos contiene tablas con dependencias de carga (por ejemplo, tablas `Distributed` que usan `joinGet`). [#97057](https://github.com/ClickHouse/ClickHouse/pull/97057) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Actualizar yaml-cpp para evitar que se omita YAML no válido. [#97333](https://github.com/ClickHouse/ClickHouse/pull/97333) ([Azat Khuzhin](https://github.com/azat)).
* Mostrar un indicador de carga en la barra lateral de `play.html` mientras se cargan las tablas. [#97531](https://github.com/ClickHouse/ClickHouse/pull/97531) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade un botón para copiar al portapapeles los resultados sin procesar de la consulta en la interfaz web integrada (play.html). [#97532](https://github.com/ClickHouse/ClickHouse/pull/97532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el ofuscador de consultas (`clickhouse-format --obfuscate`) para que genere SQL que pueda analizarse en más casos. [#97584](https://github.com/ClickHouse/ClickHouse/pull/97584) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Corrección de errores (mal funcionamiento visible para el usuario en una versión estable oficial)
</div>

* Después de `ALTER` que solo afectan a los metadatos, como ampliar los elementos de los Enums, la optimización de la agregación con proyección puede terminar provocando una excepción. [#84143](https://github.com/ClickHouse/ClickHouse/pull/84143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las vistas materializadas ahora usan como contexto de ejecución la base de datos en la que se crearon, lo que significa que: - es posible omitir la calificación explícita de la base de datos en los nombres a los que se hace referencia en la consulta SELECT de la vista - si no se indica una calificación explícita de la base de datos, se asume la misma base de datos en la que se creó la vista materializada. [#88193](https://github.com/ClickHouse/ClickHouse/pull/88193) ([Dmitry Kovalev](https://github.com/dk-github)).
* Corrige la sustitución de parámetros de consulta en los métodos de autenticación de CREATE USER cuando se usa ON CLUSTER. Los parámetros de consulta en los métodos de autenticación (p. ej., `password`) no se sustituían, lo que provocaba errores UNKNOWN\_QUERY\_PARAMETER en nodos remotos. [#92777](https://github.com/ClickHouse/ClickHouse/pull/92777) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Se corrigieron inconsistencias en el análisis de índices de texto para las funciones `has`, `mapContainsKey` y `mapContainsValue`. Anteriormente, las consultas que usaban estas funciones podían devolver resultados distintos dependiendo de si la expresión se evaluaba con o sin un índice de texto. [#93578](https://github.com/ClickHouse/ClickHouse/pull/93578) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un fallo al adjuntar una tabla a una base de datos `MaterializedPostgreSQL` si `dropReplicationSlot` lanza una excepción durante el desenrollado de la pila. [#96871](https://github.com/ClickHouse/ClickHouse/pull/96871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las copias de seguridad podían hacer que el servidor fallara si se ejecutaban muchas copias de seguridad concurrentes que competían por los mismos archivos. [#93659](https://github.com/ClickHouse/ClickHouse/pull/93659) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige las consultas con réplicas paralelas y un JOIN con una tabla no MT. Cierra [#92056](https://github.com/ClickHouse/ClickHouse/issues/92056). [#93902](https://github.com/ClickHouse/ClickHouse/pull/93902) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige un problema por el cual las columnas de Iceberg con un punto en el nombre devolvían NULL como valor. [#94335](https://github.com/ClickHouse/ClickHouse/pull/94335) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Se corrigió el manejo de cadenas UTF-8 en `stringJaccardIndexUTF8` y se mejoró el rendimiento. [#94613](https://github.com/ClickHouse/ClickHouse/pull/94613) ([Joanna Hulboj](https://github.com/jh0x)).
* Corrige posibles desbordamientos en `WITH FILL STALENESS` (que provocan UB y/o bucles infinitos). Corrige un posible bucle infinito debido a saltos grandes. Añade compatibilidad con el analizador antiguo (principalmente para pruebas de estrés). [#94663](https://github.com/ClickHouse/ClickHouse/pull/94663) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigen posibles consultas distribuidas que pueden quedar bloqueadas cuando los nombres de host se resuelven en varias direcciones y una réplica remota se congela. [#94726](https://github.com/ClickHouse/ClickHouse/pull/94726) ([c-end](https://github.com/c-end)).
* Corrige un resultado no válido al unir varias expresiones de tabla, cuando la expresión de tabla más a la izquierda es una función de tabla `-Cluster`. Resuelve [#89996](https://github.com/ClickHouse/ClickHouse/issues/89996). [#94748](https://github.com/ClickHouse/ClickHouse/pull/94748) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige la poda incorrecta de la clave primaria y del índice de omisión para predicados que involucran `toWeek`, `toYearWeek`, `toStartOfWeek`, `toLastDayOfWeek` y `toDayOfWeek`, y corrige excepciones en algunas de estas funciones para consultas válidas con `LowCardinality(String)`. [#94816](https://github.com/ClickHouse/ClickHouse/pull/94816) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se elimina la omisión innecesaria de la comprobación de permisos en las consultas `ATTACH` para una vista con SQL Security. Esto evita una posible escalada de privilegios cuando un usuario adjunta una vista con un definidor sin validar el acceso requerido. [#94865](https://github.com/ClickHouse/ClickHouse/pull/94865) ([pufit](https://github.com/pufit)).
* Corrige un fallo al iniciar `ReplicatedMergeTree` causado por la eliminación simultánea de los directorios `delete_tmp_*`. [#94892](https://github.com/ClickHouse/ClickHouse/pull/94892) ([myeongjun](https://github.com/myeongjjun)).
* Se corrige un problema por el que `INSERT` en tablas Iceberg con vistas materializadas perdía información de deduplicación, lo que provocaba una excepción. [#94938](https://github.com/ClickHouse/ClickHouse/pull/94938) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige un error por el que `SYSTEM DROP QUERY CACHE TAG 'TAGNAME' ON CLUSTER <CLUSTERNAME>` hacía que se eliminara toda la caché del clúster. [#94978](https://github.com/ClickHouse/ClickHouse/pull/94978) ([Rory Crispin](https://github.com/RoryCrispin)).
* Mantener la granularidad constante del índice (use\_const\_adaptive\_granularity) tras las fusiones verticales (v2 con una corrección para Nested y en general). [#95013](https://github.com/ClickHouse/ClickHouse/pull/95013) ([Azat Khuzhin](https://github.com/azat)).
* Corrige una condición de carrera en la caché del sistema de archivos en la versión 26.1 tras \[ClickHouse/ClickHouse[#82764](https://github.com/ClickHouse/ClickHouse/issues/82764)]\([https://github.com/ClickHouse/ClickHouse/pull/82764](https://github.com/ClickHouse/ClickHouse/pull/82764)). [#95042](https://github.com/ClickHouse/ClickHouse/pull/95042) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige la cancelación de la table function postgresql() mediante KILL QUERY y la cancelación de consultas (Ctrl+C) en clickhouse-client. [#95136](https://github.com/ClickHouse/ClickHouse/pull/95136) ([Roman Vasin](https://github.com/rvasin)).
* Se corrigió la inferencia de tipos para columnas calificadas de tablas de origen cuando se usan varios joins con la cláusula `USING`. Anteriormente, los joins posteriores actualizaban incorrectamente los tipos de las columnas subyacentes de las tablas de origen a un supertipo común, incluso cuando la columna no intervenía en ese join (p. ej., en `SELECT t2.a FROM t1 LEFT JOIN t2 USING (a) LEFT JOIN t3 USING (a)`, la columna `t2.a` solo se usa en el primer join, por lo que su tipo debería ser el supertipo de `t1.a` y `t2.a`, excluyendo `t3.a`). Esto podía provocar errores lógicos o fallos cuando las funciones esperaban tipos de columna distintos de los que realmente aparecían en el plan de ejecución. [#95157](https://github.com/ClickHouse/ClickHouse/pull/95157) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Hacer que la transformación de la columna se realice solo una vez al obtener el contenido de la lista y de los archivos `.avro` del manifiesto. [#95164](https://github.com/ClickHouse/ClickHouse/pull/95164) ([Daniil Ivanik](https://github.com/divanik)).
* Se corrigió un cálculo incorrecto del tamaño de las columnas JSON que podía provocar un uso excesivo de memoria o estadísticas de columnas erróneas. [#95207](https://github.com/ClickHouse/ClickHouse/pull/95207) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la contabilización inexacta de memoria al aplicar partes de parche grandes después de actualizaciones ligeras. Anteriormente, aplicar parches grandes podía provocar un uso excesivo de memoria y hacer que el proceso del servidor fuera finalizado por el OOM killer. [#95231](https://github.com/ClickHouse/ClickHouse/pull/95231) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió un comportamiento indefinido que podía provocar resultados incorrectos o una excepción cuando una consulta distribuida con `max_parallel_replicas` volvía a una réplica local durante el análisis de índices. [#95263](https://github.com/ClickHouse/ClickHouse/pull/95263) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la agregación de columnas dispersas para `sum` y las series temporales cuando `group_by_overflow_mode` se establece en `any`. [#95301](https://github.com/ClickHouse/ClickHouse/pull/95301) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Corrige un problema de fiabilidad en la política de disco `plain_rewritable`, donde un error de red a mitad del proceso de desvincular un archivo de metadatos podía dejar el almacenamiento en un estado incoherente. [#95302](https://github.com/ClickHouse/ClickHouse/pull/95302) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Se sustituye Date por Date32 para Iceberg. [#95322](https://github.com/ClickHouse/ClickHouse/pull/95322) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* El argumento `password` de la función de tabla `redis` ahora se enmascarará en los logs y las tablas del sistema (p. ej.: `query_log`). [#95325](https://github.com/ClickHouse/ClickHouse/pull/95325) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se corrigió un error por el que las tablas podían eliminarse o modificarse mientras una consulta distribuida seguía ejecutándose en ellas, lo que podía provocar excepciones o resultados incorrectos. [#95356](https://github.com/ClickHouse/ClickHouse/pull/95356) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un error lógico en algunos casos al usar `LIMIT/OFFSET` negativo en consultas distribuidas. [#95357](https://github.com/ClickHouse/ClickHouse/pull/95357) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió un error por el que clickhouse-client pedía la contraseña dos veces al conectarse por ssh. [#95372](https://github.com/ClickHouse/ClickHouse/pull/95372) ([Isak Ellmer](https://github.com/spinojara)).
* Se corrige una condición de carrera en el almacenamiento S3(Azure)Queue. [#95385](https://github.com/ClickHouse/ClickHouse/pull/95385) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige el error del filtro de prewhere causado por expresiones lambda en prewhere. [#95395](https://github.com/ClickHouse/ClickHouse/pull/95395) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Se corrige `optimize_syntax_fuse_functions` para que no reescriba `sum/count/avg` como `sumCount()` cuando el argumento de agregación es `Nullable`. Cierra [#95390](https://github.com/ClickHouse/ClickHouse/issues/95390). [#95441](https://github.com/ClickHouse/ClickHouse/pull/95441) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se evita un posible fallo en las consultas distribuidas en caso de cancelación. [#95466](https://github.com/ClickHouse/ClickHouse/pull/95466) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Se corrige la deduplicación del streaming desde el motor S3(Azure)Queue. [#95467](https://github.com/ClickHouse/ClickHouse/pull/95467) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la actualización de las políticas de filas asignadas al usuario inicial en consultas distribuidas. [#95469](https://github.com/ClickHouse/ClickHouse/pull/95469) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige la comprobación de discos cifrados sobre plain\_rewritable (corrige el posible `It is not possible to register multiple plain-rewritable disks with the same object storage prefix`). [#95470](https://github.com/ClickHouse/ClickHouse/pull/95470) ([Azat Khuzhin](https://github.com/azat)).
* A la función de tabla `mergeTreeProjection` le faltaba una comprobación de acceso, lo que permitía a los usuarios sin permiso SELECT sobre una tabla (pero con permisos para funciones de tabla) leer datos de sus proyecciones. Esta corrección añade la misma comprobación de acceso que ya tienen `mergeTreeIndex` y `mergeTreeAnalyzeIndexes`. [#95480](https://github.com/ClickHouse/ClickHouse/pull/95480) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un posible error lógico al leer la subcolumna de tamaño de las subcolumnas dinámicas de los tipos Dynamic/JSON. [#95573](https://github.com/ClickHouse/ClickHouse/pull/95573) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige una regresión en la replicación sin copia (experimental) introducida por [#94262](https://github.com/ClickHouse/ClickHouse/issues/94262), por la que las partes compartidas podían eliminarse antes de que otras réplicas terminaran de obtenerlas. [#95597](https://github.com/ClickHouse/ClickHouse/pull/95597) ([filimonov](https://github.com/filimonov)).
* Se corrige un cierre inesperado al aplicar `tupleElement` a arrays de JSON. Cierra [#95581](https://github.com/ClickHouse/ClickHouse/issues/95581). [#95647](https://github.com/ClickHouse/ClickHouse/pull/95647) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige la excepción por error lógico al usar un comodín (`*`) dentro de una función lambda en una cláusula VALUES de un JOIN con USING. Cierra [#93675](https://github.com/ClickHouse/ClickHouse/issues/93675). [#95661](https://github.com/ClickHouse/ClickHouse/pull/95661) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigió el error lógico `There was an error: Cannot obtain error message` al esperar un DDL distribuido y eliminar simultáneamente la base de datos Replicated. Corrige el issue [#95539](https://github.com/ClickHouse/ClickHouse/issues/95539). [#95664](https://github.com/ClickHouse/ClickHouse/pull/95664) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrige un problema en la función `IN` que devolvía resultados incorrectos con valores `NULL` cuando `transform_null_in` está habilitada. Cierra [#65776](https://github.com/ClickHouse/ClickHouse/issues/65776). [#95674](https://github.com/ClickHouse/ClickHouse/pull/95674) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Maneja correctamente los tipos `LowCardinality Nullable` en `CAST` cuando la configuración `cast_keep_nullable` está habilitada. Cierra [#95670](https://github.com/ClickHouse/ClickHouse/issues/95670). [#95747](https://github.com/ClickHouse/ClickHouse/pull/95747) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la compactación de datos particionados en Delta Lake. [#95773](https://github.com/ClickHouse/ClickHouse/pull/95773) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige una condición de carrera en la columna Nullable de `join` en los filtros en tiempo de ejecución. [#95775](https://github.com/ClickHouse/ClickHouse/pull/95775) ([Hechem Selmi](https://github.com/m-selmi)).
* Se corrige un posible error lógico en una consulta con comodines (`*`, `table.*`) y `analyzer_compatibility_join_using_top_level_identifier` cuando la columna `USING` tiene tipos distintos en las tablas y en la lista de selección. Cierra [#90477](https://github.com/ClickHouse/ClickHouse/issues/90477). [#95808](https://github.com/ClickHouse/ClickHouse/pull/95808) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigieron errores de seguridad de memoria en operaciones del pool de hilos en paralelo (copias de seguridad, agregación, consultas distribuidas) que podían causar excepciones cuando se producía un error durante la programación de tareas. [#95818](https://github.com/ClickHouse/ClickHouse/pull/95818) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un fallo en DROP WORKLOAD cuando se ejecuta de forma concurrente con consultas que usan el workload que se está eliminando. [#95856](https://github.com/ClickHouse/ClickHouse/pull/95856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la lentitud al consultar las tablas del sistema con un usuario que tiene privilegios limitados en muchas bases de datos. Cierra [#89371](https://github.com/ClickHouse/ClickHouse/issues/89371). [#95874](https://github.com/ClickHouse/ClickHouse/pull/95874) ([pufit](https://github.com/pufit)).
* Se corrigió la ejecución de tupleElement en JSON con rutas anidadas; antes podía dar lugar a resultados de consulta incorrectos. [#95907](https://github.com/ClickHouse/ClickHouse/pull/95907) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió un error `NOT_SUPPORTED` que podía producirse al usar el algoritmo de JOIN `direct` con una tabla MergeTree vacía. [#95935](https://github.com/ClickHouse/ClickHouse/pull/95935) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige un problema por el que el client no sugería ni autocompletaba nombres de alias para configuraciones; cierra [#92190](https://github.com/ClickHouse/ClickHouse/issues/92190). [#95945](https://github.com/ClickHouse/ClickHouse/pull/95945) ([phulv94](https://github.com/phulv94)).
* Se ha corregido event\_date en system.asynchronous\_metric\_log. [#95947](https://github.com/ClickHouse/ClickHouse/pull/95947) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige el manejo de las skipping paths en el tipo de datos JSON. Anteriormente, con `JSON(SKIP path)` se omitían todas las claves JSON con el prefijo `path`, incluso claves como `"pathpath"`, por lo que esto podía provocar pérdida de datos en esas rutas durante el `insert`. Ahora ya está corregido y solo se omite la clave `"path"`. [#95948](https://github.com/ClickHouse/ClickHouse/pull/95948) ([Pavel Kruglov](https://github.com/Avogar)).
* Una parte con proyecciones desconocidas no debe marcarse como perdida definitivamente. [#95952](https://github.com/ClickHouse/ClickHouse/pull/95952) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige un problema por el que la cadena vacía pasaba a ser `NULL` en la tabla `Join` con clave `Nullable(String)`. Cierra [#71414](https://github.com/ClickHouse/ClickHouse/issues/71414). [#96002](https://github.com/ClickHouse/ClickHouse/pull/96002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora, el motor de PostgreSQL puede leer correctamente `BOOLEAN[]`. Cierra [#72754](https://github.com/ClickHouse/ClickHouse/issues/72754). [#96006](https://github.com/ClickHouse/ClickHouse/pull/96006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el formato `ProtobufList` en el caso de lectura desde un archivo vacío. Cierra [#70059](https://github.com/ClickHouse/ClickHouse/issues/70059). [#96007](https://github.com/ClickHouse/ClickHouse/pull/96007) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un problema en el formato `ProtobufList`, que generaba un registro fantasma en tablas vacías. Cierra [#72596](https://github.com/ClickHouse/ClickHouse/issues/72596). [#96010](https://github.com/ClickHouse/ClickHouse/pull/96010) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la incompatibilidad de tipos en la función `if` entre `UInt64` e `Int32` en un caso inusual de consultas distribuidas y PREWHERE, con inferencia de tipos. Cierra [#70017](https://github.com/ClickHouse/ClickHouse/issues/70017). [#96012](https://github.com/ClickHouse/ClickHouse/pull/96012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen las consultas compiladas con `JIT` que usan tipos `Bool`. [#96013](https://github.com/ClickHouse/ClickHouse/pull/96013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un error lógico al leer una columna UUID de una columna TEXT de SQLite. Cierra [#71263](https://github.com/ClickHouse/ClickHouse/issues/71263). [#96016](https://github.com/ClickHouse/ClickHouse/pull/96016) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la conversión de tipos del motor SQLite para `DateTime`, `Date`, `UUID` y otros tipos. Cierra [#73481](https://github.com/ClickHouse/ClickHouse/issues/73481). [#96017](https://github.com/ClickHouse/ClickHouse/pull/96017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los valores `FixedString` se escapaban incorrectamente en consultas a bases de datos externas como SQLite y PostgreSQL. Cierra [#73519](https://github.com/ClickHouse/ClickHouse/issues/73519). En coautoría con @jh0x. [#96019](https://github.com/ClickHouse/ClickHouse/pull/96019) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un error de aserción en WindowTransform con un desplazamiento PRECEDING grande. Cierra [#75852](https://github.com/ClickHouse/ClickHouse/issues/75852). [#96026](https://github.com/ClickHouse/ClickHouse/pull/96026) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un error que podía provocar corrupción de datos cuando las inserciones asíncronas concurrentes usan los mismos nombres de parámetro, pero contienen valores diferentes. [#96035](https://github.com/ClickHouse/ClickHouse/pull/96035) ([Seva Potapov](https://github.com/seva-potapov)).
* Se corrigió el período de los profilers globales (controlado por `global_profiler_real_time_period_ns` y `global_profiler_cpu_time_period_ns`). En lugar del valor configurado, se usaba un valor truncado, lo que hacía que el profiler se activara con más frecuencia de la prevista. [#96048](https://github.com/ClickHouse/ClickHouse/pull/96048) ([Antonio Andelic](https://github.com/antonio2368)).
* Antes, si en una entrada estaba presente el archivo de datos de referencia dentro del archivo de manifiesto de Iceberg para `position delete`, pero su valor era NULL, no obteníamos los límites correctos para los archivos de datos correspondientes. Este PR corrige este error. [#96061](https://github.com/ClickHouse/ClickHouse/pull/96061) ([Daniil Ivanik](https://github.com/divanik)).
* Se corrige la revocación de roles predeterminados. [#96103](https://github.com/ClickHouse/ClickHouse/pull/96103) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige un error de uso tras liberar memoria en el análisis de índices, en una combinación poco frecuente de `use_primary_key` deshabilitado y un número muy elevado de disyunciones de condiciones que utilizan el índice. [#96112](https://github.com/ClickHouse/ClickHouse/pull/96112) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una regresión del códec `Gorilla` cuando un tamaño especificado explícitamente no se corresponde con el tamaño del tipo de dato y el tamaño del búfer es demasiado pequeño. En versiones anteriores, se producía una excepción durante la descompresión. Cierra [#78253](https://github.com/ClickHouse/ClickHouse/issues/78253). [#96118](https://github.com/ClickHouse/ClickHouse/pull/96118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evita un interbloqueo al cargar diccionarios cuando un diccionario hace referencia a una tabla Merge que, a su vez, lo referencia de forma recursiva. Cierra [#78360](https://github.com/ClickHouse/ClickHouse/issues/78360). [#96120](https://github.com/ClickHouse/ClickHouse/pull/96120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrección del uso de un valor no inicializado en `formatDateTime` con especificadores de formato de ancho no fijo, como los de estilo MySQL y JODA. [#96133](https://github.com/ClickHouse/ClickHouse/pull/96133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La combinación de las opciones `use_const_adaptive_granularity` e `index_granularity_bytes` (que significa "granularidad no adaptativa") provocó un cálculo erróneo del número de filas que se debían leer y una excepción. [#96143](https://github.com/ClickHouse/ClickHouse/pull/96143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La ejecución de una mutación ALTER UPDATE no válida en tablas de almacenamiento de objetos de tipo archivo, como S3 y Azure, podía provocar una desreferenciación de nullptr. Cierra [#92994](https://github.com/ClickHouse/ClickHouse/issues/92994). [#96162](https://github.com/ClickHouse/ClickHouse/pull/96162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un problema por el que `AccessRights::contains` devolvía resultados incorrectos con revocaciones parciales. [#96170](https://github.com/ClickHouse/ClickHouse/pull/96170) ([pufit](https://github.com/pufit)).
* Se corrigió la colisión de hash en la caché de condiciones de consulta para constantes plegadas de CTE, lo que podía provocar un resultado de consulta incorrecto. Cierra [#96060](https://github.com/ClickHouse/ClickHouse/issues/96060). [#96172](https://github.com/ClickHouse/ClickHouse/pull/96172) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un posible interbloqueo en ProcessList. Puede ocurrir por una posible inversión en el orden de los bloqueos si el overcommit tracker de memoria se activa mientras añadimos una tarea al verificador de cancelación. [#96182](https://github.com/ClickHouse/ClickHouse/pull/96182) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un error por el que las consultas con joins externos (LEFT, RIGHT o FULL) combinados con varios INNER JOINs podían devolver resultados incorrectos debido a una reordenación no válida de joins. Cuando la condición ON de un join externo hacía referencia a columnas de varias tablas unidas previamente, el optimizador no tenía en cuenta todas las dependencias entre tablas y podía reordenar los joins de forma incorrecta, lo que provocaba la ausencia de filas. Cierra [#95972](https://github.com/ClickHouse/ClickHouse/issues/95972). [#96193](https://github.com/ClickHouse/ClickHouse/pull/96193) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Cuando una tabla no tiene estadísticas definidas, ClickHouse no debería intentar cargarlas. Esto evita cierta sobrecarga (más de 100 ms) al comprobar si existen los archivos de estadísticas. (issue [#96068](https://github.com/ClickHouse/ClickHouse/issues/96068)). [#96233](https://github.com/ClickHouse/ClickHouse/pull/96233) ([Han Fei](https://github.com/hanfei1991)).
* Corrige `optimize_syntax_fuse_functions` para que no reescriba `sum/count/avg` como `sumCount()` cuando el argumento de agregación es `LowCardinality(Nullable)`. Cierra [#95390](https://github.com/ClickHouse/ClickHouse/issues/95390). [#96239](https://github.com/ClickHouse/ClickHouse/pull/96239) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige la poda incorrecta de particiones con `not IN` y `not has` en algunos casos. [#96241](https://github.com/ClickHouse/ClickHouse/pull/96241) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige `stack-use-after-scope` en el índice de similitud vectorial. [#96259](https://github.com/ClickHouse/ClickHouse/pull/96259) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un problema por el que el ejecutor de pruebas no reconocía los comentarios de sugerencia de error cuando una consulta estaba precedida por un comentario SQL. [#96336](https://github.com/ClickHouse/ClickHouse/pull/96336) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige un error lógico en KeyCondition cuando una tabla tiene una clave primaria Nullable y la consulta usa la función `coalesce`, cuyo primer argumento es constante. [#96340](https://github.com/ClickHouse/ClickHouse/pull/96340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La interacción entre `GROUPING SETS`, `group_by_use_nulls` y el tipo de dato `Tuple` con `LowCardinality` en su interior podía producir una estructura de bloques inesperada en el pipeline de consulta, lo que provocaba un error lógico. Esto surgió tras la introducción de `Tuple`s `Nullable`. [#96358](https://github.com/ClickHouse/ClickHouse/pull/96358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Era posible crear una tabla con una expresión vacía `()` como índice, lo que provocaba un acceso no válido a la memoria. [#96363](https://github.com/ClickHouse/ClickHouse/pull/96363) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un fallo del analizador antiguo cuando había JOIN y alias duplicados. [#96405](https://github.com/ClickHouse/ClickHouse/pull/96405) ([Ilya Golshtein](https://github.com/ilejn)).
* Se corrigió el error `Nested columns sizes are inconsistent with local_discriminators` debido a una optimización errónea del filtrado in-place para columnas Variant. [#96410](https://github.com/ClickHouse/ClickHouse/pull/96410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un problema por el que `CREATE TABLE ... CLONE AS ...` ignoraba el calificador completo de la tabla de origen. [#96415](https://github.com/ClickHouse/ClickHouse/pull/96415) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
* Corrige la cancelación de la función de tabla `mysql` con KILL QUERY y al cancelar la consulta (Ctrl+C) en clickhouse-client. [#96437](https://github.com/ClickHouse/ClickHouse/pull/96437) ([Roman Vasin](https://github.com/rvasin)).
* Corrige un bloqueo activo en el hilo de comprobación de cancelación de consultas con valores altos de `max_execution_time`. [#96450](https://github.com/ClickHouse/ClickHouse/pull/96450) ([Sergei Trifonov](https://github.com/serxa)).
* Se corrige un error lógico en algunos casos al utilizar valores fraccionarios de `LIMIT/OFFSET` en consultas distribuidas. [#96475](https://github.com/ClickHouse/ClickHouse/pull/96475) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige una desreferenciación de puntero nulo en ciertas expresiones con funciones lambda. [#96479](https://github.com/ClickHouse/ClickHouse/pull/96479) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados erróneos cuando las columnas `LowCardinality` se convierten en `Nullable`. [#96483](https://github.com/ClickHouse/ClickHouse/pull/96483) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige un fallo al crear una tabla Iceberg con una cláusula `ORDER BY` que hace referencia a una columna inexistente o usa un argumento posicional. Cierra [#93280](https://github.com/ClickHouse/ClickHouse/issues/93280). [#96484](https://github.com/ClickHouse/ClickHouse/pull/96484) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrige la excepción del filtro en tiempo de ejecución para columnas Tuple con subcampos Nullable. [#96509](https://github.com/ClickHouse/ClickHouse/pull/96509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `LOGICAL_ERROR` en el lector nativo de Parquet V3 cuando la columna de filtro de `PREWHERE` contiene valores UInt8 no booleanos. [#96594](https://github.com/ClickHouse/ClickHouse/pull/96594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la regeneración implícita de índices en las tablas replicadas durante los cambios de metadatos. [#96600](https://github.com/ClickHouse/ClickHouse/pull/96600) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige una condición de carrera en DROP WORKLOAD. [#96614](https://github.com/ClickHouse/ClickHouse/pull/96614) ([Sergei Trifonov](https://github.com/serxa)).
* Se corrige un error en las escrituras en tablas Iceberg por el que las inserciones en particiones podían provocar una distribución incorrecta de los datos entre los archivos de partición. [#96620](https://github.com/ClickHouse/ClickHouse/pull/96620) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrigió `heap-use-after-free` en `CREATE TABLE` con restricciones. [#96669](https://github.com/ClickHouse/ClickHouse/pull/96669) ([Nikita Taranov](https://github.com/nickitat)).
* Validar la versión witness en bech32 para evitar el desbordamiento de búfer. [#96671](https://github.com/ClickHouse/ClickHouse/pull/96671) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un error por el que `system.tables` producía errores cuando se creaba un catálogo REST de lago de datos con una configuración `auth_header` no válida. [#96680](https://github.com/ClickHouse/ClickHouse/pull/96680) ([Han Fei](https://github.com/hanfei1991)).
* Se corrigió `min(timestamp)`, que devolvía epoch (`1970-01-01`) mediante `_minmax_count_projection` tras una fusión de TTL cuando se filtran todas las filas de un bloque. [#96703](https://github.com/ClickHouse/ClickHouse/pull/96703) ([Raquel Barbadillo](https://github.com/rbarbadillo)).
* Se mejora la validación de la configuración `iceberg_metadata_file_path` para evitar el path traversal y garantizar que el archivo de metadata especificado esté dentro del directorio de la tabla. [#96754](https://github.com/ClickHouse/ClickHouse/pull/96754) ([Daniil Ivanik](https://github.com/divanik)).
* Se corrige un fallo en `ifNull` con el argumento `Variant` utilizado en `GROUP BY`. [#96790](https://github.com/ClickHouse/ClickHouse/pull/96790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigieron las colisiones de claves de caché entre tablas con la opción `table_disk=1`. [#96818](https://github.com/ClickHouse/ClickHouse/pull/96818) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se corrige que el hilo de purga de MemoryWorker se quedara bloqueado debido a una condición de carrera. [#96819](https://github.com/ClickHouse/ClickHouse/pull/96819) ([Antonio Andelic](https://github.com/antonio2368)).
* No registrar en los logs datos con credenciales en catálogos Iceberg. [#96831](https://github.com/ClickHouse/ClickHouse/pull/96831) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrigió el código de salida de clickhouse-client tras un error del servidor. [#96841](https://github.com/ClickHouse/ClickHouse/pull/96841) ([Vitaly Baranov](https://github.com/vitlibar)).
* Las consultas con CROSS JOIN y réplicas paralelas habilitadas podían devolver resultados incorrectos. Soluciona [#74337](https://github.com/ClickHouse/ClickHouse/issues/74337). [#96848](https://github.com/ClickHouse/ClickHouse/pull/96848) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrigió el error por el que fallaban las consultas `ALTER TABLE DROP COLUMN` tras haberse realizado previamente una actualización ligera en la misma columna. [#96861](https://github.com/ClickHouse/ClickHouse/pull/96861) ([Anton Popov](https://github.com/CurtizJ)).
* Corregido el desbordamiento de pila (fallo) al crear copias de seguridad en formato de archivo (`.zip`, `.tzst`) en un disco `plain_rewritable` de almacenamiento de objetos. [#96872](https://github.com/ClickHouse/ClickHouse/pull/96872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el fallo del servidor cuando una copia de seguridad falla por falta de espacio en el disco u otros errores de E/S en el sistema de archivos de destino. [#96873](https://github.com/ClickHouse/ClickHouse/pull/96873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrección de `EXCEPT ALL` y `INTERSECT ALL`, que no tenían en cuenta la multiplicidad de las filas y se comportaban como sus equivalentes `DISTINCT`. [#96876](https://github.com/ClickHouse/ClickHouse/pull/96876) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `std::terminate` en `indexOfAssumeSorted` al llamarse con tipos incompatibles (p. ej., un array `IPv4` con un valor de búsqueda entero). [#96877](https://github.com/ClickHouse/ClickHouse/pull/96877) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción `Bad cast from type DB::ColumnNullable to DB::ColumnString` al usar funciones de ventana con `group_by_use_nulls = 1` y CUBE/ROLLUP/GROUPING SETS. [#96878](https://github.com/ClickHouse/ClickHouse/pull/96878) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorrectos cuando las expresiones compiladas con JIT convierten `DateTime` a `DateTime64` (p. ej., en `CASE`/`if`/`multiIf` con tipos `DateTime` mixtos). El valor se reinterpretaba en lugar de escalarse correctamente, lo que producía marcas de tiempo incorrectas una vez activada la compilación de expresiones. [#96879](https://github.com/ClickHouse/ClickHouse/pull/96879) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción por error lógico en `CoalescingMergeTree` cuando una expresión de índice de omisión produce una columna constante (p. ej., `bloom_filter` sobre `ifNotFinite(1, c0)` para una columna entera). [#96880](https://github.com/ClickHouse/ClickHouse/pull/96880) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el número de puerto incorrecto en el mensaje de error al conectarse accidentalmente por HTTP al puerto del protocolo nativo con TLS habilitado. [#96881](https://github.com/ClickHouse/ClickHouse/pull/96881) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrección para que los `SETTINGS` por subconsulta se apliquen a las funciones de tabla como `file` en CTE y subconsultas. [#96882](https://github.com/ClickHouse/ClickHouse/pull/96882) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una fuga de memoria en objetos BIO al leer certificados X509. [#96885](https://github.com/ClickHouse/ClickHouse/pull/96885) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `LOGICAL_ERROR` en el analizador de consultas cuando se pasa una expresión lambda donde se espera un valor concreto (p. ej., como argumento acumulador de `arrayFold`). [#96892](https://github.com/ClickHouse/ClickHouse/pull/96892) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `ColumnNullable is not compatible with original` al convertir tipos anidados complejos (Array de Tuple Nullable que contiene Map con valores Enum Nullable). [#96924](https://github.com/ClickHouse/ClickHouse/pull/96924) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una condición de carrera en la carga paralela del diccionario `HASHED` segmentado que, en ocasiones, podía hacer que algunas filas no se cargaran. [#96953](https://github.com/ClickHouse/ClickHouse/pull/96953) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una condición de carrera entre `REPLACE PARTITION` y las mutaciones en segundo plano que podía hacer que tanto los datos antiguos como los nuevos se vieran después del reemplazo. [#96955](https://github.com/ClickHouse/ClickHouse/pull/96955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un problema en la función `arrayJoin` que producía filas duplicadas cuando se usaba con INNER JOIN y la cláusula WHERE, debido a que la optimización parcial de push-down de predicados enviaba incorrectamente por debajo de un JOIN los filtros que contenían `arrayJoin`. [#96989](https://github.com/ClickHouse/ClickHouse/pull/96989) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un fallo (SEGFAULT) en `clearCaches` causado por que `BlockIO::operator=` no movía `query_metadata_cache`, lo que provocaba la destrucción prematura de instantáneas de almacenamiento en caché y un acceso a memoria ya liberada en el almacenamiento `MergeTreeData`. [#96995](https://github.com/ClickHouse/ClickHouse/pull/96995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un fallo de aserción en `IfTransformStringsToEnumPass` cuando la función `if` o `transform` devuelve `Nullable(String)` (p. ej., con `GROUP BY ... WITH CUBE` y `group_by_use_nulls = true`). [#97002](https://github.com/ClickHouse/ClickHouse/pull/97002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen los datos incorrectos escritos durante `INSERT ... SELECT` con `UNION ALL` y `JOIN`, donde las columnas de texto constantes podían recibir valores erróneos tras la compactación de bloques. [#97019](https://github.com/ClickHouse/ClickHouse/pull/97019) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
* Se corrige la excepción de `assert_cast` (o la corrupción silenciosa de datos en compilaciones release) al generar estadísticas de columnas después de que `ALTER TABLE MODIFY COLUMN` cambie el tipo de la columna. [#97027](https://github.com/ClickHouse/ClickHouse/pull/97027) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen lecturas de memoria sin inicializar en Azure Blob Storage, el protocolo SSH y las interfaces de Arrow Flight. [#97053](https://github.com/ClickHouse/ClickHouse/pull/97053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen los casos en los que los índices afectaban al resultado de las consultas con row policy/PREWHERE y FINAL. [#97076](https://github.com/ClickHouse/ClickHouse/pull/97076) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige la condición de carrera restante entre `REPLACE PARTITION` y las mutaciones en segundo plano en tablas `MergeTree`, que podía provocar la reaparición de datos antiguos. [#97105](https://github.com/ClickHouse/ClickHouse/pull/97105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregir los índices implícitos con columnas con alias y realizar una validación completa antes de crearlos. [#97115](https://github.com/ClickHouse/ClickHouse/pull/97115) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un error lógico en `FunctionVariantAdaptor` con funciones que requieren argumentos const, como `arrayROCAUC`. [#97116](https://github.com/ClickHouse/ClickHouse/pull/97116) ([Bharat Nallan](https://github.com/bharatnc)).
* Corregir las mutaciones atascadas cuando `PartCheckThread` vuelve a encolar un `GET_PART` para una parte ya mutada, lo que deja entradas fantasma en `parts_to_do`. [#97162](https://github.com/ClickHouse/ClickHouse/pull/97162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la estimación del número de filas del plan de consulta para subconsultas con `ORDER BY ... LIMIT`, que podía hacer que el optimizador eligiera un orden de join subóptimo. [#97193](https://github.com/ClickHouse/ClickHouse/pull/97193) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrige la excepción `LOGICAL_ERROR` en `FunctionVariantAdaptor` cuando una función que opera sobre columnas Variant devuelve el tipo `Nothing`, lo que puede ocurrir con Arrays vacíos en consultas `UNION ALL`. [#97213](https://github.com/ClickHouse/ClickHouse/pull/97213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una condición de carrera durante las operaciones de copia multiparte en S3 (por ejemplo, durante `BACKUP`/`RESTORE` en S3) que podía provocar excepciones en caso de acceso concurrente. [#97227](https://github.com/ClickHouse/ClickHouse/pull/97227) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la excepción `LOGICAL_ERROR` cuando `arrayJoin` en la cláusula `WHERE` hace referencia a columnas de ambos lados de un `JOIN`. [#97239](https://github.com/ClickHouse/ClickHouse/pull/97239) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción `LOGICAL_ERROR` al leer la subcolumna `.size` de un `Nullable(String)` disperso en una Tuple con PREWHERE. [#97264](https://github.com/ClickHouse/ClickHouse/pull/97264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción "El número de filas en el fragmento diferido no coincide con el número de desplazamientos" en `LazyMaterializingTransform` al leer tablas con granularidad de índice no adaptativa (`index_granularity_bytes = 0`) usando `ORDER BY ... LIMIT`. [#97270](https://github.com/ClickHouse/ClickHouse/pull/97270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige que `SYSTEM RESTART REPLICA` pierda una tabla de la base de datos cuando falla la recreación de la tabla con una excepción no relacionada con ZooKeeper (p. ej., límite de memoria), lo que provoca desajustes en el hash de metadatos en `DatabaseReplicated`. [#97276](https://github.com/ClickHouse/ClickHouse/pull/97276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El campo `readonly` de `system.merge_tree_settings` ahora refleja correctamente que ciertas configuraciones de MergeTree (por ejemplo, `index_granularity`) son incondicionalmente de solo lectura. [#97277](https://github.com/ClickHouse/ClickHouse/pull/97277) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigió un cierre inesperado durante la optimización de `count()` en tablas `MergeTree` cuando el snapshot de almacenamiento se creó sin datos. [#97281](https://github.com/ClickHouse/ClickHouse/pull/97281) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige un posible fallo al resolver los nombres de las funciones a partir de la información de depuración de las trazas de pila. [#97294](https://github.com/ClickHouse/ClickHouse/pull/97294) ([Azat Khuzhin](https://github.com/azat)).
* Soluciona un error lógico con analyzer\_compatibility\_join\_using\_top\_level\_identifier y las columnas ALIAS. Cierra [#96228](https://github.com/ClickHouse/ClickHouse/issues/96228). [#97297](https://github.com/ClickHouse/ClickHouse/pull/97297) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigió la excepción `LOGICAL_ERROR` en `applyOrder` al usar columnas con índice de texto con la cláusula `QUALIFY`. [#97313](https://github.com/ClickHouse/ClickHouse/pull/97313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La tabla del sistema `system.functions` ahora muestra `categories = 'Internal'` para las funciones internas, en lugar de `categories = ''`. [#97315](https://github.com/ClickHouse/ClickHouse/pull/97315) ([Robert Schulze](https://github.com/rschu1ze)).
* La consulta con una secuencia de RIGHT JOIN y réplicas paralelas habilitadas puede producir un resultado incorrecto. Corrige [#74341](https://github.com/ClickHouse/ClickHouse/issues/74341). [#97316](https://github.com/ClickHouse/ClickHouse/pull/97316) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrigen errores `TABLE_UUID_MISMATCH` espurios que podían producirse con vistas materializadas actualizables y en otros casos en los que se cambia el nombre de las tablas. [#97323](https://github.com/ClickHouse/ClickHouse/pull/97323) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un segfault en la copia de seguridad de `StorageKeeperMap` debido al uso de un puntero de almacenamiento colgante tras liberarlo en el lote de copia de seguridad diferido. [#97336](https://github.com/ClickHouse/ClickHouse/pull/97336) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la función `exists` con una subconsulta escalar dentro de un `ALTER UPDATE/DELETE` cuando `mutations_execute_subqueries_on_initiator` está habilitado. La subconsulta escalar se evaluaba de forma incorrecta, lo que podía provocar un error o un comando de mutación corrupto que hiciera que la tabla no pudiera cargarse en el siguiente reinicio del servidor. [#97347](https://github.com/ClickHouse/ClickHouse/pull/97347) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Se corrige la excepción lógica `Unexpected return type from equals. Expected Nullable(UInt8). Got Const(LowCardinality(Nullable(UInt8)))` al comparar NULL con una columna Variant que contiene tipos de LowCardinality. [#97379](https://github.com/ClickHouse/ClickHouse/pull/97379) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una posible condición de carrera cuando `EXCHANGE TABLES` se ejecuta en paralelo con la caché de consultas por segmentos habilitada. [#97411](https://github.com/ClickHouse/ClickHouse/pull/97411) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige la excepción `LOGICAL_ERROR` en la conversión de Array a `QBit` cuando `nullable_source` de un envoltorio `Tuple` externo reemplaza la columna de array convertida por una columna de tipo incompatible. Cierra [#97389](https://github.com/ClickHouse/ClickHouse/issues/97389). [#97413](https://github.com/ClickHouse/ClickHouse/pull/97413) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una inconsistencia en el formateo del AST al reconstruir literales de tupla con alias entre paréntesis; por ejemplo, `(('a', 'b') AS x)` se reformateaba incorrectamente como `tuple(('a', 'b') AS x)`. [#97418](https://github.com/ClickHouse/ClickHouse/pull/97418) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una excepción durante las inserciones asíncronas con deduplicación cuando un error de análisis producía un bloque vacío con cero filas. [#97460](https://github.com/ClickHouse/ClickHouse/pull/97460) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige la excepción "El número de filas en el fragmento diferido no coincide con el número de desplazamientos" en `LazyMaterializingTransform` al leer tablas con granularidad de índice no adaptativa (`index_granularity_bytes = 0`) mediante `ORDER BY ... LIMIT`. [#97482](https://github.com/ClickHouse/ClickHouse/pull/97482) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la configuración de inserción en Iceberg. Añade un alias para la opción `allow_experimental_insert_into_iceberg`. [#97483](https://github.com/ClickHouse/ClickHouse/pull/97483) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrige `ACCESS_DENIED` para los usuarios sin el permiso `CREATE TEMPORARY TABLE` cuando la optimización `optimize_inverse_dictionary_lookup` reescribe los predicados `dictGet(...)`. ClickHouse ahora omite esa reescritura y ejecuta la expresión original. Cierra [#97269](https://github.com/ClickHouse/ClickHouse/issues/97269). [#97484](https://github.com/ClickHouse/ClickHouse/pull/97484) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige un error de aserción (excepción en compilaciones de depuración o con sanitizador) en `Set` y `MergeTreeIndexSet` al procesar columnas con subcolumnas dispersas internas (p. ej., columnas `Tuple` de partes de MergeTree con distintos perfiles de serialización dispersa). [#97493](https://github.com/ClickHouse/ClickHouse/pull/97493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un posible uso de memoria después de liberarla en StorageKafka2. [#97520](https://github.com/ClickHouse/ClickHouse/pull/97520) ([Bharat Nallan](https://github.com/bharatnc)).
* Se corrige el uso de `INTO OUTFILE` con `TRUNCATE` y la opción `into_outfile_create_parent_directories` cuando la ruta de salida contiene directorios. [#97549](https://github.com/ClickHouse/ClickHouse/pull/97549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el error `BAD_ARGUMENTS` al consultar tablas con expresiones lambda dentro de columnas ALIAS mediante la table function `merge()` con el analizador habilitado. [#97551](https://github.com/ClickHouse/ClickHouse/pull/97551) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción de `system.zookeeper_info` cuando el zxid de Keeper es 0. [#97553](https://github.com/ClickHouse/ClickHouse/pull/97553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un posible error lógico en el diccionario `ip_trie` cuando el tipo de clave no es String. [#97555](https://github.com/ClickHouse/ClickHouse/pull/97555) ([Bharat Nallan](https://github.com/bharatnc)).
* Se corrigió un problema por el que la autenticación OAuth del catálogo REST no funcionaba para el `RestCatalog` base (solo funcionaba para catálogos derivados como `OneLakeCatalog`). Esto rompió el catálogo REST predeterminado tras la introducción del catálogo BigLake. [#97561](https://github.com/ClickHouse/ClickHouse/pull/97561) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Las funciones de Geometry (`perimeterSpherical`, `areaSpherical`, etc.) ahora aceptan subtipos geométricos individuales (`Polygon`, `Ring`, `Point`, etc.), además del tipo Variant `Geometry`. [#97571](https://github.com/ClickHouse/ClickHouse/pull/97571) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción `LOGICAL_ERROR` al usar `isNull`/`isNotNull` sobre subcolumnas de tipos `Nullable(Tuple(... Nullable(T) ...))`. Cierra [#97224](https://github.com/ClickHouse/ClickHouse/issues/97224). [#97582](https://github.com/ClickHouse/ClickHouse/pull/97582) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la desreferenciación de un puntero nulo al aplicar partes de parche durante las actualizaciones ligeras. [#97583](https://github.com/ClickHouse/ClickHouse/pull/97583) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `BaseSettings::readBinary` pasa el índice de `accessor.find` a `field_infos[]` sin comprobar el valor centinela que indica que no se encontró (es decir, `-1`), lo que puede provocar un acceso fuera de los límites de `std::vector`. El problema se detectó gracias al endurecimiento de libcxx. Esto probablemente ocurrió durante la deserialización del plan de consulta, cuando un servidor más reciente envía un ajuste que un servidor más antiguo no reconoce. El método de lectura basado en cadenas ya gestiona esto correctamente; a `readBinary` le faltaba esa misma comprobación. [#97585](https://github.com/ClickHouse/ClickHouse/pull/97585) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige resultados incorrectos en consultas `UNION ALL` en las que una rama tenía un predicado siempre falso: la rama leía datos indebidamente en lugar de no devolver nada. [#97620](https://github.com/ClickHouse/ClickHouse/pull/97620) ([Bharat Nallan](https://github.com/bharatnc)).
* Se corrigió el fallo de `IN (col)` con una referencia de una sola columna que provocaba el error `UNSUPPORTED_METHOD`. [#97646](https://github.com/ClickHouse/ClickHouse/pull/97646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la excepción por error lógico durante `GROUP BY ... WITH ROLLUP/CUBE` cuando las claves incluyen `LowCardinality(Nullable(...))` dentro de `Nullable(Tuple(...))`. [#97647](https://github.com/ClickHouse/ClickHouse/pull/97647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una inconsistencia en el formato del AST para `NOT (1, 1, 1)` que podía provocar `LOGICAL_ERROR` en builds de depuración. [#97653](https://github.com/ClickHouse/ClickHouse/pull/97653) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la excepción de `keeper-converter` al encontrarse con archivos de registro de transacciones de ZooKeeper vacíos. [#97673](https://github.com/ClickHouse/ClickHouse/pull/97673) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="buildtestingpackaging-improvement">
  #### Mejora en compilación/pruebas/empaquetado
</div>

* ClickHouse puede compilarse con clang-23 (master). [#95578](https://github.com/ClickHouse/ClickHouse/pull/95578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige `is_local` para forzarlo a false cuando `bind_host` está configurado, y se sustituye por una prueba de integración. Seguimiento de [#74741](https://github.com/ClickHouse/ClickHouse/pull/74741). [#93109](https://github.com/ClickHouse/ClickHouse/pull/93109) [#96018](https://github.com/ClickHouse/ClickHouse/pull/96018) ([Zhigao Hong](https://github.com/zghong)).
* Pruebas de estrés: se corrigen las pruebas de estrés y de actualización en CI. se ignoran las etiquetas `no-{build}`. se añade aleatorización de compatibilidad. [#94693](https://github.com/ClickHouse/ClickHouse/pull/94693) ([Nikita Fomichev](https://github.com/fm4v)).
* Publicar el binario parser\_memory\_profiler de la compilación. La herramienta puede usarse para analizar el consumo de memoria del AST. [#95826](https://github.com/ClickHouse/ClickHouse/pull/95826) ([Ilya Yatsishin](https://github.com/qoega)).
* Se agregó la marca `--symbolize` para la herramienta `parser_memory_profiler`, que genera archivos `.heap.sym` con los símbolos resueltos en la salida. [#96477](https://github.com/ClickHouse/ClickHouse/pull/96477) ([Ilya Yatsishin](https://github.com/qoega)).
* Se fijan las imágenes de Docker de terceros en versiones específicas para las pruebas de integración. [#96500](https://github.com/ClickHouse/ClickHouse/pull/96500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se vuelve a habilitar la posibilidad de enlazar `OpenSSL` dinámicamente. No se recomienda y no se utiliza en ninguna compilación de producción, pero la opción sigue existiendo para los entusiastas de internet. [#96506](https://github.com/ClickHouse/ClickHouse/pull/96506) ([Govind R Nair](https://github.com/Revertionist)).
* Reduce el rango de `magic_enum` de \[-100, 1000] al valor predeterminado \[-128, 127] mediante una especialización por tipo para `Coordination::OpNum`, lo que mejora el tiempo de compilación. [#96632](https://github.com/ClickHouse/ClickHouse/pull/96632) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se eliminaron los templates de C++ innecesarios de las clases Function para reducir los tiempos de compilación. [#96646](https://github.com/ClickHouse/ClickHouse/pull/96646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se traslada la generación de `StorageSystemLicenses` a la fase de configuración para mejorar el paralelismo de la compilación. [#96697](https://github.com/ClickHouse/ClickHouse/pull/96697) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se paraleliza el escaneo de licencias. [#96727](https://github.com/ClickHouse/ClickHouse/pull/96727) ([Raúl Marín](https://github.com/Algunenano)).
* Añadida una prueba funcional sin estado para el soporte del protocolo SSH. [#96996](https://github.com/ClickHouse/ClickHouse/pull/96996) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió Kafka 3.9.0 a la infraestructura de pruebas funcionales sin estado, lo que permite probar directamente los motores de tabla Kafka y Kafka2 usando ClickHouse Keeper como ZooKeeper. Seis nuevas pruebas sin estado cubren las operaciones básicas de producción y consumo, las columnas virtuales, INSERT, varios formatos, la gestión de mensajes corruptos y el almacenamiento de offsets basado en Keeper. [#96997](https://github.com/ClickHouse/ClickHouse/pull/96997) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade un flujo de trabajo de CI para compilar una toolchain de clang optimizada con PGO+BOLT. [#96991](https://github.com/ClickHouse/ClickHouse/pull/96991) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usar la compilación de LLVM/Clang optimizada con PGO en CI, lo que debería mejorar la velocidad de compilación entre un 20 y un 30 %. [#97031](https://github.com/ClickHouse/ClickHouse/pull/97031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se reemplazan las funciones matemáticas de glibc por implementaciones de llvm-libc. [#90151](https://github.com/ClickHouse/ClickHouse/pull/90151) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se actualiza Boost de 1.83 a 1.90 y se corrige un fallo de aserción de `devector` en compilaciones de depuración. [#97037](https://github.com/ClickHouse/ClickHouse/pull/97037) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se actualizó `postgres` a REL\_18\_1. [#95189](https://github.com/ClickHouse/ClickHouse/pull/95189) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se usa `libexpat` 2.7.3. [#95218](https://github.com/ClickHouse/ClickHouse/pull/95218) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usar `OpenSSL` 3.5.5. [#95345](https://github.com/ClickHouse/ClickHouse/pull/95345) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se usa `simdjson` v4.2.4. [#97129](https://github.com/ClickHouse/ClickHouse/pull/97129) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se usa `libarchive` 3.8.5. [#97131](https://github.com/ClickHouse/ClickHouse/pull/97131) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se usa `fast_float` v8.2.3. [#97133](https://github.com/ClickHouse/ClickHouse/pull/97133) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usar `abseil-cpp` 20260107.1 y actualizar `s2geometry` a la versión v0.13.1. [#97134](https://github.com/ClickHouse/ClickHouse/pull/97134) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Aumenta `libxml2` a 2.15.1. [#95574](https://github.com/ClickHouse/ClickHouse/pull/95574) ([Robert Schulze](https://github.com/rschu1ze)).
* Se actualizaron 7 imágenes de Docker para pruebas de integración de Tier-3, sustituyendo imágenes base obsoletas (EOL) o retiradas por versiones compatibles actuales. [#97314](https://github.com/ClickHouse/ClickHouse/pull/97314) ([Rahul](https://github.com/motsc)).
* Se añaden consultas del benchmark TPC-DS. [#97349](https://github.com/ClickHouse/ClickHouse/pull/97349) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Sustituye las opciones individuales de CMake para el conjunto de instrucciones x86 (`ENABLE_SSSE3`, `ENABLE_AVX2`, `NO_SSE3_OR_HIGHER`, `ARCH_NATIVE`, etc.) por una única opción numérica `X86_ARCH_LEVEL` (`1`/`2`/`3`/`4`), en línea con los niveles estándar de microarquitectura x86-64 ya utilizados por el sistema de despacho en runtime. [#97354](https://github.com/ClickHouse/ClickHouse/pull/97354) ([Raúl Marín](https://github.com/Algunenano)).
* Se evita instanciar variantes de plantilla de `division_by_nullable=true` para operaciones que no son de división en `FunctionBinaryArithmetic`, lo que reduce el tiempo de compilación y el tamaño del binario. [#97496](https://github.com/ClickHouse/ClickHouse/pull/97496) ([Raúl Marín](https://github.com/Algunenano)).
* Reduce la huella de inclusión de `Exception.h` eliminándolo de archivos de cabecera muy referenciados, como `typeid_cast.h`, `assert_cast.h`, `Context_fwd.h`, `IDataType.h` y varios archivos de cabecera de Column. [#97497](https://github.com/ClickHouse/ClickHouse/pull/97497) ([Raúl Marín](https://github.com/Algunenano)).
* Use siempre las cabeceras integradas de `compiler-rt` (`sanitizador` y las interfaces de XRay) en lugar de las cabeceras del compilador del sistema, y compile de forma predeterminada las bibliotecas `compiler-rt` a partir del código fuente. [#97499](https://github.com/ClickHouse/ClickHouse/pull/97499) ([Raúl Marín](https://github.com/Algunenano)).
* Se evita incluir las cabeceras de boost/multiprecision en `wide_integer_impl.h` en plataformas con un `long double` adecuado, lo que mejora el tiempo de compilación. [#96633](https://github.com/ClickHouse/ClickHouse/pull/96633) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementar el job de cobertura de código con LLVM y habilitarlo inicialmente para la rama master. [#90952](https://github.com/ClickHouse/ClickHouse/pull/90952) ([Alexey Bakharew](https://github.com/alexbakharew)).
* Se habilita el hardening rápido de libcxx para las compilaciones de release. Esto es necesario principalmente para las comprobaciones de acceso fuera de límites. Dados los resultados de las pruebas de rendimiento, no se espera ningún impacto perceptible en el rendimiento. [#94757](https://github.com/ClickHouse/ClickHouse/pull/94757) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="261">
  ### Lanzamiento de ClickHouse 26.1, 2026-01-29. [Presentación](https://presentations.clickhouse.com/2026-release-26.1/), [Vídeo](https://www.youtube.com/watch?v=fWuYt4M0xE4)
</div>

<div id="backward-incompatible-change">
  #### Cambio incompatible con versiones anteriores
</div>

* Corrige el formato inconsistente causado por una sustitución incorrecta de alias en el formateador. Esto cierra [#82833](https://github.com/ClickHouse/ClickHouse/issues/82833). Esto cierra [#82832](https://github.com/ClickHouse/ClickHouse/issues/82832). Esto cierra [#68296](https://github.com/ClickHouse/ClickHouse/issues/68296). Este cambio podría no ser compatible con versiones anteriores: cuando el analizador está deshabilitado, ciertas consultas CREATE VIEW con IN que hacen referencia a un alias no pueden procesarse. Para evitar esta incompatibilidad, habilite el analizador (está habilitado de forma predeterminada desde la versión 24.3). [#82838](https://github.com/ClickHouse/ClickHouse/pull/82838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los códecs `DEFLATE_QPL` y `ZSTD_QAT` se eliminaron. Se recomienda a los usuarios convertir los datos existentes comprimidos con `DEFLATE_QPL` o `ZSTD_QAT` a otro códec antes de actualizar. Tenga en cuenta que, para usar estos códecs, era necesario habilitar los ajustes `enable_deflate_qpl_codec` y `enable_zstd_qat_codec`. [#92150](https://github.com/ClickHouse/ClickHouse/pull/92150) ([Robert Schulze](https://github.com/rschu1ze)).
* Mejora la depuración de UDF al habilitar la captura de stderr en `system.query_log.exception`. Anteriormente, el stderr de las UDF solo se registraba en archivos y no se exponía en los registros de consultas, lo que hacía imposible la depuración. Ahora, stderr genera excepciones de forma predeterminada y se acumula por completo (hasta 1 MB) antes de lanzarse, por lo que las trazas completas de Python y los mensajes de error aparecen en `system.query_log.exception`, lo que facilita una solución eficaz de problemas. [#92209](https://github.com/ClickHouse/ClickHouse/pull/92209) ([Xu Jia](https://github.com/XuJia0210)).
* La lista vacía de columnas en la cláusula `JOIN USING ()` ahora se considera un error de sintaxis. Anteriormente, debía producir `INVALID_JOIN_ON_EXPRESSION` durante la ejecución de la consulta. En algunos casos, como al realizar un join con el motor de almacenamiento `Join`, esto provocaba `LOGICAL_ERROR`; cierra el issue [#82502](https://github.com/ClickHouse/ClickHouse/issues/82502). [#92371](https://github.com/ClickHouse/ClickHouse/pull/92371) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Utiliza la coincidencia parcial para SKIP REGEXP en el tipo JSON de forma predeterminada. Cierra [#79250](https://github.com/ClickHouse/ClickHouse/issues/79250). [#92847](https://github.com/ClickHouse/ClickHouse/pull/92847) ([Pavel Kruglov](https://github.com/Avogar)).
* Se revierte "Allow INSERT into simple ALIAS columns" (revierte ClickHouse/ClickHouse[#84154](https://github.com/ClickHouse/ClickHouse/issues/84154)). No funciona con formatos personalizados y no está protegido por ninguna configuración. [#92849](https://github.com/ClickHouse/ClickHouse/pull/92849) ([Azat Khuzhin](https://github.com/azat)).
* Configuración para devolver un error si un catálogo de lago de datos no tiene acceso al almacenamiento de objetos. [#93606](https://github.com/ClickHouse/ClickHouse/pull/93606) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se ha eliminado el motor de base de datos `Lazy` y ya no está disponible. Cierra [#91231](https://github.com/ClickHouse/ClickHouse/issues/91231). [#93627](https://github.com/ClickHouse/ClickHouse/pull/93627) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se elimina el modo `transposed_with_wide_view` de `metric_log`, ya que no se puede usar debido a un error. Ya no es posible definir `system.metric_log` con este modo. Esto revierte parcialmente [#78412](https://github.com/ClickHouse/ClickHouse/issues/78412). [#93867](https://github.com/ClickHouse/ClickHouse/pull/93867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La planificación de CPU para las cargas de trabajo ahora es preventiva de forma predeterminada. Consulte la configuración del servidor `cpu_slot_preemption`. [#94060](https://github.com/ClickHouse/ClickHouse/pull/94060) ([Sergei Trifonov](https://github.com/serxa)).
* Se escapan los nombres de archivo de los índices para evitar partes dañadas. Con este cambio, ClickHouse no podrá cargar índices con caracteres no ASCII en su nombre creados por versiones anteriores. Para resolverlo, puede usar la configuración de MergeTree `escape_index_filenames`. [#94079](https://github.com/ClickHouse/ClickHouse/pull/94079) ([Raúl Marín](https://github.com/Algunenano)).
* Las configuraciones de formato `exact_rows_before_limit`, `rows_before_aggregation`, `cross_to_inner_join_rewrite`, `regexp_dict_allow_hyperscan`, `regexp_dict_flag_case_insensitive`, `regexp_dict_flag_dotall` y `dictionary_use_async_executor` pasaron a ser configuraciones normales (no de formato). Se trata de un cambio puramente interno, sin efectos visibles para el usuario, salvo en el caso (poco probable) de que haya especificado alguna de estas configuraciones en definiciones de table engine de Iceberg o DeltaLake o Kafka o S3 o S3Queue o Azure o Hive o RabbitMQ o Set o FileLog o NATS. En esos casos, estas configuraciones antes se ignoraban; ahora, esas definiciones generan un error. [#94106](https://github.com/ClickHouse/ClickHouse/pull/94106) ([Robert Schulze](https://github.com/rschu1ze)).
* Las funciones `joinGet/joinGetOrNull` ahora exigen privilegios `SELECT` sobre la tabla Join subyacente. Después de este cambio, ejecutar `joinGet('db.table', 'column', key)` requiere que el usuario tenga el privilegio `SELECT` tanto sobre las columnas clave definidas en la tabla Join como sobre la columna de atributo recuperada. Las consultas que no cuenten con estos privilegios fallarán con `ACCESS_DENIED`. Para migrar, otorgue los permisos necesarios mediante `GRANT SELECT ON db.join_table TO user` para acceso completo a la tabla, o `GRANT SELECT(key_col, attr_col) ON db.join_table TO user` para acceso a nivel de columna. Este cambio afecta a todos los usuarios y aplicaciones que dependen de `joinGet`/`joinGetOrNull` en los casos en que antes no se hubieran configurado privilegios `SELECT` explícitos. [#94307](https://github.com/ClickHouse/ClickHouse/pull/94307) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se comprueba `SHOW COLUMNS` para las consultas `CREATE TABLE ... AS ...`. Anteriormente, se comprobaba `SHOW TABLES`, lo que supone un privilegio incorrecto para este tipo de comprobación de permisos. [#94556](https://github.com/ClickHouse/ClickHouse/pull/94556) ([pufit](https://github.com/pufit)).
* Hacer que el formato de salida `Hash` sea independiente del tamaño de los bloques. [#94503](https://github.com/ClickHouse/ClickHouse/pull/94503) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Tenga en cuenta que esto cambia los valores hash de salida con respecto a las versiones anteriores.

<div id="new-feature">
  #### Nueva funcionalidad
</div>

* API HTTP y Web UI integrada para ClickHouse Keeper. [#78181](https://github.com/ClickHouse/ClickHouse/pull/78181) ([pufit](https://github.com/pufit) y [speeedmaster](https://github.com/speeedmaster)).
* La deduplicación de async insert ahora funciona con vistas materializadas dependientes. Cuando se produce una colisión por block\_id, el bloque original se filtra para eliminar las filas asociadas a ese block\_id, y las filas restantes se transforman con todas las consultas SELECT de las vistas materializadas pertinentes; esto reconstruye el bloque original sin las filas en conflicto. [#89140](https://github.com/ClickHouse/ClickHouse/pull/89140) ([Sema Checherinda](https://github.com/CheSema)). Se permite usar deduplicación con async inserts cuando intervienen vistas materializadas. [#93957](https://github.com/ClickHouse/ClickHouse/pull/93957) ([Sema Checherinda](https://github.com/CheSema)).
* Se introdujeron una nueva sintaxis y un nuevo framework para simplificar y ampliar la funcionalidad de los índices de proyección. Esto da continuidad a [https://github.com/ClickHouse/ClickHouse/pull/81021](https://github.com/ClickHouse/ClickHouse/pull/81021). [#91844](https://github.com/ClickHouse/ClickHouse/pull/91844) ([Amos Bird](https://github.com/amosbird)).
* Se añade soporte para índices de texto en columnas `Array`. [#89895](https://github.com/ClickHouse/ClickHouse/pull/89895) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Se habilita `use_variant_as_common_type` de forma predeterminada, lo que permite usar tipos incompatibles dentro de un `Array`, en consultas `UNION` y en las ramas de `if`/`multiIf`/`case`. [#90677](https://github.com/ClickHouse/ClickHouse/pull/90677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nueva tabla del sistema `zookeeper_info`. Implementa [#88014](https://github.com/ClickHouse/ClickHouse/issues/88014). [#90809](https://github.com/ClickHouse/ClickHouse/pull/90809) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Se admite el tipo `Variant` en todas las funciones. [#90900](https://github.com/ClickHouse/ClickHouse/pull/90900) ([Bharat Nallan](https://github.com/bharatnc)).
* Agrega una métrica `ClickHouse_Info` al endpoint `/metrics` de Prometheus que contiene principalmente información sobre la versión, lo que permite crear gráficos para seguir información detallada de la versión a lo largo del tiempo. [#91125](https://github.com/ClickHouse/ClickHouse/pull/91125) ([Christoph Wurm](https://github.com/cwurm)).
* Se introduce un nuevo comando `rcfg` de cuatro letras para Keeper que permite cambiar la configuración del clúster. Este comando ofrece más posibilidades para modificar la configuración que la solicitud estándar `reconfigure`. El comando recibe una cadena `json` como argumento. El conjunto completo de bytes enviados a la interfaz TCP debe tener este aspecto: `rcfg{json_string_length_big_endian}{json_string}`. Algunos ejemplos del comando podrían ser así: `{"preconditions": {"leaders": [1, 2], "members": [1, 2, 3, 4, 5]}, "actions": [{"transfer_leadership": [3]}, {"remove_members": [1, 2]}, {"set_priority": [{"id": 4, "priority": 100}, {"id": 5, "priority": 100}]}, {"transfer_leadership": [4, 5]}, {"set_priority": [{"id": 3, "priority": 0}]}]}`. [#91354](https://github.com/ClickHouse/ClickHouse/pull/91354) ([alesapin](https://github.com/alesapin)).
* Se agrega la función `reverseBySeparator`, que invierte el orden de las subcadenas de una cadena delimitadas por un separador especificado. Cierra [#91463](https://github.com/ClickHouse/ClickHouse/issues/91463). [#91780](https://github.com/ClickHouse/ClickHouse/pull/91780) ([Xuewei Wang](https://github.com/Sallery-X)).
* Añade la nueva configuración `max_insert_block_size_bytes`, que permite un control más preciso de la formación de los bloques insertados. [#92833](https://github.com/ClickHouse/ClickHouse/pull/92833) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Es posible ejecutar consultas DDL con la cláusula `ON CLUSTER` en una base de datos Replicated si está habilitada la configuración `ignore_on_cluster_for_replicated_database`. En este caso, se ignorará el nombre del clúster. [#92872](https://github.com/ClickHouse/ClickHouse/pull/92872) ([Kirill](https://github.com/kirillgarbar)).
* Se implementó la función `mergeTreeAnalyzeIndexes`. [#92954](https://github.com/ClickHouse/ClickHouse/pull/92954) ([Azat Khuzhin](https://github.com/azat)).
* Se agregó la nueva configuración `use_primary_key`. Establézcala en `false` para desactivar la poda de gránulos según la clave primaria. [#93319](https://github.com/ClickHouse/ClickHouse/pull/93319) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se añadió la función de tabla `icebergLocalCluster`. [#93323](https://github.com/ClickHouse/ClickHouse/pull/93323) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Se añadió la función `cosineDistanceTransposed`, que aproxima la [distancia de coseno](https://en.wikipedia.org/wiki/Cosine_similarity#Cosine_distance) entre dos puntos. [#93621](https://github.com/ClickHouse/ClickHouse/pull/93621) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se añade la columna `files` a la tabla system.parts, que muestra el número de archivos en cada parte de datos. [#94337](https://github.com/ClickHouse/ClickHouse/pull/94337) ([Match](https://github.com/gayanMatch)).
* Añade un scheduler max-min fair para el control de la concurrencia. Proporciona una mayor equidad en situaciones de sobreasignación elevada, cuando muchas consultas compiten por slots de CPU limitados. Las consultas de corta duración no se ven penalizadas por las de larga duración, que han acumulado más slots con el tiempo. Se habilita con el valor `max_min_fair` de la configuración de servidor `concurrent_threads_scheduler`. [#94732](https://github.com/ClickHouse/ClickHouse/pull/94732) ([Sergei Trifonov](https://github.com/serxa)).
* Se añadió la posibilidad de que ClickHouse client sobrescriba el SNI de TLS al conectarse al servidor. [#89761](https://github.com/ClickHouse/ClickHouse/pull/89761) ([Matt Klein](https://github.com/mattklein123)).
* Admite tablas temporales en las llamadas a la función `joinGet`. [#92973](https://github.com/ClickHouse/ClickHouse/pull/92973) ([Eduard Karacharov](https://github.com/korowa)).
* Admite vectores de eliminación en el motor de tabla `DeltaLake`. [#93852](https://github.com/ClickHouse/ClickHouse/pull/93852) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se admiten vectores de eliminación en `deltaLakeCluster`. [#94365](https://github.com/ClickHouse/ClickHouse/pull/94365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Compatibilidad con Google Cloud Storage para lagos de datos. [#93866](https://github.com/ClickHouse/ClickHouse/pull/93866) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="experimental-feature">
  #### Funcionalidad experimental
</div>

* `QBit` pasa de Experimental a Beta. [#93816](https://github.com/ClickHouse/ClickHouse/pull/93816) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se añade compatibilidad con `Nullable(Tuple)`. Establece `allow_experimental_nullable_tuple_type = 1` para habilitarlo. [#89643](https://github.com/ClickHouse/ClickHouse/pull/89643) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Compatibilidad con el catálogo REST de Paimon, como continuación de [https://github.com/ClickHouse/ClickHouse/pull/84423](https://github.com/ClickHouse/ClickHouse/pull/84423). [#92011](https://github.com/ClickHouse/ClickHouse/pull/92011) ([JIaQi Tang](https://github.com/JiaQiTang98)).

<div id="performance-improvement">
  #### Mejora del rendimiento
</div>

* La configuración `use_skip_indexes_on_data_read` ahora está habilitada de forma predeterminada. Esta configuración permite filtrar de forma continua al mismo tiempo que se leen los datos, lo que mejora el rendimiento de las consultas y el tiempo de arranque. [#93407](https://github.com/ClickHouse/ClickHouse/pull/93407) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Mejora el rendimiento de `DISTINCT` en las columnas `LowCardinality`. Cierra [#5917](https://github.com/ClickHouse/ClickHouse/issues/5917). [#91639](https://github.com/ClickHouse/ClickHouse/pull/91639) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Optimizar la función de agregación `distinctJSONPaths` para que lea únicamente las rutas JSON de las partes de datos, en lugar de toda la columna JSON. [#92196](https://github.com/ClickHouse/ClickHouse/pull/92196) ([Pavel Kruglov](https://github.com/Avogar)).
* Más filtros aplicados con pushdown en JOINs. [#85556](https://github.com/ClickHouse/ClickHouse/pull/85556) ([Nikita Taranov](https://github.com/nickitat)).
* Se amplía la compatibilidad con más casos de push down desde la condición ON del join cuando el filtro usa entradas de un solo lado. Se admiten joins `ANY`, `SEMI` y `ANTI`. [#92584](https://github.com/ClickHouse/ClickHouse/pull/92584) ([Dmitry Novik](https://github.com/novikd)).
* Permite usar conjuntos equivalentes para hacer push down de filtros en `SEMI JOIN`. Cierra [#85239](https://github.com/ClickHouse/ClickHouse/issues/85239). [#92837](https://github.com/ClickHouse/ClickHouse/pull/92837) ([Dmitry Novik](https://github.com/novikd)).
* Omitir la lectura del lado izquierdo del hash join cuando el lado derecho está vacío. Antes leíamos el lado izquierdo hasta el primer bloque no vacío, lo que podía implicar mucho trabajo en casos con mucho filtrado o agregación. [#94062](https://github.com/ClickHouse/ClickHouse/pull/94062) ([Alexander Gololobov](https://github.com/davenger)).
* Uso del método "fastrange" (Daniel Lemire) para particionar datos dentro de la canalización de consultas. Esto podría mejorar la ordenación paralela y los JOINs. [#93080](https://github.com/ClickHouse/ClickHouse/pull/93080) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora el rendimiento de las funciones de ventana cuando `PARTITION BY` coincide con la clave de ordenación o es un prefijo de ella. [#87299](https://github.com/ClickHouse/ClickHouse/pull/87299) ([Nikita Taranov](https://github.com/nickitat)).
* Se hace pushdown del filtro externo en las vistas, lo que permite aplicar PREWHERE en nodos locales y remotos. Resuelve [#88189](https://github.com/ClickHouse/ClickHouse/issues/88189). [#88316](https://github.com/ClickHouse/ClickHouse/pull/88316) ([Igor Nikonov](https://github.com/devcrafter)).
* Se implementan compilaciones JIT para más funciones. Cierra [#73509](https://github.com/ClickHouse/ClickHouse/issues/73509). [#88770](https://github.com/ClickHouse/ClickHouse/pull/88770) ([Alexey Milovidov](https://github.com/alexey-milovidov) con [Taiyang Li](https://github.com/taiyang-li)).
* Si un índice de salto utilizado en una consulta `FINAL` está en una columna que forma parte de la clave primaria, el paso adicional para comprobar la intersección con la clave primaria en otras partes es innecesario y ya no se realiza. Resuelve [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897). [#93899](https://github.com/ClickHouse/ClickHouse/pull/93899) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Optimiza el rendimiento y el uso de memoria de `LIMIT` y `OFFSET` fraccionarios. [#91167](https://github.com/ClickHouse/ClickHouse/pull/91167) ([Ahmed Gouda](https://github.com/0xgouda)).
* Se corrige el uso de una lógica de lectura aleatoria más rápida en el prefetcher de Parquet Reader V3. Cierra [#90890](https://github.com/ClickHouse/ClickHouse/issues/90890). [#91435](https://github.com/ClickHouse/ClickHouse/pull/91435) ([Arsen Muk](https://github.com/arsenmuk)).
* Mejora el rendimiento de `icebergCluster`. Cierra [#91462](https://github.com/ClickHouse/ClickHouse/issues/91462). [#91537](https://github.com/ClickHouse/ClickHouse/pull/91537) ([Yang Jiang](https://github.com/Ted-Jiang)).
* No filtrar por columnas virtuales con filtros constantes. [#91588](https://github.com/ClickHouse/ClickHouse/pull/91588) ([c-end](https://github.com/c-end)).
* Reduce el uso de memoria de INSERT/merges con wide parts en tablas muy anchas al habilitar búferes de escritura adaptativos. Añade compatibilidad con búferes de escritura adaptativos para discos cifrados. [#92250](https://github.com/ClickHouse/ClickHouse/pull/92250) ([Azat Khuzhin](https://github.com/azat)).
* Se mejoró el rendimiento de la búsqueda de texto completo con índice de texto y el tokenizador `sparseGrams` al reducir el número de tokens buscados en el índice. [#93078](https://github.com/ClickHouse/ClickHouse/pull/93078) ([Anton Popov](https://github.com/CurtizJ)).
* La función `isValidASCII` se optimizó para casos positivos, es decir, valores de entrada compuestos únicamente por caracteres ASCII. [#93347](https://github.com/ClickHouse/ClickHouse/pull/93347) ([Robert Schulze](https://github.com/rschu1ze)).
* La optimización de lectura en orden ahora detecta cuándo las columnas de ORDER BY son constantes debido a las condiciones de WHERE, lo que permite realizar lecturas eficientes en orden inverso. Esto beneficia a consultas multi-tenant como `WHERE tenant='42' ORDER BY tenant, event_time DESC`, que ahora pueden usar InReverseOrder en lugar de requerir una ordenación completa.". [#94103](https://github.com/ClickHouse/ClickHouse/pull/94103) ([matanper](https://github.com/matanper)).
* Se introduce una clase especializada del AST de enum para almacenar parámetros de valor como pares (cadena, entero) en lugar de nodos ASTLiteral, con el fin de optimizar el consumo de memoria. [#94178](https://github.com/ClickHouse/ClickHouse/pull/94178) ([Ilya Yatsishin](https://github.com/qoega)).
* Análisis distribuido de índices en varias réplicas. Resulta beneficioso para el almacenamiento compartido y para grandes volúmenes de datos en un clúster. Esto se aplica a SharedMergeTree (ClickHouse Cloud) y podría aplicarse a otros tipos de tablas MergeTree sobre almacenamiento compartido. [#86786](https://github.com/ClickHouse/ClickHouse/pull/86786) ([Azat Khuzhin](https://github.com/azat)).
* Reducir la sobrecarga de los filtros de runtime de join deshabilitándolos en los siguientes casos: - hay demasiados bits activados en el filtro bloom - se filtran muy pocas filas en runtime. [#91578](https://github.com/ClickHouse/ClickHouse/pull/91578) ([Alexander Gololobov](https://github.com/davenger)).
* Se usa un búfer en memoria para la entrada de subconsultas correlacionadas para evitar evaluarla varias veces. Parte de [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#91205](https://github.com/ClickHouse/ClickHouse/pull/91205) ([Dmitry Novik](https://github.com/novikd)).
* Permite que todas las réplicas tomen rangos huérfanos durante la lectura con réplicas en paralelo. Esto mejora el equilibrio de carga y reduce la latencia en la cola larga. [#91374](https://github.com/ClickHouse/ClickHouse/pull/91374) ([zoomxi](https://github.com/zoomxi)).
* Las operaciones externas de agregación, ordenación y join ahora respetan la configuración de consulta `temporary_files_codec` en todos los contextos. Se corrigieron los eventos de perfil ausentes para grace hash join. [#92388](https://github.com/ClickHouse/ClickHouse/pull/92388) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Mejorar la robustez de la detección del uso de memoria de las consultas para el volcado a disco durante la agregación/ordenación. [#92500](https://github.com/ClickHouse/ClickHouse/pull/92500) ([Azat Khuzhin](https://github.com/azat)).
* Estimar el recuento total de filas y las estadísticas de NDV (número de valores distintos) de las columnas de la clave de agregación. [#92812](https://github.com/ClickHouse/ClickHouse/pull/92812) ([Alexander Gololobov](https://github.com/davenger)).
* Optimiza la compresión de las listas de postings con simdcomp. [#92871](https://github.com/ClickHouse/ClickHouse/pull/92871) ([Peng Jian](https://github.com/fastio)).
* Se refactorizó el procesamiento del modo Ordered de S3Queue con buckets. Esto también debería mejorar el rendimiento al reducir el número de solicitudes a Keeper. [#92889](https://github.com/ClickHouse/ClickHouse/pull/92889) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Las funciones `mapContainsKeyLike` y `mapContainsValueLike` ahora pueden usar un índice de texto en `mapKeys()` o `mapValues()`, respectivamente. [#93049](https://github.com/ClickHouse/ClickHouse/pull/93049) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Reduce el uso de memoria en sistemas no Linux (habilita la purga inmediata de las páginas sucias de jemalloc). [#93360](https://github.com/ClickHouse/ClickHouse/pull/93360) ([Eduard Karacharov](https://github.com/korowa)).
* Forzar el purgado de las arenas de jemalloc en caso de que la proporción entre el tamaño de las páginas sucias y `max_server_memory_usage` supere `memory_worker_purge_dirty_pages_threshold_ratio`. [#93500](https://github.com/ClickHouse/ClickHouse/pull/93500) ([Eduard Karacharov](https://github.com/korowa)).
* Reduce el uso de memoria para AST. [#93601](https://github.com/ClickHouse/ClickHouse/pull/93601) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* En algunos casos, hemos visto que ClickHouse no respeta el límite de memoria al leer desde una tabla. Se ha corregido este comportamiento. [#93715](https://github.com/ClickHouse/ClickHouse/pull/93715) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se habilitan de forma predeterminada las extensiones `CHECK_STAT` y `TRY_REMOVE` de Keeper. [#93886](https://github.com/ClickHouse/ClickHouse/pull/93886) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Analizar los límites inferior y superior de los nombres de archivo correspondientes a los borrados posicionales en las entradas del archivo de manifiesto de Iceberg para seleccionar mejor los archivos de datos correspondientes. [#93980](https://github.com/ClickHouse/ClickHouse/pull/93980) ([Daniil Ivanik](https://github.com/divanik)).
* Agrega dos ajustes más para controlar el número máximo de subcolumnas dinámicas en una columna JSON. El primero es el ajuste de MergeTree `merge_max_dynamic_subcolumns_in_compact_part` (similar al ya añadido `merge_max_dynamic_subcolumns_in_wide_part`) que limita el número de subcolumnas dinámicas creadas durante la fusión en una parte Compact. El segundo es el ajuste a nivel de consulta `max_dynamic_subcolumns_in_json_type_parsing`, que limita el número de subcolumnas dinámicas creadas durante el análisis de datos JSON; permitirá especificar el límite en la inserción. [#94184](https://github.com/ClickHouse/ClickHouse/pull/94184) ([Pavel Kruglov](https://github.com/Avogar)).
* Se optimiza ligeramente la compactación de columnas de tipo JSON en algunos casos. [#94247](https://github.com/ClickHouse/ClickHouse/pull/94247) ([Pavel Kruglov](https://github.com/Avogar)).
* Reduzca el tamaño de las colas del pool de hilos en función de la experiencia en producción. Añada una comprobación explícita del consumo de memoria antes de leer cualquier dato de MergeTree. [#94692](https://github.com/ClickHouse/ClickHouse/pull/94692) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Asegúrese de que el planificador dé prioridad al hilo MemoryWorker cuando haya escasez de CPU, ya que protege el proceso de ClickHouse frente a una amenaza existencial. [#94864](https://github.com/ClickHouse/ClickHouse/pull/94864) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ejecutar la purga de páginas sucias de jemalloc en un hilo distinto del hilo principal de `MemoryWorker`. Si la purga es lenta, podría retrasar la actualización del uso de RSS, lo que podría hacer que el proceso se finalice por falta de memoria. Se introduce una nueva configuración `memory_worker_purge_total_memory_threshold_ratio` para iniciar la purga de páginas sucias según la proporción del uso total de memoria. [#94902](https://github.com/ClickHouse/ClickHouse/pull/94902) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="improvement">
  #### Mejora
</div>

* `system.blob_storage_log` ahora está disponible para Azure Blob Storage. [#93105](https://github.com/ClickHouse/ClickHouse/pull/93105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementar `blob_storage_log` para Local y HDFS. Corregir un error cuando `S3Queue` utilizaba algo distinto del nombre del disco para registrar en `blob_storage_log`. Añadir la columna `error_code` a `blob_storage_log`. Dividir el archivo de configuración de pruebas para simplificar las pruebas en local. [#93106](https://github.com/ClickHouse/ClickHouse/pull/93106) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `clickhouse-client` y `clickhouse-local` resaltarán grupos de dígitos (miles, millones, etc.) dentro de los literales numéricos al escribir. Esto cierra [#93100](https://github.com/ClickHouse/ClickHouse/issues/93100). [#93108](https://github.com/ClickHouse/ClickHouse/pull/93108) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade compatibilidad en `clickhouse-client` con argumentos de línea de comandos que tienen espacios alrededor del signo igual. Cierra [#93077](https://github.com/ClickHouse/ClickHouse/issues/93077). [#93174](https://github.com/ClickHouse/ClickHouse/pull/93174) ([Cole Smith](https://github.com/colesmith54)).
* Con `<interactive_history_legacy_keymap>true</interactive_history_legacy_keymap>`, el cliente de la CLI ahora puede volver a usar Ctrl-R para la búsqueda normal, como antes, mientras que Ctrl-T realiza una búsqueda difusa. [#87785](https://github.com/ClickHouse/ClickHouse/pull/87785) ([Larry Snizek](https://github.com/larry-cdn77)).
* La sentencia para limpiar cachés `SYSTEM DROP [...] CACHE` daba la falsa impresión de que desactivaba la caché. ClickHouse ahora admite la sentencia `SYSTEM CLEAR [...] CACHE`, que resulta más clara. La sintaxis anterior sigue estando disponible. [#93727](https://github.com/ClickHouse/ClickHouse/pull/93727) ([Pranav Tiwari](https://github.com/pranavt84)).
* Permite usar varias columnas como clave primaria en `EmbeddedRocksDB`. Cierra [#32819](https://github.com/ClickHouse/ClickHouse/issues/32819). [#33917](https://github.com/ClickHouse/ClickHouse/pull/33917) ([usurai](https://github.com/usurai)).
* Ahora ya es posible usar IN no constante con escalares (consultas como `val1 NOT IN if(cond, val2, val3)`). [#93495](https://github.com/ClickHouse/ClickHouse/pull/93495) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Evita que los encabezados `x-amz-server-side-encryption` se propaguen en las solicitudes S3 `HeadObject`, `UploadPart` y `CompleteMultipartUpload`, ya que no son compatibles. [#64577](https://github.com/ClickHouse/ClickHouse/pull/64577) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Seguimiento del particionamiento de Hive en el modo ordered de S3Queue. Resuelve [#71161](https://github.com/ClickHouse/ClickHouse/issues/71161). [#81040](https://github.com/ClickHouse/ClickHouse/pull/81040) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Optimiza la reserva de espacio en la caché del sistema de archivos. `FileCache::collectCandidatesForEviction` se ejecutará sin un bloqueo exclusivo. [#82764](https://github.com/ClickHouse/ClickHouse/pull/82764) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite una estrategia de rotación compuesta (tamaño + tiempo) para el log del servidor. [#87620](https://github.com/ClickHouse/ClickHouse/pull/87620) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* El client de la CLI ahora puede especificar `<warnings>false</warnings>` en lugar de la opción de línea de comandos `--no-warnings`. [#87783](https://github.com/ClickHouse/ClickHouse/pull/87783) ([Larry Snizek](https://github.com/larry-cdn77)).
* Se añade compatibilidad para la función de agregación `avg` con valores Date, DateTime y Time como argumentos. Cierra [#82267](https://github.com/ClickHouse/ClickHouse/issues/82267). [#87845](https://github.com/ClickHouse/ClickHouse/pull/87845) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* La optimización `use_join_disjunctions_push_down` está habilitada de forma predeterminada. [#89313](https://github.com/ClickHouse/ClickHouse/pull/89313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se admiten más motores de tabla y tipos de fuentes de datos en las subconsultas correlacionadas. Cierra [#80775](https://github.com/ClickHouse/ClickHouse/issues/80775). [#90175](https://github.com/ClickHouse/ClickHouse/pull/90175) ([Dmitry Novik](https://github.com/novikd)).
* Si el esquema de la vista parametrizada se especifica explícitamente, se muestra. Cierra [#88875](https://github.com/ClickHouse/ClickHouse/issues/88875), [#81385](https://github.com/ClickHouse/ClickHouse/issues/81385). [#90220](https://github.com/ClickHouse/ClickHouse/pull/90220) ([Grigorii Sokolik](https://github.com/GSokol)).
* Gestiona correctamente la laguna en las entradas del log de Keeper si los logs son anteriores al último índice confirmado. [#90403](https://github.com/ClickHouse/ClickHouse/pull/90403) ([Antonio Andelic](https://github.com/antonio2368)).
* Se mejoró la configuración `min_free_disk_bytes_to_perform_insert` para que funcione correctamente con volúmenes JBOD. [#90878](https://github.com/ClickHouse/ClickHouse/pull/90878) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Ahora se puede especificar la opción `storage_class_name` en las colecciones con nombre para el motor de tabla `S3` y la función de tabla `s3`. [#91926](https://github.com/ClickHouse/ClickHouse/pull/91926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se admite la inserción en ZooKeeper auxiliar mediante `system.zookeeper`. [#92092](https://github.com/ClickHouse/ClickHouse/pull/92092) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Se agregan nuevas métricas para Keeper: los profile events `KeeperChangelogWrittenBytes`, `KeeperChangelogFileSyncMicroseconds`, `KeeperSnapshotWrittenBytes` y `KeeperSnapshotFileSyncMicroseconds`, así como las histogram metrics `KeeperBatchSizeElements` y `KeeperBatchSizeBytes`. [#92149](https://github.com/ClickHouse/ClickHouse/pull/92149) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se ha añadido una nueva configuración, `trace_profile_events_list`, que limita el trazado con `trace_profile_event` a la lista especificada de nombres de eventos. Esto permite una recopilación de datos más precisa en cargas de trabajo de gran tamaño. [#92298](https://github.com/ClickHouse/ClickHouse/pull/92298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compatibilidad con SYSTEM NOTIFY FAILPOINT para failpoints pausables. - Compatibilidad con SYSTEM WAIT FAILPOINT fp PAUSE/RESUME. [#92368](https://github.com/ClickHouse/ClickHouse/pull/92368) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Agregar la columna `creation` (implícita/explícita) a `system.data_skipping_indices`. [#92378](https://github.com/ClickHouse/ClickHouse/pull/92378) ([Raúl Marín](https://github.com/Algunenano)).
* Permitir pasar la descripción de las columnas de las tablas dinámicas de YTsaurus a la fuente del diccionario. [#92391](https://github.com/ClickHouse/ClickHouse/pull/92391) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* En [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985), hicimos posible especificar todos los parámetros necesarios para la configuración de TLS por puerto (consulte [protocolos componibles](/es/concepts/features/configuration/server-config/composable-protocols)), de modo que ya no dependemos de una configuración global de TLS. Sin embargo, la implementación sigue requiriendo implícitamente que exista una sección de configuración global `openSSL.server`, lo que entra en conflicto con entornos en los que se necesitan configuraciones de TLS distintas para diferentes puertos. Por ejemplo, en despliegues keeper-in-server, necesitamos configuraciones de TLS independientes para la comunicación entre instancias de Keeper y las conexiones del clickhouse client. [#92457](https://github.com/ClickHouse/ClickHouse/pull/92457) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se incorpora un nuevo ajuste `input_format_binary_max_type_complexity` que limita el número total de nodos de tipo que pueden decodificarse en formato binario para evitar payloads maliciosos. [#92519](https://github.com/ClickHouse/ClickHouse/pull/92519) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Mostrar las tareas en ejecución en `system.background_schedule_pool{,_log}`. Añadir documentación. [#92587](https://github.com/ClickHouse/ClickHouse/pull/92587) ([Azat Khuzhin](https://github.com/azat)).
* Ejecuta la consulta actual en la búsqueda con Ctrl+R en client si no se encuentra ninguna coincidencia en el historial. [#92749](https://github.com/ClickHouse/ClickHouse/pull/92749) ([Azat Khuzhin](https://github.com/azat)).
* Se admite `EXPLAIN indices = 1` como alias de `EXPLAIN indexes = 1`. Resuelve [#92483](https://github.com/ClickHouse/ClickHouse/issues/92483). [#92774](https://github.com/ClickHouse/ClickHouse/pull/92774) ([Pranav Tiwari](https://github.com/pranavt84)).
* El lector de Parquet ahora permite leer columnas de tipo Tuple o Map como JSON: `select x from file(f.parquet, auto, 'x JSON')` funciona incluso si el tipo de la columna `x` en `f.parquet` es tuple o map. [#92864](https://github.com/ClickHouse/ClickHouse/pull/92864) ([Michael Kolupaev](https://github.com/al13n321)).
* Se admiten tuplas vacías en el lector de Parquet. [#92868](https://github.com/ClickHouse/ClickHouse/pull/92868) ([Michael Kolupaev](https://github.com/al13n321)).
* Se recurre a la copia en modo lectura y escritura para Azure Blob Storage cuando la copia nativa falla con BadRequest (p. ej., lista de bloques no válida). Anteriormente, esto solo se hacía para el error Unauthorized, que se observaba al copiar un blob entre distintas cuentas de almacenamiento. Pero a veces también vemos el error "The specified block list is invalid". Así que ahora se ha actualizado la condición para recurrir a lectura y escritura en todos los fallos de la copia nativa. [#92888](https://github.com/ClickHouse/ClickHouse/pull/92888) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Se corrige el throttling del endpoint de metadatos de EC2 al ejecutar muchas consultas concurrentes de S3 con credenciales de perfil de instancia de EC2. Anteriormente, cada consulta creaba su propio `AWSInstanceProfileCredentialsProvider`, lo que provocaba solicitudes concurrentes al servicio de metadatos de EC2 y podía dar lugar a timeouts y errores `HTTP response code: 403`. Ahora, el proveedor de credenciales se almacena en caché y se comparte entre todas las consultas. [#92891](https://github.com/ClickHouse/ClickHouse/pull/92891) ([Sav](https://github.com/sberss)).
* Se ha rediseñado la configuración `insert_select_deduplicate` para permitir mantener la compatibilidad con versiones anteriores. [#92951](https://github.com/ClickHouse/ClickHouse/pull/92951) ([Sema Checherinda](https://github.com/CheSema)).
* Registrar las tareas en segundo plano más lentas que la media (`background_schedule_pool_log.duration_threshold_milliseconds=30`) para evitar un registro excesivo de tareas. [#92965](https://github.com/ClickHouse/ClickHouse/pull/92965) ([Azat Khuzhin](https://github.com/azat)).
* En versiones anteriores, algunos nombres de funciones de C++ se mostraban de forma incorrecta ("mangled") en `system.trace_log` y `system.symbols`, y la función `demangle` no los procesaba correctamente. Cierra [#93074](https://github.com/ClickHouse/ClickHouse/issues/93074). [#93075](https://github.com/ClickHouse/ClickHouse/pull/93075) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se introdujo la opción de copia de seguridad `backup_data_from_refreshable_materialized_view_targets` para omitir la copia de seguridad de las vistas materializadas actualizables. Las RMV con estrategia de actualización APPEND siempre se respaldan. [#93076](https://github.com/ClickHouse/ClickHouse/pull/93076) ([Julia Kartseva](https://github.com/jkartseva)). [#93658](https://github.com/ClickHouse/ClickHouse/pull/93658) ([Julia Kartseva](https://github.com/jkartseva))
* Usar información de depuración mínima en lugar de no incluir información de depuración para unidades de traducción grandes, como las funciones. [#93079](https://github.com/ClickHouse/ClickHouse/pull/93079) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió compatibilidad con MinIO en el SDK de AWS S3 para C++ mediante la implementación de un mapeo de códigos de error para errores específicos de MinIO. Este cambio permite que ClickHouse gestione correctamente y reintente los errores del servidor de MinIO cuando se utilizan implementaciones de MinIO en lugar de AWS S3, lo que mejora la fiabilidad para los usuarios que ejecutan almacenamiento de objetos en clústeres de MinIO autogestionados. [#93082](https://github.com/ClickHouse/ClickHouse/pull/93082) ([XiaoBinMu](https://github.com/Binnn-MX)).
* Escribir perfiles simbolizados de jemalloc (lo que elimina la necesidad de un binario durante la generación de perfiles de heap). [#93099](https://github.com/ClickHouse/ClickHouse/pull/93099) ([Azat Khuzhin](https://github.com/azat)).
* Se restauró la herramienta `clickhouse git-import`: fallaba con commits grandes y no válidos. Véase [https://presentations.clickhouse.com/2020-matemarketing/](https://presentations.clickhouse.com/2020-matemarketing/). [#93202](https://github.com/ClickHouse/ClickHouse/pull/93202) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* No mostrar las contraseñas del almacenamiento URL en el registro de consultas. [#93245](https://github.com/ClickHouse/ClickHouse/pull/93245) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se añadió compatibilidad con el tipo `Geometry` en `flipCoordinates`. [#93303](https://github.com/ClickHouse/ClickHouse/pull/93303) ([Bharat Nallan](https://github.com/bharatnc)).
* Mejora la UX de SYSTEM INSTRUMENT ADD/REMOVE: usa literales String para los nombres de las funciones, parchea todas las funciones que coincidan y permite usar function\_name en `REMOVE`. [#93345](https://github.com/ClickHouse/ClickHouse/pull/93345) ([Pablo Marcos](https://github.com/pamarcos)).
* Se añade una nueva configuración `materialize_statistics_on_merge` que permite activar o desactivar la materialización de estadísticas durante la fusión. El valor predeterminado es `1`. [#93379](https://github.com/ClickHouse/ClickHouse/pull/93379) ([Han Fei](https://github.com/hanfei1991)).
* ClickHouse ahora puede interpretar `SELECT` sin paréntesis alrededor de las consultas `DESCRIBE SELECT`. Cierra [#58382](https://github.com/ClickHouse/ClickHouse/issues/58382). [#93429](https://github.com/ClickHouse/ClickHouse/pull/93429) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Añade aleatoriedad a las comprobaciones de corrección de la caché con una probabilidad determinada. [#93439](https://github.com/ClickHouse/ClickHouse/pull/93439) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Añadir la configuración `type_json_allow_duplicated_key_with_literal_and_nested_object` para permitir paths duplicados en JSON cuando uno es un literal y otro es un objeto anidado, por ejemplo `{"a" : 42, "a" : {"b" : 42}}`. Es posible que algunos datos se hayan creado antes de que se añadiera esta restricción sobre paths duplicados en [https://github.com/ClickHouse/ClickHouse/pull/79317](https://github.com/ClickHouse/ClickHouse/pull/79317), y que ahora una manipulación posterior de esos datos provoque errores. Con esta configuración, esos datos antiguos aún pueden usarse sin errores. [#93604](https://github.com/ClickHouse/ClickHouse/pull/93604) ([Pavel Kruglov](https://github.com/Avogar)).
* No se imprimen los valores de tipos simples en líneas separadas en Pretty JSON. [#93836](https://github.com/ClickHouse/ClickHouse/pull/93836) ([Pavel Kruglov](https://github.com/Avogar)).
* Cuando hay muchas sentencias `alter table ... modify setting ...`, puede que no se adquiera el bloqueo en 5 segundos. Es mejor devolver `timeout` que `error lógico`. [#93856](https://github.com/ClickHouse/ClickHouse/pull/93856) ([Han Fei](https://github.com/hanfei1991)).
* Se evita una salida excesiva ante un error de sintaxis. Antes de este cambio, se mostraba el script SQL completo, que podía contener muchas consultas. [#93876](https://github.com/ClickHouse/ClickHouse/pull/93876) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Cálculo correcto del tamaño en bytes de la solicitud `check` con estadísticas en Keeper. [#93907](https://github.com/ClickHouse/ClickHouse/pull/93907) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Se añadió la configuración `use_hash_table_stats_for_join_reordering` para controlar si se utilizan estadísticas del tamaño de la tabla hash en tiempo de ejecución para reordenar joins. Esta configuración está habilitada de forma predeterminada, lo que conserva el comportamiento existente de `collect_hash_table_stats_during_joins`. [#93912](https://github.com/ClickHouse/ClickHouse/pull/93912) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ahora los usuarios pueden ver parcialmente las opciones de configuración globales anidadas del servidor en la tabla `system.server_settings` (p. ej., `logger.level`). Esto solo cubre las opciones de configuración con una estructura fija (sin listas, enumeraciones, repeticiones, etc.). [#94001](https://github.com/ClickHouse/ClickHouse/pull/94001) ([Hechem Selmi](https://github.com/m-selmi)).
* `QBit` ahora se puede comparar por igualdad. [#94078](https://github.com/ClickHouse/ClickHouse/pull/94078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Cuando Keeper detecte un snapshot dañado o changelogs inconsistentes, que lance una excepción en lugar de abortar manualmente o limpiar los archivos automáticamente. Esto debería dar lugar a un comportamiento más seguro de Keeper, al depender de la intervención manual. [#94168](https://github.com/ClickHouse/ClickHouse/pull/94168) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió la posible presencia de restos en caso de que falle `CREATE TABLE`. [#94174](https://github.com/ClickHouse/ClickHouse/pull/94174) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el acceso a memoria no inicializada (un fallo en OpenSSL) cuando se usa una clave TLS protegida con contraseña. [#94182](https://github.com/ClickHouse/ClickHouse/pull/94182) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Actualiza chdig a la versión [v26.1.1](https://github.com/azat/chdig/releases/tag/v26.1.1). [#94290](https://github.com/ClickHouse/ClickHouse/pull/94290) ([Azat Khuzhin](https://github.com/azat)).
* Añade compatibilidad con un particionamiento más genérico para el modo ordered de S3Queue. [#94321](https://github.com/ClickHouse/ClickHouse/pull/94321) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añadió el alias `use_statistics` para el ajuste `allow_statistics_optimize`. Esto es más coherente con los ajustes existentes `use_primary_key` y `use_skip_indexes`. [#94366](https://github.com/ClickHouse/ClickHouse/pull/94366) ([Robert Schulze](https://github.com/rschu1ze)).
* Se habilitó la configuración `input_format_numbers_enum_on_conversion_error` para que, en la conversión de números a enums, se compruebe si el elemento existe. [#94384](https://github.com/ClickHouse/ClickHouse/pull/94384) ([Elmi Ahmadov](https://github.com/ahmadov)).
* En el modo ordered de S3(Azure)Queue, se limpian los nodos failed según los límites de seguimiento (antes esto solo se hacía en el modo Unordered, tanto para failed como para processed; ahora también se hará en Ordered, pero solo para los nodos failed). [#94412](https://github.com/ClickHouse/ClickHouse/pull/94412) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se habilitó la gestión de acceso para el usuario `default` en clickhouse-local. El usuario `default` de `clickhouse-local` no tenía el privilegio `access&#95;management`, lo que hacía que operaciones como `DROP ROW POLICY IF EXISTS` fallaran con el error `ACCESS_DENIED`, aunque ese usuario no debería tener restricciones. [#94501](https://github.com/ClickHouse/ClickHouse/pull/94501) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se habilita named collection para diccionarios y tablas de YTsaurus. [#94582](https://github.com/ClickHouse/ClickHouse/pull/94582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se añade compatibilidad con colecciones con nombre definidas mediante SQL en BACKUP/RESTORE para S3 y Azure Blob Storage. Cierra [#94604](https://github.com/ClickHouse/ClickHouse/issues/94604). [#94605](https://github.com/ClickHouse/ClickHouse/pull/94605) ([Pablo Marcos](https://github.com/pamarcos)).
* Compatibilidad con la agrupación en buckets basada en la clave de partición para S3Queue en modo ordenado. [#94698](https://github.com/ClickHouse/ClickHouse/pull/94698) ([Bharat Nallan](https://github.com/bharatnc)).
* Añade una métrica asíncrona con el tiempo transcurrido del merge en ejecución más largo. [#94825](https://github.com/ClickHouse/ClickHouse/pull/94825) ([Raúl Marín](https://github.com/Algunenano)).
* Añadir una comprobación del archivo asociado antes de aplicar la eliminación por posición con IcebergBitmapPositionDeleteTransform. [#94897](https://github.com/ClickHouse/ClickHouse/pull/94897) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Ahora `view_duration_ms` muestra el tiempo durante el cual el grupo estuvo activo, no la suma de las duraciones de los hilos que contiene. [#94966](https://github.com/ClickHouse/ClickHouse/pull/94966) ([Sema Checherinda](https://github.com/CheSema)).
* Se elimina el límite máximo del número de tokens de búsqueda en las funciones `hasAnyTokens` y `hasAllTokens`, que estaba fijado en 64. Ejemplo: `SELECT count() FROM table WHERE hasAllTokens(text, ['token_1', 'token_2', [...], 'token_65']]);` La consulta daría como resultado un error `BAD_ARGUMENTS` porque hay 65 tokens de búsqueda. Con este PR, el límite se ha eliminado por completo y la misma consulta se ejecutaría sin errores. [#95152](https://github.com/ClickHouse/ClickHouse/pull/95152) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Se añade la configuración `input_format_numbers_enum_on_conversion_error` para que, en la conversión de números a Enums, se compruebe si el elemento existe. Cierra: [#56144](https://github.com/ClickHouse/ClickHouse/issues/56144). [#56240](https://github.com/ClickHouse/ClickHouse/pull/56240) ([Nikolay Degterinsky](https://github.com/evillique)).
* Compartir recursos del analizador de formato entre la lectura del archivo de datos y del archivo de eliminación por posición en tablas Iceberg para reducir las asignaciones de memoria. [#94701](https://github.com/ClickHouse/ClickHouse/pull/94701) ([Yang Jiang](https://github.com/Ted-Jiang)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Corrección de errores (mal funcionamiento visible para el usuario en una versión estable oficial)
</div>

* Corrige un error por el que los manejadores de consultas predefinidas interpretaban los espacios en blanco finales como datos durante las operaciones de inserción. [#83604](https://github.com/ClickHouse/ClickHouse/pull/83604) ([Fabian Ponce](https://github.com/FabianPonce)).
* Se corrige el error INCOMPATIBLE\_TYPE\_OF\_JOIN para el almacenamiento Join cuando se aplica la optimización de outer join a inner join. Resuelve [#80794](https://github.com/ClickHouse/ClickHouse/issues/80794). [#84292](https://github.com/ClickHouse/ClickHouse/pull/84292) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige la excepción "Invalid number of rows in Chunk" al usar hash join con `allow_experimental_join_right_table_sorting` activado. [#86440](https://github.com/ClickHouse/ClickHouse/pull/86440) ([yanglongwei](https://github.com/ylw510)).
* Los nombres de archivo siempre se reemplazan por un hash en MergeTree si el sistema de archivos no distingue entre mayúsculas y minúsculas. Anteriormente, en sistemas de archivos que no distinguen entre mayúsculas y minúsculas (como MacOS), esto podía provocar corrupción de datos cuando varios nombres de columna/subcolumna diferían solo por el uso de mayúsculas y minúsculas. [#86559](https://github.com/ClickHouse/ClickHouse/pull/86559) ([Pavel Kruglov](https://github.com/Avogar)).
* Añadir una comprobación completa de permisos durante la fase de creación de la consulta subyacente en una vista materializada. [#89180](https://github.com/ClickHouse/ClickHouse/pull/89180) ([pufit](https://github.com/pufit)).
* Se corrigió un fallo en la función `icebergHash` al usar un argumento constante. [#90335](https://github.com/ClickHouse/ClickHouse/pull/90335) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige un error lógico cuando una mutación sin transacción modifica partes dentro de una transacción activa que finalmente se revierte. [#90469](https://github.com/ClickHouse/ClickHouse/pull/90469) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Actualiza correctamente `system.warnings` después de convertir una base de datos ordinaria en una base de datos Atomic. [#90473](https://github.com/ClickHouse/ClickHouse/pull/90473) ([sdk2](https://github.com/sdk2)).
* Corrige un error de aserción al leer un archivo Parquet, cuando una parte de una expresión **prewhere** se usa en otra parte de la consulta. [#90635](https://github.com/ClickHouse/ClickHouse/pull/90635) ([Max Kainov](https://github.com/maxknv)).
* Se corrige un fallo en un clúster de un solo nodo al leer desde Iceberg en modo split-by-buckets. Cierra la issue [#90913](https://github.com/ClickHouse/ClickHouse/issues/90913#issue-3668583963). [#91553](https://github.com/ClickHouse/ClickHouse/pull/91553) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige un posible error lógico en el motor Log durante la lectura de subcolumnas. Cierra [#91710](https://github.com/ClickHouse/ClickHouse/issues/91710). [#91711](https://github.com/ClickHouse/ClickHouse/pull/91711) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió el error lógico: 'Storage no admite transacción' durante ATTACH AS REPLICATED. [#91772](https://github.com/ClickHouse/ClickHouse/pull/91772) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrección de un problema por el que los filtros en tiempo de ejecución funcionaban incorrectamente cuando LEFT ANTI JOIN tenía una poscondición adicional. [#91824](https://github.com/ClickHouse/ClickHouse/pull/91824) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige un error en una comparación null-safe que involucra el tipo Nothing. Cierra [#91834](https://github.com/ClickHouse/ClickHouse/issues/91834). Cierra [#84870](https://github.com/ClickHouse/ClickHouse/issues/84870). Cierra [#91821](https://github.com/ClickHouse/ClickHouse/issues/91821). [#91884](https://github.com/ClickHouse/ClickHouse/pull/91884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige errores en la decodificación de DELTA\_BYTE\_ARRAY en el lector nativo de Parquet que afectaban a datos de tipo cadena muy repetitivos. [#91929](https://github.com/ClickHouse/ClickHouse/pull/91929) ([Daniel Muino](https://github.com/dmuino)).
* Almacena en caché el esquema solo para el archivo a partir del cual se infirió en los globs, en lugar de para todos los archivos durante la inferencia del esquema. Cierra [#91745](https://github.com/ClickHouse/ClickHouse/issues/91745). [#92006](https://github.com/ClickHouse/ClickHouse/pull/92006) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige el error `Couldn't pack tar archive: Failed to write all bytes` causado por un encabezado incorrecto con el tamaño de la entrada del archivo. Soluciona [#89075](https://github.com/ClickHouse/ClickHouse/issues/89075). [#92122](https://github.com/ClickHouse/ClickHouse/pull/92122) ([Julia Kartseva](https://github.com/jkartseva)).
* Liberar el flujo de solicitudes en insert select para evitar el cierre de la conexión HTTP. [#92175](https://github.com/ClickHouse/ClickHouse/pull/92175) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige un error lógico en consultas con múltiples JOIN con la cláusula `USING` y `join_use_nulls`. [#92251](https://github.com/ClickHouse/ClickHouse/pull/92251) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige un error lógico al reordenar join con join\_use\_nulls, cierra [https://github.com/clickhouse/clickhouse/issues/90795](https://github.com/clickhouse/clickhouse/issues/90795). [#92289](https://github.com/ClickHouse/ClickHouse/pull/92289) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige el formato inconsistente del AST de arrayElement con un literal negado. Cierra [#92288](https://github.com/ClickHouse/ClickHouse/issues/92288) Cierra [#92212](https://github.com/ClickHouse/ClickHouse/issues/92212) Cierra [#91832](https://github.com/ClickHouse/ClickHouse/issues/91832) Cierra [#91789](https://github.com/ClickHouse/ClickHouse/issues/91789) Cierra [#91735](https://github.com/ClickHouse/ClickHouse/issues/91735) Cierra [#88495](https://github.com/ClickHouse/ClickHouse/issues/88495) Cierra [#92386](https://github.com/ClickHouse/ClickHouse/issues/92386). [#92293](https://github.com/ClickHouse/ClickHouse/pull/92293) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un posible fallo con la configuración `join_on_disk_max_files_to_merge`. [#92335](https://github.com/ClickHouse/ClickHouse/pull/92335) ([Bharat Nallan](https://github.com/bharatnc)).
* issue relacionado con #[https://github.com/ClickHouse/support-escalation/issues/6365](https://github.com/ClickHouse/support-escalation/issues/6365). [#92339](https://github.com/ClickHouse/ClickHouse/pull/92339) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Se corrige la falta de comprobación de acceso en `SYSTEM SYNC FILE CACHE`. Cierra [#92101](https://github.com/ClickHouse/ClickHouse/issues/92101). [#92372](https://github.com/ClickHouse/ClickHouse/pull/92372) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió el paso `count_distinct_optimization` sobre funciones de ventana y múltiples argumentos. [#92376](https://github.com/ClickHouse/ClickHouse/pull/92376) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige el error "No se puede escribir en el búfer finalizado" al usar determinadas funciones de agregación con funciones de ventana. Cierra [#91415](https://github.com/ClickHouse/ClickHouse/issues/91415). [#92395](https://github.com/ClickHouse/ClickHouse/pull/92395) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige un error lógico al usar `CREATE TABLE ... AS urlCluster()` y el motor de base de datos `Replicated`. Cierra [#92216](https://github.com/ClickHouse/ClickHouse/issues/92216). [#92418](https://github.com/ClickHouse/ClickHouse/pull/92418) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Hereda la configuración de la información de serialización de la parte de origen durante una mutación en MergeTree. Esto corrige un posible resultado incorrecto de la consulta sobre una parte mutada tras cambios en la serialización de los tipos de datos. [#92419](https://github.com/ClickHouse/ClickHouse/pull/92419) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un posible conflicto entre una columna y una subcolumna con el mismo nombre que podía provocar el uso de una serialización incorrecta y fallos en las consultas. Cierra [#90219](https://github.com/ClickHouse/ClickHouse/issues/90219). Cierra [#85161](https://github.com/ClickHouse/ClickHouse/issues/85161). [#92453](https://github.com/ClickHouse/ClickHouse/pull/92453) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un `LOGICAL_ERROR` causado por una modificación no deseada del plan de consulta al convertir un outer join en un inner join. También se flexibilizan los requisitos de la optimización para poder aplicarla en casos en los que se aplican funciones inyectivas a las claves de agregación en los joins. [#92503](https://github.com/ClickHouse/ClickHouse/pull/92503) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige un posible error `SIZES_OF_COLUMNS_DOESNT_MATCH` al ordenar una columna Tuple vacía. Cierra [#92422](https://github.com/ClickHouse/ClickHouse/issues/92422). [#92520](https://github.com/ClickHouse/ClickHouse/pull/92520) ([Pavel Kruglov](https://github.com/Avogar)).
* Verificación de rutas tipadas incompatibles en el tipo JSON. Cierra [#91577](https://github.com/ClickHouse/ClickHouse/issues/91577). [#92539](https://github.com/ClickHouse/ClickHouse/pull/92539) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió el interbloqueo en SHOW CREATE DATABASE para la base de datos Backup. [#92541](https://github.com/ClickHouse/ClickHouse/pull/92541) ([Azat Khuzhin](https://github.com/azat)).
* Usar el código de error correcto al validar el índice hypothesis. [#92559](https://github.com/ClickHouse/ClickHouse/pull/92559) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige la resolución de subcolumnas Dynamic en alias de columnas en el analizador. Anteriormente, la subcolumna Dynamic en un alias de columna se envolvía en `getSubcolumn` y, en algunos casos, ni siquiera podía resolverse. Cierra [#91434](https://github.com/ClickHouse/ClickHouse/issues/91434). [#92583](https://github.com/ClickHouse/ClickHouse/pull/92583) ([Pavel Kruglov](https://github.com/Avogar)).
* Se evita un fallo en tokens() con un segundo argumento NULL. [#92586](https://github.com/ClickHouse/ClickHouse/pull/92586) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un posible cierre inesperado provocado por una mutación in situ de las columnas const PREWHERE subyacentes. Esto podría haber ocurrido durante la reducción del tamaño de columnas (`IColumn::shrinkToFit`) o el filtrado (`IColumn::filter`), que podían activarse de forma concurrente en varios hilos. [#92588](https://github.com/ClickHouse/ClickHouse/pull/92588) ([Arsen Muk](https://github.com/arsenmuk)).
* La creación y materialización de índices de texto en tablas que contienen partes de gran tamaño (más de 4.294.967.295 filas) está temporalmente deshabilitada. Esta limitación evita resultados incorrectos en las consultas, ya que la implementación actual del índice aún no admite partes tan grandes. [#92644](https://github.com/ClickHouse/ClickHouse/pull/92644) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un error lógico `Too large size (A) passed to allocator` al ejecutar JOINs. Cierra [#92043](https://github.com/ClickHouse/ClickHouse/issues/92043). [#92667](https://github.com/ClickHouse/ClickHouse/pull/92667) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige un error por el que los índices `ngrambf_v1` con longitud de ngram (1.er parámetro) > 8 lanzaban una excepción. [#92672](https://github.com/ClickHouse/ClickHouse/pull/92672) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige una excepción no controlada durante la recarga en segundo plano de las colecciones con nombre cuando se usa almacenamiento de ZooKeeper. Cierra [https://github.com/ClickHouse/clickhouse-private/issues/44180](https://github.com/ClickHouse/clickhouse-private/issues/44180). [#92717](https://github.com/ClickHouse/ClickHouse/pull/92717) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige la lógica incorrecta en las comprobaciones de grants de acceso con comodines. El intento anterior [https://github.com/ClickHouse/ClickHouse/pull/90928](https://github.com/ClickHouse/ClickHouse/pull/90928) abordó una vulnerabilidad crítica, pero acabó siendo demasiado restrictivo, lo que hizo que algunas sentencias `GRANT` con comodines fallaran debido a revocaciones no relacionadas. [#92725](https://github.com/ClickHouse/ClickHouse/pull/92725) ([pufit](https://github.com/pufit)).
* Corrige un error en la lógica de omisión de datos al usar `not match(...)` en `WHERE`, que provocaba resultados incorrectos. Cierra [#92492](https://github.com/ClickHouse/ClickHouse/issues/92492). [#92726](https://github.com/ClickHouse/ClickHouse/pull/92726) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* No intente eliminar los directorios temporales al iniciar si se crea una tabla MergeTree en un disco de solo lectura. [#92748](https://github.com/ClickHouse/ClickHouse/pull/92748) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió "Cannot add action to empty ExpressionActionsChain" para ALTER TABLE REWRITE PARTS (v2). [#92754](https://github.com/ClickHouse/ClickHouse/pull/92754) ([Azat Khuzhin](https://github.com/azat)).
* Evita un fallo al leer desde una `Connection` desconectada. [#92807](https://github.com/ClickHouse/ClickHouse/pull/92807) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige el error lógico ` Failed to set file processing within 100 retries` en el almacenamiento `S3Queue` en modo `Ordered`. Ahora se ha sustituido por una advertencia. Este error podía producirse antes de la versión 25.10 si la sesión de Keeper había expirado; sin embargo, seguirá siendo una advertencia en las versiones 25.10+, ya que aún es teóricamente posible que se produzca este error en caso de una alta concurrencia de procesamiento en modo `Ordered`. [#92814](https://github.com/ClickHouse/ClickHouse/pull/92814) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Antes, algunas consultas que usaban sharding por PK con una condición falsa fallaban. Ahora ya no fallan. Necesario para [https://github.com/ClickHouse/ClickHouse/pull/89313](https://github.com/ClickHouse/ClickHouse/pull/89313). [#92815](https://github.com/ClickHouse/ClickHouse/pull/92815) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigió el cálculo de los tamaños sin comprimir de los índices de texto en la tabla `system.parts`. [#92832](https://github.com/ClickHouse/ClickHouse/pull/92832) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió el uso del índice primario en las actualizaciones ligeras que tienen una cláusula `IN` con subconsultas en el predicado de la cláusula `WHERE`. [#92838](https://github.com/ClickHouse/ClickHouse/pull/92838) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió la creación de la indicación de tipo para la ruta 'skip' en JSON. Cierra [#92731](https://github.com/ClickHouse/ClickHouse/issues/92731). [#92842](https://github.com/ClickHouse/ClickHouse/pull/92842) ([Pavel Kruglov](https://github.com/Avogar)).
* En el motor de tabla S3, debemos evitar almacenar en caché la clave de partición si hay funciones no deterministas. [#92844](https://github.com/ClickHouse/ClickHouse/pull/92844) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige un posible error `FILE_DOESNT_EXIST` tras la mutación de una columna dispersa con `ratio_of_defaults_for_sparse_serialization=0.0`. Cierra [#92633](https://github.com/ClickHouse/ClickHouse/issues/92633). [#92860](https://github.com/ClickHouse/ClickHouse/pull/92860) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige la inferencia del esquema de Parquet en el antiguo lector de Parquet (no se usa de forma predeterminada) cuando una columna JSON va después de una columna Tupe. Corrige el fallo del antiguo lector de Parquet (no se usa de forma predeterminada) con tuplas vacías. [#92867](https://github.com/ClickHouse/ClickHouse/pull/92867) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige un error lógico con múltiples joins con una condición constante y `join_use_nulls`; cierra [#92640](https://github.com/ClickHouse/ClickHouse/issues/92640). [#92892](https://github.com/ClickHouse/ClickHouse/pull/92892) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige un posible error `NOT_FOUND_COLUMN_IN_BLOCK` durante la inserción en una tabla con una subcolumna en la expresión de partición. Cierra [#93210](https://github.com/ClickHouse/ClickHouse/issues/93210). Cierra [#83406](https://github.com/ClickHouse/ClickHouse/issues/83406). [#92905](https://github.com/ClickHouse/ClickHouse/pull/92905) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige el error `NO_SUCH_COLUMN_IN_TABLE` en el motor Merge con tablas con alias. Cierra [#88665](https://github.com/ClickHouse/ClickHouse/issues/88665). [#92910](https://github.com/ClickHouse/ClickHouse/pull/92910) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige el caso NULL != NULL para full\_sorting\_join en una columna LowCardinality(Nullable(T)). [#92924](https://github.com/ClickHouse/ClickHouse/pull/92924) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigieron varios cierres inesperados durante las fusiones de índices de texto en tablas `MergeTree`. [#92925](https://github.com/ClickHouse/ClickHouse/pull/92925) ([Anton Popov](https://github.com/CurtizJ)).
* Se restauran las envolturas LowCardinality en los resultados de expresiones SET, cuando es necesario, durante la agregación con TTL para evitar excepciones durante la optimización de la tabla. [#92971](https://github.com/ClickHouse/ClickHouse/pull/92971) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige un error lógico durante el análisis de índices cuando se usa un array vacío en la función `has`. Cierra [#92906](https://github.com/ClickHouse/ClickHouse/issues/92906). [#92995](https://github.com/ClickHouse/ClickHouse/pull/92995) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige un posible bloqueo al finalizar el pool de programación en segundo plano (puede provocar bloqueos del servidor durante el apagado). [#93008](https://github.com/ClickHouse/ClickHouse/pull/93008) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un posible error FILE\_DOESNT\_EXIST después de una mutación de una columna dispersa cuando la configuración `ratio_of_defaults_for_sparse_serialization` se cambiaba a `1.0` mediante alter. [#93016](https://github.com/ClickHouse/ClickHouse/pull/93016) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un error en la lógica de omisión de datos al usar `not materialize(...)` o `not CAST(...)` en `WHERE`, que provocaba resultados incorrectos. Cierra [#88536](https://github.com/ClickHouse/ClickHouse/issues/88536). [#93017](https://github.com/ClickHouse/ClickHouse/pull/93017) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige el posible uso de partes obsoletas debido a una race condition TOCTOU en las partes compartidas. [#93022](https://github.com/ClickHouse/ClickHouse/pull/93022) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un bloqueo al deserializar un estado de agregación `groupConcat` malformado con desplazamientos fuera de rango. [#93028](https://github.com/ClickHouse/ClickHouse/pull/93028) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se corrige un problema que dejaba la conexión en un estado incorrecto tras la cancelación preliminar de consultas distribuidas. [#93029](https://github.com/ClickHouse/ClickHouse/pull/93029) ([Azat Khuzhin](https://github.com/azat)).
* Corrige los resultados del join cuando la clave de join del lado derecho es una columna dispersa. Esto cierra [#92920](https://github.com/ClickHouse/ClickHouse/issues/92920). Solo puedo reproducir el error con `set compatibility='23.3'`. No estoy seguro de si debería retroportarse. [#93038](https://github.com/ClickHouse/ClickHouse/pull/93038) ([Amos Bird](https://github.com/amosbird)).
* Se soluciona un posible `Cannot finalize buffer after cancellation` en `estimateCompressionRatio()`. Soluciona: [#87380](https://github.com/ClickHouse/ClickHouse/issues/87380). [#93068](https://github.com/ClickHouse/ClickHouse/pull/93068) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigieron las fusiones de índices de texto basados en expresiones complejas (como `concat(col1, col2)`). [#93073](https://github.com/ClickHouse/ClickHouse/pull/93073) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige la aplicación de la proyección cuando el filtro contiene subcolumnas. Cierra [#92882](https://github.com/ClickHouse/ClickHouse/issues/92882). [#93141](https://github.com/ClickHouse/ClickHouse/pull/93141) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió un error lógico que se producía en algunos casos al añadir filtros en tiempo de ejecución de join al plan de consulta. Se debía a que se devolvían incorrectamente columnas const duplicadas desde uno de los lados del join. [#93144](https://github.com/ClickHouse/ClickHouse/pull/93144) ([Alexander Gololobov](https://github.com/davenger)).
* La función especial `__applyFilter` utilizada por los filtros de tiempo de ejecución de JOIN devolvía ILLEGAL\_TYPE\_OF\_ARGUMENT en algunos casos válidos. [#93187](https://github.com/ClickHouse/ClickHouse/pull/93187) ([Alexander Gololobov](https://github.com/davenger)).
* Evita que distintas columnas interpoladas se fusionen en la misma columna dentro de un bloque cuando las columnas interpoladas son, en la práctica, alias de la misma columna. [#93197](https://github.com/ClickHouse/ClickHouse/pull/93197) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* No añadir un filtro en tiempo de ejecución al hacer join con la tabla del lado derecho ya rellenada. [#93211](https://github.com/ClickHouse/ClickHouse/pull/93211) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrige la limpieza de los watches persistentes de Keeper tras una sesión finalizada. Cierra [#92480](https://github.com/ClickHouse/ClickHouse/issues/92480). [#93213](https://github.com/ClickHouse/ClickHouse/pull/93213) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrige el uso de ORDER BY con tuplas en Iceberg. Esto cierra [#92977](https://github.com/ClickHouse/ClickHouse/issues/92977). [#93225](https://github.com/ClickHouse/ClickHouse/pull/93225) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se corrige un fallo en la configuración `s3queue_migrate_old_metadata_to_buckets` de S3Queue. Cierra [#93392](https://github.com/ClickHouse/ClickHouse/issues/93392), [#93196](https://github.com/ClickHouse/ClickHouse/issues/93196), [#81739](https://github.com/ClickHouse/ClickHouse/issues/81739). [#93232](https://github.com/ClickHouse/ClickHouse/pull/93232) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se eliminan las columnas no utilizadas cuando la proyección se reconstruye durante la fusión. Esto reduce el uso de memoria y crea menos partes temporales. [#93233](https://github.com/ClickHouse/ClickHouse/pull/93233) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la eliminación de columnas no utilizadas de subconsultas cuando hay una subconsulta escalar correlacionada. Antes de esta corrección, una columna podía eliminarse si solo se usaba en la subconsulta correlacionada, y la consulta fallaba con el error `NOT_FOUND_COLUMN_IN_BLOCK`. [#93273](https://github.com/ClickHouse/ClickHouse/pull/93273) ([Dmitry Novik](https://github.com/novikd)).
* Corrige la posible falta de una subcolumna en una MV durante un ALTER de la tabla de origen. Cierra [#93231](https://github.com/ClickHouse/ClickHouse/issues/93231). [#93276](https://github.com/ClickHouse/ClickHouse/pull/93276) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige en el analizador la planificación de consultas del motor de tabla `Merge`, que podía lanzar ILLEGAL\_COLUMN para `hostName()` al fusionar tablas locales y remotas/Distributed. Cierra [#92059](https://github.com/ClickHouse/ClickHouse/issues/92059). [#93286](https://github.com/ClickHouse/ClickHouse/pull/93286) ([Jinlin](https://github.com/withlin)).
* Corrige un caso en el que `NOT IN` con argumentos de Array no constantes devolvía un valor incorrecto, y añade compatibilidad con funciones de Array no constantes. Cierra [#14980](https://github.com/ClickHouse/ClickHouse/issues/14980). [#93314](https://github.com/ClickHouse/ClickHouse/pull/93314) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige el error `Not found column` en la optimización `use_top_k_dynamic_filtering`. Corrige [#93186](https://github.com/ClickHouse/ClickHouse/issues/93186). [#93316](https://github.com/ClickHouse/ClickHouse/pull/93316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió la reconstrucción de los índices de texto creados sobre subcolumnas. [#93326](https://github.com/ClickHouse/ClickHouse/pull/93326) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió el manejo de un array vacío como segundo argumento de las funciones `hasAllTokens` y `hasAnyTokens`. [#93328](https://github.com/ClickHouse/ClickHouse/pull/93328) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió un error lógico al usar filtros de tiempo de ejecución en una consulta con totales para la tabla del lado derecho. [#93330](https://github.com/ClickHouse/ClickHouse/pull/93330) ([Alexander Gololobov](https://github.com/davenger)).
* El servidor ya no falla si se llama a la función `tokens` con parámetros del tokenizer no constantes (el 2.º, 3.º y 4.º parámetro), p. ej., `SELECT tokens(NULL, 1, materialize(1))`. [#93383](https://github.com/ClickHouse/ClickHouse/pull/93383) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigió una vulnerabilidad por desbordamiento de enteros en la deserialización del estado de `groupConcat` que podía provocar problemas de seguridad de la memoria con estados de agregación manipulados. [#93426](https://github.com/ClickHouse/ClickHouse/pull/93426) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se corrigió el análisis del índice de texto en columnas de tipo array cuando el índice no contiene tokens (todos los arrays están vacíos o el tokenizador omite todos los tokens). [#93457](https://github.com/ClickHouse/ClickHouse/pull/93457) ([Anton Popov](https://github.com/CurtizJ)).
* Evita el inicio de sesión mediante OAuth en ClickHouse Client cuando el nombre de usuario y la contraseña están en la cadena de conexión. [#93459](https://github.com/ClickHouse/ClickHouse/pull/93459) ([Krishna Mannem](https://github.com/kcmannem)).
* Corregir la compatibilidad con las credenciales proporcionadas de Azure ADLS Gen2 en DataLakeCatalog: interpretar las claves `adls.sas-token.*` de los catálogos REST de Iceberg y corregir el análisis de las URL ABFSS. [#93477](https://github.com/ClickHouse/ClickHouse/pull/93477) ([Karun Anantharaman](https://github.com/karunmotorq)).
* Se corrigió la compatibilidad con GLOBAL IN en el analizador (antes, el Set se volvía a crear en el nodo remoto). [#93507](https://github.com/ClickHouse/ClickHouse/pull/93507) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la extracción de la subcolumna durante la deserialización directamente en columnas dispersas. [#93512](https://github.com/ClickHouse/ClickHouse/pull/93512) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió la lectura directa desde el índice de texto en consultas de búsqueda duplicadas. [#93516](https://github.com/ClickHouse/ClickHouse/pull/93516) ([Anton Popov](https://github.com/CurtizJ)).
* Corrección del error NOT\_FOUND\_COLUMN\_IN\_BLOCK cuando el runtime filter está habilitado y las tablas unidas devuelven la misma columna varias veces (p. ej., SELECT a, a, a FROM t). [#93526](https://github.com/ClickHouse/ClickHouse/pull/93526) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrigió un error por el que clickhouse-client pedía la contraseña dos veces al conectarse mediante ssh. [#93547](https://github.com/ClickHouse/ClickHouse/pull/93547) ([Isak Ellmer](https://github.com/spinojara)).
* Asegúrese de que ZooKeeper finalice correctamente al apagarse (corrige un posible bloqueo durante el apagado en casos muy poco probables). [#93602](https://github.com/ClickHouse/ClickHouse/pull/93602) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió LOGICAL\_ERROR al restaurar ReplicatedMergeTree con una condición de carrera en la deduplicación. [#93612](https://github.com/ClickHouse/ClickHouse/pull/93612) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrige el uso de columnas dispersas en la actualización de TTL durante la deserialización directa en columnas dispersas en algunos formatos de entrada. Esto corrige el posible error lógico `Unexpected type of result TTL column`. [#93619](https://github.com/ClickHouse/ClickHouse/pull/93619) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigieron las funciones de índice H3 que a veces fallaban o se quedaban bloqueadas al llamarse con valores de entrada no válidos. [#93657](https://github.com/ClickHouse/ClickHouse/pull/93657) ([Michael Kolupaev](https://github.com/al13n321)).
* El uso del índice `ngram_bf` en datos no UTF-8 provocó una lectura de memoria no inicializada, con valores que podían quedar en la estructura del índice resultante. Cierra [#92576](https://github.com/ClickHouse/ClickHouse/issues/92576). [#93663](https://github.com/ClickHouse/ClickHouse/pull/93663) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Comprobar que el tamaño del búfer descomprimido sea el esperado. [#93690](https://github.com/ClickHouse/ClickHouse/pull/93690) ([Raúl Marín](https://github.com/Algunenano)).
* Impedir que los usuarios obtengan la lista de columnas de una tabla sin verificar el permiso `SHOW COLUMNS` mediante el motor de tabla `merge`. [#93695](https://github.com/ClickHouse/ClickHouse/pull/93695) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se corrigió la materialización de los índices de omisión creados a partir de subcolumnas. [#93708](https://github.com/ClickHouse/ClickHouse/pull/93708) ([Anton Popov](https://github.com/CurtizJ)).
* Guardamos los punteros compartidos a los almacenamientos en `QueryPipeline::resources::storage_holders` para garantizar que los objetos `IStorage` no se destruyan mientras `PipelineExecutor` siga activo. [#93746](https://github.com/ClickHouse/ClickHouse/pull/93746) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrige el problema al adjuntar BD Replicated cuando el host entre servidores cambiaba tras reiniciar. [#93779](https://github.com/ClickHouse/ClickHouse/pull/93779) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Se corrige la aserción `!read_until_position` en `ReadBufferFromS3`, que se producía cuando la caché estaba habilitada. [#93809](https://github.com/ClickHouse/ClickHouse/pull/93809) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un error lógico en un caso poco frecuente en el que se usa una tupla vacía con una columna `Map`. Cierra [#93784](https://github.com/ClickHouse/ClickHouse/issues/93784). [#93814](https://github.com/ClickHouse/ClickHouse/pull/93814) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió la corrupción de `_part_offset` al reconstruir las proyecciones durante las fusiones, y se optimizó el procesamiento de proyecciones al evitar lecturas innecesarias de la columna `_part_offset` y omitir columnas no necesarias en los cálculos de proyecciones. Esto da continuidad a las optimizaciones introducidas en [#93233](https://github.com/ClickHouse/ClickHouse/issues/93233). [#93827](https://github.com/ClickHouse/ClickHouse/pull/93827) ([Amos Bird](https://github.com/amosbird)).
* Se elimina el manejo de 'Bad version'. [#93843](https://github.com/ClickHouse/ClickHouse/pull/93843) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Se corrige que `optimize_inverse_dictionary_lookup` no funcionara con una consulta distribuida cuando la clave es de tipo entero con signo. Cierra [#93259](https://github.com/ClickHouse/ClickHouse/issues/93259). [#93848](https://github.com/ClickHouse/ClickHouse/pull/93848) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió que `lag`/`lead` no funcionaran con la consulta distribuida `remote()`. Cierra [#90014](https://github.com/ClickHouse/ClickHouse/issues/90014). [#93858](https://github.com/ClickHouse/ClickHouse/pull/93858) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrigió un error en el envío de instrumentación del sistema. [#93937](https://github.com/ClickHouse/ClickHouse/pull/93937) ([Pablo Marcos](https://github.com/pamarcos)).
* En [https://github.com/ClickHouse/ClickHouse/pull/89173](https://github.com/ClickHouse/ClickHouse/pull/89173), añadimos un campo adicional a la estructura que `TraceSender` envía a través de una tubería interna. Sin embargo, no se actualizó el tamaño del búfer ([aquí](https://github.com/ClickHouse/ClickHouse/pull/89173/changes#diff-36ecfac5cde34c92c031652d8a77f0d12782cd5d43e68d6ef159e6d46a54224fL44)), por lo que estamos escribiendo más datos en el búfer de los que permite `buffer_size`, lo que provoca múltiples flushes. Además, como `TraceSender::send` se llama desde distintos hilos, los flushes de esos hilos pueden intercalarse, lo que rompe el invariante del que depende el extremo receptor (`TraceCollector`). [#93966](https://github.com/ClickHouse/ClickHouse/pull/93966) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrige la conversión de tipos al supertipo durante la operación JOIN del motor de almacenamiento `Join` con la cláusula `USING`. Corrige [#91672](https://github.com/ClickHouse/ClickHouse/issues/91672). Corrige [#78572](https://github.com/ClickHouse/ClickHouse/issues/78572). [#94000](https://github.com/ClickHouse/ClickHouse/pull/94000) ([Dmitry Novik](https://github.com/novikd)).
* Corrección de un problema por el que FilterStep no se añadía correctamente cuando se aplicaba un runtime filter de join sobre una tabla Merge. [#94021](https://github.com/ClickHouse/ClickHouse/pull/94021) ([Alexander Gololobov](https://github.com/davenger)).
* Una consulta `SELECT` que incluía un predicado sobre varias columnas con índices de omisión de bloom filter, y en la que había condiciones `OR` y `NOT`, podía devolver resultados incoherentes. Esto ya se ha corregido. [#94026](https://github.com/ClickHouse/ClickHouse/pull/94026) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Se corrige `CLEAR` en una columna con índices dependientes. [#94057](https://github.com/ClickHouse/ClickHouse/pull/94057) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió el uso de un valor sin inicializar en `ReadWriteBufferFromHTTP`. [#94058](https://github.com/ClickHouse/ClickHouse/pull/94058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una comprobación errónea de las rutas tipadas en JSON. La comprobación se introdujo en [https://github.com/ClickHouse/ClickHouse/pull/92842](https://github.com/ClickHouse/ClickHouse/pull/92842) y puede provocar un error al iniciar tablas existentes. [#94070](https://github.com/ClickHouse/ClickHouse/pull/94070) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige el cierre inesperado durante el análisis del filtro cuando hay un OUTER JOIN. Corrige [#90979](https://github.com/ClickHouse/ClickHouse/issues/90979). [#94080](https://github.com/ClickHouse/ClickHouse/pull/94080) ([Dmitry Novik](https://github.com/novikd)).
* Se corrigió la precisión de `uniqTheta` al usar claves de agregación UInt8 en paralelo (`max_threads` > 1, valor predeterminado). [#94095](https://github.com/ClickHouse/ClickHouse/pull/94095) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un fallo provocado por una excepción lanzada desde una llamada a `socket.setBlocking(true)` dentro de `SCOPE_EXIT`. [#94100](https://github.com/ClickHouse/ClickHouse/pull/94100) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrige la pérdida de datos cuando `DROP PARTITION` elimina partes creadas por entradas de log posteriores en ReplicatedMergeTree. [#94123](https://github.com/ClickHouse/ClickHouse/pull/94123) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Se corrigió un problema en el lector de Parquet v3, que manejaba incorrectamente los arrays que cruzan los límites de página. Esto ocurre, por ejemplo, con archivos escritos por Arrow sin habilitar las estadísticas de página ni el índice de página. Afecta solo a las columnas del tipo de dato Array. El síntoma más probable es que un array cada \~1 MB de datos quede truncado. Antes de esta corrección, use esta configuración como solución alternativa: `input_format_parquet_use_native_reader_v3 = 0`. [#94125](https://github.com/ClickHouse/ClickHouse/pull/94125) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrige el exceso de watches en ReplicatedMergeTree mientras se espera una entrada del log. [#94133](https://github.com/ClickHouse/ClickHouse/pull/94133) ([Azat Khuzhin](https://github.com/azat)).
* Funciones `arrayShuffle`, `arrayPartialShuffle` y `arrayRandomSample` para materializar columnas constantes, de modo que distintas filas obtengan resultados diferentes. [#94134](https://github.com/ClickHouse/ClickHouse/pull/94134) ([Joanna Hulboj](https://github.com/jh0x)).
* Se corrige una condición de carrera en la evaluación de funciones de tabla en vistas materializadas. [#94171](https://github.com/ClickHouse/ClickHouse/pull/94171) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una desreferenciación de nullptr en los motores de base de datos `PostgreSQL` (cuando la consulta es incorrecta). Cierra [#92887](https://github.com/ClickHouse/ClickHouse/issues/92887). [#94180](https://github.com/ClickHouse/ClickHouse/pull/94180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige una fuga de memoria en vistas materializadas actualizables que utilizan consultas `SELECT` con múltiples subconsultas. [#94200](https://github.com/ClickHouse/ClickHouse/pull/94200) ([Antonio Andelic](https://github.com/antonio2368)).
* Soluciona una condición de carrera entre `DataPartStorageOnDiskBase::remove` y `system.parts`. Cierra [#49076](https://github.com/ClickHouse/ClickHouse/issues/49076). [#94262](https://github.com/ClickHouse/ClickHouse/pull/94262) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se elimina el especificador `noexcept` incorrecto en la asignación por copia de HashTable, que puede provocar un crash (`std::terminate`) en caso de excepciones de memoria. [#94275](https://github.com/ClickHouse/ClickHouse/pull/94275) ([Nikita Taranov](https://github.com/nickitat)).
* Anteriormente, al crear una proyección con columnas duplicadas en GROUP BY (p. ej., `GROUP BY c0, c0`) e insertar datos, se producía un `std::length_error` si `optimize_row_order` está habilitado. Cierra [#94065](https://github.com/ClickHouse/ClickHouse/issues/94065). [#94277](https://github.com/ClickHouse/ClickHouse/pull/94277) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un error poco frecuente en el client de ZooKeeper durante la conexión que provoca cuelgues y fallos. [#94320](https://github.com/ClickHouse/ClickHouse/pull/94320) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un problema por el que la optimización de función a subcolumnas no se aplicaba a las subcolumnas. [#94323](https://github.com/ClickHouse/ClickHouse/pull/94323) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un posible resultado incorrecto en `RIGHT JOIN` anidados cuando `enable_lazy_columns_replication` está habilitado. El error provocaba que todas las filas de las columnas replicadas devolvieran incorrectamente el mismo valor en lugar de sus valores correspondientes. Cierra [#93891](https://github.com/ClickHouse/ClickHouse/issues/93891). [#94339](https://github.com/ClickHouse/ClickHouse/pull/94339) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige el pushdown de filtros en SEMI JOIN mediante conjuntos de equivalencia. No se aplica el pushdown del filtro si han cambiado los tipos de los argumentos. Corrige [#93264](https://github.com/ClickHouse/ClickHouse/issues/93264). [#94340](https://github.com/ClickHouse/ClickHouse/pull/94340) ([Dmitry Novik](https://github.com/novikd)).
* Corrige el uso de DeltaLake CDF con el motor de base de datos DataLake (integración de catálogos de delta lake). Cierra [#94122](https://github.com/ClickHouse/ClickHouse/issues/94122). [#94342](https://github.com/ClickHouse/ClickHouse/pull/94342) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió el valor incorrecto de la métrica `FilesystemCacheSizeLimit` cuando se usaba la política de caché `SLRU`. [#94363](https://github.com/ClickHouse/ClickHouse/pull/94363) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Crear un motor de base de datos Backup con menos de dos argumentos ahora devuelve un mensaje de error más descriptivo (`Wrong number of arguments` en lugar de `std::out_of_range: InlinedVector::at(size_type) const failed bounds check.`). [#94374](https://github.com/ClickHouse/ClickHouse/pull/94374) ([Robert Schulze](https://github.com/rschu1ze)).
* Ignora las revocaciones imposibles de privilegios globales a nivel de base de datos para privilegios con opción de otorgamiento. [#94386](https://github.com/ClickHouse/ClickHouse/pull/94386) ([pufit](https://github.com/pufit)).
* Se corrigió la lectura de desplazamientos dispersos en partes compactas. Cierra [#94385](https://github.com/ClickHouse/ClickHouse/issues/94385). [#94399](https://github.com/ClickHouse/ClickHouse/pull/94399) ([Pavel Kruglov](https://github.com/Avogar)).
* No impedir ALTER de columnas con índices implícitos, incluso si se usa el modo `throw` de `alter_column_secondary_index_mode`. [#94425](https://github.com/ClickHouse/ClickHouse/pull/94425) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un crash en `TCPHandler` cuando varias llamadas a `receivePacketsExpectQuery` leen `Protocol::Client::IgnoredPartUUIDs`. [#94434](https://github.com/ClickHouse/ClickHouse/pull/94434) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrige el enmascaramiento de datos sensibles en `system.functions`. [#94436](https://github.com/ClickHouse/ClickHouse/pull/94436) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige la desreferenciación de nullptr con `send_profile_events` deshabilitado. Esta funcionalidad se introdujo recientemente en el driver de Python de ClickHouse. Cierra [#92488](https://github.com/ClickHouse/ClickHouse/issues/92488). [#94466](https://github.com/ClickHouse/ClickHouse/pull/94466) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la incompatibilidad de .mrk del índice de texto durante las operaciones de merge. [#94494](https://github.com/ClickHouse/ClickHouse/pull/94494) ([Peng Jian](https://github.com/fastio)).
* Cuando `read_in_order_use_virtual_row` está habilitado, el código accedía a las columnas del índice basándose en el tamaño completo de la clave primaria sin comprobar si el índice se había truncado, lo que provocaba acceso a memoria ya liberada / memoria sin inicializar. Cierra [#85596](https://github.com/ClickHouse/ClickHouse/issues/85596). [#94500](https://github.com/ClickHouse/ClickHouse/pull/94500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un error causado por una incompatibilidad de tipos al enviar tablas externas para subconsultas con GLOBAL IN cuando los tipos son Nullable. Cierra [#94097](https://github.com/ClickHouse/ClickHouse/issues/94097). [#94511](https://github.com/ClickHouse/ClickHouse/pull/94511) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* En versiones anteriores, las consultas con múltiples condiciones de índice sobre la misma expresión podían lanzar por error la excepción `Not found column`. Cierra [#60660](https://github.com/ClickHouse/ClickHouse/issues/60660). [#94515](https://github.com/ClickHouse/ClickHouse/pull/94515) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el manejo incorrecto de la columna Nullable del join en los filtros en tiempo de ejecución. [#94555](https://github.com/ClickHouse/ClickHouse/pull/94555) ([Alexander Gololobov](https://github.com/davenger)).
* La creación de una carga de trabajo dentro de otra que está actualmente en uso ya no provoca un fallo. [#94599](https://github.com/ClickHouse/ClickHouse/pull/94599) ([Sergei Trifonov](https://github.com/serxa)).
* Se corrige un fallo en la optimización de ANY LEFT JOIN cuando se evalúa `isNotNull` sobre una columna ausente. [#94600](https://github.com/ClickHouse/ClickHouse/pull/94600) ([Molly](https://github.com/ggmolly)).
* Corregida la evaluación de expresiones por defecto al hacer referencia a otras columnas con valores por defecto calculados. [#94615](https://github.com/ClickHouse/ClickHouse/pull/94615) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige problemas de permisos en las operaciones de BACKUP/RESTORE. [#94617](https://github.com/ClickHouse/ClickHouse/pull/94617) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrige un cierre inesperado debido a una conversión de tipo incorrecta cuando el tipo de dato es `Nullable(DateTime64)`. [#94627](https://github.com/ClickHouse/ClickHouse/pull/94627) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige un error por el que ciertas consultas distribuidas con `ORDER BY` podían devolver columnas `ALIAS` con los valores intercambiados (es decir, la columna `a` mostraba los datos de la columna `b` y viceversa). [#94644](https://github.com/ClickHouse/ClickHouse/pull/94644) ([filimonov](https://github.com/filimonov)).
* Se corrigió el guardado de los resultados de keeper-bench en un archivo. [#94654](https://github.com/ClickHouse/ClickHouse/pull/94654) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige estimaciones incorrectas con estadísticas de tipo MinMax cuando la columna contiene valores de coma flotante negativos. [#94665](https://github.com/ClickHouse/ClickHouse/pull/94665) ([zoomxi](https://github.com/zoomxi)).
* Se corrige la lectura de archivos Parquet cuando la clave de un map es un struct. [#94670](https://github.com/ClickHouse/ClickHouse/pull/94670) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige un posible resultado incorrecto de RIGHT join al usar condiciones ON complejas. Cierra [#92913](https://github.com/ClickHouse/ClickHouse/issues/92913). [#94680](https://github.com/ClickHouse/ClickHouse/pull/94680) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Preservar la granularidad constante del índice (use\_const\_adaptive\_granularity) después de las fusiones verticales. [#94725](https://github.com/ClickHouse/ClickHouse/pull/94725) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un error en mutaciones con subconsultas escalares y dependencias de una tabla. Si una tabla tenía dependencias (índice o proyecciones) sobre una columna, las subconsultas escalares podían evaluarse y almacenarse en caché sin ningún dato, lo que podía provocar cambios incorrectos. [#94731](https://github.com/ClickHouse/ClickHouse/pull/94731) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió el fallback de cpu\_pressure de AsynchronousMetrics en caso de error. [#94827](https://github.com/ClickHouse/ClickHouse/pull/94827) ([Raúl Marín](https://github.com/Algunenano)).
* A la función `getURLHostRFC` le faltaban comprobaciones de límites antes de desreferenciar punteros. Cuando se pasaba una cadena vacía a `domainRFC`, se leía memoria sin inicializar, lo que desencadenaba errores de MSan. [#94851](https://github.com/ClickHouse/ClickHouse/pull/94851) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregir el modo de solo lectura de los discos cifrados. [#94852](https://github.com/ClickHouse/ClickHouse/pull/94852) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un error lógico en `LIMIT/OFFSET` con valores fraccionarios al usar el analizador antiguo con tablas Distributed. Cierra [#94712](https://github.com/ClickHouse/ClickHouse/issues/94712). [#94999](https://github.com/ClickHouse/ClickHouse/pull/94999) ([Ahmed Gouda](https://github.com/0xgouda)).
* Se corrige un fallo que se producía en determinadas condiciones cuando los filtros de ejecución de JOIN están habilitados de forma predeterminada. [#95000](https://github.com/ClickHouse/ClickHouse/pull/95000) ([Alexander Gololobov](https://github.com/davenger)).
* Mejora del enmascaramiento de contraseñas en la URL utilizada en el motor de tabla `URL()` y la función de tabla `url()`. [#95006](https://github.com/ClickHouse/ClickHouse/pull/95006) ([Vitaly Baranov](https://github.com/vitlibar)).
* La función `toStartOfInterval` ahora funciona igual que `toStartOfX`, donde `X` es `Day, Week, Month, Quarter, Year`, cuando `enable_extended_results_for_datetime_functions` está activado. [#95011](https://github.com/ClickHouse/ClickHouse/pull/95011) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Corrige las comparaciones de cadenas constantes que no tenían en cuenta las opciones `cast_string_to_date_time_mode`, `bool_true_representation`, `bool_false_representation` e `input_format_null_as_default`. Cierra [#91681](https://github.com/ClickHouse/ClickHouse/issues/91681). [#95040](https://github.com/ClickHouse/ClickHouse/pull/95040) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se corrige una condición de carrera en la caché del sistema de archivos. [#95064](https://github.com/ClickHouse/ClickHouse/pull/95064) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una condición de carrera poco frecuente en el lector de Parquet. [#95068](https://github.com/ClickHouse/ClickHouse/pull/95068) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un fallo en la optimización top K cuando `LIMIT` es cero. Cierra [#93893](https://github.com/ClickHouse/ClickHouse/issues/93893). [#95072](https://github.com/ClickHouse/ClickHouse/pull/95072) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Al convertir DateTime/enteros a Time64, se extrae el componente de hora del día mediante `toTime`, que no es monótono. La plantilla `ToDateTimeMonotonicity` afirmaba erróneamente que esta conversión era monótona, lo que provocaba la excepción "Invalid binary search result in MergeTreeSetIndex" en las compilaciones de depuración. [#95125](https://github.com/ClickHouse/ClickHouse/pull/95125) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La lista de entradas del archivo manifest se volvió a crear solo cuando fue necesario (anteriormente se hacía en cada iteración). [#95162](https://github.com/ClickHouse/ClickHouse/pull/95162) ([Daniil Ivanik](https://github.com/divanik)).

<div id="buildtestingpackaging-improvement">
  #### Mejora en compilación/pruebas/empaquetado
</div>

* Se añade un conjunto de herramientas para el perfilado de asignaciones de memoria en el parser de ClickHouse SQL mediante las capacidades de perfilado de heap de jemalloc. [#94072](https://github.com/ClickHouse/ClickHouse/pull/94072) ([Ilya Yatsishin](https://github.com/qoega)).
* Se añadió una herramienta que simplifica la depuración de asignaciones de memoria en el parser. Utiliza la métrica `stats.allocated` de jemalloc antes y después de analizar la consulta hasta su representación AST para mostrar qué se ha asignado. También admite un modo de perfilado de memoria que vuelca el perfil antes y después para generar informes sobre dónde se produjeron las asignaciones. [#93523](https://github.com/ClickHouse/ClickHouse/pull/93523) ([Ilya Yatsishin](https://github.com/qoega)).
* Se eliminan inclusiones transitivas de libc++. [#92523](https://github.com/ClickHouse/ClickHouse/pull/92523) ([Raúl Marín](https://github.com/Algunenano)).
* Algunas pruebas secuenciales pasan a ejecutarse en paralelo: [https://github.com/ClickHouse/ClickHouse/pull/93030/changes#diff-c3a73510dae653c9bbfa24300b32f5d6ec663fd4e72cc4a3d5daa6e4342915df](https://github.com/ClickHouse/ClickHouse/pull/93030/changes#diff-c3a73510dae653c9bbfa24300b32f5d6ec663fd4e72cc4a3d5daa6e4342915df). [#93030](https://github.com/ClickHouse/ClickHouse/pull/93030) ([Nikita Fomichev](https://github.com/fm4v)).
* Se limpian algunas banderas de compilación. [#93679](https://github.com/ClickHouse/ClickHouse/pull/93679) ([Raúl Marín](https://github.com/Algunenano)).
* Se actualiza c-ares de v1.34.5 a v1.34.6. Esto corrige `CVE-2025-62408` de c-ares, que no es relevante para ClickHouse. [#94129](https://github.com/ClickHouse/ClickHouse/pull/94129) ([Govind R Nair](https://github.com/Revertionist)).
* Se usa `curl` 8.18.0. [#94742](https://github.com/ClickHouse/ClickHouse/pull/94742) ([Konstantin Bogdanov](https://github.com/thevar1able)).
