> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Registro de cambios de 2024

> Registro de cambios de 2024

<div id="table-of-contents">
  ### Tabla de contenidos
</div>

**[Lanzamiento de ClickHouse v24.12, 2024-12-19](/docs/es/resources/changelogs/oss/2024#a-id2412a-clickhouse-release-2412-2024-12-19)**<br />
**[Lanzamiento de ClickHouse v24.11, 2024-11-26](/docs/es/resources/changelogs/oss/2024#a-id2411a-clickhouse-release-2411-2024-11-26)**<br />
**[Lanzamiento de ClickHouse v24.10, 2024-10-31](/docs/es/resources/changelogs/oss/2024#a-id2410a-clickhouse-release-2410-2024-10-31)**<br />
**[Lanzamiento de ClickHouse v24.9, 2024-09-26](/docs/es/resources/changelogs/oss/2024#a-id249a-clickhouse-release-249-2024-09-26)**<br />
**[Lanzamiento de ClickHouse v24.8 LTS, 2024-08-20](/docs/es/resources/changelogs/oss/2024#a-id248a-clickhouse-release-248-lts-2024-08-20)**<br />
**[Lanzamiento de ClickHouse v24.7, 2024-07-30](/docs/es/resources/changelogs/oss/2024#a-id247a-clickhouse-release-247-2024-07-30)**<br />
**[Lanzamiento de ClickHouse v24.6, 2024-07-01](/docs/es/resources/changelogs/oss/2024#a-id246a-clickhouse-release-246-2024-07-01)**<br />
**[Lanzamiento de ClickHouse v24.5, 2024-05-30](/docs/es/resources/changelogs/oss/2024#a-id245a-clickhouse-release-245-2024-05-30)**<br />
**[Lanzamiento de ClickHouse v24.4, 2024-04-30](/docs/es/resources/changelogs/oss/2024#a-id244a-clickhouse-release-244-2024-04-30)**<br />
**[Lanzamiento de ClickHouse v24.3 LTS, 2024-03-26](/docs/es/resources/changelogs/oss/2024#a-id243a-clickhouse-release-243-lts-2024-03-27)**<br />
**[Lanzamiento de ClickHouse v24.2, 2024-02-29](/docs/es/resources/changelogs/oss/2024#a-id242a-clickhouse-release-242-2024-02-29)**<br />
**[Lanzamiento de ClickHouse v24.1, 2024-01-30](/docs/es/resources/changelogs/oss/2024#a-id241a-clickhouse-release-241-2024-01-30)**<br />
**[Registro de cambios de 2023](/docs/es/resources/changelogs/oss/2023)**<br />

### <a id="2412" /> Lanzamiento de ClickHouse 24.12, 2024-12-19. [Presentación](https://presentations.clickhouse.com/2024-release-24.12/), [Video](https://www.youtube.com/watch?v=bv-ut-Q6vnc)

<Frame>
  <iframe src="https://www.youtube.com/embed/bv-ut-Q6vnc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* Las funciones `greatest` y `least` ahora ignoran los valores de entrada NULL, mientras que antes devolvían NULL si alguno de los argumentos era NULL. Por ejemplo, `SELECT greatest(1, 2, NULL)` ahora devuelve 2. Esto hace que el comportamiento sea compatible con PostgreSQL, pero al mismo tiempo rompe la compatibilidad con MySQL, que devuelve NULL. Para conservar el comportamiento anterior, establezca la SETTING `least_greatest_legacy_null_behavior` (valor predeterminado: `false`) en `true`. [#65519](https://github.com/ClickHouse/ClickHouse/pull/65519) [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([kevinyhzou](https://github.com/KevinyhZou)).
* Una nueva integración de MongoDB pasa a ser la predeterminada. Los usuarios que prefieran usar el driver heredado de MongoDB (basado en el driver de Poco) pueden habilitar la SETTING del servidor `use_legacy_mongodb_integration`. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Kirill Nikiforov](https://github.com/allmazz).

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

* Los tipos `JSON`/`Dynamic`/`Variant` pasan de funcionalidades experimentales a beta. [#72294](https://github.com/ClickHouse/ClickHouse/pull/72294) ([Pavel Kruglov](https://github.com/Avogar)). También retroportamos todas las correcciones, además de este cambio, a 24.11.
* La evolución del schema para el formato de [almacenamiento de datos Iceberg](https://iceberg.apache.org/spec/#file-system-operations) ofrece al usuario amplias opciones para modificar el schema de su tabla. El orden de las columnas, los nombres de las columnas y las extensiones de tipos simples pueden cambiarse de forma interna. [#69445](https://github.com/ClickHouse/ClickHouse/pull/69445) ([Daniil Ivanik](https://github.com/divanik)).
* Integración con Iceberg REST Catalog: un nuevo motor de base de datos, llamado Iceberg, que integra todo el catálogo en ClickHouse. [#71542](https://github.com/ClickHouse/ClickHouse/pull/71542) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió una caché para el índice primario de las tablas `MergeTree` (se puede habilitar con la configuración de tabla `use_primary_key_cache`). Si la carga diferida y la caché están habilitadas para el índice primario, se cargará en la caché a demanda (de forma similar a la caché de marcas) en lugar de mantenerse en memoria indefinidamente. Se añadió el precalentamiento del índice primario en inserciones/fusiones/fetches de partes de datos y al reiniciar la tabla (se puede habilitar con la configuración `prewarm_primary_key_cache`). Esto permite reducir el uso de memoria en tablas enormes sobre almacenamiento compartido, y lo hemos probado en tablas con más de mil billones de registros. [#72102](https://github.com/ClickHouse/ClickHouse/pull/72102) ([Anton Popov](https://github.com/CurtizJ)). [#72750](https://github.com/ClickHouse/ClickHouse/pull/72750) ([Alexander Gololobov](https://github.com/davenger)).
* Implementar el comando `SYSTEM LOAD PRIMARY KEY` para cargar los índices primarios de todas las partes de una tabla determinada, o de todas las tablas si no se especifica ninguna. Esto será útil para benchmarks y para evitar latencia adicional durante la ejecución de consultas. [#66252](https://github.com/ClickHouse/ClickHouse/pull/66252) [#67733](https://github.com/ClickHouse/ClickHouse/pull/67733) ([ZAWA\_ll](https://github.com/Zawa-ll)).
* Se añadió una consulta que permite adjuntar tablas `MergeTree` como `ReplicatedMergeTree` y viceversa: `ATTACH TABLE ... AS REPLICATED` y `ATTACH TABLE ... AS NOT REPLICATED`. [#65401](https://github.com/ClickHouse/ClickHouse/pull/65401) ([Kirill](https://github.com/kirillgarbar)).
* Una nueva configuración, `http_response_headers`, que le permite personalizar los encabezados de la respuesta HTTP. Por ejemplo, puede indicarle al navegador que muestre una imagen almacenada en la base de datos. Esto resuelve [#59620](https://github.com/ClickHouse/ClickHouse/issues/59620). [#72656](https://github.com/ClickHouse/ClickHouse/pull/72656) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agrega la función `toUnixTimestamp64Second`, que convierte un `DateTime64` en un valor `Int64` con precisión fija de segundos, lo que permite devolver un valor negativo si la fecha es anterior a la época Unix. [#70597](https://github.com/ClickHouse/ClickHouse/pull/70597) ([zhanglistar](https://github.com/zhanglistar)). [#73146](https://github.com/ClickHouse/ClickHouse/pull/73146) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añade la nueva configuración `enforce_index_structure_match_on_partition_manipulation` para permitir ATTACH cuando el conjunto de proyecciones e índices secundarios de la tabla de origen sea un subconjunto del de la tabla de destino. Cierra [#70602](https://github.com/ClickHouse/ClickHouse/issues/70602). [#70603](https://github.com/ClickHouse/ClickHouse/pull/70603) ([zwy991114](https://github.com/zwy991114)).
* Se añade la sintaxis ALTER USER `{ADD|MODIFY|DROP SETTING}`, ALTER USER `{ADD|DROP PROFILE}` y lo mismo para ALTER ROLE y ALTER PROFILE. Así, en lugar de reemplazar toda la configuración, se puede modificar. [#72050](https://github.com/ClickHouse/ClickHouse/pull/72050) ([pufit](https://github.com/pufit)).
* Se añadió la función `arrayPRAUC`, que calcula el AUC (área bajo la curva) de la curva de precisión-recall. [#72073](https://github.com/ClickHouse/ClickHouse/pull/72073) ([Emmanuel](https://github.com/emmanuelsdias)).
* Se añade la función `indexOfAssumeSorted` para tipos Array. Optimiza la búsqueda cuando el array está ordenado en orden no decreciente. La mejora se aprecia en arrays muy grandes (más de 100.000 elementos). [#72517](https://github.com/ClickHouse/ClickHouse/pull/72517) ([Eric Kurbanov](https://github.com/erickurbanov)).
* Permite usar un delimitador como segundo argumento opcional en la función de agregación `groupConcat`. [#72540](https://github.com/ClickHouse/ClickHouse/pull/72540) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* La función `translate` ahora permite eliminar caracteres si el argumento `from` contiene más caracteres que el argumento `to`. Ejemplo: `SELECT translate('clickhouse', 'clickhouse', 'CLICK')` ahora devuelve `CLICK`. [#71441](https://github.com/ClickHouse/ClickHouse/pull/71441) ([shuai.xu](https://github.com/shuai-xu)).

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

* Un nuevo SETTING de MergeTree, `allow_experimental_reverse_key`, que permite usar el orden descendente en las claves de ordenación de MergeTree. Esto resulta útil para el análisis de series temporales, especialmente en consultas TopN. Ejemplo de uso: `ENGINE = MergeTree ORDER BY (time DESC, key)` - orden descendente para el campo `time`. [#71095](https://github.com/ClickHouse/ClickHouse/pull/71095) ([Amos Bird](https://github.com/amosbird)).

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

* Reordenación de JOIN. Se añadió una opción para seleccionar qué lado del join actuará como la tabla interna (build) en el plan de consulta. Esto se controla mediante `query_plan_join_swap_table`, que puede establecerse en `auto`. En este modo, ClickHouse intentará elegir la tabla con el menor número de filas. [#71577](https://github.com/ClickHouse/ClickHouse/pull/71577) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Ahora se utilizará el algoritmo `parallel_hash` (si procede) cuando la configuración `join_algorithm` esté establecida en `default`. Las dos alternativas anteriores (`direct` y `hash`) se seguirán teniendo en cuenta cuando no pueda usarse `parallel_hash`. [#70788](https://github.com/ClickHouse/ClickHouse/pull/70788) ([Nikita Taranov](https://github.com/nickitat)).
* Se añade una opción para extraer expresiones comunes de las expresiones `WHERE` y `ON` con el fin de reducir el número de tablas hash usadas durante los JOIN. Esto resulta útil cuando la condición `JOIN ON` tiene partes comunes dentro de `AND` en distintas partes de `OR`. Se puede habilitar con `optimize_extract_common_expressions = 1`. [#71537](https://github.com/ClickHouse/ClickHouse/pull/71537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Permite usar índices en `SELECT` cuando una columna indexada se convierte con CAST en `LowCardinality(String)`, lo que puede ocurrir al ejecutar una consulta sobre una tabla Merge con algunas tablas que tienen `String` y otras `LowCardinality(String)`. [#71598](https://github.com/ClickHouse/ClickHouse/pull/71598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Durante la ejecución de consultas con réplicas paralelas y el plan local habilitado, no se realiza el análisis de índices en los workers. El coordinador elegirá los rangos que deben leer los workers basándose en el análisis de índices de su lado (en el iniciador de la consulta). Esto hace que las consultas cortas con réplicas paralelas tengan una latencia tan baja como las consultas de un solo nodo. [#72109](https://github.com/ClickHouse/ClickHouse/pull/72109) ([Igor Nikonov](https://github.com/devcrafter)).
* Se ha reducido el uso de memoria de `clickhouse disks remove --recursive` en discos de almacenamiento de objetos. [#67323](https://github.com/ClickHouse/ClickHouse/pull/67323) ([Kirill](https://github.com/kirillgarbar)).
* Se recupera la optimización para leer subcolumnas de una única columna en partes compactas de [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631). Se eliminó accidentalmente. [#72285](https://github.com/ClickHouse/ClickHouse/pull/72285) ([Pavel Kruglov](https://github.com/Avogar)).
* Se acelera la ordenación de las columnas `LowCardinality(String)` al desvirtualizar las llamadas en el comparador. [#72337](https://github.com/ClickHouse/ClickHouse/pull/72337) ([Alexander Gololobov](https://github.com/davenger)).
* Optimizar la función `argMin`/`argMax` para algunos tipos de datos sencillos. [#72350](https://github.com/ClickHouse/ClickHouse/pull/72350) ([alesapin](https://github.com/alesapin)).
* Se optimizó el uso de bloqueos compartidos en el memory tracker para reducir la contención entre bloqueos, lo que mejora el rendimiento en sistemas con un número muy elevado de CPU. [#72375](https://github.com/ClickHouse/ClickHouse/pull/72375) ([Jiebin Sun](https://github.com/jiebinn)).
* Se añadió una nueva configuración, `use_async_executor_for_materialized_views`. Permite usar ejecución asíncrona y, potencialmente, multihilo para la consulta de la vista materializada; puede acelerar el procesamiento de las vistas durante INSERT, pero también consume más memoria. [#72497](https://github.com/ClickHouse/ClickHouse/pull/72497) ([alesapin](https://github.com/alesapin)).
* Mejora del rendimiento de la deserialización de estados de funciones de agregación (en el tipo de datos `AggregateFunction` y en consultas distribuidas). Ligera mejora del rendimiento del análisis del formato `RowBinary`. [#72818](https://github.com/ClickHouse/ClickHouse/pull/72818) ([Anton Popov](https://github.com/CurtizJ)).
* División de rangos en la lectura con réplicas paralelas según el orden de la clave de la tabla para consumir menos memoria durante la lectura. [#72173](https://github.com/ClickHouse/ClickHouse/pull/72173) ([JIaQi](https://github.com/JiaQiTang98)).
* Acelera las inserciones en MergeTree cuando hay un único valor de la clave de partición dentro del lote insertado. [#72348](https://github.com/ClickHouse/ClickHouse/pull/72348) ([alesapin](https://github.com/alesapin)).
* Se implementó la creación paralela de tablas al restaurar desde una copia de seguridad. Antes de este PR, el comando `RESTORE` siempre creaba las tablas en un solo hilo, lo que podía resultar lento en el caso de copias de seguridad que contenían muchas tablas. [#72427](https://github.com/ClickHouse/ClickHouse/pull/72427) ([Vitaly Baranov](https://github.com/vitlibar)).
* Eliminar la mark cache puede llevar un tiempo considerable si es grande. Si mantenemos el mutex de Context durante este proceso, se bloquean muchas otras actividades; incluso no se pueden establecer nuevas conexiones de cliente hasta que se libere. Y, en realidad, no es necesario mantener este mutex para la sincronización; basta con tener una referencia local a la caché mediante shared ptr. [#72749](https://github.com/ClickHouse/ClickHouse/pull/72749) ([Alexander Gololobov](https://github.com/davenger)).

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

* Se elimina la configuración `allow_experimental_join_condition`, por lo que las condiciones no equi quedan permitidas de forma predeterminada. [#69910](https://github.com/ClickHouse/ClickHouse/pull/69910) ([Vladimir Cherkasov](https://github.com/vdimir)).
* La configuración del servidor (`users.xml`) ahora también se aplica al cliente. Resulta útil para opciones de formato, p. ej., `date_time_output_format`. [#71178](https://github.com/ClickHouse/ClickHouse/pull/71178) ([Michael Kolupaev](https://github.com/al13n321)).
* Volcado automático de `GROUP BY`/`ORDER BY` a disco según el uso de memoria del servidor/usuario. Se controla con los ajustes de consulta `max_bytes_ratio_before_external_group_by`/`max_bytes_ratio_before_external_sort`. [#71406](https://github.com/ClickHouse/ClickHouse/pull/71406) ([Azat Khuzhin](https://github.com/azat)).
* Se añade una nueva lógica de cancelación: `CancellationChecker` comprueba los tiempos de espera de cada consulta iniciada y las detiene una vez agotado el tiempo de espera. [#69880](https://github.com/ClickHouse/ClickHouse/pull/69880) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se admite ALTER de `Object` a `JSON`, lo que significa que puedes migrar fácilmente desde el tipo `Object` obsoleto. [#71784](https://github.com/ClickHouse/ClickHouse/pull/71784) ([Pavel Kruglov](https://github.com/Avogar)).
* Permite valores desconocidos en set que no están presentes en Enum. Corrige [#72662](https://github.com/ClickHouse/ClickHouse/issues/72662). [#72686](https://github.com/ClickHouse/ClickHouse/pull/72686) ([zhanglistar](https://github.com/zhanglistar)).
* Añade compatibilidad con el operador de búsqueda de cadenas (p. ej., LIKE) para el tipo de datos `Enum`; implementa [#72661](https://github.com/ClickHouse/ClickHouse/issues/72661). [#72732](https://github.com/ClickHouse/ClickHouse/pull/72732) ([zhanglistar](https://github.com/zhanglistar)).
* Se aceptaron algunas consultas ALTER USER que no tenían sentido. Corrige [#71227](https://github.com/ClickHouse/ClickHouse/issues/71227). [#71286](https://github.com/ClickHouse/ClickHouse/pull/71286) ([Arthur Passos](https://github.com/arthurpassos)).
* Se respeta `prefer_locahost_replica` al generar el plan para `INSERT ... SELECT` distribuido. [#72190](https://github.com/ClickHouse/ClickHouse/pull/72190) ([filimonov](https://github.com/filimonov)).
* Azure incumplió la especificación de Iceberg al etiquetar por error Iceberg v1 como Iceberg v2. El problema se [describe aquí](https://github.com/ClickHouse/ClickHouse/issues/72091). Azure Iceberg Writer crea archivos de metadatos de Iceberg (así como archivos manifest) que incumplen las especificaciones. Ahora intentamos leer metadatos en formato Iceberg v1 con el lector de v2 (porque los escriben de esta manera), y se generaba un error cuando no creaban los campos correspondientes en un archivo manifest. [#72277](https://github.com/ClickHouse/ClickHouse/pull/72277) ([Daniil Ivanik](https://github.com/divanik)).
* Ahora se permite `CREATE MATERIALIZED VIEW` con `UNION [ALL]` en la consulta. El comportamiento es el mismo que en una vista materializada con `JOIN`: solo la primera tabla de la expresión `SELECT` actuará como desencadenante del insert; todas las demás tablas se ignorarán. Sin embargo, si hay varias referencias a la primera tabla (por ejemplo, UNION consigo misma), todas ellas se procesarán como el bloque de datos insertado. [#72347](https://github.com/ClickHouse/ClickHouse/pull/72347) ([alesapin](https://github.com/alesapin)).
* Se añadió la validación de la consulta cuando ClickHouse se utiliza como origen para un diccionario. [#72548](https://github.com/ClickHouse/ClickHouse/pull/72548) ([Alexey Katsman](https://github.com/alexkats)).
* Asegurar que ClickHouse detecte los cambios de ZooKeeper al recargar la configuración. [#72593](https://github.com/ClickHouse/ClickHouse/pull/72593) ([Azat Khuzhin](https://github.com/azat)).
* Mejor estimación del uso de memoria de las marks en caché para reducir el uso total de memoria de la caché. [#72630](https://github.com/ClickHouse/ClickHouse/pull/72630) ([Antonio Andelic](https://github.com/antonio2368)).
* Añade una nueva métrica `StartupScriptsExecutionState`. La métrica puede tener tres valores: 0 = los scripts de inicio todavía no han terminado, 1 = los scripts de inicio se ejecutaron correctamente, 2 = los scripts de inicio fallaron. Necesitamos esta métrica porque debemos saber si los scripts de inicio se están ejecutando correctamente en la nube, especialmente después de publicar nuevas versiones de las configuraciones base. [#72637](https://github.com/ClickHouse/ClickHouse/pull/72637) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Agrega la nueva métrica `MergeTreeIndexGranularityInternalArraysTotalSize` a `system.metrics`. Esta métrica es necesaria para encontrar las instancias con conjuntos de datos enormes propensas a un alto
* Se añaden reintentos a la creación de una tabla replicada. [#72682](https://github.com/ClickHouse/ClickHouse/pull/72682) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añadió `total_bytes_with_inactive` a `system.tables` para contabilizar el total de bytes de las partes inactivas. [#72690](https://github.com/ClickHouse/ClickHouse/pull/72690) ([Kai Zhu](https://github.com/nauu)).
* Se añaden ajustes de MergeTree a `system.settings_changes`. [#72694](https://github.com/ClickHouse/ClickHouse/pull/72694) ([Raúl Marín](https://github.com/Algunenano)).
* Se admite el tipo JSON en la función `notEmpty`. [#72741](https://github.com/ClickHouse/ClickHouse/pull/72741) ([Pavel Kruglov](https://github.com/Avogar)).
* Se admite el análisis del error de GCS S3 `AuthenticationRequired`. [#72753](https://github.com/ClickHouse/ClickHouse/pull/72753) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se admite el tipo `Dynamic` en las funciones `ifNull` y `coalesce`. [#72772](https://github.com/ClickHouse/ClickHouse/pull/72772) ([Pavel Kruglov](https://github.com/Avogar)).
* Se admite `Dynamic` en las funciones `toFloat64`/`touInt32`/etc. [#72989](https://github.com/ClickHouse/ClickHouse/pull/72989) ([Pavel Kruglov](https://github.com/Avogar)).
* Añadir los ajustes de solicitud de S3 `http_max_fields`, `http_max_field_name_size`, `http_max_field_value_size` y utilizarlos al analizar las respuestas de la API de S3 durante la creación de una copia de seguridad o la restauración. [#72778](https://github.com/ClickHouse/ClickHouse/pull/72778) ([Vitaly Baranov](https://github.com/vitlibar)).
* Eliminar los metadatos de la tabla en Keeper en Storage S3(Azure)Queue solo después de que se haya eliminado la última tabla que usaba esos metadatos. [#72810](https://github.com/ClickHouse/ClickHouse/pull/72810) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadieron los eventos de perfil `JoinBuildTableRowCount`/`JoinProbeTableRowCount/JoinResultRowCount`. [#72842](https://github.com/ClickHouse/ClickHouse/pull/72842) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se admite el uso de subcolumnas en la clave de ordenación de MergeTree y en los índices de salto. [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)).

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

* Corrige posibles partes intersectadas en MergeTree (después de que fallara una operación para mover una parte al directorio `detached`, posiblemente debido a una operación en el almacenamiento de objetos). [#70476](https://github.com/ClickHouse/ClickHouse/pull/70476) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la detección de un error cuando el nombre de una tabla es demasiado largo. Proporciona un diagnóstico que indica la longitud máxima permitida. Añade una nueva función `getMaxTableNameLengthForDatabase`. [#70810](https://github.com/ClickHouse/ClickHouse/pull/70810) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigieron los procesos zombi tras una caída de `clickhouse-library-bridge` (este programa permite ejecutar bibliotecas inseguras). [#71301](https://github.com/ClickHouse/ClickHouse/pull/71301) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige el error NoSuchKey durante la reversión de una transacción cuando falla la creación de un directorio en el disco `plain_rewritable`. [#71439](https://github.com/ClickHouse/ClickHouse/pull/71439) ([Julia Kartseva](https://github.com/jkartseva)).
* Se corrigió la serialización de los valores `Dynamic` en los formatos JSON `Pretty`. [#71923](https://github.com/ClickHouse/ClickHouse/pull/71923) ([Pavel Kruglov](https://github.com/Avogar)).
* Se añadió el nombre de formato inferido a la consulta CREATE en los motores `File`/`S3`/`URL`/`HDFS`/`Azure`. Anteriormente, el nombre del formato se infería cada vez que se reiniciaba el servidor y, si se eliminaban los archivos de datos especificados, esto provocaba errores durante el arranque del servidor. [#72108](https://github.com/ClickHouse/ClickHouse/pull/72108) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigen errores al usar una UDF en la expresión ON de un join con el analizador antiguo. [#72179](https://github.com/ClickHouse/ClickHouse/pull/72179) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige algunos pequeños errores en `StorageObjectStorage`. Es necesario habilitar `use_hive_partitioning` de forma predeterminada. [#72185](https://github.com/ClickHouse/ClickHouse/pull/72185) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige un error por el que `min_age_to_force_merge_on_partition_only` se quedaba atascado intentando fusionar repetidamente la misma partición, que ya se había fusionado en una sola parte, y no fusionaba las particiones que tenían varias partes. [#72209](https://github.com/ClickHouse/ClickHouse/pull/72209) ([Christoph Wurm](https://github.com/cwurm)).
* Se corrigió un fallo en `SimpleSquashingChunksTransform` que se producía en raras ocasiones al procesar columnas dispersas. [#72226](https://github.com/ClickHouse/ClickHouse/pull/72226) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigió una condición de carrera en `GraceHashJoin` que podía provocar la ausencia de algunas filas en el resultado del join. [#72233](https://github.com/ClickHouse/ClickHouse/pull/72233) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrigieron las consultas `ALTER DELETE` con la columna materializada `_block_number` (si está habilitada la configuración `enable_block_number_column`). [#72261](https://github.com/ClickHouse/ClickHouse/pull/72261) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió una condición de carrera de datos al llamar a `ColumnDynamic::dumpStructure()` de forma concurrente, p. ej., en el constructor de `ConcurrentHashJoin`. [#72278](https://github.com/ClickHouse/ClickHouse/pull/72278) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige un posible `LOGICAL_ERROR` con columnas duplicadas en `ORDER BY ... WITH FILL`. [#72387](https://github.com/ClickHouse/ClickHouse/pull/72387) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigieron incompatibilidades de tipos en varios casos tras aplicar `optimize_functions_to_subcolumns`. [#72394](https://github.com/ClickHouse/ClickHouse/pull/72394) ([Anton Popov](https://github.com/CurtizJ)).
* Usa `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` en lugar de `AWS_CONTAINER_AUTHORIZATION_TOKEN_PATH`. Soluciona [#71074](https://github.com/ClickHouse/ClickHouse/issues/71074). [#72397](https://github.com/ClickHouse/ClickHouse/pull/72397) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige un fallo al analizar las consultas `BACKUP DATABASE db EXCEPT TABLES db.table`. [#72429](https://github.com/ClickHouse/ClickHouse/pull/72429) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* No permitir crear `Variant` vacíos. [#72454](https://github.com/ClickHouse/ClickHouse/pull/72454) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige el formato inválido de `result_part_path` en `system.merges`. [#72567](https://github.com/ClickHouse/ClickHouse/pull/72567) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se corrige el análisis sintáctico de un patrón glob con un solo elemento (como `{file}`). [#72572](https://github.com/ClickHouse/ClickHouse/pull/72572) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se corrige la generación de consultas para el servidor seguidor en el caso de una consulta distribuida con `ARRAY JOIN`. Corrige [#69276](https://github.com/ClickHouse/ClickHouse/issues/69276). [#72608](https://github.com/ClickHouse/ClickHouse/pull/72608) ([Dmitry Novik](https://github.com/novikd)).
* Se corrige un error por el que `DateTime64 IN DateTime64` no devolvía nada. [#72640](https://github.com/ClickHouse/ClickHouse/pull/72640) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigieron metadatos inconsistentes al añadir una nueva réplica a una base de datos Replicated que tiene una tabla creada con `flatten_nested=0`. [#72685](https://github.com/ClickHouse/ClickHouse/pull/72685) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrige la configuración avanzada de SSL para la comunicación interna de Keeper. [#72730](https://github.com/ClickHouse/ClickHouse/pull/72730) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige el error "No such key" en el modo no ordenado de S3Queue con la configuración `tracked_files_limit` inferior a la tasa de aparición de archivos en S3. [#72738](https://github.com/ClickHouse/ClickHouse/pull/72738) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la excepción lanzada en RemoteQueryExecutor cuando un usuario no existe localmente. [#72759](https://github.com/ClickHouse/ClickHouse/pull/72759) ([Andrey Zvonov](https://github.com/zvonand)).
* Se corrigieron las mutaciones con la columna materializada `_block_number` (si está habilitada la configuración `enable_block_number_column`). [#72854](https://github.com/ClickHouse/ClickHouse/pull/72854) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige la copia de seguridad/restauración con un disco regrabable simple cuando hay archivos vacíos en la copia de seguridad. [#72858](https://github.com/ClickHouse/ClickHouse/pull/72858) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Cancelar correctamente las inserciones en DistributedAsyncInsertDirectoryQueue. [#72885](https://github.com/ClickHouse/ClickHouse/pull/72885) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un fallo al analizar datos incorrectos en columnas dispersas (puede ocurrir cuando está habilitada la configuración `enable_parsing_to_custom_serialization`). [#72891](https://github.com/ClickHouse/ClickHouse/pull/72891) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un posible cierre inesperado durante la restauración de una copia de seguridad. [#72947](https://github.com/ClickHouse/ClickHouse/pull/72947) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un error en el método JOIN `parallel_hash` que podía producirse cuando una consulta tenía una condición compleja en la cláusula `ON` con filtros de desigualdad. [#72993](https://github.com/ClickHouse/ClickHouse/pull/72993) ([Nikita Taranov](https://github.com/nickitat)).
* Usar la configuración de formato predeterminada durante el análisis de JSON para evitar errores de deserialización. [#73043](https://github.com/ClickHouse/ClickHouse/pull/73043) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un fallo en las transacciones con almacenamiento no compatible. [#73045](https://github.com/ClickHouse/ClickHouse/pull/73045) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige la posible sobreestimación del seguimiento de memoria (cuando la diferencia entre `MemoryTracking` y `MemoryResident` seguía aumentando). [#73081](https://github.com/ClickHouse/ClickHouse/pull/73081) ([Azat Khuzhin](https://github.com/azat)).
* Comprobación de claves JSON duplicadas durante el análisis de Tuple. Antes, esto podía provocar un error lógico `Invalid number of rows in Chunk` durante el análisis. [#73082](https://github.com/ClickHouse/ClickHouse/pull/73082) ([Pavel Kruglov](https://github.com/Avogar)).

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

* Todas las pequeñas utilidades que antes se almacenaban en la carpeta `/utils` y requerían compilación manual a partir del código fuente ahora forman parte del paquete principal de ClickHouse. Esto cierra: [#72404](https://github.com/ClickHouse/ClickHouse/issues/72404). [#72426](https://github.com/ClickHouse/ClickHouse/pull/72426) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se revierte la eliminación de `/etc/systemd/system/clickhouse-server.service` introducida en la versión 22.3 [#39323](https://github.com/ClickHouse/ClickHouse/issues/39323). [#72259](https://github.com/ClickHouse/ClickHouse/pull/72259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se dividieron las unidades de traducción grandes para evitar fallos de compilación debidos a limitaciones de memoria/CPU. [#72352](https://github.com/ClickHouse/ClickHouse/pull/72352) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* OSX: compilación con soporte para ICU, lo que habilita collations, conversiones de juegos de caracteres y otras funciones de localización. [#73083](https://github.com/ClickHouse/ClickHouse/pull/73083) ([Raúl Marín](https://github.com/Algunenano)).

### <a id="2411" /> Lanzamiento de ClickHouse 24.11, 2024-11-26. [Presentación](https://presentations.clickhouse.com/2024-release-24.11/), [Vídeo](https://www.youtube.com/watch?v=0hpTvtq__4g)

<Frame>
  <iframe src="https://www.youtube.com/embed/0hpTvtq__4g" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* Se eliminan las tablas del sistema `generate_series` y `generateSeries`. Se añadieron aquí por error: [#59390](https://github.com/ClickHouse/ClickHouse/issues/59390). [#71091](https://github.com/ClickHouse/ClickHouse/pull/71091) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se elimina `StorageExternalDistributed`. Cierra [#70600](https://github.com/ClickHouse/ClickHouse/issues/70600).[#71176](https://github.com/ClickHouse/ClickHouse/pull/71176) ([flynn](https://github.com/ucasfl)).
* Los motores de tabla Kafka, NATS y RabbitMQ ahora están cubiertos por sus propios permisos en la jerarquía `SOURCES`. Añada permisos a cualquier usuario de base de datos no predeterminado que cree tablas con estos tipos de motor. [#71250](https://github.com/ClickHouse/ClickHouse/pull/71250) ([Christoph Wurm](https://github.com/cwurm)).
* Se comprueba la consulta completa de mutación antes de ejecutarla (incluidas las subconsultas). Esto evita ejecutar accidentalmente una consulta no válida y acumular mutaciones inservibles que bloqueen mutaciones válidas. [#71300](https://github.com/ClickHouse/ClickHouse/pull/71300) ([Christoph Wurm](https://github.com/cwurm)).
* Se cambia el nombre de la SETTING de la caché del sistema de archivos `skip_download_if_exceeds_query_cache` a `filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit`. [#71578](https://github.com/ClickHouse/ClickHouse/pull/71578) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se elimina la compatibilidad con argumentos `Enum`, así como `UInt128` y `UInt256`, en `deltaSumTimestamp`. Se elimina también la compatibilidad con `Int8`, `UInt8`, `Int16` y `UInt16` en el segundo argumento ("timestamp") de `deltaSumTimestamp`. [#71790](https://github.com/ClickHouse/ClickHouse/pull/71790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Al recuperar datos directamente de un Diccionario mediante el almacenamiento Dictionary, la función de tabla dictionary o un SELECT directo del propio diccionario, ahora basta con tener el permiso `SELECT` o el permiso `dictGet` sobre el diccionario. Esto se ajusta a intentos anteriores de evitar omisiones de ACL: [https://github.com/ClickHouse/ClickHouse/pull/57362](https://github.com/ClickHouse/ClickHouse/pull/57362) y [https://github.com/ClickHouse/ClickHouse/pull/65359](https://github.com/ClickHouse/ClickHouse/pull/65359). Además, hace que este último cambio sea compatible con versiones anteriores. [#72051](https://github.com/ClickHouse/ClickHouse/pull/72051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Implementa `allow_feature_tier` como un conmutador global para deshabilitar todas las funcionalidades experimentales/beta. [#71841](https://github.com/ClickHouse/ClickHouse/pull/71841) [#71145](https://github.com/ClickHouse/ClickHouse/pull/71145) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige el posible error `No such file or directory` debido a símbolos especiales no escapados en archivos de subcolumnas JSON. [#71182](https://github.com/ClickHouse/ClickHouse/pull/71182) ([Pavel Kruglov](https://github.com/Avogar)).
* Admite ALTER de String a JSON. Este PR también cambia la serialización de los tipos JSON y Dynamic a la nueva versión V2. La versión anterior, V1, todavía puede usarse habilitando la SETTING `merge_tree_use_v1_object_and_dynamic_serialization` (puede usarse durante la actualización para poder revertir la versión sin problemas). [#70442](https://github.com/ClickHouse/ClickHouse/pull/70442) ([Pavel Kruglov](https://github.com/Avogar)).
* Implementa un CAST simple de Map/Tuple/Object al nuevo JSON mediante serialización/deserialización a partir de una cadena JSON. [#71320](https://github.com/ClickHouse/ClickHouse/pull/71320) ([Pavel Kruglov](https://github.com/Avogar)).
* No permite los tipos Variant/Dynamic en ORDER BY/GROUP BY/PARTITION BY/PRIMARY KEY de forma predeterminada porque pueden dar lugar a resultados inesperados. [#69731](https://github.com/ClickHouse/ClickHouse/pull/69731) ([Pavel Kruglov](https://github.com/Avogar)).
* Prohíbe los tipos Dynamic/Variant en las funciones min/max para evitar confusiones. [#71761](https://github.com/ClickHouse/ClickHouse/pull/71761) ([Pavel Kruglov](https://github.com/Avogar)).

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

* Se añadió sintaxis SQL para describir la programación de cargas de trabajo y la gestión de recursos. [https://clickhouse.com/docs/operations/workload-scheduling](https://clickhouse.com/docs/operations/workload-scheduling). [#69187](https://github.com/ClickHouse/ClickHouse/pull/69187) ([Sergei Trifonov](https://github.com/serxa)).
* Un nuevo tipo de dato, `BFloat16`, representa números de punto flotante de 16 bits con exponente de 8 bits, signo y mantisa de 7 bits. Esto cierra [#44206](https://github.com/ClickHouse/ClickHouse/issues/44206). Esto cierra [#49937](https://github.com/ClickHouse/ClickHouse/issues/49937). [#64712](https://github.com/ClickHouse/ClickHouse/pull/64712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la consulta `CHECK GRANT` para comprobar si al usuario/rol actual se le ha concedido el privilegio específico y si la tabla/columna correspondiente existe en memoria. [#68885](https://github.com/ClickHouse/ClickHouse/pull/68885) ([Unalian](https://github.com/Unalian)).
* Se añadieron las funciones de tabla `iceberg[S3;HDFS;Azure]Cluster`, `deltaLakeCluster`, `hudiCluster`. [#72045](https://github.com/ClickHouse/ClickHouse/pull/72045) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Se añadió la posibilidad de establecer usuario/contraseña en http\_handlers (para `dynamic_query_handler`/`predefined_query_handler`). [#70725](https://github.com/ClickHouse/ClickHouse/pull/70725) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió compatibilidad con la cláusula `STALENESS` en el operador ORDER BY WITH FILL. [#71151](https://github.com/ClickHouse/ClickHouse/pull/71151) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Se permite que cada método de autenticación tenga su propia fecha de expiración; se elimina de la entidad de usuario. [#70090](https://github.com/ClickHouse/ClickHouse/pull/70090) ([Arthur Passos](https://github.com/arthurpassos)).
* Se añadieron las nuevas funciones `parseDateTime64`, `parseDateTime64OrNull` y `parseDateTime64OrZero`. En comparación con la función existente `parseDateTime` (y sus variantes), devuelven un valor de tipo `DateTime64` en lugar de `DateTime`. [#71581](https://github.com/ClickHouse/ClickHouse/pull/71581) ([kevinyhzou](https://github.com/KevinyhZou)).

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

* Se optimizó el uso de memoria para los valores de granularidad del índice cuando la granularidad es constante para la parte. Se añadió la posibilidad de seleccionar siempre una granularidad constante para la parte (ajuste `use_const_adaptive_granularity`), lo que ayuda a garantizar que siempre se optimice en memoria. Esto ayuda en cargas de trabajo grandes (billones de filas en almacenamiento compartido) a evitar el crecimiento constante del uso de memoria debido a los metadatos (valores de granularidad del índice) de las partes de datos. [#71786](https://github.com/ClickHouse/ClickHouse/pull/71786) ([Anton Popov](https://github.com/CurtizJ)).
* Ahora ya no copiamos las columnas de los bloques de entrada para `join_algorithm = 'parallel_hash'` al distribuirlos entre hilos para su procesamiento en paralelo. [#67782](https://github.com/ClickHouse/ClickHouse/pull/67782) ([Nikita Taranov](https://github.com/nickitat)).
* Se optimizó el algoritmo de fusión de `Replacing` para partes no superpuestas. [#70977](https://github.com/ClickHouse/ClickHouse/pull/70977) ([Anton Popov](https://github.com/CurtizJ)).
* No listar las partes detached de los discos readonly y de solo escritura en las métricas y en system.detached\_parts. [#71086](https://github.com/ClickHouse/ClickHouse/pull/71086) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* No calcular las métricas asíncronas costosas de forma predeterminada. Esta funcionalidad se introdujo en [#40332](https://github.com/ClickHouse/ClickHouse/issues/40332), pero no conviene tener una tarea en segundo plano costosa que solo necesita un solo cliente. [#71087](https://github.com/ClickHouse/ClickHouse/pull/71087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Para los discos `plain_rewritable`: No llame a la API de almacenamiento de objetos al listar directorios, ya que puede resultar poco eficiente en costes. En su lugar, almacene en memoria la lista de nombres de archivo. Como contrapartida, aumentan el tiempo de carga inicial y la memoria necesaria para almacenar los nombres de archivo. [#70823](https://github.com/ClickHouse/ClickHouse/pull/70823) ([Julia Kartseva](https://github.com/jkartseva)).
* Mejora el rendimiento y la precisión del intervalo de recopilación de `system.query_metric_log` al reducir la sección crítica. [#71473](https://github.com/ClickHouse/ClickHouse/pull/71473) ([Pablo Marcos](https://github.com/pamarcos)).
* Optimización de lectura en orden mediante la generación de filas virtuales, para que se lean menos datos durante el merge sort, especialmente útil cuando existen múltiples partes. [#62125](https://github.com/ClickHouse/ClickHouse/pull/62125) ([Shichao Jin](https://github.com/jsc0218)).
* Se añadió la configuración del servidor `async_load_system_database`, que permite que el servidor se inicie aunque la base de datos del sistema no se haya cargado por completo. Esto permite iniciar ClickHouse más rápido si hay muchas tablas del sistema. [#69847](https://github.com/ClickHouse/ClickHouse/pull/69847) ([Sergei Trifonov](https://github.com/serxa)).
* Se añadió el parámetro `--threads` a `clickhouse-compressor`, lo que permite comprimir datos en paralelo. [#70860](https://github.com/ClickHouse/ClickHouse/pull/70860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió un ajuste `prewarm_mark_cache` que habilita la carga de marks en la mark cache durante inserts, merges, fetches de partes y al arrancar la tabla. [#71053](https://github.com/ClickHouse/ClickHouse/pull/71053) ([Anton Popov](https://github.com/CurtizJ)).
* Reducir al tamaño necesario el array index\_granularity en memoria para disminuir el uso de memoria de la familia de motores de tabla MergeTree. [#71595](https://github.com/ClickHouse/ClickHouse/pull/71595) ([alesapin](https://github.com/alesapin)).
* Se desactiva la configuración `boundary_alignment` de la caché del sistema de archivos para lecturas que no son de disco, lo que mejora el rendimiento de lectura de archivos remotos independientes con caché. [#71827](https://github.com/ClickHouse/ClickHouse/pull/71827) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Consultas como `SELECT * FROM table LIMIT ...` antes cargaban índices de partes aunque no se utilizaran. [#71866](https://github.com/ClickHouse/ClickHouse/pull/71866) ([Alexander Gololobov](https://github.com/davenger)).
* Se habilita `parallel_replicas_local_plan` de forma predeterminada. La creación de un plan local completo en el iniciador de la consulta mejora el rendimiento de las réplicas paralelas con un menor consumo de recursos y ofrece más posibilidades de aplicar optimizaciones de consultas. [#70171](https://github.com/ClickHouse/ClickHouse/pull/70171) ([Igor Nikonov](https://github.com/devcrafter)).

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

* Permitir usar clickhouse con un argumento de archivo, como `ch queries.sql`. [#71589](https://github.com/ClickHouse/ClickHouse/pull/71589) ([Raúl Marín](https://github.com/Algunenano)).
* El formato `Vertical` (que también se activa cuando finalizas tu consulta con `\G`) incorpora las características de los formatos Pretty, como: - resaltar los separadores de miles en los números; - mostrar una ayuda legible para los números. [#71630](https://github.com/ClickHouse/ClickHouse/pull/71630) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Propagar roles de usuario externos desde el nodo que origina la consulta a otros nodos del clúster. Útil cuando solo ese nodo tiene acceso al autenticador externo (como LDAP). [#70332](https://github.com/ClickHouse/ClickHouse/pull/70332) ([Andrey Zvonov](https://github.com/zvonand)).
* Se añadieron los alias `anyRespectNulls`, `firstValueRespectNulls` y `anyValueRespectNulls` para la función de agregación `any`. También se añadieron los alias `anyLastRespectNulls` y `lastValueRespectNulls` para la función de agregación `anyLast`. Esto permite usar una sintaxis más natural basada únicamente en camel case, en lugar de una sintaxis mixta de camel case y guion bajo; por ejemplo: `SELECT anyLastRespectNullsStateIf` en lugar de `anyLast_respect_nullsStateIf`. [#71403](https://github.com/ClickHouse/ClickHouse/pull/71403) ([Peter Nguyen](https://github.com/petern48)).
* Se añadió el parámetro de configuración `date_time_utc`, lo que permite que el formato de registros JSON admita fecha y hora UTC en formato RFC 3339/ISO8601. [#71560](https://github.com/ClickHouse/ClickHouse/pull/71560) ([Ali](https://github.com/xogoodnow)).
* Se añadió un nuevo tipo de header para los endpoints de S3 para la autenticación de usuarios (`access_header`). Esto permite obtener un header de acceso con la prioridad más baja, que será sobrescrito por `access_key_id` desde cualquier otra fuente (por ejemplo, un esquema de tabla o una named collection). [#71011](https://github.com/ClickHouse/ClickHouse/pull/71011) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Las funciones de orden superior con arrays constantes y argumentos capturados constantes devolverán valores constantes. [#58400](https://github.com/ClickHouse/ClickHouse/pull/58400) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los nombres de los pasos del plan de consulta (`EXPLAIN PLAN json=1`) y los nombres de los procesadores del pipeline (`EXPLAIN PIPELINE compact=0,graph=1`) ahora tienen un ID único como sufijo. Esto permite correlacionar la salida del perfilador de procesadores y las trazas de OpenTelemetry con la salida de `EXPLAIN`. [#63518](https://github.com/ClickHouse/ClickHouse/pull/63518) ([qhsong](https://github.com/qhsong)).
* Se añadió una opción para comprobar si el objeto existe después de escribirlo en Azure Blob Storage; se controla mediante la configuración `check_objects_after_upload`. [#64847](https://github.com/ClickHouse/ClickHouse/pull/64847) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Usar la base de datos `Atomic` de forma predeterminada en `clickhouse-local`. Se abordan los puntos 1 y 5 de [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). Cierra [#44817](https://github.com/ClickHouse/ClickHouse/issues/44817). [#68024](https://github.com/ClickHouse/ClickHouse/pull/68024) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las excepciones interrumpen el protocolo HTTP para avisar al cliente de un error. [#68800](https://github.com/ClickHouse/ClickHouse/pull/68800) ([Sema Checherinda](https://github.com/CheSema)).
* Informar sobre los hosts que ejecutan consultas DDL distribuidas creando replica\_dir y marcando las réplicas activas en DDLWorker. [#69658](https://github.com/ClickHouse/ClickHouse/pull/69658) ([tuanpach](https://github.com/tuanpach)).
* Esperar solo a las réplicas activas en las consultas ON CLUSTER de bases de datos si distributed\_ddl\_output\_mode está configurado como \*\_only\_active. [#69660](https://github.com/ClickHouse/ClickHouse/pull/69660) ([tuanpach](https://github.com/tuanpach)).
* Mejor manejo de errores y cancelación de copias de seguridad y restauraciones `ON CLUSTER`: - Si una copia de seguridad o una restauración falla en un host, se cancelará automáticamente en los demás hosts - No deberían producirse errores extraños porque algunos hosts fallen mientras otros continúan su trabajo - Si una copia de seguridad o una restauración se cancela en un host, se cancelará automáticamente en los demás hosts - Se corrigen problemas con `test_disallow_concurrency`: ahora la desactivación de la concurrencia debería funcionar mejor - Las copias de seguridad y las restauraciones ahora son mucho más resistentes a las desconexiones de ZooKeeper. [#70027](https://github.com/ClickHouse/ClickHouse/pull/70027) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se admite `ALTER TABLE ... MODIFY/RESET SETTING ...` para determinadas opciones de configuración en el almacenamiento S3Queue. [#70811](https://github.com/ClickHouse/ClickHouse/pull/70811) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió la posibilidad de recargar los certificados de cliente del mismo modo que se recargan los certificados del servidor. [#70997](https://github.com/ClickHouse/ClickHouse/pull/70997) ([Roman Antonov](https://github.com/Romeo58rus)).
* Hacer configurable el tamaño del historial del cliente y aumentar su tamaño predeterminado. [#71014](https://github.com/ClickHouse/ClickHouse/pull/71014) ([Jiří Kozlovský](https://github.com/jirislav)).
* Compatibilidad con tipos booleanos en el lector nativo de Parquet. [#71055](https://github.com/ClickHouse/ClickHouse/pull/71055) ([Arthur Passos](https://github.com/arthurpassos)).
* Reintentar ante más errores al interactuar con S3, como "Malformed message". [#71088](https://github.com/ClickHouse/ClickHouse/pull/71088) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se reduce el nivel de registro de algunos mensajes sobre S3. [#71090](https://github.com/ClickHouse/ClickHouse/pull/71090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se admite la escritura de archivos HDFS con espacios. [#71105](https://github.com/ClickHouse/ClickHouse/pull/71105) ([exmy](https://github.com/exmy)).
* Se añadieron ajustes para limitar la cantidad de tablas replicadas, diccionarios y vistas. [#71179](https://github.com/ClickHouse/ClickHouse/pull/71179) ([Kirill](https://github.com/kirillgarbar)).
* Usa `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` en lugar de `AWS_CONTAINER_AUTHORIZATION_TOKEN` si el primero está disponible. Corrige [#71074](https://github.com/ClickHouse/ClickHouse/issues/71074). [#71269](https://github.com/ClickHouse/ClickHouse/pull/71269) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Eliminar la creación del nodo metadata\_version en ZooKeeper del hilo de reinicio de ReplicatedMergeTree. El único caso en el que es necesario crear este nodo es cuando el usuario actualizó desde una versión anterior a la 20.4 directamente a otra posterior a la 24.10. ClickHouse no admite actualizaciones que abarquen más de un año, por lo que deberíamos lanzar una excepción y pedir al usuario que actualice de forma gradual, en lugar de crear el nodo. [#71385](https://github.com/ClickHouse/ClickHouse/pull/71385) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se añaden los dashboards por host `Overview (host)` y `Cloud overview (host)` al dashboard avanzado. [#71422](https://github.com/ClickHouse/ClickHouse/pull/71422) ([alesapin](https://github.com/alesapin)).
* `clickhouse-local` usa SELECT implícito de forma predeterminada, lo que permite usarlo como una calculadora. Se ha mejorado el resaltado de sintaxis para el modo de SELECT implícito. [#71620](https://github.com/ClickHouse/ClickHouse/pull/71620) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las aplicaciones de línea de comandos resaltarán la sintaxis incluso en múltiples sentencias. [#71622](https://github.com/ClickHouse/ClickHouse/pull/71622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las aplicaciones de línea de comandos devolverán códigos de salida distintos de cero cuando se produzcan errores. En versiones anteriores, la aplicación `disks` devolvía cero en caso de error, y otras aplicaciones devolvían cero para los errores 256 (`PARTITION_ALREADY_EXISTS`) y 512 (`SET_NON_GRANTED_ROLE`). [#71623](https://github.com/ClickHouse/ClickHouse/pull/71623) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Cuando se proporciona el usuario/grupo como ID, `clickhouse su` falla. Este parche corrige el problema para que también acepte `UID:GID`. [#71626](https://github.com/ClickHouse/ClickHouse/pull/71626) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se permite deshabilitar el aumento del tamaño del búfer de memoria para la caché del sistema de archivos mediante la configuración `filesystem_cache_prefer_bigger_buffer_size`. [#71640](https://github.com/ClickHouse/ClickHouse/pull/71640) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Añade una configuración independiente, `background_download_max_file_segment_size`, para el tamaño máximo del segmento de archivo en las descargas en segundo plano en la caché del sistema de archivos. [#71648](https://github.com/ClickHouse/ClickHouse/pull/71648) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ligera mejora en el análisis del tipo JSON: si el bloque actual para la ruta JSON contiene valores de varios tipos, se intenta elegir el mejor tipo probando los tipos en un orden especial de mejor esfuerzo. [#71785](https://github.com/ClickHouse/ClickHouse/pull/71785) ([Pavel Kruglov](https://github.com/Avogar)).
* Antes, al leer desde `system.asynchronous_metrics`, había que esperar a que terminara la actualización concurrente. Esto puede llevar mucho tiempo si el sistema está sometido a una carga elevada. Con este cambio, siempre se pueden leer los valores recopilados previamente. [#71798](https://github.com/ClickHouse/ClickHouse/pull/71798) ([Alexander Gololobov](https://github.com/davenger)).
* S3Queue y AzureQueue: Establezca `polling_max_timeout_ms` en 10 minutos y `polling_backoff_ms` en 30 segundos. [#71817](https://github.com/ClickHouse/ClickHouse/pull/71817) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Actualizar `HostResolver` tres veces durante un período de `history`. [#71863](https://github.com/ClickHouse/ClickHouse/pull/71863) ([Sema Checherinda](https://github.com/CheSema)).
* En la página HTML del panel avanzado se añadió un selector desplegable para seleccionar el panel desde la tabla `system.dashboards`. [#72081](https://github.com/ClickHouse/ClickHouse/pull/72081) ([Sergei Trifonov](https://github.com/serxa)).
* Comprobar si la base de datos predeterminada existe después de la autorización. Corrige [#71097](https://github.com/ClickHouse/ClickHouse/issues/71097). [#71140](https://github.com/ClickHouse/ClickHouse/pull/71140) ([Konstantin Bogdanov](https://github.com/thevar1able)).

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

* Las partes deduplicadas durante la consulta `ATTACH PART` ya no se quedan bloqueadas con el prefijo `attaching_`. [#65636](https://github.com/ClickHouse/ClickHouse/pull/65636) ([Kirill](https://github.com/kirillgarbar)).
* Corrección del error que provocaba que DateTime64 perdiera precisión en la función `IN`. [#67230](https://github.com/ClickHouse/ClickHouse/pull/67230) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige un posible error lógico al usar funciones con `IGNORE/RESPECT NULLS` en `ORDER BY ... WITH FILL`; cierra [#57609](https://github.com/ClickHouse/ClickHouse/issues/57609). [#68234](https://github.com/ClickHouse/ClickHouse/pull/68234) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigieron errores lógicos poco frecuentes en las inserciones asíncronas con formato `Native` cuando se alcanzaba el límite de memoria. [#68965](https://github.com/ClickHouse/ClickHouse/pull/68965) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió COMMENT en CREATE TABLE para la columna EPHEMERAL. [#70458](https://github.com/ClickHouse/ClickHouse/pull/70458) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige un error lógico en JSONExtract con LowCardinality(Nullable). [#70549](https://github.com/ClickHouse/ClickHouse/pull/70549) ([Pavel Kruglov](https://github.com/Avogar)).
* Permitir system drop replica zkpath cuando exista otra réplica con la misma ruta zk. [#70642](https://github.com/ClickHouse/ClickHouse/pull/70642) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se corrige un bloqueo y una fuga de memoria en AggregateFunctionGroupArraySorted. [#70820](https://github.com/ClickHouse/ClickHouse/pull/70820) ([Michael Kolupaev](https://github.com/al13n321)).
* Se añade la posibilidad de sobrescribir Content-Type mediante encabezados definidos por el usuario en el motor URL. [#70859](https://github.com/ClickHouse/ClickHouse/pull/70859) ([Artem Iurin](https://github.com/ortyomka)).
* Se corrige un error lógico en `StorageS3Queue`: "No se puede crear un nodo persistente en /processed porque ya existe". [#70984](https://github.com/ClickHouse/ClickHouse/pull/70984) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un problema por el que las sesiones con nombre no se cerraban y permanecían abiertas indefinidamente en determinadas circunstancias. [#70998](https://github.com/ClickHouse/ClickHouse/pull/70998) ([Márcio Martins](https://github.com/marcio-absmartly)).
* Se corrigió el error por el que no se tenía en cuenta la columna \_row\_exists en la opción de reconstrucción de la eliminación ligera de proyecciones. [#71089](https://github.com/ClickHouse/ClickHouse/pull/71089) ([Shichao Jin](https://github.com/jsc0218)).
* Se soluciona el problema `AT_* is out of range` al ejecutarse en Oracle Linux UEK 6.10. [#71109](https://github.com/ClickHouse/ClickHouse/pull/71109) ([Örjan Fors](https://github.com/op)).
* Se corrigió un valor incorrecto en system.query\_metric\_log debido a una condición de carrera inesperada. [#71124](https://github.com/ClickHouse/ClickHouse/pull/71124) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrigió el nombre incorrecto de la función de agregación quantileExactWeightedInterpolated. El error se introdujo en [https://github.com/ClickHouse/ClickHouse/pull/69619](https://github.com/ClickHouse/ClickHouse/pull/69619). cc @Algunenano. [#71168](https://github.com/ClickHouse/ClickHouse/pull/71168) ([李扬](https://github.com/taiyang-li)).
* Se corrigió la excepción bad\_weak\_ptr con Dynamic en la comparación de funciones. [#71183](https://github.com/ClickHouse/ClickHouse/pull/71183) ([Pavel Kruglov](https://github.com/Avogar)).
* Comprueba que el archivo 7z que se lee esté en una máquina local. [#71184](https://github.com/ClickHouse/ClickHouse/pull/71184) ([Daniil Ivanik](https://github.com/divanik)).
* Se corrigió el problema por el que se ignoraban los ajustes de formato en Native format a través de HTTP y Async Inserts. [#71193](https://github.com/ClickHouse/ClickHouse/pull/71193) ([Pavel Kruglov](https://github.com/Avogar)).
* Las consultas `SELECT` ejecutadas con la configuración `use_query_cache = 1` ya no se rechazan si el nombre de una tabla del sistema aparece como un valor literal; por ejemplo, `SELECT * FROM users WHERE name = 'system.metrics' SETTINGS use_query_cache = true;` ahora funciona. [#71254](https://github.com/ClickHouse/ClickHouse/pull/71254) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige un error que provocaba un aumento del uso de memoria si enable\_filesystem\_cache=1, pero el disco de la configuración de almacenamiento no tenía ninguna configuración de caché. [#71261](https://github.com/ClickHouse/ClickHouse/pull/71261) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige el posible error "Cannot read all data" durante la deserialización del diccionario LowCardinality desde una columna Dynamic. [#71299](https://github.com/ClickHouse/ClickHouse/pull/71299) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió la limpieza incompleta del formato de salida en paralelo en el cliente. [#71304](https://github.com/ClickHouse/ClickHouse/pull/71304) ([Raúl Marín](https://github.com/Algunenano)).
* Se añadió el desescapado que faltaba en named collections. Sin esta corrección, clickhouse-server no puede iniciarse. [#71308](https://github.com/ClickHouse/ClickHouse/pull/71308) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se corrigen las inserciones asíncronas con bloques vacíos mediante el protocolo nativo. [#71312](https://github.com/ClickHouse/ClickHouse/pull/71312) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el formato inconsistente del AST al conceder permisos con comodines incorrectos [#71309](https://github.com/ClickHouse/ClickHouse/issues/71309). [#71332](https://github.com/ClickHouse/ClickHouse/pull/71332) ([pufit](https://github.com/pufit)).
* Añadir try/catch en los destructores de las partes de datos para evitar `std::terminate`. [#71364](https://github.com/ClickHouse/ClickHouse/pull/71364) ([alesapin](https://github.com/alesapin)).
* Comprobación de tipos sospechosos y experimentales en las sugerencias de tipo de JSON. [#71369](https://github.com/ClickHouse/ClickHouse/pull/71369) ([Pavel Kruglov](https://github.com/Avogar)).
* Iniciar también el hilo worker de memoria en sistemas operativos distintos de Linux (corrige [#71051](https://github.com/ClickHouse/ClickHouse/issues/71051)). [#71384](https://github.com/ClickHouse/ClickHouse/pull/71384) ([Alexandre Snarskii](https://github.com/snar)).
* Se corrige el error Número inválido de filas en el fragmento con la columna Variant. [#71388](https://github.com/ClickHouse/ClickHouse/pull/71388) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige el error «la columna "attgenerated" no existe» en versiones anteriores de PostgreSQL; corrige [#60651](https://github.com/ClickHouse/ClickHouse/issues/60651). [#71396](https://github.com/ClickHouse/ClickHouse/pull/71396) ([0xMihalich](https://github.com/0xMihalich)).
* Para evitar saturar los logs del servidor, los intentos fallidos de autenticación se registran ahora con el nivel `DEBUG` en lugar de `ERROR`. [#71405](https://github.com/ClickHouse/ClickHouse/pull/71405) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige un cierre inesperado en la función de tabla `mongodb` al pasar argumentos incorrectos (p. ej., `NULL`). [#71426](https://github.com/ClickHouse/ClickHouse/pull/71426) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige un cierre inesperado con optimize\_rewrite\_array\_exists\_to\_has. [#71432](https://github.com/ClickHouse/ClickHouse/pull/71432) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió el uso del ajuste `max_insert_delayed_streams_for_parallel_write` en las inserciones. Anteriormente, funcionaba de forma incorrecta, lo que podía provocar un uso elevado de memoria en las inserciones que escriben datos en varias particiones. [#71474](https://github.com/ClickHouse/ClickHouse/pull/71474) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el posible error `Argument for function must be constant` (analyzer antiguo) en los casos en que `arrayJoin` aparentemente puede aparecer en la condición `WHERE`. Regresión introducida tras [https://github.com/ClickHouse/ClickHouse/pull/65414](https://github.com/ClickHouse/ClickHouse/pull/65414). [#71476](https://github.com/ClickHouse/ClickHouse/pull/71476) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evita que SortCursor falle con 0 columnas (analizador antiguo). [#71494](https://github.com/ClickHouse/ClickHouse/pull/71494) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió el error de Date32 fuera de rango causado por datos ORC no inicializados. Para obtener más información, consulta [https://github.com/apache/incubator-gluten/issues/7823](https://github.com/apache/incubator-gluten/issues/7823). [#71500](https://github.com/ClickHouse/ClickHouse/pull/71500) ([李扬](https://github.com/taiyang-li)).
* Se corrige el cálculo del tamaño de la columna en la parte wide para los tipos Dynamic y JSON. [#71526](https://github.com/ClickHouse/ClickHouse/pull/71526) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrección en el analyzer cuando una consulta dentro de una vista materializada usa IN con CTE. Cierra [#65598](https://github.com/ClickHouse/ClickHouse/issues/65598). [#71538](https://github.com/ClickHouse/ClickHouse/pull/71538) ([Maksim Kita](https://github.com/kitaisreal)).
* Evita un bloqueo al usar una UDF en una restricción. [#71541](https://github.com/ClickHouse/ClickHouse/pull/71541) ([Raúl Marín](https://github.com/Algunenano)).
* Devolver 0 o el carácter predeterminado en lugar de producir un error en las funciones `bitShift` en caso de salirse de los límites. [#71580](https://github.com/ClickHouse/ClickHouse/pull/71580) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrigen los fallos del servidor al usar una vista materializada con ciertos motores. [#71593](https://github.com/ClickHouse/ClickHouse/pull/71593) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Un ARRAY JOIN con una estructura de datos anidada, que contiene un alias a un array constante, provocaba una desreferenciación de un puntero nulo. Esto cierra [#71677](https://github.com/ClickHouse/ClickHouse/issues/71677). [#71678](https://github.com/ClickHouse/ClickHouse/pull/71678) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige LOGICAL\_ERROR al realizar ALTER con una tupla vacía. Esto corrige [#71647](https://github.com/ClickHouse/ClickHouse/issues/71647). [#71679](https://github.com/ClickHouse/ClickHouse/pull/71679) ([Amos Bird](https://github.com/amosbird)).
* No transformar el conjunto constante en los predicados sobre columnas de partición en el caso del operador NOT IN. [#71695](https://github.com/ClickHouse/ClickHouse/pull/71695) ([Eduard Karacharov](https://github.com/korowa)).
* Se corrigió el mensaje de error del script de inicialización de Docker para que se entienda mejor. [#71734](https://github.com/ClickHouse/ClickHouse/pull/71734) ([Андрей](https://github.com/andreineustroev)).
* Se corrige CAST de LowCardinality(Nullable) a Dynamic. Anteriormente, esto podía provocar el error `Bad cast from type DB::ColumnVector<int> to DB::ColumnNullable`. [#71742](https://github.com/ClickHouse/ClickHouse/pull/71742) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige una excepción en toDayOfWeek en una condición WHERE con una clave primaria de tipo DateTime64. [#71849](https://github.com/ClickHouse/ClickHouse/pull/71849) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrigió la asignación de valores predeterminados tras el análisis en columnas dispersas. [#71854](https://github.com/ClickHouse/ClickHouse/pull/71854) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige el error de la función GROUPING cuando la entrada es un ALIAS en una tabla distribuida, cierra [#68602](https://github.com/ClickHouse/ClickHouse/issues/68602). [#71855](https://github.com/ClickHouse/ClickHouse/pull/71855) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige un posible cierre inesperado al usar `allow_experimental_join_condition`; cierra [#71693](https://github.com/ClickHouse/ClickHouse/issues/71693). [#71857](https://github.com/ClickHouse/ClickHouse/pull/71857) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrigieron las sentencias SELECT que usan la cláusula `WITH TIES` y que podrían no devolver suficientes filas. [#71886](https://github.com/ClickHouse/ClickHouse/pull/71886) ([wxybear](https://github.com/wxybear)).
* Corrige la excepción TOO\_LARGE\_ARRAY\_SIZE provocada cuando se interpreta erróneamente que una columna evaluada con arrayWithConstant supera el límite de tamaño del array. [#71894](https://github.com/ClickHouse/ClickHouse/pull/71894) ([Udi](https://github.com/udiz)).
* `clickhouse-benchmark` reportó métricas incorrectas para consultas que tardaban más de un segundo. [#71898](https://github.com/ClickHouse/ClickHouse/pull/71898) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la condición de carrera entre el indicador de progreso y la tabla de progreso en clickhouse-client. Este problema aparece cuando se usa FROM INFILE. Se interceptan las pulsaciones de teclas durante las consultas INSERT para alternar la visualización de la tabla de progreso. [#71901](https://github.com/ClickHouse/ClickHouse/pull/71901) ([Julia Kartseva](https://github.com/jkartseva)).
* Use keepers auxiliares para la detección automática del clúster. [#71911](https://github.com/ClickHouse/ClickHouse/pull/71911) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Corrige el fallo en la columna rows\_processed de system.s3/azure\_queue\_log en la versión 24.6. Cierra [#69975](https://github.com/ClickHouse/ClickHouse/issues/69975). [#71946](https://github.com/ClickHouse/ClickHouse/pull/71946) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un caso en el que las funciones `s3`/`s3Cluster` podían devolver un resultado incompleto o lanzar una excepción. Esto ocurría al usar un patrón glob en la URI de S3 (como `pattern/*`) y cuando existía un objeto vacío con la clave `pattern/` (estos objetos se crean automáticamente en la consola de S3). Además, el valor predeterminado de la configuración `s3_skip_empty_files` cambió de `false` a `true`. [#71947](https://github.com/ClickHouse/ClickHouse/pull/71947) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrige un fallo que provocaba un cierre inesperado en el resaltado de sintaxis de clickhouse-client. Cierra [#71864](https://github.com/ClickHouse/ClickHouse/issues/71864). [#71949](https://github.com/ClickHouse/ClickHouse/pull/71949) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige el error `Illegal type` en tablas `MergeTree` con una función monótona binaria en `ORDER BY` cuando el primer argumento es constante. Corrige [#71941](https://github.com/ClickHouse/ClickHouse/issues/71941). [#71966](https://github.com/ClickHouse/ClickHouse/pull/71966) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Permitir solo consultas SELECT en EXPLAIN AST cuando se usa dentro de una subconsulta. Otros tipos de consultas provocan el error lógico: 'Bad cast from type DB::ASTCreateQuery to DB::ASTSelectWithUnionQuery' o `Inconsistent AST formatting`. [#71982](https://github.com/ClickHouse/ClickHouse/pull/71982) ([Pavel Kruglov](https://github.com/Avogar)).
* Al insertar un registro con `clickhouse-client`, el cliente lee las descripciones de las columnas del servidor. Pero había un error: escribíamos las descripciones en un orden incorrecto; debería ser \[statistics, ttl, settings]. [#71991](https://github.com/ClickHouse/ClickHouse/pull/71991) ([Han Fei](https://github.com/hanfei1991)).
* Se corrige el formato de los comandos ALTER `MOVE PARTITION ... TO TABLE ...` cuando `format_alter_commands_with_parentheses` está habilitado. [#72080](https://github.com/ClickHouse/ClickHouse/pull/72080) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige los joins RIGHT / FULL en consultas con réplicas paralelas. Ahora, los joins RIGHT pueden ejecutarse con réplicas paralelas (la lectura de la tabla derecha se distribuye). Los joins FULL no pueden paralelizarse entre nodos; se ejecutan localmente. [#71162](https://github.com/ClickHouse/ClickHouse/pull/71162) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrigió el problema por el que ClickHouse en contenedores de Docker imprimía "get\_mempolicy: Operation not permitted" en stderr debido a restricciones en las llamadas al sistema. [#70900](https://github.com/ClickHouse/ClickHouse/pull/70900) ([filimonov](https://github.com/filimonov)).
* Se corrigió el registro metadata\_version en ZooKeeper en el hilo de reinicio en lugar de en el hilo de Attach. [#70297](https://github.com/ClickHouse/ClickHouse/pull/70297) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Esta es una corrección para la replicación "zero-copy", que no está admitida y se eliminará por completo. No elimine un blob cuando haya nodos que lo estén usando en ReplicatedMergeTree con replicación zero-copy. [#71186](https://github.com/ClickHouse/ClickHouse/pull/71186) ([Antonio Andelic](https://github.com/antonio2368)).
* Esta es una corrección para la replicación "zero-copy", que no es compatible y se eliminará por completo. Se adquiere un bloqueo compartido zero-copy antes de mover una parte a un disco zero-copy para evitar una posible pérdida de datos si Keeper no está disponible. [#71845](https://github.com/ClickHouse/ClickHouse/pull/71845) ([Aleksei Filatov](https://github.com/aalexfvk)).

### <a id="2410" /> Lanzamiento de ClickHouse 24.10, 2024-10-31. [Presentación](https://presentations.clickhouse.com/2024-release-24.10/), [Vídeo](https://www.youtube.com/watch?v=AamIAjURp4U)

<Frame>
  <iframe src="https://www.youtube.com/embed/AamIAjURp4U" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* Se permite escribir `SETTINGS` antes de `FORMAT` en una cadena de consultas con `UNION` cuando las subconsultas están entre paréntesis. Esto cierra [#39712](https://github.com/ClickHouse/ClickHouse/issues/39712). Cambia el comportamiento cuando una consulta tiene la cláusula SETTINGS especificada dos veces en una secuencia. La cláusula SETTINGS más cercana tendrá preferencia para la subconsulta correspondiente. En versiones anteriores, la cláusula SETTINGS más externa podía prevalecer sobre la interna. [#68614](https://github.com/ClickHouse/ClickHouse/pull/68614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora se permite, de forma predeterminada, reordenar las condiciones de filtro de la cláusula `[PRE]WHERE`. Esto puede deshabilitarse estableciendo `allow_reorder_prewhere_conditions` en `false`. [#70657](https://github.com/ClickHouse/ClickHouse/pull/70657) ([Nikita Taranov](https://github.com/nickitat)).
* Se elimina la biblioteca `idxd-config`, que tiene una licencia incompatible. Esto también elimina el códec experimental Intel DeflateQPL. [#70987](https://github.com/ClickHouse/ClickHouse/pull/70987) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Permite conceder acceso a prefijos con comodín. `GRANT SELECT ON db.table_pefix_* TO user`. [#65311](https://github.com/ClickHouse/ClickHouse/pull/65311) ([pufit](https://github.com/pufit)).
* Si presiona la barra espaciadora mientras se ejecuta una consulta, el cliente mostrará una tabla en tiempo real con métricas detalladas. Puede habilitarla globalmente con la nueva opción `--progress-table` en clickhouse-client; la nueva opción `--enable-progress-table-toggle` está asociada a `--progress-table` y alterna la visualización de la tabla de progreso al pulsar la tecla de control (Espacio). [#63689](https://github.com/ClickHouse/ClickHouse/pull/63689) ([Maria Khristenko](https://github.com/mariaKhr)), [#70423](https://github.com/ClickHouse/ClickHouse/pull/70423) ([Julia Kartseva](https://github.com/jkartseva)).
* Permite almacenar en caché los archivos leídos para los motores de tabla de almacenamiento de objetos y los lagos de datos, usando el `hash` de ETag + la ruta del archivo como clave de caché. [#70135](https://github.com/ClickHouse/ClickHouse/pull/70135) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se admite crear una tabla con una consulta: `CREATE TABLE ... CLONE AS ...`. Clona el esquema de la tabla de origen y luego adjunta todas las particiones a la tabla recién creada. Esta funcionalidad solo es compatible con tablas de la familia `MergeTree`. Cierra [#65015](https://github.com/ClickHouse/ClickHouse/issues/65015). [#69091](https://github.com/ClickHouse/ClickHouse/pull/69091) ([tuanpach](https://github.com/tuanpach)).
* Se añade una nueva tabla del sistema, `system.query_metric_log`, que contiene el historial de los valores de memoria y métricas de la tabla system.events para consultas individuales, y que se escribe periódicamente en disco. [#66532](https://github.com/ClickHouse/ClickHouse/pull/66532) ([Pablo Marcos](https://github.com/pamarcos)).
* Se puede escribir una consulta SELECT simple con SELECT implícito para habilitar expresiones de estilo calculadora, por ejemplo, `ch "1 + 2"`. Esto se controla mediante una nueva configuración, `implicit_select`. [#68502](https://github.com/ClickHouse/ClickHouse/pull/68502) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compatibilidad con el modo `--copy` en clickhouse local como atajo para la conversión de formatos [#68503](https://github.com/ClickHouse/ClickHouse/issues/68503). [#68583](https://github.com/ClickHouse/ClickHouse/pull/68583) ([Denis Hananein](https://github.com/denis-hananein)).
* Agregar una página HTML incorporada para visualizar las fusiones, disponible en la ruta `/merges`. [#70821](https://github.com/ClickHouse/ClickHouse/pull/70821) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agrega compatibilidad con la función `arrayUnion`. [#68989](https://github.com/ClickHouse/ClickHouse/pull/68989) ([Peter Nguyen](https://github.com/petern48)).
* Permitir alias de SQL parametrizados. [#50665](https://github.com/ClickHouse/ClickHouse/pull/50665) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Una nueva función de agregación `quantileExactWeightedInterpolated`, que es una versión interpolada basada en quantileExactWeighted. Algunos podrían preguntarse por qué necesitamos una nueva `quantileExactWeightedInterpolated` si ya tenemos `quantileExactInterpolatedWeighted`. La razón es que la nueva es más precisa que la anterior. Esto es por compatibilidad con Spark. [#69619](https://github.com/ClickHouse/ClickHouse/pull/69619) ([李扬](https://github.com/taiyang-li)).
* Una nueva función: `arrayElementOrNull`. Devuelve `NULL` si el índice del array está fuera de rango o si no se encuentra una clave en un Map. [#69646](https://github.com/ClickHouse/ClickHouse/pull/69646) ([李扬](https://github.com/taiyang-li)).
* Permite a los usuarios especificar expresiones regulares mediante los nuevos campos `message_regexp` y `message_regexp_negative` en el archivo `config.xml` para filtrar el logging. El logging se aplica al texto formateado sin color para ofrecer una experiencia más intuitiva a los desarrolladores. [#69657](https://github.com/ClickHouse/ClickHouse/pull/69657) ([Peter Nguyen](https://github.com/petern48)).
* Se añadió la función `RIPEMD160`, que calcula el `hash` criptográfico RIPEMD-160 de una cadena de texto. Ejemplo: `SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))` devuelve `37F332F68DB77BD9D7EDD4969571AD671CF9DD3B`. [#70087](https://github.com/ClickHouse/ClickHouse/pull/70087) ([Dergousov Maxim](https://github.com/m7kss1)).
* Compatibilidad con la lectura de tablas `Iceberg` en `HDFS`. [#70268](https://github.com/ClickHouse/ClickHouse/pull/70268) ([flynn](https://github.com/ucasfl)).
* Compatibilidad con CTE en la forma `WITH ... INSERT`, ya que anteriormente solo se admitía `INSERT ... WITH ...`. [#70593](https://github.com/ClickHouse/ClickHouse/pull/70593) ([Shichao Jin](https://github.com/jsc0218)).
* Integración de MongoDB: compatibilidad con todos los tipos de MongoDB, compatibilidad con las sentencias WHERE y ORDER BY en MongoDB, y restricción de las expresiones no compatibles con MongoDB. Tenga en cuenta que la nueva integración está deshabilitada de forma predeterminada; para usarla, establezca `<use_legacy_mongodb_integration>` en `false` en la configuración del servidor. [#63279](https://github.com/ClickHouse/ClickHouse/pull/63279) ([Kirill Nikiforov](https://github.com/allmazz)).
* Se añadió una nueva función `getSettingOrDefault` para devolver el valor por defecto y evitar una excepción si no se encuentra una configuración personalizada en el perfil actual. [#69917](https://github.com/ClickHouse/ClickHouse/pull/69917) ([Shankar](https://github.com/shiyer7474)).

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

* Las vistas materializadas actualizables están listas para producción. [#70550](https://github.com/ClickHouse/ClickHouse/pull/70550) ([Michael Kolupaev](https://github.com/al13n321)). Las vistas materializadas actualizables ahora son compatibles con bases de datos Replicated. [#60669](https://github.com/ClickHouse/ClickHouse/pull/60669) ([Michael Kolupaev](https://github.com/al13n321)).
* Las réplicas paralelas pasan de experimental a Beta. Se han rediseñado las SETTINGS que controlan el comportamiento de los algoritmos de réplicas paralelas. En resumen: ClickHouse tiene cuatro algoritmos distintos de lectura en paralelo con múltiples réplicas, lo que se refleja en la SETTING `parallel_replicas_mode`; su valor predeterminado es `read_tasks`. Además, se ha añadido la SETTING de activación `enable_parallel_replicas`. [#63151](https://github.com/ClickHouse/ClickHouse/pull/63151) ([Alexey Milovidov](https://github.com/alexey-milovidov)), ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añade compatibilidad con el tipo `Dynamic` en la mayoría de las funciones, ejecutándolas sobre los tipos internos dentro de `Dynamic`. [#69691](https://github.com/ClickHouse/ClickHouse/pull/69691) ([Pavel Kruglov](https://github.com/Avogar)).
* Permite leer y escribir el tipo `JSON` como una binary string en formato `RowBinary` con las SETTINGS `input_format_binary_read_json_as_string/output_format_binary_write_json_as_string`. [#70288](https://github.com/ClickHouse/ClickHouse/pull/70288) ([Pavel Kruglov](https://github.com/Avogar)).
* Permite serializar y deserializar la columna `JSON` como una única columna String en el Native format. Para la salida, use la SETTING `output_format_native_write_json_as_string`. Para la entrada, use la serialization version `1` antes de los datos de la columna. [#70312](https://github.com/ClickHouse/ClickHouse/pull/70312) ([Pavel Kruglov](https://github.com/Avogar)).
* Se introdujo un modo especial (experimental) del merge selector para tablas MergeTree, que lo hace más agresivo en las particiones cercanas al límite por número de partes. Se controla mediante la SETTING de nivel MergeTree `merge_selector_use_blurry_base`. [#70645](https://github.com/ClickHouse/ClickHouse/pull/70645) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Implementa ser/de genérico entre los tipos `Union` de Avro y `Variant` de ClickHouse. Resuelve [#69713](https://github.com/ClickHouse/ClickHouse/issues/69713). [#69712](https://github.com/ClickHouse/ClickHouse/pull/69712) ([Jiří Kozlovský](https://github.com/jirislav)).

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

* Se refactorizaron `IDisk` e `IObjectStorage` para mejorar el rendimiento. Las tablas de los almacenamientos de objetos `plain` y `plain_rewritable` se inicializarán más rápido. [#68146](https://github.com/ClickHouse/ClickHouse/pull/68146) ([Alexey Milovidov](https://github.com/alexey-milovidov), [Julia Kartseva](https://github.com/jkartseva)). No llame a la API LIST del almacenamiento de objetos al comprobar si existe un archivo o directorio en el disco `plain_rewritable`, ya que puede resultar poco rentable. [#70852](https://github.com/ClickHouse/ClickHouse/pull/70852) ([Julia Kartseva](https://github.com/jkartseva)). Se redujo el número de solicitudes a la API HEAD del almacenamiento de objetos en el disco plain\_rewritable. [#70915](https://github.com/ClickHouse/ClickHouse/pull/70915) ([Julia Kartseva](https://github.com/jkartseva)).
* Se añadió la capacidad de interpretar datos directamente en columnas dispersas. [#69828](https://github.com/ClickHouse/ClickHouse/pull/69828) ([Anton Popov](https://github.com/CurtizJ)).
* Mejora del rendimiento del procesamiento de formatos con una gran cantidad de valores faltantes (p. ej., `JSONEachRow`). [#69875](https://github.com/ClickHouse/ClickHouse/pull/69875) ([Anton Popov](https://github.com/CurtizJ)).
* Admite la lectura en paralelo de grupos de filas de Parquet y la precarga de grupos de filas en modo monohilo. [#69862](https://github.com/ClickHouse/ClickHouse/pull/69862) ([LiuNeng](https://github.com/liuneng1994)).
* Soporte para el índice minmax en `pointInPolygon`. [#62085](https://github.com/ClickHouse/ClickHouse/pull/62085) ([JackyWoo](https://github.com/JackyWoo)).
* Usa filtros de Bloom al leer archivos Parquet. [#62966](https://github.com/ClickHouse/ClickHouse/pull/62966) ([Arthur Passos](https://github.com/arthurpassos)).
* Renombrado sin bloqueo de partes para evitar que `INSERT` afecte a `SELECT` (debido al bloqueo de partes) (en condiciones normales con `fsync_part_directory`, el QPS de `SELECT` con `INSERT` en paralelo se duplicó; con cargas elevadas, el efecto es aún mayor). Tenga en cuenta que, por ahora, esto solo incluye `ReplicatedMergeTree`. [#64955](https://github.com/ClickHouse/ClickHouse/pull/64955) ([Azat Khuzhin](https://github.com/azat)).
* Se respeta `ttl_only_drop_parts` en `materialize ttl`; solo se leen las columnas necesarias para recalcular el TTL y eliminar partes reemplazándolas por una vacía. [#65488](https://github.com/ClickHouse/ClickHouse/pull/65488) ([Andrey Zvonov](https://github.com/zvonand)).
* Se optimizó la creación de hilos en ThreadPool para minimizar la contención por bloqueos. La creación de hilos ahora se realiza fuera de la sección crítica para evitar retrasos en la programación de trabajos y la gestión de hilos en condiciones de alta carga. Esto hace que ClickHouse responda mucho mejor bajo una carga concurrente intensa. [#68694](https://github.com/ClickHouse/ClickHouse/pull/68694) ([filimonov](https://github.com/filimonov)).
* Permite leer columnas de cadenas `LowCardinality` desde `ORC`. [#69481](https://github.com/ClickHouse/ClickHouse/pull/69481) ([李扬](https://github.com/taiyang-li)).
* Se usa `LowCardinality` para `ProfileEvents` en logs del sistema como `part_log`, `query_views_log` y `filesystem_cache_log`. [#70152](https://github.com/ClickHouse/ClickHouse/pull/70152) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora el rendimiento de las funciones `fromUnixTimestamp`/`toUnixTimestamp`. [#71042](https://github.com/ClickHouse/ClickHouse/pull/71042) ([kevinyhzou](https://github.com/KevinyhZou)).
* No deshabilite la lectura no bloqueante de la caché de páginas en todo el servidor al leer mediante E/S bloqueante. Esto provocaba un rendimiento inferior cuando un único sistema de archivos (p. ej., tmpfs) no admitía la llamada al sistema `preadv2`, mientras que otros sí. [#70299](https://github.com/ClickHouse/ClickHouse/pull/70299) ([Antonio Andelic](https://github.com/antonio2368)).
* `ALTER TABLE .. REPLACE PARTITION` ya no espera las mutaciones/merges que se producen en otras particiones. [#59138](https://github.com/ClickHouse/ClickHouse/pull/59138) ([Vasily Nemkov](https://github.com/Enmk)).
* No se realiza la validación al sincronizar la ACL desde Keeper. Se valida durante la creación. No debería importar demasiado, pero hay instalaciones con decenas de miles o incluso más usuarios creados, y la validación innecesaria del hash puede tardar mucho en completarse durante el arranque del servidor (sincroniza todo desde Keeper). [#70644](https://github.com/ClickHouse/ClickHouse/pull/70644) ([Raúl Marín](https://github.com/Algunenano)).

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

* `CREATE TABLE AS` copiará `PRIMARY KEY`, `ORDER BY` y otras cláusulas similares (de las tablas `MergeTree`). [#69739](https://github.com/ClickHouse/ClickHouse/pull/69739) ([sakulali](https://github.com/sakulali)).
* Se admite XID de 64 bits en Keeper. Se puede habilitar con el valor de configuración `use_xid_64`. [#69908](https://github.com/ClickHouse/ClickHouse/pull/69908) ([Antonio Andelic](https://github.com/antonio2368)).
* Los argumentos de línea de comandos para ajustes Bool se establecen en true cuando no se proporciona ningún valor para el argumento (p. ej., `clickhouse-client --optimize_aggregation_in_order --query "SELECT 1"`). [#70459](https://github.com/ClickHouse/ClickHouse/pull/70459) ([davidtsuk](https://github.com/davidtsuk)).
* Se añadieron ajustes a nivel de usuario `min_free_disk_bytes_to_perform_insert` y `min_free_disk_perform_to_throw_insert` para evitar inserciones en discos casi llenos. [#69755](https://github.com/ClickHouse/ClickHouse/pull/69755) ([Marco Vilas Boas](https://github.com/marco-vb)).
* La documentación integrada de las configuraciones será más detallada y completa que la documentación del sitio web. Este es el primer paso para que la documentación del sitio web se genere siempre automáticamente a partir del código fuente. Esto tiene implicaciones a largo plazo: - se garantizará que incluya todas las configuraciones; - no habrá riesgo de que los valores predeterminados queden obsoletos; - podremos generar esta documentación para cada versión de ClickHouse; - la documentación podrá mostrarse desde el propio servidor incluso sin acceso a Internet. Generar la documentación del sitio web a partir del código fuente. [#70289](https://github.com/ClickHouse/ClickHouse/pull/70289) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permitir una subcadena de búsqueda vacía en la función `replace`, con el mismo comportamiento que en PostgreSQL. [#69918](https://github.com/ClickHouse/ClickHouse/pull/69918) ([zhanglistar](https://github.com/zhanglistar)).
* Permitir un patrón vacío en las funciones `replaceRegexp*`. [#70053](https://github.com/ClickHouse/ClickHouse/pull/70053) ([zhanglistar](https://github.com/zhanglistar)).
* Se crean enlaces simbólicos para las tablas en el directorio `data/database_name/` que apuntan a las rutas reales de los datos de la tabla, según la política de almacenamiento, en lugar de al directorio `store/...` del disco predeterminado. [#61777](https://github.com/ClickHouse/ClickHouse/pull/61777) ([Kirill](https://github.com/kirillgarbar)).
* Al analizar un campo `Enum` de `JSON`, una cadena que contiene un entero se interpretará como el elemento `Enum` correspondiente. Esto cierra [#65119](https://github.com/ClickHouse/ClickHouse/issues/65119). [#66801](https://github.com/ClickHouse/ClickHouse/pull/66801) ([scanhex12](https://github.com/scanhex12)).
* Permitir que `TRIM` con una cadena vacía `LEADING` o `TRAILING` no tenga efecto. Cierra [#67792](https://github.com/ClickHouse/ClickHouse/issues/67792). [#68455](https://github.com/ClickHouse/ClickHouse/pull/68455) ([Peter Nguyen](https://github.com/petern48)).
* Se mejora la compatibilidad de `cast(timestamp as String)` con Spark. [#69179](https://github.com/ClickHouse/ClickHouse/pull/69179) ([Wenzheng Liu](https://github.com/lwz9103)).
* Utilice siempre el nuevo analizador para calcular expresiones constantes cuando `enable_analyzer` esté establecido en `true`. Se admite calcular los argumentos de la función de tabla `executable` sin usar una consulta `SELECT` para expresiones constantes. [#69292](https://github.com/ClickHouse/ClickHouse/pull/69292) ([Dmitry Novik](https://github.com/novikd)).
* Se agregó la opción `enable_secure_identifiers` para impedir el uso de identificadores con caracteres especiales. [#69411](https://github.com/ClickHouse/ClickHouse/pull/69411) ([tuanpach](https://github.com/tuanpach)).
* Añade `show_create_query_identifier_quoting_rule` para definir el comportamiento de comillas de los identificadores en el resultado de la consulta `SHOW CREATE TABLE`. Valores posibles: - `user_display`: Cuando los identificadores son una palabra clave. - `when_necessary`: Cuando los identificadores son uno de `{"distinct", "all", "table"}` y cuando pueda dar lugar a ambigüedad: nombres de columna, nombres de atributos de Diccionario. - `always`: Siempre pone entre comillas los identificadores. [#69448](https://github.com/ClickHouse/ClickHouse/pull/69448) ([tuanpach](https://github.com/tuanpach)).
* Mejora de la restauración de las dependencias de las entidades de acceso [#69563](https://github.com/ClickHouse/ClickHouse/pull/69563) ([Vitaly Baranov](https://github.com/vitlibar)).
* Si ejecuta `clickhouse-client` u otra aplicación de CLI, y se inicia lentamente debido a que el servidor está sobrecargado, y empieza a escribir su consulta, como `SELECT`, las versiones anteriores mostraban el contenido restante del eco del terminal antes de imprimir el mensaje de bienvenida, por ejemplo `SELECTClickHouse local version 24.10.1.1.` en lugar de `ClickHouse local version 24.10.1.1.`. Ahora ya está corregido. Esto cierra [#31696](https://github.com/ClickHouse/ClickHouse/issues/31696). [#69856](https://github.com/ClickHouse/ClickHouse/pull/69856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añadir una nueva columna `readonly_duration` a la tabla `system.replicas`. Necesario para poder distinguir en las alertas las réplicas `readonly` reales de las centinela. [#69871](https://github.com/ClickHouse/ClickHouse/pull/69871) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Cambiar el tipo de la opción `join_output_by_rowlist_perkey_rows_threshold` a entero sin signo. [#69886](https://github.com/ClickHouse/ClickHouse/pull/69886) ([kevinyhzou](https://github.com/KevinyhZou)).
* Mejora el registro de spans de OpenTelemetry para que incluya los ajustes de la consulta. [#70011](https://github.com/ClickHouse/ClickHouse/pull/70011) ([sharathks118](https://github.com/sharathks118)).
* Se agregó información de diagnóstico sobre las funciones de array de orden superior si el tipo de resultado de la lambda es inesperado. [#70093](https://github.com/ClickHouse/ClickHouse/pull/70093) ([ttanay](https://github.com/ttanay)).
* Mejora de Keeper: menos bloqueos durante los cambios en el clúster. [#70275](https://github.com/ClickHouse/ClickHouse/pull/70275) ([Antonio Andelic](https://github.com/antonio2368)).
* Añade las palabras clave `WITH IMPLICIT` y `FINAL` al comando `SHOW GRANTS`. Corrige un error menor relacionado con los privilegios implícitos: [#70094](https://github.com/ClickHouse/ClickHouse/issues/70094). [#70293](https://github.com/ClickHouse/ClickHouse/pull/70293) ([pufit](https://github.com/pufit)).
* Se respeta `compatibility` en la configuración de MergeTree. El valor de `compatibility` se toma del perfil `default` al iniciar el servidor, y la configuración predeterminada de MergeTree se ajusta en consecuencia. Los cambios posteriores en la configuración `compatibility` no afectan a la configuración de MergeTree. [#70322](https://github.com/ClickHouse/ClickHouse/pull/70322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evite saturar los logs con cuerpos de respuesta HTTP grandes en caso de error durante la comunicación entre servidores. [#70487](https://github.com/ClickHouse/ClickHouse/pull/70487) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se añadió una nueva opción de configuración, `max_parts_to_move`, para controlar la cantidad máxima de partes que se pueden mover a la vez. [#70520](https://github.com/ClickHouse/ClickHouse/pull/70520) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se limita la frecuencia de ciertos mensajes de registro. [#70601](https://github.com/ClickHouse/ClickHouse/pull/70601) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `CHECK TABLE` con el calificador `PART` tenía un formato incorrecto en el cliente. [#70660](https://github.com/ClickHouse/ClickHouse/pull/70660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se admite la escritura del índice de columna y del índice de desplazamiento con el escritor nativo de Parquet. [#70669](https://github.com/ClickHouse/ClickHouse/pull/70669) ([LiuNeng](https://github.com/liuneng1994)).
* Se admite el análisis de `DateTime64` con microsegundos y zona horaria en sintaxis joda ("joda" es una biblioteca popular de Java para fecha y hora, y la "sintaxis joda" es el estilo de esa biblioteca). [#70737](https://github.com/ClickHouse/ClickHouse/pull/70737) ([kevinyhzou](https://github.com/KevinyhZou)).
* Se cambió el método para determinar si un almacenamiento en la nube admite la [eliminación por lotes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html) o no. [#70786](https://github.com/ClickHouse/ClickHouse/pull/70786) ([Vitaly Baranov](https://github.com/vitlibar)).
* Soporte para la página v2 de Parquet en el lector nativo. [#70807](https://github.com/ClickHouse/ClickHouse/pull/70807) ([Arthur Passos](https://github.com/arthurpassos)).
* Una comprobación para verificar si la tabla tiene configurados tanto `storage_policy` como `disk`. Se añade una comprobación para verificar si una nueva política de almacenamiento es compatible con la anterior al usar la configuración `disk`. [#70839](https://github.com/ClickHouse/ClickHouse/pull/70839) ([Kirill](https://github.com/kirillgarbar)).
* Se agregan `system.s3_queue_settings` y `system.azure_queue_settings`. [#70841](https://github.com/ClickHouse/ClickHouse/pull/70841) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Las funciones `base58Encode` y `base58Decode` ahora aceptan argumentos del tipo `FixedString`. Ejemplo: `SELECT base58Encode(toFixedString('plaintext', 9));`. [#70846](https://github.com/ClickHouse/ClickHouse/pull/70846) ([Faizan Patel](https://github.com/faizan2786)).
* Añada la columna `partition` a cada tipo de entrada del log de partes. Anteriormente, solo se establecía para algunas entradas. Esto cierra [#70819](https://github.com/ClickHouse/ClickHouse/issues/70819). [#70848](https://github.com/ClickHouse/ClickHouse/pull/70848) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agregan los eventos `MergeStart` y `MutateStart` a `system.part_log`, lo que facilita el análisis y la visualización de las fusiones. [#70850](https://github.com/ClickHouse/ClickHouse/pull/70850) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade un evento de perfil sobre la cantidad de partes de origen fusionadas. Permite supervisar el fan-out de MergeTree en producción. [#70908](https://github.com/ClickHouse/ClickHouse/pull/70908) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se volvieron a habilitar las descargas en segundo plano a la caché del sistema de archivos. [#70929](https://github.com/ClickHouse/ClickHouse/pull/70929) ([Nikita Taranov](https://github.com/nickitat)).
* Se añade un nuevo algoritmo selector de merge, llamado `Trivial`, solo para uso profesional. Es peor que el selector de merge `Simple`. [#70969](https://github.com/ClickHouse/ClickHouse/pull/70969) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Soporte para `CREATE OR REPLACE VIEW` de forma atómica. [#70536](https://github.com/ClickHouse/ClickHouse/pull/70536) ([tuanpach](https://github.com/tuanpach))
* Se añadió el modo `strict_once` a la función de agregación `windowFunnel` para evitar contar un mismo evento varias veces si coincide con varias condiciones; cierra [#21835](https://github.com/ClickHouse/ClickHouse/issues/21835). [#69738](https://github.com/ClickHouse/ClickHouse/pull/69738) ([Vladimir Cherkasov](https://github.com/vdimir)).

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

* Se aplican actualizaciones de configuración en el objeto Context global. Esto corrige problemas como [#62308](https://github.com/ClickHouse/ClickHouse/issues/62308). [#62944](https://github.com/ClickHouse/ClickHouse/pull/62944) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un problema por el que `ReadSettings` no usaba los valores configurados por el usuario, sino solo los valores predeterminados. [#65625](https://github.com/ClickHouse/ClickHouse/pull/65625) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un error de incompatibilidad de tipos en `sumMapFiltered` al usar argumentos con signo. [#58408](https://github.com/ClickHouse/ClickHouse/pull/58408) ([Chen768959](https://github.com/Chen768959)).
* Se corrige la monotonicidad de las funciones de conversión de tipo toHour cuando se pasa el argumento opcional de zona horaria. [#60264](https://github.com/ClickHouse/ClickHouse/pull/60264) ([Amos Bird](https://github.com/amosbird)).
* Se flexibiliza la comprobación `supportsPrewhere` para las tablas `Merge`. Esto corrige [#61064](https://github.com/ClickHouse/ClickHouse/issues/61064). Se había endurecido innecesariamente en [#60082](https://github.com/ClickHouse/ClickHouse/issues/60082). [#61091](https://github.com/ClickHouse/ClickHouse/pull/61091) ([Amos Bird](https://github.com/amosbird)).
* Se corrige la gestión de la configuración `use_concurrency_control` para que se aplique correctamente el límite `concurrent_threads_soft_limit_num`. Esto habilita el control de concurrencia de forma predeterminada, ya que antes no funcionaba correctamente. [#61473](https://github.com/ClickHouse/ClickHouse/pull/61473) ([Sergei Trifonov](https://github.com/serxa)).
* Se corrigió la optimización incorrecta de la sección `JOIN ON` en el caso de una comprobación `IS NULL` bajo cualquier otra función (como `NOT`), que podía dar lugar a resultados incorrectos. Cierra [#67915](https://github.com/ClickHouse/ClickHouse/issues/67915). [#68049](https://github.com/ClickHouse/ClickHouse/pull/68049) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Evita las consultas `ALTER` que harían inválida la consulta `CREATE` de las tablas. [#68574](https://github.com/ClickHouse/ClickHouse/pull/68574) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige el formato inconsistente del AST de las funciones `negate` (`-`) y `NOT` con tuplas y arrays. [#68600](https://github.com/ClickHouse/ClickHouse/pull/68600) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige la inserción de un tipo incompleto en `Dynamic` durante la deserialización. Podía dar lugar a errores `Parameter out of bound`. [#69291](https://github.com/ClickHouse/ClickHouse/pull/69291) ([Pavel Kruglov](https://github.com/Avogar)).
* Replicación zero-copy, que es experimental y no debe usarse en producción: corrección de un bucle infinito después de `restore replica` en el replicated merge tree con zero copy. [#69293](https://github.com/CljmnickHouse/ClickHouse/pull/69293) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se restablece el valor predeterminado de `processing_threads_num` al número de núcleos de CPU en el almacenamiento `S3Queue`. [#69384](https://github.com/ClickHouse/ClickHouse/pull/69384) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Evitar el flujo de try/catch al deserializar/serializar protobuf repetidos anidados en columnas anidadas (corrige [#41971](https://github.com/ClickHouse/ClickHouse/issues/41971)). [#69556](https://github.com/ClickHouse/ClickHouse/pull/69556) ([Eliot Hautefeuille](https://github.com/hileef)).
* Se corrige un fallo al insertar en una columna FixedString del motor PostgreSQL. [#69584](https://github.com/ClickHouse/ClickHouse/pull/69584) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un bloqueo al ejecutar `create view t as (with recursive 42 as ttt select ttt);`. [#69676](https://github.com/ClickHouse/ClickHouse/pull/69676) ([Han Fei](https://github.com/hanfei1991)).
* Se corrigió un error por el que `maxMapState` lanzaba 'Bad get' si el tipo de valor era DateTime64. [#69787](https://github.com/ClickHouse/ClickHouse/pull/69787) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrige `getSubcolumn` en columnas `LowCardinality` al sobrescribir `useDefaultImplementationForLowCardinalityColumns` para que devuelva `true`. [#69831](https://github.com/ClickHouse/ClickHouse/pull/69831) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrige el bloqueo permanente de los envíos distribuidos si falla un DROP de una tabla distribuida. [#69843](https://github.com/ClickHouse/ClickHouse/pull/69843) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigieron las consultas que no se podían cancelar que contienen WITH FILL con claves NaN. Esto cierra [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261). [#69845](https://github.com/ClickHouse/ClickHouse/pull/69845) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el valor predeterminado del analizador con el antiguo valor de compatibilidad. [#69895](https://github.com/ClickHouse/ClickHouse/pull/69895) ([Raúl Marín](https://github.com/Algunenano)).
* No comprobar las dependencias en CREATE OR REPLACE VIEW durante el DROP de la tabla antigua. Anteriormente, la consulta CREATE OR REPLACE fallaba cuando había tablas dependientes de la vista recreada. [#69907](https://github.com/ClickHouse/ClickHouse/pull/69907) ([Pavel Kruglov](https://github.com/Avogar)).
* Algo relacionado con Decimal. Corrige [#69730](https://github.com/ClickHouse/ClickHouse/issues/69730). [#69978](https://github.com/ClickHouse/ClickHouse/pull/69978) ([Arthur Passos](https://github.com/arthurpassos)).
* Ahora DEFINER/INVOKER funcionará con vistas parametrizadas. [#69984](https://github.com/ClickHouse/ClickHouse/pull/69984) ([pufit](https://github.com/pufit)).
* Corregir el análisis sintáctico de los definidores de la vista. [#69985](https://github.com/ClickHouse/ClickHouse/pull/69985) ([pufit](https://github.com/pufit)).
* Se corrigió un error por el que la zona horaria podía alterar el resultado de la consulta con argumentos `Date` o `Date32`. [#70036](https://github.com/ClickHouse/ClickHouse/pull/70036) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige `Block structure mismatch` en consultas con vistas anidadas y una condición `WHERE`. Corrige [#66209](https://github.com/ClickHouse/ClickHouse/issues/66209). [#70054](https://github.com/ClickHouse/ClickHouse/pull/70054) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se evita reutilizar columnas entre distintas tuplas con nombre al evaluar las funciones `tuple`. Esto corrige [#70022](https://github.com/ClickHouse/ClickHouse/issues/70022). [#70103](https://github.com/ClickHouse/ClickHouse/pull/70103) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un LOGICAL\_ERROR incorrecto al reemplazar literales en rangos. [#70122](https://github.com/ClickHouse/ClickHouse/pull/70122) ([Pablo Marcos](https://github.com/pamarcos)).
* Se comprueba el tipo Nullable(Nothing) durante ALTER TABLE MODIFY COLUMN/QUERY para evitar tablas con ese tipo de dato. [#70123](https://github.com/ClickHouse/ClickHouse/pull/70123) ([Pavel Kruglov](https://github.com/Avogar)).
* Mensaje de error adecuado para la consulta no válida `JOIN ... ON *`, cierra [#68650](https://github.com/ClickHouse/ClickHouse/issues/68650). [#70124](https://github.com/ClickHouse/ClickHouse/pull/70124) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige un resultado incorrecto provocado por un índice de omisión. [#70127](https://github.com/ClickHouse/ClickHouse/pull/70127) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige una condición de carrera en los datos en el método `decompress` de ColumnObject/ColumnTuple que podía provocar el uso del heap después de liberar memoria. [#70137](https://github.com/ClickHouse/ClickHouse/pull/70137) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un posible cuelgue en ALTER COLUMN con el tipo Dynamic. [#70144](https://github.com/ClickHouse/ClickHouse/pull/70144) ([Pavel Kruglov](https://github.com/Avogar)).
* Ahora ClickHouse considerará más errores como recuperables y no marcará las partes de datos como dañadas en caso de este tipo de errores. [#70145](https://github.com/ClickHouse/ClickHouse/pull/70145) ([alesapin](https://github.com/alesapin)).
* Usar el parámetro `max_types` adecuado al crear el tipo Dynamic para una subcolumna JSON. [#70147](https://github.com/ClickHouse/ClickHouse/pull/70147) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrigió la visualización de la contraseña en `system.query_log` para los usuarios con el método de autenticación por contraseña bcrypt. [#70148](https://github.com/ClickHouse/ClickHouse/pull/70148) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige el contador de eventos de la interfaz nativa (InterfaceNativeSendBytes). [#70153](https://github.com/ClickHouse/ClickHouse/pull/70153) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige un posible fallo relacionado con columnas JSON. [#70172](https://github.com/ClickHouse/ClickHouse/pull/70172) ([Pavel Kruglov](https://github.com/Avogar)).
* Se solucionan varios problemas con `arrayMin` y `arrayMax`. [#70207](https://github.com/ClickHouse/ClickHouse/pull/70207) ([Raúl Marín](https://github.com/Algunenano)).
* Se respeta la configuración allow\_simdjson en el analizador del tipo JSON. [#70218](https://github.com/ClickHouse/ClickHouse/pull/70218) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige una desreferenciación de puntero nulo al crear una vista materializada con dos consultas `SELECT` y un `INTERSECT`, p. ej., `CREATE MATERIALIZED VIEW v0 AS (SELECT 1) INTERSECT (SELECT 1);`. [#70264](https://github.com/ClickHouse/ClickHouse/pull/70264) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* No modifique la configuración global mediante scripts de inicio. Anteriormente, cambiar una configuración en un script de inicio hacía que se modificara globalmente. [#70310](https://github.com/ClickHouse/ClickHouse/pull/70310) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige el `ALTER` del tipo `Dynamic` al reducir el parámetro max\_types, lo que podría provocar un fallo del servidor. [#70328](https://github.com/ClickHouse/ClickHouse/pull/70328) ([Pavel Kruglov](https://github.com/Avogar)).
* Se corrige un fallo al usar incorrectamente WITH FILL. [#70338](https://github.com/ClickHouse/ClickHouse/pull/70338) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un posible uso de memoria después de liberarla en `SYSTEM DROP FORMAT SCHEMA CACHE FOR Protobuf`. [#70358](https://github.com/ClickHouse/ClickHouse/pull/70358) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un bloqueo al ejecutar GROUP BY sobre una subcolumna de un subobjeto JSON. [#70374](https://github.com/ClickHouse/ClickHouse/pull/70374) ([Pavel Kruglov](https://github.com/Avogar)).
* No precargar partes en fusiones verticales si la parte no tiene filas. [#70452](https://github.com/ClickHouse/ClickHouse/pull/70452) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige un cierre inesperado en WHERE con funciones lambda. [#70464](https://github.com/ClickHouse/ClickHouse/pull/70464) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió la creación de tablas con `CREATE ... AS table_function(...)` en la base de datos `Replicated` cuando el origen de la table function no está disponible en la réplica secundaria. [#70511](https://github.com/ClickHouse/ClickHouse/pull/70511) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignorar toda la salida del insert asíncrono con `wait_for_async_insert=1`. Cierra [#62644](https://github.com/ClickHouse/ClickHouse/issues/62644). [#70530](https://github.com/ClickHouse/ClickHouse/pull/70530) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ignorar frozen\_metadata.txt al recorrer el directorio shadow desde system.remote\_data\_paths. [#70590](https://github.com/ClickHouse/ClickHouse/pull/70590) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Se corrige un error en la creación de funciones de ventana con estado sobre memoria desalineada. [#70631](https://github.com/ClickHouse/ClickHouse/pull/70631) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigieron cierres inesperados poco frecuentes en consultas `SELECT` y durante las fusiones tras añadir una columna de tipo `Array` con una expresión predeterminada no vacía. [#70695](https://github.com/ClickHouse/ClickHouse/pull/70695) ([Anton Popov](https://github.com/CurtizJ)).
* Las inserciones en la función de tabla s3 respetarán la configuración de la consulta. [#70696](https://github.com/ClickHouse/ClickHouse/pull/70696) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Se corrige la recursión infinita al inferir un esquema de protobuf cuando está activada la omisión de campos no compatibles. [#70697](https://github.com/ClickHouse/ClickHouse/pull/70697) ([Raúl Marín](https://github.com/Algunenano)).
* Desactivar enable\_named\_columns\_in\_function\_tuple de forma predeterminada. [#70833](https://github.com/ClickHouse/ClickHouse/pull/70833) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un problema por el que la configuración `processing&#95;threads&#95;num` del motor de tabla S3Queue no surtía efecto cuando se deducía a partir del número de núcleos de CPU del servidor. [#70837](https://github.com/ClickHouse/ClickHouse/pull/70837) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se normalizan los argumentos de tuplas con nombre en los estados de agregación. Esto corrige [#69732](https://github.com/ClickHouse/ClickHouse/issues/69732) . [#70853](https://github.com/ClickHouse/ClickHouse/pull/70853) ([Amos Bird](https://github.com/amosbird)).
* Corrige un error lógico causado por ceros negativos en la tabla hash de dos niveles. Esto cierra [#70973](https://github.com/ClickHouse/ClickHouse/issues/70973). [#70979](https://github.com/ClickHouse/ClickHouse/pull/70979) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigieron `limit by` y `limit with ties` para Distributed y las réplicas paralelas. [#70880](https://github.com/ClickHouse/ClickHouse/pull/70880) ([Nikita Taranov](https://github.com/nickitat)).

### <a id="249" /> Lanzamiento de ClickHouse 24.9, 2024-09-26. [Presentación](https://presentations.clickhouse.com/2024-release-24.9/), [Video](https://www.youtube.com/watch?v=ray6wJGCHbs)

<Frame>
  <iframe src="https://www.youtube.com/embed/ray6wJGCHbs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* Se admiten expresiones como `a[b].c` para tuplas con nombre, así como subíndices con nombre sobre expresiones arbitrarias, por ejemplo, `expr().name`. Esto resulta útil para procesar JSON. Esto cierra [#54965](https://github.com/ClickHouse/ClickHouse/issues/54965). En versiones anteriores, una expresión de la forma `expr().name` se interpretaba como `tupleElement(expr(), name)`, y el analizador de consultas buscaba una columna `name` en lugar del elemento de tupla correspondiente; en la nueva versión, en cambio, se convierte en `tupleElement(expr(), 'name')`. En la mayoría de los casos, la versión anterior no funcionaba, pero es posible imaginar un escenario muy inusual en el que este cambio podría provocar incompatibilidades: si almacenaba los nombres de los elementos de la tupla en una columna o un alias cuyo nombre fuera distinto del nombre del elemento de la tupla: `SELECT 'b' AS a, CAST([tuple(123)] AS 'Array(Tuple(b UInt8))') AS t, t[1].a`. Es muy poco probable que haya utilizado consultas de este tipo, pero aun así debemos marcar este cambio como potencialmente incompatible con versiones anteriores. [#68435](https://github.com/ClickHouse/ClickHouse/pull/68435) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Cuando la configuración `print_pretty_type_names` está habilitada, el tipo de dato `Tuple` se mostrará en formato Pretty en las sentencias `SHOW CREATE TABLE`, en la función `formatQuery` y en el modo interactivo de `clickhouse-client` y `clickhouse-local`. En versiones anteriores, esta configuración solo se aplicaba a las consultas `DESCRIBE` y a `toTypeName`. Esto cierra [#65753](https://github.com/ClickHouse/ClickHouse/issues/65753). [#68492](https://github.com/ClickHouse/ClickHouse/pull/68492) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* No se permite especificar explícitamente un UUID al crear una tabla en bases de datos `Replicated`. Tampoco se permite especificar explícitamente la ruta de Keeper ni el nombre de la réplica para tablas \*MergeTree en bases de datos `Replicated`. Esto introduce una nueva configuración, `database_replicated_allow_explicit_uuid`, y cambia el tipo de `database_replicated_allow_replicated_engine_arguments` de Bool a UInt64 [#66104](https://github.com/ClickHouse/ClickHouse/pull/66104) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* Permite que un usuario tenga varios métodos de autenticación en lugar de solo uno. Permite restablecer los métodos de autenticación al método añadido más recientemente. Si desea ejecutar instancias en 24.8 y una en 24.9 durante un tiempo, es mejor establecer `max_authentication_methods_per_user` = 1 durante ese período para evitar posibles incompatibilidades. [#65277](https://github.com/ClickHouse/ClickHouse/pull/65277) ([Arthur Passos](https://github.com/arthurpassos)).
* Se añade soporte para `ATTACH PARTITION ALL FROM`. [#61987](https://github.com/ClickHouse/ClickHouse/pull/61987) ([Kirill Nikiforov](https://github.com/allmazz)).
* Se agrega la configuración `input_format_json_empty_as_default` que, cuando está habilitada, trata los campos vacíos de las entradas JSON como valores predeterminados. Cierra [#59339](https://github.com/ClickHouse/ClickHouse/issues/59339). [#66782](https://github.com/ClickHouse/ClickHouse/pull/66782) ([Alexis Arnaud](https://github.com/a-a-f)).
* Se añadieron las funciones `overlay` y `overlayUTF8`, que sustituyen partes de una cadena por otra. Ejemplo: `SELECT overlay('Hello New York', 'Jersey', 11)` devuelve `Hello New Jersey`. [#66933](https://github.com/ClickHouse/ClickHouse/pull/66933) ([李扬](https://github.com/taiyang-li)).
* Se añade compatibilidad con eliminaciones ligeras en particiones `DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE expr; ` [#67805](https://github.com/ClickHouse/ClickHouse/pull/67805) ([sunny](https://github.com/sunny19930321)).
* Se implementó la comparación de valores del tipo de dato `Interval` de distintos dominios (como segundos y minutos), por lo que ahora se convierten al supertipo común mínimo. [#68057](https://github.com/ClickHouse/ClickHouse/pull/68057) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Añade la configuración `create_if_not_exists` para usar de forma predeterminada el comportamiento `IF NOT EXISTS` en las sentencias CREATE. [#68164](https://github.com/ClickHouse/ClickHouse/pull/68164) ([Peter Nguyen](https://github.com/petern48)).
* Permite leer tablas `Iceberg` en Azure y en entornos locales. [#68210](https://github.com/ClickHouse/ClickHouse/pull/68210) ([Daniil Ivanik](https://github.com/divanik)).
* Ahora se pueden eliminar las entradas de la caché de consultas por etiqueta. Por ejemplo, la entrada de la caché de consultas creada por `SELECT 1 SETTINGS use_query_cache = true, query_cache_tag = 'abc'` ahora se puede eliminar con `SYSTEM DROP QUERY CACHE TAG 'abc'`. [#68477](https://github.com/ClickHouse/ClickHouse/pull/68477) ([Michał Tabaszewski](https://github.com/pinsvin00)).
* Añadir cifrado de almacenamiento para named collections. [#68615](https://github.com/ClickHouse/ClickHouse/pull/68615) ([Pablo Marcos](https://github.com/pamarcos)).
* Añade la columna virtual `_headers` al motor de tabla `URL`. Cierra [#65026](https://github.com/ClickHouse/ClickHouse/issues/65026). [#68867](https://github.com/ClickHouse/ClickHouse/pull/68867) ([flynn](https://github.com/ucasfl)).
* Añadir la tabla `system.projections` para seguir las proyecciones disponibles. [#68901](https://github.com/ClickHouse/ClickHouse/pull/68901) ([Jordi Villar](https://github.com/jrdi)).
* Se añadió la nueva función `arrayZipUnaligned` para ofrecer compatibilidad con Spark (donde se llama `arrays_zip`), que admite arrays no alineados a partir de la `arrayZip` original. [#69030](https://github.com/ClickHouse/ClickHouse/pull/69030) ([李扬](https://github.com/taiyang-li)).
* Se añadieron los comandos `cp`/`mv` a la aplicación de línea de comandos del cliente de Keeper, que permiten copiar/mover nodos de forma atómica. [#69034](https://github.com/ClickHouse/ClickHouse/pull/69034) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Añade el argumento `scale` (valor predeterminado: `true`) a la función `arrayAUC`, lo que permite omitir el paso de normalización (incidencia [#69609](https://github.com/ClickHouse/ClickHouse/issues/69609)). [#69717](https://github.com/ClickHouse/ClickHouse/pull/69717) ([gabrielmcg44](https://github.com/gabrielmcg44)).

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

* Añade una opción de configuración `input_format_try_infer_variants` que permite inferir el tipo `Variant` durante la inferencia del esquema para formatos de texto cuando hay más de un tipo posible para los elementos de columnas/arrays. [#63798](https://github.com/ClickHouse/ClickHouse/pull/63798) ([Shaun Struwig](https://github.com/Blargian)).
* Añade las funciones de agregado `distinctDynamicTypes`/`distinctJSONPaths`/`distinctJSONPathsAndTypes` para mejorar la introspección del contenido de las columnas de tipo JSON. [#68463](https://github.com/ClickHouse/ClickHouse/pull/68463) ([Kruglov Pavel](https://github.com/Avogar)).
* Nuevo algoritmo para determinar la unidad de distribución de marks entre réplicas paralelas mediante un hash consistente. Se eligen distintas cantidades de marks para diferentes patrones de lectura con el fin de mejorar el rendimiento. [#68424](https://github.com/ClickHouse/ClickHouse/pull/68424) ([Nikita Taranov](https://github.com/nickitat)).
* Anteriormente, la complejidad algorítmica de la lógica de deduplicación de partes al procesar anuncios de réplicas paralelas era O(n^2), lo que podía llevar un tiempo apreciable en tablas con muchas partes (o particiones). Este cambio hace que la complejidad pase a ser O(n\*log(n)). [#69596](https://github.com/ClickHouse/ClickHouse/pull/69596) ([Alexander Gololobov](https://github.com/davenger)).
* Mejoras en las vistas materializadas actualizables: modo append (`... REFRESH EVERY 1 MINUTE APPEND ...`) para añadir filas a la tabla existente en lugar de sobrescribirla por completo, reintentos (desactivados de forma predeterminada y configurados en la sección SETTINGS de la consulta), consulta `SYSTEM WAIT VIEW <name>` que espera a que termine la actualización en curso, y algunas correcciones. [#58934](https://github.com/ClickHouse/ClickHouse/pull/58934) ([Michael Kolupaev](https://github.com/al13n321)).
* Se añadió `min_max` como un nuevo tipo de estadísticas (experimental). Admite estimar predicados de rango sobre columnas numéricas, p. ej., `x < 100`. [#67013](https://github.com/ClickHouse/ClickHouse/pull/67013) ([JackyWoo](https://github.com/JackyWoo)).
* Se ha mejorado `castOrDefault` para columnas Variant/Dynamic para que funcione incluso cuando los tipos internos no sean convertibles en absoluto. [#67150](https://github.com/ClickHouse/ClickHouse/pull/67150) ([Kruglov Pavel](https://github.com/Avogar)).
* La replicación de un subconjunto de columnas ya está disponible a través de MaterializedPostgreSQL. Cierra [#33748](https://github.com/ClickHouse/ClickHouse/issues/33748). [#69092](https://github.com/ClickHouse/ClickHouse/pull/69092) ([Kruglov Kirill](https://github.com/1on)).

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

* Se implementó la lectura únicamente de los archivos necesarios para el particionado de Hive. [#68963](https://github.com/ClickHouse/ClickHouse/pull/68963) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se mejoró el rendimiento de JOIN reordenando la tabla derecha por claves cuando las claves de la tabla son densas en los hash joins LEFT o INNER. [#60341](https://github.com/ClickHouse/ClickHouse/pull/60341) ([kevinyhzou](https://github.com/KevinyhZou)).
* Se mejoró el rendimiento de ALL JOIN añadiendo la lista de filas de forma diferida. [#63677](https://github.com/ClickHouse/ClickHouse/pull/63677) ([kevinyhzou](https://github.com/KevinyhZou)).
* Se cargan los metadatos de la caché del sistema de archivos de forma asíncrona durante el proceso de arranque para acelerar los reinicios (controlado por la configuración `load_metadata_asynchronously`). [#65736](https://github.com/ClickHouse/ClickHouse/pull/65736) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Las funciones `array` y `map` se optimizaron para procesar ciertos casos comunes mucho más rápido. [#67707](https://github.com/ClickHouse/ClickHouse/pull/67707) ([李扬](https://github.com/taiyang-li)).
* Optimización menor en la lectura de cadenas ORC, especialmente cuando una columna no contiene valores NULL. [#67794](https://github.com/ClickHouse/ClickHouse/pull/67794) ([李扬](https://github.com/taiyang-li)).
* Se mejoró el rendimiento general de las fusiones al reducir la sobrecarga de planificación de sus pasos. [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)).
* Se aceleran las solicitudes a S3 cuando no hay un profile configurado, no hay credentials configuradas e IMDS no está disponible (por ejemplo, al consultar un bucket público desde una máquina fuera de una Cloud). Esto cierra [#52771](https://github.com/ClickHouse/ClickHouse/issues/52771). [#68082](https://github.com/ClickHouse/ClickHouse/pull/68082) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se desvirtualiza el lector de format en `RowInputFormatWithNamesAndTypes` para obtener una mejora de rendimiento. [#68437](https://github.com/ClickHouse/ClickHouse/pull/68437) ([李扬](https://github.com/taiyang-li)).
* Se añade la fusión paralela para la aggregate function `uniq` al agregar con una clave de GROUP BY, con el fin de maximizar el uso de la CPU. [#68441](https://github.com/ClickHouse/ClickHouse/pull/68441) ([Jiebin Sun](https://github.com/jiebinn)).
* Se añade la configuración `output_format_orc_dictionary_key_size_threshold` para permitir al usuario habilitar la codificación por diccionario para columnas String en el output format `ORC`. Esto ayuda a reducir significativamente el tamaño del archivo `ORC` de salida y a mejorar el rendimiento de lectura. [#68591](https://github.com/ClickHouse/ClickHouse/pull/68591) ([李扬](https://github.com/taiyang-li)).
* Se incorpora una nueva solicitud de Keeper, RemoveRecursive, que elimina un nodo junto con todo su subárbol. [#69332](https://github.com/ClickHouse/ClickHouse/pull/69332) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Se acelera el rendimiento de inserción en una tabla con un vector similarity index añadiendo datos al índice vectorial en paralelo. [#69493](https://github.com/ClickHouse/ClickHouse/pull/69493) ([flynn](https://github.com/ucasfl)).
* Se reduce el uso de memoria de las inserciones en JSON mediante un tamaño de búfer de escritura adaptativo. Muchos archivos creados por una columna JSON en una parte wide contienen poca cantidad de datos y no tiene sentido asignarles un búfer de 1 MB. [#69272](https://github.com/ClickHouse/ClickHouse/pull/69272) ([Kruglov Pavel](https://github.com/Avogar)).
* Se evita devolver un hilo al threadpool de concurrent hash join para evitar que la consulta genere hilos en exceso. [#69406](https://github.com/ClickHouse/ClickHouse/pull/69406) ([Duc Canh Le](https://github.com/canhld94)).

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

* CREATE TABLE AS ahora copia PRIMARY KEY, ORDER BY y cláusulas similares. Por ahora, solo es compatible con la familia de motores de tabla MergeTree. [#69076](https://github.com/ClickHouse/ClickHouse/pull/69076) ([sakulali](https://github.com/sakulali)).
* Se reforzaron las partes del código relacionadas con el análisis sintáctico de entidades pequeñas. Se encontraron y corrigieron los siguientes errores (menores): - si una tabla `DeltaLake` está particionada por Bool, el valor de la partición siempre se interpreta como `false`; - la tabla `ExternalDistributed` usaba un solo segmento de las direcciones proporcionadas; el valor del ajuste `max_threads` y otros similares se imprimía como `'auto(N)'` en lugar de `auto(N)`. [#52503](https://github.com/ClickHouse/ClickHouse/pull/52503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usar métricas específicas de cgroup para contabilizar el uso de CPU en lugar de métricas de todo el sistema. [#62003](https://github.com/ClickHouse/ClickHouse/pull/62003) ([Nikita Taranov](https://github.com/nickitat)).
* La planificación de E/S para discos remotos de S3 ahora se realiza a nivel de los flujos de sockets HTTP (en lugar de las solicitudes completas a S3) para resolver problemas de throttling de `bandwidth_limit`. [#65182](https://github.com/ClickHouse/ClickHouse/pull/65182) ([Sergei Trifonov](https://github.com/serxa)).
* Las funciones `upperUTF8` y `lowerUTF8` antes solo podían convertir a mayúsculas / minúsculas caracteres cirílicos. Esta limitación ya se eliminó y ahora los caracteres de cualquier idioma se convierten a mayúsculas/minúsculas. Ejemplo: `SELECT upperUTF8('Süden')` ahora devuelve `SÜDEN`. [#65761](https://github.com/ClickHouse/ClickHouse/pull/65761) ([李扬](https://github.com/taiyang-li)).
* Cuando se produce una eliminación ligera en una tabla con proyección(es), aunque los usuarios podían elegir entre lanzar una excepción (de forma predeterminada) o eliminar la proyección cuando se produjera la eliminación ligera, ahora existe una tercera opción: mantener la eliminación ligera y luego reconstruir la(s) proyección(es). [#66169](https://github.com/ClickHouse/ClickHouse/pull/66169) ([jsc0218](https://github.com/jsc0218)).
* Se han añadido dos opciones (`dns_allow_resolve_names_to_ipv4` y `dns_allow_resolve_names_to_ipv6`) para permitir bloquear conexiones según la familia IP. [#66895](https://github.com/ClickHouse/ClickHouse/pull/66895) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Permitir configurar la omisión de Ctrl-Z (ignore\_shell\_suspend) en clickhouse-client. [#67134](https://github.com/ClickHouse/ClickHouse/pull/67134) ([Azat Khuzhin](https://github.com/azat)).
* Mejora la validación de UTF-8 en los formatos de salida JSON. Garantiza que se genere JSON válido en caso de determinadas secuencias de bytes en los datos de resultados. [#67938](https://github.com/ClickHouse/ClickHouse/pull/67938) ([mwoenker](https://github.com/mwoenker)).
* Se añadieron eventos de perfil para fusiones y mutaciones, a fin de mejorar la introspección. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)).
* ODBC: obtener http\_max\_tries de la configuración del servidor. [#68128](https://github.com/ClickHouse/ClickHouse/pull/68128) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)).
* Agregar compatibilidad con comodines para la identificación de usuarios en la extensión X.509 SubjectAltName. [#68236](https://github.com/ClickHouse/ClickHouse/pull/68236) ([Marco Vilas Boas](https://github.com/marco-vb)).
* Mejora de la inferencia de esquemas para valores de fecha y hora. Ahora `DateTime64` se usa solo cuando la fecha y hora tiene parte fraccionaria; de lo contrario, se usa el `DateTime` normal. La inferencia de Date/DateTime ahora es más estricta, especialmente cuando `date_time_input_format='best_effort'`, para evitar inferir valores de fecha y hora a partir de cadenas en casos límite. [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)).
* Eliminar el código antiguo de named collections de los diccionarios y reemplazarlo por el nuevo, que permite usar en los diccionarios named collections creadas con DDL. Cierra [#60936](https://github.com/ClickHouse/ClickHouse/issues/60936), cierra [#36890](https://github.com/ClickHouse/ClickHouse/issues/36890). [#68412](https://github.com/ClickHouse/ClickHouse/pull/68412) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Usar HTTP/1.1 en lugar de HTTP/1.0 (establecido de forma predeterminada) para los autenticadores HTTP externos. [#68456](https://github.com/ClickHouse/ClickHouse/pull/68456) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Se añadió un nuevo conjunto de métricas para la introspección del thread pool, que ofrece información más detallada sobre su rendimiento y comportamiento. [#68674](https://github.com/ClickHouse/ClickHouse/pull/68674) ([filimonov](https://github.com/filimonov)).
* Se admiten parámetros de consulta en inserciones asíncronas con el formato `Values`. [#68741](https://github.com/ClickHouse/ClickHouse/pull/68741) ([Anton Popov](https://github.com/CurtizJ)).
* Se añadió compatibilidad con `Date32` en `dateTrunc` y `toStartOfInterval`. [#68874](https://github.com/ClickHouse/ClickHouse/pull/68874) ([LiuNeng](https://github.com/liuneng1994)).
* Agrega las columnas `plan_step_name` y `plan_step_description` a `system.processors_profile_log`. [#68954](https://github.com/ClickHouse/ClickHouse/pull/68954) ([Alexander Gololobov](https://github.com/davenger)).
* Compatibilidad con el español en los diccionarios integrados. [#69035](https://github.com/ClickHouse/ClickHouse/pull/69035) ([Vasily Okunev](https://github.com/VOkunev)).
* Añadir la arquitectura de la CPU al mensaje breve de información sobre fallos. [#69037](https://github.com/ClickHouse/ClickHouse/pull/69037) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Las consultas fallarán más rápido si no es posible establecer una nueva conexión con Keeper durante los reintentos. [#69148](https://github.com/ClickHouse/ClickHouse/pull/69148) ([Raúl Marín](https://github.com/Algunenano)).
* Actualizar Database Factory para que los motores de base de datos definidos por el usuario puedan tener argumentos, configuraciones y sobrescrituras de tablas (similar a StorageFactory). [#69201](https://github.com/ClickHouse/ClickHouse/pull/69201) ([NikBarykin](https://github.com/NikBarykin)).
* El modo de restauración que reemplaza todos los motores de tablas externas y las funciones de tabla externa por el motor `Null` (configuraciones `restore_replace_external_engines_to_null`, `restore_replace_external_table_functions_to_null`) fallaba si la tabla tenía SETTINGS. Ahora elimina los SETTINGS de la definición de la tabla en este caso y permite restaurar esas tablas. [#69253](https://github.com/ClickHouse/ClickHouse/pull/69253) ([Ilya Yatsishin](https://github.com/qoega)).
* CLICKHOUSE\_PASSWORD se escapa correctamente en XML en el entrypoint de la imagen de ClickHouse. [#69301](https://github.com/ClickHouse/ClickHouse/pull/69301) ([aohoyd](https://github.com/aohoyd)).
* Permitir argumentos vacíos para `arrayZip`/`arrayZipUnaligned`, como ya hacía `concat` en [https://github.com/ClickHouse/ClickHouse/pull/65887](https://github.com/ClickHouse/ClickHouse/pull/65887). Esto es para la compatibilidad con Spark en Gluten CH Backend. [#69576](https://github.com/ClickHouse/ClickHouse/pull/69576) ([李扬](https://github.com/taiyang-li)).
* Admite opciones SSL más avanzadas para la comunicación interna de Keeper (p. ej., claves privadas con frase de contraseña). [#69582](https://github.com/ClickHouse/ClickHouse/pull/69582) ([Antonio Andelic](https://github.com/antonio2368)).
* El análisis de índices puede llevar un tiempo considerable en tablas grandes con muchas partes o particiones. Este cambio debería permitir cancelar una consulta costosa en esa fase. [#69606](https://github.com/ClickHouse/ClickHouse/pull/69606) ([Alexander Gololobov](https://github.com/davenger)).
* Enmascaramiento de información sensible en la función de tabla `gcs`. [#69611](https://github.com/ClickHouse/ClickHouse/pull/69611) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se reconstruye la proyección en los merges que reducen el número de filas. [#62364](https://github.com/ClickHouse/ClickHouse/pull/62364) ([cangyin](https://github.com/cangyin)).

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

* Se corrige un error al adjuntar una tabla cuando el `dbname` de pg contiene "-" en el motor MaterializedPostgreSQL, experimental y no compatible. [#62730](https://github.com/ClickHouse/ClickHouse/pull/62730) ([takakawa](https://github.com/takakawa)).
* Se corrigió un error en las columnas generadas del motor MaterializedPostgreSQL, experimental y totalmente no compatible, cuando el orden de adnum es incorrecto [#63161](https://github.com/ClickHouse/ClickHouse/issues/63161). Se corrigió un error en la columna id con la expresión nextval como valor predeterminado en MaterializedPostgreSQL, experimental y totalmente no compatible, cuando la tabla tiene columnas generadas. Se corrigió un error al eliminar una publication con símbolos distintos de \[a-z1-9-]. [#67664](https://github.com/ClickHouse/ClickHouse/pull/67664) ([Kruglov Kirill](https://github.com/1on)).
* Storage Join ahora admite columnas Nullable en la tabla izquierda; cierra [#61247](https://github.com/ClickHouse/ClickHouse/issues/61247). [#66926](https://github.com/ClickHouse/ClickHouse/pull/66926) ([vdimir](https://github.com/vdimir)).
* Resultado incorrecto de la consulta con réplicas en paralelo (distribuyendo también las consultas) cuando el operador `IN` contiene una conversión a Decimal(). El error se introdujo con el nuevo analyzer. [#67234](https://github.com/ClickHouse/ClickHouse/pull/67234) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige el problema por el que alter modify order by provoca metadatos inconsistentes. [#67436](https://github.com/ClickHouse/ClickHouse/pull/67436) ([iceFireser](https://github.com/iceFireser)).
* Se corrige el límite superior de la función `fromModifiedJulianDay`. Debía ser `9999-12-31`, pero por error se estableció como `9999-01-01`. [#67583](https://github.com/ClickHouse/ClickHouse/pull/67583) ([PHO](https://github.com/depressed-pho)).
* Corrección de un problema cuando el índice no está al principio de la tupla en la consulta `IN`. [#67626](https://github.com/ClickHouse/ClickHouse/pull/67626) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigió la caducidad en `RoleCache`. [#67748](https://github.com/ClickHouse/ClickHouse/pull/67748) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige la pérdida de bloques en window view debido a un flush lento en la vista. [#67983](https://github.com/ClickHouse/ClickHouse/pull/67983) ([Raúl Marín](https://github.com/Algunenano)).
* Se soluciona un problema de MSan causado por un formato de fecha incorrecto. [#68105](https://github.com/ClickHouse/ClickHouse/pull/68105) ([JackyWoo](https://github.com/JackyWoo)).
* Se corrigió un fallo en el filtrado de Parquet cuando los tipos de datos del archivo difieren considerablemente de los tipos solicitados (p. ej., `... FROM file('a.parquet', Parquet, 'x String')`, pero el archivo contiene `x Int64`). Sin esta corrección, use `input_format_parquet_filter_push_down = 0` como solución temporal. [#68131](https://github.com/ClickHouse/ClickHouse/pull/68131) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrige el fallo en `lag`/`lead` introducido en [#67091](https://github.com/ClickHouse/ClickHouse/issues/67091). [#68262](https://github.com/ClickHouse/ClickHouse/pull/68262) ([lgbo](https://github.com/lgbo-ustc)).
* Intenta corregir el bloqueo de Postgres al cancelar una consulta. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Después de [https://github.com/ClickHouse/ClickHouse/pull/61984](https://github.com/ClickHouse/ClickHouse/pull/61984), `schema_inference_make_columns_nullable=0` aún puede hacer que las columnas sean `Nullable` en los formatos Parquet/Arrow. El cambio no era retrocompatible y los usuarios notaron este cambio de comportamiento. Este PR hace que `schema_inference_make_columns_nullable=0` vuelva a funcionar como antes (no se inferirán columnas `Nullable`) e introduce el nuevo valor `auto` para esta configuración, que hará que las columnas sean `Nullable` solo si los datos contienen información sobre nulabilidad. [#68298](https://github.com/ClickHouse/ClickHouse/pull/68298) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige [#50868](https://github.com/ClickHouse/ClickHouse/issues/50868). Los valores constantes muy pequeños de DateTime64 devueltos por una subconsulta anidada dentro de una consulta distribuida se convertían erróneamente en NULL, lo que provocaba errores y posibles resultados incorrectos en las consultas. [#68323](https://github.com/ClickHouse/ClickHouse/pull/68323) ([Shankar](https://github.com/shiyer7474)).
* Se corrige la falta del modo de sincronización de réplicas en la consulta `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)).
* Se corrigió un error en la condición de clave. [#68354](https://github.com/ClickHouse/ClickHouse/pull/68354) ([Han Fei](https://github.com/hanfei1991)).
* Corrige un cierre inesperado al eliminar o renombrar un rol usado en el directorio externo de usuarios LDAP. [#68355](https://github.com/ClickHouse/ClickHouse/pull/68355) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrige el valor de la columna Progress de system.view\_refreshes cuando es superior a 1 [#68377](https://github.com/ClickHouse/ClickHouse/issues/68377). [#68378](https://github.com/ClickHouse/ClickHouse/pull/68378) ([megao](https://github.com/jetgm)).
* Procesa correctamente las banderas de regexp. [#68389](https://github.com/ClickHouse/ClickHouse/pull/68389) ([Han Fei](https://github.com/hanfei1991)).
* El operador de conversión de tipos de estilo PostgreSQL (`::`) funciona correctamente incluso con literales hexadecimales y de cadena binaria de estilo SQL (p. ej., `SELECT x'414243'::String`). Esto cierra [#68324](https://github.com/ClickHouse/ClickHouse/issues/68324). [#68482](https://github.com/ClickHouse/ClickHouse/pull/68482) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Parche menor de [https://github.com/ClickHouse/ClickHouse/pull/68131](https://github.com/ClickHouse/ClickHouse/pull/68131). [#68494](https://github.com/ClickHouse/ClickHouse/pull/68494) ([Chang chen](https://github.com/baibaichen)).
* Se corrige [#68239](https://github.com/ClickHouse/ClickHouse/issues/68239) SAMPLE n, donde n es un entero. [#68499](https://github.com/ClickHouse/ClickHouse/pull/68499) ([Denis Hananein](https://github.com/denis-hananein)).
* Corregido un error en mann-whitney-utest cuando los tamaños de las dos distribuciones no son iguales. [#68556](https://github.com/ClickHouse/ClickHouse/pull/68556) ([Han Fei](https://github.com/hanfei1991)).
* Tras un reinicio inesperado, no se inicia la replicación de ReplicatedMergeTree debido a un manejo anómalo de la parte `covered-by-broken`. [#68584](https://github.com/ClickHouse/ClickHouse/pull/68584) ([baolin](https://github.com/baolinhuang)).
* Se corrigen los `LOGICAL_ERROR` cuando las funciones `sipHash64Keyed`, `sipHash128Keyed` o `sipHash128ReferenceKeyed` se aplican a arrays o tuplas vacíos. [#68630](https://github.com/ClickHouse/ClickHouse/pull/68630) ([Robert Schulze](https://github.com/rschu1ze)).
* El índice de texto completo puede filtrar columnas incorrectas al indexar varias columnas; no restablecía `row_id` entre columnas distintas; el procedimiento para reproducirlo está en tests/queries/0\_stateless/03228\_full\_text\_with\_multi\_col.sql. Sin esta corrección. [#68644](https://github.com/ClickHouse/ClickHouse/pull/68644) ([siyuan](https://github.com/linkwk7)).
* Corrige los caracteres no válidos '\t' y '\n' en replica\_name al crear una tabla Replicated, lo que provoca un análisis sintáctico incorrecto de la 'réplica de origen' en LogEntry. Mencionado en el issue [#68640](https://github.com/ClickHouse/ClickHouse/issues/68640). [#68645](https://github.com/ClickHouse/ClickHouse/pull/68645) ([Zhigao Hong](https://github.com/zghong)).
* Se añadieron de nuevo las columnas virtuales ` _table` y `_database` a las tablas distribuidas. Estuvieron disponibles hasta la versión 24.3. [#68672](https://github.com/ClickHouse/ClickHouse/pull/68672) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un posible error `Size of permutation (0) is less than required (...)` al permutar una columna Variant. [#68681](https://github.com/ClickHouse/ClickHouse/pull/68681) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un posible error `DB::Exception: Block structure mismatch in joined block stream: different columns:` al usar la nueva columna JSON. [#68686](https://github.com/ClickHouse/ClickHouse/pull/68686) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió un problema con las claves constantes materializadas al aplicar hash a mapas con arrays como claves en las funciones `sipHash(64/128)Keyed`. [#68731](https://github.com/ClickHouse/ClickHouse/pull/68731) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Hacer que `ColumnsDescription::toString` formatee cada columna usando el mismo objeto `IAST::FormatState`. Esto permite que se escriban en disco y en ZooKeeper metadatos uniformes de las columnas. [#68733](https://github.com/ClickHouse/ClickHouse/pull/68733) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se corrige la fusión de datos agregados en los conjuntos de agrupación. [#68744](https://github.com/ClickHouse/ClickHouse/pull/68744) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corregido un error lógico al crear un MergeTree replicado, modificar una columna y luego ejecutar MODIFY STATISTICS. [#68820](https://github.com/ClickHouse/ClickHouse/pull/68820) ([Han Fei](https://github.com/hanfei1991)).
* Se corrige la resolución de subcolumnas dinámicas desde subconsultas en el analizador. [#68824](https://github.com/ClickHouse/ClickHouse/pull/68824) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige el análisis sintáctico de los metadatos de tipos complejos en DeltaLake. Cierra [#68739](https://github.com/ClickHouse/ClickHouse/issues/68739). [#68836](https://github.com/ClickHouse/ClickHouse/pull/68836) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigieron las inserciones asíncronas cuando los metadatos de la tabla cambian (mediante consultas `ALTER ADD/MODIFY COLUMN`) después de la inserción, pero antes de volcarse en la tabla. [#68837](https://github.com/ClickHouse/ClickHouse/pull/68837) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige una excepción inesperada al pasar una tupla vacía en un array. Esto soluciona [#68618](https://github.com/ClickHouse/ClickHouse/issues/68618). [#68848](https://github.com/ClickHouse/ClickHouse/pull/68848) ([Amos Bird](https://github.com/amosbird)).
* Corregir el análisis sintáctico de los comandos de mutaciones de solo metadatos. [#68935](https://github.com/ClickHouse/ClickHouse/pull/68935) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige un posible resultado incorrecto al fusionar estados anyHeavy. [#68950](https://github.com/ClickHouse/ClickHouse/pull/68950) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió la escritura en las vistas materializadas con la configuración `optimize_functions_to_subcolumns` habilitada. [#68951](https://github.com/ClickHouse/ClickHouse/pull/68951) ([Anton Popov](https://github.com/CurtizJ)).
* No use la caché de serialización en los métodos const de la columna Dynamic. Esto podría dar lugar al uso de un valor no inicializado o incluso a una condición de carrera durante las agregaciones. [#68953](https://github.com/ClickHouse/ClickHouse/pull/68953) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un error de análisis del tipo JSON que se producía en algunos casos cuando debía insertarse NULL como valor predeterminado. [#68955](https://github.com/ClickHouse/ClickHouse/pull/68955) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió un problema por el que `Content-Encoding` no se enviaba en algunas respuestas comprimidas. [#64802](https://github.com/ClickHouse/ClickHouse/issues/64802). [#68975](https://github.com/ClickHouse/ClickHouse/pull/68975) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Hubo casos en los que path se concatenaba de forma incorrecta y contenía la parte `//`; este problema se ha solucionado mediante la normalización de path. [#69066](https://github.com/ClickHouse/ClickHouse/pull/69066) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige un error lógico cuando hay un async insert vacío. [#69080](https://github.com/ClickHouse/ClickHouse/pull/69080) ([Han Fei](https://github.com/hanfei1991)).
* Se corrigió una condición de carrera en el indicador de progreso de clickhouse-client al cancelar una consulta. [#69081](https://github.com/ClickHouse/ClickHouse/pull/69081) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige un error por el que no se utilizaba el índice de similitud vectorial (actualmente experimental) al usar la distancia de coseno como función de distancia. [#69090](https://github.com/ClickHouse/ClickHouse/pull/69090) ([flynn](https://github.com/ucasfl)).
* Este cambio corrige un problema por el que, si se intentaba crear de nuevo una base de datos Replicated tras un fallo del servidor durante el proceso de creación inicial, podía producirse un error. [#69102](https://github.com/ClickHouse/ClickHouse/pull/69102) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* No inferir el tipo Bool a partir de String en CSV cuando `input_format_csv_try_infer_numbers_from_strings = 1`, porque no se permite leer valores booleanos de cadenas. [#69109](https://github.com/ClickHouse/ClickHouse/pull/69109) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigen errores de análisis en el cliente al procesar consultas explain ast insert cuando `--multiquery` está habilitado. [#69123](https://github.com/ClickHouse/ClickHouse/pull/69123) ([wxybear](https://github.com/wxybear)).
* La cláusula `UNION` en las subconsultas no se gestionaba correctamente en consultas con réplicas paralelas y provocaba el LOGICAL\_ERROR `Duplicate announcement received for replica`. [#69146](https://github.com/ClickHouse/ClickHouse/pull/69146) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrigió la propagación del argumento `structure` en s3Cluster. Anteriormente, la expresión `DEFAULT` de la columna podía perderse al enviar la consulta a las réplicas de s3Cluster. [#69147](https://github.com/ClickHouse/ClickHouse/pull/69147) ([Kruglov Pavel](https://github.com/Avogar)).
* Respetar la configuración del formato Values durante la conversión de una expresión al tipo de destino. [#69149](https://github.com/ClickHouse/ClickHouse/pull/69149) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige `clickhouse-client --queries-file` para usuarios con acceso de solo lectura (antes fallaba con `Cannot modify 'log_comment' setting in readonly mode`). [#69175](https://github.com/ClickHouse/ClickHouse/pull/69175) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige una condición de carrera de datos en clickhouse-client cuando su salida se redirige por tubería a un proceso que terminó prematuramente. [#69186](https://github.com/ClickHouse/ClickHouse/pull/69186) ([vdimir](https://github.com/vdimir)).
* Corrige los resultados incorrectos de Fix uniq y GROUP BY al usar tipos JSON/Dynamic. [#69203](https://github.com/ClickHouse/ClickHouse/pull/69203) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la detección del formato en INFILE para las inserciones asíncronas. Si el formato no se define explícitamente en la cláusula FORMAT, puede detectarse a partir de la extensión del archivo de INFILE. [#69237](https://github.com/ClickHouse/ClickHouse/pull/69237) ([Julia Kartseva](https://github.com/jkartseva)).
* Después de [este problema](https://github.com/ClickHouse/ClickHouse/pull/59946#issuecomment-1943653197), hay bastantes réplicas de tablas en producción en las que el valor del nodo `metadata_version` es a la vez igual a `0` y distinto de la versión del nodo `metadata` de la tabla correspondiente. Esto hace que las consultas `alter` fallen en esas réplicas. [#69274](https://github.com/ClickHouse/ClickHouse/pull/69274) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Marcar el tipo Dynamic como un tipo de clave primaria inseguro para evitar problemas con Fields. [#69311](https://github.com/ClickHouse/ClickHouse/pull/69311) ([Kruglov Pavel](https://github.com/Avogar)).
* Mejora en la restauración de las dependencias de las entidades de acceso. [#69346](https://github.com/ClickHouse/ClickHouse/pull/69346) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige el comportamiento indefinido cuando fallan todos los intentos de obtener una conexión para inserciones. [#69390](https://github.com/ClickHouse/ClickHouse/pull/69390) ([Pablo Marcos](https://github.com/pamarcos)).
* Cierra [#69135](https://github.com/ClickHouse/ClickHouse/issues/69135). Si intentamos reutilizar datos combinados para `cross` join, esto no puede ocurrir en ClickHouse por ahora. Es mejor mantener `have_compressed` en `reuseJoinedData`. [#69404](https://github.com/ClickHouse/ClickHouse/pull/69404) ([lgbo](https://github.com/lgbo-ustc)).
* Hacer que la función `materialize()` devuelva una columna completa cuando el parámetro sea una columna dispersa. [#69429](https://github.com/ClickHouse/ClickHouse/pull/69429) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrigió un `LOGICAL_ERROR` relacionado con la función `sqidDecode` ([#69450](https://github.com/ClickHouse/ClickHouse/issues/69450)). [#69451](https://github.com/ClickHouse/ClickHouse/pull/69451) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrección rápida del problema de s3queue en 24.6 o de la consulta CREATE para la base de datos Replicated. [#69454](https://github.com/ClickHouse/ClickHouse/pull/69454) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un caso en el que el consumo de memoria era demasiado elevado debido a la compactación en las consultas `INSERT INTO ... SELECT` o `CREATE TABLE AS SELECT`. [#69469](https://github.com/ClickHouse/ClickHouse/pull/69469) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Las sentencias `SHOW COLUMNS` y `SHOW INDEX` ahora funcionan correctamente si el nombre de la tabla contiene puntos. [#69514](https://github.com/ClickHouse/ClickHouse/pull/69514) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Ahora se prohíbe el uso de la caché de consultas para consultas con un modo de desbordamiento != 'throw'. Esto evita situaciones en las que resultados de consultas potencialmente truncados e incorrectos podrían almacenarse en la caché de consultas. (issue [#67476](https://github.com/ClickHouse/ClickHouse/issues/67476)). [#69549](https://github.com/ClickHouse/ClickHouse/pull/69549) ([Robert Schulze](https://github.com/rschu1ze)).
* Se conserva el orden original de las condiciones durante el traslado a prewhere. Anteriormente, el orden podía cambiar, lo que podía provocar fallos en las consultas cuando ese orden era importante. [#69560](https://github.com/ClickHouse/ClickHouse/pull/69560) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió el preprocesamiento de múltiples solicitudes de Keeper tras un error ZNOAUTH. [#69627](https://github.com/ClickHouse/ClickHouse/pull/69627) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige METADATA\_MISMATCH que podría haberse producido por el uso de TTL con una cláusula WHERE en DatabaseReplicated al crear una nueva réplica. [#69736](https://github.com/ClickHouse/ClickHouse/pull/69736) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige la configuración `tracked_file_ttl_sec` de `StorageS3(Azure)Queue`. Se escribía en Keeper con la clave `tracked_file_ttl_sec`, pero se leía como `tracked_files_ttl_sec`, lo que era un error tipográfico. [#69742](https://github.com/ClickHouse/ClickHouse/pull/69742) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se usa tryconvertfieldtotype en gethyperrectangleforrowgroup. [#69745](https://github.com/ClickHouse/ClickHouse/pull/69745) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se revierte "Corrección de `prewhere` sin columnas y sin granularidad adaptativa del índice (casi sin nada)"'. Debido a esta reversión, pueden producirse errores al leer partes de datos generadas por versiones antiguas de CH (presumiblemente de 2021 o anteriores). [#68897](https://github.com/ClickHouse/ClickHouse/pull/68897) ([Alexander Gololobov](https://github.com/davenger)).

### <a id="248" /> Lanzamiento de ClickHouse 24.8 LTS, 2024-08-20. [Presentación](https://presentations.clickhouse.com/2024-release-24.8/), [Video](https://www.youtube.com/watch?v=AeLmp2jc51k)

<Frame>
  <iframe src="https://www.youtube.com/embed/AeLmp2jc51k" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* `clickhouse-client` y `clickhouse-local` ahora usan de forma predeterminada el modo multiconsulta (en lugar del modo de consulta única). Por ejemplo, `clickhouse-client -q "SELECT 1; SELECT 2"` ahora funciona, mientras que antes los usuarios tenían que añadir `--multiquery` (o `-n`). La opción `--multiquery/-n` ha quedado obsoleta. Las consultas INSERT en sentencias multiconsulta se tratan de forma especial según su cláusula FORMAT: si el FORMAT es `VALUES` (el caso más habitual), el final de la sentencia INSERT se representa con un punto y coma `;` al final de la consulta. Para todos los demás FORMATs (por ejemplo, `CSV` o `JSONEachRow`), el final de la sentencia INSERT se representa con dos saltos de línea `\n\n` al final de la consulta. [#63898](https://github.com/ClickHouse/ClickHouse/pull/63898) ([FFish](https://github.com/wxybear)).
* En versiones anteriores, era posible usar una sintaxis alternativa para los tipos de datos `LowCardinality` añadiendo `WithDictionary` al nombre del tipo de dato. Era una implementación inicial funcional y nunca se documentó ni se expuso públicamente. Ahora está obsoleta. Si ha utilizado esta sintaxis, debe ejecutar ALTER en sus tablas y renombrar los tipos de datos a `LowCardinality`. [#66842](https://github.com/ClickHouse/ClickHouse/pull/66842) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigen errores lógicos en el almacenamiento `Buffer` usado con una tabla de destino distribuida. Es un cambio incompatible con versiones anteriores: las consultas que usan `Buffer` con una tabla de destino distribuida pueden dejar de funcionar si la tabla aparece más de una vez en la consulta (por ejemplo, en una autounión). [#67015](https://github.com/ClickHouse/ClickHouse/pull/67015) ([vdimir](https://github.com/vdimir)).
* En versiones anteriores, llamar a funciones para distribuciones aleatorias basadas en la función gamma (como Chi-Squared, Student o Fisher) con argumentos negativos cercanos a cero provocaba cálculos prolongados o un bucle infinito. En la nueva versión, llamar a estas funciones con argumentos cero o negativos producirá una excepción. Esto cierra [#67297](https://github.com/ClickHouse/ClickHouse/issues/67297). [#67326](https://github.com/ClickHouse/ClickHouse/pull/67326) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La tabla del sistema `text_log` está habilitada de forma predeterminada. Esto es totalmente compatible con versiones anteriores, pero puede que observe un ligero aumento del uso de disco local (esta tabla del sistema ocupa una cantidad mínima de espacio en disco). [#67428](https://github.com/ClickHouse/ClickHouse/pull/67428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* En versiones anteriores, `arrayWithConstant` podía ser lento si se le pedía generar arreglos muy grandes. En la nueva versión, está limitado a 1 GB por arreglo. Esto cierra [#32754](https://github.com/ClickHouse/ClickHouse/issues/32754). [#67741](https://github.com/ClickHouse/ClickHouse/pull/67741) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el formato del modificador REPLACE (se prohíbe omitir los paréntesis). [#67774](https://github.com/ClickHouse/ClickHouse/pull/67774) ([Azat Khuzhin](https://github.com/azat)).
* Retroportado en [#68349](https://github.com/ClickHouse/ClickHouse/issues/68349): se reimplementa el tipo `Dynamic`. Ahora, cuando se alcanza el límite de tipos de datos dinámicos, los tipos nuevos no se convierten a `String`, sino que se almacenan en una estructura de datos especial en formato binario, con el tipo de dato codificado en binario. Ahora, cualquier tipo que se haya insertado alguna vez en una columna `Dynamic` puede leerse de ella como subcolumna. [#68132](https://github.com/ClickHouse/ClickHouse/pull/68132) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Se añadió un nuevo ajuste de `MergeTree`, `deduplicate_merge_projection_mode`, para controlar las proyecciones durante las fusiones (para motores específicos) y la consulta `OPTIMIZE DEDUPLICATE`. Opciones admitidas: `throw` (generar una excepción si la proyección no es totalmente compatible con el motor \*MergeTree), `drop` (eliminar la proyección durante la fusión si no puede fusionarse de forma coherente por sí sola) y `rebuild` (reconstruir la proyección desde cero, lo que supone una operación costosa). [#66672](https://github.com/ClickHouse/ClickHouse/pull/66672) ([jsc0218](https://github.com/jsc0218)).
* Se añade la columna virtual `_etag` para el motor de tabla S3. Corrige [#65312](https://github.com/ClickHouse/ClickHouse/issues/65312). [#65386](https://github.com/ClickHouse/ClickHouse/pull/65386) ([skyoct](https://github.com/skyoct)).
* Se añadió un mecanismo de etiquetado (espacio de nombres) para la caché de consultas. Las mismas consultas con distintas etiquetas se consideran diferentes en la caché de consultas. Ejemplo: `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'abc'` y `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'def'` ahora crean distintas entradas en la caché de consultas. [#68235](https://github.com/ClickHouse/ClickHouse/pull/68235) ([sakulali](https://github.com/sakulali)).
* Se admiten más variantes de strictness de JOIN (`LEFT/RIGHT SEMI/ANTI/ANY JOIN`) con condiciones de desigualdad que involucran columnas de las tablas izquierda y derecha, por ejemplo, `t1.y < t2.y` (consulte la configuración `allow_experimental_join_condition`). [#64281](https://github.com/ClickHouse/ClickHouse/pull/64281) ([lgbo](https://github.com/lgbo-ustc)).
* Interpretación del particionado de estilo Hive para diferentes motores (`File`, `URL`, `S3`, `AzureBlobStorage`, `HDFS`). El particionado de estilo Hive organiza los datos en subdirectorios particionados, lo que hace más eficiente consultar y gestionar grandes conjuntos de datos. Actualmente, solo crea columnas virtuales con el nombre y los datos correspondientes. El PR posterior introducirá el filtrado de datos adecuado (mejora del rendimiento). [#65997](https://github.com/ClickHouse/ClickHouse/pull/65997) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añade la función `printf` para ofrecer compatibilidad con Spark (aunque puede usarse la función `format` existente). [#66257](https://github.com/ClickHouse/ClickHouse/pull/66257) ([李扬](https://github.com/taiyang-li)).
* Añade las opciones `restore_replace_external_engines_to_null` y `restore_replace_external_table_functions_to_null` para sustituir los motores externos y los motores de tabla por el motor `Null`, lo que puede resultar útil para pruebas. Debería funcionar con RESTORE y con la creación explícita de tablas. [#66536](https://github.com/ClickHouse/ClickHouse/pull/66536) ([Ilya Yatsishin](https://github.com/qoega)).
* Se añadió compatibilidad con la lectura de geometrías `MULTILINESTRING` en formato `WKT` mediante la función `readWKTLineString`. [#67647](https://github.com/ClickHouse/ClickHouse/pull/67647) ([Jacob Reckhard](https://github.com/jacobrec)).
* Se añade una nueva función de tabla `fuzzQuery`. Esta función permite modificar una cadena de consulta dada mediante variaciones aleatorias. Ejemplo: `SELECT query FROM fuzzQuery('SELECT 1') LIMIT 5;`. [#67655](https://github.com/ClickHouse/ClickHouse/pull/67655) ([pufit](https://github.com/pufit)).
* Añade una consulta `ALTER TABLE ... DROP DETACHED PARTITION ALL` para eliminar todas las particiones detached. [#67885](https://github.com/ClickHouse/ClickHouse/pull/67885) ([Duc Canh Le](https://github.com/canhld94)).
* Añade la estadística `rows_before_aggregation_at_least` a la respuesta de la consulta cuando está habilitada una nueva configuración, `rows_before_aggregation`. Esta estadística representa el número de filas leídas antes de la agregación. En el contexto de una consulta distribuida, al usar la función de agregación `group by` o `max` sin un `limit`, `rows_before_aggregation_at_least` puede reflejar el número de filas procesadas por la consulta. [#66084](https://github.com/ClickHouse/ClickHouse/pull/66084) ([morning-color](https://github.com/morning-color)).
* Se admite la consulta `OPTIMIZE` en las tablas `Join` para reducir su uso de memoria. [#67883](https://github.com/ClickHouse/ClickHouse/pull/67883) ([Duc Canh Le](https://github.com/canhld94)).
* Permite ejecutar la consulta al instante en play si se añade `&run=1` en la URL [#66457](https://github.com/ClickHouse/ClickHouse/pull/66457) ([Aleksandr Musorin](https://github.com/AVMusorin)).

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

* Implementa un nuevo tipo de dato `JSON`. [#66444](https://github.com/ClickHouse/ClickHouse/pull/66444) ([Kruglov Pavel](https://github.com/Avogar)).
* Añade el nuevo motor de tabla `TimeSeries`. [#64183](https://github.com/ClickHouse/ClickHouse/pull/64183) ([Vitaly Baranov](https://github.com/vitlibar)).
* Añade un nuevo motor de almacenamiento experimental `Kafka` para almacenar los offsets en Keeper en lugar de depender de su confirmación en Kafka. Esto hace que la confirmación en las tablas de ClickHouse sea atómica con respecto al consumo desde la cola. [#57625](https://github.com/ClickHouse/ClickHouse/pull/57625) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Usa un método adaptativo para calcular el tamaño de las tareas de lectura (adaptativo significa que depende del tamaño de las columnas leídas) para las réplicas paralelas. [#60377](https://github.com/ClickHouse/ClickHouse/pull/60377) ([Nikita Taranov](https://github.com/nickitat)).
* Se añadió el tipo de estadísticas `count_min` (count-min sketches), que proporciona estimaciones de selectividad para predicados de igualdad como `col = 'val'`. Los tipos de datos compatibles son string, date, datetime y los tipos numéricos. [#65521](https://github.com/ClickHouse/ClickHouse/pull/65521) ([JackyWoo](https://github.com/JackyWoo)).

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

* La configuración `optimize_functions_to_subcolumns` está habilitada de forma predeterminada. [#68053](https://github.com/ClickHouse/ClickHouse/pull/68053) ([Anton Popov](https://github.com/CurtizJ)).
* Los metadatos del directorio de disco `plain_rewritable` se almacenan en la estructura `__meta`, por separado de los datos de MergeTree en el almacenamiento de objetos. El disco `plain_rewritable` se traslada a una estructura de directorios plana. [#65751](https://github.com/ClickHouse/ClickHouse/pull/65751) ([Julia Kartseva](https://github.com/jkartseva)).
* Se mejora el squashing de columnas (una operación que ocurre en las consultas INSERT) para los tipos `String`/`Array`/`Map`/`Variant`/`Dynamic`, reservando por adelantado la memoria necesaria para todas las subcolumnas. [#67043](https://github.com/ClickHouse/ClickHouse/pull/67043) ([Kruglov Pavel](https://github.com/Avogar)).
* Se acelera `SYSTEM FLUSH LOGS` y se vacían los logs al apagarse. [#67472](https://github.com/ClickHouse/ClickHouse/pull/67472) ([Sema Checherinda](https://github.com/CheSema)).
* Se mejoró el rendimiento general de las fusiones al reducir la sobrecarga de los pasos de planificación. [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)).
* Se acelera la eliminación de tablas para la consulta `DROP DATABASE`; el valor predeterminado de `database_catalog_drop_table_concurrency` se aumentó a 16. [#67228](https://github.com/ClickHouse/ClickHouse/pull/67228) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se evita asignar demasiada capacidad a una columna Array al escribir ORC. El rendimiento mejora un 15 % para una columna `Array`. [#67879](https://github.com/ClickHouse/ClickHouse/pull/67879) ([李扬](https://github.com/taiyang-li)).
* Se aceleran significativamente las mutaciones para MergeTree no replicado. [#66911](https://github.com/ClickHouse/ClickHouse/pull/66911) [#66909](https://github.com/ClickHouse/ClickHouse/pull/66909) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* La configuración `allow_experimental_analyzer` pasa a llamarse `enable_analyzer`. El nombre anterior se conserva como alias. Esto significa que el Analizador ya no está en beta y ya está totalmente listo para producción. [#66438](https://github.com/ClickHouse/ClickHouse/pull/66438) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se mejora la inferencia de esquemas para valores de fecha y hora. Ahora, DateTime64 se usa solo cuando la fecha y hora tiene una parte fraccionaria; de lo contrario, se usa DateTime normal. La inferencia de Date/DateTime ahora es más estricta, especialmente cuando `date_time_input_format='best_effort'`, para evitar inferir valores de fecha y hora a partir de cadenas en casos extremos. [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)).
* ClickHouse server ahora es compatible con el nuevo ajuste `max_keep_alive_requests`. Para las conexiones HTTP keep-alive al servidor, funciona junto con `keep_alive_timeout`: si el tiempo de inactividad aún no ha expirado, pero ya se han realizado más de `max_keep_alive_requests` solicitudes a través de esa conexión, el servidor la cerrará. [#61793](https://github.com/ClickHouse/ClickHouse/pull/61793) ([Nikita Taranov](https://github.com/nickitat)).
* Diversas mejoras en el dashboard avanzado. Esto cierra [#67697](https://github.com/ClickHouse/ClickHouse/issues/67697). Esto cierra [#63407](https://github.com/ClickHouse/ClickHouse/issues/63407). Esto cierra [#51129](https://github.com/ClickHouse/ClickHouse/issues/51129). Esto cierra [#61204](https://github.com/ClickHouse/ClickHouse/issues/61204). [#67701](https://github.com/ClickHouse/ClickHouse/pull/67701) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* No se exige un privilegio para REMOTE al crear una tabla distribuida: basta con un privilegio para el motor Distributed. [#65419](https://github.com/ClickHouse/ClickHouse/pull/65419) ([jsc0218](https://github.com/jsc0218)).
* No pasar explícitamente los logs de Keeper en la imagen de Docker para permitir su sobrescritura. [#65564](https://github.com/ClickHouse/ClickHouse/pull/65564) ([Azat Khuzhin](https://github.com/azat)).
* Se introdujo la configuración `use_same_password_for_base_backup` para las consultas `BACKUP` y `RESTORE`, lo que permite crear y restaurar copias de seguridad incrementales en archivos protegidos con contraseña. [#66214](https://github.com/ClickHouse/ClickHouse/pull/66214) ([Samuele](https://github.com/sguerrini97)).
* Ignorar `async_load_databases` para la consulta `ATTACH` (anteriormente, era posible que ATTACH finalizara antes de que se hubieran adjuntado las tablas). [#66240](https://github.com/ClickHouse/ClickHouse/pull/66240) ([Azat Khuzhin](https://github.com/azat)).
* Se añadieron logs y métricas para las conexiones rechazadas (cuando no hay recursos suficientes). [#66410](https://github.com/ClickHouse/ClickHouse/pull/66410) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se añadió compatibilidad con el tipo `UUID` correcto para el engine de MongoDB. [#66671](https://github.com/ClickHouse/ClickHouse/pull/66671) ([Azat Khuzhin](https://github.com/azat)).
* Se añadieron métricas de retraso de replicación y tiempo de recuperación. [#66703](https://github.com/ClickHouse/ClickHouse/pull/66703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Se añade la métrica `DiskS3NoSuchKeyErrors`. [#66704](https://github.com/ClickHouse/ClickHouse/pull/66704) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Asegúrese de que la cláusula `COMMENT` funcione con todos los motores de tabla. [#66832](https://github.com/ClickHouse/ClickHouse/pull/66832) ([Joe Lynch](https://github.com/joelynch)).
* La función `mapFromArrays` ahora acepta `Map(K, V)` como primer argumento; por ejemplo, `SELECT mapFromArrays(map('a', 4, 'b', 4), ['aa', 'bb'])` ahora funciona y devuelve `{('a',4):'aa',('b',4):'bb'}`. Además, si el primer argumento es un Array, ahora también puede ser de tipo `Array(Nullable(T))` o `Array(LowCardinality(Nullable(T)))`, siempre que los valores reales del array no sean `NULL`. [#67103](https://github.com/ClickHouse/ClickHouse/pull/67103) ([李扬](https://github.com/taiyang-li)).
* Se lee la configuración de `clickhouse-local` desde `~/.clickhouse-local`. [#67135](https://github.com/ClickHouse/ClickHouse/pull/67135) ([Azat Khuzhin](https://github.com/azat)).
* Se cambió el nombre de la configuración `input_format_orc_read_use_writer_time_zone` a `input_format_orc_reader_timezone` y se permitió al usuario establecer la zona horaria del lector. [#67175](https://github.com/ClickHouse/ClickHouse/pull/67175) ([kevinyhzou](https://github.com/KevinyhZou)).
* Reducir la gravedad del error `Socket is not connected` cuando el otro extremo restablece inmediatamente la conexión HTTP tras conectarse, cierra [#34218](https://github.com/ClickHouse/ClickHouse/issues/34218). [#67177](https://github.com/ClickHouse/ClickHouse/pull/67177) ([vdimir](https://github.com/vdimir)).
* Añadida la posibilidad de cargar dashboards para `system.dashboards` desde la configuración (una vez configurados, reemplazan el conjunto predeterminado de dashboards). [#67232](https://github.com/ClickHouse/ClickHouse/pull/67232) ([Azat Khuzhin](https://github.com/azat)).
* Las funciones de ventana en SQL usan tradicionalmente snake case. ClickHouse usa `camelCase`, por lo que se han creado los nuevos alias `denseRank()` y `percentRank()`. Estas nuevas funciones pueden llamarse exactamente igual que las funciones originales `dense_rank()` y `percent_rank()`. Tanto la sintaxis en snake case como en camelCase siguen siendo válidas. También se ha añadido una nueva prueba para cada una de estas funciones. Esto cierra [#67042](https://github.com/ClickHouse/ClickHouse/issues/67042). [#67334](https://github.com/ClickHouse/ClickHouse/pull/67334) ([Peter Nguyen](https://github.com/petern48)).
* Detecta automáticamente el formato del archivo de configuración si no es `.xml`, `.yml` o `.yaml`. Si el archivo empieza por \<, podría ser XML; de lo contrario, podría ser YAML. Esto resulta útil al proporcionar un archivo de configuración desde una tubería: `clickhouse-server --config-file <(echo "hello: world")`. [#67391](https://github.com/ClickHouse/ClickHouse/pull/67391) ([sakulali](https://github.com/sakulali)).
* Las funciones `formatDateTime` y `formatDateTimeInJodaSyntax` ahora consideran opcional su parámetro de formato. Si no se especifica, se asumen las cadenas de formato `%Y-%m-%d %H:%i:%s` y `yyyy-MM-dd HH:mm:ss`. Ejemplo: `SELECT parseDateTime('2021-01-04 23:12:34')` ahora devuelve el valor `DateTime` `2021-01-04 23:12:34` (antes, esto generaba una excepción). [#67399](https://github.com/ClickHouse/ClickHouse/pull/67399) ([Robert Schulze](https://github.com/rschu1ze)).
* Reintento automático de las solicitudes de Keeper en KeeperMap si se producen por timeout o pérdida de conexión. [#67448](https://github.com/ClickHouse/ClickHouse/pull/67448) ([Antonio Andelic](https://github.com/antonio2368)).
* Agregar `-no-pie` a las compilaciones de Aarch64 Linux para permitir la introspección y la simbolización correctas de las trazas de pila tras reiniciar ClickHouse. [#67916](https://github.com/ClickHouse/ClickHouse/pull/67916) ([filimonov](https://github.com/filimonov)).
* Se añadieron eventos de perfil para fusiones y mutaciones, lo que mejora la introspección. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)).
* Elimina los logs innecesarios de `MergeTree` no replicado. [#68238](https://github.com/ClickHouse/ClickHouse/pull/68238) ([Daniil Ivanik](https://github.com/divanik)).

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

* La comprobación de inestabilidad de las pruebas de integración ahora ejecutará cada caso de prueba varias veces para detectar más problemas y hacerlas más fiables. Utiliza la biblioteca `pytest-repeat` para ejecutar un caso de prueba varias veces en el mismo entorno. Para que la prueba finalice correctamente, es importante limpiar las tablas y otras entidades al final de cada caso de prueba. La repetición es mucho más rápida que varias ejecuciones de pytest, ya que inicia los contenedores necesarios una sola vez. [#66986](https://github.com/ClickHouse/ClickHouse/pull/66986) ([Ilya Yatsishin](https://github.com/qoega)).
* Se desbloquea el uso de CLion con ClickHouse. En versiones anteriores, CLion se congelaba durante un minuto con cada pulsación de tecla. Esto cierra [#66994](https://github.com/ClickHouse/ClickHouse/issues/66994). [#66995](https://github.com/ClickHouse/ClickHouse/pull/66995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* getauxval: evita un fallo durante una reejecución del sanitizador debido a la alta entropía de ASLR en los kernels de Linux más recientes. [#67081](https://github.com/ClickHouse/ClickHouse/pull/67081) ([Raúl Marín](https://github.com/Algunenano)).
* Algunas partes del código del cliente se han extraído a un único archivo y se les ha aplicado el mayor nivel de optimización posible, incluso en compilaciones de depuración. Esto cierra: [#65745](https://github.com/ClickHouse/ClickHouse/issues/65745). [#67215](https://github.com/ClickHouse/ClickHouse/pull/67215) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

<div id="bug-fix">
  #### Corrección de errores
</div>

* Solo es relevante para el tipo de dato Variant experimental. Se corrige un fallo con el tipo Variant + AggregateFunction. [#67122](https://github.com/ClickHouse/ClickHouse/pull/67122) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un fallo en DistributedAsyncInsert cuando la conexión está vacía. [#67219](https://github.com/ClickHouse/ClickHouse/pull/67219) ([Pablo Marcos](https://github.com/pamarcos)).
* Se corrige el fallo de `uniq` y `uniqTheta ` con el argumento `tuple()`. Cierra [#67303](https://github.com/ClickHouse/ClickHouse/issues/67303). [#67306](https://github.com/ClickHouse/ClickHouse/pull/67306) ([flynn](https://github.com/ucasfl)).
* Corrige [#66026](https://github.com/ClickHouse/ClickHouse/issues/66026). Evita recorrer argumentos sin resolver de funciones de tabla en `ReplaceTableNodeToDummyVisitor`. [#67522](https://github.com/ClickHouse/ClickHouse/pull/67522) ([Dmitry Novik](https://github.com/novikd)).
* Se corrigió un posible desbordamiento de pila en la función `JSONMergePatch`. Se cambió el nombre de esta función de `jsonMergePatch` a `JSONMergePatch` porque el nombre anterior era incorrecto. El nombre anterior se mantiene por compatibilidad. Se mejoró el diagnóstico de errores de la función. Esto cierra [#67304](https://github.com/ClickHouse/ClickHouse/issues/67304). [#67756](https://github.com/ClickHouse/ClickHouse/pull/67756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una desreferenciación de puntero NULL, provocada por una consulta especialmente diseñada, que provocaba el fallo del servidor mediante hopEnd, hopStart, tumbleEnd y tumbleStart. [#68098](https://github.com/ClickHouse/ClickHouse/pull/68098) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se corrigió el error `Not-ready Set` en algunas tablas del sistema al filtrar con subconsultas. [#66018](https://github.com/ClickHouse/ClickHouse/pull/66018) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrigió la lectura de las subcolumnas tras la consulta `ALTER ADD COLUMN`. [#66243](https://github.com/ClickHouse/ClickHouse/pull/66243) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigieron los literales booleanos en la consulta enviada a la base de datos externa (para motores como `PostgreSQL`). [#66282](https://github.com/ClickHouse/ClickHouse/pull/66282) ([vdimir](https://github.com/vdimir)).
* Se corrigió el formato de la consulta con una expresión con alias en JOIN ON; p. ej., `... JOIN t2 ON (x = y) AS e ORDER BY x` debería formatearse como `... JOIN t2 ON ((x = y) AS e) ORDER BY x`. [#66312](https://github.com/ClickHouse/ClickHouse/pull/66312) ([vdimir](https://github.com/vdimir)).
* Se corrige cluster() para el secreto entre servidores (se conserva el usuario inicial como antes). [#66364](https://github.com/ClickHouse/ClickHouse/pull/66364) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un posible error en tiempo de ejecución al convertir un campo Array con valores NULL a Array(Variant). [#66727](https://github.com/ClickHouse/ClickHouse/pull/66727) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrección de un bloqueo mutuo ocasional en Context::getDDLWorker. [#66843](https://github.com/ClickHouse/ClickHouse/pull/66843) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrigió la creación de la tabla KeeperMap tras un drop incompleto. [#66865](https://github.com/ClickHouse/ClickHouse/pull/66865) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige el error de una parte dañada al restaurar en un disco `s3_plain_rewritable`. [#66881](https://github.com/ClickHouse/ClickHouse/pull/66881) ([Vitaly Baranov](https://github.com/vitlibar)).
* En casos excepcionales, ClickHouse podía considerar que las partes estaban dañadas debido a algunas proyecciones inesperadas en el disco. Ahora ya está corregido. [#66898](https://github.com/ClickHouse/ClickHouse/pull/66898) ([alesapin](https://github.com/alesapin)).
* Corrige la detección de formatos no válidos durante la inferencia de esquema, que podía provocar el error lógico El formato {} no admite la inferencia de esquema. [#66899](https://github.com/ClickHouse/ClickHouse/pull/66899) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un posible interbloqueo al cancelar consultas con réplicas paralelas. [#66905](https://github.com/ClickHouse/ClickHouse/pull/66905) ([Nikita Taranov](https://github.com/nickitat)).
* Prohibir create as select incluso cuando database\_replicated\_allow\_heavy\_create está configurado. Estaba prohibido incondicionalmente en la 23.12 y se permitió accidentalmente con esta configuración en la 24.7 sin publicar. [#66980](https://github.com/ClickHouse/ClickHouse/pull/66980) ([vdimir](https://github.com/vdimir)).
* La lectura desde `numbers` podía lanzar una excepción por error cuando se establecía el límite `max_rows_to_read`. Esto cierra [#66992](https://github.com/ClickHouse/ClickHouse/issues/66992). [#66996](https://github.com/ClickHouse/ClickHouse/pull/66996) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade la conversión de tipos adecuada a las funciones de ventana lagInFrame y leadInFrame; corrige la prueba de msan. [#67091](https://github.com/ClickHouse/ClickHouse/pull/67091) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* TRUNCATE DATABASE detenía la replicación como si fuera una consulta DROP DATABASE; se ha corregido. [#67129](https://github.com/ClickHouse/ClickHouse/pull/67129) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Use un contexto de cliente independiente en `clickhouse-local`. [#67133](https://github.com/ClickHouse/ClickHouse/pull/67133) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige el error `Cannot convert column because it is non constant in source stream but must be constant in result.` en una consulta que lee de la tabla `Merge` sobre la tabla `Distriburted` con un segmento. [#67146](https://github.com/ClickHouse/ClickHouse/pull/67146) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Comportamiento correcto de `ORDER BY all` con `enable_order_by_all` deshabilitado y con réplicas paralelas (también en consultas distribuidas). [#67153](https://github.com/ClickHouse/ClickHouse/pull/67153) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrigió el uso incorrecto de input\_format\_max\_bytes\_to\_read\_for\_schema\_inference en la caché de schema. [#67157](https://github.com/ClickHouse/ClickHouse/pull/67157) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la fuga de memoria en count distinct cuando se produce una excepción durante un group by con una única clave Nullable. [#67171](https://github.com/ClickHouse/ClickHouse/pull/67171) ([Jet He](https://github.com/compasses)).
* Corrige un error en la optimización que convierte OUTER JOIN en INNER JOIN. Con esto se cierra [#67156](https://github.com/ClickHouse/ClickHouse/issues/67156). Con esto se cierra [#66447](https://github.com/ClickHouse/ClickHouse/issues/66447). El error se introdujo en [https://github.com/ClickHouse/ClickHouse/pull/62907](https://github.com/ClickHouse/ClickHouse/pull/62907). [#67178](https://github.com/ClickHouse/ClickHouse/pull/67178) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige el error `Conversion from AggregateFunction(name, Type) to AggregateFunction(name, Nullable(Type)) is not supported`. El fallo se debía a la optimización `optimize_rewrite_aggregate_function_with_if`. Corrige [#67112](https://github.com/ClickHouse/ClickHouse/issues/67112). [#67229](https://github.com/ClickHouse/ClickHouse/pull/67229) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el bloqueo de la consulta al usar una tupla vacía como lado izquierdo de la función IN. [#67295](https://github.com/ClickHouse/ClickHouse/pull/67295) ([Duc Canh Le](https://github.com/canhld94)).
* Era posible crear un JSON con un nivel de anidamiento muy profundo que provocaba un desbordamiento de pila al omitir campos desconocidos. Esto cierra [#67292](https://github.com/ClickHouse/ClickHouse/issues/67292). [#67324](https://github.com/ClickHouse/ClickHouse/pull/67324) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la operación de adjuntar una tabla ReplicatedMergeTree tras una excepción durante el inicio. [#67360](https://github.com/ClickHouse/ClickHouse/pull/67360) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un fallo de segmentación causado por desvincularse incorrectamente del grupo de hilos en `Aggregator`. [#67385](https://github.com/ClickHouse/ClickHouse/pull/67385) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un caso adicional en el que se especificaba una función no determinista en PK. [#67395](https://github.com/ClickHouse/ClickHouse/pull/67395) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un problema en el índice `bloom_filter` que hacía fallar consultas con condiciones algo extrañas como `(k=2)=(k=2)` o `has([1,2,3], k)`. [#67423](https://github.com/ClickHouse/ClickHouse/pull/67423) ([Michael Kolupaev](https://github.com/al13n321)).
* Analizar correctamente el nombre de archivo/URI que contiene `::` si no es un archivo comprimido. [#67433](https://github.com/ClickHouse/ClickHouse/pull/67433) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige la espera de las tareas en \~WriteBufferFromS3 en caso de que WriteBuffer se hubiera cancelado. [#67459](https://github.com/ClickHouse/ClickHouse/pull/67459) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Protege los directorios temporales de partes para evitar que se eliminen durante RESTORE. [#67491](https://github.com/ClickHouse/ClickHouse/pull/67491) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige la ejecución de funciones de cortocircuito anidadas. [#67520](https://github.com/ClickHouse/ClickHouse/pull/67520) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige `Logical error: Expected the argument №N of type T to have X rows, but it has 0`. El error podía ocurrir en una consulta remota con una expresión constante en `GROUP BY` (con el nuevo analizador). [#67536](https://github.com/ClickHouse/ClickHouse/pull/67536) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corregido el join en tuplas con `NULL`: algunas consultas con el nuevo analizador y `NULL` dentro de la tupla en la sección `JOIN ON` devolvían resultados incorrectos. [#67538](https://github.com/ClickHouse/ClickHouse/pull/67538) ([vdimir](https://github.com/vdimir)).
* Se corrige la reprogramación redundante de FileCache::freeSpaceRatioKeepingThreadFunc() en caso de que la caché esté llena y no se puedan desalojar entradas. [#67540](https://github.com/ClickHouse/ClickHouse/pull/67540) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la inserción a través de la interfaz HTTP en motores de tipo stream (Kafka, RabbitMQ, NATS). [#67554](https://github.com/ClickHouse/ClickHouse/pull/67554) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrección de la función `toStartOfWeek`, que devolvía un resultado erróneo con un valor `DateTime64` pequeño. [#67558](https://github.com/ClickHouse/ClickHouse/pull/67558) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigió la creación de una vista con una CTE recursiva. [#67587](https://github.com/ClickHouse/ClickHouse/pull/67587) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige `Logical error: 'file_offset_of_buffer_end <= read_until_position'` en la caché del sistema de archivos. Cierra [#57508](https://github.com/ClickHouse/ClickHouse/issues/57508). [#67623](https://github.com/ClickHouse/ClickHouse/pull/67623) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige [#62282](https://github.com/ClickHouse/ClickHouse/issues/62282). Se eliminó la llamada a `convertFieldToString()` y se añadió código de serialización específico para cada tipo de dato. La sustitución de la vista parametrizada fallaba con varios tipos de datos cuando el valor del parámetro era una función o una expresión que devolvía una instancia de un tipo de dato. [#67654](https://github.com/ClickHouse/ClickHouse/pull/67654) ([Shankar](https://github.com/shiyer7474)).
* Se corrige un fallo en `percent_rank`. El tipo de frame predeterminado de `percent_rank` se cambia a `range unbounded preceding and unbounded following`. Se tiene en cuenta el marco de ventana predeterminado de `IWindowFunction`, y ahora las funciones de ventana sin una definición de marco de ventana en SQL pueden colocarse correctamente en distintos `WindowTransfomer`s. [#67661](https://github.com/ClickHouse/ClickHouse/pull/67661) ([lgbo](https://github.com/lgbo-ustc)).
* Se corrige la recarga de UDFs de SQL con UNION. Anteriormente, al reiniciar el servidor una UDF podía quedar inválida. [#67665](https://github.com/ClickHouse/ClickHouse/pull/67665) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un posible error lógico "Unexpected return type from if" con el tipo experimental Variant y la configuración habilitada `use_variant_as_common_type ` en la función if con Tuples y Maps. [#67687](https://github.com/ClickHouse/ClickHouse/pull/67687) ([Kruglov Pavel](https://github.com/Avogar)).
* Debido a un error en el kernel de Linux, una consulta puede quedar bloqueada en `TimerDescriptor::drain`. Esto corrige [#37686](https://github.com/ClickHouse/ClickHouse/issues/37686). [#67702](https://github.com/ClickHouse/ClickHouse/pull/67702) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la finalización del comando `RESTORE ON CLUSTER`. [#67720](https://github.com/ClickHouse/ClickHouse/pull/67720) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el bloqueo del diccionario en caso de CANNOT\_SCHEDULE\_TASK durante la carga. [#67751](https://github.com/ClickHouse/ClickHouse/pull/67751) ([Azat Khuzhin](https://github.com/azat)).
* Las consultas como `SELECT count() FROM t WHERE cast(c = 1 or c = 9999 AS Bool) SETTINGS use_skip_indexes=1`, con índices bloom filter en `c`, ahora funcionan correctamente. [#67781](https://github.com/ClickHouse/ClickHouse/pull/67781) ([jsc0218](https://github.com/jsc0218)).
* Corrige un resultado de agregación incorrecto en algunas consultas con agregación sin claves y con filtro, cierra [#67419](https://github.com/ClickHouse/ClickHouse/issues/67419). [#67804](https://github.com/ClickHouse/ClickHouse/pull/67804) ([vdimir](https://github.com/vdimir)).
* Validar los tipos de datos experimentales/sospechosos en ALTER ADD/MODIFY COLUMN. [#67911](https://github.com/ClickHouse/ClickHouse/pull/67911) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió el análisis de DateTime64 tras el plegado de constantes en consultas distribuidas; cierra [#66773](https://github.com/ClickHouse/ClickHouse/issues/66773). [#67920](https://github.com/ClickHouse/ClickHouse/pull/67920) ([vdimir](https://github.com/vdimir)).
* Corrige el resultado incorrecto de `count()` cuando el predicado contiene una función no determinista. [#67922](https://github.com/ClickHouse/ClickHouse/pull/67922) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se corrigió el cálculo del límite flexible máximo de hilos en entornos contenerizados donde el número de CPU utilizables está limitado. [#67963](https://github.com/ClickHouse/ClickHouse/pull/67963) ([Robert Schulze](https://github.com/rschu1ze)).
* Ahora ClickHouse no considera que una parte esté dañada si la proyección no existe en disco, pero sí en `checksums.txt`. [#68003](https://github.com/ClickHouse/ClickHouse/pull/68003) ([alesapin](https://github.com/alesapin)).
* Se corrigió la omisión de partes no afectadas en las mutaciones con el nuevo analizador. Anteriormente, con el analizador habilitado, los datos de una parte podían ser reescritos por una mutación aunque esta no afectara a esa parte según el predicado. [#68052](https://github.com/ClickHouse/ClickHouse/pull/68052) ([Anton Popov](https://github.com/CurtizJ)).
* Elimina una optimización incorrecta que suprimía la ordenación en subconsultas que usan `OFFSET`. Corrige [#67906](https://github.com/ClickHouse/ClickHouse/issues/67906). [#68099](https://github.com/ClickHouse/ClickHouse/pull/68099) ([Graham Campbell](https://github.com/GrahamCampbell)).
* Intento de corregir `Block structure mismatch in AggregatingStep stream: different types` en la optimización de proyecciones agregadas. [#68107](https://github.com/ClickHouse/ClickHouse/pull/68107) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se intenta corregir el fallo de Postgres cuando se cancela una consulta. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige la ausencia del modo de sincronización de réplica en la consulta `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)).

### <a id="247" /> Lanzamiento de ClickHouse 24.7, 2024-07-30. [Presentación](https://presentations.clickhouse.com/2024-release-24.7/), [Vídeo](https://www.youtube.com/watch?v=GerQFdJCk7A)

<Frame>
  <iframe src="https://www.youtube.com/embed/GerQFdJCk7A" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* Se prohíbe `CRATE MATERIALIZED VIEW ... ENGINE Replicated*MergeTree POPULATE AS SELECT ...` con bases de datos Replicated. [#63963](https://github.com/ClickHouse/ClickHouse/pull/63963) ([vdimir](https://github.com/vdimir)).
* `clickhouse-keeper-client` solo aceptará rutas en literales de cadena, como `ls '/hello/world'`, no cadenas sin comillas como `ls /hello/world`. [#65494](https://github.com/ClickHouse/ClickHouse/pull/65494) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La métrica `KeeperOutstandingRequets` se renombró a `KeeperOutstandingRequests`. [#66206](https://github.com/ClickHouse/ClickHouse/pull/66206) ([Robert Schulze](https://github.com/rschu1ze)).
* Se elimina el campo `is_deterministic` de la tabla `system.functions`. [#66630](https://github.com/ClickHouse/ClickHouse/pull/66630) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La función `tuple` ahora intentará construir tuplas con nombre en la consulta (controlado por `enable_named_columns_in_function_tuple`). Se introduce la función `tupleNames` para extraer nombres de las tuplas. [#54881](https://github.com/ClickHouse/ClickHouse/pull/54881) ([Amos Bird](https://github.com/amosbird)).
* Se cambia cómo funciona la deduplicación en las vistas materializadas. Se corrigieron muchos casos, por ejemplo: - en la tabla de destino: los datos se dividen en 2 o más bloques y esos bloques se consideran duplicados cuando se insertan en paralelo. - en la tabla de destino de la MV: los bloques iguales se deduplican; esto ocurre cuando la MV produce con frecuencia datos iguales como resultado de datos de entrada distintos debido a la agregación. - en la tabla de destino de la MV: los bloques iguales que provienen de distintas MV se deduplican. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)).
* Las funciones `bitShiftLeft` y `bitShitfRight` devuelven un error para posiciones de desplazamiento fuera de rango [#65838](https://github.com/ClickHouse/ClickHouse/pull/65838) ([Pablo Marcos](https://github.com/pamarcos)).

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

* Se añade compatibilidad con `ASOF JOIN` para el algoritmo `full_sorting_join`. [#55051](https://github.com/ClickHouse/ClickHouse/pull/55051) ([vdimir](https://github.com/vdimir)).
* Se admite la authentication JWT en `clickhouse-client` (solo estará disponible en ClickHouse Cloud). [#62829](https://github.com/ClickHouse/ClickHouse/pull/62829) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se añaden las funciones SQL `changeYear`, `changeMonth`, `changeDay`, `changeHour`, `changeMinute`, `changeSecond`. Por ejemplo, `SELECT changeMonth(toDate('2024-06-14'), 7)` devuelve la fecha `2024-07-14`. [#63186](https://github.com/ClickHouse/ClickHouse/pull/63186) ([cucumber95](https://github.com/cucumber95)).
* Se introducen scripts de arranque que permiten ejecutar consultas preconfiguradas durante la fase de inicio. [#64889](https://github.com/ClickHouse/ClickHouse/pull/64889) ([pufit](https://github.com/pufit)).
* Se admite `accept_invalid_certificate` en la configuración de cliente para permitir que el cliente se conecte mediante TCP seguro a un servidor que se ejecuta con un certificado autofirmado; puede utilizarse como abreviatura de las configuraciones de cliente `openSSL` correspondientes: `verificationMode=none` + `invalidCertificateHandler.name=AcceptCertificateHandler`. [#65238](https://github.com/ClickHouse/ClickHouse/pull/65238) ([peacewalker122](https://github.com/peacewalker122)).
* Se añade system.error\_log, que contiene el historial de error values de la tabla system.errors, volcados periódicamente a disco. [#65381](https://github.com/ClickHouse/ClickHouse/pull/65381) ([Pablo Marcos](https://github.com/pamarcos)).
* Se añade la aggregate function `groupConcat`. Es prácticamente lo mismo que `arrayStringConcat( groupArray(column), ',')`. Puede recibir 2 parámetros: un delimitador de cadena y el número de elementos que se van a procesar. [#65451](https://github.com/ClickHouse/ClickHouse/pull/65451) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añade el almacenamiento AzureQueue. [#65458](https://github.com/ClickHouse/ClickHouse/pull/65458) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añade una nueva configuración para desactivar o activar la escritura del índice de páginas en archivos Parquet. [#65475](https://github.com/ClickHouse/ClickHouse/pull/65475) ([lgbo](https://github.com/lgbo-ustc)).
* Se introduce la configuración del servidor `logger.console_log_level` para controlar el nivel de registro en la consola (si está habilitada). [#65559](https://github.com/ClickHouse/ClickHouse/pull/65559) ([Azat Khuzhin](https://github.com/azat)).
* Se añade automáticamente un comodín `*` al final de una ruta de directorio con la table function `file`. [#66019](https://github.com/ClickHouse/ClickHouse/pull/66019) ([Zhidong (David) Guo](https://github.com/Gun9niR)).
* Se añade la opción `--memory-usage` al cliente en modo Non-interactive. [#66393](https://github.com/ClickHouse/ClickHouse/pull/66393) ([vdimir](https://github.com/vdimir)).
* Se crea un cliente interactivo para clickhouse-disks y se añade un disco local desde el directorio local. [#64446](https://github.com/ClickHouse/ClickHouse/pull/64446) ([Daniil Ivanik](https://github.com/divanik)).
* Cuando se produce una eliminación ligera en una tabla con proyecciones, los usuarios pueden elegir entre lanzar una excepción (de forma predeterminada) o eliminar la proyección. [#65594](https://github.com/ClickHouse/ClickHouse/pull/65594) ([jsc0218](https://github.com/jsc0218)).
* Se añaden system tables con la información principal sobre todas las tablas detached. [#65400](https://github.com/ClickHouse/ClickHouse/pull/65400) ([Konstantin Morozov](https://github.com/k-morozov)).

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

* Cambia la serialización binaria del tipo de dato `Variant`: añade el modo `compact` para evitar escribir el mismo discriminador varias veces en gránulos con una sola variante o solo con valores NULL. Añade la configuración de MergeTree `use_compact_variant_discriminators_serialization`, habilitada de forma predeterminada. Ten en cuenta que el tipo `Variant` sigue siendo experimental y que se acepta un cambio de serialización incompatible con versiones anteriores. [#62774](https://github.com/ClickHouse/ClickHouse/pull/62774) ([Kruglov Pavel](https://github.com/Avogar)).
* Añade compatibilidad con almacenamiento backend en disco para clickhouse-keeper. [#56626](https://github.com/ClickHouse/ClickHouse/pull/56626) ([Han Fei](https://github.com/hanfei1991)).
* Refactoriza las funciones JSONExtract y admite más tipos, incluido el tipo experimental `Dynamic`. [#66046](https://github.com/ClickHouse/ClickHouse/pull/66046) ([Kruglov Pavel](https://github.com/Avogar)).
* Añade compatibilidad con la subcolumna nula de `map` para las subcolumnas `Variant` y `Dynamic`. [#66178](https://github.com/ClickHouse/ClickHouse/pull/66178) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la lectura de subcolumnas `Dynamic` desde una tabla `Memory` modificada. Anteriormente, si el parámetro `max_types` de un tipo `Dynamic` se cambiaba en una tabla `Memory` mediante `ALTER`, la lectura posterior de subcolumnas podía devolver un resultado incorrecto. [#66066](https://github.com/ClickHouse/ClickHouse/pull/66066) ([Kruglov Pavel](https://github.com/Avogar)).
* Añade compatibilidad con `cluster_for_parallel_replicas` al usar réplicas paralelas con clave personalizada. Esto permite usar réplicas paralelas con clave personalizada con tablas MergeTree. [#65453](https://github.com/ClickHouse/ClickHouse/pull/65453) ([Antonio Andelic](https://github.com/antonio2368)).

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

* Se sustituyó el algoritmo de conversión de int a string por uno más rápido (de una versión modificada de amdn/itoa a una versión modificada de jeaiii/itoa). [#61661](https://github.com/ClickHouse/ClickHouse/pull/61661) ([Raúl Marín](https://github.com/Algunenano)).
* Los tamaños de las tablas hash creadas por join (algoritmo `parallel_hash`) ahora se recopilan y se almacenan en caché. Esta información se utilizará para preasignar espacio en las tablas hash en ejecuciones posteriores de consultas y ahorrar tiempo en el redimensionamiento de las tablas hash. [#64553](https://github.com/ClickHouse/ClickHouse/pull/64553) ([Nikita Taranov](https://github.com/nickitat)).
* Se optimizaron las consultas con `ORDER BY` sobre la clave primaria y `WHERE` con una condición de alta selectividad mediante el uso de búferes. Se controla con la configuración `read_in_order_use_buffering` (habilitada de forma predeterminada) y puede aumentar el uso de memoria de la consulta. [#64607](https://github.com/ClickHouse/ClickHouse/pull/64607) ([Anton Popov](https://github.com/CurtizJ)).
* Se mejoró el rendimiento de la carga de metadatos `plain_rewritable`. [#65634](https://github.com/ClickHouse/ClickHouse/pull/65634) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Al adjuntar tablas en discos de solo lectura, se utilizarán menos recursos al no cargar partes obsoletas. [#65635](https://github.com/ClickHouse/ClickHouse/pull/65635) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió compatibilidad con hiperrrectángulos minmax para índices Set. [#65676](https://github.com/ClickHouse/ClickHouse/pull/65676) ([AntiTopQuark](https://github.com/AntiTopQuark)).
* Se descarga el índice primario de las partes obsoletas para reducir el uso total de memoria. [#65852](https://github.com/ClickHouse/ClickHouse/pull/65852) ([Anton Popov](https://github.com/CurtizJ)).
* Las funciones `replaceRegexpAll` y `replaceRegexpOne` ahora son significativamente más rápidas si el patrón es trivial; es decir, no contiene metacaracteres, clases de patrones, indicadores, caracteres de agrupación, etc. (Gracias a Taiyang Li). [#66185](https://github.com/ClickHouse/ClickHouse/pull/66185) ([Robert Schulze](https://github.com/rschu1ze)).
* Solicitudes a S3: se reduce el tiempo de retry para las consultas y se aumenta el número de retries para los backups. 8.5 minutos y 100 retries para consultas; 1.2 horas y 1000 retries para restore de backups. [#65232](https://github.com/ClickHouse/ClickHouse/pull/65232) ([Sema Checherinda](https://github.com/CheSema)).
* Se añadió compatibilidad con la optimización de LIMIT en el plan de consulta. Se añadió compatibilidad con el pushdown de LIMIT para el motor PostgreSQL y la table function. [#65454](https://github.com/ClickHouse/ClickHouse/pull/65454) ([Maksim Kita](https://github.com/kitaisreal)).
* Se mejoró el balanceo de carga de ZooKeeper. La sesión actual no expira hasta que los nodos óptimos vuelven a estar disponibles, a pesar de `fallback_session_lifetime`. Se añadió compatibilidad con balanceo con reconocimiento de AZ. [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)).
* DatabaseCatalog elimina tablas más rápido utilizando hasta `database_catalog_drop_table_concurrency` hilos. [#66065](https://github.com/ClickHouse/ClickHouse/pull/66065) ([Sema Checherinda](https://github.com/CheSema)).

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

* Se mejoró el balanceo de carga de ZooKeeper. La sesión actual no expira hasta que los nodos óptimos estén disponibles, a pesar de `fallback_session_lifetime`. Se agregó soporte para el balanceo con reconocimiento de AZ. [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)).
* La configuración `optimize_trivial_insert_select` está deshabilitada de forma predeterminada. En la mayoría de los casos, debería resultar beneficiosa. No obstante, si observa operaciones de INSERT SELECT más lentas o un mayor uso de memoria, puede volver a activarla o usar `SET compatibility = '24.6'`. [#58970](https://github.com/ClickHouse/ClickHouse/pull/58970) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Imprime el stacktrace y la información de diagnóstico si `clickhouse-client` o `clickhouse-local` fallan. [#61109](https://github.com/ClickHouse/ClickHouse/pull/61109) ([Alexander Tokmakov](https://github.com/tavplubix)).
* El resultado de `SHOW INDEX | INDEXES | INDICES | KEYS` antes se ordenaba según los nombres de las columnas de la clave primaria. Como esto no resultaba intuitivo, ahora el resultado se ordena según la posición que ocupan las columnas dentro de la clave primaria. [#61131](https://github.com/ClickHouse/ClickHouse/pull/61131) ([Robert Schulze](https://github.com/rschu1ze)).
* Cambió la forma en que funciona la deduplicación de las vistas materializadas. Se corrigieron muchos casos, como: - en la tabla de destino: los datos se dividen en 2 o más bloques, y esos bloques se consideran duplicados cuando se insertan en paralelo. - en la tabla de destino de la MV: se deduplican los bloques iguales; esto sucede cuando la MV a menudo produce los mismos datos como resultado de distintos datos de entrada debido a la agregación. - en la tabla de destino de la MV: se deduplican los bloques iguales que provienen de distintas MV. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)).
* Se admite la lectura de datos particionados de DeltaLake. El esquema de DeltaLake se infiere leyendo los metadatos en lugar de los datos. [#63201](https://github.com/ClickHouse/ClickHouse/pull/63201) ([Kseniia Sumarokova](https://github.com/kssenii)).
* En la capa TLS de los protocolos componibles solo se aceptaban los parámetros `certificateFile` y `privateKeyFile`. [https://clickhouse.com/docs/operations/settings/composable-protocols](https://clickhouse.com/docs/operations/settings/composable-protocols). [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Se añadió el evento de perfil `SelectQueriesWithPrimaryKeyUsage`, que indica cuántas consultas SELECT utilizan la clave primaria para evaluar la cláusula WHERE. [#64492](https://github.com/ClickHouse/ClickHouse/pull/64492) ([0x01f](https://github.com/0xfei)).
* Correcciones y mejoras relacionadas con `StorageS3Queue`. Deducir el valor predeterminado de `s3queue_processing_threads_num` según el número de núcleos físicos de CPU del servidor (en lugar del valor predeterminado anterior, que era 1). Establecer el valor predeterminado de `s3queue_loading_retries` en 10. Corregir la posible y ambigua excepción "Uncaught exception" en la columna de excepciones de `system.s3queue`. No incrementar el número de reintentos en caso de la excepción `MEMORY_LIMIT_EXCEEDED`. Mover la confirmación de archivos a una etapa posterior a la finalización completa de la inserción en la tabla, para evitar que los archivos se confirmen sin haberse insertado. Añadir los ajustes `s3queue_max_processed_files_before_commit`, `s3queue_max_processed_rows_before_commit`, `s3queue_max_processed_bytes_before_commit`, `s3queue_max_processing_time_sec_before_commit` para controlar mejor el momento de la confirmación y el vaciado. [#65046](https://github.com/ClickHouse/ClickHouse/pull/65046) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Compatibilidad con alias en funciones de vista parametrizadas (solo con el nuevo analizador). [#65190](https://github.com/ClickHouse/ClickHouse/pull/65190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se actualizó para enmascarar la clave de la cuenta en los logs de azureBlobStorage. [#65273](https://github.com/ClickHouse/ClickHouse/pull/65273) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Poda de particiones para predicados `IN` cuando la expresión de filtro forma parte de la expresión `PARTITION BY`. [#65335](https://github.com/ClickHouse/ClickHouse/pull/65335) ([Eduard Karacharov](https://github.com/korowa)).
* `arrayMin`/`arrayMax` pueden aplicarse a todos los tipos de datos comparables. [#65455](https://github.com/ClickHouse/ClickHouse/pull/65455) ([pn](https://github.com/chloro-pn)).
* Se mejoró la contabilización de memoria para cgroups v2 para excluir la memoria ocupada por la caché de páginas. [#65470](https://github.com/ClickHouse/ClickHouse/pull/65470) ([Nikita Taranov](https://github.com/nickitat)).
* No se crean configuraciones de formato para cada fila al serializar fragmentos para insertarlos en la tabla EmbeddedRocksDB. [#65474](https://github.com/ClickHouse/ClickHouse/pull/65474) ([Duc Canh Le](https://github.com/canhld94)).
* Reduce el prompt de `clickhouse-local` a solo `:)`. `getFQDNOrHostName()` tarda demasiado en macOS, y además no queremos un nombre de host en el prompt de `clickhouse-local`. [#65510](https://github.com/ClickHouse/ClickHouse/pull/65510) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se evita mostrar un mensaje de jemalloc sobre las arenas por CPU en máquinas virtuales de gama baja. [#65532](https://github.com/ClickHouse/ClickHouse/pull/65532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se deshabilita de forma predeterminada la caché del sistema de archivos para las descargas en segundo plano. Se volverá a habilitar cuando resolvamos el problema del posible "Memory limit exceeded", ya que la liberación de memoria se realiza fuera del contexto de la consulta (mientras que el búfer se asigna dentro del contexto de la consulta) si se usan hilos de descarga en segundo plano. Además, es necesario añadir una configuración independiente para definir el tamaño máximo de descarga de los workers en segundo plano (actualmente está limitado por max\_file\_segment\_size, que podría ser demasiado grande). [#65534](https://github.com/ClickHouse/ClickHouse/pull/65534) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añade una nueva opción de configuración `<config_reload_interval_ms>` que permite especificar con qué frecuencia ClickHouse recargará la configuración. [#65545](https://github.com/ClickHouse/ClickHouse/pull/65545) ([alesapin](https://github.com/alesapin)).
* Implementar la codificación binaria para los tipos de datos de ClickHouse y añadir su especificación a la documentación. Utilizarla en la serialización binaria de Dynamic y permitir su uso en los formatos RowBinaryWithNamesAndTypes y Native mediante la configuración. [#65546](https://github.com/ClickHouse/ClickHouse/pull/65546) ([Kruglov Pavel](https://github.com/Avogar)).
* Los ajustes del servidor `compiled_expression_cache_size` y `compiled_expression_cache_elements_size` ahora se muestran en `system.server_settings`. [#65584](https://github.com/ClickHouse/ClickHouse/pull/65584) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añade compatibilidad con la identificación de usuarios basada en la extensión SubjectAltName de x509. [#65626](https://github.com/ClickHouse/ClickHouse/pull/65626) ([Anton Kozlov](https://github.com/tonickkozlov)).
* `clickhouse-local` respetará `max_server_memory_usage` y `max_server_memory_usage_to_ram_ratio` del archivo de configuración. También establecerá de forma predeterminada el uso máximo de memoria en el 90 % de la memoria del sistema, igual que `clickhouse-server`. [#65697](https://github.com/ClickHouse/ClickHouse/pull/65697) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade un script para hacer una copia de seguridad de tus archivos en ClickHouse. [#65699](https://github.com/ClickHouse/ClickHouse/pull/65699) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Origen de PostgreSQL para admitir la cancelación de consultas. [#65722](https://github.com/ClickHouse/ClickHouse/pull/65722) ([Maksim Kita](https://github.com/kitaisreal)).
* Hacer que `allow_experimental_analyzer` quede controlado por el iniciador en las consultas distribuidas. Esto garantiza la compatibilidad y la corrección durante las operaciones en clústeres con versiones mixtas. [#65777](https://github.com/ClickHouse/ClickHouse/pull/65777) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Respetar el límite de CPU del cgroup en Keeper. [#65819](https://github.com/ClickHouse/ClickHouse/pull/65819) ([Antonio Andelic](https://github.com/antonio2368)).
* Se permite usar la función `concat` con argumentos vacíos `:) select concat();`. [#65887](https://github.com/ClickHouse/ClickHouse/pull/65887) ([李扬](https://github.com/taiyang-li)).
* Permite controlar las colecciones con nombre en `clickhouse-local`. [#65973](https://github.com/ClickHouse/ClickHouse/pull/65973) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora de los eventos de perfil relacionados con Azure. [#65999](https://github.com/ClickHouse/ClickHouse/pull/65999) ([alesapin](https://github.com/alesapin)).
* Compatibilidad con la lectura de archivos ORC en la zona horaria del escritor. [#66025](https://github.com/ClickHouse/ClickHouse/pull/66025) ([kevinyhzou](https://github.com/KevinyhZou)).
* Se añaden opciones de configuración para controlar las conexiones a PostgreSQL. La opción de configuración `postgresql_connection_attempt_timeout` especifica el valor que se pasa al parámetro `connect_timeout` de la URL de conexión. La opción de configuración `postgresql_connection_pool_retries` especifica el número de reintentos para establecer una conexión con el endpoint de PostgreSQL. [#66232](https://github.com/ClickHouse/ClickHouse/pull/66232) ([Dmitry Novik](https://github.com/novikd)).
* Reducir la imprecisión de `input_wait_elapsed_us`/`elapsed_us` en `system.processors_profile_log`. [#66239](https://github.com/ClickHouse/ClickHouse/pull/66239) ([Azat Khuzhin](https://github.com/azat)).
* Mejora de ProfileEvents para la caché del sistema de archivos. [#66249](https://github.com/ClickHouse/ClickHouse/pull/66249) ([zhukai](https://github.com/nauu)).
* Añade ajustes para ignorar la cláusula `ON CLUSTER` en las consultas de gestión de colecciones con nombre con almacenamiento replicado. [#66288](https://github.com/ClickHouse/ClickHouse/pull/66288) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* La función `generateSnowflakeID` ahora permite especificar un ID de máquina como parámetro para evitar colisiones en clusters de gran tamaño. [#66374](https://github.com/ClickHouse/ClickHouse/pull/66374) ([ZAWA\_ll](https://github.com/Zawa-ll)).
* Desactivar la suspensión con `Ctrl+Z` en modo interactivo. Este es un error habitual y no es el comportamiento esperado para casi ningún usuario. Imagino que solo unos pocos usuarios muy avanzados podrían apreciar la posibilidad de enviar aplicaciones de terminal a segundo plano, pero no conozco a ninguno. [#66511](https://github.com/ClickHouse/ClickHouse/pull/66511) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió una opción para validar el tipo de la clave primaria en Dictionaries. Sin esta opción, en los layouts simples, cualquier tipo de columna se convierte implícitamente a UInt64. [#66595](https://github.com/ClickHouse/ClickHouse/pull/66595) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).

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

* Comprobar las dependencias cíclicas en las consultas CREATE/REPLACE/RENAME/EXCHANGE y lanzar una excepción si existe alguna. Anteriormente, estas dependencias cíclicas podían provocar un interbloqueo durante el arranque del servidor. También se corrigen algunos errores en la creación de dependencias. [#65405](https://github.com/ClickHouse/ClickHouse/pull/65405) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige tamaños inesperados en columnas `LowCardinality` en llamadas a funciones. [#65298](https://github.com/ClickHouse/ClickHouse/pull/65298) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un bloqueo en maxIntersections. [#65689](https://github.com/ClickHouse/ClickHouse/pull/65689) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige el restablecimiento de la cláusula `VALID UNTIL` en la definición del usuario tras un reinicio. [#66409](https://github.com/ClickHouse/ClickHouse/pull/66409) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige la columna de tiempo restante en `SHOW MERGES`. [#66735](https://github.com/ClickHouse/ClickHouse/pull/66735) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `Query was cancelled` podría haberse impreso dos veces en clickhouse-client. Este comportamiento ya se ha corregido. [#66005](https://github.com/ClickHouse/ClickHouse/pull/66005) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió un fallo al usar `MaterializedMySQL` (que es una funcionalidad experimental no compatible) con TABLE OVERRIDE que asigna un campo MySQL NULL a un campo ClickHouse no NULL. [#54649](https://github.com/ClickHouse/ClickHouse/pull/54649) ([Filipp Ozinov](https://github.com/bakwc)).
* Se corrige un error lógico cuando la expresión `PREWHERE` no leía ninguna columna y la tabla no tenía granularidad de índice adaptativa (tabla muy antigua). [#59173](https://github.com/ClickHouse/ClickHouse/pull/59173) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrige un error del búfer de cancelación al cancelar una consulta. [#64478](https://github.com/ClickHouse/ClickHouse/pull/64478) ([Sema Checherinda](https://github.com/CheSema)).
* Corregido el rellenado de las columnas de las partes a partir de los metadatos (cuando `columns.txt` no existe). [#64757](https://github.com/ClickHouse/ClickHouse/pull/64757) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un cierre inesperado en `ALTER TABLE ... ON CLUSTER ... MODIFY SQL SECURITY`. [#64957](https://github.com/ClickHouse/ClickHouse/pull/64957) ([pufit](https://github.com/pufit)).
* Se corrige el fallo al destruir AccessControl: se añade un cierre explícito. [#64993](https://github.com/ClickHouse/ClickHouse/pull/64993) ([Vitaly Baranov](https://github.com/vitlibar)).
* Eliminar recursivamente la función inyectiva del argumento de las funciones `uniq*`. Antes esto funcionaba correctamente, pero dejó de hacerlo en el nuevo analizador. [#65140](https://github.com/ClickHouse/ClickHouse/pull/65140) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige un nombre de proyección inesperado al ejecutar una consulta con CTE. [#65267](https://github.com/ClickHouse/ClickHouse/pull/65267) ([wudidapaopao](https://github.com/wudidapaopao)).
* Se requiere el privilegio `dictGet` para acceder a diccionarios mediante consulta directa o el motor de tabla `Dictionary`. [#65359](https://github.com/ClickHouse/ClickHouse/pull/65359) ([Joe Lynch](https://github.com/joelynch)).
* Se corrige la autenticación de S3 específica por usuario con copias de seguridad incrementales. [#65481](https://github.com/ClickHouse/ClickHouse/pull/65481) ([Antonio Andelic](https://github.com/antonio2368)).
* Deshabilita la optimización `non-intersecting-parts` para las consultas con `FINAL` si estaba habilitada la optimización `read-in-order`. Esto podría dar lugar a un resultado de consulta incorrecto. Como solución temporal, deshabilita `do_not_merge_across_partitions_select_final` y `split_parts_ranges_into_intersecting_and_non_intersecting_final` antes de que se integre esta corrección. [#65505](https://github.com/ClickHouse/ClickHouse/pull/65505) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la aparición de la excepción `Index out of bound for blob metadata` en caso de que se filtraran todos los archivos del lote de la lista. [#65523](https://github.com/ClickHouse/ClickHouse/pull/65523) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige NOT\_FOUND\_COLUMN\_IN\_BLOCK durante la fusión de deduplicación de una proyección. [#65573](https://github.com/ClickHouse/ClickHouse/pull/65573) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrigió un error en MergeJoin. Una columna en serialización dispersa podía tratarse como una columna de su tipo anidado aunque no se hubiera realizado la conversión necesaria. [#65632](https://github.com/ClickHouse/ClickHouse/pull/65632) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrigió un error que impedía que el nivel de compatibilidad '23.4' se aplicara correctamente. [#65737](https://github.com/ClickHouse/ClickHouse/pull/65737) ([cw5121](https://github.com/cw5121)).
* Se corrigió la tabla ODBC con campos Nullable. [#65738](https://github.com/ClickHouse/ClickHouse/pull/65738) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)).
* Se corrige una condición de carrera en `TCPHandler`, que podía producirse en caso de error fatal. [#65744](https://github.com/ClickHouse/ClickHouse/pull/65744) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigieron excepciones no válidas en la función `parseDateTime` con los marcadores de posición `%F` y `%D`. [#65768](https://github.com/ClickHouse/ClickHouse/pull/65768) ([Antonio Andelic](https://github.com/antonio2368)).
* En las consultas que leen de `PostgreSQL`, se cancela la consulta interna de `PostgreSQL` si la consulta de `ClickHouse` ha finalizado. De lo contrario, la consulta de `ClickHouse` no se puede cancelar hasta que finalice la consulta interna de `PostgreSQL`. [#65771](https://github.com/ClickHouse/ClickHouse/pull/65771) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió un error en la lógica de cortocircuito al usar el analizador antiguo y dictGetOrDefault. [#65802](https://github.com/ClickHouse/ClickHouse/pull/65802) ([jsc0218](https://github.com/jsc0218)).
* Se corrige un error que provocaba que EmbeddedRocksDB con escritura TTL generara archivos SST dañados. [#65816](https://github.com/ClickHouse/ClickHouse/pull/65816) ([Duc Canh Le](https://github.com/canhld94)).
* Las funciones `bitTest`, `bitTestAll` y `bitTestAny` ahora devuelven un error si el índice de bits especificado está fuera de rango [#65818](https://github.com/ClickHouse/ClickHouse/pull/65818) ([Pablo Marcos](https://github.com/pamarcos)).
* La opción `join_any_take_last_row` se admite en cualquier consulta con hash join. [#65820](https://github.com/ClickHouse/ClickHouse/pull/65820) ([vdimir](https://github.com/vdimir)).
* Mejor manejo de las condiciones de join que incluyen comprobaciones `IS NULL` (por ejemplo, `ON (a = b AND (a IS NOT NULL) AND (b IS NOT NULL) ) OR ( (a IS NULL) AND (b IS NULL) )` se reescribe como `ON a <=> b`), y se corrige una optimización incorrecta cuando hay condiciones distintas de `IS NULL`. [#65835](https://github.com/ClickHouse/ClickHouse/pull/65835) ([vdimir](https://github.com/vdimir)).
* Se corrige el aumento del uso de memoria en S3Queue. [#65839](https://github.com/ClickHouse/ClickHouse/pull/65839) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige el manejo de empates en `arrayAUC` para que coincida con sklearn. [#65840](https://github.com/ClickHouse/ClickHouse/pull/65840) ([gabrielmcg44](https://github.com/gabrielmcg44)).
* Se corrigen posibles problemas en las conexiones TLS del protocolo del servidor MySQL. [#65917](https://github.com/ClickHouse/ClickHouse/pull/65917) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigen posibles problemas en las conexiones TLS del protocolo cliente de MySQL. [#65938](https://github.com/ClickHouse/ClickHouse/pull/65938) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el manejo de `SSL_ERROR_WANT_READ`/`SSL_ERROR_WANT_WRITE` con timeout cero. [#65941](https://github.com/ClickHouse/ClickHouse/pull/65941) ([Azat Khuzhin](https://github.com/azat)).
* Añade las configuraciones que faltan `input_format_csv_skip_first_lines/input_format_tsv_skip_first_lines/input_format_csv_try_infer_numbers_from_strings/input_format_csv_try_infer_strings_from_quoted_tuples` a la caché de inferencia de esquemas, ya que pueden cambiar el esquema resultante. Esto evita resultados incorrectos en la inferencia de esquemas cuando se modifican estas configuraciones. [#65980](https://github.com/ClickHouse/ClickHouse/pull/65980) ([Kruglov Pavel](https://github.com/Avogar)).
* La columna \_size en el motor s3 y en la función de tabla s3 indica el tamaño de un archivo dentro del archivo comprimido, no el tamaño del propio archivo comprimido. [#65993](https://github.com/ClickHouse/ClickHouse/pull/65993) ([Daniil Ivanik](https://github.com/divanik)).
* Se corrigió la resolución de subcolumnas dinámicas en el analizador y se evitó leer la columna completa al leer una subcolumna dinámica. [#66004](https://github.com/ClickHouse/ClickHouse/pull/66004) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la fusión de la configuración de from\_env con sobrescrituras de replace. [#66034](https://github.com/ClickHouse/ClickHouse/pull/66034) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un posible bloqueo en `GRPCServer` durante el cierre. [#66061](https://github.com/ClickHouse/ClickHouse/pull/66061) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigieron varios casos de la función `has` con argumentos `LowCardinality` no constantes. [#66088](https://github.com/ClickHouse/ClickHouse/pull/66088) ([Anton Popov](https://github.com/CurtizJ)).
* Corrección de `groupArrayIntersect`. Presentaba un comportamiento incorrecto en la función `merge()`. Además, se corrigió el comportamiento de `deserialise()` para datos numéricos y generales. [#66103](https://github.com/ClickHouse/ClickHouse/pull/66103) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigió un error de desbordamiento de búfer en la implementación de `unbin`/`unhex`. [#66106](https://github.com/ClickHouse/ClickHouse/pull/66106) ([Nikita Taranov](https://github.com/nickitat)).
* Se deshabilitó la optimización `merge-filters` introducida en [#64760](https://github.com/ClickHouse/ClickHouse/issues/64760). Puede provocar una excepción si la optimización fusiona dos expresiones de filtro y no aplica una evaluación con cortocircuito. [#66126](https://github.com/ClickHouse/ClickHouse/pull/66126) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el problema por el que el servidor no podía interpretar archivos Avro con arrays codificados con un tamaño de bloque negativo, algo que ahora permite la especificación de Avro. [#66130](https://github.com/ClickHouse/ClickHouse/pull/66130) ([Serge Klochkov](https://github.com/slvrtrn)).
* Se corrigió un error en el cliente de ZooKeeper: una sesión podía quedar bloqueada en un estado inutilizable después de recibir un error de hardware de ZooKeeper. Por ejemplo, esto podía ocurrir debido al "soft memory limit" en ClickHouse Keeper. [#66140](https://github.com/ClickHouse/ClickHouse/pull/66140) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrige un problema en SumIfToCountIfVisitor y en los enteros con signo. [#66146](https://github.com/ClickHouse/ClickHouse/pull/66146) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió un caso poco frecuente de ausencia de datos en el resultado de una consulta distribuida. [#66174](https://github.com/ClickHouse/ClickHouse/pull/66174) ([vdimir](https://github.com/vdimir)).
* Se corrige el orden de procesamiento de los campos de metadatos en StorageDeltaLake. [#66211](https://github.com/ClickHouse/ClickHouse/pull/66211) ([Kseniia Sumarokova](https://github.com/kssenii)).
* No lanzar `TIMEOUT_EXCEEDED` en el modo `none_only_active` de `distributed_ddl_output_mode`. [#66218](https://github.com/ClickHouse/ClickHouse/pull/66218) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrige la gestión del límite para `system.numbers_mt` cuando no se puede usar ningún índice. [#66231](https://github.com/ClickHouse/ClickHouse/pull/66231) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se corrigió la forma en que el servidor de ClickHouse detecta el número máximo de núcleos de CPU utilizables según lo especificado por cgroups v2 cuando el servidor se ejecuta en un contenedor como Docker. En concreto, los contenedores suelen ejecutar su proceso en el cgroup raíz, que tiene un nombre vacío. En ese caso, ClickHouse ignoraba los límites de CPU establecidos por cgroups v2. [#66237](https://github.com/ClickHouse/ClickHouse/pull/66237) ([filimonov](https://github.com/filimonov)).
* Se corrige el error `Not-ready set` cuando se usa una subconsulta con `IN` en la restricción. [#66261](https://github.com/ClickHouse/ClickHouse/pull/66261) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el reporte de errores al copiar a S3 o AzureBlobStorage. [#66295](https://github.com/ClickHouse/ClickHouse/pull/66295) ([Vitaly Baranov](https://github.com/vitlibar)).
* Impide que watchdog mantenga descriptores de archivos de log desvinculados (rotados). [#66334](https://github.com/ClickHouse/ClickHouse/pull/66334) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Se corrige el error por el cual logicalexpressionoptimizerpass perdía el tipo lógico de la constante. [#66344](https://github.com/ClickHouse/ClickHouse/pull/66344) ([pn](https://github.com/chloro-pn)).
* Se corrige el error `Column identifier is already registered` al usar `group_by_use_nulls=true` y el nuevo analizador. [#66400](https://github.com/ClickHouse/ClickHouse/pull/66400) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un posible resultado incorrecto en consultas que realizan `join` y filtran tablas con engine externo (como PostgreSQL), debido a un pushdown de filtros demasiado agresivo. A partir de ahora, las condiciones de la sección `where` no se enviarán a la base de datos externa en caso de `outer join` con una tabla externa. [#66402](https://github.com/ClickHouse/ClickHouse/pull/66402) ([vdimir](https://github.com/vdimir)).
* Se añadió la materialización de la columna que faltaba para cross join. [#66413](https://github.com/ClickHouse/ClickHouse/pull/66413) ([lgbo](https://github.com/lgbo-ustc)).
* Se corrige el error `Cannot find column` en consultas con una expresión constante en la clave `GROUP BY` y con el nuevo analyzer habilitado. [#66433](https://github.com/ClickHouse/ClickHouse/pull/66433) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se evita un posible error lógico durante la importación en formato Npy en caso de un nivel incorrecto de anidamiento de arrays; se corrigen las pruebas para otros tipos de errores. [#66461](https://github.com/ClickHouse/ClickHouse/pull/66461) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige el valor incorrecto de count() cuando hay una función no determinista en el predicado. [#66510](https://github.com/ClickHouse/ClickHouse/pull/66510) ([Duc Canh Le](https://github.com/canhld94)).
* Hacer un seguimiento correcto de la memoria en `Allocator::realloc`. [#66548](https://github.com/ClickHouse/ClickHouse/pull/66548) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió la lectura de memoria sin inicializar al calcular el hash de tuplas vacías. [#66562](https://github.com/ClickHouse/ClickHouse/pull/66562) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un resultado no válido en las consultas con `WINDOW`. Esto podía ocurrir cuando las columnas `PARTITION` tienen serialización dispersa y las funciones de ventana se ejecutan en paralelo. [#66579](https://github.com/ClickHouse/ClickHouse/pull/66579) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la eliminación de las colecciones nombradas en el almacenamiento local. [#66599](https://github.com/ClickHouse/ClickHouse/pull/66599) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se corrige un problema por el que `column_length` no se actualizaba en `ColumnTuple::insertManyFrom`. [#66626](https://github.com/ClickHouse/ClickHouse/pull/66626) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige los errores `Unknown identifier` y `Column is not under aggregate function` en consultas con la expresión `(column IS NULL).` El error se desencadenaba por [#65088](https://github.com/ClickHouse/ClickHouse/issues/65088) y solo se producía con el analizador deshabilitado. [#66654](https://github.com/ClickHouse/ClickHouse/pull/66654) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el error `Method getResultType is not supported for QUERY query node` que se producía cuando se usaba una subconsulta escalar como primer argumento de IN (con el nuevo analizador). [#66655](https://github.com/ClickHouse/ClickHouse/pull/66655) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un posible error PARAMETER\_OUT\_OF\_BOUND al leer una subcolumna de Variant. [#66659](https://github.com/ClickHouse/ClickHouse/pull/66659) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un caso poco frecuente de merge atascado tras eliminar una columna. [#66707](https://github.com/ClickHouse/ClickHouse/pull/66707) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige la aserción `isUniqTypes` al ejecutar `insert select` desde orígenes remotos. [#66722](https://github.com/ClickHouse/ClickHouse/pull/66722) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige un error de lógica en PrometheusRequestHandler. [#66621](https://github.com/ClickHouse/ClickHouse/pull/66621) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el caso de la función `indexHint` detectado por el fuzzer. [#66286](https://github.com/ClickHouse/ClickHouse/pull/66286) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el formato del AST de 'create table b empty as a'. [#64951](https://github.com/ClickHouse/ClickHouse/pull/64951) ([Michael Kolupaev](https://github.com/al13n321)).

### <a id="246" /> Lanzamiento de ClickHouse 24.6, 2024-07-01. [Presentación](https://presentations.clickhouse.com/2024-release-24.6/), [Video](https://www.youtube.com/watch?v=BK-x8lpvOQw)

<Frame>
  <iframe src="https://www.youtube.com/embed/BK-x8lpvOQw" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* Se habilita de forma predeterminada la carga asíncrona de bases de datos y tablas. Consulte `async_load_databases` en config.xml. Aunque este cambio es totalmente compatible, puede introducir una diferencia de comportamiento. Cuando `async_load_databases` es false, como en las versiones anteriores, el servidor no aceptará conexiones hasta que se hayan cargado todas las tablas. Cuando `async_load_databases` es true, como en la nueva versión, el servidor puede aceptar conexiones antes de que se carguen todas las tablas. Si se realiza una consulta a una tabla que aún no se ha cargado, esta esperará a que finalice la carga de la tabla, lo que puede llevar un tiempo considerable. Esto puede cambiar el comportamiento del servidor si forma parte de un sistema distribuido grande detrás de un balanceador de carga. En el primer caso, el balanceador de carga puede recibir un rechazo de conexión y hacer failover rápidamente a otro servidor. En el segundo caso, el balanceador de carga puede conectarse a un servidor que todavía está cargando las tablas, y la consulta tendrá una latencia mayor. Además, si muchas consultas se acumulan en estado de espera, esto puede provocar un problema de "thundering herd" cuando comiencen a procesarse simultáneamente. Esto solo puede suponer una diferencia en backends distribuidos con alta carga. Puede establecer el valor de `async_load_databases` en false para evitar este problema. [#57695](https://github.com/ClickHouse/ClickHouse/pull/57695) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La configuración `replace_long_file_name_to_hash` está habilitada de forma predeterminada para las tablas `MergeTree`. [#64457](https://github.com/ClickHouse/ClickHouse/pull/64457) ([Anton Popov](https://github.com/CurtizJ)). Esta configuración es totalmente compatible y no requiere ninguna acción durante la actualización. El nuevo formato de datos es compatible con todas las versiones a partir de la 23.9. Después de habilitar esta configuración, ya no podrá volver a una versión 23.8 o anterior.
* Algunas consultas no válidas fallarán antes durante el análisis. Nota: se deshabilitó la compatibilidad con expresiones KQL inline (el lenguaje Kusto experimental) cuando se colocan en una función de tabla `kql` sin un literal de cadena, por ejemplo `kql(garbage | trash)` en lugar de `kql('garbage | trash')` o `kql($$garbage | trash$$)`. Esta característica se introdujo de forma no intencionada y no debería existir. [#61500](https://github.com/ClickHouse/ClickHouse/pull/61500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se ha rediseñado el procesamiento paralelo en el modo `Ordered` del almacenamiento `S3Queue`. Este PR es incompatible con versiones anteriores para el modo `Ordered` si utilizaba las configuraciones `s3queue_processing_threads_num` o `s3queue_total_shards_num`. La configuración `s3queue_total_shards_num` se eliminó; anteriormente solo se permitía usarla con `s3queue_allow_experimental_sharded_mode`, que ahora está obsoleta. Se añadió una nueva configuración: `s3queue_buckets`. [#64349](https://github.com/ClickHouse/ClickHouse/pull/64349) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadieron las nuevas funciones `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID` y `dateTime64ToSnowflakeID`. A diferencia de las funciones existentes `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake` y `dateTime64ToSnowflake`, las nuevas funciones son compatibles con la función `generateSnowflakeID`; es decir, aceptan los Snowflake ID generados por `generateSnowflakeID` y producen Snowflake ID del mismo tipo que `generateSnowflakeID` (es decir, `UInt64`). Además, las nuevas funciones usan de forma predeterminada la época UNIX (también conocida como 1970-01-01), igual que `generateSnowflakeID`. Si es necesario, se puede pasar una época diferente, por ejemplo, la época de Twitter/X del 2010-11-04, también conocida como 1288834974657 msec desde la época UNIX. Las antiguas funciones de conversión están obsoletas y se eliminarán después de un período de transición: para seguir utilizándolas, habilite la configuración `allow_deprecated_snowflake_conversion_functions`. [#64948](https://github.com/ClickHouse/ClickHouse/pull/64948) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Se permite almacenar named collections en ClickHouse Keeper. [#64574](https://github.com/ClickHouse/ClickHouse/pull/64574) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Admite tuplas vacías. [#55061](https://github.com/ClickHouse/ClickHouse/pull/55061) ([Amos Bird](https://github.com/amosbird)).
* Se añaden funciones de codificación y decodificación de la curva de Hilbert. [#60156](https://github.com/ClickHouse/ClickHouse/pull/60156) ([Artem Mustafin](https://github.com/Artemmm91)).
* Se añadió soporte para el análisis de índices en `hilbertEncode`. [#64662](https://github.com/ClickHouse/ClickHouse/pull/64662) ([Artem Mustafin](https://github.com/Artemmm91)).
* Se añadió compatibilidad para leer la geometría `LINESTRING` en formato WKT mediante la función `readWKTLineString`. [#62519](https://github.com/ClickHouse/ClickHouse/pull/62519) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite adjuntar partes desde un disco diferente. [#63087](https://github.com/ClickHouse/ClickHouse/pull/63087) ([Unalian](https://github.com/Unalian)).
* Se añadió la nueva función SQL `generateSnowflakeID` para generar identificadores Snowflake al estilo de Twitter. [#63577](https://github.com/ClickHouse/ClickHouse/pull/63577) ([Danila Puzov](https://github.com/kazalika)).
* Se añadieron los ajustes `merge_workload` y `mutation_workload` para regular cómo se utilizan y se comparten los recursos entre las fusiones, las mutaciones y otras cargas de trabajo. [#64061](https://github.com/ClickHouse/ClickHouse/pull/64061) ([Sergei Trifonov](https://github.com/serxa)).
* Se añade soporte para comparar los tipos `IPv4` e `IPv6` mediante el operador `=`. [#64292](https://github.com/ClickHouse/ClickHouse/pull/64292) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Se admiten argumentos decimales en las funciones matemáticas binarias (pow, atan2, max2, min2, hypot). [#64582](https://github.com/ClickHouse/ClickHouse/pull/64582) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Se añadieron las funciones SQL `parseReadableSize` (así como las variantes `OrNull` y `OrZero`). [#64742](https://github.com/ClickHouse/ClickHouse/pull/64742) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Añade los ajustes del servidor `max_table_num_to_throw` y `max_database_num_to_throw` para limitar el número de bases de datos o de tablas en las consultas `CREATE`. [#64781](https://github.com/ClickHouse/ClickHouse/pull/64781) ([Xu Jia](https://github.com/XuJia0210)).
* Se añade la columna virtual `_time` a almacenamientos de tipo archivo (s3/file/hdfs/url/azureBlobStorage). [#64947](https://github.com/ClickHouse/ClickHouse/pull/64947) ([Ilya Golshtein](https://github.com/ilejn)).
* Se han introducido las nuevas funciones `base64URLEncode`, `base64URLDecode` y `tryBase64URLDecode`. [#64991](https://github.com/ClickHouse/ClickHouse/pull/64991) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Se agrega la nueva función `editDistanceUTF8`, que calcula la [distancia de edición](https://en.wikipedia.org/wiki/Edit_distance) entre dos cadenas UTF-8. [#65269](https://github.com/ClickHouse/ClickHouse/pull/65269) ([LiuNeng](https://github.com/liuneng1994)).
* Se añadió la configuración `http_response_headers` para admitir encabezados de respuesta personalizados en handlers HTTP personalizados. [#63562](https://github.com/ClickHouse/ClickHouse/pull/63562) ([Grigorii](https://github.com/GSokol)).
* Se añadió una nueva función de tabla `loop` para devolver resultados de consultas en un bucle infinito. [#63452](https://github.com/ClickHouse/ClickHouse/pull/63452) ([Sariel](https://github.com/sarielwxm)). Esto es útil para realizar pruebas.
* Se introdujeron dos columnas adicionales en `system.query_log`: `used_privileges` y `missing_privileges`. `used_privileges` se rellena con los privilegios que se comprobaron durante la ejecución de la consulta, y `missing_privileges` contiene los privilegios requeridos que faltan. [#64597](https://github.com/ClickHouse/ClickHouse/pull/64597) ([Alexey Katsman](https://github.com/alexkats)).
* Se añadió una configuración, `output_format_pretty_display_footer_column_names`, que, cuando está habilitada, muestra los nombres de las columnas al final de la tabla en tablas largas (50 filas de forma predeterminada). El valor umbral del número mínimo de filas se controla mediante `output_format_pretty_display_footer_column_names_min_rows`. [#65144](https://github.com/ClickHouse/ClickHouse/pull/65144) ([Shaun Struwig](https://github.com/Blargian)).

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

* Se introducen estadísticas del tipo "número de valores distintos". [#59357](https://github.com/ClickHouse/ClickHouse/pull/59357) ([Han Fei](https://github.com/hanfei1991)).
* Se admiten estadísticas con ReplicatedMergeTree. [#64934](https://github.com/ClickHouse/ClickHouse/pull/64934) ([Han Fei](https://github.com/hanfei1991)).
* Si se configura "grupo de réplicas" para una base de datos `Replicated`, se crea automáticamente un clúster que incluye réplicas de todos los grupos. [#64312](https://github.com/ClickHouse/ClickHouse/pull/64312) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se agregan las configuraciones `parallel_replicas_custom_key_range_lower` y `parallel_replicas_custom_key_range_upper` para controlar cómo las réplicas paralelas con segmentos dinámicos paralelizan las consultas al usar un filtro por rango. [#64604](https://github.com/ClickHouse/ClickHouse/pull/64604) ([josh-hildred](https://github.com/josh-hildred)).

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

* Se añade la posibilidad de reordenar las filas durante la inserción para optimizar el tamaño sin alterar el orden definido por `PRIMARY KEY`. Se controla mediante la configuración `optimize_row_order` (desactivada de forma predeterminada). [#63578](https://github.com/ClickHouse/ClickHouse/pull/63578) ([Igor Markelov](https://github.com/ElderlyPassionFruit)).
* Se añade un lector nativo de Parquet que puede leer datos binarios Parquet directamente en columnas de ClickHouse. Se controla mediante la configuración `input_format_parquet_use_native_reader` (deshabilitada de forma predeterminada). [#60361](https://github.com/ClickHouse/ClickHouse/pull/60361) ([ZhiHong Zhang](https://github.com/copperybean)).
* Se admite la optimización parcial del recuento trivial cuando el filtro de la consulta puede seleccionar rangos exactos de tablas MergeTree. [#60463](https://github.com/ClickHouse/ClickHouse/pull/60463) ([Amos Bird](https://github.com/amosbird)).
* Reduce el uso máximo de memoria de las operaciones `INSERT` multihilo al recopilar fragmentos de varios hilos en una única transformación. [#61047](https://github.com/ClickHouse/ClickHouse/pull/61047) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Reduce el uso de memoria al usar almacenamiento de objetos de Azure mediante una asignación fija de memoria, evitando la asignación de un búfer adicional. [#63160](https://github.com/ClickHouse/ClickHouse/pull/63160) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Reducir el número de llamadas a funciones virtuales en `ColumnNullable::size`. [#60556](https://github.com/ClickHouse/ClickHouse/pull/60556) ([HappenLee](https://github.com/HappenLee)).
* Se acelera `splitByRegexp` cuando el argumento de expresión regular es de un solo carácter. [#62696](https://github.com/ClickHouse/ClickHouse/pull/62696) ([Robert Schulze](https://github.com/rschu1ze)).
* Acelera la agregación con claves de 8 y 16 bits mediante el seguimiento de las claves mínima y máxima utilizadas. Esto permite reducir el número de celdas que es necesario verificar. [#62746](https://github.com/ClickHouse/ClickHouse/pull/62746) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimiza el operador IN cuando el operando izquierdo es `LowCardinality` y el derecho es un conjunto de constantes. [#64060](https://github.com/ClickHouse/ClickHouse/pull/64060) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Se utiliza un pool de hilos para inicializar y destruir tablas hash dentro de `ConcurrentHashJoin`. [#64241](https://github.com/ClickHouse/ClickHouse/pull/64241) ([Nikita Taranov](https://github.com/nickitat)).
* Se optimizaron las fusiones verticales en tablas con columnas dispersas. [#64311](https://github.com/ClickHouse/ClickHouse/pull/64311) ([Anton Popov](https://github.com/CurtizJ)).
* Se habilitaron las precargas de datos desde un sistema de archivos remoto durante las fusiones verticales. Esto mejora la latencia de las fusiones verticales en tablas con datos almacenados en un sistema de archivos remoto. [#64314](https://github.com/ClickHouse/ClickHouse/pull/64314) ([Anton Popov](https://github.com/CurtizJ)).
* Se reducen las llamadas redundantes a `isDefault` de `ColumnSparse::filter` para mejorar el rendimiento. [#64426](https://github.com/ClickHouse/ClickHouse/pull/64426) ([Jiebin Sun](https://github.com/jiebinn)).
* Acelera los comandos `find_super_nodes` y `find_big_family` de keeper-client mediante múltiples solicitudes asíncronas a getChildren. [#64628](https://github.com/ClickHouse/ClickHouse/pull/64628) ([Alexander Gololobov](https://github.com/davenger)).
* Mejora en la función `least`/`greatest` para argumentos de tipo numérico Nullable. [#64668](https://github.com/ClickHouse/ClickHouse/pull/64668) ([KevinyhZou](https://github.com/KevinyhZou)).
* Permite fusionar dos pasos de filtrado consecutivos de un plan de consulta. Esto mejora la optimización de `filter-push-down` si la condición de filtro puede trasladarse a un nivel inferior desde el paso padre. [#64760](https://github.com/ClickHouse/ClickHouse/pull/64760) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se elimina una optimización incorrecta en la implementación vertical de FINAL y se vuelve a habilitar de forma predeterminada el algoritmo vertical de FINAL. [#64783](https://github.com/ClickHouse/ClickHouse/pull/64783) ([Duc Canh Le](https://github.com/canhld94)).
* Elimine los nodos ALIAS de la expresión de filtro. Esto mejora ligeramente el rendimiento de las consultas que usan `PREWHERE` (con el nuevo analizador). [#64793](https://github.com/ClickHouse/ClickHouse/pull/64793) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Volver a habilitar la caché de sesiones de OpenSSL. [#65111](https://github.com/ClickHouse/ClickHouse/pull/65111) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadieron ajustes para deshabilitar la materialización de índices de omisión y estadísticas durante las inserciones (`materialize_skip_indexes_on_insert` y `materialize_statistics_on_insert`). [#64391](https://github.com/ClickHouse/ClickHouse/pull/64391) ([Anton Popov](https://github.com/CurtizJ)).
* Utiliza el tamaño de memoria asignado para calcular el tamaño del grupo de filas y reducir el pico de memoria del escritor de Parquet en modo de un solo hilo. [#64424](https://github.com/ClickHouse/ClickHouse/pull/64424) ([LiuNeng](https://github.com/liuneng1994)).
* Mejora el iterador de la columna dispersa para reducir las llamadas a `size`. [#64497](https://github.com/ClickHouse/ClickHouse/pull/64497) ([Jiebin Sun](https://github.com/jiebinn)).
* Actualizar la condición para usar copia del lado del servidor en las copias de seguridad en Azure blob storage. [#64518](https://github.com/ClickHouse/ClickHouse/pull/64518) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se optimizó el uso de memoria de las fusiones verticales para tablas con un gran número de índices de omisión. [#64580](https://github.com/ClickHouse/ClickHouse/pull/64580) ([Anton Popov](https://github.com/CurtizJ)).

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

* `SHOW CREATE TABLE`, al ejecutarse sobre las tablas del sistema, ahora mostrará el comentario, muy útil y específico de cada tabla, que explicará por qué es necesaria. [#63788](https://github.com/ClickHouse/ClickHouse/pull/63788) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* El segundo argumento (escala) de las funciones `round()`, `roundBankers()`, `floor()`, `ceil()` y `trunc()` ya no tiene que ser constante. [#64798](https://github.com/ClickHouse/ClickHouse/pull/64798) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Recarga en caliente de la política de almacenamiento de las tablas `Distributed` al añadir un nuevo disco. [#58285](https://github.com/ClickHouse/ClickHouse/pull/58285) ([Duc Canh Le](https://github.com/canhld94)).
* Evita un posible interbloqueo durante el análisis de índices de MergeTree al programar hilos en un servicio saturado. [#59427](https://github.com/ClickHouse/ClickHouse/pull/59427) ([Sean Haynes](https://github.com/seandhaynes)).
* Varias correcciones menores de casos límite en la compatibilidad con el proxy de S3 y la tunelización. [#63427](https://github.com/ClickHouse/ClickHouse/pull/63427) ([Arthur Passos](https://github.com/arthurpassos)).
* Mejora la visibilidad del reenvío en io\_uring. Se cambia el nombre del evento de profile `IOUringSQEsResubmits` -> `IOUringSQEsResubmitsAsync` y se añade uno nuevo, `IOUringSQEsResubmitsSync`. [#63699](https://github.com/ClickHouse/ClickHouse/pull/63699) ([Tomer Shafir](https://github.com/tomershafir)).
* Se añadió una nueva opción de configuración, `metadata_keep_free_space_bytes`, para conservar espacio libre en el disco de almacenamiento de metadatos. [#64128](https://github.com/ClickHouse/ClickHouse/pull/64128) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se añaden métricas para hacer un seguimiento del número de directorios creados y eliminados por el almacenamiento de metadatos `plain_rewritable`, y del número de entradas en el mapa en memoria de local a remoto. [#64175](https://github.com/ClickHouse/ClickHouse/pull/64175) ([Julia Kartseva](https://github.com/jkartseva)).
* La caché de consultas ahora considera como diferentes las consultas idénticas con configuraciones distintas. Esto aumenta la robustez en los casos en que distintas configuraciones (p. ej., `limit` o `additional_table_filters`) afectarían al resultado de la consulta. [#64205](https://github.com/ClickHouse/ClickHouse/pull/64205) ([Robert Schulze](https://github.com/rschu1ze)).
* Se admite el código de error no estándar `QpsLimitExceeded` del almacenamiento de objetos como error reintentable. [#64225](https://github.com/ClickHouse/ClickHouse/pull/64225) ([Sema Checherinda](https://github.com/CheSema)).
* Prohibir convertir una tabla MergeTree en una tabla replicada si la ruta de ZooKeeper de esa tabla ya existe. [#64244](https://github.com/ClickHouse/ClickHouse/pull/64244) ([Kirill](https://github.com/kirillgarbar)).
* Se añadió una nueva configuración, `input_format_parquet_prefer_block_bytes`, para controlar el promedio de bytes de los bloques de salida, y se cambió el valor predeterminado de `input_format_parquet_max_block_size` a 65409. [#64427](https://github.com/ClickHouse/ClickHouse/pull/64427) ([LiuNeng](https://github.com/liuneng1994)).
* Permitir omitir el uso del proxy para los hosts especificados en la variable de entorno `no_proxy` y en la configuración del proxy de ClickHouse. [#63314](https://github.com/ClickHouse/ClickHouse/pull/63314) ([Arthur Passos](https://github.com/arthurpassos)).
* Inicie siempre Keeper con un número suficiente de hilos en el pool global de hilos. [#64444](https://github.com/ClickHouse/ClickHouse/pull/64444) ([Duc Canh Le](https://github.com/canhld94)).
* Los ajustes de la configuración del usuario no afectan a los merges ni a las mutaciones de `MergeTree` sobre almacenamiento de objetos. [#64456](https://github.com/ClickHouse/ClickHouse/pull/64456) ([alesapin](https://github.com/alesapin)).
* Se admite el código de error no estándar `TotalQpsLimitExceeded` en el almacenamiento de objetos como error reintentable. [#64520](https://github.com/ClickHouse/ClickHouse/pull/64520) ([Sema Checherinda](https://github.com/CheSema)).
* Se actualizó el Advanced Dashboard, tanto para las versiones de código abierto como para ClickHouse Cloud, para incluir un gráfico de 'Máximo de conexiones de red concurrentes'. [#64610](https://github.com/ClickHouse/ClickHouse/pull/64610) ([Thom O'Connor](https://github.com/thomoco)).
* Mejora del reporte de progreso de `zeros_mt` y `generateRandom`. [#64804](https://github.com/ClickHouse/ClickHouse/pull/64804) ([Raúl Marín](https://github.com/Algunenano)).
* Añade una métrica asíncrona `jemalloc.profile.active` para mostrar si el muestreo está activo en ese momento. Se trata de un mecanismo de activación adicional a prof.active; ambos deben estar activos para que el hilo que realiza la llamada pueda muestrear. [#64842](https://github.com/ClickHouse/ClickHouse/pull/64842) ([Unalian](https://github.com/Unalian)).
* Se elimina la marca de `allow_experimental_join_condition` como importante. Esta marca podría haber impedido que las consultas distribuidas en un clúster con versiones mixtas se ejecutaran correctamente. [#65008](https://github.com/ClickHouse/ClickHouse/pull/65008) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se agregaron las métricas asíncronas del servidor `DiskGetObjectThrottler*` y `DiskGetObjectThrottler*`, que reflejan el límite de solicitudes por segundo definido con la configuración de disco `s3_max_get_rps` y `s3_max_put_rps`, así como la cantidad de solicitudes actualmente disponibles que podrían enviarse sin alcanzar el límite de limitación de tasa del disco. Las métricas se definen para cada disco que tenga un límite configurado. [#65050](https://github.com/ClickHouse/ClickHouse/pull/65050) ([Sergei Trifonov](https://github.com/serxa)).
* Inicializar el colector global de trazas para `Poco::ThreadPool` (necesario para Keeper, etc.). [#65239](https://github.com/ClickHouse/ClickHouse/pull/65239) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió una validación al crear un usuario con `bcrypt_hash`. [#65242](https://github.com/ClickHouse/ClickHouse/pull/65242) ([Raúl Marín](https://github.com/Algunenano)).
* Agregar eventos de perfil correspondientes al número de filas leídas durante/después de `PREWHERE`. [#64198](https://github.com/ClickHouse/ClickHouse/pull/64198) ([Nikita Taranov](https://github.com/nickitat)).
* Muestra la consulta en `EXPLAIN PLAN` con réplicas paralelas. [#64298](https://github.com/ClickHouse/ClickHouse/pull/64298) ([vdimir](https://github.com/vdimir)).
* Cambiar el nombre de `allow_deprecated_functions` a `allow_deprecated_error_prone_window_functions`. [#64358](https://github.com/ClickHouse/ClickHouse/pull/64358) ([Raúl Marín](https://github.com/Algunenano)).
* Respetar también la configuración `max_read_buffer_size` para los descriptores de archivo en la función de tabla `file`. [#64532](https://github.com/ClickHouse/ClickHouse/pull/64532) ([Azat Khuzhin](https://github.com/azat)).
* Deshabilitar las transacciones para motores de almacenamiento no compatibles, incluso en vistas materializadas. [#64918](https://github.com/ClickHouse/ClickHouse/pull/64918) ([alesapin](https://github.com/alesapin)).
* Se prohíbe la cláusula `QUALIFY` en el analizador antiguo. El analizador antiguo ignoraba `QUALIFY`, por lo que esto podía provocar la eliminación inesperada de datos en las mutaciones. [#65356](https://github.com/ClickHouse/ClickHouse/pull/65356) ([Dmitry Novik](https://github.com/novikd)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-5">
  #### Corrección de un error (comportamiento incorrecto perceptible para el usuario en una versión estable oficial)
</div>

* Se corrigió un error en la biblioteca Apache ORC: se corrigió el cálculo de estadísticas de ORC durante la escritura para tipos sin signo en todas las plataformas y para Int8 en ARM. [#64563](https://github.com/ClickHouse/ClickHouse/pull/64563) ([Michael Kolupaev](https://github.com/al13n321)).
* Se restauró el comportamiento de ClickHouse al interpretar Tuples en formato CSV. Este cambio revierte de forma efectiva [https://github.com/ClickHouse/ClickHouse/pull/60994](https://github.com/ClickHouse/ClickHouse/pull/60994) y hace que solo esté disponible bajo unas pocas configuraciones: `output_format_csv_serialize_tuple_into_separate_columns`, `input_format_csv_deserialize_separate_columns_into_tuple` y `input_format_csv_try_infer_strings_from_quoted_tuples`. [#65170](https://github.com/ClickHouse/ClickHouse/pull/65170) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige un error de permisos que permitía a un usuario, en una situación específica, escalar sus privilegios en la base de datos predeterminada sin los permisos necesarios. [#64769](https://github.com/ClickHouse/ClickHouse/pull/64769) ([pufit](https://github.com/pufit)).
* Se corrige un cierre inesperado con UniqInjectiveFunctionsEliminationPass y uniqCombined. [#65188](https://github.com/ClickHouse/ClickHouse/pull/65188) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un error en ClickHouse Keeper que provoca una discrepancia del digest durante el cierre de la sesión. [#65198](https://github.com/ClickHouse/ClickHouse/pull/65198) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Se utiliza la alineación de memoria correcta para el combinador Distinct. Anteriormente, podía producirse un bloqueo debido a una asignación de memoria no válida al usar el combinador. [#65379](https://github.com/ClickHouse/ClickHouse/pull/65379) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un fallo con `DISTINCT` y las funciones de ventana. [#64767](https://github.com/ClickHouse/ClickHouse/pull/64767) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrigió un problema por el que el índice de omisión 'set' no funcionaba con IN e indexHint(). [#62083](https://github.com/ClickHouse/ClickHouse/pull/62083) ([Michael Kolupaev](https://github.com/al13n321)).
* Se admite ejecutar una función al asignar el valor de una vista parametrizada. [#63502](https://github.com/ClickHouse/ClickHouse/pull/63502) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrigió el seguimiento del uso de memoria de Parquet. [#63584](https://github.com/ClickHouse/ClickHouse/pull/63584) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrigió la lectura de columnas del tipo `Tuple(Map(LowCardinality(String), String), ...)`. [#63956](https://github.com/ClickHouse/ClickHouse/pull/63956) ([Anton Popov](https://github.com/CurtizJ)).
* Soluciona un error `Cyclic aliases` en alias cíclicos de distinto tipo (expresión y función). [#63993](https://github.com/ClickHouse/ClickHouse/pull/63993) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Esta corrección usará un contexto redefinido adecuado con el definidor correcto para cada vista del pipeline de consulta. [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)).
* Corrección del analizador: se corrige el error "Not found column" al usar INTERPOLATE. [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige la creación de copias de seguridad en buckets de S3 con credenciales distintas a las del disco que contiene el archivo. [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)).
* La caché de consultas ahora considera distintas dos consultas idénticas realizadas sobre bases de datos diferentes. El comportamiento anterior podía usarse para eludir la falta de permisos de lectura sobre una tabla. [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige una posible terminación del proceso por una excepción no capturada en \~WriteBufferFromFileDescriptor en StatusFile. [#64206](https://github.com/ClickHouse/ClickHouse/pull/64206) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió el error `duplicate alias` en las consultas distribuidas con `ARRAY JOIN`. [#64226](https://github.com/ClickHouse/ClickHouse/pull/64226) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un accurateCast inesperado de string a entero. [#64255](https://github.com/ClickHouse/ClickHouse/pull/64255) ([wudidapaopao](https://github.com/wudidapaopao)).
* Se corrigió la simplificación de CNF en caso de que algún grupo OR contenga átomos mutuamente excluyentes. [#64256](https://github.com/ClickHouse/ClickHouse/pull/64256) ([Eduard Karacharov](https://github.com/korowa)).
* Se corrigió la validación del tamaño de Query Tree. [#64377](https://github.com/ClickHouse/ClickHouse/pull/64377) ([Dmitry Novik](https://github.com/novikd)).
* Se corrige `Logical error: Bad cast` en la tabla `Buffer` con `PREWHERE`. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evita el logging recursivo en `blob_storage_log` cuando se almacena en almacenamiento de objetos. [#64393](https://github.com/ClickHouse/ClickHouse/pull/64393) ([vdimir](https://github.com/vdimir)).
* Se corrigieron las consultas `CREATE TABLE AS` para tablas con expresiones por defecto. [#64455](https://github.com/ClickHouse/ClickHouse/pull/64455) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió el comportamiento de `optimize_read_in_order` para ORDER BY ... NULLS FIRST / LAST en tablas con claves Nullable. [#64483](https://github.com/ClickHouse/ClickHouse/pull/64483) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige los errores `Expression nodes list expected 1 projection names` y `Unknown expression or identifier` en consultas con alias de `GLOBAL IN.`. [#64517](https://github.com/ClickHouse/ClickHouse/pull/64517) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un error `Cannot find column` en consultas distribuidas con una CTE constante en la clave de `GROUP BY`. [#64519](https://github.com/ClickHouse/ClickHouse/pull/64519) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige el crash loop cuando la restauración desde una copia de seguridad se bloquea al crear una MV con un definidor que aún no se ha restaurado. [#64595](https://github.com/ClickHouse/ClickHouse/pull/64595) ([pufit](https://github.com/pufit)).
* Se corrige la salida de la función `formatDateTimeInJodaSyntax` cuando un formateador genera un número impar de caracteres y el último es `0`. Por ejemplo, `SELECT formatDateTimeInJodaSyntax(toDate('2012-05-29'), 'D')` ahora devuelve correctamente `150` en lugar de `15`, como hacía antes. [#64614](https://github.com/ClickHouse/ClickHouse/pull/64614) ([LiuNeng](https://github.com/liuneng1994)).
* No reescriba la agregación si ya se utiliza el combinador `-If`. [#64638](https://github.com/ClickHouse/ClickHouse/pull/64638) ([Dmitry Novik](https://github.com/novikd)).
* Se corrige la inferencia de tipos para `float` (en caso de que el búfer sea pequeño; es decir, `--max_read_buffer_size 1`). [#64641](https://github.com/ClickHouse/ClickHouse/pull/64641) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un error que podía hacer que los TTL con expresiones dejaran de funcionar. [#64694](https://github.com/ClickHouse/ClickHouse/pull/64694) ([alesapin](https://github.com/alesapin)).
* Se corrige la eliminación de las expresiones `WHERE` y `PREWHERE` que siempre se evalúan como verdaderas (con el nuevo analizador). [#64695](https://github.com/ClickHouse/ClickHouse/pull/64695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el descarte excesivo de partes en los índices de texto basados en tokens (`ngrambf` , `full_text`) al filtrar por el resultado de `startsWith`, `endsWith`, `match`, `multiSearchAny`. [#64720](https://github.com/ClickHouse/ClickHouse/pull/64720) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige el comportamiento incorrecto del escape CSI de ANSI en la función `UTF8::computeWidth`. [#64756](https://github.com/ClickHouse/ClickHouse/pull/64756) ([Shaun Struwig](https://github.com/Blargian)).
* Corrige un caso de eliminación indebida de `ORDER BY` / `LIMIT BY` entre subconsultas. [#64766](https://github.com/ClickHouse/ClickHouse/pull/64766) ([Raúl Marín](https://github.com/Algunenano)).
* Corrección (experimental) del join no equi con subconsultas para conjuntos presentes en las condiciones mixtas de join. [#64775](https://github.com/ClickHouse/ClickHouse/pull/64775) ([lgbo](https://github.com/lgbo-ustc)).
* Se corrige un bloqueo en una caché local en el disco `plain_rewritable`. [#64778](https://github.com/ClickHouse/ClickHouse/pull/64778) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrección en Keeper: devuelve el valor correcto de `zk_latest_snapshot_size` en el comando `mntr`. [#64784](https://github.com/ClickHouse/ClickHouse/pull/64784) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige `Cannot find column` en consultas distribuidas con `ARRAY JOIN` sobre una columna `Nested`. Corrige [#64755](https://github.com/ClickHouse/ClickHouse/issues/64755). [#64801](https://github.com/ClickHouse/ClickHouse/pull/64801) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige una fuga de memoria en la política de caché slru. [#64803](https://github.com/ClickHouse/ClickHouse/pull/64803) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un posible seguimiento incorrecto de memoria en varios tipos de consultas: consultas que leen datos de S3, consultas a través del protocolo HTTP e inserciones asíncronas. [#64844](https://github.com/ClickHouse/ClickHouse/pull/64844) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige el error `Block structure mismatch` en consultas que leen con `PREWHERE` desde la vista materializada cuando esta tiene columnas de tipos distintos a los de la tabla de origen. Corrige [#64611](https://github.com/ClickHouse/ClickHouse/issues/64611). [#64855](https://github.com/ClickHouse/ClickHouse/pull/64855) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un bloqueo poco frecuente cuando una tabla tiene TTL con subconsulta + base de datos replicada + réplicas en paralelo + analizador. Es muy poco frecuente, pero, por favor, no use TTL con subconsultas. [#64858](https://github.com/ClickHouse/ClickHouse/pull/64858) ([alesapin](https://github.com/alesapin)).
* Se corrige la duplicación de eventos `Delete` en `blob_storage_log` en caso de que haya un lote grande para eliminar. [#64924](https://github.com/ClickHouse/ClickHouse/pull/64924) ([vdimir](https://github.com/vdimir)).
* Se corrigió el error `Session moved to another server` de \[Zoo]Keeper que podía producirse después de iniciar el servidor cuando la configuración contiene inclusiones desde \[Zoo]Keeper. [#64986](https://github.com/ClickHouse/ClickHouse/pull/64986) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrigió la consulta `ALTER MODIFY COMMENT`, que no funcionaba con las VIEW parametrizadas, en [https://github.com/ClickHouse/ClickHouse/pull/54211](https://github.com/ClickHouse/ClickHouse/pull/54211). [#65031](https://github.com/ClickHouse/ClickHouse/pull/65031) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige `host_id` en DatabaseReplicated cuando el parámetro `cluster_secure_connection` está habilitado. Anteriormente, ninguna de las conexiones dentro del cluster creadas por DatabaseReplicated era segura, incluso si el parámetro estaba habilitado. [#65054](https://github.com/ClickHouse/ClickHouse/pull/65054) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrección del error `Not-ready Set` tras la optimización `PREWHERE` de StorageMerge. [#65057](https://github.com/ClickHouse/ClickHouse/pull/65057) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evitar escribir en el búfer finalizado en almacenamientos de tipo File. [#65063](https://github.com/ClickHouse/ClickHouse/pull/65063) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la posible duración infinita de la consulta en caso de alias cíclicos. Soluciona [#64849](https://github.com/ClickHouse/ClickHouse/issues/64849). [#65081](https://github.com/ClickHouse/ClickHouse/pull/65081) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige el error `Unknown expression identifier` en consultas remotas con `INTERPOLATE (alias)` (nuevo analizador). Corrige [#64636](https://github.com/ClickHouse/ClickHouse/issues/64636). [#65090](https://github.com/ClickHouse/ClickHouse/pull/65090) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la extracción de las operaciones aritméticas fuera de la agregación. En el nuevo analizador, la optimización se aplicaba solo una vez. [#65104](https://github.com/ClickHouse/ClickHouse/pull/65104) ([Dmitry Novik](https://github.com/novikd)).
* Se corrige la reescritura de nombres de funciones de agregación en el nuevo analizador. [#65110](https://github.com/ClickHouse/ClickHouse/pull/65110) ([Dmitry Novik](https://github.com/novikd)).
* Responder con 5xx en lugar de 200 OK en caso de timeout de recepción al leer (partes del) cuerpo de la solicitud desde el socket del cliente. [#65118](https://github.com/ClickHouse/ClickHouse/pull/65118) ([Julian Maicher](https://github.com/jmaicher)).
* Corrige un posible fallo en las solicitudes hedged. [#65206](https://github.com/ClickHouse/ClickHouse/pull/65206) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el error en la evaluación de cortocircuito de los diccionarios Hashed y Hashed\_Array, que podría leer un número sin inicializar, lo que provoca diversos errores. [#65256](https://github.com/ClickHouse/ClickHouse/pull/65256) ([jsc0218](https://github.com/jsc0218)).
* Este PR garantiza que el tipo de la constant (el segundo parámetro del operador IN) sea siempre visible durante el proceso de conversión de tipos del operador IN. De lo contrario, la pérdida de información de tipo puede hacer que algunas conversiones fallen, como la conversión de DateTime a Date. Esto corrige ([#64487](https://github.com/ClickHouse/ClickHouse/issues/64487)). [#65315](https://github.com/ClickHouse/ClickHouse/pull/65315) ([pn](https://github.com/chloro-pn)).

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

* Añadir compatibilidad con LLVM XRay. [#64592](https://github.com/ClickHouse/ClickHouse/pull/64592) [#64837](https://github.com/ClickHouse/ClickHouse/pull/64837) ([Tomer Shafir](https://github.com/tomershafir)).
* Unificar las implementaciones de almacenamiento de S3/HDFS/Azure en una sola clase que funcione con IObjectStorage. Lo mismo para los almacenamientos \*Cluster, de lago de datos y Queue. [#59767](https://github.com/ClickHouse/ClickHouse/pull/59767) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Refactorizar el escritor de partes de datos para eliminar dependencias de MergeTreeData y DataPart. [#63620](https://github.com/ClickHouse/ClickHouse/pull/63620) ([Alexander Gololobov](https://github.com/davenger)).
* Refactorizar `KeyCondition` y el análisis de claves para mejorar PartitionPruner y la optimización del recuento trivial. Esto está separado de [#60463](https://github.com/ClickHouse/ClickHouse/issues/60463). [#61459](https://github.com/ClickHouse/ClickHouse/pull/61459) ([Amos Bird](https://github.com/amosbird)).
* Introducir aserciones para verificar que todas las funciones se llamen con columnas del tamaño correcto. [#63723](https://github.com/ClickHouse/ClickHouse/pull/63723) ([Raúl Marín](https://github.com/Algunenano)).
* Hacer que el servicio `network` sea obligatorio al usar el script de inicio `rc` para iniciar el demonio del servidor ClickHouse. [#60650](https://github.com/ClickHouse/ClickHouse/pull/60650) ([Chun-Sheng, Li](https://github.com/peter279k)).
* Reducir el tamaño de algunas pruebas lentas. [#64387](https://github.com/ClickHouse/ClickHouse/pull/64387) [#64452](https://github.com/ClickHouse/ClickHouse/pull/64452) ([Raúl Marín](https://github.com/Algunenano)).
* Reproducir los logs de ZooKeeper usando keeper-bench. [#62481](https://github.com/ClickHouse/ClickHouse/pull/62481) ([Antonio Andelic](https://github.com/antonio2368)).

### <a id="245" /> Lanzamiento de ClickHouse 24.5, 2024-05-30. [Presentación](https://presentations.clickhouse.com/2024-release-24.5/), [Vídeo](https://www.youtube.com/watch?v=dURnKjLuZLg)

<Frame>
  <iframe src="https://www.youtube.com/embed/dURnKjLuZLg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* Se cambió el nombre de los "índices invertidos" a "índices de texto completo", una denominación menos técnica y más fácil de usar. Esto también modifica los metadatos internos de la tabla y rompe las tablas con índices invertidos (experimentales) existentes. Asegúrese de eliminar esos índices antes de la actualización y volver a crearlos después. [#62884](https://github.com/ClickHouse/ClickHouse/pull/62884) ([Robert Schulze](https://github.com/rschu1ze)).
* El uso de las funciones `neighbor`, `runningAccumulate`, `runningDifferenceStartingWithFirstValue` y `runningDifference` ha quedado obsoleto (porque es propenso a errores). En su lugar, deben usarse funciones de ventana adecuadas. Para volver a habilitarlas, establezca `allow_deprecated_error_prone_window_functions = 1` o `compatibility = '24.4'` o inferior. [#63132](https://github.com/ClickHouse/ClickHouse/pull/63132) ([Nikita Taranov](https://github.com/nickitat)).
* Las consultas a `system.columns` funcionarán más rápido si hay una gran cantidad de columnas, pero no se ha concedido `SHOW TABLES` para muchas bases de datos o tablas. Tenga en cuenta que, en versiones anteriores, si concede `SHOW COLUMNS` a columnas individuales sin conceder `SHOW TABLES` a las tablas correspondientes, la tabla `system.columns` mostrará esas columnas, pero en la nueva versión omitirá la tabla por completo. Se eliminaron los mensajes de log de trace "Access granted" y "Access denied", que ralentizaban las consultas. [#63439](https://github.com/ClickHouse/ClickHouse/pull/63439) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Añade el formato `Form` para leer/escribir un solo registro en el formato `application/x-www-form-urlencoded`. [#60199](https://github.com/ClickHouse/ClickHouse/pull/60199) ([Shaun Struwig](https://github.com/Blargian)).
* Se añadió la posibilidad de usar compresión en CROSS JOIN. [#60459](https://github.com/ClickHouse/ClickHouse/pull/60459) ([p1rattttt](https://github.com/p1rattttt)).
* Se añadió la posibilidad de realizar `CROSS JOIN` usando archivos temporales si el tamaño supera los límites. [#63432](https://github.com/ClickHouse/ClickHouse/pull/63432) ([p1rattttt](https://github.com/p1rattttt)).
* Admite `join` con condiciones de desigualdad en las que intervienen columnas de las tablas izquierda y derecha. Por ejemplo, `t1.y < t2.y`. Para habilitarlo, `SET allow_experimental_join_condition = 1`. [#60920](https://github.com/ClickHouse/ClickHouse/pull/60920) ([lgbo](https://github.com/lgbo-ustc)).
* Los mapas ahora pueden tener `Float32`, `Float64`, `Array(T)`, `Map(K, V)` y `Tuple(T1, T2, ...)` como claves. Cierra [#54537](https://github.com/ClickHouse/ClickHouse/issues/54537). [#59318](https://github.com/ClickHouse/ClickHouse/pull/59318) ([李扬](https://github.com/taiyang-li)).
* Se introduce la carga masiva en `EmbeddedRocksDB` mediante la creación y la ingesta de archivos SST, en lugar de depender de la memtable integrada de RocksDB. Esto ayuda a aumentar la velocidad de importación, especialmente en consultas de inserción de larga duración sobre tablas StorageEmbeddedRocksDB. También se introducen los ajustes de tabla de `EmbeddedRocksDB`. [#59163](https://github.com/ClickHouse/ClickHouse/pull/59163) [#63324](https://github.com/ClickHouse/ClickHouse/pull/63324) ([Duc Canh Le](https://github.com/canhld94)).
* Ahora se pueden interpretar finales de línea CRLF con el formato TSV mediante la configuración `input_format_tsv_crlf_end_of_line`. Cierra [#56257](https://github.com/ClickHouse/ClickHouse/issues/56257). [#59747](https://github.com/ClickHouse/ClickHouse/pull/59747) ([Shaun Struwig](https://github.com/Blargian)).
* Un nuevo ajuste `input_format_force_null_for_omitted_fields` que obliga a usar valores NULL para los campos omitidos. [#60887](https://github.com/ClickHouse/ClickHouse/pull/60887) ([Constantine Peresypkin](https://github.com/pkit)).
* Anteriormente, nuestro almacenamiento S3 y la función de tabla `s3` no permitían seleccionar desde archivos contenedores, como tarballs, zip o 7z. Ahora permiten iterar sobre los archivos dentro de archivos comprimidos en S3. [#62259](https://github.com/ClickHouse/ClickHouse/pull/62259) ([Daniil Ivanik](https://github.com/divanik)).
* Se añadió compatibilidad con la función condicional `clamp`. [#62377](https://github.com/ClickHouse/ClickHouse/pull/62377) ([skyoct](https://github.com/skyoct)).
* Se añade el formato de salida `NPy`. [#62430](https://github.com/ClickHouse/ClickHouse/pull/62430) ([豪肥肥](https://github.com/HowePa)).
* El formato `Raw`, como sinónimo de `TSVRaw`. [#63394](https://github.com/ClickHouse/ClickHouse/pull/63394) ([Unalian](https://github.com/Unalian)).
* Se agregó una nueva función SQL `generateUUIDv7` para generar UUID de versión 7, también conocidos como UUID basados en marca de tiempo con un componente aleatorio. También se agregó una nueva función `UUIDToNum` para extraer los bytes de un UUID y una nueva función `UUIDv7ToDateTime` para extraer el componente de marca de tiempo de un UUID de versión 7. [#62852](https://github.com/ClickHouse/ClickHouse/pull/62852) ([Alexey Petrunyaka](https://github.com/pet74alex)).
* En Linux y MacOS, si el programa tiene stdout redirigido a un archivo con una extensión de compresión, usa el método de compresión correspondiente en lugar de no usar compresión (de modo que se comporte de forma similar a `INTO OUTFILE`). [#63662](https://github.com/ClickHouse/ClickHouse/pull/63662) ([v01dXYZ](https://github.com/v01dXYZ)).
* Se cambió la advertencia sobre un número elevado de tablas adjuntas para diferenciar entre tablas, vistas y diccionarios. [#64180](https://github.com/ClickHouse/ClickHouse/pull/64180) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Se añade compatibilidad con la función `azureBlobStorage` en el servidor ClickHouse para usar Workload Identity de Azure para autenticarse en Azure blob storage. Si el parámetro `use_workload_identity` está configurado, se utiliza la [identidad de carga de trabajo](https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity#authenticate-azure-hosted-applications) para la autenticación. [#57881](https://github.com/ClickHouse/ClickHouse/pull/57881) ([Vinay Suryadevara](https://github.com/vinay92-ch)).
* Se añade información de TTL en la tabla `system.parts_columns`. [#63200](https://github.com/ClickHouse/ClickHouse/pull/63200) ([litlig](https://github.com/litlig)).

<div id="experimental-features-1">
  #### Funciones experimentales
</div>

* Se implementa el tipo de dato `Dynamic`, que permite almacenar valores de cualquier tipo sin necesidad de conocerlos todos de antemano. El tipo `Dynamic` está disponible mediante la configuración `allow_experimental_dynamic_type`. Referencia: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#63058](https://github.com/ClickHouse/ClickHouse/pull/63058) ([Kruglov Pavel](https://github.com/Avogar)).
* Se permite crear una base de datos `MaterializedMySQL` sin conexión a MySQL. [#63397](https://github.com/ClickHouse/ClickHouse/pull/63397) ([Kirill](https://github.com/kirillgarbar)).
* Marcar automáticamente una réplica de una base de datos Replicated como perdida e iniciar la recuperación si alguna tarea DDL falla más de `max_retries_before_automatic_recovery` (100 de forma predeterminada) veces seguidas con el mismo error. Además, se corrigió un error que podía provocar la omisión de entradas DDL cuando se lanza una excepción durante una fase temprana de la ejecución de una entrada. [#63549](https://github.com/ClickHouse/ClickHouse/pull/63549) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se contabilizan los archivos fallidos en `s3queue_tracked_file_ttl_sec` y `s3queue_traked_files_limit` para `StorageS3Queue`. [#63638](https://github.com/ClickHouse/ClickHouse/pull/63638) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Menor contención en la caché del sistema de archivos (parte 4). Permite mantener la caché del sistema de archivos sin llenarla hasta el límite realizando expulsiones adicionales en segundo plano (controladas por `keep_free_space_size(elements)_ratio`). Esto reduce la presión sobre la reserva de espacio para las consultas (en el método `tryReserve`). Además, se hace de la forma más libre de bloqueos posible; por ejemplo, no debería bloquear el uso normal de la caché. [#61250](https://github.com/ClickHouse/ClickHouse/pull/61250) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Omitir la fusión de los bloques de proyección recién creados durante los `INSERT`. [#59405](https://github.com/ClickHouse/ClickHouse/pull/59405) ([Nikita Taranov](https://github.com/nickitat)).
* Procesar las funciones de cadena `...UTF8` de forma "ASCII" si las cadenas de entrada contienen solo caracteres ASCII. Inspirado en [https://github.com/apache/doris/pull/29799](https://github.com/apache/doris/pull/29799). Aceleración general de 1.07x\~1.62x. Tenga en cuenta que el uso máximo de memoria también se redujo en algunos casos. [#61632](https://github.com/ClickHouse/ClickHouse/pull/61632) ([李扬](https://github.com/taiyang-li)).
* Se mejoró el rendimiento de los globs de selección (`{}`) en StorageS3. [#62120](https://github.com/ClickHouse/ClickHouse/pull/62120) ([Andrey Zvonov](https://github.com/zvonand)).
* HostResolver tiene cada dirección IP varias veces. Si el host remoto tiene varias IP y, por alguna razón (por ejemplo, reglas de firewall), el acceso a algunas IP está permitido y a otras no, entonces solo la primera entrada de las IP prohibidas se marca como fallida, y en cada intento esas IP pueden volver a elegirse (y volver a fallar). Incluso si se corrige esto, cada 120 segundos se vacía la caché DNS, y las IP pueden volver a seleccionarse. [#62652](https://github.com/ClickHouse/ClickHouse/pull/62652) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Agrega una nueva configuración `prefer_merge_sort_block_bytes` para controlar el uso de memoria y acelerar 2 veces la ordenación durante la fusión cuando hay muchas columnas. [#62904](https://github.com/ClickHouse/ClickHouse/pull/62904) ([LiuNeng](https://github.com/liuneng1994)).
* `clickhouse-local` se iniciará más rápido. En versiones anteriores, por error no eliminaba los directorios temporales. Ahora sí lo hará. Esto cierra [#62941](https://github.com/ClickHouse/ClickHouse/issues/62941). [#63074](https://github.com/ClickHouse/ClickHouse/pull/63074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Microoptimizaciones para el nuevo analizador. [#63429](https://github.com/ClickHouse/ClickHouse/pull/63429) ([Raúl Marín](https://github.com/Algunenano)).
* El análisis de índices funcionará si `DateTime` se compara con `DateTime64`. Esto cierra [#63441](https://github.com/ClickHouse/ClickHouse/issues/63441). [#63443](https://github.com/ClickHouse/ClickHouse/pull/63443) [#63532](https://github.com/ClickHouse/ClickHouse/pull/63532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera un poco (alrededor de 1,5 veces) los índices de tipo `set` eliminando datos innecesarios. [#64098](https://github.com/ClickHouse/ClickHouse/pull/64098) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Elimina la copia de datos al escribir en la caché del sistema de archivos. [#63401](https://github.com/ClickHouse/ClickHouse/pull/63401) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ahora las copias de seguridad con Azure Blob Storage usarán multicopy. [#64116](https://github.com/ClickHouse/ClickHouse/pull/64116) ([alesapin](https://github.com/alesapin)).
* Permite usar la copia nativa para Azure incluso con distintos contenedores. [#64154](https://github.com/ClickHouse/ClickHouse/pull/64154) ([alesapin](https://github.com/alesapin)).
* Finalmente, habilita la copia nativa para Azure. [#64182](https://github.com/ClickHouse/ClickHouse/pull/64182) ([alesapin](https://github.com/alesapin)).

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

* Permite usar `clickhouse-local` y sus alias `clickhouse` y `ch` pasando una consulta o un archivo de consultas como argumento posicional. Ejemplos: `ch "SELECT 1"`, `ch --param_test Hello "SELECT {test:String}"`, `ch query.sql`. Esto cierra [#62361](https://github.com/ClickHouse/ClickHouse/issues/62361). [#63081](https://github.com/ClickHouse/ClickHouse/pull/63081) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se habilitan metadatos plain\_rewritable para los almacenamientos de objetos locales y de Azure (azure\_blob\_storage). [#63365](https://github.com/ClickHouse/ClickHouse/pull/63365) ([Julia Kartseva](https://github.com/jkartseva)).
* Se admiten comillas Unicode de estilo inglés, por ejemplo, “Hello”, 'world'. En general, esto es discutible, pero resulta útil cuando escribes tu consulta en un procesador de textos, como Google Docs. Esto cierra [#58634](https://github.com/ClickHouse/ClickHouse/issues/58634). [#63381](https://github.com/ClickHouse/ClickHouse/pull/63381) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permitir comas finales en la lista de columnas en la consulta INSERT. Por ejemplo, `INSERT INTO test (a, b, c, ) VALUES ...`. [#63803](https://github.com/ClickHouse/ClickHouse/pull/63803) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mensajes de excepción mejorados para el formato `Regexp`. [#63804](https://github.com/ClickHouse/ClickHouse/pull/63804) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se permiten comas finales en el formato `Values`. Por ejemplo, se permite esta consulta: `INSERT INTO test (a, b, c) VALUES (4, 5, 6,);`. [#63810](https://github.com/ClickHouse/ClickHouse/pull/63810) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Hacer que RabbitMQ haga nack de los mensajes defectuosos. Cierra [#45350](https://github.com/ClickHouse/ClickHouse/issues/45350). [#60312](https://github.com/ClickHouse/ClickHouse/pull/60312) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un fallo en el desenrollado asíncrono de la pila de llamadas (como al usar el perfilador de consultas por muestreo) durante la interpretación de la información de depuración. Esto cierra [#60460](https://github.com/ClickHouse/ClickHouse/issues/60460). [#60468](https://github.com/ClickHouse/ClickHouse/pull/60468) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mensajes distintos para el error de S3 'no key' en los casos de disco y almacenamiento. [#61108](https://github.com/ClickHouse/ClickHouse/pull/61108) ([Sema Checherinda](https://github.com/CheSema)).
* La barra de progreso funcionará para consultas triviales con LIMIT sobre `system.zeros`, `system.zeros_mt` (ya funciona para `system.numbers` y `system.numbers_mt`) y la table function `generateRandom`. Además, si el número total de registros supera el límite de `max_rows_to_read`, se lanzará una excepción antes. Esto cierra [#58183](https://github.com/ClickHouse/ClickHouse/issues/58183). [#61823](https://github.com/ClickHouse/ClickHouse/pull/61823) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compatibilidad con "Merge Key" en configuraciones YAML (esta es una característica peculiar de YAML; no le preste atención). [#62685](https://github.com/ClickHouse/ClickHouse/pull/62685) ([Azat Khuzhin](https://github.com/azat)).
* Mejora del mensaje de error cuando se utiliza una función no determinista con Replicated como origen. [#62896](https://github.com/ClickHouse/ClickHouse/pull/62896) ([Grégoire Pineau](https://github.com/lyrixx)).
* Corregido el secreto entre servidores para Distributed sobre Distributed desde `remote`. [#63013](https://github.com/ClickHouse/ClickHouse/pull/63013) ([Azat Khuzhin](https://github.com/azat)).
* Se admite `include_from` para archivos YAML. Sin embargo, es preferible usar `config.d` [#63106](https://github.com/ClickHouse/ClickHouse/pull/63106) ([Eduard Karacharov](https://github.com/korowa)).
* Conservar los datos anteriores en la terminal tras seleccionar una sugerencia de skim. [#63261](https://github.com/ClickHouse/ClickHouse/pull/63261) ([FlameFactory](https://github.com/FlameFactory)).
* El ancho de los campos (en los formatos Pretty o en la función `visibleWidth`) ahora ignora correctamente las secuencias de escape ANSI. [#63270](https://github.com/ClickHouse/ClickHouse/pull/63270) ([Shaun Struwig](https://github.com/Blargian)).
* Se actualizó el uso del código de error `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` por códigos de error más precisos cuando corresponde. [#63406](https://github.com/ClickHouse/ClickHouse/pull/63406) ([Yohann Jardin](https://github.com/yohannj)).
* Ahora `os_user` y `client_hostname` se establecen correctamente en las consultas para las sugerencias de la línea de comandos en clickhouse-client. Esto cierra [#63430](https://github.com/ClickHouse/ClickHouse/issues/63430). [#63433](https://github.com/ClickHouse/ClickHouse/pull/63433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige automáticamente `max_block_size` al valor predeterminado si es cero. [#63587](https://github.com/ClickHouse/ClickHouse/pull/63587) ([Antonio Andelic](https://github.com/antonio2368)).
* Añade una columna ALIAS build\_id a trace\_log para facilitar el cambio de nombre automático al detectar cambios en el binario. Esto corrige [#52086](https://github.com/ClickHouse/ClickHouse/issues/52086). [#63656](https://github.com/ClickHouse/ClickHouse/pull/63656) ([Zimu Li](https://github.com/woodlzm)).
* Habilitar la operación TRUNCATE en discos de almacenamiento de objetos. [#63693](https://github.com/ClickHouse/ClickHouse/pull/63693) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* La carga de la lista de palabras clave ahora depende de la revisión del servidor y se desactivará para las versiones anteriores de ClickHouse server. CC @azat. [#63786](https://github.com/ClickHouse/ClickHouse/pull/63786) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Los discos de ClickHouse deben leer la configuración del servidor para obtener la versión real del formato de metadatos. [#63831](https://github.com/ClickHouse/ClickHouse/pull/63831) ([Sema Checherinda](https://github.com/CheSema)).
* Se deshabilitan las restricciones del formato Pretty (`output_format_pretty_max_rows`/`output_format_pretty_max_value_width`) si stdout no es TTY. [#63942](https://github.com/ClickHouse/ClickHouse/pull/63942) ([Azat Khuzhin](https://github.com/azat)).
* La gestión de excepciones ahora funciona cuando ClickHouse se usa dentro de AWS Lambda. Autor: [Alexey Coolnev](https://github.com/acoolnev). [#64014](https://github.com/ClickHouse/ClickHouse/pull/64014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lanza `CANNOT_DECOMPRESS` en lugar de `CORRUPTED_DATA` cuando se pasan datos comprimidos no válidos mediante HTTP. [#64036](https://github.com/ClickHouse/ClickHouse/pull/64036) ([vdimir](https://github.com/vdimir)).
* La sugerencia para un único número grande en los formatos Pretty ahora también funciona con Nullable y LowCardinality. Esto cierra [#61993](https://github.com/ClickHouse/ClickHouse/issues/61993). [#64084](https://github.com/ClickHouse/ClickHouse/pull/64084) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añaden métricas, logs y nombres de hilos al filtrado de partes con índices. [#64130](https://github.com/ClickHouse/ClickHouse/pull/64130) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ignorar `allow_suspicious_primary_key` en `ATTACH` y comprobarlo en `ALTER`. [#64202](https://github.com/ClickHouse/ClickHouse/pull/64202) ([Azat Khuzhin](https://github.com/azat)).

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

* ClickHouse se compila con clang-18. Se han habilitado muchas comprobaciones nuevas de clang-tidy-18. [#60469](https://github.com/ClickHouse/ClickHouse/pull/60469) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade compatibilidad experimental con loongarch64 como nueva plataforma para ClickHouse. [#63733](https://github.com/ClickHouse/ClickHouse/pull/63733) ([qiangxuhui](https://github.com/qiangxuhui)).
* El Dockerfile ha sido revisado por la librería oficial de Docker en [https://github.com/docker-library/official-images/pull/15846](https://github.com/docker-library/official-images/pull/15846). [#63400](https://github.com/ClickHouse/ClickHouse/pull/63400) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se recopilará información sobre cada símbolo de cada unidad de traducción en la base de datos de la CI para cada compilación. Esto cierra [#63494](https://github.com/ClickHouse/ClickHouse/issues/63494). [#63495](https://github.com/ClickHouse/ClickHouse/pull/63495) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se actualiza la biblioteca Apache Datasketches. Esto resuelve [#63858](https://github.com/ClickHouse/ClickHouse/issues/63858). [#63923](https://github.com/ClickHouse/ClickHouse/pull/63923) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se habilita la compatibilidad con GRPC para Linux aarch64 al compilar de forma cruzada el binario. [#64072](https://github.com/ClickHouse/ClickHouse/pull/64072) ([alesapin](https://github.com/alesapin)).
* Se corrige el desenrollado de pila en SIGSEGV en aarch64 (debido al pequeño tamaño de la pila para la señal) [#64058](https://github.com/ClickHouse/ClickHouse/pull/64058) ([Azat Khuzhin](https://github.com/azat)).

<div id="bug-fix">
  #### Corrección de errores
</div>

* Se deshabilitó de forma predeterminada la configuración `enable_vertical_final`. Esta funcionalidad no debe usarse porque tiene un error: [#64543](https://github.com/ClickHouse/ClickHouse/issues/64543). [#64544](https://github.com/ClickHouse/ClickHouse/pull/64544) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrección al hacer una copia de seguridad cuando se usan varios segmentos [#57684](https://github.com/ClickHouse/ClickHouse/pull/57684) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió la transferencia de proyecciones/índices/clave primaria desde la lista de columnas de la consulta CREATE a la tabla interna de la MV [#59183](https://github.com/ClickHouse/ClickHouse/pull/59183) ([Azat Khuzhin](https://github.com/azat)).
* Corregir el merge incorrecto de boundRatio [#60532](https://github.com/ClickHouse/ClickHouse/pull/60532) ([Tao Wang](https://github.com/wangtZJU)).
* Se corrigió un fallo al llamar a algunas funciones en columnas const con baja cardinalidad [#61966](https://github.com/ClickHouse/ClickHouse/pull/61966) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrigieron las consultas con FINAL que devolvían resultados incorrectos cuando la tabla no utiliza granularidad adaptativa [#62432](https://github.com/ClickHouse/ClickHouse/pull/62432) ([Duc Canh Le](https://github.com/canhld94)).
* Mejora de la detección de compatibilidad con cgroups v2 para los controladores de memoria [#62903](https://github.com/ClickHouse/ClickHouse/pull/62903) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige el uso subsiguiente de tablas externas en el cliente [#62964](https://github.com/ClickHouse/ClickHouse/pull/62964) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un fallo con `untuple` y una lambda sin resolver [#63131](https://github.com/ClickHouse/ClickHouse/pull/63131) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige que el servidor escuche conexiones prematuramente [#63181](https://github.com/ClickHouse/ClickHouse/pull/63181) ([alesapin](https://github.com/alesapin)).
* Se corrigen las partes que se solapan al reiniciar después de un comando DROP PART [#63202](https://github.com/ClickHouse/ClickHouse/pull/63202) ([Han Fei](https://github.com/hanfei1991)).
* Cargar correctamente los valores predeterminados de SQL security al iniciar [#63209](https://github.com/ClickHouse/ClickHouse/pull/63209) ([pufit](https://github.com/pufit)).
* Corrección del push down del filtro de JOIN [#63234](https://github.com/ClickHouse/ClickHouse/pull/63234) ([Maksim Kita](https://github.com/kitaisreal)).
* Se ha corregido el bucle infinito en AzureObjectStorage::listObjects [#63257](https://github.com/ClickHouse/ClickHouse/pull/63257) ([Julia Kartseva](https://github.com/jkartseva)).
* CROSS join ignora el ajuste join\_algorithm [#63273](https://github.com/ClickHouse/ClickHouse/pull/63273) ([vdimir](https://github.com/vdimir)).
* Se corrige la finalización de WriteBufferToFileSegment y StatusFile [#63346](https://github.com/ClickHouse/ClickHouse/pull/63346) ([vdimir](https://github.com/vdimir)).
* Se corrige un error lógico que se producía durante una consulta SELECT después de ALTER en casos poco frecuentes [#63353](https://github.com/ClickHouse/ClickHouse/pull/63353) ([alesapin](https://github.com/alesapin)).
* Se corrige la cabecera `X-ClickHouse-Timezone` con `session_timezone` [#63377](https://github.com/ClickHouse/ClickHouse/pull/63377) ([Andrey Zvonov](https://github.com/zvonand)).
* Se corrigió un assert de depuración al usar la agrupación WITH ROLLUP y tipos LowCardinality  [#63398](https://github.com/ClickHouse/ClickHouse/pull/63398) ([Raúl Marín](https://github.com/Algunenano)).
* Pequeñas correcciones en group\_by\_use\_nulls [#63405](https://github.com/ClickHouse/ClickHouse/pull/63405) ([vdimir](https://github.com/vdimir)).
* Corrige la copia de seguridad/restauración de una parte de proyección en caso de que la proyección se haya eliminado de los metadatos de la tabla, pero la parte aún la conserve [#63426](https://github.com/ClickHouse/ClickHouse/pull/63426) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corregido el origen del diccionario MySQL [#63481](https://github.com/ClickHouse/ClickHouse/pull/63481) ([vdimir](https://github.com/vdimir)).
* Insertar QueryFinish en AsyncInsertFlush cuando no hay datos [#63483](https://github.com/ClickHouse/ClickHouse/pull/63483) ([Raúl Marín](https://github.com/Algunenano)).
* Corrección de `used_dictionaries` vacío en `system.query_log` [#63487](https://github.com/ClickHouse/ClickHouse/pull/63487) ([Eduard Karacharov](https://github.com/korowa)).
* Mejorar la seguridad de `MergeTreePrefetchedReadPool` [#63513](https://github.com/ClickHouse/ClickHouse/pull/63513) ([Antonio Andelic](https://github.com/antonio2368)).
* Corregido el fallo al salir con Sentry habilitado (debido a que OpenSSL se destruía antes que Sentry) [#63548](https://github.com/ClickHouse/ClickHouse/pull/63548) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la compatibilidad de Array y Map con hash por clave [#63628](https://github.com/ClickHouse/ClickHouse/pull/63628) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se corrige el pushdown de filtros para Parquet y posiblemente StorageMerge [#63642](https://github.com/ClickHouse/ClickHouse/pull/63642) ([Michael Kolupaev](https://github.com/al13n321)).
* Evitar la conversión a Replicated si la ruta de ZooKeeper ya existe [#63670](https://github.com/ClickHouse/ClickHouse/pull/63670) ([Kirill](https://github.com/kirillgarbar)).
* Analizador: las vistas leen solo las columnas necesarias [#63688](https://github.com/ClickHouse/ClickHouse/pull/63688) ([Maksim Kita](https://github.com/kitaisreal)).
* Analizador: prohibir la redefinición de WINDOW [#63694](https://github.com/ClickHouse/ClickHouse/pull/63694) ([Dmitry Novik](https://github.com/novikd)).
* flatten\_nested no funcionaba con la base de datos experimental Replicated. [#63695](https://github.com/ClickHouse/ClickHouse/pull/63695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corregido [#63653](https://github.com/ClickHouse/ClickHouse/issues/63653) [#63722](https://github.com/ClickHouse/ClickHouse/pull/63722) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Permitir el CAST de Array(Nothing) a Map(Nothing, Nothing) [#63753](https://github.com/ClickHouse/ClickHouse/pull/63753) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige ILLEGAL\_COLUMN en el join partial\_merge [#63755](https://github.com/ClickHouse/ClickHouse/pull/63755) ([vdimir](https://github.com/vdimir)).
* Corrección: eliminar el `DISTINCT` redundante con funciones de ventana [#63776](https://github.com/ClickHouse/ClickHouse/pull/63776) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrige un posible fallo con SYSTEM UNLOAD PRIMARY KEY [#63778](https://github.com/ClickHouse/ClickHouse/pull/63778) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió una consulta con un alias cíclico que se duplicaba. [#63791](https://github.com/ClickHouse/ClickHouse/pull/63791) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Hacer que `TokenIterator` sea de evaluación diferida, como debe ser [#63801](https://github.com/ClickHouse/ClickHouse/pull/63801) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade la opción de configuración `endpoint_subpath` para URI de S3 [#63806](https://github.com/ClickHouse/ClickHouse/pull/63806) ([Julia Kartseva](https://github.com/jkartseva)).
* Se ha corregido un interbloqueo en `ParallelReadBuffer` [#63814](https://github.com/ClickHouse/ClickHouse/pull/63814) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrección de columnas equivalentes para el pushdown de filtros en JOIN [#63819](https://github.com/ClickHouse/ClickHouse/pull/63819) ([Maksim Kita](https://github.com/kitaisreal)).
* Eliminar los datos de todos los discos después de DROP con una base de datos Lazy. [#63848](https://github.com/ClickHouse/ClickHouse/pull/63848) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige resultados incorrectos al leer desde MV con réplicas paralelas y el nuevo analizador [#63861](https://github.com/ClickHouse/ClickHouse/pull/63861) ([Nikita Taranov](https://github.com/nickitat)).
* Correcciones en los comandos `find_super_nodes` y `find_big_family` de keeper-client [#63862](https://github.com/ClickHouse/ClickHouse/pull/63862) ([Alexander Gololobov](https://github.com/davenger)).
* Actualizar el nombre de la ejecución de lambda [#63864](https://github.com/ClickHouse/ClickHouse/pull/63864) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un SIGSEGV causado por el perfilador de CPU/Real [#63865](https://github.com/ClickHouse/ClickHouse/pull/63865) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la consulta `EXPLAIN CURRENT TRANSACTION` [#63926](https://github.com/ClickHouse/ClickHouse/pull/63926) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el analizador: son tortugas hasta el infinito... [#63930](https://github.com/ClickHouse/ClickHouse/pull/63930) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Permitir determinados comandos ALTER TABLE para el disco `plain_rewritable` [#63933](https://github.com/ClickHouse/ClickHouse/pull/63933) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrección de CTE recursivas distribuidas [#63939](https://github.com/ClickHouse/ClickHouse/pull/63939) ([Maksim Kita](https://github.com/kitaisreal)).
* Analizador: Se corrige la resolución de COLUMNS [#63962](https://github.com/ClickHouse/ClickHouse/pull/63962) ([Dmitry Novik](https://github.com/novikd)).
* LIMIT BY y skip\_unused\_shards con el analizador [#63983](https://github.com/ClickHouse/ClickHouse/pull/63983) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Una corrección de algo de código basura (Kusto experimental) [#63992](https://github.com/ClickHouse/ClickHouse/pull/63992) ([Yong Wang](https://github.com/kashwy)).
* Deserializar entradas binarias no confiables de forma más segura [#64024](https://github.com/ClickHouse/ClickHouse/pull/64024) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige el análisis de consultas con la configuración `final` = 1 en tablas distribuidas sobre tablas que no pertenecen a la familia MergeTree. [#64037](https://github.com/ClickHouse/ClickHouse/pull/64037) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se agregan los ajustes que faltan a recoverLostReplica [#64040](https://github.com/ClickHouse/ClickHouse/pull/64040) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigen las comprobaciones de acceso de SQL security en el analizador [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)).
* Corregir el analizador: para DAG, solo debe usarse la expresión interpolate [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige la escritura en multipartes de copias de seguridad de Azure en bloques de 1 MiB (tamaño del búfer de lectura) en lugar de `max_upload_part_size` (en el caso de copia no nativa) [#64117](https://github.com/ClickHouse/ClickHouse/pull/64117) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Aplicar correctamente el fallback durante la copia de seguridad [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)).
* Evitar LOGICAL\_ERROR al usar CREATE TABLE como vista materializada [#64174](https://github.com/ClickHouse/ClickHouse/pull/64174) ([Raúl Marín](https://github.com/Algunenano)).
* Caché de consultas: tratar como diferentes las consultas idénticas realizadas en distintas bases de datos [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze)).
* Se ignora `text_log` para Keeper [#64218](https://github.com/ClickHouse/ClickHouse/pull/64218) ([Antonio Andelic](https://github.com/antonio2368)).
* Soluciona error lógico: conversión incorrecta en una tabla Buffer con prewhere. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

### <a id="244" /> Lanzamiento de ClickHouse 24.4, 2024-04-30. [Presentación](https://presentations.clickhouse.com/2024-release-24.4/), [Vídeo](https://www.youtube.com/watch?v=dtUqgcfOGmE)

<Frame>
  <iframe src="https://www.youtube.com/embed/dtUqgcfOGmE" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="upgrade-notes">
  #### Notas de actualización
</div>

* `clickhouse-odbc-bridge` y `clickhouse-library-bridge` ahora son paquetes independientes. Esto resuelve [#61677](https://github.com/ClickHouse/ClickHouse/issues/61677). [#62114](https://github.com/ClickHouse/ClickHouse/pull/62114) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ya no se permite establecer max\_parallel\_replicas (para la lectura paralela experimental desde réplicas) en `0`, ya que no tiene sentido. Resuelve [#60140](https://github.com/ClickHouse/ClickHouse/issues/60140). [#61201](https://github.com/ClickHouse/ClickHouse/pull/61201) ([Kruglov Pavel](https://github.com/Avogar)).
* Se elimina la compatibilidad con la consulta `INSERT WATCH` (parte de la funcionalidad obsoleta `LIVE VIEW`). [#62382](https://github.com/ClickHouse/ClickHouse/pull/62382) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se eliminó la configuración `optimize_monotonous_functions_in_order_by`. [#63004](https://github.com/ClickHouse/ClickHouse/pull/63004) ([Raúl Marín](https://github.com/Algunenano)).
* Se elimina la etiqueta experimental del motor de base de datos `Replicated`. Ahora está en fase Beta. [#62937](https://github.com/ClickHouse/ClickHouse/pull/62937) ([Justin de Guzman](https://github.com/justindeguzman)).

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

* Compatibilidad con CTE recursivas. [#62074](https://github.com/ClickHouse/ClickHouse/pull/62074) ([Maksim Kita](https://github.com/kitaisreal)).
* Compatibilidad con la cláusula `QUALIFY`. Cierra [#47819](https://github.com/ClickHouse/ClickHouse/issues/47819). [#62619](https://github.com/ClickHouse/ClickHouse/pull/62619) ([Maksim Kita](https://github.com/kitaisreal)).
* Ahora se pueden otorgar permisos sobre los motores de tabla, sin afectar al comportamiento de los usuarios existentes. [#60117](https://github.com/ClickHouse/ClickHouse/pull/60117) ([jsc0218](https://github.com/jsc0218)).
* Se añadió un disco S3 reescribible que admite operaciones `INSERT` y no requiere metadatos almacenados localmente. [#61116](https://github.com/ClickHouse/ClickHouse/pull/61116) ([Julia Kartseva](https://github.com/jkartseva)). Su principal caso de uso son las tablas del sistema.
* El resaltado de sintaxis al escribir en el cliente funcionará a nivel sintáctico (antes funcionaba a nivel del analizador léxico). [#62123](https://github.com/ClickHouse/ClickHouse/pull/62123) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Admite eliminar varias tablas al mismo tiempo, como en `DROP TABLE a, b, c`;. [#58705](https://github.com/ClickHouse/ClickHouse/pull/58705) ([zhongyuankai](https://github.com/zhongyuankai)).
* Ahora se admite modificar la configuración de la tabla memory mediante `ALTER MODIFY SETTING`. Ejemplo: `ALTER TABLE memory MODIFY SETTING min_rows_to_keep = 100, max_rows_to_keep = 1000;`. [#62039](https://github.com/ClickHouse/ClickHouse/pull/62039) ([zhongyuankai](https://github.com/zhongyuankai)).
* Se añadió el parámetro de consulta `role` a la interfaz HTTP. Funciona de forma similar a `SET ROLE x`, aplicando el rol antes de ejecutar la sentencia. Esto permite superar la limitación de la interfaz HTTP, ya que no se permiten múltiples sentencias y no es posible enviar a la vez `SET ROLE x` y la propia sentencia. También es posible establecer varios roles de esta forma, por ejemplo, `?role=x&role=y`, lo que equivale a `SET ROLE x, y`. [#62669](https://github.com/ClickHouse/ClickHouse/pull/62669) ([Serge Klochkov](https://github.com/slvrtrn)).
* Se añade `SYSTEM UNLOAD PRIMARY KEY` para liberar memoria utilizada por la clave primaria de una tabla. [#62738](https://github.com/ClickHouse/ClickHouse/pull/62738) ([Pablo Marcos](https://github.com/pamarcos)).
* Se añadieron las columnas `value1`, `value2`, ..., `value10` a `system.text_log`. Estas columnas contienen los valores usados para dar formato al mensaje. [#59619](https://github.com/ClickHouse/ClickHouse/pull/59619) ([Alexey Katsman](https://github.com/alexkats)).
* Se añadió la columna virtual persistente `_block_offset`, que almacena el número original de la fila dentro del bloque asignado durante la inserción. La persistencia de la columna `_block_offset` puede habilitarse mediante la configuración de MergeTree `enable_block_offset_column`. Se añadió la columna virtual `_part_data_version`, que contiene el número mínimo de bloque o la versión de mutación de la parte. La columna virtual persistente `_block_number` ya no se considera experimental. [#60676](https://github.com/ClickHouse/ClickHouse/pull/60676) ([Anton Popov](https://github.com/CurtizJ)).
* Se añade la configuración `input_format_json_throw_on_bad_escape_sequence`; al deshabilitarla, se permite guardar secuencias de escape no válidas en formatos de entrada JSON. [#61889](https://github.com/ClickHouse/ClickHouse/pull/61889) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Mejoras en el `push down` de filtros de JOIN mediante conjuntos equivalentes. [#61216](https://github.com/ClickHouse/ClickHouse/pull/61216) ([Maksim Kita](https://github.com/kitaisreal)).
* Optimización que convierte OUTER JOIN en INNER JOIN si el filtro posterior al JOIN siempre filtra los valores predeterminados. La optimización se puede controlar con la configuración `query_plan_convert_outer_join_to_inner_join`, habilitada de forma predeterminada. [#62907](https://github.com/ClickHouse/ClickHouse/pull/62907) ([Maksim Kita](https://github.com/kitaisreal)).
* Mejora para AWS S3. El cliente debe enviar la cabecera 'Keep-Alive: timeout=X' al servidor. Si un cliente recibe una respuesta del servidor con esa cabecera, debe usar el valor proporcionado por el servidor. Además, es mejor que el cliente no use una conexión que esté a punto de expirar, para evitar una condición de carrera al cerrar la conexión. [#62249](https://github.com/ClickHouse/ClickHouse/pull/62249) ([Sema Checherinda](https://github.com/CheSema)).
* Reducir la sobrecarga de las mutaciones en las consultas SELECT (v2). [#60856](https://github.com/ClickHouse/ClickHouse/pull/60856) ([Azat Khuzhin](https://github.com/azat)).
* Las funciones invocadas con mayor frecuencia en PODArray ahora se fuerzan a insertarse en línea. [#61144](https://github.com/ClickHouse/ClickHouse/pull/61144) ([李扬](https://github.com/taiyang-li)).
* Acelera el procesamiento de JSON al omitir el resto del objeto cuando ya se han leído todas las columnas requeridas. [#62210](https://github.com/ClickHouse/ClickHouse/pull/62210) ([lgbo](https://github.com/lgbo-ustc)).
* Mejora los insert select triviales desde archivos en las funciones de tabla file/s3/hdfs/url/.... Añade una configuración max\_parsing\_threads independiente para controlar la cantidad de hilos utilizados en el análisis en paralelo. [#62404](https://github.com/ClickHouse/ClickHouse/pull/62404) ([Kruglov Pavel](https://github.com/Avogar)).
* Las funciones `to_utc_timestamp` y `from_utc_timestamp` son ahora unas 2 veces más rápidas. [#62583](https://github.com/ClickHouse/ClickHouse/pull/62583) ([KevinyhZou](https://github.com/KevinyhZou)).
* Las funciones `parseDateTimeOrNull`, `parseDateTimeOrZero`, `parseDateTimeInJodaSyntaxOrNull` y `parseDateTimeInJodaSyntaxOrZero` ahora son significativamente más rápidas (10x - 1000x) cuando la entrada contiene principalmente valores que no se pueden analizar. [#62634](https://github.com/ClickHouse/ClickHouse/pull/62634) ([LiuNeng](https://github.com/liuneng1994)).
* Las consultas SELECT en `system.query_cache` ahora son notablemente más rápidas cuando la caché de consultas contiene muchas entradas (p. ej., más de 100.000). [#62671](https://github.com/ClickHouse/ClickHouse/pull/62671) ([Robert Schulze](https://github.com/rschu1ze)).
* Menor contención en la caché del sistema de archivos (parte 3): ejecutar la eliminación en el sistema de archivos sin bloqueo durante el intento de reserva de espacio. [#61163](https://github.com/ClickHouse/ClickHouse/pull/61163) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se acelera el redimensionamiento dinámico de la caché del sistema de archivos. [#61723](https://github.com/ClickHouse/ClickHouse/pull/61723) ([Kseniia Sumarokova](https://github.com/kssenii)).
* El origen del Diccionario con `INVALIDATE_QUERY` no se recarga dos veces al iniciar. [#62050](https://github.com/ClickHouse/ClickHouse/pull/62050) ([vdimir](https://github.com/vdimir)).
* Se corrige un problema por el que, cuando se añade un `= 1` o `= 0` redundante después de una expresión booleana que involucra la clave primaria, no se usa el índice primario. Por ejemplo, tanto `SELECT * FROM <table> WHERE <primary-key> IN (<value>) = 1` como `SELECT * FROM <table> WHERE <primary-key> NOT IN (<value>) = 0` realizan un escaneo completo de la tabla, aunque se puede usar el índice primario. [#62142](https://github.com/ClickHouse/ClickHouse/pull/62142) ([josh-hildred](https://github.com/josh-hildred)).
* Devuelve un flujo de fragmentos de `system.remote_data_paths` en lugar de acumular todo el resultado en un único fragmento grande. Esto permite usar menos memoria, mostrar el progreso intermedio y cancelar la consulta. [#62613](https://github.com/ClickHouse/ClickHouse/pull/62613) ([Alexander Gololobov](https://github.com/davenger)).

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

* Se admite un búfer de escritura en paralelo para Azure Blob Storage, gestionado mediante la configuración `azure_allow_parallel_part_upload`. [#62534](https://github.com/ClickHouse/ClickHouse/pull/62534) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* La caché de páginas en espacio de usuario ahora funciona con almacenamiento web estático (`disk(type = web)`). Use la configuración de cliente `use_page_cache_for_disks_without_file_cache=1` para habilitarla. [#61911](https://github.com/ClickHouse/ClickHouse/pull/61911) ([Michael Kolupaev](https://github.com/al13n321)).
* No se tratan como sospechosas las variantes Bool y numéricas en el tipo `Variant`. [#61999](https://github.com/ClickHouse/ClickHouse/pull/61999) ([Kruglov Pavel](https://github.com/Avogar)).
* Se implementa una mejor conversión de String a `Variant` mediante parsing. [#62005](https://github.com/ClickHouse/ClickHouse/pull/62005) ([Kruglov Pavel](https://github.com/Avogar)).
* Se admite `Variant` en las funciones JSONExtract. [#62014](https://github.com/ClickHouse/ClickHouse/pull/62014) ([Kruglov Pavel](https://github.com/Avogar)).
* El tipo `Variant` se marca como comparable para que pueda usarse en la clave primaria. [#62693](https://github.com/ClickHouse/ClickHouse/pull/62693) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Para mayor comodidad, `SELECT * FROM numbers() `funcionará de la misma forma que `SELECT * FROM system.numbers`, sin límite. [#61969](https://github.com/ClickHouse/ClickHouse/pull/61969) ([YenchangChan](https://github.com/YenchangChan)).
* Introducir etiquetas separadas de consumidor/productor para la configuración de Kafka. Esto evita advertencias de librdkafka (una biblioteca de C bastante mala, con muchos errores) sobre que se especificaron propiedades de consumidor para instancias de productor y viceversa (p. ej., `Configuration property session.timeout.ms is a consumer property and will be ignored by this producer instance`). Cierra: [#58983](https://github.com/ClickHouse/ClickHouse/issues/58983). [#58956](https://github.com/ClickHouse/ClickHouse/pull/58956) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Las funciones `date_diff` y `age` ahora calculan su resultado con precisión de nanosegundos en lugar de microsegundos. Ahora también admiten `nanosecond` (o `nanoseconds` o `ns`) como posible valor para el parámetro `unit`. [#61409](https://github.com/ClickHouse/ClickHouse/pull/61409) ([Austin Kothig](https://github.com/kothiga)).
* Se añadieron las unidades de nanosegundos, microsegundos y milisegundos para `date_trunc`. [#62335](https://github.com/ClickHouse/ClickHouse/pull/62335) ([Misz606](https://github.com/Misz606)).
* Recargar la cadena de certificados al recargar el certificado. [#61671](https://github.com/ClickHouse/ClickHouse/pull/61671) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Se intenta evitar un error [#60432](https://github.com/ClickHouse/ClickHouse/issues/60432) impidiendo adjuntar una tabla si hay una réplica activa para esa ruta de réplica. [#61876](https://github.com/ClickHouse/ClickHouse/pull/61876) ([Arthur Passos](https://github.com/arthurpassos)).
* Se implementó compatibilidad con `input` para `clickhouse-local`. [#61923](https://github.com/ClickHouse/ClickHouse/pull/61923) ([Azat Khuzhin](https://github.com/azat)).
* El motor de tabla `Join` con strictness `ANY` es consistente después de la recarga. Cuando se insertan varias filas con la misma clave, la primera tendrá mayor prioridad (antes, se elegía aleatoriamente durante la carga de la tabla). cierra [#51027](https://github.com/ClickHouse/ClickHouse/issues/51027). [#61972](https://github.com/ClickHouse/ClickHouse/pull/61972) ([vdimir](https://github.com/vdimir)).
* Inferencia automática de tipos de columna Nullable a partir del esquema de Apache Arrow. [#61984](https://github.com/ClickHouse/ClickHouse/pull/61984) ([Maksim Kita](https://github.com/kitaisreal)).
* Se permite cancelar la fusión paralela de estados de agregación durante la agregación. Ejemplo: `uniqExact`. [#61992](https://github.com/ClickHouse/ClickHouse/pull/61992) ([Maksim Kita](https://github.com/kitaisreal)).
* Usa `system.keywords` para completar las sugerencias y también para usarlas internamente en todas partes. [#62000](https://github.com/ClickHouse/ClickHouse/pull/62000) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* `OPTIMIZE FINAL` para `ReplicatedMergeTree` ahora esperará a que finalicen las fusiones actualmente activas y luego volverá a intentar programar una fusión final. Esto lo alineará más con el comportamiento habitual de `MergeTree`. [#62067](https://github.com/ClickHouse/ClickHouse/pull/62067) ([Nikita Taranov](https://github.com/nickitat)).
* Al leer datos de un archivo de texto de Hive, se utilizaba la primera línea del archivo para ajustar el número de campos de entrada, y a veces la cantidad de campos de esa primera línea no coincide con la definida en la tabla de Hive; por ejemplo, la tabla de Hive está definida con 3 columnas, como `test_tbl(a Int32, b Int32, c Int32)`, pero la primera línea del archivo de texto solo tiene 2 campos. En esta situación, los campos de entrada se ajustarán a 2, y si la siguiente línea del archivo de texto tiene 3 campos, el tercer campo no podrá leerse y en su lugar se establecerá el valor predeterminado 0, lo cual no es correcto. [#62086](https://github.com/ClickHouse/ClickHouse/pull/62086) ([KevinyhZou](https://github.com/KevinyhZou)).
* `CREATE AS` copia el comentario de la tabla. [#62117](https://github.com/ClickHouse/ClickHouse/pull/62117) ([Pablo Marcos](https://github.com/pamarcos)).
* Añadir el progreso de la consulta a la tabla zookeeper. [#62152](https://github.com/ClickHouse/ClickHouse/pull/62152) ([JackyWoo](https://github.com/JackyWoo)).
* Se añade la posibilidad de activar el collector de trazas (Real y CPU) en todo el servidor. [#62189](https://github.com/ClickHouse/ClickHouse/pull/62189) ([alesapin](https://github.com/alesapin)).
* Se añadió la configuración `lightweight_deletes_sync` (valor predeterminado: 2 - espera sincrónicamente a todas las réplicas). Es similar a la configuración `mutations_sync`, pero solo afecta al comportamiento de las eliminaciones ligeras. [#62195](https://github.com/ClickHouse/ClickHouse/pull/62195) ([Anton Popov](https://github.com/CurtizJ)).
* Distinguir los valores booleanos de los enteros al analizar valores de ajustes personalizados: `SET custom_a = true; SET custom_b = 1;`. [#62206](https://github.com/ClickHouse/ClickHouse/pull/62206) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permite el acceso a S3 a través de endpoints de interfaz de AWS Private Link. Cierra [#60021](https://github.com/ClickHouse/ClickHouse/issues/60021), [#31074](https://github.com/ClickHouse/ClickHouse/issues/31074) y [#53761](https://github.com/ClickHouse/ClickHouse/issues/53761). [#62208](https://github.com/ClickHouse/ClickHouse/pull/62208) ([Arthur Passos](https://github.com/arthurpassos)).
* No se crea un directorio para UDF en clickhouse-client si no existe. Esto cierra [#59597](https://github.com/ClickHouse/ClickHouse/issues/59597). [#62366](https://github.com/ClickHouse/ClickHouse/pull/62366) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La caché de consultas ya no guarda los resultados de consultas sobre tablas del sistema (`system.*`, `information_schema.*`, `INFORMATION_SCHEMA.*`). [#62376](https://github.com/ClickHouse/ClickHouse/pull/62376) ([Robert Schulze](https://github.com/rschu1ze)).
* La consulta `MOVE PARTITION TO TABLE` puede retrasarse o lanzar la excepción `TOO_MANY_PARTS` para evitar superar los límites de cantidad de partes. Se aplican la misma configuración y los mismos límites que para la consulta `INSERT` (consulte la configuración de `max_parts_in_total`, `parts_to_delay_insert`, `parts_to_throw_insert`, `inactive_parts_to_throw_insert`, `inactive_parts_to_delay_insert`, `max_avg_part_size_for_too_many_parts`, `min_delay_to_insert_ms` y `max_delay_to_insert`). [#62420](https://github.com/ClickHouse/ClickHouse/pull/62420) ([Sergei Trifonov](https://github.com/serxa)).
* Se cambió el directorio de instalación predeterminado en macOS de `/usr/bin` a `/usr/local/bin`. Esto es necesario porque la Protección de Integridad del Sistema de Apple, introducida con macOS El Capitan (2015), impide escribir en `/usr/bin`, incluso con `sudo`. [#62489](https://github.com/ClickHouse/ClickHouse/pull/62489) ([haohang](https://github.com/yokofly)).
* Hacer que transform devuelva siempre la primera coincidencia. [#62518](https://github.com/ClickHouse/ClickHouse/pull/62518) ([Raúl Marín](https://github.com/Algunenano)).
* Se añadió la columna `hostname` que faltaba en la tabla del sistema `blob_storage_log`. [#62456](https://github.com/ClickHouse/ClickHouse/pull/62456) ([Jayme Bird](https://github.com/jaymebrd)).
* Para mantener la consistencia con otras tablas del sistema, `system.backup_log` ahora tiene una columna `event_time`. [#62541](https://github.com/ClickHouse/ClickHouse/pull/62541) ([Jayme Bird](https://github.com/jaymebrd)).
* La tabla `system.backup_log` ahora tiene la clave de ordenación "predeterminada", que es `event_date, event_time`, la misma que la de otros motores de tabla `_log`. [#62667](https://github.com/ClickHouse/ClickHouse/pull/62667) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Evitar la evaluación de las expresiones DEFAULT de la tabla al ejecutar `RESTORE`. [#62601](https://github.com/ClickHouse/ClickHouse/pull/62601) ([Vitaly Baranov](https://github.com/vitlibar)).
* El almacenamiento en S3 y las copias de seguridad también necesitan la misma configuración predeterminada de keep alive que el disco S3. [#62648](https://github.com/ClickHouse/ClickHouse/pull/62648) ([Sema Checherinda](https://github.com/CheSema)).
* Añadir el identificador de cliente de librdkafka (esa infame biblioteca en C, que tiene muchos errores) a los mensajes de log para poder diferenciar los mensajes de log de distintos consumidores de una misma tabla. [#62813](https://github.com/ClickHouse/ClickHouse/pull/62813) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se permiten las macros especiales `{uuid}` y `{database}` en la ruta de ZooKeeper de una base de datos Replicated. [#62818](https://github.com/ClickHouse/ClickHouse/pull/62818) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permitir una clave de cuota con un método de autenticación diferente en las solicitudes HTTP. [#62842](https://github.com/ClickHouse/ClickHouse/pull/62842) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se redujo la verbosidad del argumento de línea de comandos `--help` en `clickhouse client` y `clickhouse local`. La salida anterior ahora se genera con `--help --verbose`. [#62973](https://github.com/ClickHouse/ClickHouse/pull/62973) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se eliminó `log_bin_use_v1_row_events` en MySQL 8.3, y ajustamos el motor `MaterializedMySQL`, todavía experimental, para adaptarlo a este cambio [#60479](https://github.com/ClickHouse/ClickHouse/issues/60479). [#63101](https://github.com/ClickHouse/ClickHouse/pull/63101) ([Eugene Klimov](https://github.com/Slach)). Autor: Nikolay Yankin.

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

* Incorporar las dependencias de Rust al repositorio, para que el código en Rust (que usamos para funcionalidades menores por el hype y las risas) pueda compilarse de forma razonable, igual que en C++. [#62297](https://github.com/ClickHouse/ClickHouse/pull/62297) ([Raúl Marín](https://github.com/Algunenano)).
* ClickHouse ahora usa OpenSSL 3.2 en lugar de BoringSSL. [#59870](https://github.com/ClickHouse/ClickHouse/pull/59870) ([Robert Schulze](https://github.com/rschu1ze)). Tenga en cuenta que OpenSSL, en general, tiene una cultura de ingeniería peor (por ejemplo, un número no nulo de informes del sanitizador que tuvimos que parchear, un sistema de build complejo con archivos generados, etc.), pero ofrece mejor compatibilidad.
* Ignorar las consultas DROP en la prueba de estrés con una probabilidad de 1/2; usar TRUNCATE en lugar de ignorar DROP en la comprobación de actualización para las tablas Memory/JOIN. [#61476](https://github.com/ClickHouse/ClickHouse/pull/61476) ([Kruglov Pavel](https://github.com/Avogar)).
* Eliminar los volúmenes en /etc/clickhouse-keeper y /var/log/clickhouse-keeper de la imagen de Docker de Keeper. [#61683](https://github.com/ClickHouse/ClickHouse/pull/61683) ([Tristan](https://github.com/Tristan971)).
* Agrega pruebas para todos los problemas que ya no son relevantes con el analizador habilitado de forma predeterminada. Closes: [#55794](https://github.com/ClickHouse/ClickHouse/issues/55794) Closes: [#49472](https://github.com/ClickHouse/ClickHouse/issues/49472) Closes: [#44414](https://github.com/ClickHouse/ClickHouse/issues/44414) Closes: [#13843](https://github.com/ClickHouse/ClickHouse/issues/13843) Closes: [#55803](https://github.com/ClickHouse/ClickHouse/issues/55803) Closes: [#48308](https://github.com/ClickHouse/ClickHouse/issues/48308) Closes: [#45535](https://github.com/ClickHouse/ClickHouse/issues/45535) Closes: [#44365](https://github.com/ClickHouse/ClickHouse/issues/44365) Closes: [#44153](https://github.com/ClickHouse/ClickHouse/issues/44153) Closes: [#42399](https://github.com/ClickHouse/ClickHouse/issues/42399) Closes: [#27115](https://github.com/ClickHouse/ClickHouse/issues/27115) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#15395](https://github.com/ClickHouse/ClickHouse/issues/15395) Closes: [#15411](https://github.com/ClickHouse/ClickHouse/issues/15411) Closes: [#14978](https://github.com/ClickHouse/ClickHouse/issues/14978) Closes: [#17319](https://github.com/ClickHouse/ClickHouse/issues/17319) Closes: [#11813](https://github.com/ClickHouse/ClickHouse/issues/11813) Closes: [#13210](https://github.com/ClickHouse/ClickHouse/issues/13210) Closes: [#23053](https://github.com/ClickHouse/ClickHouse/issues/23053) Closes: [#37729](https://github.com/ClickHouse/ClickHouse/issues/37729) Closes: [#32639](https://github.com/ClickHouse/ClickHouse/issues/32639) Closes: [#9954](https://github.com/ClickHouse/ClickHouse/issues/9954) Closes: [#41964](https://github.com/ClickHouse/ClickHouse/issues/41964) Closes: [#54317](https://github.com/ClickHouse/ClickHouse/issues/54317) Closes: [#7520](https://github.com/ClickHouse/ClickHouse/issues/7520) Closes: [#36973](https://github.com/ClickHouse/ClickHouse/issues/36973) Closes: [#40955](https://github.com/ClickHouse/ClickHouse/issues/40955) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#23104](https://github.com/ClickHouse/ClickHouse/issues/23104) Closes: [#21584](https://github.com/ClickHouse/ClickHouse/issues/21584) Closes: [#23344](https://github.com/ClickHouse/ClickHouse/issues/23344) Closes: [#22627](https://github.com/ClickHouse/ClickHouse/issues/22627) Closes: [#10276](https://github.com/ClickHouse/ClickHouse/issues/10276) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#4567](https://github.com/ClickHouse/ClickHouse/issues/4567) Closes: [#17710](https://github.com/ClickHouse/ClickHouse/issues/17710) Closes: [#11068](https://github.com/ClickHouse/ClickHouse/issues/11068) Closes: [#24395](https://github.com/ClickHouse/ClickHouse/issues/24395) Closes: [#23416](https://github.com/ClickHouse/ClickHouse/issues/23416) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#25655](https://github.com/ClickHouse/ClickHouse/issues/25655) Closes: [#11757](https://github.com/ClickHouse/ClickHouse/issues/11757) Closes: [#6571](https://github.com/ClickHouse/ClickHouse/issues/6571) Closes: [#4432](https://github.com/ClickHouse/ClickHouse/issues/4432) Closes: [#8259](https://github.com/ClickHouse/ClickHouse/issues/8259) Closes: [#9233](https://github.com/ClickHouse/ClickHouse/issues/9233) Closes: [#14699](https://github.com/ClickHouse/ClickHouse/issues/14699) Closes: [#27068](https://github.com/ClickHouse/ClickHouse/issues/27068) Closes: [#28687](https://github.com/ClickHouse/ClickHouse/issues/28687) Closes: [#28777](https://github.com/ClickHouse/ClickHouse/issues/28777) Closes: [#29734](https://github.com/ClickHouse/ClickHouse/issues/29734) Closes: [#61238](https://github.com/ClickHouse/ClickHouse/issues/61238) Closes: [#33825](https://github.com/ClickHouse/ClickHouse/issues/33825) Closes: [#35608](https://github.com/ClickHouse/ClickHouse/issues/35608) Closes: [#29838](https://github.com/ClickHouse/ClickHouse/issues/29838) Closes: [#35652](https://github.com/ClickHouse/ClickHouse/issues/35652) Closes: [#36189](https://github.com/ClickHouse/ClickHouse/issues/36189) Closes: [#39634](https://github.com/ClickHouse/ClickHouse/issues/39634) Closes: [#47432](https://github.com/ClickHouse/ClickHouse/issues/47432) Closes: [#54910](https://github.com/ClickHouse/ClickHouse/issues/54910) Closes: [#57321](https://github.com/ClickHouse/ClickHouse/issues/57321) Closes: [#59154](https://github.com/ClickHouse/ClickHouse/issues/59154) Closes: [#61014](https://github.com/ClickHouse/ClickHouse/issues/61014) Closes: [#61950](https://github.com/ClickHouse/ClickHouse/issues/61950) Closes: [#55647](https://github.com/ClickHouse/ClickHouse/issues/55647) Closes: [#61947](https://github.com/ClickHouse/ClickHouse/issues/61947). [#62185](https://github.com/ClickHouse/ClickHouse/pull/62185) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Añade más pruebas de incidencias que ya no son relevantes o que el analizador ya ha corregido. Cierra: [#58985](https://github.com/ClickHouse/ClickHouse/issues/58985) Cierra: [#59549](https://github.com/ClickHouse/ClickHouse/issues/59549) Cierra: [#36963](https://github.com/ClickHouse/ClickHouse/issues/36963) Cierra: [#39453](https://github.com/ClickHouse/ClickHouse/issues/39453) Cierra: [#56521](https://github.com/ClickHouse/ClickHouse/issues/56521) Cierra: [#47552](https://github.com/ClickHouse/ClickHouse/issues/47552) Cierra: [#56503](https://github.com/ClickHouse/ClickHouse/issues/56503) Cierra: [#59101](https://github.com/ClickHouse/ClickHouse/issues/59101) Cierra: [#50271](https://github.com/ClickHouse/ClickHouse/issues/50271) Cierra: [#54954](https://github.com/ClickHouse/ClickHouse/issues/54954) Cierra: [#56466](https://github.com/ClickHouse/ClickHouse/issues/56466) Cierra: [#11000](https://github.com/ClickHouse/ClickHouse/issues/11000) Cierra: [#10894](https://github.com/ClickHouse/ClickHouse/issues/10894) Cierra: [https://github.com/ClickHouse/ClickHouse/issues/448](https://github.com/ClickHouse/ClickHouse/issues/448) Cierra: [#8030](https://github.com/ClickHouse/ClickHouse/issues/8030) Cierra: [#32139](https://github.com/ClickHouse/ClickHouse/issues/32139) Cierra: [#47288](https://github.com/ClickHouse/ClickHouse/issues/47288) Cierra: [#50705](https://github.com/ClickHouse/ClickHouse/issues/50705) Cierra: [#54511](https://github.com/ClickHouse/ClickHouse/issues/54511) Cierra: [#55466](https://github.com/ClickHouse/ClickHouse/issues/55466) Cierra: [#58500](https://github.com/ClickHouse/ClickHouse/issues/58500) Cierra: [#39923](https://github.com/ClickHouse/ClickHouse/issues/39923) Cierra: [#39855](https://github.com/ClickHouse/ClickHouse/issues/39855) Cierra: [#4596](https://github.com/ClickHouse/ClickHouse/issues/4596) Cierra: [#47422](https://github.com/ClickHouse/ClickHouse/issues/47422) Cierra: [#33000](https://github.com/ClickHouse/ClickHouse/issues/33000) Cierra: [#14739](https://github.com/ClickHouse/ClickHouse/issues/14739) Cierra: [#44039](https://github.com/ClickHouse/ClickHouse/issues/44039) Cierra: [#8547](https://github.com/ClickHouse/ClickHouse/issues/8547) Cierra: [#22923](https://github.com/ClickHouse/ClickHouse/issues/22923) Cierra: [#23865](https://github.com/ClickHouse/ClickHouse/issues/23865) Cierra: [#29748](https://github.com/ClickHouse/ClickHouse/issues/29748) Cierra: [#4222](https://github.com/ClickHouse/ClickHouse/issues/4222). [#62457](https://github.com/ClickHouse/ClickHouse/pull/62457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigieron errores de compilación cuando OpenSSL se enlaza dinámicamente (nota: por lo general, esto no es compatible y solo es necesario para las plataformas s390x de IBM). [#62888](https://github.com/ClickHouse/ClickHouse/pull/62888) ([Harry Lee](https://github.com/HarryLeeIBM)).

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

* Se corrigió un error lógico al deshacer una transacción de inserción con quorum. [#61953](https://github.com/ClickHouse/ClickHouse/pull/61953) ([Han Fei](https://github.com/hanfei1991)).
* Se corrige un error del analizador al usar COUNT(\*) con la cláusula FILTER [#61357](https://github.com/ClickHouse/ClickHouse/pull/61357) ([Duc Canh Le](https://github.com/canhld94)).
* Corregir un error lógico en `group_by_use_nulls` + conjuntos de agrupación + analizador + materializar/constante [#61567](https://github.com/ClickHouse/ClickHouse/pull/61567) ([Kruglov Pavel](https://github.com/Avogar)).
* Cancelar las fusiones antes de eliminar las partes movidas [#61610](https://github.com/ClickHouse/ClickHouse/pull/61610) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corregida una finalización abrupta en Apache Arrow [#61720](https://github.com/ClickHouse/ClickHouse/pull/61720) ([Kruglov Pavel](https://github.com/Avogar)).
* Busque la marca `convert_to_replicated` en la ruta correcta correspondiente al disco específico [#61769](https://github.com/ClickHouse/ClickHouse/pull/61769) ([Kirill](https://github.com/kirillgarbar)).
* Se corrigió una posible condición de carrera en las conexiones de distributed\_foreground\_insert/distributed\_background\_insert\_batch [#61867](https://github.com/ClickHouse/ClickHouse/pull/61867) ([Azat Khuzhin](https://github.com/azat)).
* Clasificar el error CANNOT\_PARSE\_ESCAPE\_SEQUENCE como error de análisis para poder omitirlo en los formatos de entrada por filas [#61883](https://github.com/ClickHouse/ClickHouse/pull/61883) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió la escritura del mensaje de excepción en el formato de salida HTTP cuando se usa http\_wait\_end\_of\_query [#61951](https://github.com/ClickHouse/ClickHouse/pull/61951) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrección apropiada de LowCardinality junto con las funciones JSONExtact [#61957](https://github.com/ClickHouse/ClickHouse/pull/61957) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Fallo en Merge engine si la política de filas no tiene una expresión [#61971](https://github.com/ClickHouse/ClickHouse/pull/61971) ([Ilya Golshtein](https://github.com/ilejn)).
* Se corrige una excepción no capturada en el destructor de WriteBufferAzureBlobStorage [#61988](https://github.com/ClickHouse/ClickHouse/pull/61988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrigió CREATE TABLE sin definición de columnas en ReplicatedMergeTree [#62040](https://github.com/ClickHouse/ClickHouse/pull/62040) ([Azat Khuzhin](https://github.com/azat)).
* Corrección de optimize\_skip\_unused\_shards\_rewrite\_in para una clave de fragmentación compuesta [#62047](https://github.com/ClickHouse/ClickHouse/pull/62047) ([Azat Khuzhin](https://github.com/azat)).
* ReadWriteBufferFromHTTP establece correctamente el encabezado host al ser redirigido [#62068](https://github.com/ClickHouse/ClickHouse/pull/62068) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige un problema por el que la tabla externa no podía interpretar el tipo de dato Bool [#62115](https://github.com/ClickHouse/ClickHouse/pull/62115) ([Duc Canh Le](https://github.com/canhld94)).
* Analizador: Se corrige la resolución de los parámetros de consulta [#62186](https://github.com/ClickHouse/ClickHouse/pull/62186) ([Dmitry Novik](https://github.com/novikd)).
* Se corrige la restauración de partes en modo readonly [#62207](https://github.com/ClickHouse/ClickHouse/pull/62207) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió un fallo en la definición de un índice que contiene una UDF SQL [#62225](https://github.com/ClickHouse/ClickHouse/pull/62225) ([vdimir](https://github.com/vdimir)).
* Corrección de la semilla aleatoria NULL en generateRandom con el analizador. [#62248](https://github.com/ClickHouse/ClickHouse/pull/62248) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Gestionar correctamente las columnas const en Distinct Transfom [#62250](https://github.com/ClickHouse/ClickHouse/pull/62250) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige Parts Splitter para consultas con el modificador FINAL [#62268](https://github.com/ClickHouse/ClickHouse/pull/62268) ([Nikita Taranov](https://github.com/nickitat)).
* Analizador: corrección de la resolución de alias a vistas parametrizadas [#62274](https://github.com/ClickHouse/ClickHouse/pull/62274) ([Dmitry Novik](https://github.com/novikd)).
* Analizador: Corregida la resolución de nombres en ámbitos superiores [#62281](https://github.com/ClickHouse/ClickHouse/pull/62281) ([Dmitry Novik](https://github.com/novikd)).
* Se corrige argMax con una columna numérica Nullable no nativa [#62285](https://github.com/ClickHouse/ClickHouse/pull/62285) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigen BACKUP y RESTORE de una vista materializada en la base de datos Ordinary [#62295](https://github.com/ClickHouse/ClickHouse/pull/62295) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige una condición de carrera en los escalares de Context [#62305](https://github.com/ClickHouse/ClickHouse/pull/62305) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió la clave primaria en la vista materializada [#62319](https://github.com/ClickHouse/ClickHouse/pull/62319) ([Murat Khairulin](https://github.com/mxwell)).
* No crear un pipeline de inserción multihilo para tablas que no lo admiten [#62333](https://github.com/ClickHouse/ClickHouse/pull/62333) ([vdimir](https://github.com/vdimir)).
* Se corrige el analizador para consultas distribuidas con argumentos posicionales [#62362](https://github.com/ClickHouse/ClickHouse/pull/62362) ([flynn](https://github.com/ucasfl)).
* Se corrigió el pushdown de filtros procedentes de additional\_table\_filters en el motor Merge del analizador [#62398](https://github.com/ClickHouse/ClickHouse/pull/62398) ([Kruglov Pavel](https://github.com/Avogar)).
* Corregidas las consultas GLOBAL IN en tablas con analyzer. [#62409](https://github.com/ClickHouse/ClickHouse/pull/62409) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Respetar la configuración truncate\_on\_insert/create\_new\_file\_on\_insert en los motores s3/hdfs/azure durante la escritura por particiones [#62425](https://github.com/ClickHouse/ClickHouse/pull/62425) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige la ruta de restauración de copias de seguridad para AzureBlobStorage [#62447](https://github.com/ClickHouse/ClickHouse/pull/62447) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrigió SimpleSquashingChunksTransform [#62451](https://github.com/ClickHouse/ClickHouse/pull/62451) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrige la captura en lambdas anidadas. [#62462](https://github.com/ClickHouse/ClickHouse/pull/62462) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se evita un fallo al leer protobuf con tipos recursivos [#62506](https://github.com/ClickHouse/ClickHouse/pull/62506) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un error al mover una partición a sí misma [#62524](https://github.com/ClickHouse/ClickHouse/pull/62524) ([helifu](https://github.com/helifu)).
* Se corrige la subconsulta escalar en LIMIT [#62567](https://github.com/ClickHouse/ClickHouse/pull/62567) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un fallo de segmentación en el motor Hive, experimental y sin soporte, que de todos modos tampoco nos gusta [#62578](https://github.com/ClickHouse/ClickHouse/pull/62578) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige una fuga de memoria en groupArraySorted [#62597](https://github.com/ClickHouse/ClickHouse/pull/62597) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige un fallo en largestTriangleThreeBuckets [#62646](https://github.com/ClickHouse/ClickHouse/pull/62646) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige tumble\[Start,End] y hop\[Start,End] para resoluciones más altas [#62705](https://github.com/ClickHouse/ClickHouse/pull/62705) ([Jordi Villar](https://github.com/jrdi)).
* Corregir el estado del combinador argMin/argMax [#62708](https://github.com/ClickHouse/ClickHouse/pull/62708) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige el fallo de los datos temporales en la caché provocado por la optimización de la contención de bloqueos de la caché [#62715](https://github.com/ClickHouse/ClickHouse/pull/62715) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un fallo en la función `mergeTreeIndex` [#62762](https://github.com/ClickHouse/ClickHouse/pull/62762) ([Anton Popov](https://github.com/CurtizJ)).
* corrección: actualización: columnas materializadas anidadas: correcciones en la comprobación de tamaño [#62773](https://github.com/ClickHouse/ClickHouse/pull/62773) ([Eliot Hautefeuille](https://github.com/hileef)).
* Se corrige un problema por el que no se respetaba el modificador FINAL en las CTE con analizador [#62811](https://github.com/ClickHouse/ClickHouse/pull/62811) ([Duc Canh Le](https://github.com/canhld94)).
* Se corrige un cierre inesperado en la función `formatRow` con el formato `JSON` y la interfaz HTTP [#62840](https://github.com/ClickHouse/ClickHouse/pull/62840) ([Anton Popov](https://github.com/CurtizJ)).
* Azure: corregir la generación de la URL final a partir del objeto endpoint [#62850](https://github.com/ClickHouse/ClickHouse/pull/62850) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Se corrige el códec GCD [#62853](https://github.com/ClickHouse/ClickHouse/pull/62853) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrige la clave `LowCardinality(Nullable)` en el hiperrectángulo [#62866](https://github.com/ClickHouse/ClickHouse/pull/62866) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió fromUnixtimestamp en la sintaxis de Joda cuando el valor de entrada excede el rango de UInt32 [#62901](https://github.com/ClickHouse/ClickHouse/pull/62901) ([KevinyhZou](https://github.com/KevinyhZou)).
* Deshabilitar optimize\_rewrite\_aggregate\_function\_with\_if en sum(nullable) [#62912](https://github.com/ClickHouse/ClickHouse/pull/62912) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige PREWHERE en StorageBuffer con distintos tipos de columna en la tabla de origen. [#62916](https://github.com/ClickHouse/ClickHouse/pull/62916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el manejo incorrecto de los datos temporales en la caché cuando fallaba la creación del directorio de la clave de la caché [#62925](https://github.com/ClickHouse/ClickHouse/pull/62925) ([Kseniia Sumarokova](https://github.com/kssenii)).
* gRPC: corregir un fallo en la conexión con un par IPv6 [#62978](https://github.com/ClickHouse/ClickHouse/pull/62978) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se corrige un posible CHECKSUM\_DOESNT\_MATCH (y otros) durante la obtención de datos entre réplicas [#62987](https://github.com/ClickHouse/ClickHouse/pull/62987) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la terminación por una excepción no capturada en datos temporales en caché [#62998](https://github.com/ClickHouse/ClickHouse/pull/62998) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la conversión implícita en optimize\_rewrite\_aggregate\_function\_with\_if [#62999](https://github.com/ClickHouse/ClickHouse/pull/62999) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige una excepción no controlada en \~RestorerFromBackup [#63040](https://github.com/ClickHouse/ClickHouse/pull/63040) ([Vitaly Baranov](https://github.com/vitlibar)).
* No eliminar las constantes del servidor de la clave de GROUP BY en la consulta secundaria. [#63047](https://github.com/ClickHouse/ClickHouse/pull/63047) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corregir la evaluación incorrecta de la monotonicidad de la función abs [#63097](https://github.com/ClickHouse/ClickHouse/pull/63097) ([Duc Canh Le](https://github.com/canhld94)).
* Se establece el nombre del servidor para el protocolo de enlace SSL en el motor MongoDB [#63122](https://github.com/ClickHouse/ClickHouse/pull/63122) ([Alexander Gololobov](https://github.com/davenger)).
* Usar la base de datos especificada por el usuario en lugar de "config" para la comprobación de la versión del protocolo wire de MongoDB [#63126](https://github.com/ClickHouse/ClickHouse/pull/63126) ([Alexander Gololobov](https://github.com/davenger)).

### <a id="243" /> Lanzamiento de ClickHouse 24.3 LTS, 2024-03-27. [Presentación](https://presentations.clickhouse.com/2024-release-24.3/), [Vídeo](https://www.youtube.com/watch?v=FGhdXXXTuTg)

<Frame>
  <iframe src="https://www.youtube.com/embed/FGhdXXXTuTg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="upgrade-notes">
  #### Notas de actualización
</div>

* La configuración `allow_experimental_analyzer` está habilitada de forma predeterminada y cambia el análisis de la consulta a una nueva implementación, que ofrece mejor compatibilidad y una mayor cobertura de funcionalidades. La funcionalidad "analyzer" se considera beta en lugar de experimental. Puede volver al comportamiento anterior estableciendo `compatibility` en `24.2` o deshabilitando la configuración `allow_experimental_analyzer`. Vea el [video en YouTube](https://www.youtube.com/watch?v=zhrOYQpgvkk).
* ClickHouse permite datos binarios arbitrarios en el tipo de dato String, que normalmente es UTF-8. Las cadenas String de Parquet/ORC/Arrow solo admiten UTF-8. Por eso puedes elegir qué tipo de dato de Arrow usar para el tipo de dato String de ClickHouse: String o Binary. Esto se controla mediante los ajustes `output_format_parquet_string_as_string`, `output_format_orc_string_as_string`, `output_format_arrow_string_as_string`. Aunque Binary sería más correcto y compatible, usar String de forma predeterminada se ajusta mejor a las expectativas de los usuarios en la mayoría de los casos. Parquet/ORC/Arrow admite muchos métodos de compresión, incluidos lz4 y zstd. ClickHouse admite todos los métodos de compresión. Algunas herramientas menos avanzadas no son compatibles con el método de compresión `lz4`, que es más rápido; por eso establecemos `zstd` de forma predeterminada. Esto se controla mediante los ajustes `output_format_parquet_compression_method`, `output_format_orc_compression_method` y `output_format_arrow_compression_method`. Cambiamos el valor predeterminado a `zstd` para Parquet y ORC, pero no para Arrow (se hace hincapié en los usos de bajo nivel). [#61817](https://github.com/ClickHouse/ClickHouse/pull/61817) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* En la nueva versión de ClickHouse, las funciones `geoDistance`, `greatCircleDistance` y `greatCircleAngle` usarán el tipo de datos de coma flotante de doble precisión de 64 bits para los cálculos internos y como tipo de retorno si todos los argumentos son Float64. Esto resuelve [#58476](https://github.com/ClickHouse/ClickHouse/issues/58476). En versiones anteriores, la función siempre usaba Float32. Puede volver al comportamiento anterior estableciendo `geo_distance_returns_float64_on_float64_arguments` en `false` o `compatibility` en `24.2` o una versión anterior. [#61848](https://github.com/ClickHouse/ClickHouse/pull/61848) ([Alexey Milovidov](https://github.com/alexey-milovidov)). En coautoría con [Geet Patel](https://github.com/geetptl).
* Las partes de datos en memoria obsoletas quedaron en desuso a partir de la versión 23.5 y dejaron de ser compatibles a partir de la versión 23.10. Ahora se elimina el código restante. Continuación de [#55186](https://github.com/ClickHouse/ClickHouse/issues/55186) y [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409). Es poco probable que haya usado partes de datos en memoria, porque solo estaban disponibles antes de la versión 23.5 y únicamente si las habilitaba manualmente especificando los SETTINGS correspondientes para una tabla MergeTree. Para comprobar si tiene partes de datos en memoria, ejecute la siguiente consulta: `SELECT part_type, count() FROM system.parts GROUP BY part_type ORDER BY part_type`. Para desactivar el uso de partes de datos en memoria, ejecute `ALTER TABLE ... MODIFY SETTING min_bytes_for_compact_part = DEFAULT, min_rows_for_compact_part = DEFAULT`. Antes de actualizar desde versiones anteriores de ClickHouse, compruebe primero que no tenga partes de datos en memoria. Si hay partes de datos en memoria, desactívelas primero; después, espere a que ya no haya ninguna y continúe con la actualización. [#61127](https://github.com/ClickHouse/ClickHouse/pull/61127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se cambió el nombre de la columna de `duration_ms` a `duration_microseconds` en la tabla `system.zookeeper` para reflejar que la duración está en microsegundos. [#60774](https://github.com/ClickHouse/ClickHouse/pull/60774) ([Duc Canh Le](https://github.com/canhld94)).
* Rechazar las consultas `INSERT` entrantes cuando las configuraciones a nivel de consulta `async_insert` y `deduplicate_blocks_in_dependent_materialized_views` estén habilitadas simultáneamente. Este comportamiento está controlado por la configuración `throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert` y está habilitado de forma predeterminada. Esto da continuidad a [https://github.com/ClickHouse/ClickHouse/pull/59699](https://github.com/ClickHouse/ClickHouse/pull/59699) y es necesario para desbloquear [https://github.com/ClickHouse/ClickHouse/pull/59915](https://github.com/ClickHouse/ClickHouse/pull/59915). [#60888](https://github.com/ClickHouse/ClickHouse/pull/60888) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* La utilidad `clickhouse-copier` se ha trasladado a un repository independiente en GitHub: [https://github.com/ClickHouse/copier](https://github.com/ClickHouse/copier). Ya no se incluye en el paquete, pero sigue estando disponible como descarga independiente. Esto cierra: [#60734](https://github.com/ClickHouse/ClickHouse/issues/60734) Esto cierra: [#60540](https://github.com/ClickHouse/ClickHouse/issues/60540) Esto cierra: [#60250](https://github.com/ClickHouse/ClickHouse/issues/60250) Esto cierra: [#52917](https://github.com/ClickHouse/ClickHouse/issues/52917) Esto cierra: [#51140](https://github.com/ClickHouse/ClickHouse/issues/51140) Esto cierra: [#47517](https://github.com/ClickHouse/ClickHouse/issues/47517) Esto cierra: [#47189](https://github.com/ClickHouse/ClickHouse/issues/47189) Esto cierra: [#46598](https://github.com/ClickHouse/ClickHouse/issues/46598) Esto cierra: [#40257](https://github.com/ClickHouse/ClickHouse/issues/40257) Esto cierra: [#36504](https://github.com/ClickHouse/ClickHouse/issues/36504) Esto cierra: [#35485](https://github.com/ClickHouse/ClickHouse/issues/35485) Esto cierra: [#33702](https://github.com/ClickHouse/ClickHouse/issues/33702) Esto cierra: [#26702](https://github.com/ClickHouse/ClickHouse/issues/26702).
* Para aumentar la compatibilidad con MySQL, el alias de compatibilidad `locate` ahora acepta de manera predeterminada los argumentos `(needle, haystack[, start_pos])`. El comportamiento anterior `(haystack, needle, [, start_pos])` puede restaurarse estableciendo `function_locate_has_mysql_compatible_argument_order = 0`. [#61092](https://github.com/ClickHouse/ClickHouse/pull/61092) ([Robert Schulze](https://github.com/rschu1ze)).
* Se prohíbe `SimpleAggregateFunction` en `ORDER BY` de las tablas `MergeTree` (igual que `AggregateFunction`, ya que no son comparables) de forma predeterminada (use `allow_suspicious_primary_key` para permitirlas). [#61399](https://github.com/ClickHouse/ClickHouse/pull/61399) ([Azat Khuzhin](https://github.com/azat)).
* El motor de base de datos `Ordinary` está obsoleto. Recibirás una advertencia en clickhouse-client si tu servidor lo utiliza. Esto cierra [#52229](https://github.com/ClickHouse/ClickHouse/issues/52229). [#56942](https://github.com/ClickHouse/ClickHouse/pull/56942) ([shabroo](https://github.com/shabroo)).

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

* Se añadió compatibilidad para leer y escribir copias de seguridad en formato `tar` (además de `zip`). [#59535](https://github.com/ClickHouse/ClickHouse/pull/59535) ([josh-hildred](https://github.com/josh-hildred)).
* Se implementó compatibilidad con buckets de S3 Express. [#59965](https://github.com/ClickHouse/ClickHouse/pull/59965) ([Nikita Taranov](https://github.com/nickitat)).
* Se permite adjuntar partes desde un disco diferente (mediante copia en lugar de enlace físico). [#60112](https://github.com/ClickHouse/ClickHouse/pull/60112) ([Unalian](https://github.com/Unalian)).
* Tablas `Memory` con tamaño limitado: controladas por su configuración, `min_bytes_to_keep, max_bytes_to_keep, min_rows_to_keep` y `max_rows_to_keep`. [#60612](https://github.com/ClickHouse/ClickHouse/pull/60612) ([Jake Bamrah](https://github.com/JakeBamrah)).
* Límites separados para el número de consultas en espera y en ejecución. Se añadió la nueva configuración del servidor `max_waiting_queries`, que limita el número de consultas en espera debido a `async_load_databases`. Los límites existentes sobre el número de consultas en ejecución ya no cuentan las consultas en espera. [#61053](https://github.com/ClickHouse/ClickHouse/pull/61053) ([Sergei Trifonov](https://github.com/serxa)).
* Se añadió una tabla `system.keywords` que contiene todas las palabras clave del parser. Se necesita principalmente y se usará para mejorar el fuzzing y el resaltado de sintaxis. [#51808](https://github.com/ClickHouse/ClickHouse/pull/51808) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añadió compatibilidad con `ATTACH PARTITION ALL`. [#61107](https://github.com/ClickHouse/ClickHouse/pull/61107) ([Kirill Nikiforov](https://github.com/allmazz)).
* Se añadió una nueva función, `getClientHTTPHeader`. Esto cierra [#54665](https://github.com/ClickHouse/ClickHouse/issues/54665). En coautoría con @lingtaolf. [#61820](https://github.com/ClickHouse/ClickHouse/pull/61820) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió `generate_series` como función de tabla (alias de compatibilidad con PostgreSQL para la función existente `numbers`). Esta función genera una tabla con una progresión aritmética de números naturales. [#59390](https://github.com/ClickHouse/ClickHouse/pull/59390) ([divanik](https://github.com/divanik)).
* Un modo compatible para `topK`/`topkWeighed`, que devuelve el recuento de valores y su error. [#54508](https://github.com/ClickHouse/ClickHouse/pull/54508) ([UnamedRus](https://github.com/UnamedRus)).
* Se añadió la función `toMillisecond`, que devuelve el componente de milisegundos para valores de tipo `DateTime` o `DateTime64`. [#60281](https://github.com/ClickHouse/ClickHouse/pull/60281) ([Shaun Struwig](https://github.com/Blargian)).
* Se permite configurar controladores de redirección HTTP para clickhouse-server. Por ejemplo, puede hacer que `/` redirija a la UI Play. [#60390](https://github.com/ClickHouse/ClickHouse/pull/60390) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Se optimizó la función `dotProduct` para evitar copias de memoria innecesarias y costosas. [#60928](https://github.com/ClickHouse/ClickHouse/pull/60928) ([Robert Schulze](https://github.com/rschu1ze)).
* Impresión 30 veces más rápida para enteros de 256 bits. [#61100](https://github.com/ClickHouse/ClickHouse/pull/61100) ([Raúl Marín](https://github.com/Algunenano)).
* Si la clave primaria de la tabla contiene mayormente columnas inútiles, no las mantenga en memoria. Esto se controla mediante un nuevo ajuste `primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns`, con el valor predeterminado `0.9`, lo que significa lo siguiente: para una clave primaria compuesta, si una columna cambia de valor al menos en 0.9 de los casos, no se cargarán las columnas siguientes. [#60255](https://github.com/ClickHouse/ClickHouse/pull/60255) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora del rendimiento de los métodos de agregación serializados cuando intervienen varias columnas `Nullable`. [#55809](https://github.com/ClickHouse/ClickHouse/pull/55809) ([Amos Bird](https://github.com/amosbird)).
* La salida de JSON ahora se genera de forma diferida para mejorar el rendimiento de ALL JOIN. [#58278](https://github.com/ClickHouse/ClickHouse/pull/58278) ([LiuNeng](https://github.com/liuneng1994)).
* Permitir reutilizar las conexiones HTTP/HTTPS con servicios externos, como AWS S3, en todos los casos de uso. Incluso cuando la respuesta es 3xx o 4xx. [#58845](https://github.com/ClickHouse/ClickHouse/pull/58845) ([Sema Checherinda](https://github.com/CheSema)).
* Mejoras en las funciones de agregación `argMin` / `argMax` / `any` / `anyLast` / `anyHeavy`, así como en las consultas con `ORDER BY {u8/u16/u32/u64/i8/i16/u32/i64) LIMIT 1`. [#58640](https://github.com/ClickHouse/ClickHouse/pull/58640) ([Raúl Marín](https://github.com/Algunenano)).
* Optimización trivial del filtro de columna. En algunos casos, la memoria máxima puede reducirse al 44 % de la original. [#59698](https://github.com/ClickHouse/ClickHouse/pull/59698) ([李扬](https://github.com/taiyang-li)).
* Ejecuta la función `multiIf` de forma columnar cuando el tipo subyacente del resultado es un número. [#60384](https://github.com/ClickHouse/ClickHouse/pull/60384) ([李扬](https://github.com/taiyang-li)).
* Mutexes casi 2 veces más rápidos. [#60823](https://github.com/ClickHouse/ClickHouse/pull/60823) ([Azat Khuzhin](https://github.com/azat)).
* Agotar múltiples conexiones en paralelo cuando una consulta distribuida está finalizando. [#60845](https://github.com/ClickHouse/ClickHouse/pull/60845) ([lizhuoyu5](https://github.com/lzydmxy)).
* Optimiza el movimiento de datos entre columnas de un número Nullable o una cadena Nullable, lo que mejora ciertos microbenchmarks. [#60846](https://github.com/ClickHouse/ClickHouse/pull/60846) ([李扬](https://github.com/taiyang-li)).
* Las operaciones con la caché del sistema de archivos se verán menos afectadas por la contención de bloqueos. [#61066](https://github.com/ClickHouse/ClickHouse/pull/61066) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Optimiza array join y otros JOINs evitando una optimización errónea del compilador. Cierra [#61074](https://github.com/ClickHouse/ClickHouse/issues/61074).  [#61075](https://github.com/ClickHouse/ClickHouse/pull/61075) ([李扬](https://github.com/taiyang-li)).
* Si una consulta con un error de sintaxis contenía el matcher `COLUMNS` con una expresión regular, la expresión regular se compilaba cada vez durante el retroceso del analizador sintáctico, en lugar de compilarse una sola vez. Este era un error fundamental. La regexp compilada se colocaba en el AST. Pero la letra A de AST significa "abstract", lo que implica que no debería contener objetos pesados. Algunas partes del AST pueden crearse y descartarse durante el análisis sintáctico, incluido un gran número de retrocesos. Esto ralentiza el análisis sintáctico y, en consecuencia, permite que un usuario readonly provoque un DoS. Pero el principal problema es que impide avanzar con los fuzzers. [#61543](https://github.com/ClickHouse/ClickHouse/pull/61543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade una nueva fase del analizador para optimizar el operador IN cuando hay un único valor. [#61564](https://github.com/ClickHouse/ClickHouse/pull/61564) ([LiuNeng](https://github.com/liuneng1994)).
* DNSResolver baraja el conjunto de IP resueltas, lo cual es necesario para aprovechar de forma uniforme varios endpoints de AWS S3. [#60965](https://github.com/ClickHouse/ClickHouse/pull/60965) ([Sema Checherinda](https://github.com/CheSema)).

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

* Se admite la lectura en paralelo para Azure Blob Storage. Esto mejora el rendimiento del almacenamiento de objetos experimental de Azure. [#61503](https://github.com/ClickHouse/ClickHouse/pull/61503) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se añade un `WriteBuffer` asíncrono para Azure Blob Storage, similar a S3. Esto mejora el rendimiento del almacenamiento de objetos experimental de Azure. [#59929](https://github.com/ClickHouse/ClickHouse/pull/59929) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se utiliza una identidad administrada para la E/S de backups al usar Azure Blob Storage. Se añade una configuración para evitar que ClickHouse intente crear un contenedor inexistente, lo que requiere permisos a nivel de la cuenta de almacenamiento. [#61785](https://github.com/ClickHouse/ClickHouse/pull/61785) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Se añade la configuración `parallel_replicas_allow_in_with_subquery = 1`, que permite usar subconsultas con IN junto con réplicas paralelas. [#60950](https://github.com/ClickHouse/ClickHouse/pull/60950) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Un cambio en la replicación "zero-copy": todos los bloqueos de zero-copy relacionados con una tabla deben eliminarse al eliminar la tabla. También debe eliminarse el directorio que contiene esos bloqueos. [#57575](https://github.com/ClickHouse/ClickHouse/pull/57575) ([Sema Checherinda](https://github.com/CheSema)).

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

* Usa `MergeTree` como motor de tabla predeterminado. [#60524](https://github.com/ClickHouse/ClickHouse/pull/60524) ([Alexey Milovidov](https://github.com/alexey-milovidov))
* Se habilitó `output_format_pretty_row_numbers` de forma predeterminada. Mejora la usabilidad. [#61791](https://github.com/ClickHouse/ClickHouse/pull/61791) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* En la versión anterior, algunos números en los formatos Pretty no se veían lo bastante bien. [#61794](https://github.com/ClickHouse/ClickHouse/pull/61794) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Un valor largo en los formatos Pretty no se truncará si es el único valor del conjunto de resultados, como en el resultado de la consulta `SHOW CREATE TABLE`. [#61795](https://github.com/ClickHouse/ClickHouse/pull/61795) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Al igual que `clickhouse-local`, `clickhouse-client` aceptará la opción `--output-format` como sinónimo de la opción `--format`. Esto resuelve [#59848](https://github.com/ClickHouse/ClickHouse/issues/59848). [#61797](https://github.com/ClickHouse/ClickHouse/pull/61797) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Si stdout es una terminal y no se especifica el formato de salida, `clickhouse-client` y herramientas similares usarán `PrettyCompact` de forma predeterminada, igual que en el modo interactivo. `clickhouse-client` y `clickhouse-local` manejarán de forma unificada los argumentos de línea de comandos para los formatos de entrada y salida. Esto cierra [#61272](https://github.com/ClickHouse/ClickHouse/issues/61272). [#61800](https://github.com/ClickHouse/ClickHouse/pull/61800) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agrupación de dígitos con guiones bajos en formatos Pretty para mejorar la legibilidad. Esto se controla con una nueva configuración, `output_format_pretty_highlight_digit_groups`. [#61802](https://github.com/ClickHouse/ClickHouse/pull/61802) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la posibilidad de sobrescribir la configuración inicial de INSERT mediante `SYSTEM FLUSH DISTRIBUTED`. [#61832](https://github.com/ClickHouse/ClickHouse/pull/61832) ([Azat Khuzhin](https://github.com/azat)).
* Activar por defecto el perfilado de procesadores (tiempo empleado y bytes de entrada y salida para ordenación, agregación, ...). [#61096](https://github.com/ClickHouse/ClickHouse/pull/61096) ([Azat Khuzhin](https://github.com/azat)).
* Soporte para archivos sin extensión de formato en la base de datos Filesystem. [#60795](https://github.com/ClickHouse/ClickHouse/pull/60795) ([Kruglov Pavel](https://github.com/Avogar)).
* Hacer que todos los nombres de formato no distingan entre mayúsculas y minúsculas, como Tsv, o TSV, o tsv, o incluso rowbinary. [#60420](https://github.com/ClickHouse/ClickHouse/pull/60420) ([豪肥肥](https://github.com/HowePa)). Agradecería que se siguiera escribiendo correctamente, por ejemplo, `JSON` 😇, no `Json` 🤮, pero no nos importa si lo escriben como prefieran.
* Se añadió el modo `none_only_active` a la configuración `distributed_ddl_output_mode`. [#60340](https://github.com/ClickHouse/ClickHouse/pull/60340) ([Alexander Tokmakov](https://github.com/tavplubix)).
* El dashboard avanzado tiene colores ligeramente mejores para los gráficos multilínea. [#60391](https://github.com/ClickHouse/ClickHouse/pull/60391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El dashboard Advanced ahora mantiene los controles siempre visibles al desplazarse. Esto le permite añadir un nuevo gráfico sin tener que volver arriba. [#60692](https://github.com/ClickHouse/ClickHouse/pull/60692) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Al ejecutar la consulta `MODIFY COLUMN` para vistas materializadas, compruebe la estructura de la tabla interna para asegurarse de que todas las columnas existan. [#47427](https://github.com/ClickHouse/ClickHouse/pull/47427) ([sunny](https://github.com/sunny19930321)).
* Los tipos String y enum pueden usarse en el mismo contexto, como arrays, consultas UNION y expresiones condicionales. Esto cierra [#60726](https://github.com/ClickHouse/ClickHouse/issues/60726). [#60727](https://github.com/ClickHouse/ClickHouse/pull/60727) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite declarar Enums en la estructura de datos externos para el procesamiento de consultas (se trata de una tabla temporal inmediata que puedes proporcionar para tu consulta). [#57857](https://github.com/ClickHouse/ClickHouse/pull/57857) ([Duc Canh Le](https://github.com/canhld94)).
* Tener en cuenta las filas eliminadas mediante eliminación ligera al seleccionar las partes que se van a fusionar, para estimar mejor el tamaño en disco de la parte resultante. [#58223](https://github.com/ClickHouse/ClickHouse/pull/58223) ([Zhuo Qiu](https://github.com/jewelzqiu)).
* Se añadieron comentarios en columnas de más tablas del sistema. Continuación de [https://github.com/ClickHouse/ClickHouse/pull/58356](https://github.com/ClickHouse/ClickHouse/pull/58356). [#59016](https://github.com/ClickHouse/ClickHouse/pull/59016) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ahora podemos usar columnas virtuales en PREWHERE. Merece la pena en el caso de columnas virtuales no constantes, como `_part_offset`. [#59033](https://github.com/ClickHouse/ClickHouse/pull/59033) ([Amos Bird](https://github.com/amosbird)). Se ha mejorado la usabilidad general de las columnas virtuales. Ahora se permite usar columnas virtuales en `PREWHERE` (merece la pena en el caso de columnas virtuales no constantes, como `_part_offset`). Ahora hay documentación integrada disponible para las columnas virtuales, como comentario de la columna en la consulta `DESCRIBE` con la configuración `describe_include_virtual_columns` habilitada. [#60205](https://github.com/ClickHouse/ClickHouse/pull/60205) ([Anton Popov](https://github.com/CurtizJ)).
* En lugar de usar una clave constante, ahora el almacenamiento de objetos genera una clave para determinar el permiso de eliminar objetos. [#59495](https://github.com/ClickHouse/ClickHouse/pull/59495) ([Sema Checherinda](https://github.com/CheSema)).
* Permitir "local" como tipo de almacenamiento de objetos en lugar de "local\_blob\_storage". [#60165](https://github.com/ClickHouse/ClickHouse/pull/60165) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Vaciado en paralelo de los bloques de INSERT pendientes del motor Distributed en `DETACH`/apagado del servidor y `SYSTEM FLUSH DISTRIBUTED` (el paralelismo solo funcionará si la tabla tiene una política multidisco (como todo en el motor Distributed en este momento)). [#60225](https://github.com/ClickHouse/ClickHouse/pull/60225) ([Azat Khuzhin](https://github.com/azat)).
* Se añade una configuración para forzar la caché de lectura directa en las fusiones. [#60308](https://github.com/ClickHouse/ClickHouse/pull/60308) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Una mejora del protocolo de compatibilidad con MySQL. El problema [#57598](https://github.com/ClickHouse/ClickHouse/issues/57598) menciona una diferencia de comportamiento en el manejo de transacciones. Un COMMIT/ROLLBACK emitido cuando no hay ninguna transacción activa se reporta como un error, a diferencia del comportamiento de MySQL. [#60338](https://github.com/ClickHouse/ClickHouse/pull/60338) ([PapaToemmsn](https://github.com/PapaToemmsn)).
* La función `substring` ahora tiene el nuevo alias `byteSlice`. [#60494](https://github.com/ClickHouse/ClickHouse/pull/60494) ([Robert Schulze](https://github.com/rschu1ze)).
* Se ha renombrado la configuración del servidor `dns_cache_max_size` a `dns_cache_max_entries` para reducir la ambigüedad. [#60500](https://github.com/ClickHouse/ClickHouse/pull/60500) ([Kirill Nikiforov](https://github.com/allmazz)).
* `SHOW INDEX | INDEXES | INDICES | KEYS` ya no ordena según las columnas de la clave primaria (lo cual no era intuitivo). [#60514](https://github.com/ClickHouse/ClickHouse/pull/60514) ([Robert Schulze](https://github.com/rschu1ze)).
* Mejora de Keeper: abortar el arranque si se detecta una instantánea no válida, para evitar la pérdida de datos. [#60537](https://github.com/ClickHouse/ClickHouse/pull/60537) ([Antonio Andelic](https://github.com/antonio2368)).
* Actualiza tzdata a 2024a. [#60768](https://github.com/ClickHouse/ClickHouse/pull/60768) ([Raúl Marín](https://github.com/Algunenano)).
* Mejora de Keeper: compatibilidad con `leadership_expiry_ms` en la configuración de Keeper. [#60806](https://github.com/ClickHouse/ClickHouse/pull/60806) ([Brokenice0415](https://github.com/Brokenice0415)).
* Inferir siempre los números en notación exponencial en formatos JSON, independientemente de la configuración `input_format_try_infer_exponent_floats`. Añade la configuración `input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects`, que permite usar el tipo String para rutas ambiguas en lugar de generar una excepción durante la inferencia de Tuples con nombre a partir de objetos JSON. [#60808](https://github.com/ClickHouse/ClickHouse/pull/60808) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añade compatibilidad con la sintaxis `START TRANSACTION`, utilizada habitualmente en MySQL, lo que resuelve [https://github.com/ClickHouse/ClickHouse/discussions/60865](https://github.com/ClickHouse/ClickHouse/discussions/60865). [#60886](https://github.com/ClickHouse/ClickHouse/pull/60886) ([Zach Naimon](https://github.com/ArctypeZach)).
* Se agregó una opción para que el algoritmo full-sorting merge join trate null como el valor máximo o mínimo. Así, el comportamiento puede ser compatible con otros sistemas SQL, como Apache Spark. [#60896](https://github.com/ClickHouse/ClickHouse/pull/60896) ([loudongfeng](https://github.com/loudongfeng)).
* Se admite la detección del formato de salida por la extensión del archivo en `clickhouse-client` y `clickhouse-local`. [#61036](https://github.com/ClickHouse/ClickHouse/pull/61036) ([豪肥肥](https://github.com/HowePa)).
* Se actualizó el límite de memoria del runtime cuando cambió el valor de CGroups en Linux. [#61049](https://github.com/ClickHouse/ClickHouse/pull/61049) ([Han Fei](https://github.com/hanfei1991)).
* Se añadió la función `toUInt128OrZero`, que se había omitido por error (este error está relacionado con [https://github.com/ClickHouse/ClickHouse/pull/945](https://github.com/ClickHouse/ClickHouse/pull/945)). Los alias de compatibilidad `FROM_UNIXTIME` y `DATE_FORMAT` (no son nativos de ClickHouse y solo existen por compatibilidad con MySQL) ahora distinguen entre mayúsculas y minúsculas, como es de esperar en alias de compatibilidad con SQL. [#61114](https://github.com/ClickHouse/ClickHouse/pull/61114) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejoras en las comprobaciones de acceso, que permiten revocar privilegios no concedidos cuando el usuario de destino tampoco tiene los grants para revocarlos. Ejemplo: `GRANT SELECT ON *.* TO user1; REVOKE SELECT ON system.* FROM user1;`. [#61115](https://github.com/ClickHouse/ClickHouse/pull/61115) ([pufit](https://github.com/pufit)).
* Se corrige la función `has()` con una columna `Nullable` (corrige [#60214](https://github.com/ClickHouse/ClickHouse/issues/60214)). [#61249](https://github.com/ClickHouse/ClickHouse/pull/61249) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Ahora es posible especificar el atributo `merge="true"` en las sustituciones de configuración para subárboles `<include from_zk="/path" merge="true">`. Si se especifica este atributo, ClickHouse fusionará el subárbol con la configuración existente; de lo contrario, el comportamiento predeterminado es añadir contenido nuevo a la configuración. [#61299](https://github.com/ClickHouse/ClickHouse/pull/61299) ([alesapin](https://github.com/alesapin)).
* Se añaden métricas asíncronas para los mapeos de memoria virtual: `VMMaxMapCount` & `VMNumMaps`. Cierra [#60662](https://github.com/ClickHouse/ClickHouse/issues/60662). [#61354](https://github.com/ClickHouse/ClickHouse/pull/61354) ([Tuan Pham Anh](https://github.com/tuanpavn)).
* Utilice la configuración `temporary_files_codec` en todos los casos en los que se creen datos temporales, por ejemplo, en la ordenación con memoria externa y en el GROUP BY con memoria externa. Antes, solo funcionaba con el algoritmo JOIN `partial_merge`. [#61456](https://github.com/ClickHouse/ClickHouse/pull/61456) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió una nueva opción de configuración `max_parser_backtracks` que permite limitar la complejidad del análisis sintáctico de las consultas. [#61502](https://github.com/ClickHouse/ClickHouse/pull/61502) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Menor contención durante el redimensionamiento dinámico de la caché del sistema de archivos. [#61524](https://github.com/ClickHouse/ClickHouse/pull/61524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* No se permite el modo segmentado de la cola StorageS3, ya que se reescribirá. [#61537](https://github.com/ClickHouse/ClickHouse/pull/61537) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la errata: de `use_leagcy_max_level` a `use_legacy_max_level`. [#61545](https://github.com/ClickHouse/ClickHouse/pull/61545) ([William Schoeffel](https://github.com/wiledusc)).
* Se eliminaron algunas entradas duplicadas en `system.blob_storage_log`. [#61622](https://github.com/ClickHouse/ClickHouse/pull/61622) ([YenchangChan](https://github.com/YenchangChan)).
* Se agregó la función `current_user` como alias de compatibilidad para MySQL. [#61770](https://github.com/ClickHouse/ClickHouse/pull/61770) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corregir los estados inconsistentes de las funciones de agregación de coma flotante en clústeres mixtos x86-64 / ARM [#60610](https://github.com/ClickHouse/ClickHouse/pull/60610) ([Harry Lee](https://github.com/HarryLeeIBM)).

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

* El perfilador de consultas en tiempo real ahora funciona en AArch64. En versiones anteriores, solo funcionaba cuando un programa no pasaba tiempo dentro de una syscall. [#60807](https://github.com/ClickHouse/ClickHouse/pull/60807) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se ha añadido la versión de ClickHouse a las etiquetas de Docker. Cierra [#54224](https://github.com/ClickHouse/ClickHouse/issues/54224). [#60949](https://github.com/ClickHouse/ClickHouse/pull/60949) ([Nikolay Monkov](https://github.com/nikmonkov)).
* Se actualizó `prqlc` a la versión 0.11.3. [#60616](https://github.com/ClickHouse/ClickHouse/pull/60616) ([Maximilian Roos](https://github.com/max-sixty)).
* Se añadió un fuzzer genérico para texto de consultas en `clickhouse-local`. [#61508](https://github.com/ClickHouse/ClickHouse/pull/61508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Se corrige finished\_mutations\_to\_keep=0 en MergeTree (según la documentación, 0 significa conservarlo todo) [#60031](https://github.com/ClickHouse/ClickHouse/pull/60031) ([Azat Khuzhin](https://github.com/azat)).
* Había un problema con la optimización FINAL; así lo describe el autor: "PartsSplitter invalid ranges for the same part". [#60041](https://github.com/ClickHouse/ClickHouse/pull/60041) ([Maksim Kita](https://github.com/kitaisreal)).
* Había un problema con Apache Hive, que es experimental y no tiene soporte. [#60262](https://github.com/ClickHouse/ClickHouse/pull/60262) ([shanfengp](https://github.com/Aed-p)).
* Una mejora para las réplicas paralelas experimentales: forzar un reanálisis si las réplicas paralelas cambiaron [#60362](https://github.com/ClickHouse/ClickHouse/pull/60362) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió el uso del tipo de metadatos simple con la nueva opción de configuración de discos [#60396](https://github.com/ClickHouse/ClickHouse/pull/60396) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Intento de corregir el error lógico 'No se puede capturar la columna porque tiene un tipo incompatible' en mapContainsKeyLike [#60451](https://github.com/ClickHouse/ClickHouse/pull/60451) ([Kruglov Pavel](https://github.com/Avogar)).
* Evitar el cálculo de subconsultas escalares en CREATE TABLE. [#60464](https://github.com/ClickHouse/ClickHouse/pull/60464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un bloqueo mutuo en el análisis paralelo cuando se omiten muchas filas debido a errores [#60516](https://github.com/ClickHouse/ClickHouse/pull/60516) ([Kruglov Pavel](https://github.com/Avogar)).
* Había un problema con la compatibilidad experimental de KQL (Kusto): se corrigió `max_query_size_for_kql_compound_operator`: [#60534](https://github.com/ClickHouse/ClickHouse/pull/60534) ([Yong Wang](https://github.com/kashwy)).
* Corrección en Keeper: se añaden tiempos de espera al esperar los logs de commit [#60544](https://github.com/ClickHouse/ClickHouse/pull/60544) ([Antonio Andelic](https://github.com/antonio2368)).
* No mostrar sugerencias de números para tipos de fecha [#60577](https://github.com/ClickHouse/ClickHouse/pull/60577) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la lectura al usar funciones no deterministas en el filtro de MergeTree [#60586](https://github.com/ClickHouse/ClickHouse/pull/60586) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un error lógico causado por un tipo de valor no válido en la configuración de compatibilidad [#60596](https://github.com/ClickHouse/ClickHouse/pull/60596) ([Kruglov Pavel](https://github.com/Avogar)).
* fix(prql): Manejador robusto de panic [#60615](https://github.com/ClickHouse/ClickHouse/pull/60615) ([Maximilian Roos](https://github.com/max-sixty)).
* Se corrige `intDiv` para argumentos decimales y de fecha [#60672](https://github.com/ClickHouse/ClickHouse/pull/60672) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrección: expandir la CTE en la consulta ALTER MODIFY [#60682](https://github.com/ClickHouse/ClickHouse/pull/60682) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige system.parts para motores de base de datos que no son Atomic/Ordinary (es decir, Memory) [#60689](https://github.com/ClickHouse/ClickHouse/pull/60689) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige "Definición de almacenamiento no válida en el archivo de metadatos" para vistas con parámetros [#60708](https://github.com/ClickHouse/ClickHouse/pull/60708) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un desbordamiento de búfer en CompressionCodecMultiple [#60731](https://github.com/ClickHouse/ClickHouse/pull/60731) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Eliminar incoherencias de SQL/JSON [#60738](https://github.com/ClickHouse/ClickHouse/pull/60738) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Eliminar la aserción errónea en la función de agregación quantileGK [#60740](https://github.com/ClickHouse/ClickHouse/pull/60740) ([李扬](https://github.com/taiyang-li)).
* Se corrige el error de insert-select + insert\_deduplication\_token al establecer streams en 1 [#60745](https://github.com/ClickHouse/ClickHouse/pull/60745) ([Jordi Villar](https://github.com/jrdi)).
* Impedir establecer cabeceras de metadatos personalizadas en operaciones de carga multiparte no admitidas [#60748](https://github.com/ClickHouse/ClickHouse/pull/60748) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Corrección en toStartOfInterval [#60763](https://github.com/ClickHouse/ClickHouse/pull/60763) ([Andrey Zvonov](https://github.com/zvonand)).
* Se corrigió un fallo en arrayEnumerateRanked [#60764](https://github.com/ClickHouse/ClickHouse/pull/60764) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió un fallo al usar input() en INSERT SELECT JOIN [#60765](https://github.com/ClickHouse/ClickHouse/pull/60765) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un fallo al usar un valor distinto de allow\_experimental\_analyzer en subconsultas [#60770](https://github.com/ClickHouse/ClickHouse/pull/60770) ([Dmitry Novik](https://github.com/novikd)).
* Eliminar la recursión al leer desde S3 [#60849](https://github.com/ClickHouse/ClickHouse/pull/60849) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un posible bloqueo al producirse un error en HashedDictionaryParallelLoader [#60926](https://github.com/ClickHouse/ClickHouse/pull/60926) ([vdimir](https://github.com/vdimir)).
* Corregido RESTORE asíncrono con base de datos Replicated (función experimental) [#60934](https://github.com/ClickHouse/ClickHouse/pull/60934) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un interbloqueo en las inserciones asíncronas en tablas `Log` mediante el protocolo nativo [#61055](https://github.com/ClickHouse/ClickHouse/pull/61055) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió la evaluación diferida del argumento por defecto en dictGetOrDefault para RangeHashedDictionary [#61196](https://github.com/ClickHouse/ClickHouse/pull/61196) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige varios errores en groupArraySorted [#61203](https://github.com/ClickHouse/ClickHouse/pull/61203) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió la reconfiguración de Keeper en el binario independiente [#61233](https://github.com/ClickHouse/ClickHouse/pull/61233) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige el uso de session\_token en el motor S3 [#61234](https://github.com/ClickHouse/ClickHouse/pull/61234) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un posible resultado incorrecto de la función de agregación `uniqExact` [#61257](https://github.com/ClickHouse/ClickHouse/pull/61257) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigieron errores en show database [#61269](https://github.com/ClickHouse/ClickHouse/pull/61269) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un error lógico en el almacenamiento de RabbitMQ con columnas MATERIALIZED [#61320](https://github.com/ClickHouse/ClickHouse/pull/61320) ([vdimir](https://github.com/vdimir)).
* Se corrige CREATE OR REPLACE DICTIONARY [#61356](https://github.com/ClickHouse/ClickHouse/pull/61356) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige la consulta ATTACH con ON CLUSTER externo [#61365](https://github.com/ClickHouse/ClickHouse/pull/61365) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió la optimización de claves consecutivas para claves Nullable [#61393](https://github.com/ClickHouse/ClickHouse/pull/61393) ([Anton Popov](https://github.com/CurtizJ)).
* corrige un problema en la división del DAG de actions [#61458](https://github.com/ClickHouse/ClickHouse/pull/61458) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige la finalización de un RESTORE fallido [#61466](https://github.com/ClickHouse/ClickHouse/pull/61466) ([Vitaly Baranov](https://github.com/vitlibar)).
* Deshabilitar correctamente async\_insert\_use\_adaptive\_busy\_timeout mediante la configuración de compatibilidad [#61468](https://github.com/ClickHouse/ClickHouse/pull/61468) ([Raúl Marín](https://github.com/Algunenano)).
* Permitir el encolado en el pool de restauración [#61475](https://github.com/ClickHouse/ClickHouse/pull/61475) ([Nikita Taranov](https://github.com/nickitat)).
* Soluciona una inconsistencia al leer system.parts con UUID. [#61479](https://github.com/ClickHouse/ClickHouse/pull/61479) ([Dan Wu](https://github.com/wudanzy)).
* Se corrige ALTER QUERY MODIFY SQL SECURITY [#61480](https://github.com/ClickHouse/ClickHouse/pull/61480) ([pufit](https://github.com/pufit)).
* Se corrige un bloqueo en window view (funcionalidad experimental) [#61526](https://github.com/ClickHouse/ClickHouse/pull/61526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige `repeat` con enteros no nativos [#61527](https://github.com/ClickHouse/ClickHouse/pull/61527) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió el argumento `-s` del cliente [#61530](https://github.com/ClickHouse/ClickHouse/pull/61530) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se corrige un cierre inesperado en arrayPartialReverseSort [#61539](https://github.com/ClickHouse/ClickHouse/pull/61539) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige la búsqueda de cadenas con posición constante [#61547](https://github.com/ClickHouse/ClickHouse/pull/61547) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un error de addDays al usarlo con DateTime64 [#61561](https://github.com/ClickHouse/ClickHouse/pull/61561) ([Shuai li](https://github.com/loneylee)).
* No se permite el tipo de entrada LowCardinality en JSONExtract [#61617](https://github.com/ClickHouse/ClickHouse/pull/61617) ([Julia Kartseva](https://github.com/jkartseva)).
* Se corrigió `system.part_log` para async insert con deduplicación [#61620](https://github.com/ClickHouse/ClickHouse/pull/61620) ([Antonio Andelic](https://github.com/antonio2368)).
* Se ha corregido una excepción `Non-ready set` en system.parts. [#61666](https://github.com/ClickHouse/ClickHouse/pull/61666) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corregir actual\_part\_name en REPLACE\_RANGE (`Entry actual part isn't empty yet`) [#61675](https://github.com/ClickHouse/ClickHouse/pull/61675) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrige un informe del sanitizador en `multiSearchAllPositionsCaseInsensitiveUTF8` por UTF-8 incorrecto [#61749](https://github.com/ClickHouse/ClickHouse/pull/61749) ([pufit](https://github.com/pufit)).
* Se corrige un problema por el que el frame RANGE no era compatible con las columnas Nullable. [#61766](https://github.com/ClickHouse/ClickHouse/pull/61766) ([YuanLiu](https://github.com/ditgittube)).

### <a id="242" /> Lanzamiento de ClickHouse 24.2, 2024-02-29. [Presentación](https://presentations.clickhouse.com/2024-release-24.2/), [Video](https://www.youtube.com/watch?v=iN2y-TK8f3A)

<Frame>
  <iframe src="https://www.youtube.com/embed/iN2y-TK8f3A" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* Validar tipos sospechosos/experimentales en tipos anidados. Antes no validábamos esos tipos (excepto JSON) en tipos anidados como Array/Tuple/Map. [#59385](https://github.com/ClickHouse/ClickHouse/pull/59385) ([Kruglov Pavel](https://github.com/Avogar)).
* Añadir una comprobación básica del número de hilos y de los tamaños de bloque. [#60138](https://github.com/ClickHouse/ClickHouse/pull/60138) ([Raúl Marín](https://github.com/Algunenano)).
* No inferir de forma predeterminada números de coma flotante en notación exponencial. Añadir la configuración `input_format_try_infer_exponent_floats`, que restablece el comportamiento anterior (desactivada de forma predeterminada). Cierra [#59476](https://github.com/ClickHouse/ClickHouse/issues/59476). [#59500](https://github.com/ClickHouse/ClickHouse/pull/59500) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir que las operaciones ALTER estén entre paréntesis. La inclusión de paréntesis puede controlarse con la configuración `format_alter_operations_with_parentheses`. De forma predeterminada, en las consultas con formato se incluyen los paréntesis, ya que almacenamos las operaciones ALTER formateadas en algunos lugares como metadatos (p. ej.: mutations). La nueva sintaxis aclara algunas consultas en las que las operaciones ALTER terminan en una lista. P. ej.: `ALTER TABLE x MODIFY TTL date GROUP BY a, b, DROP COLUMN c` no puede analizarse correctamente con la sintaxis anterior. En la nueva sintaxis, la consulta `ALTER TABLE x (MODIFY TTL date GROUP BY a, b), (DROP COLUMN c)` queda clara. Las versiones anteriores no pueden leer la nueva sintaxis; por lo tanto, usarla podría causar problemas si se mezclan versiones nuevas y antiguas de ClickHouse en un mismo clúster. [#59532](https://github.com/ClickHouse/ClickHouse/pull/59532) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrección de un problema de seguridad en la vista materializada que permitía a un usuario insertar en una tabla sin los grants necesarios. La corrección valida que el usuario tenga permiso para insertar no solo en una vista materializada, sino también en todas las tablas subyacentes. Esto significa que algunas consultas que antes funcionaban ahora pueden fallar con `Not enough privileges`. Para solucionar este problema, la release introduce una nueva funcionalidad de SQL security para vistas [https://clickhouse.com/docs/sql-reference/statements/create/view#sql\&#95;security](https://clickhouse.com/docs/sql-reference/statements/create/view#sql\&#95;security). [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).

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

* Se añadió una nueva sintaxis que permite especificar el usuario definidor en una vista/vista materializada. Esto permite ejecutar consultas/inserciones desde vistas sin permisos explícitos sobre las tablas subyacentes. Así, una vista encapsulará los permisos. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).
* Intentar detectar automáticamente el formato de archivo durante la inferencia de esquema si se desconoce en los motores `file/s3/hdfs/url/azureBlobStorage`. Cierra [#50576](https://github.com/ClickHouse/ClickHouse/issues/50576). [#59092](https://github.com/ClickHouse/ClickHouse/pull/59092) ([Kruglov Pavel](https://github.com/Avogar)).
* Se implementa el ajuste automático de los tiempos de espera de la inserción asíncrona. Se introducen los siguientes ajustes: async\_insert\_poll\_timeout\_ms, async\_insert\_use\_adaptive\_busy\_timeout, async\_insert\_busy\_timeout\_min\_ms, async\_insert\_busy\_timeout\_max\_ms, async\_insert\_busy\_timeout\_increase\_rate, async\_insert\_busy\_timeout\_decrease\_rate. [#58486](https://github.com/ClickHouse/ClickHouse/pull/58486) ([Julia Kartseva](https://github.com/jkartseva)).
* Permite configurar una cuota para el número máximo de fallos consecutivos de inicio de sesión. [#54737](https://github.com/ClickHouse/ClickHouse/pull/54737) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Una nueva función de agregación `groupArrayIntersect`. Continúa: [#49862](https://github.com/ClickHouse/ClickHouse/issues/49862). [#59598](https://github.com/ClickHouse/ClickHouse/pull/59598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Compatibilidad con copias de seguridad y restauración para `AzureBlobStorage`. Resuelve [#50747](https://github.com/ClickHouse/ClickHouse/issues/50747). [#56988](https://github.com/ClickHouse/ClickHouse/pull/56988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Ahora, el usuario puede especificar la cadena de plantilla directamente en la consulta mediante `format_schema_rows_template` como alternativa a `format_template_row`. Cierra [#31363](https://github.com/ClickHouse/ClickHouse/issues/31363). [#59088](https://github.com/ClickHouse/ClickHouse/pull/59088) ([Shaun Struwig](https://github.com/Blargian)).
* Se implementó la conversión automática de tablas MergeTree de distintos tipos al motor Replicated. Cree un archivo vacío `convert_to_replicated` en el directorio de datos de la tabla (`/clickhouse/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`) y esa tabla se convertirá automáticamente la próxima vez que se inicie el servidor. [#57798](https://github.com/ClickHouse/ClickHouse/pull/57798) ([Kirill](https://github.com/kirillgarbar)).
* Se añadió la consulta `ALTER TABLE table FORGET PARTITION partition`, que elimina los nodos de ZooKeeper relacionados con una partición vacía. [#59507](https://github.com/ClickHouse/ClickHouse/pull/59507) ([Sergei Trifonov](https://github.com/serxa)). Se trata de una funcionalidad para expertos.
* Admite archivo de credenciales JWT para el motor de tabla NATS. [#59543](https://github.com/ClickHouse/ClickHouse/pull/59543) ([Nickolaj Jepsen](https://github.com/nickolaj-jepsen)).
* Se implementó la tabla `system.dns_cache`, que puede ser útil para depurar problemas de DNS. [#59856](https://github.com/ClickHouse/ClickHouse/pull/59856) ([Kirill Nikiforov](https://github.com/allmazz)).
* El códec `LZ4HC` aceptará un nuevo nivel 2, que es más rápido que el nivel mínimo anterior, 3, a costa de una menor compresión. En versiones anteriores, `LZ4HC(2)` y niveles inferiores eran lo mismo que `LZ4HC(3)`. Autor: [Cyan4973](https://github.com/Cyan4973). [#60090](https://github.com/ClickHouse/ClickHouse/pull/60090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se implementó la tabla `system.dns_cache`, que puede ser útil para depurar problemas de DNS. Nueva configuración del servidor: dns\_cache\_max\_size. [#60257](https://github.com/ClickHouse/ClickHouse/pull/60257) ([Kirill Nikiforov](https://github.com/allmazz)).
* Se admite la versión de un solo argumento de la función de tabla `merge`, como `merge(['db_name', ] 'tables_regexp')`. [#60372](https://github.com/ClickHouse/ClickHouse/pull/60372) ([豪肥肥](https://github.com/HowePa)).
* Se admiten argumentos posicionales negativos. Cierra [#57736](https://github.com/ClickHouse/ClickHouse/issues/57736). [#58292](https://github.com/ClickHouse/ClickHouse/pull/58292) ([flynn](https://github.com/ucasfl)).
* Se admite especificar, en la configuración, un conjunto de usuarios permitidos para ajustes específicos de S3 mediante la clave `user`. [#60144](https://github.com/ClickHouse/ClickHouse/pull/60144) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió la table function `mergeTreeIndex`. Representa el contenido de los archivos de índice y de marcas de las tablas `MergeTree`. Puede utilizarse para introspección. Sintaxis: `mergeTreeIndex(database, table, [with_marks = true])`, donde `database.table` es una tabla existente con engine `MergeTree`. [#58140](https://github.com/ClickHouse/ClickHouse/pull/58140) ([Anton Popov](https://github.com/CurtizJ)).

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

* Se añadió la función `seriesOutliersDetectTukey` para detectar valores atípicos en series de datos mediante el algoritmo de cercas de Tukey. [#58632](https://github.com/ClickHouse/ClickHouse/pull/58632) ([Bhavna Jindal](https://github.com/bhavnajindal)). Tenga en cuenta que este comportamiento cambiará en la próxima versión de mantenimiento.
* Se añadió la función `variantType`, que devuelve un Enum con el nombre del tipo Variant para cada fila. [#59398](https://github.com/ClickHouse/ClickHouse/pull/59398) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió compatibilidad con `LEFT JOIN`, `ALL INNER JOIN` y subconsultas simples para réplicas paralelas (solo con analyzer). La nueva configuración `parallel_replicas_prefer_local_join` elige entre la ejecución local de `JOIN` (de forma predeterminada) y `GLOBAL JOIN`. Todas las tablas deben existir en cada réplica de `cluster_for_parallel_replicas`. Las nuevas configuraciones `min_external_table_block_size_rows` y `min_external_table_block_size_bytes` se usan para compactar bloques pequeños que se envían a tablas temporales (solo con analyzer). [#58916](https://github.com/ClickHouse/ClickHouse/pull/58916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se permite la creación concurrente de tablas en la base de datos `Replicated` durante la adición o la recuperación de una nueva réplica. [#59277](https://github.com/ClickHouse/ClickHouse/pull/59277) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se implementó el operador de comparación para valores `Variant` y la inserción correcta de Field en una columna `Variant`. Ya no se permite crear el tipo `Variant` con tipos Variant similares de forma predeterminada (se puede permitir con la configuración `allow_suspicious_variant_types`). Cierra [#59996](https://github.com/ClickHouse/ClickHouse/issues/59996). Cierra [#59850](https://github.com/ClickHouse/ClickHouse/issues/59850). [#60198](https://github.com/ClickHouse/ClickHouse/pull/60198) ([Kruglov Pavel](https://github.com/Avogar)).
* Se deshabilitó el `JOIN` de réplicas paralelas con CTE (sin analyzer) [#59239](https://github.com/ClickHouse/ClickHouse/pull/59239) ([Raúl Marín](https://github.com/Algunenano)).

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

* La clave primaria usará menos memoria. [#60049](https://github.com/ClickHouse/ClickHouse/pull/60049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduce el uso de memoria de la clave primaria y de algunas otras operaciones. [#60050](https://github.com/ClickHouse/ClickHouse/pull/60050) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las claves primarias de las tablas se cargarán en memoria de forma diferida en el primer acceso. Esto se controla mediante la nueva configuración de MergeTree `primary_key_lazy_load`, que está activada de forma predeterminada. Esto ofrece varias ventajas: - no se cargará para las tablas que no se utilicen; - si no hay suficiente memoria, se lanzará una excepción en el primer uso en lugar de al iniciar el servidor. Esto presenta varias desventajas: - la latencia de cargar la clave primaria se asumirá en la primera consulta en lugar de antes de aceptar conexiones; esto, en teoría, puede provocar un problema de estampida. Esto cierra [#11188](https://github.com/ClickHouse/ClickHouse/issues/11188). [#60093](https://github.com/ClickHouse/ClickHouse/pull/60093) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Funciones de distancia vectorizadas utilizadas en la búsqueda vectorial. [#58866](https://github.com/ClickHouse/ClickHouse/pull/58866) ([Robert Schulze](https://github.com/rschu1ze)).
* Función vectorizada `dotProduct`, útil para la búsqueda vectorial. [#60202](https://github.com/ClickHouse/ClickHouse/pull/60202) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añade la capacidad de cortocircuito a la función `dictGetOrDefault`. Cierra [#52098](https://github.com/ClickHouse/ClickHouse/issues/52098). [#57767](https://github.com/ClickHouse/ClickHouse/pull/57767) ([jsc0218](https://github.com/jsc0218)).
* Mejora de Keeper: mantener en caché solo una cantidad determinada de logs en memoria, controlada por `latest_logs_cache_size_threshold` y `commit_logs_cache_size_threshold`. [#59460](https://github.com/ClickHouse/ClickHouse/pull/59460) ([Antonio Andelic](https://github.com/antonio2368)).
* Mejora de Keeper: reducir todavía más el tamaño del nodo de datos. [#59592](https://github.com/ClickHouse/ClickHouse/pull/59592) ([Antonio Andelic](https://github.com/antonio2368)).
* Se siguen optimizando los fallos de predicción de rama de la función `if` cuando el tipo de resultado es `Float*/Decimal*/*Int*`, como continuación de [https://github.com/ClickHouse/ClickHouse/pull/57885](https://github.com/ClickHouse/ClickHouse/pull/57885). [#59148](https://github.com/ClickHouse/ClickHouse/pull/59148) ([李扬](https://github.com/taiyang-li)).
* Se optimiza la función `if` cuando el tipo de entrada es `Map`, con una mejora de velocidad de hasta \~10x. [#59413](https://github.com/ClickHouse/ClickHouse/pull/59413) ([李扬](https://github.com/taiyang-li)).
* Mejora el rendimiento del tipo `Int8` al implementar aliasing estricto (ya lo tenemos para `UInt8` y todos los demás tipos enteros). [#59485](https://github.com/ClickHouse/ClickHouse/pull/59485) ([Raúl Marín](https://github.com/Algunenano)).
* Optimiza el rendimiento de `sum`/`avg` condicionales para los tipos `bigint` y decimales grandes al reducir los fallos de predicción de rama. [#59504](https://github.com/ClickHouse/ClickHouse/pull/59504) ([李扬](https://github.com/taiyang-li)).
* Mejora el rendimiento de las consultas SELECT con mutaciones activas. [#59531](https://github.com/ClickHouse/ClickHouse/pull/59531) ([Azat Khuzhin](https://github.com/azat)).
* Se optimizó la función `isNotNull` con AVX2. [#59621](https://github.com/ClickHouse/ClickHouse/pull/59621) ([李扬](https://github.com/taiyang-li)).
* Mejora del rendimiento de ASOF JOIN con datos ordenados o casi ordenados. [#59731](https://github.com/ClickHouse/ClickHouse/pull/59731) ([Maksim Kita](https://github.com/kitaisreal)).
* El `default value` anterior de 1 MB para `async_insert_max_data_size` resultó ser demasiado pequeño. El nuevo será de 10 MiB. [#59536](https://github.com/ClickHouse/ClickHouse/pull/59536) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Usa varios hilos al leer los metadatos de las tablas desde una copia de seguridad durante la ejecución del comando RESTORE. [#60040](https://github.com/ClickHouse/ClickHouse/pull/60040) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ahora, si `StorageBuffer` tiene más de 1 segmento (`num_layers` > 1), el vaciado en segundo plano se realizará simultáneamente para todos los segmentos en varios hilos. [#60111](https://github.com/ClickHouse/ClickHouse/pull/60111) ([alesapin](https://github.com/alesapin)).

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

* Cuando el formato de salida es `Pretty` y un bloque consta de un único valor numérico superior a un millón, se mostrará un número legible a la derecha de la tabla. [#60379](https://github.com/ClickHouse/ClickHouse/pull/60379) ([rogeryk](https://github.com/rogeryk)).
* Se añadieron los ajustes `split_parts_ranges_into_intersecting_and_non_intersecting_final` y `split_intersecting_parts_ranges_into_layers_final`. Estos ajustes son necesarios para desactivar optimizaciones en consultas con `FINAL` y solo hacen falta para depuración. [#59705](https://github.com/ClickHouse/ClickHouse/pull/59705) ([Maksim Kita](https://github.com/kitaisreal)). En realidad, no solo sirven para eso: también pueden reducir el uso de memoria a costa del rendimiento.
* Cambie la configuración `extract_kvp_max_pairs_per_row` por `extract_key_value_pairs_max_pairs_per_row`. El problema (una abreviatura innecesaria en el nombre de la configuración) se introdujo en [https://github.com/ClickHouse/ClickHouse/pull/43606](https://github.com/ClickHouse/ClickHouse/pull/43606). Corrija la documentación de esta configuración. [#59683](https://github.com/ClickHouse/ClickHouse/pull/59683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#59960](https://github.com/ClickHouse/ClickHouse/pull/59960) ([jsc0218](https://github.com/jsc0218)).
* La ejecución de `ALTER COLUMN MATERIALIZE` en una columna con una expresión `DEFAULT` o `MATERIALIZED` ahora respeta con precisión la semántica. [#58023](https://github.com/ClickHouse/ClickHouse/pull/58023) ([Duc Canh Le](https://github.com/canhld94)).
* Se habilitó un mecanismo de backoff exponencial para los errores en las mutaciones. Reducirá el uso de CPU, el uso de memoria y el tamaño de los archivos de registro. [#58036](https://github.com/ClickHouse/ClickHouse/pull/58036) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se añadió una mejora para contabilizar el evento de perfil `InitialQuery`. [#58195](https://github.com/ClickHouse/ClickHouse/pull/58195) ([Unalian](https://github.com/Unalian)).
* Se permite definir `volume_priority` en `storage_configuration`. [#58533](https://github.com/ClickHouse/ClickHouse/pull/58533) ([Andrey Zvonov](https://github.com/zvonand)).
* Se agregó compatibilidad con el tipo `Date32` en el códec `T64`. [#58738](https://github.com/ClickHouse/ClickHouse/pull/58738) ([Hongbin Ma](https://github.com/binmahone)).
* Permitir comas al final en tipos con varios elementos. [#59119](https://github.com/ClickHouse/ClickHouse/pull/59119) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* La configuración del engine de tabla Distributed ahora puede especificarse en el archivo de configuración del servidor (de forma similar a la de MergeTree), p. ej. `<distributed> <flush_on_detach>false</flush_on_detach> </distributed>`. [#59291](https://github.com/ClickHouse/ClickHouse/pull/59291) ([Azat Khuzhin](https://github.com/azat)).
* Reintento de desconexiones y sesiones expiradas al leer `system.zookeeper`. Esto resulta útil al leer muchas filas de la tabla `system.zookeeper`, especialmente cuando hay desconexiones inducidas por inyección de fallos. [#59388](https://github.com/ClickHouse/ClickHouse/pull/59388) ([Alexander Gololobov](https://github.com/davenger)).
* No interprete como octales los números con ceros a la izquierda cuando `input_format_values_interpret_expressions=0`. [#59403](https://github.com/ClickHouse/ClickHouse/pull/59403) ([Joanna Hulboj](https://github.com/jh0x)).
* Al iniciarse y cada vez que se modifican los archivos de configuración, ClickHouse actualiza los límites estrictos de memoria de su rastreador total de memoria. Estos límites se determinan en función de varios ajustes del servidor y de los límites de cgroups (en Linux). Anteriormente, la ruta `/sys/fs/cgroup/memory.max` (para cgroups v2) estaba codificada de forma fija. Como resultado, se ignoraban los límites de memoria de cgroup v2 configurados para grupos anidados (jerarquías), por ejemplo, `/sys/fs/cgroup/my/nested/group/memory.max`. Esto ya se ha corregido. El comportamiento de los límites de memoria de v1 permanece sin cambios. [#59435](https://github.com/ClickHouse/ClickHouse/pull/59435) ([Robert Schulze](https://github.com/rschu1ze)).
* Se agregaron nuevos eventos de perfil para observar el tiempo empleado en calcular PK/proyecciones/índices secundarios durante los `INSERT`. [#59436](https://github.com/ClickHouse/ClickHouse/pull/59436) ([Nikita Taranov](https://github.com/nickitat)).
* Permite definir, durante la creación, un punto de inicio para S3Queue en modo Ordered mediante la configuración `s3queue_last_processed_path`. [#59446](https://github.com/ClickHouse/ClickHouse/pull/59446) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Los comentarios de las tablas del sistema ahora también están disponibles en `system.tables` en `clickhouse-local`. [#59493](https://github.com/ClickHouse/ClickHouse/pull/59493) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Tabla `system.zookeeper`: anteriormente, todo el resultado se acumulaba en memoria y se devolvía como un único fragmento grande. Este cambio debería ayudar a reducir el consumo de memoria al leer muchas filas de `system.zookeeper`, permitir mostrar el progreso intermedio (cuántas filas se han leído hasta ese momento) y evitar que se agote el tiempo de espera de la conexión cuando el conjunto de resultados es grande. [#59545](https://github.com/ClickHouse/ClickHouse/pull/59545) ([Alexander Gololobov](https://github.com/davenger)).
* Ahora el dashboard admite tanto el estado comprimido como el sin comprimir del #hash de la URL (compatibilidad con versiones anteriores). Continuación de [#59124](https://github.com/ClickHouse/ClickHouse/issues/59124) . [#59548](https://github.com/ClickHouse/ClickHouse/pull/59548) ([Amos Bird](https://github.com/amosbird)).
* Se actualizó Intel QPL (usado por el códec `DEFLATE_QPL`) de v1.3.1 a v1.4.0 . También se corrigió un error en el mecanismo de timeout del sondeo, ya que observamos que en algunos casos el timeout no funcionaba correctamente; si se producía un timeout, IAA y la CPU podían procesar el búfer de forma concurrente. Por ahora, es mejor asegurarse de que el estado del códec IAA no sea QPL\_STS\_BEING\_PROCESSED y, en ese caso, usar el códec por software como alternativa. [#59551](https://github.com/ClickHouse/ClickHouse/pull/59551) ([jasperzhu](https://github.com/jinjunzh)).
* No mostrar una advertencia sobre la versión del servidor en ClickHouse Cloud, ya que ClickHouse Cloud gestiona automáticamente las actualizaciones sin interrupciones. [#59657](https://github.com/ClickHouse/ClickHouse/pull/59657) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Tras la autoextracción, el binario temporal se mueve en lugar de copiarse. [#59661](https://github.com/ClickHouse/ClickHouse/pull/59661) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige el desenrollado de la pila en Apple macOS. Esto cierra [#53653](https://github.com/ClickHouse/ClickHouse/issues/53653). [#59690](https://github.com/ClickHouse/ClickHouse/pull/59690) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Comprobación del desbordamiento de pila en los analizadores sintácticos incluso si el usuario configuró incorrectamente el ajuste `max_parser_depth` con un valor excesivamente alto. Esto cierra [#59622](https://github.com/ClickHouse/ClickHouse/issues/59622). [#59697](https://github.com/ClickHouse/ClickHouse/pull/59697) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#60434](https://github.com/ClickHouse/ClickHouse/pull/60434)
* Unificar el comportamiento de las named collection creadas con XML y SQL en el almacenamiento de Kafka. [#59710](https://github.com/ClickHouse/ClickHouse/pull/59710) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* En caso de que `merge_max_block_size_bytes` sea lo bastante pequeño y las tablas contengan filas anchas (cadenas o tuplas), las fusiones en segundo plano pueden quedar atrapadas en un bucle infinito. Se ha corregido este comportamiento. Continuación de [https://github.com/ClickHouse/ClickHouse/pull/59340](https://github.com/ClickHouse/ClickHouse/pull/59340). [#59812](https://github.com/ClickHouse/ClickHouse/pull/59812) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permitir uuid en replica\_path si CREATE TABLE lo especifica explícitamente. [#59908](https://github.com/ClickHouse/ClickHouse/pull/59908) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió la columna `metadata_version` a la tabla del sistema `system.tables` para las tablas ReplicatedMergeTree. [#59942](https://github.com/ClickHouse/ClickHouse/pull/59942) ([Maksim Kita](https://github.com/kitaisreal)).
* Mejora de Keeper: enviar solo métricas/eventos de Keeper para Prometheus. [#59945](https://github.com/ClickHouse/ClickHouse/pull/59945) ([Antonio Andelic](https://github.com/antonio2368)).
* El dashboard mostrará métricas de distintas versiones de ClickHouse incluso si la estructura de las tablas del sistema ha cambiado tras la actualización. [#59967](https://github.com/ClickHouse/ClickHouse/pull/59967) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite cargar información de AZ desde un archivo. [#59976](https://github.com/ClickHouse/ClickHouse/pull/59976) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Mejora de Keeper: añadir reintentos en caso de fallo en operaciones relacionadas con discos. [#59980](https://github.com/ClickHouse/ClickHouse/pull/59980) ([Antonio Andelic](https://github.com/antonio2368)).
* Añade la nueva opción de configuración `backups.remove_backup_files_after_failure`: `<clickhouse> <backups> <remove_backup_files_after_failure>true</remove_backup_files_after_failure> </backups> </clickhouse>`. [#60002](https://github.com/ClickHouse/ClickHouse/pull/60002) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añadió una alternativa de respaldo para la copia de archivos de S3 a una copia en búfer en caso de que GCP devolviera `Internal Error` con el código de error HTTP `GATEWAY_TIMEOUT`. [#60164](https://github.com/ClickHouse/ClickHouse/pull/60164) ([Maksim Kita](https://github.com/kitaisreal)).
* Ejecución con cortocircuito para `ULIDStringToDateTime`. [#60211](https://github.com/ClickHouse/ClickHouse/pull/60211) ([Juan Madurga](https://github.com/jlmadurga)).
* Se añadió la columna `query_id` para las tablas `system.backups` y `system.backup_log`. Se añadió el stacktrace del error a la columna `error`. [#60220](https://github.com/ClickHouse/ClickHouse/pull/60220) ([Maksim Kita](https://github.com/kitaisreal)).
* Las conexiones a través del puerto MySQL ahora se ejecutan automáticamente con la configuración `prefer_column_name_to_alias = 1` para ofrecer compatibilidad inmediata con QuickSight. Además, las configuraciones `mysql_map_string_to_text_in_show_columns` y `mysql_map_fixed_string_to_text_in_show_columns` ahora están habilitadas de forma predeterminada, lo que también solo afecta a las conexiones MySQL. Esto aumenta la compatibilidad con más herramientas de BI. [#60365](https://github.com/ClickHouse/ClickHouse/pull/60365) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige una condición de carrera en el código JavaScript que hacía que se mostraran gráficos duplicados superpuestos. [#60392](https://github.com/ClickHouse/ClickHouse/pull/60392) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Se añadieron compilaciones y pruebas con recopilación de cobertura e introspección. Continuación de [#56102](https://github.com/ClickHouse/ClickHouse/issues/56102). [#58792](https://github.com/ClickHouse/ClickHouse/pull/58792) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se actualizó la cadena de herramientas de Rust en `corrosion-cmake` cuando está definida la variable de cadena de herramientas de compilación cruzada de CMake. [#59309](https://github.com/ClickHouse/ClickHouse/pull/59309) ([Aris Tritas](https://github.com/aris-aiven)).
* Se añadió algo de fuzzing a ASTLiterals. [#59383](https://github.com/ClickHouse/ClickHouse/pull/59383) ([Raúl Marín](https://github.com/Algunenano)).
* Si quieres ejecutar los scripts de initdb cada vez que se inicia el contenedor de ClickHouse, debes establecer la variable de entorno CLICKHOUSE\_ALWAYS\_RUN\_INITDB\_SCRIPTS. [#59808](https://github.com/ClickHouse/ClickHouse/pull/59808) ([Alexander Nikolaev](https://github.com/AlexNik)).
* Se eliminó la posibilidad de deshabilitar componentes genéricos de ClickHouse (como server/client/...), pero se conservaron algunos que requieren bibliotecas adicionales (como ODBC o Keeper). [#59857](https://github.com/ClickHouse/ClickHouse/pull/59857) ([Azat Khuzhin](https://github.com/azat)).
* El fuzzer de consultas ahora hace fuzzing de SETTINGS dentro de las consultas. [#60087](https://github.com/ClickHouse/ClickHouse/pull/60087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió compatibilidad para compilar ClickHouse con clang-19 (master). [#60448](https://github.com/ClickHouse/ClickHouse/pull/60448) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Corrige un error de "Non-ready set" en TTL WHERE. [#57430](https://github.com/ClickHouse/ClickHouse/pull/57430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un fallo en la función `quantilesGK` [#58216](https://github.com/ClickHouse/ClickHouse/pull/58216) ([李扬](https://github.com/taiyang-li)).
* Corrige un comportamiento erróneo de `intDiv` con argumentos Decimal [#59243](https://github.com/ClickHouse/ClickHouse/pull/59243) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige `translate` con entrada FixedString [#59356](https://github.com/ClickHouse/ClickHouse/pull/59356) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige el cálculo del digest en Keeper [#59439](https://github.com/ClickHouse/ClickHouse/pull/59439) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigen stacktraces para binarios sin símbolos de depuración [#59444](https://github.com/ClickHouse/ClickHouse/pull/59444) ([Azat Khuzhin](https://github.com/azat)).
* Corregido `ASTAlterCommand::formatImpl` en el caso de ajustes específicos de columna... [#59445](https://github.com/ClickHouse/ClickHouse/pull/59445) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se corrigió `SELECT * FROM [...] ORDER BY ALL` con el Analyzer [#59462](https://github.com/ClickHouse/ClickHouse/pull/59462) ([zhongyuankai](https://github.com/zhongyuankai)).
* Se corrigió una posible excepción no controlada durante la cancelación de una consulta distribuida [#59487](https://github.com/ClickHouse/ClickHouse/pull/59487) ([Azat Khuzhin](https://github.com/azat)).
* Hacer que MAX aplique las mismas reglas que permutation para los tipos complejos [#59498](https://github.com/ClickHouse/ClickHouse/pull/59498) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un caso límite al usar `update_insert_deduplication_token_in_dependent_materialized_views` [#59544](https://github.com/ClickHouse/ClickHouse/pull/59544) ([Jordi Villar](https://github.com/jrdi)).
* Corrige el resultado incorrecto de arrayElement / map con un valor vacío [#59594](https://github.com/ClickHouse/ClickHouse/pull/59594) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige un bloqueo en topK al fusionar estados vacíos [#59603](https://github.com/ClickHouse/ClickHouse/pull/59603) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige el problema de la tabla distribuida con una clave de segmentación constante [#59606](https://github.com/ClickHouse/ClickHouse/pull/59606) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige un problema de KQL detectado por WingFuzz [#59626](https://github.com/ClickHouse/ClickHouse/pull/59626) ([Yong Wang](https://github.com/kashwy)).
* Corregido el error "Read beyond last offset" en AsynchronousBoundedReadBuffer [#59630](https://github.com/ClickHouse/ClickHouse/pull/59630) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se mantiene el alias de función en RewriteSumFunctionWithSumAndCountVisitor [#59658](https://github.com/ClickHouse/ClickHouse/pull/59658) ([Raúl Marín](https://github.com/Algunenano)).
* Corregir la hora de inicio de la consulta en las consultas no iniciales [#59662](https://github.com/ClickHouse/ClickHouse/pull/59662) ([Raúl Marín](https://github.com/Algunenano)).
* Validar los tipos de argumentos del índice de omisión `minmax` [#59733](https://github.com/ClickHouse/ClickHouse/pull/59733) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige la función leftPad / rightPad para entradas FixedString [#59739](https://github.com/ClickHouse/ClickHouse/pull/59739) ([Raúl Marín](https://github.com/Algunenano)).
* Soluciona un problema del AST fuzzer en la función `countMatches` [#59752](https://github.com/ClickHouse/ClickHouse/pull/59752) ([Robert Schulze](https://github.com/rschu1ze)).
* RabbitMQ: corrección de mensajes que no estaban ni confirmados (`acked`) ni rechazados (`nacked`) [#59775](https://github.com/ClickHouse/ClickHouse/pull/59775) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió StorageURL, que ejecutaba parte de la consulta en un solo hilo [#59833](https://github.com/ClickHouse/ClickHouse/pull/59833) ([Michael Kolupaev](https://github.com/al13n321)).
* S3Queue: corrige un valor no inicializado [#59897](https://github.com/ClickHouse/ClickHouse/pull/59897) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corregido el análisis sintáctico de expresiones de partición rodeadas de paréntesis [#59901](https://github.com/ClickHouse/ClickHouse/pull/59901) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Se corrige un fallo en el formato JSONColumnsWithMetadata a través de HTTP [#59925](https://github.com/ClickHouse/ClickHouse/pull/59925) ([Kruglov Pavel](https://github.com/Avogar)).
* No reescriba sum como count si el valor devuelto difiere en Analyzer [#59926](https://github.com/ClickHouse/ClickHouse/pull/59926) ([Azat Khuzhin](https://github.com/azat)).
* Corrección de un fallo al leer UniqExactSet [#59928](https://github.com/ClickHouse/ClickHouse/pull/59928) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrección de metadata\_version no válida en ReplicatedMergeTree [#59946](https://github.com/ClickHouse/ClickHouse/pull/59946) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige una condición de carrera en `StorageDistributed` [#59987](https://github.com/ClickHouse/ClickHouse/pull/59987) ([Nikita Taranov](https://github.com/nickitat)).
* Docker: ejecutar scripts de inicialización cuando la opción está habilitada, en lugar de cuando está deshabilitada [#59991](https://github.com/ClickHouse/ClickHouse/pull/59991) ([jktng](https://github.com/jktng)).
* Corrige INSERT en `SQLite` con comillas simples (escapando las comillas simples con otra comilla en lugar de una barra invertida) [#60015](https://github.com/ClickHouse/ClickHouse/pull/60015) ([Azat Khuzhin](https://github.com/azat)).
* Corrige varios errores lógicos en `arrayFold` [#60022](https://github.com/ClickHouse/ClickHouse/pull/60022) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió optimize\_uniq\_to\_count, que eliminaba el alias de la columna [#60026](https://github.com/ClickHouse/ClickHouse/pull/60026) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige una posible excepción en la tabla S3Queue al eliminarla [#60036](https://github.com/ClickHouse/ClickHouse/pull/60036) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corregir el formato de NOT con un solo literal [#60042](https://github.com/ClickHouse/ClickHouse/pull/60042) ([Raúl Marín](https://github.com/Algunenano)).
* Usar max\_query\_size del contexto en DDLLogEntry en lugar del valor fijo 4096 [#60083](https://github.com/ClickHouse/ClickHouse/pull/60083) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió el formato inconsistente de las consultas que contienen tablas llamadas `table`. Se corrigió el formato incorrecto de las consultas con `UNION ALL`, `INTERSECT` y `EXCEPT` cuando su estructura no era lineal. Esto cierra #52349. Se corrigió el formato incorrecto de las consultas `SYSTEM`, incluidas `SYSTEM ... DROP FILESYSTEM CACHE`, `SYSTEM ... REFRESH/START/STOP/CANCEL/TEST VIEW` y `SYSTEM ENABLE/DISABLE FAILPOINT`. Se corrigió el formato de las consultas DDL parametrizadas. Se corrigió el formato de la consulta `DESCRIBE FILESYSTEM CACHE`. Se corrigió el formato incorrecto de `SET param_...` (una consulta que establece un parámetro). Se corrigió el formato incorrecto de las consultas `CREATE INDEX`. Se corrigió el formato inconsistente de `CREATE USER` y consultas similares. Se corrigió el formato inconsistente de `CREATE SETTINGS PROFILE`. Se corrigió el formato incorrecto de `ALTER ... MODIFY REFRESH`. Se corrigió el formato inconsistente de las funciones de ventana si los desplazamientos del marco eran expresiones. Se corrigió el formato inconsistente de `RESPECT NULLS` e `IGNORE NULLS` si se usaban después de una función que implementa un operador (como `plus`). Se corrigió el absurdo formato de `SYSTEM SYNC REPLICA ... LIGHTWEIGHT FROM ...`. Se corrigió el formato inconsistente de las consultas no válidas con `GROUP BY GROUPING SETS ... WITH ROLLUP/CUBE/TOTALS`. Se corrigió el formato inconsistente de `GRANT CURRENT GRANTS`. Se corrigió el formato inconsistente de `CREATE TABLE (... COLLATE)`. Además, corregí el formato incorrecto de `EXPLAIN` en subconsultas (#60102). Se corrigió el formato incorrecto de las funciones lambda (#60012). Se añadió una comprobación para que no haya forma de que estas abominaciones vuelvan a pasar desapercibidas. [#60095](https://github.com/ClickHouse/ClickHouse/pull/60095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el formato inconsistente de explain en subconsultas [#60102](https://github.com/ClickHouse/ClickHouse/pull/60102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Soluciona el fallo de `cosineDistance` con Nullable [#60150](https://github.com/ClickHouse/ClickHouse/pull/60150) ([Raúl Marín](https://github.com/Algunenano)).
* Permitir convertir bools representados como cadenas en bools reales [#60160](https://github.com/ClickHouse/ClickHouse/pull/60160) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige `system.s3queue_log` [#60166](https://github.com/ClickHouse/ClickHouse/pull/60166) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige `arrayReduce` con nombre de función de agregación Nullable [#60188](https://github.com/ClickHouse/ClickHouse/pull/60188) ([Raúl Marín](https://github.com/Algunenano)).
* Ocultar información sensible en `S3Queue` [#60233](https://github.com/ClickHouse/ClickHouse/pull/60233) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige los códigos de excepción HTTP. [#60252](https://github.com/ClickHouse/ClickHouse/pull/60252) ([Austin Kothig](https://github.com/kothiga)).
* S3Queue: corrige un fallo (también corrige la prueba inestable test\_storage\_s3\_queue/test.py::test\_shards\_distributed) [#60282](https://github.com/ClickHouse/ClickHouse/pull/60282) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige el uso de un valor sin inicializar y un resultado no válido en las funciones hash con IPv6 [#60359](https://github.com/ClickHouse/ClickHouse/pull/60359) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige OptimizeDateOrDateTimeConverterWithPreimageVisitor con argumentos nulos [#60453](https://github.com/ClickHouse/ClickHouse/pull/60453) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió un error menor que impedía ejecutar en réplicas las consultas sobre tablas distribuidas enviadas desde clientes con dialecto KQL o PRQL. [#59674](https://github.com/ClickHouse/ClickHouse/issues/59674). [#60470](https://github.com/ClickHouse/ClickHouse/pull/60470) ([Alexey Milovidov](https://github.com/alexey-milovidov)) [#59674](https://github.com/ClickHouse/ClickHouse/pull/59674) ([Austin Kothig](https://github.com/kothiga)).

### <a id="241" /> lanzamiento de ClickHouse 24.1, 2024-01-30. [Presentation](https://presentations.clickhouse.com/2024-release-24.1/), [Video](https://www.youtube.com/watch?v=pBF9g0wGAGs)

<Frame>
  <iframe src="https://www.youtube.com/embed/pBF9g0wGAGs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

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

* El ajuste `print_pretty_type_names` está activado de forma predeterminada. Puede desactivarlo para conservar el comportamiento anterior o usar `SET compatibility = '23.12'`. [#57726](https://github.com/ClickHouse/ClickHouse/pull/57726) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El ajuste de MergeTree `clean_deleted_rows` está obsoleto y ya no tiene ningún efecto. La palabra clave `CLEANUP` para `OPTIMIZE` no está permitida de forma predeterminada (a menos que `allow_experimental_replacing_merge_with_cleanup` esté habilitado). [#58316](https://github.com/ClickHouse/ClickHouse/pull/58316) ([Alexander Tokmakov](https://github.com/tavplubix)).
* La función `reverseDNSQuery` ya no está disponible. Esto cierra [#58368](https://github.com/ClickHouse/ClickHouse/issues/58368). [#58369](https://github.com/ClickHouse/ClickHouse/pull/58369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilite varios cambios para mejorar el control de acceso en el archivo de configuración. Estos cambios afectan al comportamiento, y debe revisar `config.xml` en la sección `access_control_improvements`. Si no está seguro, mantenga en el archivo de configuración los mismos valores que en la versión anterior. [#58584](https://github.com/ClickHouse/ClickHouse/pull/58584) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora el funcionamiento de `sumMapFiltered` con valores NaN. Los valores NaN ahora se colocan al final (en lugar de hacerlo aleatoriamente) y se consideran distintos de cualquier otro valor. Ahora `-0` también se trata como igual a `0`; dado que los valores 0 se descartan, los valores `-0` también se descartan. [#58959](https://github.com/ClickHouse/ClickHouse/pull/58959) ([Raúl Marín](https://github.com/Algunenano)).
* La función `visibleWidth` se comportará de acuerdo con la documentación. En versiones anteriores, simplemente contaba puntos de código después de la serialización de la cadena, como la función `lengthUTF8`, pero no tenía en cuenta los caracteres de ancho cero y los caracteres combinados, los caracteres de ancho completo, las tabulaciones ni los borrados. Ahora el comportamiento se ha modificado en consecuencia. Si desea mantener el comportamiento anterior, establezca `function_visible_width_behavior` en `0`, o establezca `compatibility` en `23.12` o una versión anterior. [#59022](https://github.com/ClickHouse/ClickHouse/pull/59022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El dialecto `Kusto` está deshabilitado hasta que se corrijan estos dos errores: [#59037](https://github.com/ClickHouse/ClickHouse/issues/59037) y [#59036](https://github.com/ClickHouse/ClickHouse/issues/59036). [#59305](https://github.com/ClickHouse/ClickHouse/pull/59305) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Cualquier intento de usar `Kusto` dará lugar a una excepción.
* Una implementación más eficiente del modificador `FINAL` ya no garantiza que se preserve el orden, incluso si `max_threads = 1`. Si dependía del comportamiento anterior, establezca `enable_vertical_final` en 0 o `compatibility` en `23.12`.

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

* Se implementó el tipo de dato Variant, que representa una unión de otros tipos de datos. El tipo `Variant(T1, T2, ..., TN)` significa que cada fila de este tipo tiene un valor de tipo `T1`, `T2`, ..., `TN` o ninguno de ellos (valor `NULL`). El tipo Variant está disponible con la configuración `allow_experimental_variant_type`. Referencia: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#58047](https://github.com/ClickHouse/ClickHouse/pull/58047) ([Kruglov Pavel](https://github.com/Avogar)).
* Ahora, ciertas configuraciones (actualmente `min_compress_block_size` y `max_compress_block_size`) pueden especificarse a nivel de columna, donde prevalecen sobre la configuración correspondiente a nivel de tabla. Ejemplo: `CREATE TABLE tab (col String SETTINGS (min_compress_block_size = 81920, max_compress_block_size = 163840)) ENGINE = MergeTree ORDER BY tuple();`. [#55201](https://github.com/ClickHouse/ClickHouse/pull/55201) ([Duc Canh Le](https://github.com/canhld94)).
* Añade la función de agregación `quantileDD`, así como las correspondientes `quantilesDD` y `medianDD`. Se basa en DDSketch [https://www.vldb.org/pvldb/vol12/p2195-masson.pdf](https://www.vldb.org/pvldb/vol12/p2195-masson.pdf). ### Entrada de documentación para cambios visibles para el usuario. [#56342](https://github.com/ClickHouse/ClickHouse/pull/56342) ([Srikanth Chekuri](https://github.com/srikanthccv)).
* Permite configurar cualquier tipo de almacenamiento de objetos con cualquier tipo de metadato. [#58357](https://github.com/ClickHouse/ClickHouse/pull/58357) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadieron los modos `null_status_on_timeout_only_active` y `throw_only_active` para `distributed_ddl_output_mode`, que permiten evitar la espera de réplicas inactivas. [#58350](https://github.com/ClickHouse/ClickHouse/pull/58350) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Añadir la función `arrayShingles` para calcular subarreglos; por ejemplo, `arrayShingles([1, 2, 3, 4, 5], 3)` devuelve `[[1,2,3],[2,3,4],[3,4,5]]`. [#58396](https://github.com/ClickHouse/ClickHouse/pull/58396) ([Zheng Miao](https://github.com/zenmiao7)).
* Se añadieron las funciones `punycodeEncode`, `punycodeDecode`, `idnaEncode` e `idnaDecode`, útiles para convertir nombres de dominio internacionales a una representación ASCII conforme al estándar IDNA. [#58454](https://github.com/ClickHouse/ClickHouse/pull/58454) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadieron las funciones de similitud entre cadenas `dramerauLevenshteinDistance`, `jaroSimilarity` y `jaroWinklerSimilarity`. [#58531](https://github.com/ClickHouse/ClickHouse/pull/58531) ([Robert Schulze](https://github.com/rschu1ze)).
* Se agregan dos ajustes: `output_format_compression_level`, para cambiar el nivel de compresión de salida, y `output_format_compression_zstd_window_log`, para establecer explícitamente el tamaño de la ventana de compresión y habilitar el modo de largo alcance para la compresión zstd si el método de compresión de salida es `zstd`. Se aplica a `INTO OUTFILE` y al escribir en las funciones de tabla `file`, `url`, `hdfs`, `s3` y `azureBlobStorage`. [#58539](https://github.com/ClickHouse/ClickHouse/pull/58539) ([Duc Canh Le](https://github.com/canhld94)).
* Desactiva automáticamente las secuencias de escape ANSI en los formatos Pretty si la salida no es un terminal. Añade el nuevo modo `auto` al ajuste `output_format_pretty_color`. [#58614](https://github.com/ClickHouse/ClickHouse/pull/58614) ([Shaun Struwig](https://github.com/Blargian)).
* Se agregó la función `sqidDecode`, que decodifica [Sqids](https://sqids.org/). [#58544](https://github.com/ClickHouse/ClickHouse/pull/58544) ([Robert Schulze](https://github.com/rschu1ze)).
* Permite leer valores Bool como String en formatos de entrada JSON. Esto se realiza mediante la configuración `input_format_json_read_bools_as_strings`, que está habilitada de forma predeterminada. [#58561](https://github.com/ClickHouse/ClickHouse/pull/58561) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió la función `seriesDecomposeSTL`, que descompone una serie temporal en un componente estacional, una tendencia y un componente residual. [#57078](https://github.com/ClickHouse/ClickHouse/pull/57078) ([Bhavna Jindal](https://github.com/bhavnajindal)).
* Se incorporó el cliente MySQL Binlog para MaterializedMySQL: una conexión al binlog para varias bases de datos. [#57323](https://github.com/ClickHouse/ClickHouse/pull/57323) ([Val Doroshchuk](https://github.com/valbok)).
* Intel QuickAssist Technology (QAT) proporciona compresión y criptografía aceleradas por hardware. ClickHouse incorporó un nuevo códec de compresión `ZSTD_QAT` que utiliza QAT para la compresión zstd. El códec usa [QATlib de Intel's](https://github.com/intel/qatlib) y [el plugin QAT ZSTD de Inte's](https://github.com/intel/QAT-ZSTD-Plugin). Por ahora, solo la compresión puede acelerarse por hardware (si QAT no puede inicializarse, se recurre a una alternativa por software); la descompresión siempre se realiza por software. [#57509](https://github.com/ClickHouse/ClickHouse/pull/57509) ([jasperzhu](https://github.com/jinjunzh)).
* Implementación de una nueva forma de generar las claves del almacenamiento de objetos para discos S3. Ahora, el formato puede definirse mediante la sintaxis de expresiones regulares `re2` con la opción `key_template` en la descripción del disco. [#57663](https://github.com/ClickHouse/ClickHouse/pull/57663) ([Sema Checherinda](https://github.com/CheSema)).
* La tabla system.dropped\_tables\_parts contiene partes de las tablas system.dropped\_tables (tablas eliminadas, pero aún no retiradas). [#58038](https://github.com/ClickHouse/ClickHouse/pull/58038) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se añade la configuración `max_materialized_views_size_for_table` para limitar el número de vistas materializadas asociadas a una tabla. [#58068](https://github.com/ClickHouse/ClickHouse/pull/58068) ([zhongyuankai](https://github.com/zhongyuankai)).
* Mejoras en `clickhouse-format`: admite consultas INSERT con `VALUES`; comentarios (use `--comments` para mostrarlos); y la opción `--max_line_length` para dar formato en varias líneas solo a las consultas largas. [#58246](https://github.com/ClickHouse/ClickHouse/pull/58246) ([vdimir](https://github.com/vdimir)).
* Se adjuntan todas las tablas del sistema en `clickhouse-local`, incluido `system.parts`. Esto cierra [#58312](https://github.com/ClickHouse/ClickHouse/issues/58312). [#58359](https://github.com/ClickHouse/ClickHouse/pull/58359) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade compatibilidad con los tipos de datos `Enum` en la función `transform`. Esto cierra [#58241](https://github.com/ClickHouse/ClickHouse/issues/58241). [#58360](https://github.com/ClickHouse/ClickHouse/pull/58360) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añadir la tabla `system.database_engines`. [#58390](https://github.com/ClickHouse/ClickHouse/pull/58390) ([Bharat Nallan](https://github.com/bharatnc)). Permitir registrar motores de base de datos de forma independiente en el código fuente. [#58365](https://github.com/ClickHouse/ClickHouse/pull/58365) ([Bharat Nallan](https://github.com/bharatnc)). Permitir registrar intérpretes de forma independiente. [#58443](https://github.com/ClickHouse/ClickHouse/pull/58443) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añadió el modificador `FROM <Replicas>` para la consulta `SYSTEM SYNC REPLICA LIGHTWEIGHT`. El modificador `FROM` hace que se espere a las operaciones de fetch y a los drop-ranges solo de las réplicas de origen especificadas, así como de cualquier réplica que no esté en zookeeper o que tenga un source\_replica vacío. [#58393](https://github.com/ClickHouse/ClickHouse/pull/58393) ([Jayme Bird](https://github.com/jaymebrd)).
* Se añadió la configuración `update_insert_deduplication_token_in_dependent_materialized_views`. Esta configuración permite actualizar el token de desduplicación de inserciones con el identificador de la tabla durante la inserción en las vistas materializadas dependientes. Cierra [#59165](https://github.com/ClickHouse/ClickHouse/issues/59165). [#59238](https://github.com/ClickHouse/ClickHouse/pull/59238) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la sentencia `SYSTEM RELOAD ASYNCHRONOUS METRICS`, que actualiza las métricas asíncronas. Resulta especialmente útil para pruebas y desarrollo. [#53710](https://github.com/ClickHouse/ClickHouse/pull/53710) ([Robert Schulze](https://github.com/rschu1ze)).

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

* La coordinación de las réplicas paralelas se ha reescrito para lograr un mejor paralelismo y una mayor localidad de caché. Se ha comprobado que ofrece una escalabilidad lineal con cientos de réplicas. También incorpora compatibilidad con la lectura en orden. [#57968](https://github.com/ClickHouse/ClickHouse/pull/57968) ([Nikita Taranov](https://github.com/nickitat)).
* Se reemplaza el almacenamiento en búfer de salida basado en HTTP por los búferes nativos de ClickHouse. Se añaden métricas de recuento de bytes para las interfaces. [#56064](https://github.com/ClickHouse/ClickHouse/pull/56064) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Los estados de agregación de gran tamaño de `uniqExact` se fusionarán en paralelo en consultas distribuidas. [#59009](https://github.com/ClickHouse/ClickHouse/pull/59009) ([Nikita Taranov](https://github.com/nickitat)).
* Menor uso de memoria tras leer desde tablas `MergeTree`. [#59290](https://github.com/ClickHouse/ClickHouse/pull/59290) ([Anton Popov](https://github.com/CurtizJ)).
* Reducción del uso de memoria en las fusiones verticales. [#59340](https://github.com/ClickHouse/ClickHouse/pull/59340) ([Anton Popov](https://github.com/CurtizJ)).
* Evita un consumo excesivo de memoria durante el inicio de Keeper en más casos. [#58455](https://github.com/ClickHouse/ClickHouse/pull/58455) ([Antonio Andelic](https://github.com/antonio2368)).
* Mejora de Keeper: reduce el uso de memoria de Keeper para los nodos almacenados. [#59002](https://github.com/ClickHouse/ClickHouse/pull/59002) ([Antonio Andelic](https://github.com/antonio2368)).
* Implementación de FINAL más optimizada para la caché. Nota sobre el cambio de comportamiento: anteriormente, las consultas con el modificador `FINAL` que leían con un único flujo (por ejemplo, `max_threads = 1`) producían una salida ordenada sin una cláusula `ORDER BY` especificada explícitamente. Esto ya no está garantizado cuando `enable_vertical_final = true` (y es el valor predeterminado). [#54366](https://github.com/ClickHouse/ClickHouse/pull/54366) ([Duc Canh Le](https://github.com/canhld94)).
* Evita copias adicionales en `ReadBufferFromIStream`, que se usa, por ejemplo, para leer desde S3. [#56961](https://github.com/ClickHouse/ClickHouse/pull/56961) ([Nikita Taranov](https://github.com/nickitat)).
* Se optimiza la función de elementos de array cuando la entrada es Array(Map)/Array(Array(Num)/Array(Array(String))/Array(BigInt)/Array(Decimal). Las implementaciones anteriores realizaban más asignaciones de memoria de las necesarias. La mejora de rendimiento de esta optimización es de hasta \~6x, especialmente cuando el tipo de entrada es Array(Map). [#56403](https://github.com/ClickHouse/ClickHouse/pull/56403) ([李扬](https://github.com/taiyang-li)).
* Leer la columna una sola vez al leer más de una subcolumna de ella en partes compactas. [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631) ([Kruglov Pavel](https://github.com/Avogar)).
* Se reescribe el AST de la función `sum(column + constant)`. Esto está disponible como un paso de optimización para el Analizador [#57853](https://github.com/ClickHouse/ClickHouse/pull/57853) ([Jiebin Sun](https://github.com/jiebinn)).
* La evaluación de la función `match` ahora aprovecha los índices de omisión `ngrambf_v1` y `tokenbf_v1`. [#57882](https://github.com/ClickHouse/ClickHouse/pull/57882) ([凌涛](https://github.com/lingtaolf)).
* La evaluación de la función `match` ahora aprovecha índices invertidos. [#58284](https://github.com/ClickHouse/ClickHouse/pull/58284) ([凌涛](https://github.com/lingtaolf)).
* MergeTree `FINAL` no compara filas de la misma parte que no es L0. [#58142](https://github.com/ClickHouse/ClickHouse/pull/58142) ([Duc Canh Le](https://github.com/canhld94)).
* Acelerar las llamadas a iota (rellenando el array con números consecutivos). [#58271](https://github.com/ClickHouse/ClickHouse/pull/58271) ([Raúl Marín](https://github.com/Algunenano)).
* Mejora de velocidad de MIN/MAX para tipos no numéricos. [#58334](https://github.com/ClickHouse/ClickHouse/pull/58334) ([Raúl Marín](https://github.com/Algunenano)).
* Optimiza la combinación de filtros (como en PREWHERE de varias etapas) con intrínsecos de BMI2/SSE [#58800](https://github.com/ClickHouse/ClickHouse/pull/58800) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Usar un hilo menos en `clickhouse-local`. [#58968](https://github.com/ClickHouse/ClickHouse/pull/58968) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora del rendimiento de la función `multiIf` cuando el tipo es Nullable. [#57745](https://github.com/ClickHouse/ClickHouse/pull/57745) ([KevinyhZou](https://github.com/KevinyhZou)).
* Se añade `SYSTEM JEMALLOC PURGE` para purgar las páginas de jemalloc no utilizadas, `SYSTEM JEMALLOC [ ENABLE | DISABLE | FLUSH ] PROFILE` para controlar el perfil de jemalloc si el profiler está habilitado. Se añade el comando 4LW relacionado con jemalloc en Keeper: `jmst` para volcar estadísticas de jemalloc, `jmfp`, `jmep`, `jmdp` para controlar el perfil de jemalloc si el profiler está habilitado. [#58665](https://github.com/ClickHouse/ClickHouse/pull/58665) ([Antonio Andelic](https://github.com/antonio2368)).
* Reducción del consumo de memoria en las copias de seguridad en S3. [#58962](https://github.com/ClickHouse/ClickHouse/pull/58962) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Se añadieron comentarios (descripciones breves) a todas las columnas de las tablas del sistema. Hay varias razones para ello: - Usamos mucho las tablas del sistema, y a veces puede resultar muy difícil para un desarrollador comprender el propósito y el significado de una columna en particular. - Modificamos con frecuencia las tablas del sistema (añadimos nuevas o modificamos las existentes) y su documentación siempre está desactualizada. Por ejemplo, eche un vistazo a la página de documentación de [`system.parts`](/docs/es/reference/system-tables/parts). Le faltan muchas columnas - Nos gustaría, con el tiempo, generar la documentación directamente desde ClickHouse. [#58356](https://github.com/ClickHouse/ClickHouse/pull/58356) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permitir consultas sin alias en subconsultas para `PASTE JOIN`. [#58654](https://github.com/ClickHouse/ClickHouse/pull/58654) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se habilita la integración de `MySQL`/`MariaDB` en MacOS. Esto cierra [#21191](https://github.com/ClickHouse/ClickHouse/issues/21191). [#46316](https://github.com/ClickHouse/ClickHouse/pull/46316) ([Alexey Milovidov](https://github.com/alexey-milovidov)) ([Robert Schulze](https://github.com/rschu1ze)).
* Se deshabilita `max_rows_in_set_to_optimize_join` de forma predeterminada. [#56396](https://github.com/ClickHouse/ClickHouse/pull/56396) ([vdimir](https://github.com/vdimir)).
* Se añadió el parámetro de configuración `<host_name>`, que permite evitar la resolución de nombres de host en consultas DDL ON CLUSTER y en motores de base de datos Replicated. Esto reduce la posibilidad de que la cola se quede bloqueada si cambia la definición del cluster. Cierra [#57573](https://github.com/ClickHouse/ClickHouse/issues/57573). [#57603](https://github.com/ClickHouse/ClickHouse/pull/57603) ([Nikolay Degterinsky](https://github.com/evillique)).
* Aumente `load_metadata_threads` a 16 para la caché del sistema de archivos. Esto permitirá que el servidor se inicie más rápido. [#57732](https://github.com/ClickHouse/ClickHouse/pull/57732) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la posibilidad de limitar la velocidad de las merges/mutations (`max_mutations_bandwidth_for_server`/`max_merges_bandwidth_for_server`). [#57877](https://github.com/ClickHouse/ClickHouse/pull/57877) ([Azat Khuzhin](https://github.com/azat)).
* Se reemplazó la columna no documentada (booleana) `is_hot_reloadable` de la tabla del sistema `system.server_settings` por la columna (Enum8) `changeable_without_restart`, con los posibles valores `No`, `Yes`, `IncreaseOnly` y `DecreaseOnly`. También se documentó esta columna. [#58029](https://github.com/ClickHouse/ClickHouse/pull/58029) ([skyoct](https://github.com/skyoct)).
* La detección de clústeres permite configurar nombre de usuario y contraseña, cierra [#58063](https://github.com/ClickHouse/ClickHouse/issues/58063). [#58123](https://github.com/ClickHouse/ClickHouse/pull/58123) ([vdimir](https://github.com/vdimir)).
* Se admiten parámetros de consulta en `ALTER TABLE ... PART`. [#58297](https://github.com/ClickHouse/ClickHouse/pull/58297) ([Azat Khuzhin](https://github.com/azat)).
* Crear consumidores para tablas de Kafka sobre la marcha (pero conservarlos durante cierto tiempo —`kafka_consumers_pool_ttl_ms` desde la última vez que se usaron—); esto debería corregir el problema con las estadísticas de `system.kafka_consumers` (que no consume cuando nadie lee de la tabla de Kafka, lo que provoca una fuga de memoria activa y una desvinculación lenta de la tabla) y, además, este PR vuelve a habilitar por defecto las estadísticas de `system.kafka_consumers`. [#58310](https://github.com/ClickHouse/ClickHouse/pull/58310) ([Azat Khuzhin](https://github.com/azat)).
* `sparkBar` como alias de `sparkbar`. [#58335](https://github.com/ClickHouse/ClickHouse/pull/58335) ([凌涛](https://github.com/lingtaolf)).
* Evitar enviar solicitudes `ComposeObject` tras la carga a `GCS`. [#58343](https://github.com/ClickHouse/ClickHouse/pull/58343) ([Azat Khuzhin](https://github.com/azat)).
* Gestionar correctamente las claves con un punto en el nombre en los archivos XML de configuración. [#58354](https://github.com/ClickHouse/ClickHouse/pull/58354) ([Azat Khuzhin](https://github.com/azat)).
* Hacer que la función `format` devuelva un valor constante cuando recibe argumentos constantes. Esto cierra [#58355](https://github.com/ClickHouse/ClickHouse/issues/58355). [#58358](https://github.com/ClickHouse/ClickHouse/pull/58358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agrega el ajuste `max_estimated_execution_time` para diferenciar `max_execution_time` de `max_estimated_execution_time`. [#58402](https://github.com/ClickHouse/ClickHouse/pull/58402) ([Zhang Yifan](https://github.com/zhangyifan27)).
* Mostrar una sugerencia cuando se use un nombre de motor de base de datos no válido. [#58444](https://github.com/ClickHouse/ClickHouse/pull/58444) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añaden configuraciones para un mejor control del tipo de los índices en el diccionario de Arrow. De forma predeterminada, se usa el tipo de entero con signo para los índices, tal como recomienda Arrow. Cierra [#57401](https://github.com/ClickHouse/ClickHouse/issues/57401). [#58519](https://github.com/ClickHouse/ClickHouse/pull/58519) ([Kruglov Pavel](https://github.com/Avogar)).
* Se implementa la compatibilidad con la variable de entorno `CLICKHOUSE_PASSWORD_FILE ` al ejecutar la imagen de Docker. [#58575](https://github.com/ClickHouse/ClickHouse/issues/58575) [#58583](https://github.com/ClickHouse/ClickHouse/pull/58583) ([Eyal Halpern Shalev](https://github.com/Eyal-Shalev)).
* Al ejecutar algunas consultas que requieren muchos streams para leer datos, antes se producía el error `"Paste JOIN requires sorted tables only"`. Ahora, en ese caso, el número de streams se reduce a 1. [#58608](https://github.com/ClickHouse/ClickHouse/pull/58608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Mensaje mejorado para el error INVALID\_IDENTIFIER. [#58703](https://github.com/ClickHouse/ClickHouse/pull/58703) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se ha mejorado el manejo de literales numéricos con signo en normalizeQuery. [#58710](https://github.com/ClickHouse/ClickHouse/pull/58710) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se admite el tipo de datos Point para MySQL. [#58721](https://github.com/ClickHouse/ClickHouse/pull/58721) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Al comparar una columna Float32 y una cadena constante, lea la cadena como Float32 (en lugar de Float64). [#58724](https://github.com/ClickHouse/ClickHouse/pull/58724) ([Raúl Marín](https://github.com/Algunenano)).
* Mejora la compatibilidad con S3 y añade compatibilidad con el almacenamiento ECloud EOS. [#58786](https://github.com/ClickHouse/ClickHouse/pull/58786) ([xleoken](https://github.com/xleoken)).
* Permite que `KILL QUERY` cancele copias de seguridad/restauraciones. Este PR también hace visibles en `system.processes` las copias de seguridad y restauraciones en ejecución. Además, ahora hay una nueva opción en la configuración del servidor: `shutdown_wait_backups_and_restores` (default=true), que hace que el servidor, al apagarse, espere a que terminen todas las copias de seguridad y restauraciones en ejecución o simplemente las cancele. [#58804](https://github.com/ClickHouse/ClickHouse/pull/58804) ([Vitaly Baranov](https://github.com/vitlibar)).
* Compatibilidad del formato Avro con el códec ZSTD. Cierra [#58735](https://github.com/ClickHouse/ClickHouse/issues/58735). [#58805](https://github.com/ClickHouse/ClickHouse/pull/58805) ([flynn](https://github.com/ucasfl)).
* La interfaz MySQL ahora admite las opciones de configuración `net_write_timeout` y `net_read_timeout`. `net_write_timeout` se traduce a la configuración nativa `send_timeout` de ClickHouse y, de forma similar, `net_read_timeout` a `receive_timeout`. Se corrigió un problema por el que solo era posible establecer la opción de configuración MySQL `sql_select_limit` si toda la sentencia estaba en mayúsculas. [#58835](https://github.com/ClickHouse/ClickHouse/pull/58835) ([Serge Klochkov](https://github.com/slvrtrn)).
* Un mensaje de excepción mejorado cuando hay un conflicto al crear un diccionario y una tabla con el mismo nombre. [#58841](https://github.com/ClickHouse/ClickHouse/pull/58841) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Asegúrese de que, para los discos personalizados (creados desde SQL), se especifique en la configuración del servidor `filesystem_caches_path` (un prefijo de directorio común para todas las cachés del sistema de archivos) o `custom_cached_disks_base_directory` (un prefijo de directorio común solo para las cachés del sistema de archivos creadas a partir de discos personalizados). `custom_cached_disks_base_directory` tiene mayor prioridad para los discos personalizados que `filesystem_caches_path`, que se usa si el primero no está definido. La opción `path` de la caché del sistema de archivos debe estar dentro de ese directorio; de lo contrario, se generará una excepción que impedirá crear el disco. Esto no afectará a los discos creados en una versión anterior si el servidor se actualizó; en ese caso, no se generará la excepción para permitir que el servidor se inicie correctamente). `custom_cached_disks_base_directory` se añade a la configuración predeterminada del servidor como `/var/lib/clickhouse/caches/`. Cierra [#57825](https://github.com/ClickHouse/ClickHouse/issues/57825). [#58869](https://github.com/ClickHouse/ClickHouse/pull/58869) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La interfaz MySQL ahora es compatible con las consultas `SHOW WARNINGS`/`SHOW COUNT(*) WARNINGS`, aunque el resultado devuelto siempre es un conjunto vacío. [#58929](https://github.com/ClickHouse/ClickHouse/pull/58929) ([Serge Klochkov](https://github.com/slvrtrn)).
* Omitir las réplicas no disponibles al ejecutar consultas `INSERT SELECT` distribuidas en paralelo. [#58931](https://github.com/ClickHouse/ClickHouse/pull/58931) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Mostrar el nivel de log con descriptores textuales al habilitar el formato estructurado del log en JSON. [#58936](https://github.com/ClickHouse/ClickHouse/pull/58936) ([Tim Liou](https://github.com/wheatdog)).
* La interfaz MySQL ahora admite las sentencias `CAST(x AS SIGNED)` y `CAST(x AS UNSIGNED)` mediante alias de tipos de datos: `SIGNED` para Int64 y `UNSIGNED` para UInt64. Esto mejora la compatibilidad con herramientas de BI como Looker Studio. [#58954](https://github.com/ClickHouse/ClickHouse/pull/58954) ([Serge Klochkov](https://github.com/slvrtrn)).
* Se cambió el directorio de trabajo a la ruta de datos en el contenedor de Docker. [#58975](https://github.com/ClickHouse/ClickHouse/pull/58975) ([cangyin](https://github.com/cangyin)).
* Se agregó una configuración para Azure Blob Storage, `azure_max_unexpected_write_error_retries`, que también puede establecerse desde la configuración, en la sección de Azure. [#59001](https://github.com/ClickHouse/ClickHouse/pull/59001) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Permite iniciar el servidor con una tabla de lago de datos dañada. Cierra [#58625](https://github.com/ClickHouse/ClickHouse/issues/58625). [#59080](https://github.com/ClickHouse/ClickHouse/pull/59080) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite ignorar la evolución del schema en el table engine `Iceberg` y leer todos los datos usando el schema especificado por el usuario al crear la tabla o el schema más reciente analizado a partir de los metadatos al crear la tabla. Esto se hace mediante la configuración `iceberg_engine_ignore_schema_evolution`, que está deshabilitada de forma predeterminada. Tenga en cuenta que habilitar esta configuración puede dar lugar a resultados incorrectos, ya que, en caso de que el schema haya evolucionado, todos los data files se leerán usando el mismo schema. [#59133](https://github.com/ClickHouse/ClickHouse/pull/59133) ([Kruglov Pavel](https://github.com/Avogar)).
* Prohíbe las operaciones mutables (`INSERT`/`ALTER`/`OPTIMIZE`/...) en almacenamientos de solo lectura o de escritura única con un error `TABLE_IS_READ_ONLY` adecuado (para evitar residuos). Evita dejar residuos en discos de escritura única (`format_version.txt`) durante `CREATE`/`ATTACH`. Ignora `DROP` para `ReplicatedMergeTree` (al igual que para `MergeTree`). Corrige la iteración sobre `s3_plain` (`MetadataStorageFromPlainObjectStorage::iterateDirectory`). Ten en cuenta que el disco de solo lectura es `web` y el de escritura única es `s3_plain`. [#59170](https://github.com/ClickHouse/ClickHouse/pull/59170) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un error en la columna experimental `_block_number` que podía provocar un error lógico en una combinación compleja de `ALTER`s y `merge`s. Corrige [#56202](https://github.com/ClickHouse/ClickHouse/issues/56202). Sustituye [#58601](https://github.com/ClickHouse/ClickHouse/issues/58601). [#59295](https://github.com/ClickHouse/ClickHouse/pull/59295) ([alesapin](https://github.com/alesapin)).
* La UI de Play reconoce cuando se devuelve una excepción dentro de JSON. Ajuste para [#52853](https://github.com/ClickHouse/ClickHouse/issues/52853). [#59303](https://github.com/ClickHouse/ClickHouse/pull/59303) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El manejador HTTP `/binary` permite especificar el usuario, el host y, opcionalmente, la contraseña en la cadena de consulta. [#59311](https://github.com/ClickHouse/ClickHouse/pull/59311) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade compatibilidad con copias de seguridad para tablas comprimidas en memoria. Esto cierra [#57893](https://github.com/ClickHouse/ClickHouse/issues/57893). [#59315](https://github.com/ClickHouse/ClickHouse/pull/59315) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió compatibilidad con la cláusula `FORMAT` en las consultas `BACKUP` y `RESTORE`. [#59338](https://github.com/ClickHouse/ClickHouse/pull/59338) ([Vitaly Baranov](https://github.com/vitlibar)).
* La función `concatWithSeparator` ahora admite tipos de argumento arbitrarios (en lugar de solo argumentos `String` y `FixedString`). Por ejemplo, `SELECT concatWithSeparator('.', 'number', 1)` ahora devuelve `number.1`. [#59341](https://github.com/ClickHouse/ClickHouse/pull/59341) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Mejorar los alias del binario de ClickHouse (ahora `ch`/`clickhouse` es `clickhouse-local` o `clickhouse`, según los argumentos) y añadir autocompletado de bash para los nuevos alias. [#58344](https://github.com/ClickHouse/ClickHouse/pull/58344) ([Azat Khuzhin](https://github.com/azat)).
* Añadir una comprobación de cambios de configuraciones en CI para verificar que todos los cambios de configuraciones queden reflejados en el historial de cambios de configuraciones. [#58555](https://github.com/ClickHouse/ClickHouse/pull/58555) ([Kruglov Pavel](https://github.com/Avogar)).
* Usar tablas adjuntas directamente desde S3 en pruebas con estado. [#58791](https://github.com/ClickHouse/ClickHouse/pull/58791) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Guardar el `fuzzer.log` completo como un archivo en lugar de solo las últimas 100k líneas. `tail -n 100000` a menudo elimina líneas con definiciones de tablas. Ejemplo:. [#58821](https://github.com/ClickHouse/ClickHouse/pull/58821) ([Dmitry Novik](https://github.com/novikd)).
* Habilitar Rust en macOS con Aarch64 (esto añadirá búsqueda difusa en el cliente con skim y el lenguaje PRQL, aunque no creo que haya gente que ejecute ClickHouse sobre Darwin, así que diría que es principalmente por la búsqueda difusa en el cliente). [#59272](https://github.com/ClickHouse/ClickHouse/pull/59272) ([Azat Khuzhin](https://github.com/azat)).
* Corregir un problema de agregación en clústeres mixtos x86\_64 y ARM [#59132](https://github.com/ClickHouse/ClickHouse/pull/59132) ([Harry Lee](https://github.com/HarryLeeIBM)).

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

* Se añadió la conversión de las claves de join para LowCardinality anidado [#51550](https://github.com/ClickHouse/ClickHouse/pull/51550) ([vdimir](https://github.com/vdimir)).
* Aplanar solo el verdadero tipo Nested si flatten\_nested=1, no todos los Array(Tuple) [#56132](https://github.com/ClickHouse/ClickHouse/pull/56132) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un error con las proyecciones y el ajuste `aggregate_functions_null_for_empty` durante la inserción. [#56944](https://github.com/ClickHouse/ClickHouse/pull/56944) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió una posible excepción debida a un UUID de perfil desactualizado [#57263](https://github.com/ClickHouse/ClickHouse/pull/57263) ([Vasily Nemkov](https://github.com/Enmk)).
* Se corrigió el funcionamiento de los búferes de lectura en StreamingFormatExecutor [#57438](https://github.com/ClickHouse/ClickHouse/pull/57438) ([Kruglov Pavel](https://github.com/Avogar)).
* Ignorar las vistas materializadas cuya tabla de destino se haya eliminado durante el envío a vistas [#57520](https://github.com/ClickHouse/ClickHouse/pull/57520) ([Kruglov Pavel](https://github.com/Avogar)).
* Eliminar una posible condición de carrera entre ALTER\_METADATA y MERGE\_PARTS [#57755](https://github.com/ClickHouse/ClickHouse/pull/57755) ([Azat Khuzhin](https://github.com/azat)).
* Corregir el error en el orden de las expresiones en GROUP BY con rollup [#57786](https://github.com/ClickHouse/ClickHouse/pull/57786) ([Chen768959](https://github.com/Chen768959)).
* Una corrección para la obsoleta funcionalidad de replicación "zero-copy": corrige blobs perdidos tras eliminar una réplica con partes detached dañadas [#58333](https://github.com/ClickHouse/ClickHouse/pull/58333) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Permitir que los usuarios trabajen con enlaces simbólicos en user\_files\_path [#58447](https://github.com/ClickHouse/ClickHouse/pull/58447) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige un bloqueo cuando la tabla graphite no tiene una función agg [#58453](https://github.com/ClickHouse/ClickHouse/pull/58453) ([Duc Canh Le](https://github.com/canhld94)).
* Retrasar la lectura de StorageKafka para permitir múltiples lecturas en vistas materializadas [#58477](https://github.com/ClickHouse/ClickHouse/pull/58477) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige un caso absurdo de partes superpuestas [#58482](https://github.com/ClickHouse/ClickHouse/pull/58482) ([Alexander Tokmakov](https://github.com/tavplubix)).
* MergeTreePrefetchedReadPool deshabilitado para consultas únicamente con LIMIT [#58505](https://github.com/ClickHouse/ClickHouse/pull/58505) ([Maksim Kita](https://github.com/kitaisreal)).
* Habilitación de las bases de datos ordinarias durante la restauración [#58520](https://github.com/ClickHouse/ClickHouse/pull/58520) ([Jihyuk Bok](https://github.com/tomahawk28)).
* Se corrige la lectura del threadpool de Apache Hive para ORC/Parquet/... [#58537](https://github.com/ClickHouse/ClickHouse/pull/58537) ([sunny](https://github.com/sunny19930321)).
* Ocultar las credenciales en la columna `base_backup_name` de `system.backup_log` [#58550](https://github.com/ClickHouse/ClickHouse/pull/58550) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* `toStartOfInterval` para redondear valores en milisegundos y microsegundos [#58557](https://github.com/ClickHouse/ClickHouse/pull/58557) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Desactivar `max_joined_block_rows` en ConcurrentHashJoin [#58595](https://github.com/ClickHouse/ClickHouse/pull/58595) ([vdimir](https://github.com/vdimir)).
* Se corrige el join que usa Nullable en el analyzer antiguo [#58596](https://github.com/ClickHouse/ClickHouse/pull/58596) ([vdimir](https://github.com/vdimir)).
* `makeDateTime64`: Admitir un argumento de fracción no constante [#58597](https://github.com/ClickHouse/ClickHouse/pull/58597) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige una posible desreferenciación de NULL durante la simbolización de frames en línea [#58607](https://github.com/ClickHouse/ClickHouse/pull/58607) ([Azat Khuzhin](https://github.com/azat)).
* Mejora el aislamiento de las entradas de la caché de consultas al recrear usuarios o cambiar de rol [#58611](https://github.com/ClickHouse/ClickHouse/pull/58611) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigió el análisis defectuoso de la clave de partición al realizar la optimización de proyecciones [#58638](https://github.com/ClickHouse/ClickHouse/pull/58638) ([Amos Bird](https://github.com/amosbird)).
* Caché de consultas: se corrige la cuota por usuario [#58731](https://github.com/ClickHouse/ClickHouse/pull/58731) ([Robert Schulze](https://github.com/rschu1ze)).
* Corregir el particionado de flujos en funciones de ventana paralelas [#58739](https://github.com/ClickHouse/ClickHouse/pull/58739) ([Dmitry Novik](https://github.com/novikd)).
* Se corrigió la doble llamada a destroy al lanzar una excepción en addBatchLookupTable8 [#58745](https://github.com/ClickHouse/ClickHouse/pull/58745) ([Raúl Marín](https://github.com/Algunenano)).
* Evitar procesar solicitudes en Keeper durante el apagado [#58765](https://github.com/ClickHouse/ClickHouse/pull/58765) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige una desreferenciación de puntero nulo en `SlabsPolygonIndex::find` [#58771](https://github.com/ClickHouse/ClickHouse/pull/58771) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrigió la función JSONExtract para columnas LowCardinality(Nullable) [#58808](https://github.com/ClickHouse/ClickHouse/pull/58808) ([vdimir](https://github.com/vdimir)).
* Una corrección para la acumulación inesperada de uso de memoria al crear una gran cantidad de tablas mediante CREATE y DROP. [#58831](https://github.com/ClickHouse/ClickHouse/pull/58831) ([Maksim Kita](https://github.com/kitaisreal)).
* Almacenamiento File/Log de lectura múltiple en mv [#58877](https://github.com/ClickHouse/ClickHouse/pull/58877) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Restricción del ID de la clave de acceso de S3. [#58900](https://github.com/ClickHouse/ClickHouse/pull/58900) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige un posible bloqueo en clickhouse-local al cargar sugerencias [#58907](https://github.com/ClickHouse/ClickHouse/pull/58907) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un bloqueo cuando se usa `indexHint` [#58911](https://github.com/ClickHouse/ClickHouse/pull/58911) ([Dmitry Novik](https://github.com/novikd)).
* Se corrigió un problema en StorageURL por el que se perdían los encabezados al reiniciar el servidor [#58933](https://github.com/ClickHouse/ClickHouse/pull/58933) ([Michael Kolupaev](https://github.com/al13n321)).
* Analizador: se corrige la sustitución del almacenamiento por un bloque de inserción [#58958](https://github.com/ClickHouse/ClickHouse/pull/58958) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige el seek en ReadBufferFromZipArchive [#58966](https://github.com/ClickHouse/ClickHouse/pull/58966) ([Michael Kolupaev](https://github.com/al13n321)).
* Una corrección para los índices invertidos experimentales (no los use en producción): `DROP INDEX` de un índice invertido ahora elimina todos los archivos pertinentes del almacenamiento persistente [#59040](https://github.com/ClickHouse/ClickHouse/pull/59040) ([mochi](https://github.com/MochiXu)).
* Se corrige una condición de carrera en query\_factories\_info [#59049](https://github.com/ClickHouse/ClickHouse/pull/59049) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Deshabilitar el reintento ante el error "Too many redirects" [#59099](https://github.com/ClickHouse/ClickHouse/pull/59099) ([skyoct](https://github.com/skyoct)).
* Se corrige el interbloqueo al apagar una base de datos no iniciada [#59137](https://github.com/ClickHouse/ClickHouse/pull/59137) ([Sergei Trifonov](https://github.com/serxa)).
* Corrección de LIMIT BY y LIMIT en una consulta distribuida [#59153](https://github.com/ClickHouse/ClickHouse/pull/59153) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige un fallo al usar una zona horaria Nullable con `toString` [#59190](https://github.com/ClickHouse/ClickHouse/pull/59190) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige una terminación abrupta en los metadatos de Iceberg provocada por rutas de archivo no válidas [#59275](https://github.com/ClickHouse/ClickHouse/pull/59275) ([Kruglov Pavel](https://github.com/Avogar)).
* Corregir el nombre de la arquitectura en la selección del objetivo de Rust [#59307](https://github.com/ClickHouse/ClickHouse/pull/59307) ([p1rattttt](https://github.com/p1rattttt)).
* Se corrige un error lógico relacionado con el "conjunto "not-ready"" al consultar `system.tables` mediante una subconsulta en la cláusula IN. [#59351](https://github.com/ClickHouse/ClickHouse/pull/59351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

<div id="changelog-for-2023">
  ## [Registro de cambios de 2023](/docs/es/resources/changelogs/oss/2023)
</div>
