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

# Registro de cambios de la versión 26.2 para Cloud

> Registro de cambios de la versión 26.2

<div id="backward-incompatible-changes">
  ## Cambios incompatibles con versiones anteriores
</div>

<div id="query-and-syntax-changes">
  ### Cambios en las consultas y la sintaxis
</div>

* Se corrigió el formato inconsistente de las consultas causado por una sustitución incorrecta de alias. Nota: cuando el analyzer está deshabilitado, es posible que ciertas consultas `CREATE VIEW` que usan `IN` con una referencia a un alias dejen de procesarse. Para evitarlo, asegúrese de que el analyzer esté habilitado (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)).
* Una lista vacía de columnas en `JOIN USING ()` ahora es un error de sintaxis. Anteriormente, esto se notificaba como `INVALID_JOIN_ON_EXPRESSION` durante la ejecución de la consulta y, en algunos casos (como al hacer join con el almacenamiento `Join`), podía provocar un `LOGICAL_ERROR`. [#92371](https://github.com/ClickHouse/ClickHouse/pull/92371) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Las subconsultas ya no se permiten en `ORDER BY` ni en otras expresiones clave de tabla. [#96847](https://github.com/ClickHouse/ClickHouse/pull/96847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="data-type-changes">
  ### Cambios en los tipos de datos
</div>

* Se añadió compatibilidad con `Nullable(Tuple)`. Para habilitarla, establezca `allow_experimental_nullable_tuple_type = 1`. [#89643](https://github.com/ClickHouse/ClickHouse/pull/89643) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Los datos compartidos avanzados para el tipo JSON ahora están habilitados de forma predeterminada. No será posible volver a versiones anteriores a la 25.8, ya que esas versiones no pueden leer partes de datos escritas con el nuevo formato JSON. Para realizar actualizaciones seguras, establezca la configuración `compatibility` en la versión anterior, o configure las opciones de MergeTree `dynamic_serialization_version='v2'` y `object_serialization_version='v2'`. [#92511](https://github.com/ClickHouse/ClickHouse/pull/92511) ([Pavel Kruglov](https://github.com/Avogar)).
* `SKIP REGEXP` en el tipo JSON ahora usa coincidencias parciales de forma predeterminada. [#92847](https://github.com/ClickHouse/ClickHouse/pull/92847) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió un error lógico que se producía cuando había una incompatibilidad de tipos en `Variant`. [#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 (anteriormente se inferían como `Date`, lo que podía provocar un desbordamiento en valores fuera de su rango limitado). Ahora también se admite insertar valores `Date32` de nuevo en PostgreSQL. [#95999](https://github.com/ClickHouse/ClickHouse/pull/95999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="storage-and-index-changes">
  ### Cambios en almacenamiento e índices
</div>

* Se mejoró la estructura de almacenamiento del índice de texto invertido para hacer más eficientes las lecturas desde el almacenamiento de objetos, junto con un mejor rendimiento de merge en tablas con índices de texto invertido. Si usó el índice de texto experimental antes de la versión 25.12, debe eliminarlo antes de actualizar y volver a crearlo en la nueva versión. [#91518](https://github.com/ClickHouse/ClickHouse/pull/91518) ([Anton Popov](https://github.com/CurtizJ)).
* El formato de almacenamiento de las estadísticas ha cambiado: 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)).
* Ahora se aplican secuencias de escape a los nombres de archivo de los índices para evitar partes dañadas. ClickHouse no podrá cargar índices con caracteres no ASCII en el nombre creados por versiones anteriores. Para ello, use la configuración de MergeTree `escape_index_filenames`. [#94079](https://github.com/ClickHouse/ClickHouse/pull/94079) ([Raúl Marín](https://github.com/Algunenano)).

<div id="removed-features">
  ### Características eliminadas
</div>

* Se han eliminado los códecs `DEFLATE_QPL` y `ZSTD_QAT`. Convierta cualquier dato existente comprimido con estos códecs a otro códec antes de actualizar. Tenga en cuenta que, anteriormente, para usar estos códecs era necesario habilitar `enable_deflate_qpl_codec` o `enable_zstd_qat_codec`. [#92150](https://github.com/ClickHouse/ClickHouse/pull/92150) ([Robert Schulze](https://github.com/rschu1ze)).
* Ya no se admite `INSERT` en columnas `ALIAS` simples (revierte [#84154](https://github.com/ClickHouse/ClickHouse/issues/84154)). Esta característica no funcionaba con formatos personalizados y no estaba controlada por ningún ajuste. [#92849](https://github.com/ClickHouse/ClickHouse/pull/92849) ([Azat Khuzhin](https://github.com/azat)).
* El motor de base de datos `Lazy` se ha eliminado y ya no está disponible. [#93627](https://github.com/ClickHouse/ClickHouse/pull/93627) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El modo `transposed_with_wide_view` de `metric_log` se ha eliminado debido a un error que lo hacía inutilizable. Ya no es posible definir `system.metric_log` con este modo. [#93867](https://github.com/ClickHouse/ClickHouse/pull/93867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="settings-and-configuration-changes">
  ### Cambios en los ajustes y la configuración
</div>

* Un nuevo ajuste ahora genera 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)).
* La planificación de CPU para las cargas de trabajo ahora es expropiativa 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)).
* Los ajustes `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` se han reclasificado de ajustes de formato a ajustes normales. Se trata principalmente de un cambio interno sin efectos visibles para el usuario, a menos que haya especificado alguno de ellos en una definición de motor de tabla de Iceberg, DeltaLake, Kafka, S3, S3Queue, Azure, Hive, RabbitMQ, Set, FileLog o NATS; en ese caso, esas definiciones ahora generarán un error en lugar de ignorarlas silenciosamente. [#94106](https://github.com/ClickHouse/ClickHouse/pull/94106) ([Robert Schulze](https://github.com/rschu1ze)).
* La semántica de `do_not_merge_across_partitions_select_final` se ha simplificado. Anteriormente, la funcionalidad podía habilitarse automáticamente incluso cuando no se establecía explícitamente, lo que causaba confusión y problemas en producción. Ahora: establecerlo en `1` habilita la funcionalidad de forma incondicional, y establecerlo en `0` remite al nuevo ajuste `enable_automatic_decision_for_merging_across_partitions_for_final` (valor predeterminado: `1`). [#96110](https://github.com/ClickHouse/ClickHouse/pull/96110) ([Nikita Taranov](https://github.com/nickitat)).
* Se añadió la validación de esquema para S3. [#96194](https://github.com/ClickHouse/ClickHouse/pull/96194) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* El ajuste `apply_row_policy_after_final` ahora está habilitado de forma predeterminada, lo que garantiza que `ROW POLICY` respete `FINAL`, como hacía originalmente. Si antes dependía de `optimize_move_to_prewhere_if_final=1` para aplicar políticas de fila antes de `FINAL`, use `apply_row_policy_after_final=0` en su lugar. [#97279](https://github.com/ClickHouse/ClickHouse/pull/97279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

<div id="security-and-access-control-changes">
  ### Cambios de seguridad y control de acceso
</div>

* `joinGet`/`joinGetOrNull` ahora aplican los privilegios `SELECT` sobre la tabla Join subyacente. Ejecutar `joinGet('db.table', 'column', key)` requiere el privilegio `SELECT` tanto en las columnas clave como en la columna de atributo que se recupera. Las consultas sin estos privilegios fallarán con `ACCESS_DENIED`. Para migrar, otorgue permisos mediante `GRANT SELECT ON db.join_table TO user` para obtener acceso completo a la tabla, o `GRANT SELECT(key_col, attr_col) ON db.join_table TO user` para acceso a nivel de columna. [#94307](https://github.com/ClickHouse/ClickHouse/pull/94307) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Las consultas `CREATE TABLE ... AS ...` ahora requieren el privilegio `SHOW COLUMNS` en lugar de `SHOW TABLES`, que antes se comprobaba de forma incorrecta. [#94556](https://github.com/ClickHouse/ClickHouse/pull/94556) ([pufit](https://github.com/pufit)).

<div id="insert-and-deduplication-changes">
  ### Cambios en inserts y deduplicación
</div>

* La deduplicación ahora está habilitada de forma predeterminada para todos los inserts. Antes estaba desactivada para los async inserts y las vistas materializadas, pero activada para los sync inserts. Para conservar el comportamiento anterior, establezca explícitamente `deduplicate_insert='backward_compatible_choice'` (y, de forma análoga, `deduplicate_blocks_in_dependent_materialized_views`). [#95970](https://github.com/ClickHouse/ClickHouse/pull/95970) ([Sema Checherinda](https://github.com/CheSema)).

<div id="system-table-changes">
  ### Cambios en las tablas del sistema
</div>

* Los metadatos en memoria de S3Queue y AzureQueue ahora son limitados. Las tablas del sistema se han renombrado: `system.s3queue` ahora es `system.s3queue_metadata_cache` y `system.azure_queue` ahora es `system.azure_queue_metadata_cache`. [#95809](https://github.com/ClickHouse/ClickHouse/pull/95809) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="other-breaking-changes">
  ### Otros cambios incompatibles
</div>

* Se corrigieron las funciones del índice H3 que podían fallar o quedarse bloqueadas al llamarse con entradas no válidas. [#93657](https://github.com/ClickHouse/ClickHouse/pull/93657) ([Michael Kolupaev](https://github.com/al13n321)).

<div id="new-features">
  ## Nuevas características
</div>

<div id="authentication">
  ### Autenticación
</div>

* Se añadió compatibilidad con contraseñas de un solo uso basadas en el tiempo (TOTP) como método de autenticación. [#71273](https://github.com/ClickHouse/ClickHouse/pull/71273) ([Vladimir Cherkasov](https://github.com/vdimir)).

<div id="functions">
  ### Funciones
</div>

* Se añadió la función `reverseBySeparator`, que invierte el orden de las subcadenas de una cadena separadas por un separador especificado. [#91780](https://github.com/ClickHouse/ClickHouse/pull/91780) ([Xuewei Wang](https://github.com/Sallery-X)).
* Se añadieron las funciones `colorOKLABToSRGB` y `colorSRGBToOKLAB` para convertir entre los espacios de color sRGB y OKLAB. [#93361](https://github.com/ClickHouse/ClickHouse/pull/93361) ([Pranav Tiwari](https://github.com/pranavt84)).
* 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ñadió 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 función `mergeTreeAnalyzeIndex()` para analizar el uso de índices en MergeTree. [#92954](https://github.com/ClickHouse/ClickHouse/pull/92954) ([Azat Khuzhin](https://github.com/azat)).
* Las funciones ahora admiten el tipo `Variant` mediante el nuevo `FunctionVariantAdaptor`. [#90900](https://github.com/ClickHouse/ClickHouse/pull/90900) ([Bharat Nallan](https://github.com/bharatnc)).
* Ahora, ciertas funciones pueden llamarse sin paréntesis en SQL. [#94678](https://github.com/ClickHouse/ClickHouse/pull/94678) ([Aly Kafoury](https://github.com/AlyHKafoury)).

<div id="system-tables">
  ### Tablas del sistema
</div>

* Se añadió la tabla `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ñadió la tabla `system.zookeeper_info`. [#90809](https://github.com/ClickHouse/ClickHouse/pull/90809) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Se añadieron la tabla `system.primes` y la función de tabla `primes`, que contiene números primos en orden ascendente. [#92776](https://github.com/ClickHouse/ClickHouse/pull/92776) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se añadió la columna `files` a `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)).
* Se añadió la tabla `system.fail_points` para inspeccionar los failpoints existentes y comprobar si están habilitados. [#96762](https://github.com/ClickHouse/ClickHouse/pull/96762) ([Pedro Ferreira](https://github.com/PedroTadim)).

<div id="table-engines-and-storage">
  ### Motores de tabla y almacenamiento
</div>

* Se añadió compatibilidad con índices de texto para columnas `Array`. [#89895](https://github.com/ClickHouse/ClickHouse/pull/89895) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Se añadió compatibilidad con el catálogo REST de Paimon. [#92011](https://github.com/ClickHouse/ClickHouse/pull/92011) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* 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 configuración de base de datos `lazy_load_tables`. Cuando está habilitada, las tablas no se cargan durante el inicio de la base de datos; en su lugar, se crea un `StorageTableProxy` ligero y el motor de tabla real se materializa en el primer acceso. [#96283](https://github.com/ClickHouse/ClickHouse/pull/96283) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Se añadió compatibilidad con ZooKeeper auxiliar para `DatabaseReplicated`. [#91683](https://github.com/ClickHouse/ClickHouse/pull/91683) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Los archivos de datos y del sistema en caché ahora pueden dividirse en segmentos separados. [#87834](https://github.com/ClickHouse/ClickHouse/pull/87834) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se añadió una nueva caché SLRU para los metadatos de Parquet para mejorar el rendimiento de lectura al evitar descargas redundantes de archivos. La caché puede eliminarse con `SYSTEM DROP PARQUET METADATA CACHE`. [#89750](https://github.com/ClickHouse/ClickHouse/pull/89750) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Las tablas de lago de datos ahora admiten `PREWHERE` y `PREWHERE` multietapa en el lector de Parquet v3. [#93542](https://github.com/ClickHouse/ClickHouse/pull/93542) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se añadió análisis distribuido de índices entre múltiples réplicas, beneficioso para el almacenamiento compartido y los grandes volúmenes de datos. [#86786](https://github.com/ClickHouse/ClickHouse/pull/86786) ([Azat Khuzhin](https://github.com/azat)).

<div id="insert-and-deduplication">
  ### Inserción y deduplicación
</div>

* La deduplicación de `async insert` ahora funciona con vistas materializadas dependientes. Cuando se produce una colisión de `block_id`, se filtra el bloque original para eliminar las filas asociadas al `block_id` en conflicto, y las filas restantes se transforman mediante todas las consultas relevantes de las vistas materializadas. [#89140](https://github.com/ClickHouse/ClickHouse/pull/89140) ([Sema Checherinda](https://github.com/CheSema)).
* Los `async inserts` ahora admiten quorum paralelo: los datos insertados se replican al quorum y, si se encuentran duplicados, la consulta espera hasta que los datos insertados previamente también se hayan replicado. [#93356](https://github.com/ClickHouse/ClickHouse/pull/93356) ([Sema Checherinda](https://github.com/CheSema)).
* Se añadió la configuración del servidor `insert_deduplication_version` para habilitar 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 inició la migración de los hash de deduplicación. [#97562](https://github.com/ClickHouse/ClickHouse/pull/97562) ([Sema Checherinda](https://github.com/CheSema)).

<div id="sql-and-query-features">
  ### SQL y funciones de consulta
</div>

* Se añadió la sintaxis `SYSTEM CLEAR [...] CACHE` como una alternativa más clara a la ya existente `SYSTEM DROP [...] CACHE`. La sintaxis anterior sigue estando disponible. [#93727](https://github.com/ClickHouse/ClickHouse/pull/93727) ([Pranav Tiwari](https://github.com/pranavt84)).
* Se añadió la consulta `OPTIMIZE <table> DRY RUN PARTS <part names>` para simular fusiones sin hacer commit de la parte resultante. Es útil para verificar la corrección de la fusión, reproducir errores relacionados con las fusiones y medir su rendimiento. [#96122](https://github.com/ClickHouse/ClickHouse/pull/96122) ([Anton Popov](https://github.com/CurtizJ)).
* Las consultas DDL con `ON CLUSTER` ahora pueden ejecutarse en bases de datos Replicated cuando está habilitada la configuración `ignore_on_cluster_for_replicated_database`. Se ignorará el nombre del clúster. [#92872](https://github.com/ClickHouse/ClickHouse/pull/92872) ([Kirill](https://github.com/kirillgarbar)).
* Se introdujeron una nueva sintaxis y una nueva infraestructura para simplificar y ampliar la funcionalidad de índices de proyección. [#91844](https://github.com/ClickHouse/ClickHouse/pull/91844) ([Amos Bird](https://github.com/amosbird)).

<div id="settings-and-configuration">
  ### Ajustes y configuración
</div>

* Se añadió el ajuste `max_insert_block_size_bytes` para un control más preciso de la formación de bloques insertados. [#92833](https://github.com/ClickHouse/ClickHouse/pull/92833) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Se añadió el ajuste `use_primary_key`. Establézcalo en `false` para desactivar la poda de gránulos basada en la clave primaria. [#93319](https://github.com/ClickHouse/ClickHouse/pull/93319) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Se añadió el ajuste `default_dictionary_database`, que permite a ClickHouse resolver diccionarios externos referenciados sin un calificador de base de datos en una base de datos predeterminada especificada. Esto simplifica la migración de diccionarios globales definidos en XML a diccionarios por base de datos definidos en SQL. [#91412](https://github.com/ClickHouse/ClickHouse/pull/91412) ([Dmitrii Plotnikov](https://github.com/dimbo4ka)).
* Se añadió el ajuste `check_named_collection_dependencies` (habilitado de forma predeterminada) para evitar eliminar colecciones con nombre utilizadas por tablas. [#96181](https://github.com/ClickHouse/ClickHouse/pull/96181) ([Pablo Marcos](https://github.com/pamarcos)).
* Se añadió un planificador justo max-min para el control de concurrencia, que ofrece un reparto más equitativo en situaciones de alta sobresuscripción, cuando muchas consultas compiten por slots de CPU limitados. El ajuste del servidor `concurrent_threads_scheduler` ahora usa `max_min_fair` de forma predeterminada en lugar de `fair_round_robin`, por lo que las consultas de corta duración ya no se ven penalizadas por las de larga duración. [#94732](https://github.com/ClickHouse/ClickHouse/pull/94732) [#95300](https://github.com/ClickHouse/ClickHouse/pull/95300) ([Sergei Trifonov](https://github.com/serxa)).
* Se añadieron las opciones de configuración `logger.startup_console_level` y `logger.shutdown_console_level` para ajustar temporalmente 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)).

<div id="monitoring">
  ### Monitoreo
</div>

* Se añadió una métrica `ClickHouse_Info` al endpoint `/metrics` de Prometheus con 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)).

<div id="experimental-features">
  ## Características experimentales
</div>

* La búsqueda vectorial ahora puede distribuir la carga entre réplicas en un clúster, lo que permite admitir índices vectoriales de gran tamaño 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ñadió un AST fuzzer en el servidor, controlado por los ajustes `ast_fuzzer_runs` y `ast_fuzzer_any_query`. Cuando está habilitado, el servidor ejecuta mutaciones aleatorias de cada consulta tras su ejecución normal y descarta los resultados. [#97568](https://github.com/ClickHouse/ClickHouse/pull/97568) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="improvements">
  ## Mejoras
</div>

<div id="query-and-sql-improvements">
  ### Consultas y SQL
</div>

* Las subconsultas correlacionadas ahora admiten más motores de tabla y más tipos de fuentes de datos. [#90175](https://github.com/ClickHouse/ClickHouse/pull/90175) ([Dmitry Novik](https://github.com/novikd)).
* Ahora se admiten expresiones `IN` no constantes para escalares (p. ej., `val1 NOT IN if(cond, val2, val3)`). [#93495](https://github.com/ClickHouse/ClickHouse/pull/93495) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añadió compatibilidad con alias de tabla extendidos para JOINs (p. ej., `SELECT * FROM (SELECT 1) AS t(a) JOIN (SELECT 1) AS u(b) ON a = b`). [#95331](https://github.com/ClickHouse/ClickHouse/pull/95331) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `EXPLAIN indices = 1` ahora se admite como alias de `EXPLAIN indexes = 1`. [#92774](https://github.com/ClickHouse/ClickHouse/pull/92774) ([Pranav Tiwari](https://github.com/pranavt84)).
* Se ha mejorado el pushdown de filtros para las funciones de tabla `numbers` y `primes`: ClickHouse ahora puede inferir límites de valor conservadores a partir de las condiciones `WHERE` para restringir la generación de secuencias y evitar escaneos sin límites. [#96115](https://github.com/ClickHouse/ClickHouse/pull/96115) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* La optimización de conjuntos equivalentes ahora funciona a través de múltiples operaciones consecutivas de `INNER JOIN`, por lo que los filtros aplicados a cualquier tabla de la cadena se propagan automáticamente a todas las tablas relacionadas. [#96596](https://github.com/ClickHouse/ClickHouse/pull/96596) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ahora se usan funciones de tabla de clúster automáticas para subconsultas individuales en `FROM`. [#96332](https://github.com/ClickHouse/ClickHouse/pull/96332) ([phulv94](https://github.com/phulv94)).
* El índice de clave primaria ahora se utiliza al filtrar con `startsWithUTF8` si el prefijo contiene únicamente caracteres ASCII. [#97055](https://github.com/ClickHouse/ClickHouse/pull/97055) ([vkcku](https://github.com/vkcku)).
* `assumeNotNull`, `coalesce` e `ifNull` ahora permiten la poda de la clave primaria y del skip index para predicados de rango cuando las columnas clave están encapsuladas en estas funciones. [#94754](https://github.com/ClickHouse/ClickHouse/pull/94754) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Las columnas no utilizadas ahora también se eliminan del paso de lectura al leer desde MergeTree, lo que resulta especialmente útil cuando un filtro se inserta en `PREWHERE`. [#89982](https://github.com/ClickHouse/ClickHouse/pull/89982) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* La optimización `use_join_disjunctions_push_down` ahora está habilitada por defecto. [#89313](https://github.com/ClickHouse/ClickHouse/pull/89313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La optimización `enable_join_runtime_filters` ahora está activada de forma predeterminada. [#89314](https://github.com/ClickHouse/ClickHouse/pull/89314) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La sobrecarga del runtime filter de JOIN se reduce ahora al deshabilitar automáticamente los filtros cuando hay demasiados bits activados en el bloom filter o se filtran muy pocas filas. [#91578](https://github.com/ClickHouse/ClickHouse/pull/91578) ([Alexander Gololobov](https://github.com/davenger)).
* Se añadió la configuración `use_hash_table_stats_for_join_reordering` (habilitada de forma predeterminada) para controlar si se utilizan estadísticas del tamaño de la tabla hash en tiempo de ejecución para la reordenación de joins. [#93912](https://github.com/ClickHouse/ClickHouse/pull/93912) ([Vladimir Cherkasov](https://github.com/vdimir)).
* El análisis de índices ahora se realiza una sola vez, independientemente de si la consulta se ejecuta localmente o con réplicas paralelas. [#94854](https://github.com/ClickHouse/ClickHouse/pull/94854) ([Nikita Taranov](https://github.com/nickitat)).
* Si un índice de omisión en una consulta `FINAL` está sobre una columna que forma parte de la clave primaria, ahora se omite la comprobación adicional de intersección de la clave primaria en otras partes. [#93899](https://github.com/ClickHouse/ClickHouse/pull/93899) ([Shankar Iyer](https://github.com/shankar-iyer)).
* `DROP DATABASE` ahora elimina las tablas en el orden inverso de sus dependencias, lo que mejora la resistencia a fallos cuando la base de datos contiene tablas con dependencias de carga. [#97057](https://github.com/ClickHouse/ClickHouse/pull/97057) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La espera síncrona de las mutaciones ahora tiene en cuenta 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 evitó que reaparecieran datos eliminados si `ADD COLUMN` se ejecuta rápidamente después de una mutación `DROP COLUMN`. [#96713](https://github.com/ClickHouse/ClickHouse/pull/96713) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las expresiones `ALTER` en conflicto con `UPDATE` y `RENAME COLUMN` ahora lanzan una excepción correcta en lugar de un error lógico. [#96022](https://github.com/ClickHouse/ClickHouse/pull/96022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora se recopilan estadísticas del número total estimado de filas y del NDV (número de valores distintos) para las columnas clave de agregación. [#92812](https://github.com/ClickHouse/ClickHouse/pull/92812) ([Alexander Gololobov](https://github.com/davenger)).
* Todas las réplicas ahora pueden apropiarse de rangos huérfanos durante la lectura con réplicas en paralelo, lo que mejora el balanceo de carga y reduce la latencia de cola. [#91374](https://github.com/ClickHouse/ClickHouse/pull/91374) ([zoomxi](https://github.com/zoomxi)).
* Mejora de la precisión de la estimación para las réplicas paralelas automáticas con filtros `PREWHERE` muy selectivos. [#97231](https://github.com/ClickHouse/ClickHouse/pull/97231) ([Nikita Taranov](https://github.com/nickitat)).
* `joinGet` ahora admite tablas temporales. [#92973](https://github.com/ClickHouse/ClickHouse/pull/92973) ([Eduard Karacharov](https://github.com/korowa)).
* La agregación externa, la ordenación y el join ahora tienen en cuenta la configuración de consulta `temporary_files_codec` en todos los contextos. [#92388](https://github.com/ClickHouse/ClickHouse/pull/92388) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Las optimizaciones del plan de búsqueda por similitud vectorial ahora solo se aplican cuando existe un índice para la columna de búsqueda. [#94998](https://github.com/ClickHouse/ClickHouse/pull/94998) ([Eduard Karacharov](https://github.com/korowa)).

<div id="table-engines-and-storage">
  ### Motores de tabla y almacenamiento
</div>

* `StorageEmbeddedRocksDB` ahora admite varias columnas como clave primaria. [#33917](https://github.com/ClickHouse/ClickHouse/pull/33917) ([usurai](https://github.com/usurai)).
* Se añadió la sintaxis `ALTER TABLE <table> ATTACH PART <part_name> FROM <directory_name>`, que permite adjuntar partes desde subdirectorios arbitrarios de `detached/` (p. ej., partes con prefijos `broken-on-start` o `unexpected`) sin tener que renombrarlas manualmente en el sistema de archivos. [#74816](https://github.com/ClickHouse/ClickHouse/pull/74816) ([Anton Popov](https://github.com/CurtizJ)).
* `min_free_disk_bytes_to_perform_insert` ahora funciona correctamente con volúmenes JBOD. [#90878](https://github.com/ClickHouse/ClickHouse/pull/90878) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* `max_parts_to_merge_at_once` ahora se respeta durante las fusiones de eliminación de partes por TTL. [#95315](https://github.com/ClickHouse/ClickHouse/pull/95315) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Las operaciones en segundo plano (mutación, fusión) ahora pueden configurarse de forma independiente mediante un perfil `background`, en lugar de compartir la configuración con las consultas normales a través del perfil `default`. [#93905](https://github.com/ClickHouse/ClickHouse/pull/93905) ([Arsen Muk](https://github.com/arsenmuk)).
* Se mejoró la lectura de subcolumnas con un cálculo correcto del tamaño, lo que reduce el uso de memoria y mejora la velocidad. [#96251](https://github.com/ClickHouse/ClickHouse/pull/96251) ([Pavel Kruglov](https://github.com/Avogar)).
* Se limitó el número de flujos del pipeline generados con `split_intersecting_parts_ranges_into_layers` para evitar un consumo excesivo de memoria. [#96478](https://github.com/ClickHouse/ClickHouse/pull/96478) ([Nikita Taranov](https://github.com/nickitat)).
* El índice de texto ahora es GA. [#96794](https://github.com/ClickHouse/ClickHouse/pull/96794) ([Robert Schulze](https://github.com/rschu1ze)).
* `QBit` ahora es GA. [#95358](https://github.com/ClickHouse/ClickHouse/pull/95358) ([Raufs Dunamalijevs](https://github.com/rienath)).
* `QBit` ahora admite comparaciones de igualdad. [#94078](https://github.com/ClickHouse/ClickHouse/pull/94078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Al guardar el esquema de la tabla con `enable_positional_arguments_for_projections`, ahora se sustituyen las expresiones en lugar de los argumentos posicionales, lo que permite reiniciar el servidor con la configuración deshabilitada. [#96372](https://github.com/ClickHouse/ClickHouse/pull/96372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* En las bases de datos Replicated, el clúster en caché ya no se actualiza con cada consulta ficticia. [#96897](https://github.com/ClickHouse/ClickHouse/pull/96897) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Se añadió la consulta `SYSTEM RESET DDL WORKER [ON CLUSTER]` para restablecer el estado de DDLWorker, útil para refrescar la actividad de las réplicas cuando se actualizan los ID de host. [#93780](https://github.com/ClickHouse/ClickHouse/pull/93780) ([Tuan Pham Anh](https://github.com/tuanpach)).

<div id="data-lakes-improvements">
  ### Lagos de datos
</div>

* Se añadió compatibilidad con vectores de eliminación en DeltaLake. [#93852](https://github.com/ClickHouse/ClickHouse/pull/93852) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ahora los vectores de eliminación también son compatibles con `deltaLakeCluster`. [#94365](https://github.com/ClickHouse/ClickHouse/pull/94365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* DeltaLake ya está disponible en macOS. [#95985](https://github.com/ClickHouse/ClickHouse/pull/95985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* DeltaLake ahora obtiene los resultados de `count()` de los metadatos y muestra estadísticas correctas de la tabla (total de bytes/filas) en `system.tables`. [#96190](https://github.com/ClickHouse/ClickHouse/pull/96190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se omitieron lecturas de almacenamiento de objetos al consultar tablas DeltaLake desde `system.tables`. [#95899](https://github.com/ClickHouse/ClickHouse/pull/95899) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió el comando `SYSTEM RELOAD DELTA KERNEL TRACING <level>` para depurar el registro de delta-kernel. [#96763](https://github.com/ClickHouse/ClickHouse/pull/96763) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La ubicación de los metadatos de la tabla Iceberg ahora se deduce automáticamente si `metadata_location` no se especifica en los metadatos de Glue. [#91994](https://github.com/ClickHouse/ClickHouse/pull/91994) ([Andrey Zvonov](https://github.com/zvonand)).
* Las entradas del archivo manifest de Iceberg ahora analizan los límites inferior y superior de los nombres de archivos de eliminación por posición, lo que mejora la selección de archivos de datos. [#93980](https://github.com/ClickHouse/ClickHouse/pull/93980) ([Daniil Ivanik](https://github.com/divanik)).
* Se habilitó la optimización `PREWHERE` para tablas Iceberg. [#95476](https://github.com/ClickHouse/ClickHouse/pull/95476) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Los límites de hilos y memoria ahora se comparten entre los lectores de archivos de datos y de archivos de eliminación por posición en las tablas Iceberg. [#94701](https://github.com/ClickHouse/ClickHouse/pull/94701) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Se añadió compatibilidad con `ALTER TABLE RENAME COLUMN` para tablas Iceberg. [#97455](https://github.com/ClickHouse/ClickHouse/pull/97455) ([murphy-4o](https://github.com/murphy-4o)).
* Se añadió compatibilidad con Google Cloud Storage para lagos de datos. [#93866](https://github.com/ClickHouse/ClickHouse/pull/93866) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Los tokens de acceso de S3 ahora se renuevan dinámicamente durante consultas largas con Unity Catalog. [#95069](https://github.com/ClickHouse/ClickHouse/pull/95069) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Se añadió acceso basado en roles a Glue catalog mediante los ajustes `aws_role_arn` y `aws_role_session_name`. [#90825](https://github.com/ClickHouse/ClickHouse/pull/90825) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="s3queue-improvements">
  ### S3Queue
</div>

* S3Queue ahora realiza un seguimiento del particionamiento de Hive en modo ordenado. [#81040](https://github.com/ClickHouse/ClickHouse/pull/81040) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Se refactorizó el procesamiento en modo ordenado de S3Queue con buckets, lo que reduce el número de solicitudes a Keeper y mejora el rendimiento. [#92889](https://github.com/ClickHouse/ClickHouse/pull/92889) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió soporte para un particionamiento más genérico en el modo ordenado de S3Queue. [#94321](https://github.com/ClickHouse/ClickHouse/pull/94321) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añadió bucketing basado 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)).
* Compatibilidad de S3Queue con ZooKeeper auxiliar mediante la configuración `keeper_path`. [#95203](https://github.com/ClickHouse/ClickHouse/pull/95203) ([Diego Nieto](https://github.com/lesandie)).
* El modo ordenado de S3(Azure)Queue ahora limpia los nodos fallidos mediante el seguimiento de límites. [#94412](https://github.com/ClickHouse/ClickHouse/pull/94412) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="s3-and-object-storage-improvements">
  ### S3 y almacenamiento de objetos
</div>

* Las cabeceras S3 `x-amz-server-side-encryption` ya no se propagan a las solicitudes `HeadObject`, `UploadPart` y `CompleteMultipartUpload`. [#64577](https://github.com/ClickHouse/ClickHouse/pull/64577) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Ahora se puede especificar `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 corrigió la limitación de tasa en el endpoint de metadatos de EC2 al ejecutar muchas consultas S3 simultáneas con credenciales de perfil de instancia: 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 añadió compatibilidad con MinIO al SDK de AWS S3 para C++, con correspondencia de códigos de error para errores específicos de MinIO, lo que mejora la fiabilidad de los clústeres de MinIO autogestionados. [#93082](https://github.com/ClickHouse/ClickHouse/pull/93082) ([XiaoBinMu](https://github.com/Binnn-MX)).
* Se mejoraron los mensajes de error de autenticación de S3 con sugerencias para comprobar las credenciales. [#95648](https://github.com/ClickHouse/ClickHouse/pull/95648) ([Gerald Latkovic](https://github.com/batkovic75)).
* Azure Blob Storage ahora recurre a una copia en modo lectura-escritura cuando la copia nativa falla con cualquier error (antes, solo con Unauthorized). [#92888](https://github.com/ClickHouse/ClickHouse/pull/92888) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).

<div id="functions">
  ### Funciones
</div>

* `avg()` ahora admite valores `Date`, `DateTime` y `Time` como argumentos. [#87845](https://github.com/ClickHouse/ClickHouse/pull/87845) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `mapContainsKeyLike` y `mapContainsValueLike` ahora pueden usar un índice de texto en `mapKeys()` o `mapValues()`. [#93049](https://github.com/ClickHouse/ClickHouse/pull/93049) ([Michael Jarrett](https://github.com/EmeraldShift)).
* `flipCoordinates` ahora admite el tipo `Geometry`. [#93303](https://github.com/ClickHouse/ClickHouse/pull/93303) ([Bharat Nallan](https://github.com/bharatnc)).
* Se eliminó el límite de 64 tokens para las funciones `hasAnyTokens` y `hasAllTokens`. [#95152](https://github.com/ClickHouse/ClickHouse/pull/95152) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Se añadió `distanceCosine` como alias de `cosineDistance`, en línea con otras funciones de distancia. [#96065](https://github.com/ClickHouse/ClickHouse/pull/96065) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se añadió la función `iif` a ClickHouse KQL. [#94790](https://github.com/ClickHouse/ClickHouse/pull/94790) ([happyso](https://github.com/sunyeongchoi)).
* `use_variant_as_common_type` ahora está habilitado de forma predeterminada, lo que permite usar tipos incompatibles dentro de `Array`, consultas `UNION` y ramas `if`/`multiIf`/`case`. [#90677](https://github.com/ClickHouse/ClickHouse/pull/90677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="settings-and-configuration-improvements">
  ### Configuración y ajustes
</div>

* `use_skip_indexes_on_data_read` ahora está activado de forma predeterminada. [#93407](https://github.com/ClickHouse/ClickHouse/pull/93407) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Se añadió la configuración `add_minmax_index_for_time_columns`: al estar habilitada, 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)).
* Se agregó la configuración `materialize_statistics_on_merge` (habilitada de forma predeterminada) para controlar si las estadísticas se materializan durante las fusiones. [#93379](https://github.com/ClickHouse/ClickHouse/pull/93379) ([Han Fei](https://github.com/hanfei1991)).
* Se agregó la configuración `input_format_binary_max_type_complexity` para limitar la cantidad total de nodos de tipos que pueden decodificarse en formato binario, evitando payloads maliciosos. [#92519](https://github.com/ClickHouse/ClickHouse/pull/92519) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Se añadió la configuración `trace_profile_events_list` para limitar el trazado con `trace_profile_event` a determinados nombres de evento. [#92298](https://github.com/ClickHouse/ClickHouse/pull/92298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la configuración `type_json_allow_duplicated_key_with_literal_and_nested_object` para permitir rutas duplicadas en JSON en las que una es un literal y otra, un objeto anidado, por compatibilidad con datos creados antes de que se aplicara la deduplicación de rutas. [#93604](https://github.com/ClickHouse/ClickHouse/pull/93604) ([Pavel Kruglov](https://github.com/Avogar)).
* Se añadieron el ajuste de MergeTree `merge_max_dynamic_subcolumns_in_compact_part` y el ajuste a nivel de consulta `max_dynamic_subcolumns_in_json_type_parsing` para limitar las subcolumnas dinámicas en las columnas JSON durante la fusión y el análisis. [#94184](https://github.com/ClickHouse/ClickHouse/pull/94184) ([Pavel Kruglov](https://github.com/Avogar)).
* Se añadió `use_statistics` como alias de `allow_statistics_optimize`, en línea con `use_primary_key` y `use_skip_indexes`. [#94366](https://github.com/ClickHouse/ClickHouse/pull/94366) ([Robert Schulze](https://github.com/rschu1ze)).
* Se habilitó `input_format_numbers_enum_on_conversion_error` en la conversión de números a Enum para comprobar la existencia del elemento. [#94384](https://github.com/ClickHouse/ClickHouse/pull/94384) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Se añadió un ajuste para generar una excepción cuando una tabla tiene políticas de filas pero ninguna se aplica al usuario actual, con el fin de detectar posibles errores de configuración. [#95014](https://github.com/ClickHouse/ClickHouse/pull/95014) ([Vitaly Baranov](https://github.com/vitlibar)).
* `enable_max_bytes_limit_for_min_age_to_force_merge` ahora viene habilitado de forma predeterminada para la versión de compatibilidad 26.2 y posteriores. [#95917](https://github.com/ClickHouse/ClickHouse/pull/95917) ([Christoph Wurm](https://github.com/cwurm)).
* `core_dump.size_limit` ahora se puede recargar en caliente sin reiniciar el servidor. [#96524](https://github.com/ClickHouse/ClickHouse/pull/96524) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Ahora se respetan las sobrescrituras desde la línea de comandos al recargar la configuración. [#80295](https://github.com/ClickHouse/ClickHouse/pull/80295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió una estrategia de rotación combinada (tamaño + tiempo) para los logs del servidor. [#87620](https://github.com/ClickHouse/ClickHouse/pull/87620) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Ahora, el análisis distribuido de índices puede habilitarse según el número 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)).
* La caché de estadísticas ahora está habilitada de forma predeterminada, con un intervalo de actualización de 300 segundos. [#95841](https://github.com/ClickHouse/ClickHouse/pull/95841) ([Han Fei](https://github.com/hanfei1991)).
* El parámetro de configuración `path` ahora se resuelve en relación con el directorio de trabajo al iniciarse, lo que evita que los directorios de datos se ubiquen en ubicaciones inusuales. [#96305](https://github.com/ClickHouse/ClickHouse/pull/96305) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="system-tables-and-monitoring-improvements">
  ### Tablas del sistema y monitorización
</div>

* Se añadió la columna `parts_postpone_reasons` a `system.mutations` para mejorar el diagnóstico. [#92206](https://github.com/ClickHouse/ClickHouse/pull/92206) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Se añadió la columna `creation` (implicit/explicit) a `system.data_skipping_indices`. [#92378](https://github.com/ClickHouse/ClickHouse/pull/92378) ([Raúl Marín](https://github.com/Algunenano)).
* Las tareas en ejecución ahora se reflejan en `system.background_schedule_pool` y en la tabla de log correspondiente. [#92587](https://github.com/ClickHouse/ClickHouse/pull/92587) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió la métrica `QueryNonInternal` para hacer un seguimiento del número de consultas no internas en ejecución, lo que ayuda a supervisar la concurrencia con respecto al límite `max_concurrent_queries`. [#94284](https://github.com/ClickHouse/ClickHouse/pull/94284) ([Ashwath Singh](https://github.com/ashwath)).
* Se añadió una métrica asíncrona para el tiempo transcurrido de la fusión en ejecución más larga. [#94825](https://github.com/ClickHouse/ClickHouse/pull/94825) ([Raúl Marín](https://github.com/Algunenano)).
* Se añadieron `connection_address` y `connection_port` a `query_log` para reflejar la conexión física (útil cuando se conecta a través de un proxy). [#95471](https://github.com/ClickHouse/ClickHouse/pull/95471) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se añadió más información a `system.crash_log`. [#94112](https://github.com/ClickHouse/ClickHouse/pull/94112) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* 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)).
* Se añadió la tabla `system.tokenizers`, que muestra todos los tokenizadores disponibles. [#96753](https://github.com/ClickHouse/ClickHouse/pull/96753) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadieron la tabla `system.jemalloc_stats` y el endpoint HTTP `/jemalloc.html` para la visualización interactiva de las estadísticas del asignador de memoria jemalloc. [#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 de heap de jemalloc, con soporte para formatos de salida raw, simbolizados y collapsed. [#97218](https://github.com/ClickHouse/ClickHouse/pull/97218) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió `mutation_ids` a `system.part_log` para los eventos `MUTATE_PART` y `MUTATE_PART_START`. [#93811](https://github.com/ClickHouse/ClickHouse/pull/93811) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Las configuraciones globales anidadas del servidor (por ejemplo, `logger.level`) ahora son parcialmente visibles en `system.server_settings`. [#94001](https://github.com/ClickHouse/ClickHouse/pull/94001) ([Hechem Selmi](https://github.com/m-selmi)).
* `view_duration_ms` ahora muestra el tiempo durante el que un grupo estuvo activo, en lugar de la suma de las duraciones de los hilos. [#94966](https://github.com/ClickHouse/ClickHouse/pull/94966) ([Sema Checherinda](https://github.com/CheSema)).
* `system.blob_storage_log` ahora está disponible para Azure Blob Storage, Local y HDFS. Se añadió la columna `error_code`. [#93105](https://github.com/ClickHouse/ClickHouse/pull/93105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las tareas en segundo plano más lentas que la media ahora se registran con un umbral configurable (`background_schedule_pool_log.duration_threshold_milliseconds`, 30 ms por defecto). [#92965](https://github.com/ClickHouse/ClickHouse/pull/92965) ([Azat Khuzhin](https://github.com/azat)).
* Las contraseñas del almacenamiento URL ya no se muestran en el log de consultas. [#93245](https://github.com/ClickHouse/ClickHouse/pull/93245) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="clickhouse-keeper-improvements">
  ### ClickHouse Keeper
</div>

* Maneja correctamente los huecos en las entradas del log de Keeper si los logs están antes del último índice confirmado. [#90403](https://github.com/ClickHouse/ClickHouse/pull/90403) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió trazabilidad de OpenTelemetry para las solicitudes de Keeper. [#91332](https://github.com/ClickHouse/ClickHouse/pull/91332) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se añadieron nuevas métricas de Keeper: `KeeperChangelogWrittenBytes`, `KeeperChangelogFileSyncMicroseconds`, `KeeperSnapshotWrittenBytes`, `KeeperSnapshotFileSyncMicroseconds`, `KeeperBatchSizeElements` y `KeeperBatchSizeBytes`. [#92149](https://github.com/ClickHouse/ClickHouse/pull/92149) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Las extensiones de Keeper `CHECK_STAT` y `TRY_REMOVE` ahora están habilitadas de forma predeterminada. [#93886](https://github.com/ClickHouse/ClickHouse/pull/93886) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Keeper ahora lanza una excepción en lugar de abortar cuando detecta una instantánea dañada o changelogs incoherentes, lo que requiere intervención manual para una recuperación más segura. [#94168](https://github.com/ClickHouse/ClickHouse/pull/94168) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadieron las extensiones `with_data` y `with_stat` a las solicitudes `getChildren` de Keeper, lo que permite obtener los nodos hijo junto con sus datos y estadísticas en una sola operación. [#94826](https://github.com/ClickHouse/ClickHouse/pull/94826) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añadió una comprobación para detectar una configuración incorrecta de Keeper que podría provocar fallos en el ensamblaje del clúster. [#94682](https://github.com/ClickHouse/ClickHouse/pull/94682) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se añadió compatibilidad con la extensión `with_data` de Keeper para mejorar la obtención de tablas en Database Replicated. [#96090](https://github.com/ClickHouse/ClickHouse/pull/96090) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ahora se pueden hacer inserciones en ZooKeeper auxiliar mediante `system.zookeeper`. [#92092](https://github.com/ClickHouse/ClickHouse/pull/92092) ([RinChanNOW](https://github.com/RinChanNOWWW)).

<div id="memory-management-improvements">
  ### Gestión de memoria
</div>

* Se optimizó la reserva de espacio de la caché del sistema de archivos: los candidatos a expulsión ahora se recopilan sin mantener un bloqueo exclusivo. [#82764](https://github.com/ClickHouse/ClickHouse/pull/82764) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se habilitaron lecturas en paralelo en el búfer de lectura de la caché del sistema de archivos para motores de tabla y funciones remotos. [#71781](https://github.com/ClickHouse/ClickHouse/pull/71781) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se redujo el uso de memoria en sistemas no Linux al habilitar la purga inmediata de páginas sucias de jemalloc. [#93360](https://github.com/ClickHouse/ClickHouse/pull/93360) ([Eduard Karacharov](https://github.com/korowa)).
* La purga de páginas sucias de jemalloc ahora se ejecuta en un hilo separado del hilo principal de MemoryWorker. Se añadió la configuración `memory_worker_purge_total_memory_threshold_ratio` para purgar en función de la proporción de uso total de memoria. [#94902](https://github.com/ClickHouse/ClickHouse/pull/94902) ([Antonio Andelic](https://github.com/antonio2368)).
* El decaimiento de las páginas sucias de jemalloc ahora se desactiva dinámicamente cuando ClickHouse está sometido a una presión de memoria sostenida. [#95145](https://github.com/ClickHouse/ClickHouse/pull/95145) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió una comprobación explícita del consumo de memoria antes de leer datos de MergeTree, con tamaños de cola del pool de hilos reducidos en función de la experiencia en producción. [#94692](https://github.com/ClickHouse/ClickHouse/pull/94692) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* El límite total de memoria ahora se comprueba antes de la autenticación del usuario, y se lanza `memory limit exceeded` si se supera el límite. [#95003](https://github.com/ClickHouse/ClickHouse/pull/95003) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió una contabilización incorrecta de memoria en la caché de condiciones de la consulta. [#95478](https://github.com/ClickHouse/ClickHouse/pull/95478) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se hizo más robusta la detección del uso de memoria de la consulta para el volcado a disco durante la agregación y la ordenación. [#92500](https://github.com/ClickHouse/ClickHouse/pull/92500) ([Azat Khuzhin](https://github.com/azat)).
* El planificador ahora prioriza el hilo MemoryWorker en caso de inanición de CPU para proteger el proceso. [#94864](https://github.com/ClickHouse/ClickHouse/pull/94864) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió un problema por el que ClickHouse no respetaba los límites de memoria en algunos casos al leer de una tabla. [#93715](https://github.com/ClickHouse/ClickHouse/pull/93715) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

<div id="data-formats-improvements">
  ### Formatos de datos
</div>

* El lector de Parquet ahora permite leer columnas `Tuple` o `Map` como JSON. [#92864](https://github.com/ClickHouse/ClickHouse/pull/92864) ([Michael Kolupaev](https://github.com/al13n321)).
* El lector de Parquet ahora admite tuplas vacías. [#92868](https://github.com/ClickHouse/ClickHouse/pull/92868) ([Michael Kolupaev](https://github.com/al13n321)).
* El tipo `Date` ahora se serializa como el tipo nativo `date32` de Arrow en los formatos Arrow/ArrowStream (anteriormente `uint16`). El comportamiento anterior se puede restaurar con la configuración `output_format_arrow_date_as_uint16`. [#96860](https://github.com/ClickHouse/ClickHouse/pull/96860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El formato de salida `Hash` ahora es independiente del tamaño de los bloques. [#94503](https://github.com/ClickHouse/ClickHouse/pull/94503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los tipos simples en el formato Pretty JSON ya no se imprimen en líneas separadas. [#93836](https://github.com/ClickHouse/ClickHouse/pull/93836) ([Pavel Kruglov](https://github.com/Avogar)).
* La inferencia de esquemas ahora respeta `allow_experimental_nullable_tuple_type`: cuando está habilitado, los objetos anidados ausentes pueden 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)).
* El formateador SQL ahora genera `COMMENT` antes de `AS SELECT` en lugar de poner `SELECT` entre paréntesis. [#96293](https://github.com/ClickHouse/ClickHouse/pull/96293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se optimizó la compresión de la lista de postings con simdcomp. [#92871](https://github.com/ClickHouse/ClickHouse/pull/92871) ([Peng Jian](https://github.com/fastio)).

<div id="backup-and-restore-improvements">
  ### Copia de seguridad y restauración
</div>

* Se añadió la configuración de copia de seguridad `backup_data_from_refreshable_materialized_view_targets` para controlar si se respaldan los datos de las vistas materializadas actualizables. Los destinos de las vistas materializadas actualizables con estrategia de actualización `APPEND` siempre se incluyen en la copia de seguridad. [#93658](https://github.com/ClickHouse/ClickHouse/pull/93658) ([Julia Kartseva](https://github.com/jkartseva)).
* Se añadió compatibilidad con colecciones con nombre definidas en SQL en `BACKUP`/`RESTORE` para S3 y Azure Blob Storage. [#94605](https://github.com/ClickHouse/ClickHouse/pull/94605) ([Pablo Marcos](https://github.com/pamarcos)).

<div id="named-collections-and-dictionaries">
  ### Colecciones con nombre y diccionarios
</div>

* Ahora se permiten sobrescrituras de parámetros de colecciones con nombre en la table function de MongoDB. [#89616](https://github.com/ClickHouse/ClickHouse/pull/89616) ([vanchaklar](https://github.com/vanchaklar)).
* Se habilitó el uso de colecciones con nombre para diccionarios y tablas de YTsaurus. [#94582](https://github.com/ClickHouse/ClickHouse/pull/94582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ahora se pueden pasar descripciones de columnas para fuentes de diccionario de tablas dinámicas de YTsaurus. [#92391](https://github.com/ClickHouse/ClickHouse/pull/92391) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Ahora se muestra el esquema de la vista parametrizada cuando se especifica de forma explícita. [#90220](https://github.com/ClickHouse/ClickHouse/pull/90220) ([Grigorii Sokolik](https://github.com/GSokol)).

<div id="deduplication-improvements">
  ### Deduplicación
</div>

* Se rediseñó el ajuste `insert_select_deduplicate` para añadir opciones de compatibilidad con versiones anteriores. [#92951](https://github.com/ClickHouse/ClickHouse/pull/92951) ([Sema Checherinda](https://github.com/CheSema)).
* Ahora se permite la deduplicación con async inserts cuando intervienen vistas materializadas. [#93957](https://github.com/ClickHouse/ClickHouse/pull/93957) ([Sema Checherinda](https://github.com/CheSema)).

<div id="other-improvements">
  ### Otras mejoras
</div>

* Se mejoró la experiencia de usuario de `SYSTEM INSTRUMENT ADD/REMOVE`: ahora se usan literales de cadena para los nombres de función, se parchean todas las funciones coincidentes y `function_name` es compatible con `REMOVE`. [#93345](https://github.com/ClickHouse/ClickHouse/pull/93345) ([Pablo Marcos](https://github.com/pamarcos)).
* Se añadió `SYSTEM NOTIFY FAILPOINT` para failpoints con pausa y `SYSTEM WAIT FAILPOINT` para PAUSE/RESUME. [#92368](https://github.com/ClickHouse/ClickHouse/pull/92368) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Los nombres de las funciones de C++ en `system.trace_log`, `system.symbols` y la función `demangle` ahora se muestran correctamente. [#93075](https://github.com/ClickHouse/ClickHouse/pull/93075) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los perfiles de jemalloc ahora se escriben con símbolos, lo que elimina la necesidad de un binario durante la generación del perfil de heap. [#93099](https://github.com/ClickHouse/ClickHouse/pull/93099) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió 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)).
* Se corrigió la posible presencia de restos residuales cuando `CREATE TABLE` falla. [#94174](https://github.com/ClickHouse/ClickHouse/pull/94174) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió el acceso a memoria no inicializada cuando se usa una clave privada TLS protegida con contraseña. [#94182](https://github.com/ClickHouse/ClickHouse/pull/94182) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Cuando `alter table ... modify setting ...` supera el tiempo de espera mientras adquiere un bloqueo, ahora devuelve un error de timeout en lugar de un error lógico. [#93856](https://github.com/ClickHouse/ClickHouse/pull/93856) ([Han Fei](https://github.com/hanfei1991)).
* Se mejoró la interoperabilidad del profiler de CPU y en tiempo real con los timeouts del socket. [#96601](https://github.com/ClickHouse/ClickHouse/pull/96601) ([Sergei Trifonov](https://github.com/serxa)).
* Se habilitó el endurecimiento rápido de libcxx para los builds de release (principalmente comprobaciones de límites) sin impacto perceptible en el rendimiento. [#94757](https://github.com/ClickHouse/ClickHouse/pull/94757) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="performance-improvements">
  ## Mejoras del rendimiento
</div>

<div id="join-performance">
  ### Rendimiento de JOIN
</div>

* Se aceleraron algunas operaciones de hash join mediante la implementación de despacho dinámico para `ColumnVector::replicate`. [#79573](https://github.com/ClickHouse/ClickHouse/pull/79573) ([Raúl Marín](https://github.com/Algunenano)).
* Ahora se hace pushdown de más filtros en los JOIN. [#85556](https://github.com/ClickHouse/ClickHouse/pull/85556) ([Nikita Taranov](https://github.com/nickitat)).
* Se amplió el hacer pushdown de filtros desde las condiciones `ON` de JOIN para los joins `ANY`, `SEMI` y `ANTI` cuando el filtro usa entradas de un solo lado. [#92584](https://github.com/ClickHouse/ClickHouse/pull/92584) ([Dmitry Novik](https://github.com/novikd)).
* Ahora pueden usarse conjuntos equivalentes para hacer pushdown de filtros en `SEMI JOIN`. [#92837](https://github.com/ClickHouse/ClickHouse/pull/92837) ([Dmitry Novik](https://github.com/novikd)).
* Se paralelizó el procesamiento de filas no unidas en `ParallelHashJoin` para predicados complejos, controlado por la configuración `parallel_non_joined_rows_processing` (habilitada de forma predeterminada). [#92068](https://github.com/ClickHouse/ClickHouse/pull/92068) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Hash join ahora omite por completo la lectura del lado izquierdo cuando el lado derecho está vacío, lo que evita trabajo innecesario debido a filtros exigentes o agregación. [#94062](https://github.com/ClickHouse/ClickHouse/pull/94062) ([Alexander Gololobov](https://github.com/davenger)).
* Ahora se admiten JOIN runtime filters para los JOIN `RIGHT OUTER`. [#96183](https://github.com/ClickHouse/ClickHouse/pull/96183) ([Hechem Selmi](https://github.com/m-selmi)).
* La optimización de PREWHERE ahora se pospone hasta después de la optimización de JOIN runtime filter, lo que permite que los runtime filters también hagan pushdown a PREWHERE. [#95838](https://github.com/ClickHouse/ClickHouse/pull/95838) ([Alexander Gololobov](https://github.com/davenger)).

<div id="query-optimization">
  ### Optimización de consultas
</div>

* Se deshabilitó la optimización del orden de clasificación para las funciones de ventana cuando la clave de partición coincide con la clave de ordenación o es un prefijo de ella, lo que mejora el rendimiento de la ejecución en paralelo. [#87299](https://github.com/ClickHouse/ClickHouse/pull/87299) ([Nikita Taranov](https://github.com/nickitat)).
* Ahora se hace pushdown de los filtros externos en las vistas, lo que permite aplicar PREWHERE tanto en nodos locales como remotos. [#88316](https://github.com/ClickHouse/ClickHouse/pull/88316) ([Igor Nikonov](https://github.com/devcrafter)).
* Se optimizaron 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)).
* Los filtros constantes en columnas virtuales ya no se evalúan de forma redundante. [#91588](https://github.com/ClickHouse/ClickHouse/pull/91588) ([c-end](https://github.com/c-end)).
* Ahora puede usarse cualquier expresión determinista en la clave primaria (p. ej., `ORDER BY cityHash64(user_id)`) para la omisión de datos. ClickHouse aplica la expresión a las constantes de la consulta y usa el resultado para búsquedas en el índice de la clave primaria con `=`, `IN` y `has`. Para expresiones inyectivas, también se admiten formas negadas (`!=`, `NOT IN`, `NOT has`). [#92952](https://github.com/ClickHouse/ClickHouse/pull/92952) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* La optimización de lectura en orden ahora reconoce cuándo las columnas de `ORDER BY` son constantes debido a las condiciones de `WHERE`, lo que permite lecturas eficientes en orden inverso. Esto beneficia a consultas multitenant como `WHERE tenant='42' ORDER BY tenant, event_time DESC`. [#94103](https://github.com/ClickHouse/ClickHouse/pull/94103) ([matanper](https://github.com/matanper)).
* Para consultas `FINAL` que usan una condición de clave primaria seguida de índices de omisión, el paso `PrimaryKeyExpand` ahora solo comprueba los rangos de clave primaria preseleccionados inicialmente. [#94903](https://github.com/ClickHouse/ClickHouse/pull/94903) ([Shankar Iyer](https://github.com/shankar-iyer)).
* La optimización de materialización diferida ahora se aplica a todas las ramas de una consulta `UNION ALL`, no solo a la primera, lo que reduce la E/S en consultas que combinan múltiples lecturas ordenadas y limitadas de distintas tablas MergeTree. [#96832](https://github.com/ClickHouse/ClickHouse/pull/96832) ([Federico Ginosa](https://github.com/menxit)).

<div id="function-and-aggregation-performance">
  ### Rendimiento de funciones y agregaciones
</div>

* La compilación JIT ahora abarca más funciones. [#88770](https://github.com/ClickHouse/ClickHouse/pull/88770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se optimizó la función de agregación `distinctJSONPaths` para leer solo 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)).
* Se optimizó `uniqExact` cuando elementos idénticos suelen aparecer de forma consecutiva. [#93268](https://github.com/ClickHouse/ClickHouse/pull/93268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se optimizó `isValidASCII` para valores de entrada compuestos únicamente por caracteres ASCII. [#93347](https://github.com/ClickHouse/ClickHouse/pull/93347) ([Robert Schulze](https://github.com/rschu1ze)).
* Se aceleró `uniq` en tipos numéricos agrupando inserciones en lotes cuando es posible (no NULL, sin `-If`, sin `GROUP BY`, sin `IPv6` ni `String`). [#95904](https://github.com/ClickHouse/ClickHouse/pull/95904) ([Raúl Marín](https://github.com/Algunenano)).

<div id="storage-and-io-performance">
  ### Rendimiento del almacenamiento y de E/S
</div>

* Se corrigió el prefetcher de Parquet Reader V3 para que utilice una lógica de lectura aleatoria más rápida. [#91435](https://github.com/ClickHouse/ClickHouse/pull/91435) ([Arsen Muk](https://github.com/arsenmuk)).
* Se mejoró el rendimiento de `icebergCluster`. [#91537](https://github.com/ClickHouse/ClickHouse/pull/91537) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Se redujo el uso de memoria en `INSERT` y merge para tablas muy anchas con partes Wide al habilitar búferes de escritura adaptativos. También se añadió 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 el índice de texto y el tokenizer `sparseGrams` al reducir el número de tokens buscados. [#93078](https://github.com/ClickHouse/ClickHouse/pull/93078) ([Anton Popov](https://github.com/CurtizJ)).
* Se aceleró la compresión del codec T64 mediante despacho dinámico en x86. [#95881](https://github.com/ClickHouse/ClickHouse/pull/95881) ([Raúl Marín](https://github.com/Algunenano)).
* Se aceleró la descompresión LZ4 de bloques de 32 bytes en x86. [#96778](https://github.com/ClickHouse/ClickHouse/pull/96778) ([Raúl Marín](https://github.com/Algunenano)).
* La optimización de lectura directa del índice de texto ahora funciona de forma parcial: las partes con un índice de texto materializado lo usarán, mientras que las partes sin él volverán a la expresión de filtro original. [#96411](https://github.com/ClickHouse/ClickHouse/pull/96411) ([Anton Popov](https://github.com/CurtizJ)).
* Se optimizó el cálculo del skip index minmax durante `INSERT` al eliminar una copia de datos innecesaria y habilitar el cálculo vectorizado de mínimos y máximos para columnas numéricas. [#97392](https://github.com/ClickHouse/ClickHouse/pull/97392) ([Raúl Marín](https://github.com/Algunenano)).
* Se añadieron índices secundarios `minmax` en columnas de tiempo e índices `bloom_filter` en las columnas `query_id`/`initial_query_id` de las tablas de logs del sistema para acelerar el filtrado. [#96712](https://github.com/ClickHouse/ClickHouse/pull/96712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se evitó una regresión en el uso de memoria en `INSERT` cuando la deduplicación no está habilitada. [#96503](https://github.com/ClickHouse/ClickHouse/pull/96503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="memory-optimization">
  ### Optimización de memoria
</div>

* Se redujo la huella de memoria de `ASTLiteral` al eliminar campos no utilizados cuando el resaltado y el análisis de `VALUES` no están activos. [#93974](https://github.com/ClickHouse/ClickHouse/pull/93974) ([Ilya Yatsishin](https://github.com/qoega)).
* Se introdujo una clase AST especializada para Enum que almacena los parámetros de valor como pares de cadena/entero en lugar de hijos genéricos de `ASTLiteral`, lo que reduce el consumo de memoria. [#94178](https://github.com/ClickHouse/ClickHouse/pull/94178) ([Ilya Yatsishin](https://github.com/qoega)).
* Se optimizó el consumo de memoria de los objetos AST de tuplas con nombre almacenando los nombres de columna directamente como cadenas, en lugar de hacerlo en nodos literales genéricos del AST. [#94704](https://github.com/ClickHouse/ClickHouse/pull/94704) ([Ilya Yatsishin](https://github.com/qoega)).
* Se redujo el tamaño de la estructura `CachedOnDiskReadBufferFromFile` en aproximadamente 50 veces. [#96098](https://github.com/ClickHouse/ClickHouse/pull/96098) ([Azat Khuzhin](https://github.com/azat)).
* `HashTable::resize` ya no copia datos antiguos cuando la tabla está vacía. [#96180](https://github.com/ClickHouse/ClickHouse/pull/96180) ([Raúl Marín](https://github.com/Algunenano)).

<div id="internal-optimizations">
  ### Optimizaciones internas
</div>

* Se adoptó el método "fastrange" (Daniel Lemire) para particionar los datos dentro del pipeline de consulta, lo que mejora la ordenación paralela y los JOINs. [#93080](https://github.com/ClickHouse/ClickHouse/pull/93080) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se mejoró la desvirtualización con opciones adicionales del enlazador. [#94737](https://github.com/ClickHouse/ClickHouse/pull/94737) ([Nikita Taranov](https://github.com/nickitat)).
* Se mejoró 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)).
* Se redujo en más de un 20 % el consumo de CPU del hilo de recepción de ZooKeeper en `observeOperations` al cambiar a funciones hash más rápidas y contadores sin bloqueos. [#95962](https://github.com/ClickHouse/ClickHouse/pull/95962) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="bug-fixes">
  ## Correcciones de errores
</div>

<Accordion title="Todas las correcciones de errores (haga clic para expandir)">
  ### Correcciones de JOIN

  * Se corrigió el error `INCOMPATIBLE_TYPE_OF_JOIN` en el almacenamiento Join cuando se aplicaba la optimización que convierte un join outer en inner. [#84292](https://github.com/ClickHouse/ClickHouse/pull/84292) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Se corrigió 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)).
  * Se corrigió un error lógico al reordenar join con `join_use_nulls`. [#92289](https://github.com/ClickHouse/ClickHouse/pull/92289) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Se corrigió un posible bloqueo 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)).
  * Se corrigió `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 flexibilizaron los requisitos para aplicar la optimización cuando se usan funciones inyectivas en las claves de agregación durante los joins. [#92503](https://github.com/ClickHouse/ClickHouse/pull/92503) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Se corrigió un error lógico en múltiples joins con una condición constante y `join_use_nulls`. [#92892](https://github.com/ClickHouse/ClickHouse/pull/92892) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Se corrigió 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 los resultados de la operación join cuando la clave de join del lado derecho era una columna dispersa. [#93038](https://github.com/ClickHouse/ClickHouse/pull/93038) ([Amos Bird](https://github.com/amosbird)).
  * Se corrigió un problema por el que los filtros de 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)).
  * Se corrigió un error lógico al usar filtros en tiempo de ejecución en una consulta con totales para la tabla derecha. [#93330](https://github.com/ClickHouse/ClickHouse/pull/93330) ([Alexander Gololobov](https://github.com/davenger)).
  * Se corrigió un error lógico que, en algunos casos, se activaba cuando se añadían filtros de runtime para join al plan de consulta debido a la devolución incorrecta de columnas const duplicadas. [#93144](https://github.com/ClickHouse/ClickHouse/pull/93144) ([Alexander Gololobov](https://github.com/davenger)).
  * Se corrigió la función `__applyFilter`, utilizada por los filtros de runtime de join, que 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)).
  * Se corrigió un problema por el que no se añadían filtros en tiempo de ejecución al hacer join con una tabla derecha ya rellenada. [#93211](https://github.com/ClickHouse/ClickHouse/pull/93211) ([Alexander Gololobov](https://github.com/davenger)).
  * Se corrigió el error `NOT_FOUND_COLUMN_IN_BLOCK` cuando el filtro en tiempo de ejecución estaba habilitado y las tablas combinadas devolvían la misma columna varias veces. [#93526](https://github.com/ClickHouse/ClickHouse/pull/93526) ([Alexander Gololobov](https://github.com/davenger)).
  * Se corrigió que `FilterStep` no se añadiera correctamente cuando se aplicaba un runtime filter de join en la tabla `Merge`. [#94021](https://github.com/ClickHouse/ClickHouse/pull/94021) ([Alexander Gololobov](https://github.com/davenger)).
  * Se corrigió la conversión de tipos al supertipo durante una operación JOIN del almacenamiento `Join` con la cláusula `USING`. [#94000](https://github.com/ClickHouse/ClickHouse/pull/94000) ([Dmitry Novik](https://github.com/novikd)).
  * Se corrigieron las consultas con réplicas paralelas y JOIN con una tabla que no es MergeTree. [#93902](https://github.com/ClickHouse/ClickHouse/pull/93902) ([Igor Nikonov](https://github.com/devcrafter)).
  * Se corrigió una condición de carrera en la columna de join Nullable de los filtros en tiempo de ejecución. [#95775](https://github.com/ClickHouse/ClickHouse/pull/95775) ([Hechem Selmi](https://github.com/m-selmi)).
  * Se corrigió un problema por el que una cadena vacía se convertía en `NULL` en una tabla `Join` con clave `Nullable(String)`. [#96002](https://github.com/ClickHouse/ClickHouse/pull/96002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió el error `NOT_SUPPORTED` 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)).
  * Se corrigieron resultados incorrectos en consultas con JOINs externos combinados con varios INNER JOINs, causados por un reordenamiento ilegal de JOINs cuando la condición `ON` de un JOIN externo hacía referencia a columnas de varias tablas previamente unidas. [#96193](https://github.com/ClickHouse/ClickHouse/pull/96193) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Se corrigió una excepción de 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 corrigieron las consultas con CROSS JOIN y réplicas paralelas habilitadas que devolvían resultados incorrectos. [#96848](https://github.com/ClickHouse/ClickHouse/pull/96848) ([Igor Nikonov](https://github.com/devcrafter)).
  * Se corrigió un problema por el que `arrayJoin` producía filas duplicadas cuando se usaba con INNER JOIN y la cláusula WHERE, causado por un push-down parcial de predicados que empujaba 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)).
  * Se corrigió `LOGICAL_ERROR` cuando `arrayJoin` en la cláusula `WHERE` hacía 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ó un error lógico al usar un comodín (`*`) dentro de una función lambda en la cláusula VALUES de un JOIN con USING. [#95661](https://github.com/ClickHouse/ClickHouse/pull/95661) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Se corrigió un posible error lógico en el matcher (`*`, `table.*`) y en `analyzer_compatibility_join_using_top_level_identifier` cuando la columna de `USING` tenía tipos diferentes. [#95808](https://github.com/ClickHouse/ClickHouse/pull/95808) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Se corrigió un error lógico relacionado con `analyzer_compatibility_join_using_top_level_identifier` y las columnas ALIAS. [#97297](https://github.com/ClickHouse/ClickHouse/pull/97297) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Se solucionó un bloqueo en el analizador antiguo al usar JOIN con alias duplicados. [#96405](https://github.com/ClickHouse/ClickHouse/pull/96405) ([Ilya Golshtein](https://github.com/ilejn)).

  ### Correcciones de consultas y del analizador

  * Se corrigió un error por el que los controladores de consultas predefinidas interpretaban los espacios en blanco al final como datos durante las inserciones. [#83604](https://github.com/ClickHouse/ClickHouse/pull/83604) ([Fabian Ponce](https://github.com/FabianPonce)).
  * Se corrigió la agregación con proyección que producía una excepción después de ALTER que solo afectan a los metadatos, como la ampliación de elementos de Enum. [#84143](https://github.com/ClickHouse/ClickHouse/pull/84143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la pasada `count_distinct_optimization` para funciones de ventana y múltiples argumentos. [#92376](https://github.com/ClickHouse/ClickHouse/pull/92376) ([Raúl Marín](https://github.com/Algunenano)).
  * Se corrigió el formato inconsistente del AST de `arrayElement` con un literal negado. [#92293](https://github.com/ClickHouse/ClickHouse/pull/92293) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió `NOT IN` con argumentos de tipo Array no constantes que devolvían valores incorrectos. [#93314](https://github.com/ClickHouse/ClickHouse/pull/93314) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Se corrigió un error en la comparación null-safe relacionado con el tipo `Nothing`. [#91884](https://github.com/ClickHouse/ClickHouse/pull/91884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Se corrigió el error `Not found column` en la optimización `use_top_k_dynamic_filtering`. [#93316](https://github.com/ClickHouse/ClickHouse/pull/93316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * Se corrigió la eliminación de columnas no utilizadas en las subconsultas en presencia de una subconsulta escalar correlacionada. [#93273](https://github.com/ClickHouse/ClickHouse/pull/93273) ([Dmitry Novik](https://github.com/novikd)).
  * Se corrigió un problema por el que `optimize_inverse_dictionary_lookup` no funcionaba con consultas distribuidas cuando la clave era de un tipo entero con signo. [#93848](https://github.com/ClickHouse/ClickHouse/pull/93848) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió un problema por el que `lag`/`lead` no funcionaban con consultas distribuidas `remote()`. [#93858](https://github.com/ClickHouse/ClickHouse/pull/93858) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió un error en la lógica de omisión de datos al usar `not match(...)` en `WHERE`, que provocaba resultados incorrectos. [#92726](https://github.com/ClickHouse/ClickHouse/pull/92726) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió un error en la lógica de omisión de datos cuando se usaba `not materialize(...)` o `not CAST(...)` en `WHERE`, que provocaba resultados incorrectos. [#93017](https://github.com/ClickHouse/ClickHouse/pull/93017) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió un error lógico durante el análisis de índices al usar un array vacío en la función `has`. [#92995](https://github.com/ClickHouse/ClickHouse/pull/92995) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió un error lógico en un caso poco frecuente en el que se usó una tupla vacía con una columna `Map`. [#93814](https://github.com/ClickHouse/ClickHouse/pull/93814) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió el fallo en las consultas que usaban segmentación por PK con una condición falsa. [#92815](https://github.com/ClickHouse/ClickHouse/pull/92815) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Se corrigió la planificación de consultas del motor de tabla `Merge`, que provocaba `ILLEGAL_COLUMN` para `hostName()` al fusionar tablas locales y remotas/Distributed. [#93286](https://github.com/ClickHouse/ClickHouse/pull/93286) ([Jinlin](https://github.com/withlin)).
  * Se corrigió el error `NO_SUCH_COLUMN_IN_TABLE` en el motor `Merge` al usar tablas con alias. [#92910](https://github.com/ClickHouse/ClickHouse/pull/92910) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió la consulta `SELECT` con un predicado sobre varias columnas, con índices de omisión con filtro bloom y condiciones `OR` y `NOT`, que devolvía resultados inconsistentes. [#94026](https://github.com/ClickHouse/ClickHouse/pull/94026) ([Shankar Iyer](https://github.com/shankar-iyer)).
  * Se corrigió un problema al aplicar la proyección cuando el filtro contenía subcolumnas. [#93141](https://github.com/ClickHouse/ClickHouse/pull/93141) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió la corrupción de `_part_offset` al reconstruir las proyecciones durante los merges y se optimizó el procesamiento de proyecciones al evitar lecturas innecesarias. [#93827](https://github.com/ClickHouse/ClickHouse/pull/93827) ([Amos Bird](https://github.com/amosbird)).
  * Se evitó que distintas columnas interpoladas se fusionaran en una misma columna dentro de un bloque cuando, en la práctica, eran alias de la misma columna. [#93197](https://github.com/ClickHouse/ClickHouse/pull/93197) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
  * Se eliminaron las columnas no utilizadas cuando se reconstruyó la proyección durante la fusión, lo que redujo el uso de memoria y generó menos partes temporales. [#93233](https://github.com/ClickHouse/ClickHouse/pull/93233) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * Se corrigió un error lógico que se producía 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 lógico que se producía en algunos casos al usar valores fraccionarios de `LIMIT/OFFSET` en consultas distribuidas. [#96475](https://github.com/ClickHouse/ClickHouse/pull/96475) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió la función `IN`, que devolvía resultados incorrectos con valores `NULL` cuando `transform_null_in` estaba habilitado. [#95674](https://github.com/ClickHouse/ClickHouse/pull/95674) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió el fallo de `IN (col)` al usar una sola referencia de columna, que producía el error `UNSUPPORTED_METHOD`. [#97646](https://github.com/ClickHouse/ClickHouse/pull/97646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la reescritura de `optimize_syntax_fuse_functions` para convertir `sum`/`count`/`avg` en `sumCount()` cuando el argumento de agregación era `LowCardinality(Nullable)`. [#96239](https://github.com/ClickHouse/ClickHouse/pull/96239) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió la poda incorrecta de particiones para las funciones `not IN` y `not has`. [#96241](https://github.com/ClickHouse/ClickHouse/pull/96241) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió un error en el filtro prewhere causado por expresiones lambda en prewhere. [#95395](https://github.com/ClickHouse/ClickHouse/pull/95395) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
  * Se corrigió `LOGICAL_ERROR` en el analizador de consultas cuando se pasaba una expresión lambda donde se esperaba un valor concreto. [#96892](https://github.com/ClickHouse/ClickHouse/pull/96892) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió 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)).
  * Se corrigió un problema por el que `SETTINGS` por subconsulta no se aplicaba a 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 colisión de hash en la caché de condiciones de consulta para constantes de CTE plegadas, que podía provocar resultados incorrectos en la consulta. [#96172](https://github.com/ClickHouse/ClickHouse/pull/96172) ([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 función de tabla `merge()` con el analizador habilitado. [#97551](https://github.com/ClickHouse/ClickHouse/pull/97551) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un problema por el que `EXCEPT ALL` y `INTERSECT ALL` ignoraban 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 corrigió un fallo de aserción en `WindowTransform` con un offset `PRECEDING` grande. [#96026](https://github.com/ClickHouse/ClickHouse/pull/96026) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se solucionó una excepción 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)).
  * Se corrigió la interacción entre `GROUPING SETS`, `group_by_use_nulls` y `Tuple` con `LowCardinality`, que producía una estructura de bloque inesperada. [#96358](https://github.com/ClickHouse/ClickHouse/pull/96358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un error lógico al usar `GROUP BY ... WITH ROLLUP/CUBE` cuando las claves incluían `LowCardinality(Nullable(...))` dentro de `Nullable(Tuple(...))`. [#97647](https://github.com/ClickHouse/ClickHouse/pull/97647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un error de aserción en `IfTransformStringsToEnumPass` cuando `if` o `transform` devolvía `Nullable(String)`. [#97002](https://github.com/ClickHouse/ClickHouse/pull/97002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió `ACCESS_DENIED` para los usuarios sin permiso para `CREATE TEMPORARY TABLE` cuando `optimize_inverse_dictionary_lookup` reescribía los predicados `dictGet(...)`. [#97484](https://github.com/ClickHouse/ClickHouse/pull/97484) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió una incompatibilidad de tipos en la función `if` entre `UInt64` e `Int32` en un caso inusual de consultas distribuidas con PREWHERE e inferencia de tipos. [#96012](https://github.com/ClickHouse/ClickHouse/pull/96012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigieron las consultas compiladas con JIT que involucraban valores de tipo `Bool`. [#96013](https://github.com/ClickHouse/ClickHouse/pull/96013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigieron resultados incorrectos cuando las expresiones compiladas con JIT convertían `DateTime` a `DateTime64` (p. ej., en `CASE`/`if`/`multiIf` con distintos tipos `DateTime`). [#96879](https://github.com/ClickHouse/ClickHouse/pull/96879) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió el uso de valores no inicializados en `formatDateTime` con especificadores de formato de ancho variable. [#96133](https://github.com/ClickHouse/ClickHouse/pull/96133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se solucionó `std::terminate` en `indexOfAssumeSorted` al llamarse con tipos incompatibles. [#96877](https://github.com/ClickHouse/ClickHouse/pull/96877) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Las funciones de Geometry ahora aceptan subtipos de geometría individuales, además del tipo Variant `Geometry`. [#97571](https://github.com/ClickHouse/ClickHouse/pull/97571) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigieron los casos en que los índices afectaban a los resultados de las consultas con row policy/PREWHERE y FINAL. [#97076](https://github.com/ClickHouse/ClickHouse/pull/97076) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Se permitió que la optimización `read-in-order` utilizara políticas de filas. [#97538](https://github.com/ClickHouse/ClickHouse/pull/97538) ([Janos Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Se corrigió `LOGICAL_ERROR` al usar columnas indexadas por texto con la cláusula `QUALIFY`. [#97313](https://github.com/ClickHouse/ClickHouse/pull/97313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un posible cierre inesperado cuando la cláusula `WHERE` contenía más de 32 expresiones con `AND`/`OR`. [#97698](https://github.com/ClickHouse/ClickHouse/pull/97698) ([Shankar Iyer](https://github.com/shankar-iyer)).
  * Se corrigió la incompatibilidad en la estructura de bloques en la optimización `removeUnusedColumns` al usar `indexHint` con expansión de asterisco en tablas con `FINAL`. [#97622](https://github.com/ClickHouse/ClickHouse/pull/97622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió una inconsistencia de round-trip en el formateo del AST para literales de tupla con alias entre paréntesis. [#97418](https://github.com/ClickHouse/ClickHouse/pull/97418) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la inconsistencia en el formato del AST para `NOT (1, 1, 1)`. [#97653](https://github.com/ClickHouse/ClickHouse/pull/97653) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### Correcciones de MergeTree y almacenamiento

  * Ahora, en MergeTree, los nombres de archivo siempre se reemplazan por hash si el sistema de archivos no distingue entre mayúsculas y minúsculas. Anteriormente, en macOS, esto podía provocar corrupción de datos cuando los nombres de columna/subcolumna solo se diferenciaban por el uso de mayúsculas y minúsculas. [#86559](https://github.com/ClickHouse/ClickHouse/pull/86559) ([Pavel Kruglov](https://github.com/Avogar)).
  * Las vistas materializadas ahora usan la base de datos en la que se crearon como contexto de ejecución, lo que permite omitir la especificación explícita de la base de datos en la consulta SELECT de la vista. [#88193](https://github.com/ClickHouse/ClickHouse/pull/88193) ([Dmitry Kovalev](https://github.com/dk-github)).
  * Se añadió una comprobación exhaustiva de permisos durante la fase de creación para la consulta subyacente dentro de una vista materializada. [#89180](https://github.com/ClickHouse/ClickHouse/pull/89180) ([pufit](https://github.com/pufit)).
  * Se corrigió un error lógico por el que una mutación sin transacción modificaba partes dentro de una transacción activa que se revertía. [#90469](https://github.com/ClickHouse/ClickHouse/pull/90469) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * Se corrigió un problema por el que `system.warnings` no se actualizaba correctamente 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)).
  * Se corrigió `LOGICAL_ERROR: Storage does not support transaction` al ejecutar `ATTACH AS REPLICATED`. [#91772](https://github.com/ClickHouse/ClickHouse/pull/91772) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * Se corrigió un posible error `FILE_DOESNT_EXIST` tras una mutación en una columna dispersa con `ratio_of_defaults_for_sparse_serialization=0.0`. [#92860](https://github.com/ClickHouse/ClickHouse/pull/92860) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió un posible error `FILE_DOESNT_EXIST` tras una mutación en una columna dispersa cuando `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 corrigió un posible uso de partes obsoletas debido a una condición de carrera TOCTOU en las partes compartidas. [#93022](https://github.com/ClickHouse/ClickHouse/pull/93022) ([Azat Khuzhin](https://github.com/azat)).
  * Se heredó la información de serialización de las partes de origen durante la mutación en MergeTree, lo que corrige posibles resultados incorrectos en consultas sobre partes mutadas tras cambios en la serialización de tipos de datos. [#92419](https://github.com/ClickHouse/ClickHouse/pull/92419) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió un posible conflicto entre una columna y una subcolumna con el mismo nombre que provocaba una serialización incorrecta y errores en las consultas. [#92453](https://github.com/ClickHouse/ClickHouse/pull/92453) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió `NOT_FOUND_COLUMN_IN_BLOCK` al insertar en una tabla con una subcolumna en la expresión de partición. [#92905](https://github.com/ClickHouse/ClickHouse/pull/92905) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió la posible ausencia de una subcolumna en MV al modificar la tabla de origen. [#93276](https://github.com/ClickHouse/ClickHouse/pull/93276) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió `LOGICAL_ERROR` al restaurar `ReplicatedMergeTree` con una condición de carrera durante la deduplicación. [#93612](https://github.com/ClickHouse/ClickHouse/pull/93612) ([Pablo Marcos](https://github.com/pamarcos)).
  * Se corrigió el uso de una columna dispersa en la actualización de TTL durante la deserialización directa, evitando el error `Unexpected type of result TTL column`. [#93619](https://github.com/ClickHouse/ClickHouse/pull/93619) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se restauraron los wrappers de `LowCardinality` en los resultados de expresiones SET cuando fue necesario durante la agregación TTL. [#92971](https://github.com/ClickHouse/ClickHouse/pull/92971) ([Seva Potapov](https://github.com/seva-potapov)).
  * Se solucionó `Cannot add action to empty ExpressionActionsChain` para `ALTER TABLE REWRITE PARTS`. [#92754](https://github.com/ClickHouse/ClickHouse/pull/92754) ([Azat Khuzhin](https://github.com/azat)).
  * Se corrigió la sustitución de parámetros de consulta en los métodos de autenticación de `CREATE USER` al usar `ON CLUSTER`. [#92777](https://github.com/ClickHouse/ClickHouse/pull/92777) ([xiaohuanlin](https://github.com/xiaohuanlin)).
  * Ya no intenta eliminar directorios temporales al iniciar si una tabla MergeTree está en un disco de solo lectura. [#92748](https://github.com/ClickHouse/ClickHouse/pull/92748) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la materialización de los índices de omisión creados sobre subcolumnas. [#93708](https://github.com/ClickHouse/ClickHouse/pull/93708) ([Anton Popov](https://github.com/CurtizJ)).
  * Se corrigió `CLEAR COLUMN` con índices dependientes. [#94057](https://github.com/ClickHouse/ClickHouse/pull/94057) ([Raúl Marín](https://github.com/Algunenano)).
  * Se corrigió el ATTACH de bases de datos Replicated cuando el host interserver cambiaba tras reiniciar. [#93779](https://github.com/ClickHouse/ClickHouse/pull/93779) ([Tuan Pham Anh](https://github.com/tuanpach)).
  * Se corrigió un error lógico relacionado con `CREATE TABLE ... AS urlCluster()` y el motor de base de datos `Replicated`. [#92418](https://github.com/ClickHouse/ClickHouse/pull/92418) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigió una condición de carrera entre `REPLACE PARTITION` y las mutaciones en segundo plano, lo que podía hacer que fueran visibles tanto los datos antiguos como los nuevos. [#96955](https://github.com/ClickHouse/ClickHouse/pull/96955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la condición de carrera restante entre `REPLACE PARTITION` y las mutaciones en segundo plano 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)).
  * Se corrigieron las mutaciones atascadas cuando `PartCheckThread` volvió a poner en cola un `GET_PART` para una parte ya mutada. [#97162](https://github.com/ClickHouse/ClickHouse/pull/97162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió el error por el que `ALTER TABLE DROP COLUMN` fallaba después de que se hubiera realizado previamente una actualización ligera en la misma columna. [#96861](https://github.com/ClickHouse/ClickHouse/pull/96861) ([Anton Popov](https://github.com/CurtizJ)).
  * Se corrigió una desreferenciación de puntero nulo al aplicar patch parts durante las actualizaciones ligeras. [#97583](https://github.com/ClickHouse/ClickHouse/pull/97583) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Las partes con proyecciones desconocidas ya no se marcan como perdidas de forma permanente. [#95952](https://github.com/ClickHouse/ClickHouse/pull/95952) ([Mikhail Artemenko](https://github.com/Michicosun)).
  * Se corrigió 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)).
  * Se corrigió 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)).
  * Se corrigieron los índices implícitos con columnas alias y se añadió una validación exhaustiva antes de crearlos. [#97115](https://github.com/ClickHouse/ClickHouse/pull/97115) ([Raúl Marín](https://github.com/Algunenano)).
  * Se corrigió que `min(timestamp)` devolviera la época Unix (`1970-01-01`) mediante `_minmax_count_projection` tras una fusión de TTL cuando todas las filas se habían filtrado. [#96703](https://github.com/ClickHouse/ClickHouse/pull/96703) ([Raquel Barbadillo](https://github.com/rbarbadillo)).
  * Se corrigió un problema en la combinación de `use_const_adaptive_granularity` y `index_granularity_bytes` (granularidad no adaptativa) que provocaba un cálculo incorrecto. [#96143](https://github.com/ClickHouse/ClickHouse/pull/96143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la excepción `Number of rows in lazy chunk does not match number of offsets` al leer tablas con granularidad no adaptativa del índice usando `ORDER BY ... LIMIT`. [#97270](https://github.com/ClickHouse/ClickHouse/pull/97270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió una regresión en la replicación zero-copy por la que las partes compartidas podían eliminarse antes de que otras réplicas terminaran de descargarlas. [#95597](https://github.com/ClickHouse/ClickHouse/pull/95597) ([filimonov](https://github.com/filimonov)).
  * Se corrigió un problema por el que `SYSTEM RESTART REPLICA` podía hacer que se perdiera una tabla de la base de datos cuando la recreación de la tabla fallaba con una excepción no relacionada con ZooKeeper, lo que provocaba discrepancias en el digest de metadatos en `DatabaseReplicated`. [#97276](https://github.com/ClickHouse/ClickHouse/pull/97276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la excepción de `assert_cast` al generar estadísticas de columnas después de que `ALTER TABLE MODIFY COLUMN` cambiara el tipo de la columna. [#97027](https://github.com/ClickHouse/ClickHouse/pull/97027) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Cuando una tabla no tiene estadísticas definidas, ClickHouse deja de intentar cargarlas, lo que evita una sobrecarga innecesaria. [#96233](https://github.com/ClickHouse/ClickHouse/pull/96233) ([Han Fei](https://github.com/hanfei1991)).
  * Se corrigió el fallo lógico `There was an error: Cannot obtain error message` al esperar un DDL distribuido y eliminar de forma concurrente la base de datos Replicated. [#95664](https://github.com/ClickHouse/ClickHouse/pull/95664) ([Alexander Tokmakov](https://github.com/tavplubix)).
  * Se corrigió un error lógico en `KeyCondition` cuando una tabla tenía una clave primaria Nullable y la consulta utilizaba `coalesce` con un primer argumento constante. [#96340](https://github.com/ClickHouse/ClickHouse/pull/96340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### Correcciones de tipos de datos y serialización

  * Se corrigió un posible error al leer la subcolumna de tamaño de los tipos Dynamic/JSON. [#95573](https://github.com/ClickHouse/ClickHouse/pull/95573) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió un fallo al aplicar `tupleElement` a arrays de JSON. [#95647](https://github.com/ClickHouse/ClickHouse/pull/95647) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió la ejecución de `tupleElement` sobre JSON con rutas anidadas que devolvía resultados incorrectos. [#95907](https://github.com/ClickHouse/ClickHouse/pull/95907) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió un problema en `tupleElement` que provocaba una excepción con JSON en rutas con indicaciones de tipo. [#97728](https://github.com/ClickHouse/ClickHouse/pull/97728) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió el manejo de las rutas omitidas en el tipo de datos JSON: anteriormente, `JSON(SKIP path)` omitía todas las claves con el prefijo `path` (incluso claves como `pathpath`), lo que podía provocar pérdida de datos. Ahora solo se omite la clave exacta. [#95948](https://github.com/ClickHouse/ClickHouse/pull/95948) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió un problema al aplicar `type_json_allow_duplicated_key_with_literal_and_nested_object` a las rutas tipadas en JSON. [#97422](https://github.com/ClickHouse/ClickHouse/pull/97422) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió la comprobación de rutas tipadas incompatibles en el tipo JSON. [#92539](https://github.com/ClickHouse/ClickHouse/pull/92539) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió la creación de la indicación de tipo para la ruta 'skip' en JSON. [#92842](https://github.com/ClickHouse/ClickHouse/pull/92842) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió la resolución dinámica de subcolumnas en los alias de columna del analizador. [#92583](https://github.com/ClickHouse/ClickHouse/pull/92583) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió el error `Nested columns sizes are inconsistent with local_discriminators` debido a una optimización incorrecta del filtrado in-place para columnas de tipo Variant. [#96410](https://github.com/ClickHouse/ClickHouse/pull/96410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un fallo en `ifNull` al usar un argumento `Variant` en `GROUP BY`. [#96790](https://github.com/ClickHouse/ClickHouse/pull/96790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un error lógico en `FunctionVariantAdaptor` relacionado con funciones que requieren argumentos constantes, como `arrayROCAUC`. [#97116](https://github.com/ClickHouse/ClickHouse/pull/97116) ([Bharat Nallan](https://github.com/bharatnc)).
  * Se corrigió `LOGICAL_ERROR` en `FunctionVariantAdaptor` cuando una función devolvía el tipo `Nothing`. [#97213](https://github.com/ClickHouse/ClickHouse/pull/97213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió una excepción lógica al comparar NULL con una columna de tipo Variant que contiene tipos LowCardinality. [#97379](https://github.com/ClickHouse/ClickHouse/pull/97379) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió `LOGICAL_ERROR` en `concat` cuando un argumento incluía un tipo `Variant` con `LowCardinality` dentro. [#97654](https://github.com/ClickHouse/ClickHouse/pull/97654) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigieron resultados incorrectos cuando las columnas `LowCardinality` se convertían a `Nullable`. [#96483](https://github.com/ClickHouse/ClickHouse/pull/96483) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Se corrigió el manejo de los tipos `LowCardinality Nullable` en `CAST` cuando `cast_keep_nullable` estaba habilitado. [#95747](https://github.com/ClickHouse/ClickHouse/pull/95747) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la excepción `ColumnNullable is not compatible with original` al convertir tipos anidados complejos. [#96924](https://github.com/ClickHouse/ClickHouse/pull/96924) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió `LOGICAL_ERROR` al usar `isNull`/`isNotNull` en las subcolumnas de tipos `Nullable(Tuple(... Nullable(T) ...))`. [#97582](https://github.com/ClickHouse/ClickHouse/pull/97582) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió `LOGICAL_ERROR` en la conversión de Array a `QBit`. [#97413](https://github.com/ClickHouse/ClickHouse/pull/97413) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió `LOGICAL_ERROR` al leer conjuntamente una columna dispersa y su subcolumna. [#97515](https://github.com/ClickHouse/ClickHouse/pull/97515) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió `LOGICAL_ERROR` al leer la subcolumna `.size` de un `Nullable(String)` disperso dentro de una Tuple con PREWHERE. [#97264](https://github.com/ClickHouse/ClickHouse/pull/97264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un error de aserción en `Set` y `MergeTreeIndexSet` al procesar columnas con subcolumnas internas dispersas. [#97493](https://github.com/ClickHouse/ClickHouse/pull/97493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un posible error `SIZES_OF_COLUMNS_DOESNT_MATCH` al ordenar una columna de tupla vacía. [#92520](https://github.com/ClickHouse/ClickHouse/pull/92520) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigieron 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)).
  * Se corrigió un error de aserción al leer un archivo Parquet cuando una parte de una expresión `prewhere` se utilizaba en otra parte de la consulta. [#90635](https://github.com/ClickHouse/ClickHouse/pull/90635) ([Max Kainov](https://github.com/maxknv)).
  * Se corrigió `LOGICAL_ERROR` en el lector nativo de Parquet V3 cuando la columna del filtro PREWHERE contenía valores UInt8 no booleanos. [#96594](https://github.com/ClickHouse/ClickHouse/pull/96594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la inferencia de esquema de Parquet en el lector anterior cuando una columna JSON estaba después de una columna Tuple. [#92867](https://github.com/ClickHouse/ClickHouse/pull/92867) ([Michael Kolupaev](https://github.com/al13n321)).
  * Se corrigió un problema por el que el esquema se almacenaba en caché para todos los archivos en lugar de solo para el archivo inferido durante la inferencia de esquema con glob. [#92006](https://github.com/ClickHouse/ClickHouse/pull/92006) ([Pavel Kruglov](https://github.com/Avogar)).
  * Se corrigió la lectura del formato `ProtobufList` desde archivos vacíos, que producía registros fantasma en tablas vacías. [#96007](https://github.com/ClickHouse/ClickHouse/pull/96007) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió una regresión en el códec `Gorilla` cuando un tamaño especificado explícitamente no coincidía con el tamaño del tipo de datos. [#96118](https://github.com/ClickHouse/ClickHouse/pull/96118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * El motor PostgreSQL ahora puede leer correctamente `BOOLEAN[]`. [#96006](https://github.com/ClickHouse/ClickHouse/pull/96006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un error lógico al leer una columna UUID a partir de una columna TEXT de SQLite. [#96016](https://github.com/ClickHouse/ClickHouse/pull/96016) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la conversión de tipos en el motor SQLite para `DateTime`, `Date`, `UUID` y otros tipos. [#96017](https://github.com/ClickHouse/ClickHouse/pull/96017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió el problema por el que los valores `FixedString` se escapaban incorrectamente en las consultas a SQLite y PostgreSQL. [#96019](https://github.com/ClickHouse/ClickHouse/pull/96019) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se agregó la configuración `input_format_numbers_enum_on_conversion_error` para la conversión de Numbers a Enums. [#56240](https://github.com/ClickHouse/ClickHouse/pull/56240) ([Nikolay Degterinsky](https://github.com/evillique)).

  ### Correcciones de text index y skip index

  * La creación y materialización de índices de texto en tablas con partes de más de 4.294.967.295 filas se ha deshabilitado temporalmente para evitar resultados incorrectos en las consultas. [#92644](https://github.com/ClickHouse/ClickHouse/pull/92644) ([Anton Popov](https://github.com/CurtizJ)).
  * Se corrigieron varios bloqueos 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 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 corrigió el análisis de índices de texto en columnas de tipo array cuando el índice no contenía ningún token. [#93457](https://github.com/ClickHouse/ClickHouse/pull/93457) ([Anton Popov](https://github.com/CurtizJ)).
  * Se corrigió la recreació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ó la lectura directa desde el índice de texto para consultas de búsqueda duplicadas. [#93516](https://github.com/ClickHouse/ClickHouse/pull/93516) ([Anton Popov](https://github.com/CurtizJ)).
  * Se corrigieron inconsistencias en el análisis del índice de texto para las funciones `has`, `mapContainsKey` y `mapContainsValue`, que podían devolver resultados diferentes según se utilizara o no un índice de texto. [#93578](https://github.com/ClickHouse/ClickHouse/pull/93578) ([Anton Popov](https://github.com/CurtizJ)).
  * Se corrigió el cálculo de los tamaños sin comprimir de los índices de texto en `system.parts`. [#92832](https://github.com/ClickHouse/ClickHouse/pull/92832) ([Anton Popov](https://github.com/CurtizJ)).
  * Se corrigieron los índices `ngrambf_v1` con longitud de ngram > 8 que provocaban una excepción. [#92672](https://github.com/ClickHouse/ClickHouse/pull/92672) ([Robert Schulze](https://github.com/rschu1ze)).
  * Se corrigió un problema en el índice `ngram_bf` con datos no UTF-8 que provocaba una lectura de memoria no inicializada. [#93663](https://github.com/ClickHouse/ClickHouse/pull/93663) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió `stack-use-after-scope` en el índice de similitud de vectores. [#96259](https://github.com/ClickHouse/ClickHouse/pull/96259) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un error lógico por el que una expresión de índice de omisión producía una columna constante. [#96880](https://github.com/ClickHouse/ClickHouse/pull/96880) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió la creación de una tabla con una expresión vacía `()` como índice, que provocaba un acceso inválido a memoria. [#96363](https://github.com/ClickHouse/ClickHouse/pull/96363) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un error de use-after-free en el análisis de índices con `use_primary_key` deshabilitado y un número muy elevado de disyunciones. [#96112](https://github.com/ClickHouse/ClickHouse/pull/96112) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió el uso del índice primario en las actualizaciones ligeras con subconsultas en la cláusula `IN` de `WHERE`. [#92838](https://github.com/ClickHouse/ClickHouse/pull/92838) ([Anton Popov](https://github.com/CurtizJ)).
  * Se utilizó 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)).

  ### Correcciones en el lago de datos

  * Se corrigió un fallo en un clúster de un solo nodo al leer desde Iceberg en modo split-by-buckets. [#91553](https://github.com/ClickHouse/ClickHouse/pull/91553) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Se corrigió la tupla de ORDER BY en Iceberg. [#93225](https://github.com/ClickHouse/ClickHouse/pull/93225) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Se corrigió la compatibilidad con las credenciales proporcionadas por Azure ADLS Gen2 en DataLakeCatalog: se interpretan las claves `adls.sas-token.*` de los catálogos REST de Iceberg y se corrige el análisis de las URL ABFSS. [#93477](https://github.com/ClickHouse/ClickHouse/pull/93477) ([Karun Anantharaman](https://github.com/karunmotorq)).
  * Se sustituyó `Date` por `Date32` en Iceberg. [#95322](https://github.com/ClickHouse/ClickHouse/pull/95322) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Se corrigió un fallo relacionado con ORDER BY en Iceberg. [#96484](https://github.com/ClickHouse/ClickHouse/pull/96484) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Se corrigió el particionado de Iceberg. [#96620](https://github.com/ClickHouse/ClickHouse/pull/96620) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Se corrigieron los límites incorrectos de los archivos de datos cuando la referencia de eliminación por posición era nula en las entradas del manifiesto de Iceberg. [#96061](https://github.com/ClickHouse/ClickHouse/pull/96061) ([Daniil Ivanik](https://github.com/divanik)).
  * Se añadieron más comprobaciones para validar la configuración del archivo de metadatos raíz en Iceberg. [#96754](https://github.com/ClickHouse/ClickHouse/pull/96754) ([Daniil Ivanik](https://github.com/divanik)).
  * Las credenciales ya no quedan registradas en los catálogos Iceberg. [#96831](https://github.com/ClickHouse/ClickHouse/pull/96831) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Se corrigió la compactación de los datos particionados de Delta Lake. [#95773](https://github.com/ClickHouse/ClickHouse/pull/95773) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigió el catálogo RESTful de data lake con un `auth_header` no válido que provocaba fallos en `system.tables`. [#96680](https://github.com/ClickHouse/ClickHouse/pull/96680) ([Han Fei](https://github.com/hanfei1991)).

  ### Correcciones de S3/Azure/almacenamiento de objetos

  * Se corrigió el almacenamiento en caché de la clave de partición en el motor de tabla S3 cuando había funciones no deterministas. [#92844](https://github.com/ClickHouse/ClickHouse/pull/92844) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Se corrigió un fallo de aserción en `ReadBufferFromS3` que ocurría cuando la caché estaba habilitada. [#93809](https://github.com/ClickHouse/ClickHouse/pull/93809) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se solucionó un posible error en el hilo de limpieza de DiskObjectStorage. [#87411](https://github.com/ClickHouse/ClickHouse/pull/87411) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se solucionaron posibles interbloqueos en `DiskObjectStorageTransaction`. [#93810](https://github.com/ClickHouse/ClickHouse/pull/93810) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigieron posibles fallos del hilo de limpieza de DiskObjectStorage cuando se acumulaban muchos errores. [#94048](https://github.com/ClickHouse/ClickHouse/pull/94048) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigió una condición de carrera en `copyS3File` relacionada con multipart\_tags. [#97227](https://github.com/ClickHouse/ClickHouse/pull/97227) ([Azat Khuzhin](https://github.com/azat)).
  * Ejecutar una mutación `ALTER UPDATE` no válida en tablas tipo archivo sobre almacenamiento de objetos (S3, Azure) ya no provocaba una desreferenciación de `nullptr`. [#96162](https://github.com/ClickHouse/ClickHouse/pull/96162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### Correcciones de S3Queue

  * Se solucionó el error `Failed to set file processing within 100 retries` en el modo ordenado de S3Queue (ahora es una advertencia). [#92814](https://github.com/ClickHouse/ClickHouse/pull/92814) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigió un fallo en la configuración de S3Queue `s3queue_migrate_old_metadata_to_buckets`. [#93232](https://github.com/ClickHouse/ClickHouse/pull/93232) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigieron los metadatos de los motores S3Queue/AzureQueue. [#90498](https://github.com/ClickHouse/ClickHouse/pull/90498) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigió una condición de carrera en el almacenamiento S3Queue/AzureQueue. [#95385](https://github.com/ClickHouse/ClickHouse/pull/95385) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigió la deduplicación de la ingesta en streaming desde el motor S3Queue/AzureQueue. [#95467](https://github.com/ClickHouse/ClickHouse/pull/95467) ([Kseniia Sumarokova](https://github.com/kssenii)).

  ### Correcciones de seguridad y control de acceso

  * Se corrigió la comprobación de acceso que faltaba en `SYSTEM SYNC FILE CACHE`. [#92372](https://github.com/ClickHouse/ClickHouse/pull/92372) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Se corrigió una lógica incorrecta en las comprobaciones de grants de acceso para los grants con comodines, que resultaba demasiado restrictiva. [#92725](https://github.com/ClickHouse/ClickHouse/pull/92725) ([pufit](https://github.com/pufit)).
  * Se evitó que los usuarios obtuvieran la lista de columnas de una tabla sin el permiso `SHOW COLUMNS` al usar el motor de tabla `merge`. [#93695](https://github.com/ClickHouse/ClickHouse/pull/93695) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * 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. [#93426](https://github.com/ClickHouse/ClickHouse/pull/93426) ([Raufs Dunamalijevs](https://github.com/rienath)).
  * Se validó que el tamaño del búfer descomprimido fuera el esperado. [#93690](https://github.com/ClickHouse/ClickHouse/pull/93690) ([Raúl Marín](https://github.com/Algunenano)).
  * Se corrigió la revocación de roles predeterminados. [#96103](https://github.com/ClickHouse/ClickHouse/pull/96103) ([Vitaly Baranov](https://github.com/vitlibar)).
  * 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 actualización de las políticas de filas asignadas al usuario inicial en las consultas distribuidas. [#95469](https://github.com/ClickHouse/ClickHouse/pull/95469) ([Vitaly Baranov](https://github.com/vitlibar)).
  * El argumento `password` de la función de tabla `redis` ahora aparece enmascarado en los logs y las tablas del sistema. [#95325](https://github.com/ClickHouse/ClickHouse/pull/95325) ([Janos Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Se solucionó una fuga de memoria en los objetos BIO al leer certificados X509. [#96885](https://github.com/ClickHouse/ClickHouse/pull/96885) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se validó la versión witness en Bech32 para evitar un desbordamiento de búfer. [#96671](https://github.com/ClickHouse/ClickHouse/pull/96671) ([Raúl Marín](https://github.com/Algunenano)).
  * Se corrigió la lentitud al consultar tablas del sistema con un usuario que tenía permisos limitados en muchas bases de datos. [#95874](https://github.com/ClickHouse/ClickHouse/pull/95874) ([pufit](https://github.com/pufit)).

  ### Correcciones de backup y restauración

  * Se corrigió el error `Couldn't pack tar archive: Failed to write all bytes`, causado por un encabezado de tamaño incorrecto para una entrada del archivo. [#92122](https://github.com/ClickHouse/ClickHouse/pull/92122) ([Julia Kartseva](https://github.com/jkartseva)).
  * Se corrigió una caída del servidor cuando muchas copias de seguridad simultáneas entraban en conflicto al usar los mismos archivos. [#93659](https://github.com/ClickHouse/ClickHouse/pull/93659) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió el desbordamiento de pila al crear copias de seguridad basadas en archivos comprimidos (`.zip`, `.tzst`) en un disco de almacenamiento de objetos `plain_rewritable`. [#96872](https://github.com/ClickHouse/ClickHouse/pull/96872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió una caída del servidor cuando la copia de seguridad fallaba debido a un disco lleno u otros errores de E/S. [#96873](https://github.com/ClickHouse/ClickHouse/pull/96873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un fallo de segmentación en la copia de seguridad de `StorageKeeperMap` debido a un error de uso tras liberar memoria. [#97336](https://github.com/ClickHouse/ClickHouse/pull/97336) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

  ### Correcciones de fallos y estabilidad

  * Se corrigió un fallo al leer de una `Connection` desconectada. [#92807](https://github.com/ClickHouse/ClickHouse/pull/92807) ([Raufs Dunamalijevs](https://github.com/rienath)).
  * Se corrigió un posible bloqueo al usar la función `tokens()` con un segundo argumento NULL. [#92586](https://github.com/ClickHouse/ClickHouse/pull/92586) ([Raúl Marín](https://github.com/Algunenano)).
  * Se corrigió un bloqueo del servidor cuando se llamaba a `tokens` con parámetros no constantes del tokenizador. [#93383](https://github.com/ClickHouse/ClickHouse/pull/93383) ([Robert Schulze](https://github.com/rschu1ze)).
  * Se corrigió un posible bloqueo causado por la mutación in situ de las columnas const subyacentes de PREWHERE durante la reducción o el filtrado concurrentes de columnas. [#92588](https://github.com/ClickHouse/ClickHouse/pull/92588) ([Arsen Muk](https://github.com/arsenmuk)).
  * Se corrigió un posible bloqueo al finalizar el pool de programación en segundo plano, que podía hacer que el servidor se bloqueara al apagarse. [#93008](https://github.com/ClickHouse/ClickHouse/pull/93008) ([Azat Khuzhin](https://github.com/azat)).
  * Se corrigió un problema por el que las conexiones quedaban 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)).
  * Se corrigió un posible `Cannot finalize buffer after cancellation` en `estimateCompressionRatio()`. [#93068](https://github.com/ClickHouse/ClickHouse/pull/93068) ([Azat Khuzhin](https://github.com/azat)).
  * Se aseguró que ZooKeeper se finalizara al apagarse para corregir posibles bloqueos. [#93602](https://github.com/ClickHouse/ClickHouse/pull/93602) ([Azat Khuzhin](https://github.com/azat)).
  * Se corrigió una excepción no capturada durante la recarga en segundo plano de named collections con almacenamiento en ZooKeeper. [#92717](https://github.com/ClickHouse/ClickHouse/pull/92717) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * 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)).
  * Se corrigió un problema por el que el tamaño del búfer de `TraceSender` no se actualizaba, lo que provocaba flushes intercalados de distintos hilos. [#93966](https://github.com/ClickHouse/ClickHouse/pull/93966) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Se almacenaron en `QueryPipeline` punteros compartidos a `IStorage` 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 corrigió un posible bloqueo en las consultas distribuidas en caso de cancelación. [#95466](https://github.com/ClickHouse/ClickHouse/pull/95466) ([Aleksandr Musorin](https://github.com/AVMusorin)).
  * Se corrigió un fallo en `DROP WORKLOAD` cuando se ejecutaba de forma concurrente con consultas. [#95856](https://github.com/ClickHouse/ClickHouse/pull/95856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió una condición de carrera de datos en `DROP WORKLOAD`. [#96614](https://github.com/ClickHouse/ClickHouse/pull/96614) ([Sergei Trifonov](https://github.com/serxa)).
  * Se corrigieron varios fallos críticos relacionados con el uso de `ThreadPoolCallbackRunnerLocal`. [#95818](https://github.com/ClickHouse/ClickHouse/pull/95818) ([Raúl Marín](https://github.com/Algunenano)).
  * Se corrigió un posible interbloqueo en `ProcessList` debido a una inversión de bloqueos cuando se activó el overcommit tracker de memoria. [#96182](https://github.com/ClickHouse/ClickHouse/pull/96182) ([Antonio Andelic](https://github.com/antonio2368)).
  * Se corrigió un livelock en el hilo de verificación de cancelación para consultas con un `max_execution_time` elevado. [#96450](https://github.com/ClickHouse/ClickHouse/pull/96450) ([Sergei Trifonov](https://github.com/serxa)).
  * Se corrigió el bloqueo del hilo de purga de MemoryWorker debido a una condición de carrera. [#96819](https://github.com/ClickHouse/ClickHouse/pull/96819) ([Antonio Andelic](https://github.com/antonio2368)).
  * Se corrigió un bloqueo en `clearCaches` causado por la destrucción prematura de instantáneas de almacenamiento almacenadas en caché. [#96995](https://github.com/ClickHouse/ClickHouse/pull/96995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * 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)).
  * Se corrigió un posible error de tipo use-after-free en `StorageKafka2`. [#97520](https://github.com/ClickHouse/ClickHouse/pull/97520) ([Bharat Nallan](https://github.com/bharatnc)).
  * Se corrigió una condición de carrera en `shutdown_called` de `DatabaseMaterializedPostgreSQL`. [#97554](https://github.com/ClickHouse/ClickHouse/pull/97554) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió una condición de carrera en la carga paralela del Diccionario `HASHED` por segmentos, que podía provocar que no se cargaran algunas filas. [#96953](https://github.com/ClickHouse/ClickHouse/pull/96953) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un interbloqueo en los diccionarios cuando un diccionario hacía referencia a una tabla Merge que, a su vez, hacía referencia a él de forma recursiva. [#96120](https://github.com/ClickHouse/ClickHouse/pull/96120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se corrigió un acceso fuera de límites en `BaseSettings::readBinary` cuando un servidor más reciente enviaba un ajuste desconocido durante la deserialización del plan de consulta. [#97585](https://github.com/ClickHouse/ClickHouse/pull/97585) ([Michael Stetsyuk](https://github.com/mstetsyuk)).
  * Se corrigió un fallo al adjuntar una tabla a una base de datos `MaterializedPostgreSQL` cuando `dropReplicationSlot` lanzaba una excepción durante el desenrollado de la pila de llamadas. [#96871](https://github.com/ClickHouse/ClickHouse/pull/96871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Se liberó el flujo de solicitudes en insert select para evitar que se cerrara la conexión HTTP. [#92175](https://github.com/ClickHouse/ClickHouse/pull/92175) ([Sema Checherinda](https://github.com/CheSema)).
  * Se corrigió un interbloqueo al ejecutar `SHOW CREATE DATABASE` para la base de datos Backup. [#92541](https://github.com/ClickHouse/ClickHouse/pull/92541) ([Azat Khuzhin](https://github.com/azat)).

  ### Otras correcciones de errores

  * Se corrigió el manejo de arrays vacíos en `handleAllTokens` para las funciones `hasAllTokens` y `hasAnyTokens`. [#93328](https://github.com/ClickHouse/ClickHouse/pull/93328) ([Anton Popov](https://github.com/CurtizJ)).
  * Período fijo para los profilers globales: se utilizaba un valor truncado en lugar del valor configurado, lo que provocaba despertares más frecuentes. [#96048](https://github.com/ClickHouse/ClickHouse/pull/96048) ([Antonio Andelic](https://github.com/antonio2368)).
  * Se corrigió `event_date` en `system.asynchronous_metric_log`. [#95947](https://github.com/ClickHouse/ClickHouse/pull/95947) ([Raúl Marín](https://github.com/Algunenano)).
  * Se corrigió un problema por el que `system.functions` mostraba una cadena vacía en lugar de `categories = 'Internal'` para las funciones internas. [#97315](https://github.com/ClickHouse/ClickHouse/pull/97315) ([Robert Schulze](https://github.com/rschu1ze)).
  * Se corrigió un posible error de lógica en el diccionario `ip_trie` cuando el tipo de clave no era String. [#97555](https://github.com/ClickHouse/ClickHouse/pull/97555) ([Bharat Nallan](https://github.com/bharatnc)).
  * Se corrigió la depuración de UDF habilitando la captura de stderr en `system.query_log.exception`. [#92209](https://github.com/ClickHouse/ClickHouse/pull/92209) ([Xu Jia](https://github.com/XuJia0210)).
  * Se corrigió `filterPartsByVirtualColumns` para predicados siempre falsos. [#97620](https://github.com/ClickHouse/ClickHouse/pull/97620) ([Bharat Nallan](https://github.com/bharatnc)).
  * Se corrigió un problema por el que `ColumnConst` no se materializaba antes del squashing. [#97019](https://github.com/ClickHouse/ClickHouse/pull/97019) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
</Accordion>
