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

# Registro de cambios de 2023

> Registro de cambios de 2023

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

**[Lanzamiento de ClickHouse v23.12, 2023-12-28](#2312)**<br />
**[Lanzamiento de ClickHouse v23.11, 2023-12-06](#2311)**<br />
**[Lanzamiento de ClickHouse v23.10, 2023-11-02](#2310)**<br />
**[Lanzamiento de ClickHouse v23.9, 2023-09-28](#239)**<br />
**[Lanzamiento de ClickHouse v23.8 LTS, 2023-08-31](#238)**<br />
**[Lanzamiento de ClickHouse v23.7, 2023-07-27](#237)**<br />
**[Lanzamiento de ClickHouse v23.6, 2023-06-30](#236)**<br />
**[Lanzamiento de ClickHouse v23.5, 2023-06-08](#235)**<br />
**[Lanzamiento de ClickHouse v23.4, 2023-04-26](#234)**<br />
**[Lanzamiento de ClickHouse v23.3 LTS, 2023-03-30](#233)**<br />
**[Lanzamiento de ClickHouse v23.2, 2023-02-23](#232)**<br />
**[Lanzamiento de ClickHouse v23.1, 2023-01-25](#231)**<br />
**[Registro de cambios de 2022](/es/resources/changelogs/oss/2022)**<br />

### <a id="2312" /> Lanzamiento de ClickHouse 23.12, 2023-12-28. [Presentación](https://presentations.clickhouse.com/2023-release-23.12/), [Vídeo](https://www.youtube.com/watch?v=7TLuT6gt0PQ)

<Frame>
  <iframe src="https://www.youtube.com/embed/7TLuT6gt0PQ" 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>

* Corrige la comprobación de funciones no deterministas en expresiones TTL. Anteriormente, en algunos casos era posible crear una expresión TTL con funciones no deterministas, lo que podía provocar un comportamiento indefinido más adelante. Esto corrige [#37250](https://github.com/ClickHouse/ClickHouse/issues/37250). De forma predeterminada, no se permiten expresiones TTL que no dependan de ninguna columna de una tabla. Puede volver a permitirse con `SET allow_suspicious_ttl_expressions = 1` o `SET compatibility = '23.11'`. Cierra [#37286](https://github.com/ClickHouse/ClickHouse/issues/37286). [#51858](https://github.com/ClickHouse/ClickHouse/pull/51858) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La configuración de MergeTree `clean_deleted_rows` está obsoleta y ya no tiene ningún efecto. La palabra clave `CLEANUP` para `OPTIMIZE` no está permitida de forma predeterminada (puede habilitarse con la configuración `allow_experimental_replacing_merge_with_cleanup`). [#58267](https://github.com/ClickHouse/ClickHouse/pull/58267) ([Alexander Tokmakov](https://github.com/tavplubix)). Esto corrige [#57930](https://github.com/ClickHouse/ClickHouse/issues/57930). Esto cierra [#54988](https://github.com/ClickHouse/ClickHouse/issues/54988). Esto cierra [#54570](https://github.com/ClickHouse/ClickHouse/issues/54570). Esto cierra [#50346](https://github.com/ClickHouse/ClickHouse/issues/50346). Esto cierra [#47579](https://github.com/ClickHouse/ClickHouse/issues/47579). Esta funcionalidad debe eliminarse porque no es adecuada. Debemos eliminarla lo antes posible, porque no hay otra opción. [#57932](https://github.com/ClickHouse/ClickHouse/pull/57932) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Se implementan vistas materializadas actualizables, solicitadas en [#33919](https://github.com/ClickHouse/ClickHouse/issues/33919). [#56946](https://github.com/ClickHouse/ClickHouse/pull/56946) ([Michael Kolupaev](https://github.com/al13n321), [Michael Guzov](https://github.com/koloshmet)).
* Se introduce `PASTE JOIN`, que permite a los usuarios unir tablas sin la cláusula `ON`, simplemente por número de fila. Ejemplo: `SELECT * FROM (SELECT number AS a FROM numbers(2)) AS t1 PASTE JOIN (SELECT number AS a FROM numbers(2) ORDER BY a DESC) AS t2`. [#57995](https://github.com/ClickHouse/ClickHouse/pull/57995) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* La cláusula `ORDER BY` ahora admite especificar `ALL`, lo que significa que ClickHouse ordena por todas las columnas de la cláusula `SELECT`. Ejemplo: `SELECT col1, col2 FROM tab WHERE [...] ORDER BY ALL`. [#57875](https://github.com/ClickHouse/ClickHouse/pull/57875) ([zhongyuankai](https://github.com/zhongyuankai)).
* Se añadió un nuevo comando de mutación `ALTER TABLE <table> APPLY DELETED MASK`, que permite forzar la aplicación de la máscara generada por la eliminación ligera y eliminar del disco las filas marcadas como eliminadas. [#57433](https://github.com/ClickHouse/ClickHouse/pull/57433) ([Anton Popov](https://github.com/CurtizJ)).
* El manejador `/binary` abre un visor de los símbolos del binario de ClickHouse. [#58211](https://github.com/ClickHouse/ClickHouse/pull/58211) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió una nueva función SQL, `sqid`, para generar Sqids ([https://sqids.org/](https://sqids.org/)); ejemplo: `SELECT sqid(125, 126)`. [#57512](https://github.com/ClickHouse/ClickHouse/pull/57512) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añade una nueva función `seriesPeriodDetectFFT` para detectar el período de una serie mediante FFT. [#57574](https://github.com/ClickHouse/ClickHouse/pull/57574) ([Bhavna Jindal](https://github.com/bhavnajindal)).
* Se añade un endpoint HTTP para comprobar si Keeper está listo para aceptar tráfico. [#55876](https://github.com/ClickHouse/ClickHouse/pull/55876) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Añade el modo 'union' para la inferencia de esquemas. En este modo, el esquema de la tabla resultante es la unión de los esquemas de todos los archivos (es decir, el esquema se infiere para cada archivo). El modo de inferencia de esquemas se controla mediante la configuración `schema_inference_mode`, con dos valores posibles: `default` y `union`. Cierra [#55428](https://github.com/ClickHouse/ClickHouse/issues/55428). [#55892](https://github.com/ClickHouse/ClickHouse/pull/55892) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añade la nueva configuración `input_format_csv_try_infer_numbers_from_strings`, que permite inferir números a partir de cadenas en formato CSV. Cierra [#56455](https://github.com/ClickHouse/ClickHouse/issues/56455). [#56859](https://github.com/ClickHouse/ClickHouse/pull/56859) ([Kruglov Pavel](https://github.com/Avogar)).
* Cuando el número de bases de datos o tablas supera un umbral configurable, se muestra una advertencia al usuario. [#57375](https://github.com/ClickHouse/ClickHouse/pull/57375) ([凌涛](https://github.com/lingtaolf)).
* El diccionario con layout `HASHED_ARRAY` (y `COMPLEX_KEY_HASHED_ARRAY`) admite `SHARDS`, de forma similar a `HASHED`. [#57544](https://github.com/ClickHouse/ClickHouse/pull/57544) ([vdimir](https://github.com/vdimir)).
* Se añaden métricas asíncronas para el total de bytes de la clave primaria y el total de bytes de la clave primaria asignados en memoria. [#57551](https://github.com/ClickHouse/ClickHouse/pull/57551) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añadió la función `SHA512_256`. [#57645](https://github.com/ClickHouse/ClickHouse/pull/57645) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añade `FORMAT_BYTES` como alias de `formatReadableSize`. [#57592](https://github.com/ClickHouse/ClickHouse/pull/57592) ([Bharat Nallan](https://github.com/bharatnc)).
* Permitir pasar un token de sesión opcional a la función de tabla `s3`. [#57850](https://github.com/ClickHouse/ClickHouse/pull/57850) ([Shani Elharrar](https://github.com/shanielh)).
* Se incorpora una nueva configuración `http_make_head_request`. Si está desactivada, el motor de tabla URL no realizará una solicitud HEAD para determinar el tamaño del archivo. Esto es necesario para admitir servidores HTTP ineficientes, mal configurados o incapaces de hacerlo. [#54602](https://github.com/ClickHouse/ClickHouse/pull/54602) ([Fionera](https://github.com/fionera)).
* Ahora es posible hacer referencia a una columna ALIAS en las definiciones de índices (que no son de clave primaria) (issue [#55650](https://github.com/ClickHouse/ClickHouse/issues/55650)). Ejemplo: `CREATE TABLE tab(col UInt32, col_alias ALIAS col + 1, INDEX idx (col_alias) TYPE minmax) ENGINE = MergeTree ORDER BY col;`. [#57546](https://github.com/ClickHouse/ClickHouse/pull/57546) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió un nuevo ajuste `readonly` que puede usarse para indicar que un disco S3 es de solo lectura. Puede ser útil para crear una tabla en un disco de tipo `s3_plain` y, al mismo tiempo, tener acceso de solo lectura al bucket subyacente de S3. [#57977](https://github.com/ClickHouse/ClickHouse/pull/57977) ([Pengyuan Bian](https://github.com/bianpengyuan)).
* El análisis de la clave primaria en las tablas MergeTree ahora también se aplicará a los predicados que incluyan la columna virtual `_part_offset` (opcionalmente junto con `_part`). Esta funcionalidad puede servir como una clase especial de índice secundario. [#58224](https://github.com/ClickHouse/ClickHouse/pull/58224) ([Amos Bird](https://github.com/amosbird)).

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

* Extrae rangos de partes no superpuestas de una tabla MergeTree durante el procesamiento de FINAL. De este modo, podemos evitar la lógica adicional de FINAL para estos rangos de partes no superpuestas. En caso de que la cantidad de valores duplicados con la misma clave primaria sea baja, el rendimiento será casi el mismo que sin FINAL. Mejora el rendimiento de lectura de MergeTree FINAL cuando está configurado el ajuste `do_not_merge_across_partitions_select_final`. [#58120](https://github.com/ClickHouse/ClickHouse/pull/58120) ([Maksim Kita](https://github.com/kitaisreal)).
* Se habilitó la copia entre discos de S3 mediante una copia del lado del servidor de S3, en lugar de copiar a través del búfer. Mejora las operaciones `BACKUP/RESTORE` y el comando `clickhouse-disks copy`. [#56744](https://github.com/ClickHouse/ClickHouse/pull/56744) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Hash JOIN respeta la configuración `max_joined_block_size_rows` y no genera bloques grandes para `ALL JOIN`. [#56996](https://github.com/ClickHouse/ClickHouse/pull/56996) ([vdimir](https://github.com/vdimir)).
* Liberar antes la memoria para la agregación. Esto puede evitar una agregación externa innecesaria. [#57691](https://github.com/ClickHouse/ClickHouse/pull/57691) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Mejora del rendimiento de la serialización de cadenas. [#57717](https://github.com/ClickHouse/ClickHouse/pull/57717) ([Maksim Kita](https://github.com/kitaisreal)).
* Se admite la optimización trivial de conteo para tablas con motor `Merge`. [#57867](https://github.com/ClickHouse/ClickHouse/pull/57867) ([skyoct](https://github.com/skyoct)).
* Se optimizó la agregación en algunos casos. [#57872](https://github.com/ClickHouse/ClickHouse/pull/57872) ([Anton Popov](https://github.com/CurtizJ)).
* La función `hasAny` ahora puede aprovechar los índices de omisión de texto completo. [#57878](https://github.com/ClickHouse/ClickHouse/pull/57878) ([Jpnock](https://github.com/Jpnock)).
* Se optimizaron la función `if(cond, then, else)` (y su alias `cond ? then : else`) para usar evaluación sin bifurcaciones. [#57885](https://github.com/ClickHouse/ClickHouse/pull/57885) ([zhanglistar](https://github.com/zhanglistar)).
* MergeTree determina automáticamente la configuración `do_not_merge_across_partitions_select_final` si la expresión de la clave de partición contiene solo columnas de la expresión de clave primaria. [#58218](https://github.com/ClickHouse/ClickHouse/pull/58218) ([Maksim Kita](https://github.com/kitaisreal)).
* Se aceleran `MIN` y `MAX` para tipos nativos. [#58231](https://github.com/ClickHouse/ClickHouse/pull/58231) ([Raúl Marín](https://github.com/Algunenano)).
* Implementación de la política de caché `SLRU` para la caché del sistema de archivos. [#57076](https://github.com/ClickHouse/ClickHouse/pull/57076) ([Kseniia Sumarokova](https://github.com/kssenii)).
* El límite del número de conexiones por endpoint para los fetches en segundo plano se aumentó de `15` al valor de la configuración `background_fetches_pool_size`. - La configuración de nivel MergeTree `replicated_max_parallel_fetches_for_host` quedó obsoleta - Las configuraciones de nivel MergeTree `replicated_fetches_http_connection_timeout`, `replicated_fetches_http_send_timeout` y `replicated_fetches_http_receive_timeout` se trasladaron al nivel de servidor. - La configuración `keep_alive_timeout` se añadió a la lista de configuraciones de nivel de servidor. [#57523](https://github.com/ClickHouse/ClickHouse/pull/57523) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Hacer que las consultas a `system.filesystem_cache` consuman menos memoria. [#57687](https://github.com/ClickHouse/ClickHouse/pull/57687) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reducir el uso de memoria en la deserialización de cadenas. [#57787](https://github.com/ClickHouse/ClickHouse/pull/57787) ([Maksim Kita](https://github.com/kitaisreal)).
* Constructor más eficiente para Enum: tiene sentido cuando Enum tiene una gran cantidad de valores. [#57887](https://github.com/ClickHouse/ClickHouse/pull/57887) ([Duc Canh Le](https://github.com/canhld94)).
* Mejora en la lectura desde la caché del sistema de archivos: usar siempre el método `pread`. [#57970](https://github.com/ClickHouse/ClickHouse/pull/57970) ([Nikita Taranov](https://github.com/nickitat)).
* Se añade una optimización para la cadena AND notEquals en el optimizador de expresiones lógicas. Esta optimización solo está disponible con el Analizador experimental habilitado. [#58214](https://github.com/ClickHouse/ClickHouse/pull/58214) ([Kevin Mingtarja](https://github.com/kevinmingtarja)).

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

* Soporte para el límite flexible de memoria en Keeper. Rechazará solicitudes si el uso de memoria se acerca al máximo. [#57271](https://github.com/ClickHouse/ClickHouse/pull/57271) ([Han Fei](https://github.com/hanfei1991)). [#57699](https://github.com/ClickHouse/ClickHouse/pull/57699) ([Han Fei](https://github.com/hanfei1991)).
* Se ha hecho que las inserciones en tablas distribuidas gestionen correctamente la configuración actualizada del clúster. Cuando la lista de nodos del clúster se actualice dinámicamente, el Directory Monitor de la tabla distribuida la actualizará. [#42826](https://github.com/ClickHouse/ClickHouse/pull/42826) ([zhongyuankai](https://github.com/zhongyuankai)).
* No permitir la creación de una tabla replicada con parámetros de merge incoherentes. [#56833](https://github.com/ClickHouse/ClickHouse/pull/56833) ([Duc Canh Le](https://github.com/canhld94)).
* Mostrar el tamaño sin comprimir en `system.tables`. [#56618](https://github.com/ClickHouse/ClickHouse/issues/56618). [#57186](https://github.com/ClickHouse/ClickHouse/pull/57186) ([Chen Lixiang](https://github.com/chenlx0)).
* Añade `skip_unavailable_shards` como una configuración para las tablas `Distributed`, similar a la correspondiente configuración a nivel de consulta. Cierra [#43666](https://github.com/ClickHouse/ClickHouse/issues/43666). [#57218](https://github.com/ClickHouse/ClickHouse/pull/57218) ([Gagan Goel](https://github.com/tntnatbry)).
* La función `substring` (alias: `substr`, `mid`) ahora también puede usarse con tipos `Enum`. Antes, el primer argumento de la función tenía que ser un valor de tipo `String` o `FixedString`. Esto mejora la compatibilidad con herramientas de terceros como Tableau mediante la interfaz MySQL. [#57277](https://github.com/ClickHouse/ClickHouse/pull/57277) ([Serge Klochkov](https://github.com/slvrtrn)).
* La función `format` ahora admite tipos de argumentos arbitrarios (en lugar de solo argumentos `String` y `FixedString`). Esto es importante para poder calcular `SELECT format('The {0} to all questions is {1}', 'answer', 42)`. [#57549](https://github.com/ClickHouse/ClickHouse/pull/57549) ([Robert Schulze](https://github.com/rschu1ze)).
* Permite usar la función `date_trunc` con un primer argumento que no distingue entre mayúsculas y minúsculas. Ahora se admiten ambas variantes: `SELECT date_trunc('day', now())` y `SELECT date_trunc('DAY', now())`. [#57624](https://github.com/ClickHouse/ClickHouse/pull/57624) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Sugerencias más útiles cuando una tabla no existe. [#57342](https://github.com/ClickHouse/ClickHouse/pull/57342) ([Bharat Nallan](https://github.com/bharatnc)).
* Permite sobrescribir las configuraciones del servidor `max_partition_size_to_drop` y `max_table_size_to_drop` durante la consulta. [#57452](https://github.com/ClickHouse/ClickHouse/pull/57452) ([Jordi Villar](https://github.com/jrdi)).
* Mejora ligera en la inferencia de tuplas sin nombre en formatos JSON. [#57751](https://github.com/ClickHouse/ClickHouse/pull/57751) ([Kruglov Pavel](https://github.com/Avogar)).
* Añadir compatibilidad con el indicador de solo lectura al conectarse a Keeper (corrige [#53749](https://github.com/ClickHouse/ClickHouse/issues/53749)). [#57479](https://github.com/ClickHouse/ClickHouse/pull/57479) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Corrige posibles envíos distribuidos atascados debido a "No such file or directory" (durante la recuperación de un lote desde disco). Corrige posibles problemas con `error_count` de `system.distribution_queue` (en caso de que `distributed_directory_monitor_max_sleep_time_ms` sea > 5 min). Introduce un evento de perfil para rastrear fallos de INSERT asíncrono: `DistributedAsyncInsertionFailures`. [#57480](https://github.com/ClickHouse/ClickHouse/pull/57480) ([Azat Khuzhin](https://github.com/azat)).
* Se añade compatibilidad con columnas generadas y valores predeterminados de columnas de PostgreSQL en `MaterializedPostgreSQL` (funcionalidad experimental). Cierra [#40449](https://github.com/ClickHouse/ClickHouse/issues/40449). [#57568](https://github.com/ClickHouse/ClickHouse/pull/57568) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite aplicar algunos cambios de configuración de la caché del sistema de archivos sin reiniciar el servidor. [#57578](https://github.com/ClickHouse/ClickHouse/pull/57578) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Manejo correcto de la estructura de una tabla de PostgreSQL con un `array` vacío. [#57618](https://github.com/ClickHouse/ClickHouse/pull/57618) ([Mike Kot](https://github.com/myrrc)).
* Expone como métrica `ClickHouseErrorMetric_ALL` el número total de errores ocurridos desde el último reinicio del servidor. [#57627](https://github.com/ClickHouse/ClickHouse/pull/57627) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permitir nodos en el archivo de configuración con referencias `from_env`/`from_zk` y elementos no vacíos con replace=1. [#57628](https://github.com/ClickHouse/ClickHouse/pull/57628) ([Azat Khuzhin](https://github.com/azat)).
* Una función de tabla `fuzzJSON` que permite generar una gran cantidad de JSON malformado para pruebas de fuzzing. [#57646](https://github.com/ClickHouse/ClickHouse/pull/57646) ([Julia Kartseva](https://github.com/jkartseva)).
* Se permite la conversión de IPv6 a UInt128 y la aritmética binaria. [#57707](https://github.com/ClickHouse/ClickHouse/pull/57707) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se añade un ajuste para `async inserts deduplication cache` - cuánto tiempo se espera antes de actualizar la caché. Se depreca el ajuste `async_block_ids_cache_min_update_interval_ms`. Ahora la caché se actualiza solo en caso de conflictos. [#57743](https://github.com/ClickHouse/ClickHouse/pull/57743) ([alesapin](https://github.com/alesapin)).
* La función `sleep()` ahora puede cancelarse con `KILL QUERY`. [#57746](https://github.com/ClickHouse/ClickHouse/pull/57746) ([Vitaly Baranov](https://github.com/vitlibar)).
* Prohíbe las consultas `CREATE TABLE ... AS SELECT` para los motores de tabla `Replicated` en la base de datos experimental `Replicated`, ya que no son compatibles. Referencia [#35408](https://github.com/ClickHouse/ClickHouse/issues/35408). [#57796](https://github.com/ClickHouse/ClickHouse/pull/57796) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió y mejoró la transformación de consultas para bases de datos externas a fin de obtener recursivamente todos los predicados compatibles. [#57888](https://github.com/ClickHouse/ClickHouse/pull/57888) ([flynn](https://github.com/ucasfl)).
* Se admite la recarga dinámica del tamaño de la caché del filesystem. Cierra [#57866](https://github.com/ClickHouse/ClickHouse/issues/57866). [#57897](https://github.com/ClickHouse/ClickHouse/pull/57897) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Admite correctamente `system.stack_trace` para hilos con SIGRTMIN bloqueado (estos hilos pueden existir en bibliotecas externas de baja calidad, como Apache rdkafka). [#57907](https://github.com/ClickHouse/ClickHouse/pull/57907) ([Azat Khuzhin](https://github.com/azat)). Y además envía la señal a los hilos solo si no está bloqueada, para evitar esperar `storage_system_stack_trace_pipe_read_timeout_ms` cuando no tiene ningún sentido. [#58136](https://github.com/ClickHouse/ClickHouse/pull/58136) ([Azat Khuzhin](https://github.com/azat)).
* Se toleran fallos de Keeper en la comprobación de la inserción con cuórum. [#57986](https://github.com/ClickHouse/ClickHouse/pull/57986) ([Raúl Marín](https://github.com/Algunenano)).
* Se añadió el RSS máximo/pico (`MemoryResidentMax`) a system.asynchronous\_metrics. [#58095](https://github.com/ClickHouse/ClickHouse/pull/58095) ([Azat Khuzhin](https://github.com/azat)).
* Este PR permite usar enlaces de estilo S3 (`https://` y `s3://`) sin especificar la región aunque no sea la predeterminada. También detecta la región correcta si el usuario indicó una incorrecta. [#58148](https://github.com/ClickHouse/ClickHouse/pull/58148) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `clickhouse-format --obfuscate` reconocerá Settings, MergeTreeSettings y las zonas horarias, y conservará sus nombres sin cambios. [#58179](https://github.com/ClickHouse/ClickHouse/pull/58179) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la función explícita `finalize()` en `ZipArchiveWriter`. Se simplificó el código excesivamente complejo de `ZipArchiveWriter`. Esto corrige [#58074](https://github.com/ClickHouse/ClickHouse/issues/58074). [#58202](https://github.com/ClickHouse/ClickHouse/pull/58202) ([Vitaly Baranov](https://github.com/vitlibar)).
* Hacer que las cachés con la misma ruta usen los mismos objetos de caché. Este comportamiento ya existía, pero dejó de funcionar en la versión 23.4. Si dichas cachés con la misma ruta tienen un conjunto distinto de configuraciones de caché, se lanzará una excepción indicando que esto no está permitido. [#58264](https://github.com/ClickHouse/ClickHouse/pull/58264) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Réplicas paralelas (función experimental): ajustes más intuitivos [#57542](https://github.com/ClickHouse/ClickHouse/pull/57542) ([Igor Nikonov](https://github.com/devcrafter)).
* Réplicas paralelas (funcionalidad experimental): mejora en la gestión de las respuestas a los anuncios [#57749](https://github.com/ClickHouse/ClickHouse/pull/57749) ([Igor Nikonov](https://github.com/devcrafter)).
* Réplicas paralelas (característica experimental): respetan mejor `min_number_of_marks` en `ParallelReplicasReadingCoordinator` [#57763](https://github.com/ClickHouse/ClickHouse/pull/57763) ([Nikita Taranov](https://github.com/nickitat)).
* Réplicas paralelas (función experimental): desactivar las réplicas paralelas con IN (subconsulta) [#58133](https://github.com/ClickHouse/ClickHouse/pull/58133) ([Igor Nikonov](https://github.com/devcrafter)).
* Réplicas paralelas (característica experimental): se añade el evento de perfil 'ParallelReplicasUsedCount' [#58173](https://github.com/ClickHouse/ClickHouse/pull/58173) ([Igor Nikonov](https://github.com/devcrafter)).
* Las solicitudes que no sean POST, como HEAD, serán de solo lectura, al igual que GET. [#58060](https://github.com/ClickHouse/ClickHouse/pull/58060) ([San](https://github.com/santrancisco)).
* Se añade la columna `bytes_uncompressed` a `system.part_log` [#58167](https://github.com/ClickHouse/ClickHouse/pull/58167) ([Jordi Villar](https://github.com/jrdi)).
* Añadido el nombre de la copia de seguridad base a las tablas `system.backups` y `system.backup_log` [#58178](https://github.com/ClickHouse/ClickHouse/pull/58178) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Se añadió compatibilidad con la especificación de parámetros de consulta en la línea de comandos en clickhouse-local [#58210](https://github.com/ClickHouse/ClickHouse/pull/58210) ([Pradeep Chhetri](https://github.com/chhetripradeep)).

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

* Aleatorización de más ajustes [#39663](https://github.com/ClickHouse/ClickHouse/pull/39663) ([Anton Popov](https://github.com/CurtizJ)).
* Aleatorización de optimizaciones deshabilitadas en CI [#57315](https://github.com/ClickHouse/ClickHouse/pull/57315) ([Raúl Marín](https://github.com/Algunenano)).
* Permitir el uso de motores de tabla y funciones relacionados con Azure en macOS. [#51866](https://github.com/ClickHouse/ClickHouse/pull/51866) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* ClickHouse Fast Test ahora usa Musl en lugar de GLibc. [#57711](https://github.com/ClickHouse/ClickHouse/pull/57711) ([Alexey Milovidov](https://github.com/alexey-milovidov)). La compilación totalmente estática con Musl está disponible para su descarga desde CI.
* Ejecutar ClickBench para cada commit. Esto cierra [#57708](https://github.com/ClickHouse/ClickHouse/issues/57708). [#57712](https://github.com/ClickHouse/ClickHouse/pull/57712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Eliminar el uso de la perjudicial función `select` de C/POSIX en bibliotecas externas. [#57467](https://github.com/ClickHouse/ClickHouse/pull/57467) ([Igor Nikonov](https://github.com/devcrafter)).
* Los ajustes disponibles solo en ClickHouse Cloud también estarán presentes en la compilación de código abierto de ClickHouse por comodidad. [#57638](https://github.com/ClickHouse/ClickHouse/pull/57638) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Se corrigió una posible alteración del orden de ordenación en TTL GROUP BY [#49103](https://github.com/ClickHouse/ClickHouse/pull/49103) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrección: en la estrategia de buckets divididos de `lttb`, el primer y el último bucket deben contener solo un punto [#57003](https://github.com/ClickHouse/ClickHouse/pull/57003) ([FFish](https://github.com/wxybear)).
* Corregido un posible interbloqueo en el formato `Template` durante la sincronización tras un error [#57004](https://github.com/ClickHouse/ClickHouse/pull/57004) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la detención prematura durante el análisis de un archivo al omitir una gran cantidad de errores [#57006](https://github.com/ClickHouse/ClickHouse/pull/57006) ([Kruglov Pavel](https://github.com/Avogar)).
* Evitar la omisión de las ACL del diccionario mediante la función de tabla `dictionary` [#57362](https://github.com/ClickHouse/ClickHouse/pull/57362) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se corrigió otro caso de error de "Set no preparado" detectado por Fuzzer. [#57423](https://github.com/ClickHouse/ClickHouse/pull/57423) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se solucionan varios problemas relacionados con el uso de `array_ndims` en PostgreSQL. [#57436](https://github.com/ClickHouse/ClickHouse/pull/57436) ([Ryan Jacobs](https://github.com/ryanmjacobs)).
* Corregida la inconsistencia de RWLock tras un timeout del bloqueo de escritura [#57454](https://github.com/ClickHouse/ClickHouse/pull/57454) ([Vitaly Baranov](https://github.com/vitlibar)). Corregida la inconsistencia de RWLock tras un timeout del bloqueo de escritura (de nuevo) [#57733](https://github.com/ClickHouse/ClickHouse/pull/57733) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrección: no excluir la columna efímera al construir la cadena de inserción en vistas [#57461](https://github.com/ClickHouse/ClickHouse/pull/57461) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* MaterializedPostgreSQL (problema experimental): se corrige el problema [#41922](https://github.com/ClickHouse/ClickHouse/issues/41922) y se añade una prueba para [#41923](https://github.com/ClickHouse/ClickHouse/issues/41923) [#57515](https://github.com/ClickHouse/ClickHouse/pull/57515) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignorar la cláusula ON CLUSTER en las consultas GRANT/REVOKE para la gestión de entidades de acceso replicadas.  [#57538](https://github.com/ClickHouse/ClickHouse/pull/57538) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se corrige un fallo en clickhouse-local [#57553](https://github.com/ClickHouse/ClickHouse/pull/57553) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrección de Hash JOIN. [#57564](https://github.com/ClickHouse/ClickHouse/pull/57564) ([vdimir](https://github.com/vdimir)).
* Se corrige un posible error en el origen PostgreSQL [#57567](https://github.com/ClickHouse/ClickHouse/pull/57567) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige el ajuste de tipos en Hash JOIN para LowCardinality anidado. [#57614](https://github.com/ClickHouse/ClickHouse/pull/57614) ([vdimir](https://github.com/vdimir)).
* Evita que `system.stack_trace` se bloquee al impedir correctamente su lectura en paralelo. [#57641](https://github.com/ClickHouse/ClickHouse/pull/57641) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un error en la agregación de columnas dispersas con `any(...) RESPECT NULL` [#57710](https://github.com/ClickHouse/ClickHouse/pull/57710) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el análisis sintáctico de operadores unarios [#57713](https://github.com/ClickHouse/ClickHouse/pull/57713) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige la carga de dependencias del motor de tabla experimental `MaterializedPostgreSQL`. [#57754](https://github.com/ClickHouse/ClickHouse/pull/57754) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigen los reintentos en nodos desconectados para BACKUP/RESTORE ON CLUSTER [#57764](https://github.com/ClickHouse/ClickHouse/pull/57764) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el resultado de la agregación externa en caso de una proyección parcialmente materializada [#57790](https://github.com/ClickHouse/ClickHouse/pull/57790) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el merge en funciones de agregación con el combinador `*Map` [#57795](https://github.com/ClickHouse/ClickHouse/pull/57795) ([Anton Popov](https://github.com/CurtizJ)).
* Deshabilitar `system.kafka_consumers` porque contiene un error. [#57822](https://github.com/ClickHouse/ClickHouse/pull/57822) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el soporte de claves LowCardinality en Merge JOIN. [#57827](https://github.com/ClickHouse/ClickHouse/pull/57827) ([vdimir](https://github.com/vdimir)).
* Una corrección de `InterpreterCreateQuery` relacionada con el bloque sample. [#57855](https://github.com/ClickHouse/ClickHouse/pull/57855) ([Maksim Kita](https://github.com/kitaisreal)).
* Se ignoraba `addresses_expr` en las colecciones con nombre de PostgreSQL. [#57874](https://github.com/ClickHouse/ClickHouse/pull/57874) ([joelynch](https://github.com/joelynch)).
* Se corrigió un acceso inválido a memoria en BLAKE3 (Rust) [#57876](https://github.com/ClickHouse/ClickHouse/pull/57876) ([Raúl Marín](https://github.com/Algunenano)). Después, se reescribió de Rust a C++ para mejorar la [seguridad de la memoria](https://www.memorysafety.org/). [#57994](https://github.com/ClickHouse/ClickHouse/pull/57994) ([Raúl Marín](https://github.com/Algunenano)).
* Normalización de nombres de funciones en `CREATE INDEX` [#57906](https://github.com/ClickHouse/ClickHouse/pull/57906) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrigió el manejo de las réplicas no disponibles antes de que se produjera la primera solicitud [#57933](https://github.com/ClickHouse/ClickHouse/pull/57933) ([Nikita Taranov](https://github.com/nickitat)).
* Corregir la clasificación incorrecta de los alias literales [#57988](https://github.com/ClickHouse/ClickHouse/pull/57988) ([Chen768959](https://github.com/Chen768959)).
* Se corrige el preprocesamiento no válido en Keeper [#58069](https://github.com/ClickHouse/ClickHouse/pull/58069) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige un desbordamiento de enteros en la biblioteca `Poco`, relacionado con `UTF32Encoding` [#58073](https://github.com/ClickHouse/ClickHouse/pull/58073) ([Andrey Fedotov](https://github.com/anfedotoff)).
* Corrige las réplicas paralelas (funcionalidad experimental) en presencia de una subconsulta escalar con un valor entero de gran tamaño [#58118](https://github.com/ClickHouse/ClickHouse/pull/58118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige `accurateCastOrNull` para `DateTime` fuera de rango [#58139](https://github.com/ClickHouse/ClickHouse/pull/58139) ([Andrey Zvonov](https://github.com/zvonand)).
* Se corrigió un posible error `PARAMETER_OUT_OF_BOUND` durante la lectura de subcolumnas desde una parte wide en MergeTree [#58175](https://github.com/ClickHouse/ClickHouse/pull/58175) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige una ralentización en CREATE VIEW con un número enorme de subconsultas [#58220](https://github.com/ClickHouse/ClickHouse/pull/58220) ([Tao Wang](https://github.com/wangtZJU)).
* Se corrige el parsing paralelo de JSONCompactEachRow [#58181](https://github.com/ClickHouse/ClickHouse/pull/58181) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#58250](https://github.com/ClickHouse/ClickHouse/pull/58250) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="2311" /> Lanzamiento de ClickHouse 23.11, 2023-12-06. [Presentación](https://presentations.clickhouse.com/2023-release-23.11/), [Vídeo](https://www.youtube.com/watch?v=1HJdjOH4Eis)

<Frame>
  <iframe src="https://www.youtube.com/embed/1HJdjOH4Eis" 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 archivo de configuración del servidor de ClickHouse predeterminado ahora tiene habilitados `access_management` (gestión de usuarios mediante consultas SQL) y `named_collection_control` (gestión de named collection mediante consultas SQL) para el usuario `default`. Esto cierra [#56482](https://github.com/ClickHouse/ClickHouse/issues/56482). [#56619](https://github.com/ClickHouse/ClickHouse/pull/56619) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Varias mejoras para `RESPECT NULLS`/`IGNORE NULLS` en funciones de ventana. Si las usa como funciones de agregación y almacena los estados de agregación de funciones con estos modificadores, podrían volverse incompatibles. [#57189](https://github.com/ClickHouse/ClickHouse/pull/57189) ([Raúl Marín](https://github.com/Algunenano)).
* Se elimina la optimización `optimize_move_functions_out_of_any`. [#57190](https://github.com/ClickHouse/ClickHouse/pull/57190) ([Raúl Marín](https://github.com/Algunenano)).
* Los Formatter `%l`/`%k`/`%c` de la función `parseDateTime` ahora pueden analizar horas/meses sin ceros a la izquierda; por ejemplo, `select parseDateTime('2023-11-26 8:14', '%F %k:%i')` ahora funciona. Establezca `parsedatetime_parse_without_leading_zeros = 0` para restaurar el comportamiento anterior, que requería dos dígitos. La función `formatDateTime` ahora también puede imprimir horas/meses sin ceros a la izquierda. Esto se controla con la configuración `formatdatetime_format_without_leading_zeros`, pero está desactivado de forma predeterminada para no romper los casos de uso existentes. [#55872](https://github.com/ClickHouse/ClickHouse/pull/55872) ([Azat Khuzhin](https://github.com/azat)).
* Ya no se puede usar la función de agregación `avgWeighted` con argumentos de tipo `Decimal`. Solución alternativa: convierta los argumentos a `Float64`. Esto cierra [#43928](https://github.com/ClickHouse/ClickHouse/issues/43928). Esto cierra [#31768](https://github.com/ClickHouse/ClickHouse/issues/31768). Esto cierra [#56435](https://github.com/ClickHouse/ClickHouse/issues/56435). Si ha usado esta función dentro de vistas materializadas o proyecciones con argumentos `Decimal`, póngase en contacto con [support@clickhouse.com](mailto:support@clickhouse.com). Se corrigió un error en la función de agregación `sumMap` y pasó a ser aproximadamente entre 1.5 y 2 veces más lenta. No importa porque la función es basura de todos modos. Esto cierra [#54955](https://github.com/ClickHouse/ClickHouse/issues/54955). Esto cierra [#53134](https://github.com/ClickHouse/ClickHouse/issues/53134). Esto cierra [#55148](https://github.com/ClickHouse/ClickHouse/issues/55148). Se corrige un error en la función `groupArraySample`: usaba la misma random seed en caso de que se generara más de un estado de agregación en una consulta. [#56350](https://github.com/ClickHouse/ClickHouse/pull/56350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Se añadió la configuración del servidor `async_load_databases` para la carga asíncrona de bases de datos y tablas. Acelera el tiempo de arranque del servidor. Se aplica a las bases de datos con motores `Ordinary`, `Atomic` y `Replicated`. Sus tablas cargan los metadatos de forma asíncrona. Una consulta a una tabla aumenta la prioridad de la tarea de carga y espera a que esta finalice. Se añadió una nueva tabla `system.asynchronous_loader` para la introspección. [#49351](https://github.com/ClickHouse/ClickHouse/pull/49351) ([Sergei Trifonov](https://github.com/serxa)).
* Se añadió la tabla del sistema `blob_storage_log`. Permite auditar todos los datos escritos en S3 y otros sistemas de almacenamiento de objetos. [#52918](https://github.com/ClickHouse/ClickHouse/pull/52918) ([vdimir](https://github.com/vdimir)).
* Usa estadísticas para ordenar mejor las condiciones de prewhere. [#53240](https://github.com/ClickHouse/ClickHouse/pull/53240) ([Han Fei](https://github.com/hanfei1991)).
* Se añadió compatibilidad con la compresión en el protocolo de Keeper. Puede habilitarse en ClickHouse mediante la opción `use_compression` dentro de la sección `zookeeper`. Ten en cuenta que solo ClickHouse Keeper admite compresión, mientras que Apache ZooKeeper no. Resuelve [#49507](https://github.com/ClickHouse/ClickHouse/issues/49507). [#54957](https://github.com/ClickHouse/ClickHouse/pull/54957) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se incorpora la funcionalidad `storage_metadata_write_full_object_key`. Si se establece en `true`, los archivos de metadatos se escriben en el nuevo formato. Con este formato, ClickHouse almacena la clave completa del objeto remoto en el archivo de metadatos, lo que permite una mayor flexibilidad y optimización. [#55566](https://github.com/ClickHouse/ClickHouse/pull/55566) ([Sema Checherinda](https://github.com/CheSema)).
* Añade nuevas opciones de configuración y sintaxis para evitar que se sobrescriban los campos de las colecciones con nombre. Esto tiene como objetivo impedir que un usuario malicioso obtenga acceso no autorizado a secretos. [#55782](https://github.com/ClickHouse/ClickHouse/pull/55782) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Añadir la columna `hostname` a todas las tablas de log del sistema: es útil si las tablas del sistema son replicadas, compartidas o distribuidas. [#55894](https://github.com/ClickHouse/ClickHouse/pull/55894) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añade la consulta `CHECK ALL TABLES`. [#56022](https://github.com/ClickHouse/ClickHouse/pull/56022) ([vdimir](https://github.com/vdimir)).
* Se añadió la función `fromDaysSinceYearZero`, similar a `FROM_DAYS` de MySQL. P. ej., `SELECT fromDaysSinceYearZero(739136)` devuelve `2023-09-08`. [#56088](https://github.com/ClickHouse/ClickHouse/pull/56088) ([Joanna Hulboj](https://github.com/jh0x)).
* Se añade una herramienta externa en Python para ver copias de seguridad y extraer información de ellas sin usar ClickHouse. [#56268](https://github.com/ClickHouse/ClickHouse/pull/56268) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se implementa una nueva configuración llamada `preferred_optimize_projection_name`. Si se establece en una cadena no vacía, se utilizará la proyección especificada, si es posible, en lugar de elegir entre todas las candidatas. [#56309](https://github.com/ClickHouse/ClickHouse/pull/56309) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Agregar un comando de 4 letras para ceder/abandonar el liderazgo ([https://github.com/ClickHouse/ClickHouse/issues/56352](https://github.com/ClickHouse/ClickHouse/issues/56352)). [#56354](https://github.com/ClickHouse/ClickHouse/pull/56354) ([Pradeep Chhetri](https://github.com/chhetripradeep)). [#56620](https://github.com/ClickHouse/ClickHouse/pull/56620) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Se añadió una nueva función SQL, `arrayRandomSample(arr, k)`, que devuelve una muestra de k elementos del array de entrada. Antes, una funcionalidad similar solo podía lograrse con una sintaxis menos práctica, p. ej., `SELECT arrayReduce('groupArraySample(3)', range(10))`. [#56416](https://github.com/ClickHouse/ClickHouse/pull/56416) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió compatibilidad con datos del tipo `Float16` para su uso en archivos `.npy`. Cierra [#56344](https://github.com/ClickHouse/ClickHouse/issues/56344). [#56424](https://github.com/ClickHouse/ClickHouse/pull/56424) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añadió la vista del sistema `information_schema.statistics` para mejorar la compatibilidad con Tableau Online. [#56425](https://github.com/ClickHouse/ClickHouse/pull/56425) ([Serge Klochkov](https://github.com/slvrtrn)).
* Se añade la tabla `system.symbols`, útil para la introspección del binario. [#56548](https://github.com/ClickHouse/ClickHouse/pull/56548) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Paneles configurables. Las consultas de los gráficos ahora se obtienen mediante una consulta, que de forma predeterminada usa una nueva tabla `system.dashboards`. [#56771](https://github.com/ClickHouse/ClickHouse/pull/56771) ([Sergei Trifonov](https://github.com/serxa)).
* Se incorpora la table function `fileCluster`; resulta útil si monta un filesystem compartido (NFS y similares) en el directorio `user_files`. [#56868](https://github.com/ClickHouse/ClickHouse/pull/56868) ([Andrey Zvonov](https://github.com/zvonand)).
* Se añade la columna virtual `_size` con el tamaño del archivo en bytes a los motores `s3/file/hdfs/url/azureBlobStorage`. [#57126](https://github.com/ClickHouse/ClickHouse/pull/57126) ([Kruglov Pavel](https://github.com/Avogar)).
* Expone en el endpoint de Prometheus el número de errores de cada código de error producidos en un servidor desde el último reinicio. [#57209](https://github.com/ClickHouse/ClickHouse/pull/57209) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* ClickHouse Keeper informa de la zona de disponibilidad en la que se está ejecutando en la ruta `/keeper/availability-zone`. Esto se puede configurar mediante `<availability_zone><value>us-west-1a</value></availability_zone>`. [#56715](https://github.com/ClickHouse/ClickHouse/pull/56715) ([Jianfei Hu](https://github.com/incfly)).
* Hacer que ALTER materialized\_view MODIFY QUERY deje de ser experimental y deprecar la configuración `allow_experimental_alter_materialized_view_structure`. Corrige [#15206](https://github.com/ClickHouse/ClickHouse/issues/15206). [#57311](https://github.com/ClickHouse/ClickHouse/pull/57311) ([alesapin](https://github.com/alesapin)).
* La opción `join_algorithm` respeta el orden especificado [#51745](https://github.com/ClickHouse/ClickHouse/pull/51745) ([vdimir](https://github.com/vdimir)).
* Se añadió compatibilidad con los [tipos bien conocidos de Protobuf](https://protobuf.dev/reference/protobuf/google.protobuf/) en el formato Protobuf. [#56741](https://github.com/ClickHouse/ClickHouse/pull/56741) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).

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

* Tiempos de espera adaptativos para interactuar con S3. El primer intento se realiza con tiempos de espera de envío y recepción reducidos. [#56314](https://github.com/ClickHouse/ClickHouse/pull/56314) ([Sema Checherinda](https://github.com/CheSema)).
* Aumenta el valor predeterminado de `max_concurrent_queries` de 100 a 1000. Esto tiene sentido cuando hay una gran cantidad de clientes conectados que envían o reciben datos lentamente, por lo que el servidor no está limitado por la CPU, o cuando el número de núcleos de CPU es mayor que 100. Además, habilita el control de concurrencia de forma predeterminada y establece el número total deseado de hilos de procesamiento de consultas en el doble del número de núcleos de CPU. Esto mejora el rendimiento en escenarios con un número muy elevado de consultas concurrentes. [#46927](https://github.com/ClickHouse/ClickHouse/pull/46927) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se admite la evaluación paralela de las funciones de ventana. Corrige [#34688](https://github.com/ClickHouse/ClickHouse/issues/34688). [#39631](https://github.com/ClickHouse/ClickHouse/pull/39631) ([Dmitry Novik](https://github.com/novikd)).
* El table engine `Numbers` (de la tabla `system.numbers`) ahora analiza la condición para generar el subconjunto de datos necesario, como si fuera el índice de la tabla. [#50909](https://github.com/ClickHouse/ClickHouse/pull/50909) ([JackyWoo](https://github.com/JackyWoo)).
* Se mejoró el rendimiento del filtrado con la condición `IN (...)` para el motor de tabla `Merge`. [#54905](https://github.com/ClickHouse/ClickHouse/pull/54905) ([Nikita Taranov](https://github.com/nickitat)).
* Una mejora que se produce cuando la caché del sistema de archivos está llena y se realizan lecturas de gran tamaño. [#55158](https://github.com/ClickHouse/ClickHouse/pull/55158) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se agregó la posibilidad de deshabilitar los checksums para S3 a fin de evitar recorrer el archivo en exceso (esto se controla mediante la opción `s3_disable_checksum`). [#55559](https://github.com/ClickHouse/ClickHouse/pull/55559) ([Azat Khuzhin](https://github.com/azat)).
* Ahora leemos de forma síncrona desde tablas remotas cuando los datos están en la caché de páginas (como hacemos con las tablas locales). Es más rápido, no requiere sincronización dentro del pool de hilos, no vacila al hacer `seek` en el sistema de archivos local y reduce el tiempo de espera de la CPU. [#55841](https://github.com/ClickHouse/ClickHouse/pull/55841) ([Nikita Taranov](https://github.com/nickitat)).
* Optimización al obtener valores de `map`, `arrayElement`. Aportará una mejora de velocidad de alrededor del 30 %. - reducir la memoria reservada - reducir la llamada a `resize`. [#55957](https://github.com/ClickHouse/ClickHouse/pull/55957) ([lgbo](https://github.com/lgbo-ustc)).
* Optimización del filtrado en varias etapas con AVX-512. Los experimentos de rendimiento del conjunto de datos OnTime en el dispositivo ICX (CPU Intel Xeon Platinum 8380, 80 núcleos, 160 hilos) muestran que este cambio podría aportar mejoras del 7,4 %, 5,9 %, 4,7 %, 3,0 % y 4,6 % al QPS de las consultas Q2, Q3, Q4, Q5 y Q6, respectivamente, sin afectar a las demás. [#56079](https://github.com/ClickHouse/ClickHouse/pull/56079) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Limita el número de hilos ocupados dentro del perfilador de consultas. Si hay más, omitirán el perfilado. [#56105](https://github.com/ClickHouse/ClickHouse/pull/56105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reducir el número de llamadas a funciones virtuales en las funciones de ventana. [#56120](https://github.com/ClickHouse/ClickHouse/pull/56120) ([Maksim Kita](https://github.com/kitaisreal)).
* Permitir la poda recursiva de campos de Tuple en el formato ORC para acelerar el escaneo. [#56122](https://github.com/ClickHouse/ClickHouse/pull/56122) ([李扬](https://github.com/taiyang-li)).
* Optimización del conteo trivial para el formato de datos `Npy`: consultas como `select count() from 'data.npy'` funcionarán mucho más rápido gracias al almacenamiento en caché de los resultados. [#56304](https://github.com/ClickHouse/ClickHouse/pull/56304) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Las consultas con agregación y un gran número de streams usarán menos memoria durante la construcción del plan. [#57074](https://github.com/ClickHouse/ClickHouse/pull/57074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejora el rendimiento de la ejecución de consultas en casos de uso con muchos usuarios y consultas muy concurrentes (>2000 QPS) al optimizar el acceso a ProcessList. [#57106](https://github.com/ClickHouse/ClickHouse/pull/57106) ([Andrej Hoos](https://github.com/adikus)).
* Mejora menor en ARRAY JOIN: reutiliza algunos resultados intermedios. [#57183](https://github.com/ClickHouse/ClickHouse/pull/57183) ([李扬](https://github.com/taiyang-li)).
* En algunos casos, el desenrollado de la pila era lento. Ya no. [#57221](https://github.com/ClickHouse/ClickHouse/pull/57221) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora usamos el pool de lectura predeterminado para leer desde almacenamiento externo cuando `max_streams = 1`. Esto resulta beneficioso cuando están habilitadas las operaciones de prefetch de lectura. [#57334](https://github.com/ClickHouse/ClickHouse/pull/57334) ([Nikita Taranov](https://github.com/nickitat)).
* Mejora de Keeper: se optimiza el uso de memoria durante el arranque al retrasar el preprocesamiento del log. [#55660](https://github.com/ClickHouse/ClickHouse/pull/55660) ([Antonio Andelic](https://github.com/antonio2368)).
* Se mejoró el rendimiento de la coincidencia de patrones glob para los almacenamientos `File` y `HDFS`. [#56141](https://github.com/ClickHouse/ClickHouse/pull/56141) ([Andrey Zvonov](https://github.com/zvonand)).
* Las posting lists de los índices experimentales de texto completo ahora se comprimen, lo que reduce su tamaño entre un 10 y un 30 %. [#56226](https://github.com/ClickHouse/ClickHouse/pull/56226) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Paralelización de `BackupEntriesCollector` en las copias de seguridad. [#56312](https://github.com/ClickHouse/ClickHouse/pull/56312) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Añade una nueva configuración de `MergeTree`, `add_implicit_sign_column_constraint_for_collapsing_engine` (desactivada de forma predeterminada). Cuando se habilita, añade una restricción CHECK implícita para las tablas `CollapsingMergeTree` que limita el valor de la columna `Sign` a -1 o 1 únicamente. [#56701](https://github.com/ClickHouse/ClickHouse/issues/56701). [#56986](https://github.com/ClickHouse/ClickHouse/pull/56986) ([Kevin Mingtarja](https://github.com/kevinmingtarja)).
* Se permite agregar un nuevo disco a la configuración de almacenamiento sin reiniciar. [#56367](https://github.com/ClickHouse/ClickHouse/pull/56367) ([Duc Canh Le](https://github.com/canhld94)).
* Se admite crear y materializar un índice en la misma consulta ALTER, así como usar "modify TTL" y "materialize TTL" en la misma consulta. Cierra [#55651](https://github.com/ClickHouse/ClickHouse/issues/55651). [#56331](https://github.com/ClickHouse/ClickHouse/pull/56331) ([flynn](https://github.com/ucasfl)).
* Se añadió una nueva función de tabla llamada `fuzzJSON` con filas que contienen versiones alteradas de la cadena JSON de origen con variaciones aleatorias. [#56490](https://github.com/ClickHouse/ClickHouse/pull/56490) ([Julia Kartseva](https://github.com/jkartseva)).
* El engine `Merge` filtra los registros según las políticas de fila de las tablas subyacentes, por lo que no es necesario crear otra política de fila en una tabla `Merge`. [#50209](https://github.com/ClickHouse/ClickHouse/pull/50209) ([Ilya Golshtein](https://github.com/ilejn)).
* Se añade la configuración `max_execution_time_leaf` para limitar el tiempo de ejecución en el segmento de una consulta distribuida, y `timeout_overflow_mode_leaf` para controlar el comportamiento si se produce un timeout. [#51823](https://github.com/ClickHouse/ClickHouse/pull/51823) ([Duc Canh Le](https://github.com/canhld94)).
* Se agregó una configuración de ClickHouse para deshabilitar la tunelización de solicitudes HTTPS a través de un proxy HTTP. [#55033](https://github.com/ClickHouse/ClickHouse/pull/55033) ([Arthur Passos](https://github.com/arthurpassos)).
* Establezca `background_fetches_pool_size` en 16 y `background&#95;schedule&#95;pool&#95;size` en 512, lo que resulta más adecuado para entornos de producción con inserciones pequeñas frecuentes. [#54327](https://github.com/ClickHouse/ClickHouse/pull/54327) ([Denny Crane](https://github.com/den-crane)).
* Al leer datos de un archivo en formato CSV, si al final de una línea aparece `\r` y no va seguido de `\n`, se producirá la siguiente excepción: `Cannot parse CSV format: found \r (CR) not followed by \n (LF). Line must end by \n (LF) or \r\n (CR LF) or \n\r.` En ClickHouse, el final de línea en CSV debe ser `\n`, `\r\n` o `\n\r`, por lo que `\r` debe ir seguido de `\n`. Sin embargo, en algunas situaciones, los datos de entrada CSV pueden ser anómalos; por ejemplo, como se muestra arriba, `\r` aparece al final de la línea. [#54340](https://github.com/ClickHouse/ClickHouse/pull/54340) ([KevinyhZou](https://github.com/KevinyhZou)).
* Se actualizó la biblioteca Arrow a release-13.0.0, que admite nuevas codificaciones. Cierra [#44505](https://github.com/ClickHouse/ClickHouse/issues/44505). [#54800](https://github.com/ClickHouse/ClickHouse/pull/54800) ([Kruglov Pavel](https://github.com/Avogar)).
* Mejora el rendimiento de las consultas ON CLUSTER al eliminar las costosas llamadas al sistema para obtener todas las interfaces de red al buscar la dirección IP local en la lista de hosts de la entrada DDL. [#54909](https://github.com/ClickHouse/ClickHouse/pull/54909) ([Duc Canh Le](https://github.com/canhld94)).
* Se corrigió el cómputo de la memoria asignada antes de asociar un hilo a una consulta o a un usuario. [#56089](https://github.com/ClickHouse/ClickHouse/pull/56089) ([Nikita Taranov](https://github.com/nickitat)).
* Se agregó compatibilidad con `LARGE_LIST` en los formatos Apache Arrow. [#56118](https://github.com/ClickHouse/ClickHouse/pull/56118) ([edef](https://github.com/edef1c)).
* Permitir la compactación manual de `EmbeddedRocksDB` con la consulta `OPTIMIZE`. [#56225](https://github.com/ClickHouse/ClickHouse/pull/56225) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió la posibilidad de especificar BlockBasedTableOptions para las tablas `EmbeddedRocksDB`. [#56264](https://github.com/ClickHouse/ClickHouse/pull/56264) ([Azat Khuzhin](https://github.com/azat)).
* `SHOW COLUMNS` ahora muestra el nombre del tipo de datos equivalente de MySQL cuando la conexión se realiza a través del protocolo MySQL. Anteriormente, esto ocurría al establecer `use_mysql_types_in_show_columns = 1`. La configuración se mantiene, pero queda obsoleta. [#56277](https://github.com/ClickHouse/ClickHouse/pull/56277) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigió un posible error `The local set of parts of table doesn't look like the set of parts in ZooKeeper` si el servidor se reiniciaba inmediatamente después de `TRUNCATE` o `DROP PARTITION`. [#56282](https://github.com/ClickHouse/ClickHouse/pull/56282) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrigió el manejo de las query strings no constantes en las funciones `formatQuery`/ `formatQuerySingleLine`. También se añadieron variantes `OrNull` de ambas funciones que devuelven NULL cuando no se puede analizar una consulta, en lugar de generar una excepción. [#56327](https://github.com/ClickHouse/ClickHouse/pull/56327) ([Robert Schulze](https://github.com/rschu1ze)).
* Permitir la copia de seguridad de una vista materializada con la tabla interna eliminada, en lugar de que falle la copia de seguridad. [#56387](https://github.com/ClickHouse/ClickHouse/pull/56387) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Las consultas a `system.replicas` generan solicitudes a ZooKeeper cuando se consultan determinadas columnas. Cuando hay miles de tablas, estas solicitudes pueden suponer una carga considerable para ZooKeeper. Si hay varias consultas simultáneas a `system.replicas`, se repiten las mismas solicitudes varias veces. El cambio consiste en "deduplicar" las solicitudes de las consultas concurrentes. [#56420](https://github.com/ClickHouse/ClickHouse/pull/56420) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrigió la traducción a una consulta compatible con MySQL para acceder a bases de datos externas. [#56456](https://github.com/ClickHouse/ClickHouse/pull/56456) ([flynn](https://github.com/ucasfl)).
* Se añadió compatibilidad para realizar copias de seguridad y restaurar tablas con el motor `KeeperMap`. [#56460](https://github.com/ClickHouse/ClickHouse/pull/56460) ([Antonio Andelic](https://github.com/antonio2368)).
* La respuesta 404 para CompleteMultipartUpload debe volver a verificarse. La operación podría haberse realizado en el servidor incluso si el cliente sufrió un timeout u otros errores de red. El siguiente reintento de CompleteMultipartUpload recibe una respuesta 404. Si la clave del objeto existe, esa operación se considera correcta. [#56475](https://github.com/ClickHouse/ClickHouse/pull/56475) ([Sema Checherinda](https://github.com/CheSema)).
* Se habilita de forma predeterminada el método HTTP OPTIONS, lo que simplifica las solicitudes a ClickHouse desde un navegador web. [#56483](https://github.com/ClickHouse/ClickHouse/pull/56483) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El valor de `dns_max_consecutive_failures` se cambió por error en [#46550](https://github.com/ClickHouse/ClickHouse/issues/46550); este cambio se ha revertido y ajustado a un valor más adecuado. Además, se aumentó el timeout de keep-alive de HTTP a un valor razonable para producción. [#56485](https://github.com/ClickHouse/ClickHouse/pull/56485) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Carga diferida de copias de seguridad base (una copia de seguridad base no se cargará hasta que sea necesaria). También se añaden algunos mensajes de registro y eventos de perfil para las copias de seguridad. [#56516](https://github.com/ClickHouse/ClickHouse/pull/56516) ([Vitaly Baranov](https://github.com/vitlibar)).
* La configuración `query_cache_store_results_of_queries_with_nondeterministic_functions` (con los valores `false` o `true`) se marcó como obsoleta. Fue reemplazada por la configuración `query_cache_nondeterministic_function_handling`, una enumeración de tres valores que controla cómo la caché de consultas maneja las consultas con funciones no deterministas: a) lanzar una excepción (comportamiento predeterminado), b) guardar el resultado de la consulta no determinista en cualquier caso, o c) ignorar, es decir, no lanzar una excepción ni almacenar en caché el resultado. [#56519](https://github.com/ClickHouse/ClickHouse/pull/56519) ([Robert Schulze](https://github.com/rschu1ze)).
* Reescritura de igualdad con comprobación `is null` en la cláusula JOIN ON. Solo para el *analizador* experimental. [#56538](https://github.com/ClickHouse/ClickHouse/pull/56538) ([vdimir](https://github.com/vdimir)).
* La función`concat` ahora admite tipos de argumentos arbitrarios (en lugar de admitir solo argumentos String y FixedString). Esto hace que se comporte de forma más similar a la implementación de `concat` de MySQL. Por ejemplo, `SELECT concat('ab', 42)` ahora devuelve `ab42`. [#56540](https://github.com/ClickHouse/ClickHouse/pull/56540) ([Serge Klochkov](https://github.com/slvrtrn)).
* Permite obtener la configuración de caché desde la sección 'named\_collection' de la configuración o desde named collections creadas con SQL. [#56541](https://github.com/ClickHouse/ClickHouse/pull/56541) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Motor de base de datos PostgreSQL: Hacer que la eliminación de tablas obsoletas sea menos agresiva si falla la conexión con Postgres. [#56609](https://github.com/ClickHouse/ClickHouse/pull/56609) ([jsc0218](https://github.com/jsc0218)).
* Tardaba demasiado en conectarse a PG cuando la URL no era correcta, por lo que la consulta correspondiente se quedaba bloqueada y acababa cancelándose. [#56648](https://github.com/ClickHouse/ClickHouse/pull/56648) ([jsc0218](https://github.com/jsc0218)).
* Mejora en Keeper: deshabilitar los logs comprimidos de forma predeterminada. [#56763](https://github.com/ClickHouse/ClickHouse/pull/56763) ([Antonio Andelic](https://github.com/antonio2368)).
* Agregar la opción de configuración `wait_dictionaries_load_at_startup`. [#56782](https://github.com/ClickHouse/ClickHouse/pull/56782) ([Vitaly Baranov](https://github.com/vitlibar)).
* Existía una posible vulnerabilidad en versiones anteriores de ClickHouse: si un usuario se había conectado e intentaba autenticarse sin éxito con el método "interserver secret", el servidor no cerraba la conexión de inmediato, sino que seguía recibiendo e ignorando los paquetes restantes del cliente. Aunque estos paquetes se ignoran, se siguen procesando y, si usan un método de compresión con otra vulnerabilidad conocida, esto permitiría explotarla sin autenticación. Este problema se descubrió a través del [programa Bug Bounty de ClickHouse](https://github.com/ClickHouse/ClickHouse/issues/38986) por [https://twitter.com/malacupa](https://twitter.com/malacupa). [#56794](https://github.com/ClickHouse/ClickHouse/pull/56794) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La obtención de una parte espera a que esa parte esté completamente confirmada en la réplica remota. Es mejor no enviar la parte en estado PreActive. En el caso de zero copy, esta restricción es obligatoria. [#56808](https://github.com/ClickHouse/ClickHouse/pull/56808) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrigió un posible error de conversión en la replicación lógica de PostgreSQL al usar `MaterializedPostgreSQL` experimental. [#53721](https://github.com/ClickHouse/ClickHouse/pull/53721) ([takakawa](https://github.com/takakawa)).
* Implementa la configuración a nivel de usuario `alter_move_to_space_execute_async`, que permite ejecutar de forma asíncrona las consultas `ALTER TABLE ... MOVE PARTITION|PART TO DISK|VOLUME`. El tamaño del pool para las ejecuciones en segundo plano se controla mediante `background_move_pool_size`. El comportamiento predeterminado es la ejecución síncrona. Corrige [#47643](https://github.com/ClickHouse/ClickHouse/issues/47643). [#56809](https://github.com/ClickHouse/ClickHouse/pull/56809) ([alesapin](https://github.com/alesapin)).
* Se puede filtrar por motor al escanear system.tables, lo que evita conexiones innecesarias (potencialmente lentas). [#56813](https://github.com/ClickHouse/ClickHouse/pull/56813) ([jsc0218](https://github.com/jsc0218)).
* Mostrar `total_bytes` y `total_rows` en las tablas del sistema para el almacenamiento de RocksDB. [#56816](https://github.com/ClickHouse/ClickHouse/pull/56816) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Se permiten comandos básicos en ALTER para tablas TEMPORARY. [#56892](https://github.com/ClickHouse/ClickHouse/pull/56892) ([Sergey](https://github.com/icuken)).
* Compresión LZ4. Búfer para el bloque comprimido en el caso poco frecuente en que la capacidad del búfer de salida no sea suficiente para escribir el bloque comprimido directamente en el búfer de out. [#56938](https://github.com/ClickHouse/ClickHouse/pull/56938) ([Sema Checherinda](https://github.com/CheSema)).
* Se añaden métricas para el número de trabajos en cola, lo que resulta útil para el pool de hilos de IO. [#56958](https://github.com/ClickHouse/ClickHouse/pull/56958) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agregó un ajuste para el motor de tabla PostgreSQL en el archivo de configuración. Se añadió una comprobación para este ajuste. Se añadió documentación sobre el ajuste adicional. [#56959](https://github.com/ClickHouse/ClickHouse/pull/56959) ([Peignon Melvyn](https://github.com/melvynator)).
* La función `concat` ahora puede llamarse con un solo argumento, por ejemplo, `SELECT concat('abc')`. Esto hace que su comportamiento sea más consistente con la implementación de `concat` de MySQL. [#57000](https://github.com/ClickHouse/ClickHouse/pull/57000) ([Serge Klochkov](https://github.com/slvrtrn)).
* Firma todas las cabeceras `x-amz-*`, tal como exige la documentación de AWS S3. [#57001](https://github.com/ClickHouse/ClickHouse/pull/57001) ([Arthur Passos](https://github.com/arthurpassos)).
* La función `fromDaysSinceYearZero` (alias: `FROM_DAYS`) ahora puede usarse con tipos enteros con y sin signo (anteriormente, debía ser un entero sin signo). Esto mejora la compatibilidad con herramientas de terceros como Tableau Online. [#57002](https://github.com/ClickHouse/ClickHouse/pull/57002) ([Serge Klochkov](https://github.com/slvrtrn)).
* Se añadió `system.s3queue_log` a la configuración predeterminada. [#57036](https://github.com/ClickHouse/ClickHouse/pull/57036) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Cambiar el valor predeterminado de `wait_dictionaries_load_at_startup` a true y usar esta configuración solo si `dictionaries_lazy_load` es false. [#57133](https://github.com/ClickHouse/ClickHouse/pull/57133) ([Vitaly Baranov](https://github.com/vitlibar)).
* Comprobar el tipo de origen del diccionario al crearlo, incluso si `dictionaries_lazy_load` está activado. [#57134](https://github.com/ClickHouse/ClickHouse/pull/57134) ([Vitaly Baranov](https://github.com/vitlibar)).
* Las optimizaciones a nivel de plan ahora se pueden habilitar o deshabilitar de forma individual. Antes, solo era posible deshabilitarlas todas. La configuración que antes cumplía esa función (`query_plan_enable_optimizations`) se conserva y todavía puede usarse para deshabilitar todas las optimizaciones. [#57152](https://github.com/ClickHouse/ClickHouse/pull/57152) ([Robert Schulze](https://github.com/rschu1ze)).
* El código de salida del servidor coincidirá con el código de excepción. Por ejemplo, si el servidor no puede iniciarse debido al límite de memoria, finalizará con el código 241 = MEMORY\_LIMIT\_EXCEEDED. En versiones anteriores, el código de salida de las excepciones siempre era 70 = Poco::Util::ExitCode::EXIT\_SOFTWARE. [#57153](https://github.com/ClickHouse/ClickHouse/pull/57153) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* No aplicar demangling ni simbolizar los frames de pila de la cabecera de C++ `functional`. [#57201](https://github.com/ClickHouse/ClickHouse/pull/57201) ([Mike Kot](https://github.com/myrrc)).
* La página `/dashboard` del servidor HTTP ahora admite gráficos con varias líneas. [#57236](https://github.com/ClickHouse/ClickHouse/pull/57236) ([Sergei Trifonov](https://github.com/serxa)).
* La opción de línea de comandos `max_memory_usage_in_client` admite una cadena con un sufijo (K, M, G, etc.). Cierra [#56879](https://github.com/ClickHouse/ClickHouse/issues/56879). [#57273](https://github.com/ClickHouse/ClickHouse/pull/57273) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se actualizó Intel QPL (usado por el códec `DEFLATE_QPL`) de v1.2.0 a v1.3.1. También se corrigió un error en el caso de BOF (Block On Fault) = 0, y se modificó para gestionar los fallos de página recurriendo a la ruta de software. [#57291](https://github.com/ClickHouse/ClickHouse/pull/57291) ([jasperzhu](https://github.com/jinjunzh)).
* Aumenta el valor predeterminado de `replicated_deduplication_window` en la configuración de MergeTree de 100 a 1k. [#57335](https://github.com/ClickHouse/ClickHouse/pull/57335) ([sichenzhao](https://github.com/sichenzhao)).
* Reduce el uso de `INCONSISTENT_METADATA_FOR_BACKUP`. Si es posible, se prefiere continuar el escaneo en lugar de detenerlo y reiniciar el escaneo de la copia de seguridad desde el principio. [#57385](https://github.com/ClickHouse/ClickHouse/pull/57385) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Añadir una prueba de SQLLogic. [#56078](https://github.com/ClickHouse/ClickHouse/pull/56078) ([Han Fei](https://github.com/hanfei1991)).
* Hacer que `clickhouse-local` y `clickhouse-client` estén disponibles con nombres cortos (`ch`, `chl`, `chc`) para mejorar la usabilidad. [#56634](https://github.com/ClickHouse/ClickHouse/pull/56634) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se optimizó aún más el tamaño de la compilación eliminando código no utilizado de bibliotecas externas. [#56786](https://github.com/ClickHouse/ClickHouse/pull/56786) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añadir una comprobación automática para asegurar que no haya unidades de traducción grandes. [#56559](https://github.com/ClickHouse/ClickHouse/pull/56559) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reducir el tamaño de la distribución de binario único. Esto cierra [#55181](https://github.com/ClickHouse/ClickHouse/issues/55181). [#56617](https://github.com/ClickHouse/ClickHouse/pull/56617) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La información sobre el tamaño de cada unidad de traducción y archivo binario después de cada compilación se enviará a la base de datos de CI en ClickHouse Cloud. Esto cierra [#56107](https://github.com/ClickHouse/ClickHouse/issues/56107). [#56636](https://github.com/ClickHouse/ClickHouse/pull/56636) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ciertos archivos de la biblioteca "Apache Arrow" (que usamos solo para aspectos no esenciales, como el análisis del formato Arrow) se recompilaban constantemente sin tener en cuenta la caché de compilación. Esto ya se ha corregido. [#56657](https://github.com/ClickHouse/ClickHouse/pull/56657) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evitar la recompilación de unidades de traducción que dependen del archivo fuente autogenerado sobre la versión. [#56660](https://github.com/ClickHouse/ClickHouse/pull/56660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los datos de tracing de las invocaciones del enlazador se enviarán a la base de datos de CI en ClickHouse Cloud. [#56725](https://github.com/ClickHouse/ClickHouse/pull/56725) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usar símbolos de depuración DWARF 5 para el binario `clickhouse` (anteriormente era DWARF 4). [#56770](https://github.com/ClickHouse/ClickHouse/pull/56770) ([Michael Kolupaev](https://github.com/al13n321)).
* Añadir una nueva opción de compilación `SANITIZE_COVERAGE`. Si está habilitada, el código se instrumenta para rastrear la cobertura. La información recopilada está disponible dentro de ClickHouse mediante: (1) una nueva función `coverage` que devuelve un array de direcciones únicas del código encontradas desde el reinicio anterior de la cobertura; (2) la consulta `SYSTEM RESET COVERAGE`, que restablece los datos acumulados. Esto nos permite comparar la cobertura de distintas pruebas, incluida la cobertura diferencial de código. Continuación de [#20539](https://github.com/ClickHouse/ClickHouse/issues/20539). [#56102](https://github.com/ClickHouse/ClickHouse/pull/56102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Es posible que algunos frames de la pila no se resuelvan al recopilar las pilas. En esos casos, la dirección sin procesar puede resultar útil. [#56267](https://github.com/ClickHouse/ClickHouse/pull/56267) ([Alexander Gololobov](https://github.com/davenger)).
* Añadir una opción para deshabilitar `libssh`. [#56333](https://github.com/ClickHouse/ClickHouse/pull/56333) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilitar `temporary_data_in_cache` en las pruebas de S3 en CI. [#48425](https://github.com/ClickHouse/ClickHouse/pull/48425) ([vdimir](https://github.com/vdimir)).
* Establecer el uso máximo de memoria para `clickhouse-client` (`1G`) en CI. [#56873](https://github.com/ClickHouse/ClickHouse/pull/56873) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Corregir el Analyzer experimental: la inserción a partir de SELECT con una subconsulta que hace referencia a la tabla de inserción debe procesar solo el bloque de inserción. [#50857](https://github.com/ClickHouse/ClickHouse/pull/50857) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrigió un error en la función `str_to_map`. [#56423](https://github.com/ClickHouse/ClickHouse/pull/56423) ([Arthur Passos](https://github.com/arthurpassos)).
* Keeper `reconfig`: añadir un timeout antes de ceder/asumir el liderazgo [#53481](https://github.com/ClickHouse/ClickHouse/pull/53481) ([Mike Kot](https://github.com/myrrc)).
* Se corrige un encabezado incorrecto en grace hash join y en el pushdown de filtros [#53922](https://github.com/ClickHouse/ClickHouse/pull/53922) ([vdimir](https://github.com/vdimir)).
* Selección desde tablas del sistema cuando la tabla se basa en una función de tabla. [#55540](https://github.com/ClickHouse/ClickHouse/pull/55540) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* RFC: Corregir "No se encuentra la columna X en el flujo de origen" para consultas Distributed con LIMIT BY [#55836](https://github.com/ClickHouse/ClickHouse/pull/55836) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió 'Cannot read from file:' al ejecutar el cliente en segundo plano [#55976](https://github.com/ClickHouse/ClickHouse/pull/55976) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el cierre de clickhouse-local por una configuración incorrecta de send\_logs\_level [#55994](https://github.com/ClickHouse/ClickHouse/pull/55994) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrección de un error en EXPLAIN AST con vista parametrizada [#56004](https://github.com/ClickHouse/ClickHouse/pull/56004) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrige un cierre inesperado durante la carga de tablas al arrancar [#56232](https://github.com/ClickHouse/ClickHouse/pull/56232) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigen los diccionarios de ClickHouse con una consulta explícita [#56236](https://github.com/ClickHouse/ClickHouse/pull/56236) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió un segfault en el manejador de señales de Keeper [#56266](https://github.com/ClickHouse/ClickHouse/pull/56266) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió el resultado incompleto de la consulta para UNION en la función view(). [#56274](https://github.com/ClickHouse/ClickHouse/pull/56274) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la inconsistencia de "cast('0' as DateTime64(3))" y "cast('0' as Nullable(DateTime64(3)))" [#56286](https://github.com/ClickHouse/ClickHouse/pull/56286) ([李扬](https://github.com/taiyang-li)).
* Se corrigió una rara condición de carrera relacionada con un error de asignación de memoria [#56303](https://github.com/ClickHouse/ClickHouse/pull/56303) ([alesapin](https://github.com/alesapin)).
* Se corrige la restauración a partir de una copia de seguridad con `flatten_nested` y `data_type_default_nullable` [#56306](https://github.com/ClickHouse/ClickHouse/pull/56306) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un bloqueo al añadir una columna de tipo Object(JSON) [#56307](https://github.com/ClickHouse/ClickHouse/pull/56307) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrige un cierre inesperado en filterPushDown [#56380](https://github.com/ClickHouse/ClickHouse/pull/56380) ([vdimir](https://github.com/vdimir)).
* Se corrigió la restauración desde una copia de seguridad con una vista materializada y una tabla de origen eliminada [#56383](https://github.com/ClickHouse/ClickHouse/pull/56383) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un segfault durante la inicialización de Kerberos [#56401](https://github.com/ClickHouse/ClickHouse/pull/56401) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió un desbordamiento de búfer en T64 [#56434](https://github.com/ClickHouse/ClickHouse/pull/56434) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la clave primaria de tipo Nullable en FINAL (2) [#56452](https://github.com/ClickHouse/ClickHouse/pull/56452) ([Amos Bird](https://github.com/amosbird)).
* Se corrigen las consultas ON CLUSTER sin base de datos en el nodo inicial [#56484](https://github.com/ClickHouse/ClickHouse/pull/56484) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corregir el fallo de inicio debido a una dependencia de TTL [#56489](https://github.com/ClickHouse/ClickHouse/pull/56489) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigieron las consultas ALTER COMMENT con ON CLUSTER [#56491](https://github.com/ClickHouse/ClickHouse/pull/56491) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige ALTER COLUMN con ALIAS [#56493](https://github.com/ClickHouse/ClickHouse/pull/56493) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigieron las NAMED COLLECTIONs vacías [#56494](https://github.com/ClickHouse/ClickHouse/pull/56494) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigieron dos casos relacionados con el análisis de proyecciones. [#56502](https://github.com/ClickHouse/ClickHouse/pull/56502) ([Amos Bird](https://github.com/amosbird)).
* Se corrige la gestión de alias en la caché de consultas [#56545](https://github.com/ClickHouse/ClickHouse/pull/56545) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige la conversión de `Nullable(Enum)` a `Nullable(String)` [#56644](https://github.com/ClickHouse/ClickHouse/pull/56644) ([Nikolay Degterinsky](https://github.com/evillique)).
* Gestión de logs más fiable en Keeper [#56670](https://github.com/ClickHouse/ClickHouse/pull/56670) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige la fusión de la configuración para nodos con atributos de sustitución [#56694](https://github.com/ClickHouse/ClickHouse/pull/56694) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige el uso duplicado de la función de tabla `input()`. [#56695](https://github.com/ClickHouse/ClickHouse/pull/56695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrección: problema con la carga dinámica de OpenSSL en RabbitMQ [#56703](https://github.com/ClickHouse/ClickHouse/pull/56703) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige el fallo en el códec GCD cuando hay ceros en los datos [#56704](https://github.com/ClickHouse/ClickHouse/pull/56704) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió 'mutex lock failed: Invalid argument' en clickhouse-local durante una operación de insert into function [#56710](https://github.com/ClickHouse/ClickHouse/pull/56710) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió el análisis del texto de Date en la ruta optimista [#56765](https://github.com/ClickHouse/ClickHouse/pull/56765) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió un cierre inesperado en el códec FPC [#56795](https://github.com/ClickHouse/ClickHouse/pull/56795) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* DatabaseReplicated: se corrige el timeout de la consulta DDL tras recuperar una réplica [#56796](https://github.com/ClickHouse/ClickHouse/pull/56796) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige la indicación incorrecta de columnas Nullable en el protocolo binario de MySQL [#56799](https://github.com/ClickHouse/ClickHouse/pull/56799) ([Serge Klochkov](https://github.com/slvrtrn)).
* Soporte para archivos de metadatos de Iceberg en tablas de metastore [#56810](https://github.com/ClickHouse/ClickHouse/pull/56810) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el informe de TSAN en transform [#56817](https://github.com/ClickHouse/ClickHouse/pull/56817) ([Raúl Marín](https://github.com/Algunenano)).
* Corrección de la consulta SET y del formato de SETTINGS [#56825](https://github.com/ClickHouse/ClickHouse/pull/56825) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige un fallo de arranque debido a una dependencia de tabla en joinGet [#56828](https://github.com/ClickHouse/ClickHouse/pull/56828) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió el aplanamiento de columnas Nested existentes durante ADD COLUMN [#56830](https://github.com/ClickHouse/ClickHouse/pull/56830) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige la compatibilidad con `cr` al final de línea para `csv` [#56901](https://github.com/ClickHouse/ClickHouse/pull/56901) ([KevinyhZou](https://github.com/KevinyhZou)).
* Corregir `tryBase64Decode` para entradas no válidas [#56913](https://github.com/ClickHouse/ClickHouse/pull/56913) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige la generación de columnas con anidamiento profundo en esquemas CapnProto/Protobuf [#56941](https://github.com/ClickHouse/ClickHouse/pull/56941) ([Kruglov Pavel](https://github.com/Avogar)).
* Evitar ALTER incompatibles en columnas de proyección [#56948](https://github.com/ClickHouse/ClickHouse/pull/56948) ([Amos Bird](https://github.com/amosbird)).
* Corregir la validación de la ruta del archivo SQLite [#56984](https://github.com/ClickHouse/ClickHouse/pull/56984) ([San](https://github.com/santrancisco)).
* S3Queue: corrige el incremento de la referencia de metadatos [#56990](https://github.com/ClickHouse/ClickHouse/pull/56990) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrección menor en S3Queue [#56999](https://github.com/ClickHouse/ClickHouse/pull/56999) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige la validación de rutas de archivo de DatabaseFileSystem [#57029](https://github.com/ClickHouse/ClickHouse/pull/57029) ([San](https://github.com/santrancisco)).
* Se corrige `fuzzBits` con `ARRAY JOIN` [#57033](https://github.com/ClickHouse/ClickHouse/pull/57033) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió la desreferenciación de Nullptr en partial merge join con joined\_subquery\_re... [#57048](https://github.com/ClickHouse/ClickHouse/pull/57048) ([vdimir](https://github.com/vdimir)).
* Corregida una condición de carrera en RemoteSource [#57052](https://github.com/ClickHouse/ClickHouse/pull/57052) ([Raúl Marín](https://github.com/Algunenano)).
* Se implementó `bitHammingDistance` para enteros grandes [#57073](https://github.com/ClickHouse/ClickHouse/pull/57073) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrección de enlaces de estilo S3 [#57075](https://github.com/ClickHouse/ClickHouse/pull/57075) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se corrige la función JSON\_QUERY con varias rutas numéricas [#57096](https://github.com/ClickHouse/ClickHouse/pull/57096) ([KevinyhZou](https://github.com/KevinyhZou)).
* Se corrigió el desbordamiento de búfer en el códec Gorilla [#57107](https://github.com/ClickHouse/ClickHouse/pull/57107) ([Nikolay Degterinsky](https://github.com/evillique)).
* Cerrar la conexión interservidor ante cualquier excepción antes de la autenticación [#57142](https://github.com/ClickHouse/ClickHouse/pull/57142) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige un segfault tras ALTER UPDATE con una columna Nullable MATERIALIZED [#57147](https://github.com/ClickHouse/ClickHouse/pull/57147) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió la optimización incorrecta del plan de JOIN con una proyección normal parcialmente materializada [#57196](https://github.com/ClickHouse/ClickHouse/pull/57196) ([Amos Bird](https://github.com/amosbird)).
* Ignorar los comentarios al comparar las descripciones de columnas [#57259](https://github.com/ClickHouse/ClickHouse/pull/57259) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige la métrica `ReadonlyReplica` en todos los casos [#57267](https://github.com/ClickHouse/ClickHouse/pull/57267) ([Antonio Andelic](https://github.com/antonio2368)).
* Las fusiones en segundo plano usan correctamente el almacenamiento temporal de datos en caché [#57275](https://github.com/ClickHouse/ClickHouse/pull/57275) ([vdimir](https://github.com/vdimir)).
* Corrección en Keeper del changelog y las instantáneas [#57299](https://github.com/ClickHouse/ClickHouse/pull/57299) ([Antonio Andelic](https://github.com/antonio2368)).
* Ignorar las tareas de ON CLUSTER ya finalizadas si cambió el hostname [#57339](https://github.com/ClickHouse/ClickHouse/pull/57339) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Las mutaciones de MergeTree reutilizan la granularidad del índice de la parte de origen [#57352](https://github.com/ClickHouse/ClickHouse/pull/57352) ([Maksim Kita](https://github.com/kitaisreal)).
* Caché del sistema de archivos: añade un límite para la descarga en segundo plano [#57424](https://github.com/ClickHouse/ClickHouse/pull/57424) ([Kseniia Sumarokova](https://github.com/kssenii)).

### <a id="2310" /> Lanzamiento de ClickHouse 23.10, 2023-11-02. [Presentación](https://presentations.clickhouse.com/2023-release-23.10/), [Video](https://www.youtube.com/watch?v=PGQS6uPb970)

<Frame>
  <iframe src="https://www.youtube.com/embed/PGQS6uPb970" 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>

* Ya no existe una opción para eliminar automáticamente las partes de datos dañadas. Esto cierra [#55174](https://github.com/ClickHouse/ClickHouse/issues/55174). [#55184](https://github.com/ClickHouse/ClickHouse/pull/55184) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#55557](https://github.com/ClickHouse/ClickHouse/pull/55557) ([Jihyuk Bok](https://github.com/tomahawk28)).
* Las partes de datos obsoletas en memoria ya no pueden leerse desde el write-ahead log. Si configuró partes en memoria anteriormente, deben eliminarse antes de la actualización. [#55186](https://github.com/ClickHouse/ClickHouse/pull/55186) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se elimina la integración con Meilisearch. Motivo: solo era compatible con la antigua versión 0.18. La versión reciente de Meilisearch cambió el protocolo y ya no funciona. Nota: agradeceríamos su ayuda para recuperarla. [#55189](https://github.com/ClickHouse/ClickHouse/pull/55189) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se cambia el nombre del concepto de monitor de directorio a INSERT en segundo plano. Todas las opciones de configuración `*directory_monitor*` pasaron a llamarse `distributed_background_insert*`. *La compatibilidad con versiones anteriores debería mantenerse* (ya que las opciones de configuración antiguas se añadieron como alias). [#55978](https://github.com/ClickHouse/ClickHouse/pull/55978) ([Azat Khuzhin](https://github.com/azat)).
* No interprete `send_timeout`, establecido del lado del cliente, como `receive_timeout` del lado del servidor, ni viceversa. [#56035](https://github.com/ClickHouse/ClickHouse/pull/56035) ([Azat Khuzhin](https://github.com/azat)).
* La comparación de intervalos de tiempo con distintas unidades generará una excepción. Esto cierra [#55942](https://github.com/ClickHouse/ClickHouse/issues/55942). Es posible que en ocasiones haya dependido del comportamiento anterior, en el que se comparaban los valores numéricos subyacentes sin tener en cuenta las unidades. [#56090](https://github.com/ClickHouse/ClickHouse/pull/56090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se reescribió por completo el motor de tabla experimental `S3Queue`: se cambió la forma en que se mantiene la información en ZooKeeper, lo que permite reducir las solicitudes a ZooKeeper; se añadió almacenamiento en caché del estado de ZooKeeper en los casos en que sabemos que ese estado no cambiará; se mejoró el proceso de sondeo desde S3 para que sea menos agresivo; se cambió la forma en que se mantienen el TTL y el valor máximo configurados para los archivos rastreados, y ahora es un proceso en segundo plano. Se añadieron las tablas `system.s3queue` y `system.s3queue_log`. Cierra [#54998](https://github.com/ClickHouse/ClickHouse/issues/54998). [#54422](https://github.com/ClickHouse/ClickHouse/pull/54422) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Las rutas arbitrarias en el endpoint HTTP ya no se interpretan como una solicitud al endpoint `/query`. [#55521](https://github.com/ClickHouse/ClickHouse/pull/55521) ([Konstantin Bogdanov](https://github.com/thevar1able)).

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

* Se añade la función `arrayFold(accumulator, x1, ..., xn -> expression, initial, array1, ..., arrayn)`, que aplica una función lambda a varios arrays de la misma cardinalidad y acumula el resultado en un acumulador. [#49794](https://github.com/ClickHouse/ClickHouse/pull/49794) ([Lirikl](https://github.com/Lirikl)).
* Compatibilidad con el formato `Npy`. `SELECT * FROM file('example_array.npy', Npy)`. [#55982](https://github.com/ClickHouse/ClickHouse/pull/55982) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Si una tabla tiene una curva de llenado del espacio en su clave, p. ej., `ORDER BY mortonEncode(x, y)`, las condiciones de sus argumentos, p. ej., `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, pueden utilizarse para la indexación. Se añade el ajuste `analyze_index_with_space_filling_curves` para habilitar o deshabilitar este análisis. Esto cierra [#41195](https://github.com/ClickHouse/ClickHouse/issue/41195). Continuación de [#4538](https://github.com/ClickHouse/ClickHouse/pull/4538). Continuación de [#6286](https://github.com/ClickHouse/ClickHouse/pull/6286). Continuación de [#28130](https://github.com/ClickHouse/ClickHouse/pull/28130). Continuación de [#41753](https://github.com/ClickHouse/ClickHouse/pull/#41753). [#55642](https://github.com/ClickHouse/ClickHouse/pull/55642) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Un nuevo ajuste llamado `force_optimize_projection_name` toma el nombre de una proyección como argumento. Si su valor se establece como una cadena no vacía, ClickHouse comprueba que esta proyección se utilice en la consulta al menos una vez. Cierra [#55331](https://github.com/ClickHouse/ClickHouse/issues/55331). [#56134](https://github.com/ClickHouse/ClickHouse/pull/56134) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se admiten inserciones asíncronas con datos externos a través del protocolo nativo. Antes solo funcionaba si los datos se incluían directamente en la consulta. [#54730](https://github.com/ClickHouse/ClickHouse/pull/54730) ([Anton Popov](https://github.com/CurtizJ)).
* Se añadió la función de agregación `lttb`, que utiliza el algoritmo [Largest-Triangle-Three-Buckets](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf) para reducir la resolución de los datos con fines de visualización. [#53145](https://github.com/ClickHouse/ClickHouse/pull/53145) ([Sinan](https://github.com/sinsinan)).
* La consulta`CHECK TABLE` ofrece mejor rendimiento y usabilidad (envía actualizaciones de progreso, se puede cancelar). Permite comprobar una parte concreta con `CHECK TABLE ... PART 'part_name'`. [#53404](https://github.com/ClickHouse/ClickHouse/pull/53404) ([vdimir](https://github.com/vdimir)).
* Se añadió la función `jsonMergePatch`. Al trabajar con datos JSON en forma de cadenas, permite combinar estas cadenas (de objetos JSON) para formar una sola cadena que contiene un único objeto JSON. [#54364](https://github.com/ClickHouse/ClickHouse/pull/54364) ([Memo](https://github.com/Joeywzr)).
* La segunda parte de la compatibilidad con el dialecto de Kusto Query Language. Se ha integrado la [implementación de la Fase 1 ](https://github.com/ClickHouse/ClickHouse/pull/37961). [#42510](https://github.com/ClickHouse/ClickHouse/pull/42510) ([larryluogit](https://github.com/larryluogit)).
* Se añadió una nueva función SQL, `arrayRandomSample(arr, k)`, que devuelve una muestra de k elementos del array de entrada. Anteriormente, solo se podía conseguir una funcionalidad similar con una sintaxis menos práctica, p. ej. "SELECT arrayReduce('groupArraySample(3)', range(10))". [#54391](https://github.com/ClickHouse/ClickHouse/pull/54391) ([itayisraelov](https://github.com/itayisraelov)).
* Se introducen los combinadores de agregación `-ArgMin`/`-ArgMax`, que permiten agregar solo según los valores mínimos o máximos. Puede encontrarse un caso de uso en [#54818](https://github.com/ClickHouse/ClickHouse/issues/54818). Este PR también reorganiza los combinadores en una carpeta específica. [#54947](https://github.com/ClickHouse/ClickHouse/pull/54947) ([Amos Bird](https://github.com/amosbird)).
* Se permite eliminar la caché de esquemas del formato Protobuf con `SYSTEM DROP SCHEMA FORMAT CACHE [FOR Protobuf]`. [#55064](https://github.com/ClickHouse/ClickHouse/pull/55064) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Se añade un autenticador HTTP Basic externo. [#55199](https://github.com/ClickHouse/ClickHouse/pull/55199) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Se añadió la función `byteSwap`, que invierte el orden de los bytes de los enteros sin signo. Esto resulta especialmente útil para invertir valores de tipos que se representan internamente como enteros sin signo, como IPv4. [#55211](https://github.com/ClickHouse/ClickHouse/pull/55211) ([Priyansh Agrawal](https://github.com/Priyansh121096)).
* Se añadió la función `formatQuery`, que devuelve una versión con formato (posiblemente en varias líneas) de una cadena de consulta SQL. También se añadió la función `formatQuerySingleLine`, que hace lo mismo, pero la cadena devuelta no contendrá saltos de línea. [#55239](https://github.com/ClickHouse/ClickHouse/pull/55239) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se añadió el formato de entrada `DWARF`, que lee símbolos de depuración de un archivo ELF ejecutable, biblioteca u objeto. [#55450](https://github.com/ClickHouse/ClickHouse/pull/55450) ([Michael Kolupaev](https://github.com/al13n321)).
* Permite guardar registros sin analizar y errores en los motores RabbitMQ, NATS y FileLog. Añade las columnas virtuales `_error` y `_raw_message` (para NATS y RabbitMQ) y `_raw_record` (para FileLog), que se rellenan cuando ClickHouse no puede analizar un registro nuevo. El comportamiento se controla mediante los ajustes de almacenamiento `nats_handle_error_mode` para NATS, `rabbitmq_handle_error_mode` para RabbitMQ y `handle_error_mode` para FileLog, de forma similar a `kafka_handle_error_mode`. Si se establece en `default`, se lanzará una excepción cuando ClickHouse no pueda analizar un registro; si se establece en `stream`, el error y el registro sin procesar se guardarán en las columnas virtuales. Cierra [#36035](https://github.com/ClickHouse/ClickHouse/issues/36035). [#55477](https://github.com/ClickHouse/ClickHouse/pull/55477) ([Kruglov Pavel](https://github.com/Avogar)).
* Mejora del cliente de Keeper: se añade el comando `get_all_children_number command`, que devuelve el número total de nodos hijo bajo una ruta específica. [#55485](https://github.com/ClickHouse/ClickHouse/pull/55485) ([guoxiaolong](https://github.com/guoxiaolongzte)).
* Mejora del cliente de Keeper: se añade el comando `get_direct_children_number`, que devuelve el número de nodos hijo directos de una ruta. [#55898](https://github.com/ClickHouse/ClickHouse/pull/55898) ([xuzifu666](https://github.com/xuzifu666)).
* Se añade la instrucción `SHOW SETTING setting_name`, que es una versión más sencilla de la instrucción existente `SHOW SETTINGS`. [#55979](https://github.com/ClickHouse/ClickHouse/pull/55979) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadieron los campos `substreams` y `filenames` a la tabla `system.parts_columns`. [#55108](https://github.com/ClickHouse/ClickHouse/pull/55108) ([Anton Popov](https://github.com/CurtizJ)).
* Se añade soporte para la consulta `SHOW MERGES`. [#55815](https://github.com/ClickHouse/ClickHouse/pull/55815) ([megao](https://github.com/jetgm)).
* Se introduce la configuración `create_table_empty_primary_key_by_default` para usar `ORDER BY ()` de forma predeterminada. [#55899](https://github.com/ClickHouse/ClickHouse/pull/55899) ([Srikanth Chekuri](https://github.com/srikanthccv)).

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

* Añade la opción `query_plan_preserve_num_streams_after_window_functions` para conservar el número de flujos tras evaluar las funciones de ventana y permitir el procesamiento paralelo de flujos. [#50771](https://github.com/ClickHouse/ClickHouse/pull/50771) ([frinkr](https://github.com/frinkr)).
* Liberar más flujos cuando los datos son pequeños. [#53867](https://github.com/ClickHouse/ClickHouse/pull/53867) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimización de RoaringBitmaps antes de la serialización. [#55044](https://github.com/ClickHouse/ClickHouse/pull/55044) ([UnamedRus](https://github.com/UnamedRus)).
* Las posting lists de los índices invertidos ahora están optimizadas para usar la representación más pequeña posible para los bitmaps internos. Dependiendo de lo repetitivos que sean los datos, esto puede reducir significativamente el consumo de espacio de los índices invertidos. [#55069](https://github.com/ClickHouse/ClickHouse/pull/55069) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Se corrige la contención en el bloqueo de Context, lo que mejora significativamente el rendimiento de muchas consultas concurrentes de corta duración. [#55121](https://github.com/ClickHouse/ClickHouse/pull/55121) ([Maksim Kita](https://github.com/kitaisreal)).
* Se mejoró en un 30 % el rendimiento de la creación de índices invertidos. Esto se logró al sustituir `std::unordered_map` por `absl::flat_hash_map`. [#55210](https://github.com/ClickHouse/ClickHouse/pull/55210) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Soporte para pushdown de filtros ORC (a nivel de grupo de filas). [#55330](https://github.com/ClickHouse/ClickHouse/pull/55330) ([李扬](https://github.com/taiyang-li)).
* Mejorar el rendimiento de la agregación externa cuando hay muchos archivos temporales. [#55489](https://github.com/ClickHouse/ClickHouse/pull/55489) ([Maksim Kita](https://github.com/kitaisreal)).
* Se establece de forma predeterminada un tamaño razonable para la caché de marks de los índices secundarios para evitar cargar los marks repetidamente. [#55654](https://github.com/ClickHouse/ClickHouse/pull/55654) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se evita la reconstrucción innecesaria de los gránulos de índice al leer índices de omisión. Esto soluciona [#55653](https://github.com/ClickHouse/ClickHouse/issues/55653#issuecomment-1763766009). [#55683](https://github.com/ClickHouse/ClickHouse/pull/55683) ([Amos Bird](https://github.com/amosbird)).
* Se almacena en caché la función CAST en el conjunto durante la ejecución para mejorar el rendimiento de la función `IN` cuando el tipo de elemento del conjunto no coincide exactamente con el tipo de la columna. [#55712](https://github.com/ClickHouse/ClickHouse/pull/55712) ([Duc Canh Le](https://github.com/canhld94)).
* Mejora del rendimiento de `ColumnVector::insertMany` y `ColumnVector::insertManyFrom`. [#55714](https://github.com/ClickHouse/ClickHouse/pull/55714) ([frinkr](https://github.com/frinkr)).
* Se optimizaron las operaciones de acceso por subíndice en Map al predecir la posición de la clave de la siguiente fila y reducir las comparaciones. [#55929](https://github.com/ClickHouse/ClickHouse/pull/55929) ([lgbo](https://github.com/lgbo-ustc)).
* Se añadió compatibilidad con la poda de campos de estructuras en Parquet (en versiones anteriores no funcionaba en algunos casos). [#56117](https://github.com/ClickHouse/ClickHouse/pull/56117) ([lgbo](https://github.com/lgbo-ustc)).
* Se añade la posibilidad de ajustar el número de réplicas paralelas utilizadas en la ejecución de una consulta en función de la estimación de las filas que se van a leer. [#51692](https://github.com/ClickHouse/ClickHouse/pull/51692) ([Raúl Marín](https://github.com/Algunenano)).
* Se optimizó el consumo de memoria de la agregación externa cuando se generaban muchos archivos temporales. [#54798](https://github.com/ClickHouse/ClickHouse/pull/54798) ([Nikita Taranov](https://github.com/nickitat)).
* Las consultas distribuidas ejecutadas en modo `async_socket_for_remote` (predeterminado) ahora respetan el límite de `max_threads`. Anteriormente, algunas consultas podían crear un número excesivo de hilos (hasta `max_distributed_connections`), lo que provocaba problemas de rendimiento en el servidor. [#53504](https://github.com/ClickHouse/ClickHouse/pull/53504) ([filimonov](https://github.com/filimonov)).
* Almacenamiento en caché de entradas omitibles al ejecutar DDL desde la cola de DDL distribuido de ZooKeeper. [#54828](https://github.com/ClickHouse/ClickHouse/pull/54828) ([Duc Canh Le](https://github.com/canhld94)).
* Los índices invertidos experimentales no almacenan tokens con demasiadas coincidencias (es decir, IDs de fila en la posting list). Esto ahorra espacio y evita búsquedas ineficaces en el índice cuando los escaneos secuenciales serían igual de rápidos o más rápidos. Las heurísticas anteriores (el parámetro `density` pasado a la definición del índice) que controlaban cuándo no se almacenaban los tokens eran demasiado confusas para los usuarios. Se introduce una heurística mucho más simple basada en el parámetro `max_rows_per_postings_list` (valor predeterminado: 64k), que controla directamente el número máximo permitido de IDs de fila en una postings list. [#55616](https://github.com/ClickHouse/ClickHouse/pull/55616) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Mejora el rendimiento de escritura de las tablas `EmbeddedRocksDB`. [#55732](https://github.com/ClickHouse/ClickHouse/pull/55732) ([Duc Canh Le](https://github.com/canhld94)).
* Se mejoró la resiliencia general de ClickHouse cuando hay muchas partes dentro de una partición (más de 1000). Esto podría reducir la cantidad de errores `TOO_MANY_PARTS`. [#55526](https://github.com/ClickHouse/ClickHouse/pull/55526) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se redujo el consumo de memoria durante la carga de diccionarios jerárquicos. [#55838](https://github.com/ClickHouse/ClickHouse/pull/55838) ([Nikita Taranov](https://github.com/nickitat)).
* Todos los diccionarios admiten el ajuste `dictionary_use_async_executor`. [#55839](https://github.com/ClickHouse/ClickHouse/pull/55839) ([vdimir](https://github.com/vdimir)).
* Evita el uso excesivo de memoria al deserializar AggregateFunctionTopKGenericData. [#55947](https://github.com/ClickHouse/ClickHouse/pull/55947) ([Raúl Marín](https://github.com/Algunenano)).
* En un Keeper con muchos watches, los hilos de AsyncMetrics pueden consumir el 100 % de la CPU durante un tiempo considerable en `DB::KeeperStorage::getSessionsWithWatchesCount`. La corrección consiste en evitar recorrer los grandes conjuntos `watches` y `list_watches`. [#56054](https://github.com/ClickHouse/ClickHouse/pull/56054) ([Alexander Gololobov](https://github.com/davenger)).
* Se agregó la configuración `optimize_trivial_approximate_count_query` para usar la aproximación de `count` en el motor de almacenamiento EmbeddedRocksDB. Se habilitó el conteo trivial para StorageJoin. [#55806](https://github.com/ClickHouse/ClickHouse/pull/55806) ([Duc Canh Le](https://github.com/canhld94)).

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

* Las funciones `toDayOfWeek` (alias de MySQL: `DAYOFWEEK`), `toYearWeek` (`YEARWEEK`) y `toWeek` (`WEEK`) ahora admiten argumentos de tipo `String`. Esto hace que su comportamiento sea coherente con el de MySQL. [#55589](https://github.com/ClickHouse/ClickHouse/pull/55589) ([Robert Schulze](https://github.com/rschu1ze)).
* Se introdujo la configuración `date_time_overflow_behavior` con los valores posibles `ignore`, `throw`, `saturate`, que controla el comportamiento ante desbordamientos al convertir de Date, Date32, DateTime64, Integer o Float a Date, Date32, DateTime o DateTime64. [#55696](https://github.com/ClickHouse/ClickHouse/pull/55696) ([Andrey Zvonov](https://github.com/zvonand)).
* Implementa la compatibilidad con parámetros de consulta en `ALTER TABLE ... ACTION PARTITION [ID] {parameter_name:ParameterType}`. Fusiona [#49516](https://github.com/ClickHouse/ClickHouse/issues/49516). Cierra [#49449](https://github.com/ClickHouse/ClickHouse/issues/49449). [#55604](https://github.com/ClickHouse/ClickHouse/pull/55604) ([alesapin](https://github.com/alesapin)).
* Mostrar los ID de los procesadores de forma más legible en EXPLAIN. [#48852](https://github.com/ClickHouse/ClickHouse/pull/48852) ([Vlad Seliverstov](https://github.com/behebot)).
* Se rechazará al crear un diccionario directo con un campo lifetime (ya que lifetime no tiene sentido para los diccionarios directos). Correcciones: [#27861](https://github.com/ClickHouse/ClickHouse/issues/27861). [#49043](https://github.com/ClickHouse/ClickHouse/pull/49043) ([Rory Crispin](https://github.com/RoryCrispin)).
* Se permiten parámetros en consultas con particiones, como `ALTER TABLE t DROP PARTITION`. Cierra [#49449](https://github.com/ClickHouse/ClickHouse/issues/49449). [#49516](https://github.com/ClickHouse/ClickHouse/pull/49516) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se agregó una nueva columna `xid` a `system.zookeeper_connection`. [#50702](https://github.com/ClickHouse/ClickHouse/pull/50702) ([helifu](https://github.com/helifu)).
* Mostrar los ajustes correctos del servidor en `system.server_settings` tras recargar la configuración. [#53774](https://github.com/ClickHouse/ClickHouse/pull/53774) ([helifu](https://github.com/helifu)).
* Se añadió compatibilidad con el carácter de signo menos matemático `−` en las consultas, igual que con `-`. [#54100](https://github.com/ClickHouse/ClickHouse/pull/54100) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade grupos de réplicas al motor de base de datos experimental `Replicated`. Cierra [#53620](https://github.com/ClickHouse/ClickHouse/issues/53620). [#54421](https://github.com/ClickHouse/ClickHouse/pull/54421) ([Nikolay Degterinsky](https://github.com/evillique)).
* Es mejor reintentar los errores recuperables de S3 que hacer fallar por completo la consulta. Se establece de forma predeterminada un valor mayor para `s3_retry_attempts`. [#54770](https://github.com/ClickHouse/ClickHouse/pull/54770) ([Sema Checherinda](https://github.com/CheSema)).
* Se añade el modo de balanceo de carga `hostname_levenshtein_distance`. [#54826](https://github.com/ClickHouse/ClickHouse/pull/54826) ([JackyWoo](https://github.com/JackyWoo)).
* Mejora al ocultar secretos en los logs. [#55089](https://github.com/ClickHouse/ClickHouse/pull/55089) ([Vitaly Baranov](https://github.com/vitlibar)).
* Por ahora, el análisis de proyecciones se realizará únicamente a partir del plan de consulta. La configuración `query_plan_optimize_projection` quedó obsoleta (estaba habilitada de forma predeterminada desde hace mucho tiempo). [#55112](https://github.com/ClickHouse/ClickHouse/pull/55112) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Cuando la función `untuple` se invoca ahora sobre una tupla con elementos con nombre y además tiene su propio alias (p. ej., `select untuple(tuple(1)::Tuple(element_alias Int)) AS untuple_alias`), el nombre de la columna resultante se genera ahora a partir del alias de `untuple` y del alias del elemento de la tupla (en el ejemplo: "untuple\_alias.element\_alias"). [#55123](https://github.com/ClickHouse/ClickHouse/pull/55123) ([garcher22](https://github.com/garcher22)).
* Se añadió la configuración `describe_include_virtual_columns`, que permite incluir las columnas virtuales de la tabla en el resultado de la consulta `DESCRIBE`. Se añadió la configuración `describe_compact_output`. Si se establece en `true`, la consulta `DESCRIBE` devuelve solo los nombres y los tipos de las columnas, sin información adicional. [#55129](https://github.com/ClickHouse/ClickHouse/pull/55129) ([Anton Popov](https://github.com/CurtizJ)).
* A veces, `OPTIMIZE` con `optimize_throw_if_noop=1` puede fallar con el error `unknown reason` cuando la causa real es que hay proyecciones distintas en diferentes partes. Este comportamiento ya se ha corregido. [#55130](https://github.com/ClickHouse/ClickHouse/pull/55130) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite tener varias tablas `MaterializedPostgreSQL` que sigan la misma tabla de Postgres. De forma predeterminada, este comportamiento no está activado (por compatibilidad, ya que es un cambio incompatible con versiones anteriores), pero puede habilitarse con la configuración `materialized_postgresql_use_unique_replication_consumer_identifier`. Cierra [#54918](https://github.com/ClickHouse/ClickHouse/issues/54918). [#55145](https://github.com/ClickHouse/ClickHouse/pull/55145) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permitir analizar `DateTime64` y `DateTime` negativos con parte fraccionaria a partir de cadenas cortas. [#55146](https://github.com/ClickHouse/ClickHouse/pull/55146) ([Andrey Zvonov](https://github.com/zvonand)).
* Para mejorar la compatibilidad con MySQL, 1. `information_schema.tables` ahora incluye el nuevo campo `table_rows` y 2. `information_schema.columns` ahora incluye el nuevo campo `extra`. [#55215](https://github.com/ClickHouse/ClickHouse/pull/55215) ([Robert Schulze](https://github.com/rschu1ze)).
* Clickhouse-client no mostrará "0 rows in set" si es cero y se produjo una excepción. [#55240](https://github.com/ClickHouse/ClickHouse/pull/55240) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Admite renombrar una tabla sin la palabra clave `TABLE`, como en `RENAME db.t1 to db.t2`. [#55373](https://github.com/ClickHouse/ClickHouse/pull/55373) ([凌涛](https://github.com/lingtaolf)).
* Se añade `internal_replication` a `system.clusters`. [#55377](https://github.com/ClickHouse/ClickHouse/pull/55377) ([Konstantin Morozov](https://github.com/k-morozov)).
* Seleccionar el resolvedor de proxy remoto según el protocolo de la solicitud, añadir documentación sobre la funcionalidad de proxy y eliminar `DB::ProxyConfiguration::Protocol::ANY`. [#55430](https://github.com/ClickHouse/ClickHouse/pull/55430) ([Arthur Passos](https://github.com/arthurpassos)).
* Evitar reintentar operaciones de Keeper en INSERT tras cerrar la tabla. [#55519](https://github.com/ClickHouse/ClickHouse/pull/55519) ([Azat Khuzhin](https://github.com/azat)).
* `SHOW COLUMNS` ahora informa correctamente el tipo `FixedString` como `BLOB` si la configuración `use_mysql_types_in_show_columns` está activada. También se añadieron dos nuevas opciones de configuración, `mysql_map_string_to_text_in_show_columns` y `mysql_map_fixed_string_to_text_in_show_columns`, para cambiar la salida de los tipos `String` y `FixedString` a `TEXT` o `BLOB`. [#55617](https://github.com/ClickHouse/ClickHouse/pull/55617) ([Serge Klochkov](https://github.com/slvrtrn)).
* Durante el arranque de las tablas ReplicatedMergeTree, el servidor ClickHouse comprueba el conjunto de partes para detectar partes inesperadas (existen localmente, pero no en ZooKeeper). Todas las partes inesperadas se mueven al directorio detached y, en su lugar, el servidor intenta restaurar algunas partes ancestro (cubiertas). Ahora el servidor intenta restaurar los ancestros más cercanos en lugar de partes cubiertas aleatorias. [#55645](https://github.com/ClickHouse/ClickHouse/pull/55645) ([alesapin](https://github.com/alesapin)).
* El dashboard avanzado ahora permite arrastrar gráficos en dispositivos táctiles. Esto cierra [#54206](https://github.com/ClickHouse/ClickHouse/issues/54206). [#55649](https://github.com/ClickHouse/ClickHouse/pull/55649) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usa el formato predeterminado de la consulta, si se ha declarado, al devolver una excepción con `http_write_exception_in_output_format`. [#55739](https://github.com/ClickHouse/ClickHouse/pull/55739) ([Raúl Marín](https://github.com/Algunenano)).
* Mejorar el mensaje para problemas comunes de MATERIALIZED VIEW. [#55826](https://github.com/ClickHouse/ClickHouse/pull/55826) ([Raúl Marín](https://github.com/Algunenano)).
* Si eliminaste la base de datos actual, aún podrás ejecutar algunas consultas en `clickhouse-local` y cambiar a otra base de datos. Esto hace que el comportamiento sea consistente con `clickhouse-client`. Esto cierra [#55834](https://github.com/ClickHouse/ClickHouse/issues/55834). [#55853](https://github.com/ClickHouse/ClickHouse/pull/55853) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las funciones `(add|subtract)(Year|Quarter|Month|Week|Day|Hour|Minute|Second|Millisecond|Microsecond|Nanosecond)` ahora admiten argumentos de fecha codificados en cadenas, por ejemplo, `SELECT addDays('2023-10-22', 1)`. Esto mejora la compatibilidad con MySQL y es necesario para Tableau Online. [#55869](https://github.com/ClickHouse/ClickHouse/pull/55869) ([Robert Schulze](https://github.com/rschu1ze)).
* La configuración `apply_deleted_mask`, cuando está deshabilitada, permite leer filas marcadas como eliminadas por consultas DELETE de eliminación ligera. Esto es útil para la depuración. [#55952](https://github.com/ClickHouse/ClickHouse/pull/55952) ([Alexander Gololobov](https://github.com/davenger)).
* Permite omitir los valores `null` al serializar Tuple como objetos JSON, lo que permite mantener la compatibilidad con la función `to_json` de Spark y también resulta útil para gluten. [#55956](https://github.com/ClickHouse/ClickHouse/pull/55956) ([李扬](https://github.com/taiyang-li)).
* Las funciones `(add|sub)Date` ahora admiten argumentos de fecha codificados en cadenas, p. ej., `SELECT addDate('2023-10-22 11:12:13', INTERVAL 5 MINUTE)`. El mismo soporte para argumentos de fecha codificados en cadenas se ha añadido a los operadores de suma y resta, p. ej., `SELECT '2023-10-23' + INTERVAL 1 DAY`. Esto aumenta la compatibilidad con MySQL y es necesario para Tableau Online. [#55960](https://github.com/ClickHouse/ClickHouse/pull/55960) ([Robert Schulze](https://github.com/rschu1ze)).
* Se permiten cadenas sin comillas con CR (`\r`) en formato CSV. Cierra [#39930](https://github.com/ClickHouse/ClickHouse/issues/39930). [#56046](https://github.com/ClickHouse/ClickHouse/pull/56046) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir ejecutar `clickhouse-keeper` con configuración integrada. [#56086](https://github.com/ClickHouse/ClickHouse/pull/56086) ([Maksim Kita](https://github.com/kitaisreal)).
* Se estableció un límite para el valor máximo de configuración de `queued.min.messages` a fin de evitar problemas al empezar a recuperar datos con Kafka. [#56121](https://github.com/ClickHouse/ClickHouse/pull/56121) ([Stas Morozov](https://github.com/r3b-fish)).
* Se corrigió un error tipográfico en la función SQL `minSampleSizeContinous` (renombrada como `minSampleSizeContinuous`). Se conserva el nombre anterior por compatibilidad con versiones anteriores. Esto cierra: [#56139](https://github.com/ClickHouse/ClickHouse/issues/56139). [#56143](https://github.com/ClickHouse/ClickHouse/pull/56143) ([Dorota Szeremeta](https://github.com/orotaday)).
* Imprime la ruta de las partes dañadas en el disco antes de apagar el servidor. Antes de este cambio, si una parte estaba corrupta en el disco y el servidor no podía iniciarse, era casi imposible saber qué parte estaba dañada. Esto se ha corregido. [#56181](https://github.com/ClickHouse/ClickHouse/pull/56181) ([Duc Canh Le](https://github.com/canhld94)).

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

* Si la base de datos en Docker ya está inicializada, no es necesario volver a inicializarla en lanzamientos posteriores. Esto puede corregir el problema de reinicios infinitos del contenedor cuando la base de datos no se carga en 1000 intentos (relevante para bases de datos muy grandes y configuraciones multinodo). [#50724](https://github.com/ClickHouse/ClickHouse/pull/50724) ([Alexander Nikolaev](https://github.com/AlexNik)).
* El recurso con el código fuente, incluidos los submódulos, se compila en una tarea especial de compilación para Darwin. Puede usarse para compilar ClickHouse sin necesidad de hacer checkout de los submódulos. [#51435](https://github.com/ClickHouse/ClickHouse/pull/51435) ([Ilya Yatsishin](https://github.com/qoega)).
* Se producía un error al compilar ClickHouse con el conjunto de instrucciones AVX habilitado globalmente (lo cual no se recomienda). La razón es que snappy no habilita `SNAPPY_HAVE_X86_CRC32`. [#55049](https://github.com/ClickHouse/ClickHouse/pull/55049) ([monchickey](https://github.com/monchickey)).
* Se resolvió un problema al iniciar `clickhouse-keeper` de forma independiente desde el paquete `clickhouse-server`. [#55226](https://github.com/ClickHouse/ClickHouse/pull/55226) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* En las pruebas, la versión de RabbitMQ se actualizó a la 3.12.6. Se mejoró la recopilación de logs para las pruebas de RabbitMQ. [#55424](https://github.com/ClickHouse/ClickHouse/pull/55424) ([Ilya Yatsishin](https://github.com/qoega)).
* Se modificó la diferencia en el mensaje de error entre openssl y boringssl para corregir la prueba funcional. [#55975](https://github.com/ClickHouse/ClickHouse/pull/55975) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Se usa el repositorio upstream para apache datasketches. [#55787](https://github.com/ClickHouse/ClickHouse/pull/55787) ([Nikita Taranov](https://github.com/nickitat)).

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

* Omitir la creación de enlaces físicos para archivos de índice invertido en mutaciones [#47663](https://github.com/ClickHouse/ClickHouse/pull/47663) ([cangyin](https://github.com/cangyin)).
* Se corrigió un error en la función `match` (regex) por el que un patrón con alternancia producía una condición de clave incorrecta. Cierra #53222. [#54696](https://github.com/ClickHouse/ClickHouse/pull/54696) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige el error 'Cannot find column' en la optimización de lectura en orden con ARRAY JOIN [#51746](https://github.com/ClickHouse/ClickHouse/pull/51746) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se añadió compatibilidad en consultas con las subcolumnas experimentales `Object(Nullable(json))` que faltaban. [#54052](https://github.com/ClickHouse/ClickHouse/pull/54052) ([zps](https://github.com/VanDarkholme7)).
* Se vuelve a aplicar la corrección de `accurateCastOrNull` [#54629](https://github.com/ClickHouse/ClickHouse/pull/54629) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se corrigió la detección de `DEFAULT` en columnas de una tabla Distributed creada sin AS [#55060](https://github.com/ClickHouse/ClickHouse/pull/55060) ([Vitaly Baranov](https://github.com/vitlibar)).
* Limpieza adecuada en caso de excepción en el constructor de ShellCommandSource [#55103](https://github.com/ClickHouse/ClickHouse/pull/55103) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrigió un interbloqueo en la actualización del rol asignado por LDAP [#55119](https://github.com/ClickHouse/ClickHouse/pull/55119) ([Julian Maicher](https://github.com/jmaicher)).
* Suprimir la actualización de las estadísticas de errores para excepciones internas [#55128](https://github.com/ClickHouse/ClickHouse/pull/55128) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige un interbloqueo en las copias de seguridad [#55132](https://github.com/ClickHouse/ClickHouse/pull/55132) ([alesapin](https://github.com/alesapin)).
* Se corrigió la recuperación de archivos Iceberg del almacenamiento [#55144](https://github.com/ClickHouse/ClickHouse/pull/55144) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la poda de particiones de columnas adicionales en Set. [#55172](https://github.com/ClickHouse/ClickHouse/pull/55172) ([Amos Bird](https://github.com/amosbird)).
* Corregido el recálculo de los skip indexes en las consultas ALTER UPDATE cuando la tabla tiene granularidad adaptativa [#55202](https://github.com/ClickHouse/ClickHouse/pull/55202) ([Duc Canh Le](https://github.com/canhld94)).
* Corrección de la descarga en segundo plano en fs cache [#55252](https://github.com/ClickHouse/ClickHouse/pull/55252) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Evita posibles fugas de memoria en los compresores si no se finaliza el búfer [#55262](https://github.com/ClickHouse/ClickHouse/pull/55262) ([Azat Khuzhin](https://github.com/azat)).
* Corregida la ejecución de funciones en columnas dispersas [#55275](https://github.com/ClickHouse/ClickHouse/pull/55275) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la fusión incorrecta de Nested para SELECT FINAL FROM SummingMergeTree [#55276](https://github.com/ClickHouse/ClickHouse/pull/55276) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un error que impedía eliminar una partición detached de un MergeTree replicado sobre S3 sin zero copy [#55309](https://github.com/ClickHouse/ClickHouse/pull/55309) ([alesapin](https://github.com/alesapin)).
* Se corrige un cierre inesperado en MergeSortingPartialResultTransform (debido a que no había fragmentos tras `remerge`) [#55335](https://github.com/ClickHouse/ClickHouse/pull/55335) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige una condición de carrera de datos en CreatingSetsTransform (en caso de errores) debida al lanzamiento de una excepción compartida [#55338](https://github.com/ClickHouse/ClickHouse/pull/55338) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la optimización de basura (hasta cierto punto) [#55353](https://github.com/ClickHouse/ClickHouse/pull/55353) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una fuga en StorageHDFS [#55370](https://github.com/ClickHouse/ClickHouse/pull/55370) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el análisis de arrays en el operador CAST [#55417](https://github.com/ClickHouse/ClickHouse/pull/55417) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el filtrado por columnas virtuales con el operador OR en la consulta [#55418](https://github.com/ClickHouse/ClickHouse/pull/55418) ([Azat Khuzhin](https://github.com/azat)).
* Soluciona problemas de conexión con MongoDB [#55419](https://github.com/ClickHouse/ClickHouse/pull/55419) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige la representación de valores booleanos en la interfaz MySQL [#55427](https://github.com/ClickHouse/ClickHouse/pull/55427) ([Serge Klochkov](https://github.com/slvrtrn)).
* Corregido el formato de DateTime en el protocolo de texto de MySQL y la notificación de tipos LowCardinality(Nullable(T)) [#55479](https://github.com/ClickHouse/ClickHouse/pull/55479) ([Serge Klochkov](https://github.com/slvrtrn)).
* Hacer que `use_mysql_types_in_show_columns` solo afecte a `SHOW COLUMNS` [#55481](https://github.com/ClickHouse/ClickHouse/pull/55481) ([Robert Schulze](https://github.com/rschu1ze)).
* Corregido el análisis incorrecto de `DW_FORM_ref_addr` en el simbolizador de pila, que a veces provocaba fallos [#55483](https://github.com/ClickHouse/ClickHouse/pull/55483) ([Michael Kolupaev](https://github.com/al13n321)).
* Destruir la fibra en caso de que se produzca una excepción en cancelBefore de AsyncTaskExecutor [#55516](https://github.com/ClickHouse/ClickHouse/pull/55516) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige que los parámetros de consulta no funcionen con controladores HTTP personalizados [#55521](https://github.com/ClickHouse/ClickHouse/pull/55521) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige la validación de datos no procesados en el formato Values [#55527](https://github.com/ClickHouse/ClickHouse/pull/55527) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió 'Invalid cursor state' en ODBC al interactuar con MS SQL Server [#55558](https://github.com/ClickHouse/ClickHouse/pull/55558) ([vdimir](https://github.com/vdimir)).
* Se corrigen el tiempo máximo de ejecución y el modo de desbordamiento 'break' [#55577](https://github.com/ClickHouse/ClickHouse/pull/55577) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige un fallo en QueryNormalizer con alias cíclicos [#55602](https://github.com/ClickHouse/ClickHouse/pull/55602) ([vdimir](https://github.com/vdimir)).
* Desactivar una optimización errónea y añadir una prueba [#55609](https://github.com/ClickHouse/ClickHouse/pull/55609) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Fusión [#52352](https://github.com/ClickHouse/ClickHouse/issues/52352) [#55621](https://github.com/ClickHouse/ClickHouse/pull/55621) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade una prueba para evitar una ordenación incorrecta de valores Decimal [#55662](https://github.com/ClickHouse/ClickHouse/pull/55662) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió la barra de progreso de las funciones Cluster de S3 y Azure con URL sin globs [#55666](https://github.com/ClickHouse/ClickHouse/pull/55666) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el filtrado por columnas virtuales con filtro OR en la consulta (reenvío) [#55678](https://github.com/ClickHouse/ClickHouse/pull/55678) ([Azat Khuzhin](https://github.com/azat)).
* Correcciones y mejoras en el almacenamiento de Iceberg [#55695](https://github.com/ClickHouse/ClickHouse/pull/55695) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige una condición de carrera en CreatingSetsTransform (v2) [#55786](https://github.com/ClickHouse/ClickHouse/pull/55786) ([Azat Khuzhin](https://github.com/azat)).
* Lanzar una excepción al analizar una cadena inválida como float si precise\_float\_parsing es true [#55861](https://github.com/ClickHouse/ClickHouse/pull/55861) ([李扬](https://github.com/taiyang-li)).
* Deshabilitar el pushdown de predicados si el CTE contiene funciones con estado [#55871](https://github.com/ClickHouse/ClickHouse/pull/55871) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió normalize ASTSelectWithUnionQuery, que estaba eliminando `FORMAT` de la consulta [#55887](https://github.com/ClickHouse/ClickHouse/pull/55887) ([flynn](https://github.com/ucasfl)).
* Se intenta corregir un posible fallo de segmentación en el formato de entrada ORC nativo [#55891](https://github.com/ClickHouse/ClickHouse/pull/55891) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigieron las funciones de ventana en el caso de columnas dispersas. [#55895](https://github.com/ClickHouse/ClickHouse/pull/55895) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* corrección: StorageNull admite subcolumnas [#55912](https://github.com/ClickHouse/ClickHouse/pull/55912) ([FFish](https://github.com/wxybear)).
* No registrar errores reintentables de mutate/merge de Replicated en el registro de errores [#55944](https://github.com/ClickHouse/ClickHouse/pull/55944) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige `SHOW DATABASES LIMIT <N>` [#55962](https://github.com/ClickHouse/ClickHouse/pull/55962) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige el esquema Protobuf autogenerado con campos con guiones bajos [#55974](https://github.com/ClickHouse/ClickHouse/pull/55974) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige dateTime64ToSnowflake64() cuando se usa una escala no predeterminada [#55983](https://github.com/ClickHouse/ClickHouse/pull/55983) ([Robert Schulze](https://github.com/rschu1ze)).
* Corregida la salida/entrada de la columna de diccionario de Arrow [#55989](https://github.com/ClickHouse/ClickHouse/pull/55989) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió la obtención del esquema desde el registro de esquemas en AvroConfluent [#55991](https://github.com/ClickHouse/ClickHouse/pull/55991) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el error 'Block structure mismatch' en operaciones ALTER e INSERT concurrentes en una tabla Buffer [#55995](https://github.com/ClickHouse/ClickHouse/pull/55995) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrige la contabilización incorrecta del espacio libre en la política JBOD least\_used [#56030](https://github.com/ClickHouse/ClickHouse/pull/56030) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el problema de falta de un valor escalar al evaluar subconsultas dentro de funciones de tabla [#56057](https://github.com/ClickHouse/ClickHouse/pull/56057) ([Amos Bird](https://github.com/amosbird)).
* Corrige un resultado incorrecto de la consulta cuando http\_write\_exception\_in\_output\_format=1 [#56135](https://github.com/ClickHouse/ClickHouse/pull/56135) ([Kruglov Pavel](https://github.com/Avogar)).
* Corregir la caché del esquema para el fallback JSON->JSONEachRow con la configuración modificada [#56172](https://github.com/ClickHouse/ClickHouse/pull/56172) ([Kruglov Pavel](https://github.com/Avogar)).
* Añadir un manejador de errores a odbc-bridge [#56185](https://github.com/ClickHouse/ClickHouse/pull/56185) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).

### <a id="239" /> Lanzamiento de ClickHouse 23.9, 2023-09-28. [Presentación](https://presentations.clickhouse.com/2023-release-23.9/), [Video](https://www.youtube.com/watch?v=yS8YU-rBpMM)

<Frame>
  <iframe src="https://www.youtube.com/embed/yS8YU-rBpMM" 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 la opción de configuración `status_info` y el estado de los diccionarios del handler predeterminado de Prometheus. [#54090](https://github.com/ClickHouse/ClickHouse/pull/54090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La caché de metadatos experimental de partes se elimina del código fuente. [#54215](https://github.com/ClickHouse/ClickHouse/pull/54215) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se deshabilita por defecto la configuración `input_format_json_try_infer_numbers_from_strings`, de modo que ya no se intentará inferir números a partir de cadenas en los formatos JSON de forma predeterminada, para evitar posibles errores de análisis cuando los datos de muestra contienen cadenas que parecen números. [#55099](https://github.com/ClickHouse/ClickHouse/pull/55099) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Mejora de la inferencia de esquemas en formatos JSON: 1) Ahora es posible inferir named Tuples a partir de JSON objects sin el JSON type experimental mediante la opción `input_format_json_try_infer_named_tuples_from_objects` en los formatos JSON. Antes, sin el tipo JSON experimental, solo podíamos inferir JSON objects como Strings o Maps; ahora también podemos inferir named Tuple. El tipo Tuple resultante contendrá todas las claves de los objetos leídos en la muestra de datos durante la inferencia de esquemas. Esto puede ser útil para leer datos JSON estructurados sin objetos dispersos. La opción está habilitada de forma predeterminada. 2) Permitir el parsing de un JSON array en una columna de tipo String mediante la opción `input_format_json_read_arrays_as_strings`. Esto puede ayudar a leer arrays con valores de distintos tipos. 3) Permitir usar el tipo String para claves JSON con tipos desconocidos (`null`/`[]`/`{}`) en los datos de muestra mediante la opción `input_format_json_infer_incomplete_types_as_strings`. Ahora, en los formatos JSON, podemos leer cualquier valor en una columna String y evitar el error `Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps` durante la inferencia de esquemas al usar el tipo String para tipos desconocidos, de modo que los datos se leerán correctamente. [#54427](https://github.com/ClickHouse/ClickHouse/pull/54427) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió compatibilidad con la planificación de IO para discos remotos. La configuración de almacenamiento para los tipos de disco `s3`, `s3_plain`, `hdfs` y `azure_blob_storage` ahora puede incluir elementos `read_resource` y `write_resource` con nombres de recursos. Las políticas de planificación para estos recursos pueden configurarse en una sección independiente `resources` de la configuración del servidor. Las consultas pueden marcarse con el ajuste `workload` y clasificarse mediante la sección `workload_classifiers` de la configuración del servidor para lograr distintos objetivos de planificación de recursos. Más detalles en [la documentación](/es/concepts/features/configuration/server-config/workload-scheduling). [#47009](https://github.com/ClickHouse/ClickHouse/pull/47009) ([Sergei Trifonov](https://github.com/serxa)). Se añadió el tipo de nodo de planificación de IO "bandwidth\_limit". Permite especificar restricciones `max_speed` y `max_burst` para el tráfico que pasa por este nodo. [#54618](https://github.com/ClickHouse/ClickHouse/pull/54618) ([Sergei Trifonov](https://github.com/serxa)).
* Se añadió un nuevo tipo de autenticación basado en claves SSH. Solo funciona con el protocolo TCP nativo. [#41109](https://github.com/ClickHouse/ClickHouse/pull/41109) ([George Gamezardashvili](https://github.com/InfJoker)).
* Se añadió una nueva columna `_block_number` a las tablas MergeTree. [#44532](https://github.com/ClickHouse/ClickHouse/issues/44532). [#47532](https://github.com/ClickHouse/ClickHouse/pull/47532) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Agregar la cláusula `IF EMPTY` a las consultas `DROP TABLE`. [#48915](https://github.com/ClickHouse/ClickHouse/pull/48915) ([Pavel Novitskiy](https://github.com/pnovitskiy)).
* Las funciones SQL `toString(datetime, timezone)` y `formatDateTime(datetime, format, timezone)` ahora admiten argumentos de zona horaria que no son constantes. [#53680](https://github.com/ClickHouse/ClickHouse/pull/53680) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añadió compatibilidad con `ALTER TABLE MODIFY COMMENT`. Nota: hace mucho tiempo un colaborador externo añadió algo similar, pero la funcionalidad no funcionaba en absoluto y solo confundía a los usuarios. Esto cierra [#36377](https://github.com/ClickHouse/ClickHouse/issues/36377). [#51304](https://github.com/ClickHouse/ClickHouse/pull/51304) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Nota: este comando no se propaga entre réplicas, por lo que las réplicas de una tabla podrían tener comentarios distintos.
* Se añadió `GCD`, también conocido como "máximo común divisor", como un nuevo códec de compresión de datos. El códec calcula el GCD de todos los valores de la columna y luego divide cada valor por el GCD. El códec GCD es un códec de preparación de datos (similar a Delta y DoubleDelta) y no puede usarse por sí solo. Funciona con datos de tipo entero, decimal y fecha/hora. Un caso de uso adecuado para el códec GCD es cuando los valores de una columna cambian (aumentan/disminuyen) en múltiplos del GCD; p. ej., 24 - 28 - 16 - 24 - 8 - 24 (suponiendo que GCD = 4). [#53149](https://github.com/ClickHouse/ClickHouse/pull/53149) ([Alexander Nam](https://github.com/seshWCS)).
* Se añadieron dos nuevos alias de tipo: `DECIMAL(P)` (como abreviatura de `DECIMAL(P, 0)`) y `DECIMAL` (como abreviatura de `DECIMAL(10, 0)`). Esto hace que ClickHouse sea más compatible con el dialecto SQL de MySQL. [#53328](https://github.com/ClickHouse/ClickHouse/pull/53328) ([Val Doroshchuk](https://github.com/valbok)).
* Se añadió una nueva tabla de log del sistema, `backup_log`, para hacer un seguimiento de todas las operaciones `BACKUP` y `RESTORE`. [#53638](https://github.com/ClickHouse/ClickHouse/pull/53638) ([Victor Krasnov](https://github.com/sirvickr)).
* Se añadió una configuración de formato `output_format_markdown_escape_special_characters` (valor predeterminado: false). Esta configuración controla si los caracteres especiales como `!`, `#`, `$`, etc. se escapan (es decir, si van precedidos de una barra invertida) en el formato de salida `Markdown`. [#53860](https://github.com/ClickHouse/ClickHouse/pull/53860) ([irenjj](https://github.com/irenjj)).
* Se añade la función `decodeHTMLComponent`. [#54097](https://github.com/ClickHouse/ClickHouse/pull/54097) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añadió `peak_threads_usage` a la tabla query\_log. [#54335](https://github.com/ClickHouse/ClickHouse/pull/54335) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Se añade soporte para `SHOW FUNCTIONS` en clickhouse-client. [#54337](https://github.com/ClickHouse/ClickHouse/pull/54337) ([Julia Kartseva](https://github.com/wat-ze-hex)).
* Se añadió la función `toDaysSinceYearZero` con el alias `TO_DAYS` (por compatibilidad con MySQL), que devuelve el número de días transcurridos desde `0001-01-01` (en el calendario gregoriano proléptico). [#54479](https://github.com/ClickHouse/ClickHouse/pull/54479) ([Robert Schulze](https://github.com/rschu1ze)). La función `toDaysSinceYearZero` ahora admite argumentos de tipo `DateTime` y `DateTime64`. [#54856](https://github.com/ClickHouse/ClickHouse/pull/54856) ([Serge Klochkov](https://github.com/slvrtrn)).
* Se añadieron las funciones `YYYYMMDDtoDate`, `YYYYMMDDtoDate32`, `YYYYMMDDhhmmssToDateTime` y `YYYYMMDDhhmmssToDateTime64`. Convierten una fecha o una fecha con hora codificada como entero (p. ej., 20230911) en una fecha nativa o una fecha con hora nativa. Por tanto, ofrecen la funcionalidad opuesta a las funciones existentes `YYYYMMDDToDate`, `YYYYMMDDToDateTime`, `YYYYMMDDhhmmddToDateTime`, `YYYYMMDDhhmmddToDateTime64`. [#54509](https://github.com/ClickHouse/ClickHouse/pull/54509) ([Quanfa Fu](https://github.com/dentiscalprum)) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añaden varias funciones de distancia entre cadenas, incluidas `byteHammingDistance` y `editDistance`. [#54935](https://github.com/ClickHouse/ClickHouse/pull/54935) ([flynn](https://github.com/ucasfl)).
* Permite especificar la fecha de caducidad y, opcionalmente, la hora de las credenciales de usuario mediante la cláusula `VALID UNTIL datetime`. [#51261](https://github.com/ClickHouse/ClickHouse/pull/51261) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se permiten URL de estilo S3 para las funciones de tabla `s3`, `gcs`, `oss`. La URL se convierte automáticamente a HTTP. Ejemplo: `'s3://clickhouse-public-datasets/hits.csv'` se convierte en `'https://clickhouse-public-datasets.s3.amazonaws.com/hits.csv'`. [#54931](https://github.com/ClickHouse/ClickHouse/pull/54931) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se agrega la nueva configuración `print_pretty_type_names` para mostrar de forma legible tipos profundamente anidados, como Tuple/Maps/Arrays. [#55095](https://github.com/ClickHouse/ClickHouse/pull/55095) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Acelera la lectura desde S3 al habilitar la lectura anticipada de forma predeterminada. [#53709](https://github.com/ClickHouse/ClickHouse/pull/53709) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* No se leen implícitamente las columnas PK y de versión en partes individuales cuando no son necesarias para consultas con FINAL. [#53919](https://github.com/ClickHouse/ClickHouse/pull/53919) ([Duc Canh Le](https://github.com/canhld94)).
* Optimiza la agrupación por claves constantes. Optimizará las consultas con `group by` `_file/_path` después de [https://github.com/ClickHouse/ClickHouse/pull/53529](https://github.com/ClickHouse/ClickHouse/pull/53529). [#53549](https://github.com/ClickHouse/ClickHouse/pull/53549) ([Kruglov Pavel](https://github.com/Avogar)).
* Se mejora el rendimiento de la ordenación de columnas `Decimal`. Se mejora el rendimiento de la inserción en `MergeTree` si ORDER BY contiene una columna `Decimal`. Se mejora el rendimiento de la ordenación cuando los datos ya están ordenados o casi ordenados. [#35961](https://github.com/ClickHouse/ClickHouse/pull/35961) ([Maksim Kita](https://github.com/kitaisreal)).
* Mejora el rendimiento en el análisis de consultas muy grandes. Corrige [#51224](https://github.com/ClickHouse/ClickHouse/issues/51224). [#51469](https://github.com/ClickHouse/ClickHouse/pull/51469) ([frinkr](https://github.com/frinkr)).
* Una optimización para reescribir `COUNT(DISTINCT ...)` y varias variantes de `uniq` como `count` si se seleccionan desde una subconsulta con GROUP BY. [#52082](https://github.com/ClickHouse/ClickHouse/pull/52082) [#52645](https://github.com/ClickHouse/ClickHouse/pull/52645) ([JackyWoo](https://github.com/JackyWoo)).
* Se eliminan las llamadas manuales a `mmap/mremap/munmap` y todo este trabajo se delega en `jemalloc`, lo que mejora ligeramente el rendimiento. [#52792](https://github.com/ClickHouse/ClickHouse/pull/52792) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrigió el elevado consumo de CPU al trabajar con NATS. [#54399](https://github.com/ClickHouse/ClickHouse/pull/54399) ([Vasilev Pyotr](https://github.com/vahpetr)).
* Dado que usamos instrucciones separadas para ejecutar `toString` con un argumento datetime, es posible mejorar un poco el rendimiento para los argumentos que no son datetime y hacer que algunas partes del código queden más limpias. Da seguimiento a [#53680](https://github.com/ClickHouse/ClickHouse/issues/53680). [#54443](https://github.com/ClickHouse/ClickHouse/pull/54443) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* En lugar de serializar elementos `json` en un `std::stringstream`, este PR intenta escribir el resultado de la serialización directamente en `ColumnString`. [#54613](https://github.com/ClickHouse/ClickHouse/pull/54613) ([lgbo](https://github.com/lgbo-ustc)).
* Se habilita la optimización de ORDER BY para leer datos en el orden correspondiente desde una tabla MergeTree cuando la tabla está detrás de una vista. [#54628](https://github.com/ClickHouse/ClickHouse/pull/54628) ([Vitaly Baranov](https://github.com/vitlibar)).
* Mejora las funciones JSON de SQL reutilizando `GeneratorJSONPath` y eliminando varios punteros compartidos. [#54735](https://github.com/ClickHouse/ClickHouse/pull/54735) ([lgbo](https://github.com/lgbo-ustc)).
* Keeper intenta agrupar en lotes las solicitudes de flush para mejorar el rendimiento. [#53049](https://github.com/ClickHouse/ClickHouse/pull/53049) ([Antonio Andelic](https://github.com/antonio2368)).
* Ahora `clickhouse-client` procesa archivos en paralelo cuando se usa `INFILE 'glob_expression'`. Cierra [#54218](https://github.com/ClickHouse/ClickHouse/issues/54218). [#54533](https://github.com/ClickHouse/ClickHouse/pull/54533) ([Max K.](https://github.com/mkaynov)).
* Permite usar la clave primaria con la función IN cuando los tipos de las columnas de la clave primaria son diferentes de los tipos de las columnas del lado derecho de la función `IN`. Ejemplo: `SELECT id FROM test_table WHERE id IN (SELECT '5')`. Cierra [#48936](https://github.com/ClickHouse/ClickHouse/issues/48936). [#54544](https://github.com/ClickHouse/ClickHouse/pull/54544) ([Maksim Kita](https://github.com/kitaisreal)).
* Hash JOIN intenta reducir el tamaño de los búferes internos que consumen la mitad de la memoria máxima disponible (establecida por `max_bytes_in_join`). [#54584](https://github.com/ClickHouse/ClickHouse/pull/54584) ([vdimir](https://github.com/vdimir)).
* Se respeta `max_block_size` para ARRAY JOIN a fin de evitar posibles OOM. Cierra [#54290](https://github.com/ClickHouse/ClickHouse/issues/54290). [#54664](https://github.com/ClickHouse/ClickHouse/pull/54664) ([李扬](https://github.com/taiyang-li)).
* Reutilización de conexiones HTTP en la función de tabla `s3`. [#54812](https://github.com/ClickHouse/ClickHouse/pull/54812) ([Michael Kolupaev](https://github.com/al13n321)).
* Se sustituyó la búsqueda lineal en `MergeTreeRangeReader::Stream::ceilRowsToCompleteGranules` por una búsqueda binaria. [#54869](https://github.com/ClickHouse/ClickHouse/pull/54869) ([usurai](https://github.com/usurai)).

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

* La creación de índices `Annoy` ahora puede paralelizarse mediante el ajuste `max_threads_for_annoy_index_creation`. [#54047](https://github.com/ClickHouse/ClickHouse/pull/54047) ([Robert Schulze](https://github.com/rschu1ze)).
* Las réplicas paralelas en Distributed no leen de todas las réplicas [#54199](https://github.com/ClickHouse/ClickHouse/pull/54199) ([Igor Nikonov](https://github.com/devcrafter)).

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

* Permite reemplazar los nombres largos de los archivos de las columnas en las partes de datos de `MergeTree` por hash de los nombres. Esto ayuda a evitar el error `File name too long` en algunos casos. [#50612](https://github.com/ClickHouse/ClickHouse/pull/50612) ([Anton Popov](https://github.com/CurtizJ)).
* Analiza datos en formato `JSON` como `JSONEachRow` si falla el análisis de los metadatos. Esto permite leer archivos con la extensión `.json` incluso si el formato real es JSONEachRow. Cierra [#45740](https://github.com/ClickHouse/ClickHouse/issues/45740). [#54405](https://github.com/ClickHouse/ClickHouse/pull/54405) ([Kruglov Pavel](https://github.com/Avogar)).
* Generar JSON/XML válido en caso de excepción durante la ejecución de consultas HTTP. Se añade la configuración `http_write_exception_in_output_format` para activar/desactivar este comportamiento (activado de forma predeterminada). [#52853](https://github.com/ClickHouse/ClickHouse/pull/52853) ([Kruglov Pavel](https://github.com/Avogar)).
* La vista `information_schema.tables` ahora incluye un nuevo campo `data_length` que muestra el tamaño aproximado de los datos en disco. Es necesario para ejecutar consultas generadas por Amazon QuickSight. [#55037](https://github.com/ClickHouse/ClickHouse/pull/55037) ([Robert Schulze](https://github.com/rschu1ze)).
* La interfaz MySQL incorporó una implementación mínima de sentencias preparadas, apenas suficiente para permitir una connection desde Tableau Online a ClickHouse mediante el connector de MySQL. [#54115](https://github.com/ClickHouse/ClickHouse/pull/54115) ([Serge Klochkov](https://github.com/slvrtrn)). Tenga en cuenta: la implementación de sentencias preparadas es muy básica; todavía no admitimos vincular argumentos, ya que no es necesario en este caso de uso concreto de Tableau Online. Se implementará más adelante si resulta necesario, tras realizar pruebas exhaustivas de Tableau Online en caso de que detectemos problemas.
* Admite los modos de coincidencia sin distinción entre mayúsculas y minúsculas y dot-all en los diccionarios `regexp_tree`. [#50906](https://github.com/ClickHouse/ClickHouse/pull/50906) ([Johann Gan](https://github.com/johanngan)).
* Mejora de Keeper: se añadió el comando de Keeper `createIfNotExists`. [#48855](https://github.com/ClickHouse/ClickHouse/pull/48855) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Inferencia de tipos enteros más precisa, corrige [#51236](https://github.com/ClickHouse/ClickHouse/issues/51236). [#53003](https://github.com/ClickHouse/ClickHouse/pull/53003) ([Chen768959](https://github.com/Chen768959)).
* Se introdujo la resolución de las codificaciones de caracteres en los literales de cadena de MaterializedMySQL. [#53220](https://github.com/ClickHouse/ClickHouse/pull/53220) ([Val Doroshchuk](https://github.com/valbok)).
* Se corrige un problema sutil en el poco utilizado motor de tabla `EmbeddedRocksDB` en una situación extremadamente rara: a veces, el motor de tabla `EmbeddedRocksDB` no cierra correctamente los archivos en NFS después de ejecutar `DROP TABLE`. [#53502](https://github.com/ClickHouse/ClickHouse/pull/53502) ([Mingliang Pan](https://github.com/liangliangpan)).
* `RESTORE TABLE ON CLUSTER` debe crear tablas replicadas con un UUID coincidente en los hosts. De lo contrario, la macro `{uuid}` en la ruta de ZooKeeper no puede funcionar correctamente después de RESTORE. Este PR lo implementa. [#53765](https://github.com/ClickHouse/ClickHouse/pull/53765) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añadió la opción de restore `restore_broken_parts_as_detached`: si es true, el proceso de RESTORE no se detendrá al encontrar partes dañadas durante la restauración; en su lugar, todas las partes dañadas se copiarán en la carpeta `detached` con el prefijo \`broken-from-backup'. Si es false, el proceso de RESTORE se detendrá en la primera parte dañada (si la hay). El valor predeterminado es false. [#53877](https://github.com/ClickHouse/ClickHouse/pull/53877) ([Vitaly Baranov](https://github.com/vitlibar)).
* Añadir el campo `elapsed_ns` a las cabeceras HTTP X-ClickHouse-Progress y X-ClickHouse-Summary. [#54179](https://github.com/ClickHouse/ClickHouse/pull/54179) ([joelynch](https://github.com/joelynch)).
* Implementación de los comandos `reconfig` ([https://github.com/ClickHouse/ClickHouse/pull/49450](https://github.com/ClickHouse/ClickHouse/pull/49450)), `sync` y `exists` para keeper-client. [#54201](https://github.com/ClickHouse/ClickHouse/pull/54201) ([pufit](https://github.com/pufit)).
* `clickhouse-local` y `clickhouse-client` ahora permiten especificar el parámetro `--query` varias veces, p. ej., `./clickhouse-client --query "SELECT 1" --query "SELECT 2"`. Esta sintaxis es un poco más intuitiva que `./clickhouse-client --multiquery "SELECT  1;S ELECT 2"`, algo más fácil de automatizar en scripts (p. ej., `queries.push_back('--query "$q"')`) y más coherente con el comportamiento del parámetro existente `--queries-file` (p. ej., `./clickhouse client --queries-file queries1.sql --queries-file queries2.sql`). [#54249](https://github.com/ClickHouse/ClickHouse/pull/54249) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió precisión de subsegundos a `formatReadableTimeDelta`. [#54250](https://github.com/ClickHouse/ClickHouse/pull/54250) ([Andrey Zvonov](https://github.com/zvonand)).
* Se habilita `allow_remove_stale_moving_parts` de forma predeterminada. [#54260](https://github.com/ClickHouse/ClickHouse/pull/54260) ([vdimir](https://github.com/vdimir)).
* Se corrige el uso de `count` de la caché y se mejora la barra de progreso al leer desde archivos. [#54271](https://github.com/ClickHouse/ClickHouse/pull/54271) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añade compatibilidad con credenciales de S3 mediante SSO. Para definir un perfil que se usará con SSO, establece la variable de entorno `AWS_PROFILE`. [#54347](https://github.com/ClickHouse/ClickHouse/pull/54347) ([Antonio Andelic](https://github.com/antonio2368)).
* Se admite NULL como valor predeterminado para los tipos anidados Array/Tuple/Map en los formatos de entrada. Cierra [#51100](https://github.com/ClickHouse/ClickHouse/issues/51100). [#54351](https://github.com/ClickHouse/ClickHouse/pull/54351) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir leer algunas configuraciones inusuales de fragmentos en formatos Arrow/Parquet. [#54370](https://github.com/ClickHouse/ClickHouse/pull/54370) ([Arthur Passos](https://github.com/arthurpassos)).
* Añade el alias `STD` a la función `stddevPop` para garantizar la compatibilidad con MySQL. Cierra [#54274](https://github.com/ClickHouse/ClickHouse/issues/54274). [#54382](https://github.com/ClickHouse/ClickHouse/pull/54382) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añade la función `addDate` por compatibilidad con MySQL y `subDate` para mantener la coherencia. Referencia [#54275](https://github.com/ClickHouse/ClickHouse/issues/54275). [#54400](https://github.com/ClickHouse/ClickHouse/pull/54400) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se agregó `modification_time` a `system.detached_parts`. [#54506](https://github.com/ClickHouse/ClickHouse/pull/54506) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió una configuración `splitby_max_substrings_includes_remaining_string` que controla si las funciones "splitBy\*()" con el argumento "max\_substring" > 0 incluyen la cadena restante (si la hay) en el Array resultante (semántica de Python/Spark) o no. El comportamiento predeterminado no cambia. [#54518](https://github.com/ClickHouse/ClickHouse/pull/54518) ([Robert Schulze](https://github.com/rschu1ze)).
* Mejora en la inferencia de tipos enteros para campos `Int64`/`UInt64`. Continuación de [#53003](https://github.com/ClickHouse/ClickHouse/pull/53003). Ahora también funciona con tipos anidados, como Arrays de Arrays, y con funciones como `map/tuple`. Problema: [#51236](https://github.com/ClickHouse/ClickHouse/issues/51236). [#54553](https://github.com/ClickHouse/ClickHouse/pull/54553) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadieron operaciones con arrays para multiplicar, dividir y calcular el módulo con escalares. Funciona en ambos sentidos; por ejemplo, `5 * [5, 5]` y `[5, 5] * 5`: ambos casos son posibles. [#54608](https://github.com/ClickHouse/ClickHouse/pull/54608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Añade el argumento opcional `version` al comando `rm` en `keeper-client` para permitir eliminaciones más seguras. [#54708](https://github.com/ClickHouse/ClickHouse/pull/54708) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Evitar que systemd finalice el servidor (esto puede provocar pérdida de datos al usar tablas Buffer). [#54744](https://github.com/ClickHouse/ClickHouse/pull/54744) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió el campo `is_deterministic` a la tabla del sistema `system.functions`, que indica si el resultado de una función es estable entre dos invocaciones (con exactamente los mismos valores de entrada) o no. [#54766](https://github.com/ClickHouse/ClickHouse/pull/54766) [#55035](https://github.com/ClickHouse/ClickHouse/pull/55035) ([Robert Schulze](https://github.com/rschu1ze)).
* Las vistas del esquema `information_schema` se hicieron más compatibles con las vistas equivalentes de MySQL (es decir, se modificaron y ampliaron) hasta el punto de que Tableau Online puede conectarse a ClickHouse. Más concretamente: 1. El tipo del campo `information_schema.tables.table_type` cambió de Enum8 a String. 2. Se añadieron los campos `table_comment` y `table_collation` a la vista `information_schema.table`. 3. Se añadieron las vistas `information_schema.key_column_usage` y `referential_constraints`. 4. Los alias en mayúsculas de las vistas de `information_schema` se sustituyeron por columnas concretas en mayúsculas. [#54773](https://github.com/ClickHouse/ClickHouse/pull/54773) ([Serge Klochkov](https://github.com/slvrtrn)).
* La caché de consultas ahora devuelve un error si intenta almacenar en caché el resultado de una consulta que incluye una función no determinista como `now`, `randomString` y `dictGet`. En comparación con el comportamiento anterior (simplemente no almacenaba el resultado en caché, sin avisar), esto reduce la confusión y las sorpresas. [#54801](https://github.com/ClickHouse/ClickHouse/pull/54801) ([Robert Schulze](https://github.com/rschu1ze)).
* Prohibir columnas especiales, como las materializadas, las efímeras o los alias, para los almacenamientos `file`/`s3`/`url`/..., corregir la inserción en columnas efímeras desde archivos. Cierra [#53477](https://github.com/ClickHouse/ClickHouse/issues/53477). [#54803](https://github.com/ClickHouse/ClickHouse/pull/54803) ([Kruglov Pavel](https://github.com/Avogar)).
* Recopilación de metadatos para copias de seguridad más configurable. [#54804](https://github.com/ClickHouse/ClickHouse/pull/54804) ([Vitaly Baranov](https://github.com/vitlibar)).
* El archivo de registro de `clickhouse-local` (si está habilitado con la opción --server\_logs\_file) ahora antepondrá a cada línea una marca temporal, el id del hilo, etc., igual que `clickhouse-server`. [#54807](https://github.com/ClickHouse/ClickHouse/pull/54807) ([Michael Kolupaev](https://github.com/al13n321)).
* Campo `is_obsolete` de la tabla `system.merge_tree_settings`: ahora vale 1 para las configuraciones de MergeTree obsoletas. Anteriormente, solo la descripción indicaba que la configuración estaba obsoleta. [#54837](https://github.com/ClickHouse/ClickHouse/pull/54837) ([Robert Schulze](https://github.com/rschu1ze)).
* Permitir el uso del plural en los literales de intervalo. `INTERVAL 2 HOURS` debería ser equivalente a `INTERVAL 2 HOUR`. [#54860](https://github.com/ClickHouse/ClickHouse/pull/54860) ([Jordi Villar](https://github.com/jrdi)).
* Permitir siempre crear una proyección con una PK `Nullable`. Esto corrige [#54814](https://github.com/ClickHouse/ClickHouse/issues/54814). [#54895](https://github.com/ClickHouse/ClickHouse/pull/54895) ([Amos Bird](https://github.com/amosbird)).
* Reintento de las operaciones S3 de la copia de seguridad tras un restablecimiento de la conexión. [#54900](https://github.com/ClickHouse/ClickHouse/pull/54900) ([Vitaly Baranov](https://github.com/vitlibar)).
* Hacer que el mensaje de excepción sea preciso en caso de que el valor máximo de una configuración sea inferior al valor mínimo. [#54925](https://github.com/ClickHouse/ClickHouse/pull/54925) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* `LIKE`, `match` y otras funciones de coincidencia de expresiones regulares ahora permiten buscar coincidencias con patrones que contienen subcadenas no UTF-8, recurriendo a la coincidencia binaria como alternativa. Ejemplo: puede usar `string LIKE '\xFE\xFF%'` para detectar la BOM. Esto resuelve [#54486](https://github.com/ClickHouse/ClickHouse/issues/54486). [#54942](https://github.com/ClickHouse/ClickHouse/pull/54942) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió el evento de perfil `ContextLockWaitMicroseconds`. [#55029](https://github.com/ClickHouse/ClickHouse/pull/55029) ([Maksim Kita](https://github.com/kitaisreal)).
* Keeper ajusta dinámicamente los niveles de log. [#50372](https://github.com/ClickHouse/ClickHouse/pull/50372) ([helifu](https://github.com/helifu)).
* Se añadió la función `timestamp` por compatibilidad con MySQL. Cierra [#54275](https://github.com/ClickHouse/ClickHouse/issues/54275). [#54639](https://github.com/ClickHouse/ClickHouse/pull/54639) ([Nikolay Degterinsky](https://github.com/evillique)).

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

* Se actualizó el compilador de las compilaciones oficiales y de integración continua de ClickHouse de Clang 16 a 17. [#53831](https://github.com/ClickHouse/ClickHouse/pull/53831) ([Robert Schulze](https://github.com/rschu1ze)).
* Se regeneraron los datos de TLD para búsquedas (`tldLookup.generated.cpp`). [#54269](https://github.com/ClickHouse/ClickHouse/pull/54269) ([Bharat Nallan](https://github.com/bharatnc)).
* Se eliminó el enlace simbólico redundante `clickhouse-keeper-client`. [#54587](https://github.com/ClickHouse/ClickHouse/pull/54587) ([Tomas Barton](https://github.com/deric)).
* Se usa `/usr/bin/env` para resolver bash; ahora es compatible con Nix OS. [#54603](https://github.com/ClickHouse/ClickHouse/pull/54603) ([Fionera](https://github.com/fionera)).
* CMake añadió la opción `PROFILE_CPU`, necesaria para ejecutar `perf record` sin usar un grafo de llamadas DWARF. [#54917](https://github.com/ClickHouse/ClickHouse/pull/54917) ([Maksim Kita](https://github.com/kitaisreal)).
* Si el enlazador no es LLD, se detiene con un error fatal. [#55036](https://github.com/ClickHouse/ClickHouse/pull/55036) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se sustituyó la biblioteca para manejar valores base64 (codificación/decodificación), de Turbo-Base64 a aklomp-base64. Ambas usan aceleración SIMD en x86 y ARM, pero 1. la licencia de esta última (BSD-2) es más favorable para ClickHouse; además, Turbo64 pasó entretanto a GPL-3; 2. al tener más estrellas en GitHub, aklomp-base64 parece una opción más sostenible a futuro; 3. aklomp-base64 tiene una API ligeramente mejor (aunque esto es discutible); y 4. aklomp-base64 no requiere aplicar soluciones temporales para esquivar errores (como una inicialización no segura para hilos). Nota: aklomp-base64 rechaza los valores base64 sin relleno, mientras que Turbo-Base64 los decodifica en la medida de lo posible. RFC-4648 deja abierto si el relleno es obligatorio o no, pero, según el contexto, esto puede suponer un cambio de comportamiento que conviene tener en cuenta. [#54119](https://github.com/ClickHouse/ClickHouse/pull/54119) ([Mikhail Koviazin](https://github.com/mkmkme)).

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

* Se corrige REPLACE/MOVE PARTITION con replicación zero-copy (nota: "la replicación zero-copy" es una característica experimental) [#54193](https://github.com/ClickHouse/ClickHouse/pull/54193) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige los bloqueos de zero copy con enlaces físicos (nota: "zero-copy replication" es una función experimental) [#54859](https://github.com/ClickHouse/ClickHouse/pull/54859) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrigen los residuos de zero copy (nota: "zero-copy replication" es una funcionalidad experimental) [#54550](https://github.com/ClickHouse/ClickHouse/pull/54550) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Pasar el tiempo de espera de reintento de HTTP en milisegundos (antes era incorrecto). [#54438](https://github.com/ClickHouse/ClickHouse/pull/54438) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige el mensaje de error confuso en OUTFILE con `CapnProto`/`Protobuf` [#52870](https://github.com/ClickHouse/ClickHouse/pull/52870) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la generación de informes resumidos con réplicas paralelas y LIMIT [#53050](https://github.com/ClickHouse/ClickHouse/pull/53050) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió la limitación de velocidad de los BACKUPs desde/hacia S3 (en caso de que no se hubiera usado la copia nativa) y también en algunos otros puntos [#53336](https://github.com/ClickHouse/ClickHouse/pull/53336) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la limitación de IO al copiar directorios completos [#53338](https://github.com/ClickHouse/ClickHouse/pull/53338) ([Azat Khuzhin](https://github.com/azat)).
* Corrección: al mover las actions a la condición `prewhere`, se puede perder una columna [#53492](https://github.com/ClickHouse/ClickHouse/pull/53492) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrigió un error interno al reemplazar por partes idénticas a nivel de bytes [#53735](https://github.com/ClickHouse/ClickHouse/pull/53735) ([Pedro Riera](https://github.com/priera)).
* Corrección: exigir que las columnas participen en la expresión `interpolate` [#53754](https://github.com/ClickHouse/ClickHouse/pull/53754) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrección de la inicialización del descubrimiento de clústeres + configuración de puntos de fallo en la configuración [#54113](https://github.com/ClickHouse/ClickHouse/pull/54113) ([vdimir](https://github.com/vdimir)).
* Se corrigen problemas en `accurateCastOrNull` [#54136](https://github.com/ClickHouse/ClickHouse/pull/54136) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se corrige la clave primaria Nullable con el modificador FINAL [#54164](https://github.com/ClickHouse/ClickHouse/pull/54164) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió un error que impedía insertar nuevos datos en una vista materializada replicada en presencia de datos duplicados. [#54184](https://github.com/ClickHouse/ClickHouse/pull/54184) ([Pedro Riera](https://github.com/priera)).
* Corrección: permitir `IPv6` en bloom filter [#54200](https://github.com/ClickHouse/ClickHouse/pull/54200) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* corrige una posible discrepancia de tipos con `IPv4` [#54212](https://github.com/ClickHouse/ClickHouse/pull/54212) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige `system.data_skipping_indices` para los índices recreados [#54225](https://github.com/ClickHouse/ClickHouse/pull/54225) ([Artur Malchanau](https://github.com/Hexta)).
* resolver el conflicto de nombres en el reescritor de múltiples join v2 [#54240](https://github.com/ClickHouse/ClickHouse/pull/54240) ([Tao Wang](https://github.com/wangtZJU)).
* Corrige errores inesperados en `system.errors` tras un JOIN [#54306](https://github.com/ClickHouse/ClickHouse/pull/54306) ([vdimir](https://github.com/vdimir)).
* Se ha corregido `isZeroOrNull(NULL)` [#54316](https://github.com/ClickHouse/ClickHouse/pull/54316) ([flynn](https://github.com/ucasfl)).
* Corrección: réplicas paralelas en Distributed con `prefer_localhost_replica` = 1 [#54334](https://github.com/ClickHouse/ClickHouse/pull/54334) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrige un error lógico en vertical merge + replacing merge tree + limpieza de OPTIMIZE [#54368](https://github.com/ClickHouse/ClickHouse/pull/54368) ([alesapin](https://github.com/alesapin)).
* Se corrige el posible error `URI contains invalid characters` en la table function `s3` [#54373](https://github.com/ClickHouse/ClickHouse/pull/54373) ([Kruglov Pavel](https://github.com/Avogar)).
* Corregido un segfault en la optimización del AST de la función `arrayExists` [#54379](https://github.com/ClickHouse/ClickHouse/pull/54379) ([Nikolay Degterinsky](https://github.com/evillique)).
* Comprobar si se produce un desbordamiento antes de la suma en la función `analysisOfVariance` [#54385](https://github.com/ClickHouse/ClickHouse/pull/54385) ([Antonio Andelic](https://github.com/antonio2368)).
* Reproducir y corregir el fallo en removeSharedRecursive [#54430](https://github.com/ClickHouse/ClickHouse/pull/54430) ([Sema Checherinda](https://github.com/CheSema)).
* Se corrige un posible error en los resultados con SimpleAggregateFunction en PREWHERE y FINAL [#54436](https://github.com/ClickHouse/ClickHouse/pull/54436) ([Azat Khuzhin](https://github.com/azat)).
* Corregido el filtrado de partes con indexHint cuando el analizador no está habilitado [#54449](https://github.com/ClickHouse/ClickHouse/pull/54449) ([Azat Khuzhin](https://github.com/azat)).
* Corregidas las proyecciones de agregación con estados normalizados [#54480](https://github.com/ClickHouse/ClickHouse/pull/54480) ([Amos Bird](https://github.com/amosbird)).
* `clickhouse-local`: alguna mejora para el parámetro multiquery [#54498](https://github.com/ClickHouse/ClickHouse/pull/54498) ([CuiShuoGuo](https://github.com/bakam412)).
* `clickhouse-local` admite el argumento `--database` en la línea de comandos [#54503](https://github.com/ClickHouse/ClickHouse/pull/54503) ([vdimir](https://github.com/vdimir)).
* Se corrige un posible error de análisis en los formatos `-WithNames` con `input_format_with_names_use_header` deshabilitado [#54513](https://github.com/ClickHouse/ClickHouse/pull/54513) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un caso poco frecuente del error CHECKSUM\_DOESNT\_MATCH [#54549](https://github.com/ClickHouse/ClickHouse/pull/54549) ([alesapin](https://github.com/alesapin)).
* Corrige la ordenación de `UNION ALL` con resultados ya ordenados [#54564](https://github.com/ClickHouse/ClickHouse/pull/54564) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corregida la instalación de snapshots en Keeper [#54572](https://github.com/ClickHouse/ClickHouse/pull/54572) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige una condición de carrera en `ColumnUnique` [#54575](https://github.com/ClickHouse/ClickHouse/pull/54575) ([Nikita Taranov](https://github.com/nickitat)).
* Índice Annoy/Usearch: se corrige LOGICAL\_ERROR durante la compilación con valores predeterminados [#54600](https://github.com/ClickHouse/ClickHouse/pull/54600) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigió la serialización de `ColumnDecimal` [#54601](https://github.com/ClickHouse/ClickHouse/pull/54601) ([Nikita Taranov](https://github.com/nickitat)).
* Corregida la inferencia de esquemas en las funciones \*Cluster para nombres de columna con espacios [#54635](https://github.com/ClickHouse/ClickHouse/pull/54635) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrección del uso de la estructura de las tablas de inserción en caso de valores predeterminados y de columnas de inserción explícitas [#54655](https://github.com/ClickHouse/ClickHouse/pull/54655) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrección: evitar usar una coincidencia con regex, que posiblemente contenga alternancia, como condición de clave. [#54696](https://github.com/ClickHouse/ClickHouse/pull/54696) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige ReplacingMergeTree con fusión vertical y limpieza [#54706](https://github.com/ClickHouse/ClickHouse/pull/54706) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrección de los valores incorrectos en las columnas virtuales después de ORDER BY [#54811](https://github.com/ClickHouse/ClickHouse/pull/54811) ([Michael Kolupaev](https://github.com/al13n321)).
* Corregir el filtrado de partes con `indexHint` cuando no se usa el analizador [#54825](https://github.com/ClickHouse/ClickHouse/pull/54825) [#54449](https://github.com/ClickHouse/ClickHouse/pull/54449) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un segfault de Keeper durante el apagado [#54841](https://github.com/ClickHouse/ClickHouse/pull/54841) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige `Invalid number of rows in Chunk` en MaterializedPostgreSQL [#54844](https://github.com/ClickHouse/ClickHouse/pull/54844) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Mover la configuración de formato obsoleta a una sección aparte [#54855](https://github.com/ClickHouse/ClickHouse/pull/54855) ([Kruglov Pavel](https://github.com/Avogar)).
* Reconstruir `minmax_count_projection` cuando se modifica la clave de partición [#54943](https://github.com/ClickHouse/ClickHouse/pull/54943) ([Amos Bird](https://github.com/amosbird)).
* Se corrige una conversión errónea a `ColumnVector<Int128>` en la función `if` [#55019](https://github.com/ClickHouse/ClickHouse/pull/55019) ([Kruglov Pavel](https://github.com/Avogar)).
* Evitar que se adjunten partes de tablas con proyecciones o índices diferentes [#55062](https://github.com/ClickHouse/ClickHouse/pull/55062) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Almacenar NULL en el mapa de resultados escalares cuando la subconsulta no devuelve resultados [#52240](https://github.com/ClickHouse/ClickHouse/pull/52240) ([vdimir](https://github.com/vdimir)).
* Se corrige un caso poco frecuente en el que `FINAL` produce rangos de lectura no válidos [#54934](https://github.com/ClickHouse/ClickHouse/pull/54934) ([Nikita Taranov](https://github.com/nickitat)).
* Corrección: quorum de insert sin reintentos de Keeper [#55026](https://github.com/ClickHouse/ClickHouse/pull/55026) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrige simple state con Nullable [#55030](https://github.com/ClickHouse/ClickHouse/pull/55030) ([Pedro Riera](https://github.com/priera)).

### <a id="238" /> Lanzamiento de ClickHouse 23.8 LTS, 2023-08-31. [Presentación](https://presentations.clickhouse.com/2023-release-23.8/), [Vídeo](https://www.youtube.com/watch?v=d1_pyoWcydk)

<Frame>
  <iframe src="https://www.youtube.com/embed/d1_pyoWcydk" 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>

* Si un disco dinámico tiene nombre, debe especificarse como `disk = disk(name = 'disk_name'`, ...) en los argumentos de la función `disk`. En la versión anterior podía especificarse como `disk = disk_<disk_name>(...)`, pero esto ya no es compatible. [#52820](https://github.com/ClickHouse/ClickHouse/pull/52820) ([Kseniia Sumarokova](https://github.com/kssenii)).
* `clickhouse-benchmark` establecerá conexiones en paralelo cuando se invoque con `--concurrency` mayor que uno. Antes era inutilizable si se ejecutaba con 1000 conexiones concurrentes desde Europa a EE. UU. También se corrige el cálculo de QPS para conexiones con alta latencia. Cambio incompatible con versiones anteriores: se elimina la opción de salida JSON de `clickhouse-benchmark`. Si ha utilizado esta opción, como solución alternativa también puede extraer datos de `system.query_log` en formato JSON. [#53293](https://github.com/ClickHouse/ClickHouse/pull/53293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se elimina la columna `microseconds` de `system.text_log` y la columna `milliseconds` de `system.metric_log` porque son redundantes al existir la columna `event_time_microseconds`. [#53601](https://github.com/ClickHouse/ClickHouse/pull/53601) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se deja obsoleta la funcionalidad de caché de metadatos. Es experimental y nunca la hemos usado. Esta funcionalidad es peligrosa: [#51182](https://github.com/ClickHouse/ClickHouse/issues/51182). Se elimina la tabla del sistema `system.merge_tree_metadata_cache`. La caché de metadatos sigue disponible en esta versión, pero se eliminará pronto. Esto cierra [#39197](https://github.com/ClickHouse/ClickHouse/issues/39197). [#51303](https://github.com/ClickHouse/ClickHouse/pull/51303) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se deshabilita la compatibilidad con 3DES en las conexiones TLS. [#52893](https://github.com/ClickHouse/ClickHouse/pull/52893) ([Kenji Noguchi](https://github.com/knoguchi)).

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

* Importación directa desde archivos comprimidos zip/7z/tar. Ejemplo: `file('*.zip :: *.csv')`. [#50321](https://github.com/ClickHouse/ClickHouse/pull/50321) ([nikitakeba](https://github.com/nikitakeba)).
* Se añade la columna `ptr` a `system.trace_log` para `trace_type = 'MemorySample'`. Esta columna contiene una dirección de memoria asignada. Se añadió la función `flameGraph`, que puede generar un flamegraph con memoria asignada y no liberada. Revisión de [#38391](https://github.com/ClickHouse/ClickHouse/issues/38391). [#45322](https://github.com/ClickHouse/ClickHouse/pull/45322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se añadió la table function `azureBlobStorageCluster`. El conjunto de funciones compatibles es muy similar al de la table function `s3Cluster`. [#50795](https://github.com/ClickHouse/ClickHouse/pull/50795) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se permite usar `cluster`, `clusterAllReplicas`, `remote` y `remoteSecure` sin nombre de tabla en el issue [#50808](https://github.com/ClickHouse/ClickHouse/issues/50808). [#50848](https://github.com/ClickHouse/ClickHouse/pull/50848) ([Yangkuan Liu](https://github.com/LiuYangkuan)).
* Una tabla del sistema para supervisar consumidores de Kafka. [#50999](https://github.com/ClickHouse/ClickHouse/pull/50999) ([Ilya Golshtein](https://github.com/ilejn)).
* Se añadió la opción de configuración `max_sessions_for_user`. [#51724](https://github.com/ClickHouse/ClickHouse/pull/51724) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Nuevas funciones `toUTCTimestamp/fromUTCTimestamp` que actúan igual que `to_utc_timestamp/from_utc_timestamp` de Spark. [#52117](https://github.com/ClickHouse/ClickHouse/pull/52117) ([KevinyhZou](https://github.com/KevinyhZou)).
* Agregar nuevas funciones `structureToCapnProtoSchema`/`structureToProtobufSchema` que convierten la estructura de una tabla de ClickHouse en un esquema en formato CapnProto/Protobuf. Permiten importar/exportar datos en formato CapnProto/Protobuf sin un esquema de formato externo mediante un esquema autogenerado a partir de la estructura de la tabla (controlado por los ajustes `format_capn_proto_use_autogenerated_schema`/`format_protobuf_use_autogenerated_schema`). Permiten exportar el esquema autogenerado durante la entrada/salida mediante el ajuste `output_format_schema`. [#52278](https://github.com/ClickHouse/ClickHouse/pull/52278) ([Kruglov Pavel](https://github.com/Avogar)).
* Un nuevo campo `query_cache_usage` en `system.query_log` ahora muestra si se utilizó la caché de consultas y de qué forma. [#52384](https://github.com/ClickHouse/ClickHouse/pull/52384) ([Robert Schulze](https://github.com/rschu1ze)).
* Se agregan las nuevas funciones `startsWithUTF8` y `endsWithUTF8`. [#52555](https://github.com/ClickHouse/ClickHouse/pull/52555) ([李扬](https://github.com/taiyang-li)).
* Permitir un número variable de columnas en TSV/CustomSeparated/JSONCompactEachRow y hacer que la inferencia de esquema funcione con un número variable de columnas. Añadir las opciones de configuración `input_format_tsv_allow_variable_number_of_columns`, `input_format_custom_allow_variable_number_of_columns`, `input_format_json_compact_allow_variable_number_of_columns`. [#52692](https://github.com/ClickHouse/ClickHouse/pull/52692) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadieron consultas `SYSTEM STOP/START PULLING REPLICATION LOG` (para realizar pruebas de `ReplicatedMergeTree`). [#52881](https://github.com/ClickHouse/ClickHouse/pull/52881) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Permitir la ejecución de funciones constantes no deterministas en mutaciones en el nodo iniciador. [#53129](https://github.com/ClickHouse/ClickHouse/pull/53129) ([Anton Popov](https://github.com/CurtizJ)).
* Se añade el formato de entrada `One`, que no lee ningún dato y siempre devuelve una sola fila con la columna `dummy` de tipo `UInt8` y valor `0`, igual que `system.one`. Puede usarse junto con las columnas virtuales `_file/_path` para listar archivos en las funciones de tabla file/s3/url/hdfs/etc. sin leer ningún dato. [#53209](https://github.com/ClickHouse/ClickHouse/pull/53209) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añade la función `tupleConcat`. Cierra [#52759](https://github.com/ClickHouse/ClickHouse/issues/52759). [#53239](https://github.com/ClickHouse/ClickHouse/pull/53239) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se admite la operación `TRUNCATE DATABASE`. [#53261](https://github.com/ClickHouse/ClickHouse/pull/53261) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añade la configuración `max_threads_for_indexes` para limitar el número de hilos utilizados para el procesamiento de la clave primaria. [#53313](https://github.com/ClickHouse/ClickHouse/pull/53313) ([jorisgio](https://github.com/jorisgio)).
* Volver a añadir las funciones SipHash con clave. [#53525](https://github.com/ClickHouse/ClickHouse/pull/53525) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* ([#52755](https://github.com/ClickHouse/ClickHouse/issues/52755), [#52895](https://github.com/ClickHouse/ClickHouse/issues/52895)) Se añadieron las funciones `arrayRotateLeft`, `arrayRotateRight`, `arrayShiftLeft` y `arrayShiftRight`. [#53557](https://github.com/ClickHouse/ClickHouse/pull/53557) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Añade la columna `name` a `system.clusters` como alias de `cluster`. [#53605](https://github.com/ClickHouse/ClickHouse/pull/53605) ([irenjj](https://github.com/irenjj)).
* El panel avanzado ahora permite la edición en masa (guardar/cargar). [#53608](https://github.com/ClickHouse/ClickHouse/pull/53608) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El dashboard avanzado ahora incluye una opción para maximizar los gráficos y reorganizarlos. [#53622](https://github.com/ClickHouse/ClickHouse/pull/53622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió soporte para la suma y resta de arrays: `[5,2] + [1,7]`. La división y la multiplicación no se implementaron debido a la confusión entre la multiplicación elemento a elemento y el producto escalar de los argumentos. Cierra [#49939](https://github.com/ClickHouse/ClickHouse/issues/49939). [#52625](https://github.com/ClickHouse/ClickHouse/pull/52625) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añade compatibilidad para usar literales de cadena como nombres de tabla. Cierra [#52178](https://github.com/ClickHouse/ClickHouse/issues/52178). [#52635](https://github.com/ClickHouse/ClickHouse/pull/52635) ([hendrik-m](https://github.com/hendrik-m)).

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

* Se añade un nuevo motor de tabla `S3Queue` para la importación de datos en streaming desde S3. Cierra [#37012](https://github.com/ClickHouse/ClickHouse/issues/37012). [#49086](https://github.com/ClickHouse/ClickHouse/pull/49086) ([s-kat](https://github.com/s-kat)). Aún no está listo para usarse. No lo use.
* Se habilita la lectura en paralelo desde réplicas a través de una tabla distribuida. Relacionado con [#49708](https://github.com/ClickHouse/ClickHouse/issues/49708). [#53005](https://github.com/ClickHouse/ClickHouse/pull/53005) ([Igor Nikonov](https://github.com/devcrafter)).
* Se añade compatibilidad experimental con HNSW como método de búsqueda aproximada de vecinos. [#53447](https://github.com/ClickHouse/ClickHouse/pull/53447) ([Davit Vardanyan](https://github.com/davvard)). Actualmente, está pensado para quienes siguen trabajando en la implementación. No lo use.

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

* Pushdown de filtros en Parquet. Es decir, al leer archivos Parquet, se omiten grupos de filas (fragmentos del archivo) en función de la condición WHERE y de los valores mínimo/máximo de cada columna. En particular, si el archivo está aproximadamente ordenado por alguna columna, las consultas que filtran por un rango corto de esa columna serán mucho más rápidas. [#52951](https://github.com/ClickHouse/ClickHouse/pull/52951) ([Michael Kolupaev](https://github.com/al13n321)).
* Optimiza la lectura de grupos de filas pequeños procesándolos por lotes en Parquet. Cierra [#53069](https://github.com/ClickHouse/ClickHouse/issues/53069). [#53281](https://github.com/ClickHouse/ClickHouse/pull/53281) ([Kruglov Pavel](https://github.com/Avogar)).
* Optimiza `count` a partir de archivos en la mayoría de los formatos de entrada. Cierra [#44334](https://github.com/ClickHouse/ClickHouse/issues/44334). [#53637](https://github.com/ClickHouse/ClickHouse/pull/53637) ([Kruglov Pavel](https://github.com/Avogar)).
* Utilice el filtrado por archivo/ruta antes de leer en las funciones de tabla `url`/`file`/`hdfs`. [#53529](https://github.com/ClickHouse/ClickHouse/pull/53529) ([Kruglov Pavel](https://github.com/Avogar)).
* Se habilitó la compilación JIT para AArch64, PowerPC, SystemZ y RISC-V. [#38217](https://github.com/ClickHouse/ClickHouse/pull/38217) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade la configuración `rewrite_count_distinct_if_with_count_distinct_implementation` para reescribir `countDistinctIf` usando `count_distinct_implementation`. Cierra [#30642](https://github.com/ClickHouse/ClickHouse/issues/30642). [#46051](https://github.com/ClickHouse/ClickHouse/pull/46051) ([flynn](https://github.com/ucasfl)).
* Acelera la fusión de estados de las funciones de agregación `uniq` y `uniqExact` al paralelizar la conversión antes de la fusión. [#50748](https://github.com/ClickHouse/ClickHouse/pull/50748) ([Jiebin Sun](https://github.com/jiebinn)).
* Optimiza el rendimiento de la agregación de claves de cadena Nullable al usar un gran número de claves de longitud variable. [#51399](https://github.com/ClickHouse/ClickHouse/pull/51399) ([LiuNeng](https://github.com/liuneng1994)).
* Se añade una pasada en el analizador para optimizar el filtro de tiempo con preimagen. Los experimentos de rendimiento de SSB en el dispositivo ICX (CPU Intel Xeon Platinum 8380, 80 núcleos, 160 hilos) muestran que este cambio podría aportar una mejora del 8,5 % en la media geométrica de QPS cuando el analizador experimental está habilitado. [#52091](https://github.com/ClickHouse/ClickHouse/pull/52091) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Optimizar la fusión cuando todos los conjuntos hash sean de un solo nivel en la función `uniqExact` (COUNT DISTINCT). [#52973](https://github.com/ClickHouse/ClickHouse/pull/52973) ([Jiebin Sun](https://github.com/jiebinn)).
* Motor de tabla `Join`: no clonar la estructura de datos de hash join con todas las columnas. [#53046](https://github.com/ClickHouse/ClickHouse/pull/53046) ([Duc Canh Le](https://github.com/canhld94)).
* Implementar el formato de entrada `ORC` nativo sin la biblioteca "apache arrow" para mejorar el rendimiento. [#53324](https://github.com/ClickHouse/ClickHouse/pull/53324) ([李扬](https://github.com/taiyang-li)).
* El dashboard indicará al servidor que comprima los datos, lo cual resulta útil para intervalos de tiempo amplios con conexiones a Internet lentas. Por ejemplo, un gráfico con 86400 puntos puede ocupar 1.5 MB sin comprimir y 60 KB comprimido con `br`. [#53569](https://github.com/ClickHouse/ClickHouse/pull/53569) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejor aprovechamiento del pool de hilos para las operaciones BACKUP y RESTORE. [#53649](https://github.com/ClickHouse/ClickHouse/pull/53649) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Cargar en paralelo los metadatos de la caché del sistema de archivos al iniciar. Se configura mediante la opción `load_metadata_threads` de la configuración de la caché (valor predeterminado: 1). Relacionado con [#52037](https://github.com/ClickHouse/ClickHouse/issues/52037). [#52943](https://github.com/ClickHouse/ClickHouse/pull/52943) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se mejora `move_primary_key_columns_to_end_of_prewhere`. [#53337](https://github.com/ClickHouse/ClickHouse/pull/53337) ([Han Fei](https://github.com/hanfei1991)).
* Esto optimiza la interacción con ClickHouse Keeper. Anteriormente, el llamador podía registrar varias veces el mismo callback de watch. En ese caso, cada entrada consumía memoria y se invocaba varias veces el mismo callback, lo que no tenía mucho sentido. Para evitarlo, el llamador podía implementar cierta lógica para no añadir varias veces el mismo watch. Con este cambio, esta deduplicación se realiza internamente si el callback de watch se pasa mediante shared\_ptr. [#53452](https://github.com/ClickHouse/ClickHouse/pull/53452) ([Alexander Gololobov](https://github.com/davenger)).
* Almacenamiento en caché del número de filas en archivos para `count` en las funciones file/s3/url/hdfs/azure. La caché puede habilitarse o deshabilitarse configurando `use_cache_for_count_from_files` (habilitada de forma predeterminada). Continuación de [https://github.com/ClickHouse/ClickHouse/pull/53637](https://github.com/ClickHouse/ClickHouse/pull/53637). [#53692](https://github.com/ClickHouse/ClickHouse/pull/53692) ([Kruglov Pavel](https://github.com/Avogar)).
* Una gestión más cuidadosa de los hilos mejorará en más de \~25% la velocidad de la función de tabla S3 con un gran número de archivos. [#53668](https://github.com/ClickHouse/ClickHouse/pull/53668) ([pufit](https://github.com/pufit)).

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

* Agregar la configuración/ajuste `stderr_reaction` para controlar la reacción (none, log o throw) cuando hay datos en `stderr` de un comando externo. Esto facilita la depuración de comandos externos. [#43210](https://github.com/ClickHouse/ClickHouse/pull/43210) ([Amos Bird](https://github.com/amosbird)).
* Agregar la columna `partition` a la tabla `system part_log` y a la tabla merge. [#48990](https://github.com/ClickHouse/ClickHouse/pull/48990) ([Jianfei Hu](https://github.com/incfly)).
* Los tamaños de las cachés de índices sin comprimir/marcas, `mmap` y consultas ahora pueden configurarse dinámicamente en tiempo de ejecución (sin reiniciar el servidor). [#51446](https://github.com/ClickHouse/ClickHouse/pull/51446) ([Robert Schulze](https://github.com/rschu1ze)).
* Si un diccionario se crea con una clave compleja, se elige automáticamente la variante de diseño "complex key". [#49587](https://github.com/ClickHouse/ClickHouse/pull/49587) ([xiebin](https://github.com/xbthink)).
* Se añade la configuración `use_concurrency_control` para mejorar las pruebas de la nueva funcionalidad de control de concurrencia. [#49618](https://github.com/ClickHouse/ClickHouse/pull/49618) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadieron sugerencias para nombres de bases de datos y tablas mal escritos. [#49801](https://github.com/ClickHouse/ClickHouse/pull/49801) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Al leer archivos pequeños de HDFS con Gluten, descubrimos que tardaba más que al realizar una consulta directamente con Spark. E hicimos algo al respecto. [#50063](https://github.com/ClickHouse/ClickHouse/pull/50063) ([KevinyhZou](https://github.com/KevinyhZou)).
* Había demasiados logs de error inútiles tras la expiración de la sesión, algo que no nos gustaba. [#50171](https://github.com/ClickHouse/ClickHouse/pull/50171) ([helifu](https://github.com/helifu)).
* Se introducen sesiones de ZooKeeper de reserva con tiempo limitado. Se corrigió la columna `index` en system.zookeeper\_connection para direcciones DNS. [#50424](https://github.com/ClickHouse/ClickHouse/pull/50424) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Se añade la posibilidad de registrar cuándo se alcanza max\_partitions\_per\_insert\_block. [#50948](https://github.com/ClickHouse/ClickHouse/pull/50948) ([Sean Haynes](https://github.com/seandhaynes)).
* Se añadieron varios comandos personalizados a clickhouse-keeper-client (principalmente para facilitar la depuración de ClickHouse). [#51117](https://github.com/ClickHouse/ClickHouse/pull/51117) ([pufit](https://github.com/pufit)).
* Se actualizó la comprobación de la cadena de conexión en la table function `azureBlobStorage`, ya que una cadena de conexión con "sas" no siempre empieza con el endpoint predeterminado, y se actualizó la URL de conexión para incluir el token "sas" después de añadir el contenedor de Azure a la URL. [#51141](https://github.com/ClickHouse/ClickHouse/pull/51141) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige la descripción del filtrado de conjuntos en el algoritmo JOIN `full_sorting_merge`. [#51329](https://github.com/ClickHouse/ClickHouse/pull/51329) ([Tanay Tummalapalli](https://github.com/ttanay)).
* Se corrigió el consumo de memoria en `Aggregator` cuando `max_block_size` es muy grande. [#51566](https://github.com/ClickHouse/ClickHouse/pull/51566) ([Nikita Taranov](https://github.com/nickitat)).
* Añade el comando `SYSTEM SYNC FILESYSTEM CACHE`. Comparará el estado en memoria de la caché del sistema de archivos con lo que hay en disco y corregirá ese estado en memoria si es necesario. Esto solo es necesario si realizas intervenciones manuales en los datos almacenados en disco, algo que se desaconseja encarecidamente. [#51622](https://github.com/ClickHouse/ClickHouse/pull/51622) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Intento de crear un resolver de proxy genérico para CH, manteniendo la compatibilidad con versiones anteriores con el resolver de proxy existente para la configuración de almacenamiento S3. [#51749](https://github.com/ClickHouse/ClickHouse/pull/51749) ([Arthur Passos](https://github.com/arthurpassos)).
* Se admite la lectura de subcolumnas de tuplas desde las funciones de tabla file/s3/hdfs/url/azureBlobStorage. [#51806](https://github.com/ClickHouse/ClickHouse/pull/51806) ([Kruglov Pavel](https://github.com/Avogar)).
* La función `arrayIntersect` ahora devuelve los valores en el orden correspondiente al del primer argumento. Cierra [#27622](https://github.com/ClickHouse/ClickHouse/issues/27622). [#51850](https://github.com/ClickHouse/ClickHouse/pull/51850) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se añaden nuevas consultas que permiten crear/eliminar entidades de acceso en el almacenamiento de acceso especificado o mover entidades de acceso de un almacenamiento de acceso a otro. [#51912](https://github.com/ClickHouse/ClickHouse/pull/51912) ([pufit](https://github.com/pufit)).
* Hacer que las consultas `ALTER TABLE FREEZE` no se repliquen en el engine de base de datos Replicated. [#52064](https://github.com/ClickHouse/ClickHouse/pull/52064) ([Mike Kot](https://github.com/myrrc)).
* Se añadió la posibilidad de volcar las tablas del sistema en caso de cierre inesperado. [#52174](https://github.com/ClickHouse/ClickHouse/pull/52174) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Se corrigió el caso en que la `table function` `s3` no funcionaba con URL prefirmadas. cierra [#50846](https://github.com/ClickHouse/ClickHouse/issues/50846). [#52310](https://github.com/ClickHouse/ClickHouse/pull/52310) ([chen](https://github.com/xiedeyantu)).
* Se añadió la columna `name` como alias de `event` y `metric` en las tablas `system.events` y `system.metrics`. Cierra [#51257](https://github.com/ClickHouse/ClickHouse/issues/51257). [#52315](https://github.com/ClickHouse/ClickHouse/pull/52315) ([chen](https://github.com/xiedeyantu)).
* Se añadió compatibilidad en el analizador sintáctico con la sintaxis `CREATE UNIQUE INDEX` como una operación sin efecto para mejorar la compatibilidad con SQL. El índice `UNIQUE` no es compatible. Establezca `create_index_ignore_unique = 1` para ignorar la palabra clave UNIQUE en las consultas. [#52320](https://github.com/ClickHouse/ClickHouse/pull/52320) ([Ilya Yatsishin](https://github.com/qoega)).
* Se añade soporte para macros predefinidas (`{database}` y `{table}`) en algunos ajustes del motor Kafka: topic, consumer, client\_id, etc. [#52386](https://github.com/ClickHouse/ClickHouse/pull/52386) ([Yury Bogomolov](https://github.com/ybogo)).
* Deshabilitar la actualización de la caché del sistema de archivos durante la copia de seguridad/restauración. La caché del sistema de archivos no debe actualizarse durante la copia de seguridad/restauración, ya que parece que solo ralentiza el proceso sin aportar ningún beneficio (porque el comando BACKUP puede leer una gran cantidad de datos y no tiene sentido colocar todos los datos en la caché del sistema de archivos para expulsarlos inmediatamente). [#52402](https://github.com/ClickHouse/ClickHouse/pull/52402) ([Vitaly Baranov](https://github.com/vitlibar)).
* La configuración del endpoint de S3 permite usarlo desde la raíz y agregar '/' automáticamente si es necesario. [#47809](https://github.com/ClickHouse/ClickHouse/issues/47809). [#52600](https://github.com/ClickHouse/ClickHouse/pull/52600) ([xiaolei565](https://github.com/xiaolei565)).
* Para clickhouse-local, permitir opciones posicionales y rellenar la configuración global de UDF (user\_scripts\_path y user\_defined\_executable\_functions\_config). [#52643](https://github.com/ClickHouse/ClickHouse/pull/52643) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* `system.asynchronous_metrics` ahora incluye las métricas "QueryCacheEntries" y "QueryCacheBytes" para inspeccionar la caché de consultas. [#52650](https://github.com/ClickHouse/ClickHouse/pull/52650) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió la opción de usar el parámetro `s3_storage_class` en la cláusula `SETTINGS` de la instrucción `BACKUP` para realizar copias de seguridad en S3. [#52658](https://github.com/ClickHouse/ClickHouse/pull/52658) ([Roman Vasin](https://github.com/rvasin)).
* Añadir la utilidad `print-backup-info.py`, que analiza un archivo de metadatos de copia de seguridad y muestra información sobre la copia de seguridad. [#52690](https://github.com/ClickHouse/ClickHouse/pull/52690) ([Vitaly Baranov](https://github.com/vitlibar)).
* Cierra [#49510](https://github.com/ClickHouse/ClickHouse/issues/49510). Actualmente, los nombres de las bases de datos y de las tablas son sensibles a mayúsculas y minúsculas, pero las herramientas de BI consultan `information_schema` a veces en minúsculas y otras en mayúsculas. Por este motivo, tenemos la base de datos `information_schema`, que contiene tablas en minúsculas, como `information_schema.tables`, y la base de datos `INFORMATION_SCHEMA`, que contiene tablas en mayúsculas, como `INFORMATION_SCHEMA.TABLES`. Pero algunas herramientas consultan `INFORMATION_SCHEMA.tables` e `information_schema.TABLES`. La solución propuesta es duplicar las tablas tanto en minúsculas como en mayúsculas en las versiones en minúsculas y en mayúsculas de la base de datos `information_schema`. [#52695](https://github.com/ClickHouse/ClickHouse/pull/52695) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* La consulta `CHECK TABLE` ofrece mejor rendimiento y usabilidad (envía actualizaciones de progreso y se puede cancelar). [#52745](https://github.com/ClickHouse/ClickHouse/pull/52745) ([vdimir](https://github.com/vdimir)).
* Se agregó compatibilidad con `modulo`, `intDiv` e `intDivOrZero` para tuplas, al distribuirlos entre los elementos de la tupla. [#52758](https://github.com/ClickHouse/ClickHouse/pull/52758) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Buscar las configuraciones predeterminadas `yaml` y `yml` en clickhouse-client después de `xml`. [#52767](https://github.com/ClickHouse/ClickHouse/pull/52767) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Al fusionar en una configuración cuya raíz no es 'clickhouse', las configuraciones con un nombre de nodo raíz diferente simplemente se omitían sin lanzar ninguna excepción. [#52770](https://github.com/ClickHouse/ClickHouse/pull/52770) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Ahora es posible especificar el tamaño mínimo (`memory_profiler_sample_min_allocation_size`) y máximo (`memory_profiler_sample_max_allocation_size`) de las asignaciones de memoria que se rastrearán con el profiler de memoria por muestreo. [#52779](https://github.com/ClickHouse/ClickHouse/pull/52779) ([alesapin](https://github.com/alesapin)).
* Añadir la configuración `precise_float_parsing` para alternar entre métodos de análisis de números de coma flotante (rápido/preciso). [#52791](https://github.com/ClickHouse/ClickHouse/pull/52791) ([Andrey Zvonov](https://github.com/zvonand)).
* Usar las mismas rutas predeterminadas para `clickhouse-keeper` (enlace simbólico) que para `clickhouse-keeper` (ejecutable). [#52861](https://github.com/ClickHouse/ClickHouse/pull/52861) ([Vitaly Baranov](https://github.com/vitlibar)).
* Mejora el mensaje de error de la función de tabla `remote`. Cierra [#40220](https://github.com/ClickHouse/ClickHouse/issues/40220). [#52959](https://github.com/ClickHouse/ClickHouse/pull/52959) ([jiyoungyoooo](https://github.com/jiyoungyoooo)).
* Se añadió la posibilidad de especificar una política de almacenamiento personalizada en la cláusula `SETTINGS` de las sentencias `RESTORE`. [#52970](https://github.com/ClickHouse/ClickHouse/pull/52970) ([Victor Krasnov](https://github.com/sirvickr)).
* Se añade la posibilidad de limitar las solicitudes a S3 en las operaciones de copia de seguridad (los comandos `BACKUP` y `RESTORE` ahora respetan `s3_max_[get/put]_[rps/burst]`). [#52974](https://github.com/ClickHouse/ClickHouse/pull/52974) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Agregar ajustes para ignorar la cláusula ON CLUSTER en las consultas al gestionar funciones definidas por el usuario replicadas o entidades de control de acceso con almacenamiento replicado. [#52975](https://github.com/ClickHouse/ClickHouse/pull/52975) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Acciones de EXPLAIN para la etapa JOIN. [#53006](https://github.com/ClickHouse/ClickHouse/pull/53006) ([Maksim Kita](https://github.com/kitaisreal)).
* Hacer que `hasTokenOrNull` y `hasTokenCaseInsensitiveOrNull` devuelvan null si las cadenas de búsqueda están vacías. [#53059](https://github.com/ClickHouse/ClickHouse/pull/53059) ([ltrk2](https://github.com/ltrk2)).
* Permite restringir las rutas permitidas para las cachés del sistema de archivos. Resulta especialmente útil para discos dinámicos. Si se especifica `filesystem_caches_path` en la configuración del servidor, todas las rutas de las cachés del sistema de archivos quedarán restringidas a este directorio. Por ejemplo, si `path` en la configuración de la caché es relativa, se ubicará en `filesystem_caches_path`; si `path` en la configuración de la caché es absoluta, será obligatorio que esté dentro de `filesystem_caches_path`. Si `filesystem_caches_path` no se especifica en la configuración, el comportamiento será el mismo que en versiones anteriores. [#53124](https://github.com/ClickHouse/ClickHouse/pull/53124) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se agregaron varios comandos personalizados (principalmente para facilitar la depuración de ClickHouse). [#53127](https://github.com/ClickHouse/ClickHouse/pull/53127) ([pufit](https://github.com/pufit)).
* Agregar información de diagnóstico sobre el nombre del archivo durante la inferencia del esquema: resulta útil al procesar varios archivos con globs. [#53135](https://github.com/ClickHouse/ClickHouse/pull/53135) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El cliente cargará las sugerencias mediante la conexión principal si la segunda conexión no tiene permiso para crear una sesión. [#53177](https://github.com/ClickHouse/ClickHouse/pull/53177) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Se añade la cláusula EXCEPT a la consulta `SYSTEM STOP/START LISTEN QUERIES [ALL/DEFAULT/CUSTOM]`, por ejemplo `SYSTEM STOP LISTEN QUERIES ALL EXCEPT TCP, HTTP`. [#53280](https://github.com/ClickHouse/ClickHouse/pull/53280) ([Nikolay Degterinsky](https://github.com/evillique)).
* Cambie el valor predeterminado de `max_concurrent_queries` de 100 a 1000. Está bien tener muchas consultas concurrentes si no son pesadas y la mayoría están esperando a la red. Nota: no confunda las consultas concurrentes con los QPS: por ejemplo, el servidor ClickHouse puede manejar decenas de miles de QPS con menos de 100 consultas concurrentes. [#53285](https://github.com/ClickHouse/ClickHouse/pull/53285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Limitar el número de fusiones simultáneas de optimización de particiones en segundo plano. [#53405](https://github.com/ClickHouse/ClickHouse/pull/53405) ([Duc Canh Le](https://github.com/canhld94)).
* Se añadió la configuración `allow_moving_table_directory_to_trash`, que permite ignorar el error `Directory for table data already exists` al replicar o recuperar una base de datos `Replicated`. [#53425](https://github.com/ClickHouse/ClickHouse/pull/53425) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Si los ajustes del servidor `asynchronous_metrics_update_period_s` y `asynchronous_heavy_metrics_update_period_s` se configuran erróneamente con el valor 0, ahora se producirá un fallo controlado en lugar de que la aplicación se cierre. [#53428](https://github.com/ClickHouse/ClickHouse/pull/53428) ([Robert Schulze](https://github.com/rschu1ze)).
* El servidor de ClickHouse ahora respeta los límites de memoria modificados a través de cgroups al recargar su configuración. [#53455](https://github.com/ClickHouse/ClickHouse/pull/53455) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió la posibilidad de desactivar el vaciado de las tablas distribuidas al ejecutar `DETACH`, `DROP` o al apagar el servidor. [#53501](https://github.com/ClickHouse/ClickHouse/pull/53501) ([Azat Khuzhin](https://github.com/azat)).
* La función `domainRFC` ahora también admite IPv6 entre corchetes. [#53506](https://github.com/ClickHouse/ClickHouse/pull/53506) ([Chen768959](https://github.com/Chen768959)).
* Se usa un timeout más largo para las solicitudes CopyObject de S3, que se utilizan en las copias de seguridad. [#53533](https://github.com/ClickHouse/ClickHouse/pull/53533) ([Michael Kolupaev](https://github.com/al13n321)).
* Se añadió la server setting `aggregate_function_group_array_max_element_size`. Esta configuración se utiliza para limitar el tamaño del array en la serialización de la función `groupArray`. El valor predeterminado es `16777215`. [#53550](https://github.com/ClickHouse/ClickHouse/pull/53550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se añadió `SCHEMA` como alias de `DATABASE` para mejorar la compatibilidad con MySQL. [#53587](https://github.com/ClickHouse/ClickHouse/pull/53587) ([Daniël van Eeden](https://github.com/dveeden)).
* Añade métricas asíncronas para las tablas de la base de datos del sistema. Por ejemplo, `TotalBytesOfMergeTreeTablesSystem`. Esto cierra [#53603](https://github.com/ClickHouse/ClickHouse/issues/53603). [#53604](https://github.com/ClickHouse/ClickHouse/pull/53604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El SQL Editor de la UI de Play y el dashboard no usarán Grammarly. [#53614](https://github.com/ClickHouse/ClickHouse/pull/53614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Como ajustes avanzados, ahora es posible (1) configurar el size\_ratio (es decir, el tamaño relativo de la cola protegida) de las cachés de marcas de \[índice]/sin comprimir, (2) configurar la política de caché de las cachés de marcas de índice y de índice sin comprimir. [#53657](https://github.com/ClickHouse/ClickHouse/pull/53657) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió la validación de la información del cliente en el paquete de consulta de TCPHandler. [#53673](https://github.com/ClickHouse/ClickHouse/pull/53673) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Reintentar la carga de partes si se producen errores de red durante la interacción con Microsoft Azure. [#53750](https://github.com/ClickHouse/ClickHouse/pull/53750) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Stacktrace para las excepciones; se propagan las excepciones de las vistas materializadas. [#53766](https://github.com/ClickHouse/ClickHouse/pull/53766) ([Ilya Golshtein](https://github.com/ilejn)).
* Si no se especificó ningún hostname ni puerto, el cliente de Keeper intentará buscar una cadena de conexión en el archivo config.xml de ClickHouse. [#53769](https://github.com/ClickHouse/ClickHouse/pull/53769) ([pufit](https://github.com/pufit)).
* Se añade el evento de perfil `PartsLockMicroseconds`, que muestra la cantidad de microsegundos durante los que se mantiene el bloqueo de las partes de datos en la familia de motores de tabla MergeTree. [#53797](https://github.com/ClickHouse/ClickHouse/pull/53797) ([alesapin](https://github.com/alesapin)).
* Permitir configurar en keeper el límite de reconexión de RAFT. Esta configuración puede ayudar a que keeper restablezca la conexión con los pares más rápido si la conexión actual se interrumpe. [#53817](https://github.com/ClickHouse/ClickHouse/pull/53817) ([Pengyuan Bian](https://github.com/bianpengyuan)).
* Ignorar las claves foráneas en la definición de tablas para mejorar la compatibilidad con MySQL, de modo que el usuario no tenga que reescribir la parte de clave foránea de su SQL; ver [#53380](https://github.com/ClickHouse/ClickHouse/issues/53380). [#53864](https://github.com/ClickHouse/ClickHouse/pull/53864) ([jsc0218](https://github.com/jsc0218)).

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

* No exponga los símbolos del binario de ClickHouse al enlazador dinámico. Esto podría solucionar [#43933](https://github.com/ClickHouse/ClickHouse/issues/43933). [#47475](https://github.com/ClickHouse/ClickHouse/pull/47475) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió el enlace simbólico `clickhouse-keeper-client` al paquete clickhouse-server. [#51882](https://github.com/ClickHouse/ClickHouse/pull/51882) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Añadir [https://github.com/elliotchance/sqltest](https://github.com/elliotchance/sqltest) a CI para informar del nivel de conformidad con SQL 2016. [#52293](https://github.com/ClickHouse/ClickHouse/pull/52293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Actualización de PRQL a 0.9.3. [#53060](https://github.com/ClickHouse/ClickHouse/pull/53060) ([Maximilian Roos](https://github.com/max-sixty)).
* Las tablas del sistema de las comprobaciones de CI se han exportado a ClickHouse Cloud. [#53086](https://github.com/ClickHouse/ClickHouse/pull/53086) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los datos de perfilado del compilador (`-ftime-trace`) se cargan en ClickHouse Cloud. [#53100](https://github.com/ClickHouse/ClickHouse/pull/53100) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera las compilaciones Debug y Tidy. [#53178](https://github.com/ClickHouse/ClickHouse/pull/53178) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera la compilación eliminando montones de basura. Una de las cabeceras que se incluían con frecuencia había sido envenenada por Boost. [#53180](https://github.com/ClickHouse/ClickHouse/pull/53180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Eliminar aún más basura. [#53182](https://github.com/ClickHouse/ClickHouse/pull/53182) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La función `arrayAUC` usaba plantillas de C++ muy pesadas; se quitaron. [#53183](https://github.com/ClickHouse/ClickHouse/pull/53183) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Algunas unidades de traducción se reconstruían siempre, independientemente de ccache. Se encontró y corrigió la causa. [#53184](https://github.com/ClickHouse/ClickHouse/pull/53184) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los datos de perfil del compilador (`-ftime-trace`) se suben a ClickHouse Cloud., en un segundo intento tras [#53100](https://github.com/ClickHouse/ClickHouse/issues/53100). [#53213](https://github.com/ClickHouse/ClickHouse/pull/53213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportar logs desde CI en pruebas con estado a ClickHouse Cloud. [#53351](https://github.com/ClickHouse/ClickHouse/pull/53351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportar los logs de CI durante las pruebas de estrés. [#53353](https://github.com/ClickHouse/ClickHouse/pull/53353) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportar los logs de CI en el fuzzer. [#53354](https://github.com/ClickHouse/ClickHouse/pull/53354) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se conservan los parámetros de entorno en el comando `clickhouse start`. Corrige [#51962](https://github.com/ClickHouse/ClickHouse/issues/51962). [#53418](https://github.com/ClickHouse/ClickHouse/pull/53418) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Seguimiento de [#53418](https://github.com/ClickHouse/ClickHouse/issues/53418). Pequeñas mejoras en install\_check.py, con la adición de pruebas para verificar que los parámetros de entorno (ENV) se pasen correctamente al proceso principal al ejecutar `init.d start`. [#53457](https://github.com/ClickHouse/ClickHouse/pull/53457) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Reorganización de la gestión de archivos en CMake para evitar posibles duplicaciones. Por ejemplo, `indexHint.cpp` está duplicado tanto en `dbms_sources` como en `clickhouse_functions_sources`. [#53621](https://github.com/ClickHouse/ClickHouse/pull/53621) ([Amos Bird](https://github.com/amosbird)).
* Se actualizó snappy a la versión 1.1.10. [#53672](https://github.com/ClickHouse/ClickHouse/pull/53672) ([李扬](https://github.com/taiyang-li)).
* Mejora ligeramente la compilación de CMake depurando algunas dependencias y eliminando algunos duplicados. Cada commit incluye una breve descripción de los cambios realizados. [#53759](https://github.com/ClickHouse/ClickHouse/pull/53759) ([Amos Bird](https://github.com/amosbird)).

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

* No restablecer el índice Annoy (experimental) durante su construcción con más de una marca [#51325](https://github.com/ClickHouse/ClickHouse/pull/51325) ([Tian Xinhui](https://github.com/xinhuitian)).
* Se corrige el uso de directorios temporales durante RESTORE [#51493](https://github.com/ClickHouse/ClickHouse/pull/51493) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la aritmética binaria de Nullable(IPv4) [#51642](https://github.com/ClickHouse/ClickHouse/pull/51642) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se admite el uso de los tipos de datos IPv4 e IPv6 como atributos de diccionario [#51756](https://github.com/ClickHouse/ClickHouse/pull/51756) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Una corrección de la suma de comprobación de las marcas de compresión [#51777](https://github.com/ClickHouse/ClickHouse/pull/51777) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrige la interpretación errónea de la coma como parte de la fecha y hora en el parsing best effort de CSV [#51950](https://github.com/ClickHouse/ClickHouse/pull/51950) ([Kruglov Pavel](https://github.com/Avogar)).
* No lanzar una excepción cuando una UDF executable tiene parámetros [#51961](https://github.com/ClickHouse/ClickHouse/pull/51961) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrige el recálculo de los índices de omisión y las proyecciones en las consultas `ALTER DELETE` [#52530](https://github.com/ClickHouse/ClickHouse/pull/52530) ([Anton Popov](https://github.com/CurtizJ)).
* MaterializedMySQL: Se corrige el bucle infinito en ReadBuffer::read [#52621](https://github.com/ClickHouse/ClickHouse/pull/52621) ([Val Doroshchuk](https://github.com/valbok)).
* Carga de sugerencias solo con el dialecto `clickhouse` [#52628](https://github.com/ClickHouse/ClickHouse/pull/52628) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Inicializar y destruir el canal de ares según sea necesario. [#52634](https://github.com/ClickHouse/ClickHouse/pull/52634) ([Arthur Passos](https://github.com/arthurpassos)).
* Se corrige el filtrado por columnas virtuales con la expresión OR [#52653](https://github.com/ClickHouse/ClickHouse/pull/52653) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un fallo en la función `tuple` con un argumento de columna dispersa [#52659](https://github.com/ClickHouse/ClickHouse/pull/52659) ([Anton Popov](https://github.com/CurtizJ)).
* Corregidas las named collections en un clúster [#52687](https://github.com/ClickHouse/ClickHouse/pull/52687) ([Al Korgun](https://github.com/alkorgun)).
* Se corrigió la lectura innecesaria de una columna en caso de `PREWHERE` multietapa [#52689](https://github.com/ClickHouse/ClickHouse/pull/52689) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige el resultado inesperado de la ordenación en varias columnas con el criterio `nulls first` [#52761](https://github.com/ClickHouse/ClickHouse/pull/52761) ([copperybean](https://github.com/copperybean)).
* Corrige una condición de carrera en la reconfiguración de Keeper [#52804](https://github.com/ClickHouse/ClickHouse/pull/52804) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige la ordenación de columnas dispersas con un límite elevado [#52827](https://github.com/ClickHouse/ClickHouse/pull/52827) ([Anton Popov](https://github.com/CurtizJ)).
* clickhouse-keeper: se corrige la implementación del servidor con poll. [#52833](https://github.com/ClickHouse/ClickHouse/pull/52833) ([Andy Fiddaman](https://github.com/citrus-it)).
* Hacer que el analizador de regexp reconozca los grupos de captura con nombre [#52840](https://github.com/ClickHouse/ClickHouse/pull/52840) ([Han Fei](https://github.com/hanfei1991)).
* Se corrigió una posible aserción en `~PushingAsyncPipelineExecutor` de clickhouse-local [#52862](https://github.com/ClickHouse/ClickHouse/pull/52862) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la lectura de `Nested(Array(LowCardinality(...)))` vacío [#52949](https://github.com/ClickHouse/ClickHouse/pull/52949) ([Anton Popov](https://github.com/CurtizJ)).
* Se añadieron nuevas pruebas para session\_log y se corrigió la discrepancia entre el inicio y el cierre de sesión. [#52958](https://github.com/ClickHouse/ClickHouse/pull/52958) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Se corrige la filtración de una contraseña en show create mysql table [#52962](https://github.com/ClickHouse/ClickHouse/pull/52962) ([Duc Canh Le](https://github.com/canhld94)).
* Convertir el formato de columna disperso a completo en CreateSetAndFilterOnTheFlyStep [#53000](https://github.com/ClickHouse/ClickHouse/pull/53000) ([vdimir](https://github.com/vdimir)).
* Corrige una rara condición de carrera al eliminar directorios con prefijo de clave vacío en la caché de fs [#53055](https://github.com/ClickHouse/ClickHouse/pull/53055) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un problema por el que ZstdDeflatingWriteBuffer a veces truncaba la salida [#53064](https://github.com/ClickHouse/ClickHouse/pull/53064) ([Michael Kolupaev](https://github.com/al13n321)).
* Corregir `query&#95;id` en `part&#95;log` con consultas de flush asíncrono [#53103](https://github.com/ClickHouse/ClickHouse/pull/53103) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige un posible error en la caché "Read unexpected size" [#53121](https://github.com/ClickHouse/ClickHouse/pull/53121) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se deshabilita el nuevo codificador Parquet [#53130](https://github.com/ClickHouse/ClickHouse/pull/53130) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción "Set no preparado" [#53162](https://github.com/ClickHouse/ClickHouse/pull/53162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige el escapado de caracteres en el motor PostgreSQL [#53250](https://github.com/ClickHouse/ClickHouse/pull/53250) ([Nikolay Degterinsky](https://github.com/evillique)).
* Tabla experimental session\_log: Se añadieron nuevas pruebas para session\_log y se corrigió la inconsistencia entre el inicio y el cierre de sesión. [#53255](https://github.com/ClickHouse/ClickHouse/pull/53255) ([Alexey Gerasimchuck](https://github.com/Demilivor)). Se corrigió la inconsistencia entre el inicio de sesión correcto y el cierre de sesión [#53302](https://github.com/ClickHouse/ClickHouse/pull/53302) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Se corrigió la adición de intervalos inferiores al segundo a DateTime [#53309](https://github.com/ClickHouse/ClickHouse/pull/53309) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrige el error "Context has expired" en los diccionarios [#53342](https://github.com/ClickHouse/ClickHouse/pull/53342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregido el formato incorrecto del AST de la proyección normal [#53347](https://github.com/ClickHouse/ClickHouse/pull/53347) ([Amos Bird](https://github.com/amosbird)).
* Impedir el uso de use\_structure\_from\_insertion\_table\_in\_table\_functions al ejecutar Scalar [#53348](https://github.com/ClickHouse/ClickHouse/pull/53348) ([flynn](https://github.com/ucasfl)).
* Corrección de la carga de la base de datos lazy durante una consulta SELECT sobre system.table [#53372](https://github.com/ClickHouse/ClickHouse/pull/53372) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrigió system.data\_skipping\_indices en MaterializedMySQL [#53381](https://github.com/ClickHouse/ClickHouse/pull/53381) ([Filipp Ozinov](https://github.com/bakwc)).
* Se corrigió el procesamiento de un único retorno de carro en el motor de segmentación de archivos TSV [#53407](https://github.com/ClickHouse/ClickHouse/pull/53407) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige correctamente el error `Context has expired` [#53433](https://github.com/ClickHouse/ClickHouse/pull/53433) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige `timeout_overflow_mode` cuando hay una subconsulta en el lado derecho de `IN` [#53439](https://github.com/ClickHouse/ClickHouse/pull/53439) ([Duc Canh Le](https://github.com/canhld94)).
* Se corrige un comportamiento inesperado en [#53152](https://github.com/ClickHouse/ClickHouse/issues/53152) [#53440](https://github.com/ClickHouse/ClickHouse/pull/53440) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Corregido el error de análisis de la función JSON\_QUERY cuando la ruta está compuesta únicamente por números [#53470](https://github.com/ClickHouse/ClickHouse/pull/53470) ([KevinyhZou](https://github.com/KevinyhZou)).
* Se corrigió el orden incorrecto de las columnas en consultas con FINAL paralelo. [#53489](https://github.com/ClickHouse/ClickHouse/pull/53489) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió la operación SELECT en ReplacingMergeTree con do\_not\_merge\_across\_partitions\_select\_final [#53511](https://github.com/ClickHouse/ClickHouse/pull/53511) ([Vasily Nemkov](https://github.com/Enmk)).
* Vaciar primero la cola de async insert al apagar [#53547](https://github.com/ClickHouse/ClickHouse/pull/53547) ([joelynch](https://github.com/joelynch)).
* Se corrige un bloqueo en join sobre una columna dispersa [#53548](https://github.com/ClickHouse/ClickHouse/pull/53548) ([vdimir](https://github.com/vdimir)).
* Se corrigió un posible UB en el índice de omisión Set para funciones con argumentos inválidos [#53559](https://github.com/ClickHouse/ClickHouse/pull/53559) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un posible UB en los índices invertidos (funcionalidad experimental) [#53560](https://github.com/ClickHouse/ClickHouse/pull/53560) ([Azat Khuzhin](https://github.com/azat)).
* Corrección: la expresión de interpolación toma la columna de origen en lugar del alias con el mismo nombre de la expresión `select`. [#53572](https://github.com/ClickHouse/ClickHouse/pull/53572) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrigió el número de gránulos descartados en EXPLAIN PLAN index=1 [#53616](https://github.com/ClickHouse/ClickHouse/pull/53616) ([wangxiaobo](https://github.com/wzb5212)).
* Gestionar correctamente los totales y extremos con `DelayedSource` [#53644](https://github.com/ClickHouse/ClickHouse/pull/53644) ([Antonio Andelic](https://github.com/antonio2368)).
* La caché de Set preparada en el pipeline de mutación se quedaba atascada [#53645](https://github.com/ClickHouse/ClickHouse/pull/53645) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un error en las mutaciones con subcolumnas de tipo JSON en predicados de consultas UPDATE y DELETE. [#53677](https://github.com/ClickHouse/ClickHouse/pull/53677) ([VanDarkholme7](https://github.com/VanDarkholme7)).
* Se corrige el pushdown de filtros en full\_sorting\_merge join [#53699](https://github.com/ClickHouse/ClickHouse/pull/53699) ([vdimir](https://github.com/vdimir)).
* Se intenta corregir un error con `NULL::LowCardinality(Nullable(...)) NOT IN` [#53706](https://github.com/ClickHouse/ClickHouse/pull/53706) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrección: distinct ordenado con columnas dispersas [#53711](https://github.com/ClickHouse/ClickHouse/pull/53711) ([Igor Nikonov](https://github.com/devcrafter)).
* `transform`: manejar correctamente la columna por defecto con múltiples filas [#53742](https://github.com/ClickHouse/ClickHouse/pull/53742) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se corrige el fallo del fuzzer en parseDateTime [#53764](https://github.com/ClickHouse/ClickHouse/pull/53764) ([Robert Schulze](https://github.com/rschu1ze)).
* MaterializedPostgreSQL: se corrige una excepción no controlada en getCreateTableQueryImpl [#53832](https://github.com/ClickHouse/ClickHouse/pull/53832) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un posible segfault al usar el engine PostgreSQL [#53847](https://github.com/ClickHouse/ClickHouse/pull/53847) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige el alias named\_collection\_admin [#54066](https://github.com/ClickHouse/ClickHouse/pull/54066) ([Kseniia Sumarokova](https://github.com/kssenii)).

### <a id="237" /> Lanzamiento de ClickHouse 23.7, 2023-07-27. [Presentación](https://presentations.clickhouse.com/2023-release-23.7/), [Vídeo](https://www.youtube.com/watch?v=TI1kONfON18)

<Frame>
  <iframe src="https://www.youtube.com/embed/TI1kONfON18" 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 añade el tipo de acceso `NAMED COLLECTION` (alias `USE NAMED COLLECTION`, `NAMED COLLECTION USAGE`). Este PR es incompatible con versiones anteriores porque este tipo de acceso está deshabilitado de forma predeterminada (ya que el tipo de acceso superior `NAMED COLLECTION ADMIN` también lo está). Propuesto en [#50277](https://github.com/ClickHouse/ClickHouse/issues/50277). Para concederlo, utilice `GRANT NAMED COLLECTION ON collection_name TO user` o `GRANT NAMED COLLECTION ON * TO user`; para poder otorgar estos permisos, se requiere `named_collection_admin` en la configuración (anteriormente se llamaba `named_collection_control`, por lo que seguirá manteniéndose como alias). [#50625](https://github.com/ClickHouse/ClickHouse/pull/50625) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un error tipográfico en el nombre de la columna `last_removal_attemp_time` de `system.parts`. Ahora se llama `last_removal_attempt_time`. [#52104](https://github.com/ClickHouse/ClickHouse/pull/52104) ([filimonov](https://github.com/filimonov)).
* Se incrementa de forma predeterminada a 5 la versión de `distributed_ddl_entry_format_version` (habilita el paso de `opentelemetry` e `initial_query_idd`). Esto impedirá procesar las entradas existentes de DDL distribuido después de un *downgrade* (aunque, por lo general, no debería haber entradas de este tipo sin procesar). [#52128](https://github.com/ClickHouse/ClickHouse/pull/52128) ([Azat Khuzhin](https://github.com/azat)).
* Se comprueban los metadatos de las proyecciones del mismo modo que se comprueban los metadatos normales. Este cambio puede impedir que el servidor se inicie si había una tabla con una proyección no válida. Un ejemplo es una proyección que crea columnas posicionales en la PK (p. ej., `projection p (select * order by 1, 4)`, lo cual no está permitido en la PK de una tabla y puede provocar un fallo durante `insert`/`merge`). Elimine esas proyecciones antes de la actualización. Corrige [#52353](https://github.com/ClickHouse/ClickHouse/issues/52353). [#52361](https://github.com/ClickHouse/ClickHouse/pull/52361) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se elimina la característica experimental `hashid` debido a un error. La calidad de la implementación era cuestionable desde el principio y no llegó a salir del estado experimental. Esto cierra [#52406](https://github.com/ClickHouse/ClickHouse/issues/52406). [#52449](https://github.com/ClickHouse/ClickHouse/pull/52449) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Se añadió el motor de base de datos `Overlay` para combinar varias bases de datos en una sola. Se añadió el motor de base de datos `Filesystem` para representar un directorio del sistema de archivos como un conjunto de tablas disponibles implícitamente, con formatos y estructuras detectados automáticamente. Un nuevo motor de base de datos `S3` permite interactuar en modo de solo lectura con el almacenamiento S3 representando un prefijo como un conjunto de tablas. Un nuevo motor de base de datos `HDFS` permite interactuar con el almacenamiento HDFS de la misma manera. [#48821](https://github.com/ClickHouse/ClickHouse/pull/48821) ([alekseygolub](https://github.com/alekseygolub)).
* Se añade compatibilidad con discos externos en Keeper para almacenar instantáneas y logs. [#50098](https://github.com/ClickHouse/ClickHouse/pull/50098) ([Antonio Andelic](https://github.com/antonio2368)).
* Se agregó compatibilidad con globs para seleccionar varios directorios (`{}`). [#50559](https://github.com/ClickHouse/ClickHouse/pull/50559) ([Andrey Zvonov](https://github.com/zvonand)).
* El conector de Kafka puede obtener el esquema Avro del registro de esquemas mediante autenticación básica con credenciales codificadas para URL. [#49664](https://github.com/ClickHouse/ClickHouse/pull/49664) ([Ilya Golshtein](https://github.com/ilejn)).
* Se añade la función `arrayJaccardIndex`, que calcula la similitud de Jaccard entre dos arrays. [#50076](https://github.com/ClickHouse/ClickHouse/pull/50076) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Se añade una columna `is_obsolete` a `system.settings` y a tablas similares. Cierra [#50819](https://github.com/ClickHouse/ClickHouse/issues/50819). [#50826](https://github.com/ClickHouse/ClickHouse/pull/50826) ([flynn](https://github.com/ucasfl)).
* Se implementó la compatibilidad con elementos cifrados en el archivo de configuración. Se añadió la posibilidad de usar texto cifrado en los elementos hoja del archivo de configuración. El texto se cifra mediante códecs de cifrado de la sección `<encryption_codecs>`. [#50986](https://github.com/ClickHouse/ClickHouse/pull/50986) ([Roman Vasin](https://github.com/rvasin)).
* El algoritmo Grace Hash Join ahora también se puede aplicar a los JOIN FULL y RIGHT. [#49483](https://github.com/ClickHouse/ClickHouse/issues/49483). [#51013](https://github.com/ClickHouse/ClickHouse/pull/51013) ([lgbo](https://github.com/lgbo-ustc)).
* Se añade la consulta `SYSTEM STOP LISTEN` para una terminación más controlada. Cierra [#47972](https://github.com/ClickHouse/ClickHouse/issues/47972). [#51016](https://github.com/ClickHouse/ClickHouse/pull/51016) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añaden las opciones `input_format_csv_allow_variable_number_of_columns`. [#51273](https://github.com/ClickHouse/ClickHouse/pull/51273) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Otra función poco destacable: añadir la función `substring_index`, como en Spark o MySQL. [#51472](https://github.com/ClickHouse/ClickHouse/pull/51472) ([李扬](https://github.com/taiyang-li)).
* Una tabla del sistema `jemalloc_bins` que muestra estadísticas de los bins de jemalloc. Ejemplo: `SELECT *, size * (nmalloc - ndalloc) AS allocated_bytes FROM system.jemalloc_bins WHERE allocated_bytes > 0 ORDER BY allocated_bytes DESC LIMIT 10`. Disfrútalo. [#51674](https://github.com/ClickHouse/ClickHouse/pull/51674) ([Alexander Gololobov](https://github.com/davenger)).
* Se añade el formato `RowBinaryWithDefaults` con un byte adicional antes de cada columna como indicador para usar el valor predeterminado de la columna. Cierra [#50854](https://github.com/ClickHouse/ClickHouse/issues/50854). [#51695](https://github.com/ClickHouse/ClickHouse/pull/51695) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió la opción de configuración `default_temporary_table_engine`. Igual que `default_table_engine`, pero para tablas temporales. [#51292](https://github.com/ClickHouse/ClickHouse/issues/51292). [#51708](https://github.com/ClickHouse/ClickHouse/pull/51708) ([velavokr](https://github.com/velavokr)).
* Se añadieron las nuevas funciones `initcap` / `initcapUTF8`, que convierten la primera letra de cada palabra a mayúscula y el resto a minúscula. [#51735](https://github.com/ClickHouse/ClickHouse/pull/51735) ([Dmitry Kardymon](https://github.com/kardymonds)).
* CREATE TABLE ahora admite la sintaxis `PRIMARY KEY` en la definición de columnas. Las columnas se agregan al índice primario en el mismo orden en que se definen. [#51881](https://github.com/ClickHouse/ClickHouse/pull/51881) ([Ilya Yatsishin](https://github.com/qoega)).
* Se añadió la posibilidad de utilizar especificadores de formato de fecha y hora en los nombres de los archivos de registro y de errores, tanto en archivos de configuración (etiquetas `log` y `errorlog`) como en argumentos de la línea de comandos (`--log-file` y `--errorlog-file`). [#51945](https://github.com/ClickHouse/ClickHouse/pull/51945) ([Victor Krasnov](https://github.com/sirvickr)).
* Se añadió la estadística de uso máximo de memoria a las cabeceras HTTP. [#51946](https://github.com/ClickHouse/ClickHouse/pull/51946) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Se añadieron nuevas funciones `hasSubsequence` (y las versiones `CaseInsensitive` y `UTF8`) para detectar subsecuencias en cadenas. [#52050](https://github.com/ClickHouse/ClickHouse/pull/52050) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Se añade `array_agg` como alias de `groupArray` para compatibilidad con PostgreSQL. Cierra [#52100](https://github.com/ClickHouse/ClickHouse/issues/52100). ### Entrada de documentación para cambios visibles para el usuario. [#52135](https://github.com/ClickHouse/ClickHouse/pull/52135) ([flynn](https://github.com/ucasfl)).
* Añade `any_value` como alias de compatibilidad para la función de agregación `any`. Cierra [#52140](https://github.com/ClickHouse/ClickHouse/issues/52140). [#52147](https://github.com/ClickHouse/ClickHouse/pull/52147) ([flynn](https://github.com/ucasfl)).
* Se añade la función de agregación `array_concat_agg` para compatibilidad con BigQuery; es un alias de `groupArrayArray`. Cierra [#52139](https://github.com/ClickHouse/ClickHouse/issues/52139). [#52149](https://github.com/ClickHouse/ClickHouse/pull/52149) ([flynn](https://github.com/ucasfl)).
* Se añade `OCTET_LENGTH` como alias de `length`. Cierra [#52153](https://github.com/ClickHouse/ClickHouse/issues/52153). [#52176](https://github.com/ClickHouse/ClickHouse/pull/52176) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Se añadió la función `firstLine` para extraer la primera línea de una cadena multilínea. Esto resuelve [#51172](https://github.com/ClickHouse/ClickHouse/issues/51172). [#52209](https://github.com/ClickHouse/ClickHouse/pull/52209) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Implementar el formato de estilo KQL para el tipo de dato `Interval`. Esto solo es necesario por compatibilidad con el lenguaje de consulta `Kusto`. [#45671](https://github.com/ClickHouse/ClickHouse/pull/45671) ([ltrk2](https://github.com/ltrk2)).
* Se agregó la consulta `SYSTEM FLUSH ASYNC INSERT QUEUE`, que vacía todas las inserciones asincrónicas pendientes en las tablas de destino. Se agregó un ajuste del servidor `async_insert_queue_flush_on_shutdown` (`true` de forma predeterminada), que determina si se debe vaciar la cola de inserciones asincrónicas durante un apagado ordenado. El ajuste `async_insert_threads` ahora es un ajuste del servidor. [#49160](https://github.com/ClickHouse/ClickHouse/pull/49160) ([Anton Popov](https://github.com/CurtizJ)).
* Alias `current_database` y una nueva función `current_schemas` para mantener la compatibilidad con PostgreSQL. [#51076](https://github.com/ClickHouse/ClickHouse/pull/51076) ([Pedro Riera](https://github.com/priera)).
* Se añadieron alias para las funciones `today` (ahora también disponibles con los nombres `curdate`/`current_date`) y `now` (`current_timestamp`). [#52106](https://github.com/ClickHouse/ClickHouse/pull/52106) ([Lloyd-Pottiger](https://github.com/Lloyd-Pottiger)).
* Se admite `async_deduplication_token` para el insert asíncrono. [#52136](https://github.com/ClickHouse/ClickHouse/pull/52136) ([Han Fei](https://github.com/hanfei1991)).
* Se añade la nueva configuración `disable_url_encoding`, que permite desactivar la decodificación/codificación de la ruta en el URI del motor URL. [#52337](https://github.com/ClickHouse/ClickHouse/pull/52337) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Habilita de forma predeterminada la selección automática del formato de serialización disperso. Mejora el rendimiento. El formato es compatible desde la versión 22.1. Después de este cambio, puede que no sea posible volver a versiones anteriores a la 22.1. Una reversión puede requerir establecer `ratio_of_defaults_for_sparse_serialization=0.9375` [55153](https://github.com/ClickHouse/ClickHouse/issues/55153). Puedes desactivar el uso del formato de serialización disperso configurando `ratio_of_defaults_for_sparse_serialization = 1` para tus tablas MergeTree. [#49631](https://github.com/ClickHouse/ClickHouse/pull/49631) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se habilitan de forma predeterminada las opciones `move_all_conditions_to_prewhere` y `enable_multiple_prewhere_read_steps`. [#46365](https://github.com/ClickHouse/ClickHouse/pull/46365) ([Alexander Gololobov](https://github.com/davenger)).
* Mejora el rendimiento de algunas consultas al ajustar el asignador de memoria. [#46416](https://github.com/ClickHouse/ClickHouse/pull/46416) ([Azat Khuzhin](https://github.com/azat)).
* Ahora usamos tareas de tamaño fijo en `MergeTreePrefetchedReadPool`, igual que en `MergeTreeReadPool`. Además, a partir de ahora también usamos un pool de conexiones para las solicitudes a S3. [#49732](https://github.com/ClickHouse/ClickHouse/pull/49732) ([Nikita Taranov](https://github.com/nickitat)).
* Más pushdown en el lado derecho del join. [#50532](https://github.com/ClickHouse/ClickHouse/pull/50532) ([Nikita Taranov](https://github.com/nickitat)).
* Mejorar grace\_hash join reservando el tamaño de la tabla hash (reenviado). [#50875](https://github.com/ClickHouse/ClickHouse/pull/50875) ([lgbo](https://github.com/lgbo-ustc)).
* La espera para adquirir el bloqueo en `OpenedFileCache` podía notarse en ocasiones. Lo segmentamos en varios submapas (cada uno con su propio bloqueo) para evitar la contención. [#51341](https://github.com/ClickHouse/ClickHouse/pull/51341) ([Nikita Taranov](https://github.com/nickitat)).
* Mueva las condiciones con columnas de clave primaria al final de la cadena de PREWHERE. La idea es que las condiciones con columnas de PK probablemente se utilicen en el análisis de PK y apenas aporten más al filtrado de PREWHERE. [#51958](https://github.com/ClickHouse/ClickHouse/pull/51958) ([Alexander Gololobov](https://github.com/davenger)).
* Acelera `COUNT(DISTINCT)` para tipos String al integrar SipHash en línea. Los experimentos de rendimiento de *OnTime* en el dispositivo ICX (CPU Intel Xeon Platinum 8380, 80 núcleos, 160 hilos) muestran que este cambio podría aportar una mejora del *11.6%* en el QPS de la consulta *Q8* sin afectar a las demás. [#52036](https://github.com/ClickHouse/ClickHouse/pull/52036) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Se habilita `allow_vertical_merges_from_compact_to_wide_parts` de forma predeterminada. Esto ahorrará memoria durante los merges. [#52295](https://github.com/ClickHouse/ClickHouse/pull/52295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige un análisis incorrecto de las proyecciones que invalida las claves primarias. Este problema solo existe cuando `query_plan_optimize_primary_key = 1, query_plan_optimize_projection = 1`. Esto corrige [#48823](https://github.com/ClickHouse/ClickHouse/issues/48823). Esto corrige [#51173](https://github.com/ClickHouse/ClickHouse/issues/51173). [#52308](https://github.com/ClickHouse/ClickHouse/pull/52308) ([Amos Bird](https://github.com/amosbird)).
* Se reduce el número de llamadas al sistema en `FileCache::loadMetadata`, lo que acelera el inicio del servidor si la caché del sistema de archivos está configurada. [#52435](https://github.com/ClickHouse/ClickHouse/pull/52435) ([Raúl Marín](https://github.com/Algunenano)).
* Permite establecer un límite inferior estricto para el tamaño del segmento de archivo descargando los datos restantes en segundo plano. El tamaño mínimo del segmento de archivo (si el tamaño real del archivo es mayor) se configura mediante el ajuste de configuración de caché `boundary_alignment`, con un valor predeterminado de `4Mi`. El número de hilos en segundo plano se configura mediante el ajuste de configuración de caché `background_download_threads`, con un valor predeterminado de `2`. Además, `max_file_segment_size` se aumentó de `8Mi` a `32Mi` en este PR. [#51000](https://github.com/ClickHouse/ClickHouse/pull/51000) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se redujeron los tiempos de espera predeterminados de S3 de 30 segundos a 3 segundos, y los de otros protocolos HTTP de 180 segundos a 30 segundos. [#51171](https://github.com/ClickHouse/ClickHouse/pull/51171) ([Michael Kolupaev](https://github.com/al13n321)).
* Se añadió la nueva configuración `merge_tree_determine_task_size_by_prewhere_columns`. Si se establece en `true`, para determinar el tamaño de la tarea de lectura solo se tendrán en cuenta los tamaños de las columnas de la sección `PREWHERE`. De lo contrario, se tendrán en cuenta todas las columnas de la consulta. [#52606](https://github.com/ClickHouse/ClickHouse/pull/52606) ([Nikita Taranov](https://github.com/nickitat)).

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

* Usa read\_bytes/total\_bytes\_to\_read para la barra de progreso en las funciones de tabla s3/file/url/... para indicar mejor el progreso. [#51286](https://github.com/ClickHouse/ClickHouse/pull/51286) ([Kruglov Pavel](https://github.com/Avogar)).
* Se introduce una configuración de tabla `wait_for_unique_parts_send_before_shutdown_ms` que especifica cuánto tiempo esperará la réplica antes de cerrar el handler interservidor para los envíos replicados. También se corrige una inconsistencia en el apagado de las tablas y los handlers interservidor: ahora el servidor apaga primero las tablas y solo después apaga los handlers interservidor. [#51851](https://github.com/ClickHouse/ClickHouse/pull/51851) ([alesapin](https://github.com/alesapin)).
* Permitir `FETCH` del estándar SQL sin `OFFSET`. Véase [https://antonz.org/sql-fetch/](https://antonz.org/sql-fetch/). [#51293](https://github.com/ClickHouse/ClickHouse/pull/51293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite filtrar los encabezados HTTP en las funciones de tabla URL/S3 con la nueva sección `http_forbid_headers` de la configuración. Se admiten tanto coincidencias exactas como filtros regexp. [#51038](https://github.com/ClickHouse/ClickHouse/pull/51038) ([Nikolay Degterinsky](https://github.com/evillique)).
* No mostrar mensajes en los logs sobre `16 EiB` de espacio libre, ya que no tienen sentido. Cierra [#49320](https://github.com/ClickHouse/ClickHouse/issues/49320). [#49342](https://github.com/ClickHouse/ClickHouse/pull/49342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compruebe correctamente el límite de la función `sleepEachRow`. Añada el ajuste `function_sleep_max_microseconds_per_block`. Esto es necesario para el fuzzer genérico de consultas. [#49343](https://github.com/ClickHouse/ClickHouse/pull/49343) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se solucionan dos problemas en las funciones `geoHash`. [#50066](https://github.com/ClickHouse/ClickHouse/pull/50066) ([李扬](https://github.com/taiyang-li)).
* Registrar en `system.query_log` las consultas que vacían el búfer de `async insert`. [#51160](https://github.com/ClickHouse/ClickHouse/pull/51160) ([Raúl Marín](https://github.com/Algunenano)).
* Las funciones `date_diff` y `age` ahora admiten las unidades de milisegundos y microsegundos, y funcionan con precisión de microsegundos. [#51291](https://github.com/ClickHouse/ClickHouse/pull/51291) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Mejora del procesamiento de la ruta en clickhouse-keeper-client. [#51359](https://github.com/ClickHouse/ClickHouse/pull/51359) ([Azat Khuzhin](https://github.com/azat)).
* Un producto de terceros que depende de ClickHouse (Gluten: un plugin para duplicar el rendimiento de Spark SQL) tenía un error. Esta corrección evita el desbordamiento de heap en ese producto de terceros al leer desde HDFS. [#51386](https://github.com/ClickHouse/ClickHouse/pull/51386) ([李扬](https://github.com/taiyang-li)).
* Se añadió la posibilidad de deshabilitar la copia nativa para S3 (configuración de BACKUP/RESTORE `allow_s3_native_copy` y `s3_allow_native_copy` para los discos `s3`/`s3_plain`). [#51448](https://github.com/ClickHouse/ClickHouse/pull/51448) ([Azat Khuzhin](https://github.com/azat)).
* Añade la columna `primary_key_size` a la tabla `system.parts` para mostrar el tamaño comprimido de la clave primaria en disco. Cierra [#51400](https://github.com/ClickHouse/ClickHouse/issues/51400). [#51496](https://github.com/ClickHouse/ClickHouse/pull/51496) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Permitir ejecutar `clickhouse-local` sin procfs, sin que exista el directorio de inicio y sin plugins de resolución de nombres de glibc. [#51518](https://github.com/ClickHouse/ClickHouse/pull/51518) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade el marcador de posición `%a` para el nombre completo del archivo en la configuración rename\_files\_after\_processing. [#51603](https://github.com/ClickHouse/ClickHouse/pull/51603) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió la columna `modification_time` a `system.parts_columns`. [#51685](https://github.com/ClickHouse/ClickHouse/pull/51685) ([Azat Khuzhin](https://github.com/azat)).
* Se añade una nueva configuración `input_format_csv_use_default_on_bad_values` al formato CSV que permite insertar el valor predeterminado cuando falla el análisis de un solo campo. [#51716](https://github.com/ClickHouse/ClickHouse/pull/51716) ([KevinyhZou](https://github.com/KevinyhZou)).
* Se añadió el volcado del registro de fallos al disco tras un cierre inesperado. [#51720](https://github.com/ClickHouse/ClickHouse/pull/51720) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Corrige el comportamiento en la página del dashboard, donde no se muestran los errores no relacionados con la autenticación. También corrige el comportamiento del gráfico al superponerse. [#51744](https://github.com/ClickHouse/ClickHouse/pull/51744) ([Zach Naimon](https://github.com/ArctypeZach)).
* Permite la conversión de UUID a UInt128. [#51765](https://github.com/ClickHouse/ClickHouse/pull/51765) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Se añadió compatibilidad con la función `range` para argumentos Nullable. [#51767](https://github.com/ClickHouse/ClickHouse/pull/51767) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Convierte condiciones como `toyear(x) = c` en `c1 <= x < c2`. [#51795](https://github.com/ClickHouse/ClickHouse/pull/51795) ([Han Fei](https://github.com/hanfei1991)).
* Mejora la compatibilidad con MySQL de la instrucción `SHOW INDEX`. [#51796](https://github.com/ClickHouse/ClickHouse/pull/51796) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige que `use_structure_from_insertion_table_in_table_functions` no funcione con columnas `MATERIALIZED` y `ALIAS`. Cierra [#51817](https://github.com/ClickHouse/ClickHouse/issues/51817). Cierra [#51019](https://github.com/ClickHouse/ClickHouse/issues/51019). [#51825](https://github.com/ClickHouse/ClickHouse/pull/51825) ([flynn](https://github.com/ucasfl)).
* El diccionario de caché ahora solicita del origen únicamente las claves únicas. Cierra [#51762](https://github.com/ClickHouse/ClickHouse/issues/51762). [#51853](https://github.com/ClickHouse/ClickHouse/pull/51853) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió el caso en que la configuración no se aplicaba a la consulta EXPLAIN cuando se especificaba FORMAT. [#51859](https://github.com/ClickHouse/ClickHouse/pull/51859) ([Nikita Taranov](https://github.com/nickitat)).
* Se permite SETTINGS antes de FORMAT en la consulta DESCRIBE TABLE para mantener la compatibilidad con la consulta SELECT. Cierra [#51544](https://github.com/ClickHouse/ClickHouse/issues/51544). [#51899](https://github.com/ClickHouse/ClickHouse/pull/51899) ([Nikolay Degterinsky](https://github.com/evillique)).
* Los enteros codificados como var-int (p. ej., utilizados por el protocolo nativo) ahora pueden usar todo el rango de 64 bits. Se recomienda a los clientes de terceros que actualicen su código de var-int en consecuencia. [#51905](https://github.com/ClickHouse/ClickHouse/pull/51905) ([Robert Schulze](https://github.com/rschu1ze)).
* Actualiza los certificados cuando cambien, sin necesidad de ejecutar manualmente SYSTEM RELOAD CONFIG. [#52030](https://github.com/ClickHouse/ClickHouse/pull/52030) ([Mike Kot](https://github.com/myrrc)).
* Se añadió la configuración `allow_create_index_without_type`, que permite ignorar las consultas `ADD INDEX` sin `TYPE` especificado. Las consultas SQL estándar simplemente tendrán éxito sin cambiar el esquema de la tabla. [#52056](https://github.com/ClickHouse/ClickHouse/pull/52056) ([Ilya Yatsishin](https://github.com/qoega)).
* Los mensajes de registro se escriben en `system.text_log` desde el arranque del servidor. [#52113](https://github.com/ClickHouse/ClickHouse/pull/52113) ([Dmitry Kardymon](https://github.com/kardymonds)).
* En los casos en que el endpoint HTTP tenía varias direcciones IP y la primera de ellas no era accesible, se producía una excepción por tiempo de espera. Se mejoró la creación de sesiones para manejar todos los endpoints resueltos. [#52116](https://github.com/ClickHouse/ClickHouse/pull/52116) ([Aleksei Filatov](https://github.com/aalexfvk)).
* El formato de entrada Avro ahora admite Union aunque contenga un solo tipo. Cierra [#52131](https://github.com/ClickHouse/ClickHouse/issues/52131). [#52137](https://github.com/ClickHouse/ClickHouse/pull/52137) ([flynn](https://github.com/ucasfl)).
* Añadir la configuración `optimize_use_implicit_projections` para desactivar las proyecciones implícitas (actualmente, solo la proyección `min_max_count`). [#52152](https://github.com/ClickHouse/ClickHouse/pull/52152) ([Amos Bird](https://github.com/amosbird)).
* Era posible usar la función `hasToken` para provocar un bucle infinito. Ahora se ha eliminado esta posibilidad. Con esto se cierra [#52156](https://github.com/ClickHouse/ClickHouse/issues/52156). [#52160](https://github.com/ClickHouse/ClickHouse/pull/52160) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Crear de forma optimista los ancestros de ZK. [#52195](https://github.com/ClickHouse/ClickHouse/pull/52195) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige [#50582](https://github.com/ClickHouse/ClickHouse/issues/50582). Se evita el error `Not found column ... in block` en algunos casos de lectura en orden y constantes. [#52259](https://github.com/ClickHouse/ClickHouse/pull/52259) ([Chen768959](https://github.com/Chen768959)).
* Comprobar lo antes posible en ClickHouse si las primitivas geo de S2 no son válidas. Esto cierra: [#27090](https://github.com/ClickHouse/ClickHouse/issues/27090). [#52260](https://github.com/ClickHouse/ClickHouse/pull/52260) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se vuelve a añadir la QueryAccessInfo de la proyección que faltaba cuando `query_plan_optimize_projection = 1`. Esto corrige [#50183](https://github.com/ClickHouse/ClickHouse/issues/50183). Esto corrige [#50093](https://github.com/ClickHouse/ClickHouse/issues/50093). [#52327](https://github.com/ClickHouse/ClickHouse/pull/52327) ([Amos Bird](https://github.com/amosbird)).
* Cuando `ZooKeeperRetriesControl` vuelve a lanzar un error, es más útil ver su stack trace original, no el de `ZooKeeperRetriesControl`. [#52347](https://github.com/ClickHouse/ClickHouse/pull/52347) ([Vitaly Baranov](https://github.com/vitlibar)).
* Esperar el bloqueo de la replicación zero copy incluso si algunos discos no la admiten. [#52376](https://github.com/ClickHouse/ClickHouse/pull/52376) ([Raúl Marín](https://github.com/Algunenano)).
* Ahora el puerto interservidor solo se cerrará después de que se hayan detenido las tablas. [#52498](https://github.com/ClickHouse/ClickHouse/pull/52498) ([alesapin](https://github.com/alesapin)).

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

* La escritura de archivos Parquet es 10 veces más rápida; ahora es multihilo. Alcanza casi la misma velocidad que la lectura. [#49367](https://github.com/ClickHouse/ClickHouse/pull/49367) ([Michael Kolupaev](https://github.com/al13n321)). Esto se controla mediante la configuración `output_format_parquet_use_custom_encoder`, que está deshabilitada de forma predeterminada porque la funcionalidad aún no es óptima.
* Se añadió compatibilidad con [PRQL](https://prql-lang.org/) como lenguaje de consulta. [#50686](https://github.com/ClickHouse/ClickHouse/pull/50686) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ahora se puede asignar un nombre de disco a los discos personalizados. Anteriormente, los discos personalizados usaban un nombre de disco interno generado automáticamente. Ahora será posible con `disk = disk_<name>(...)` (p. ej., el disco tendrá el nombre `name`). [#51552](https://github.com/ClickHouse/ClickHouse/pull/51552) ([Kseniia Sumarokova](https://github.com/kssenii)). Esta sintaxis puede cambiar en esta versión.
* (experimental MaterializedMySQL) Se corrigió un fallo cuando `mysqlxx::Pool::Entry` se usa después de haberse desconectado. [#52063](https://github.com/ClickHouse/ClickHouse/pull/52063) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) `CREATE TABLE ... AS SELECT` .. ahora es compatible con MaterializedMySQL. [#52067](https://github.com/ClickHouse/ClickHouse/pull/52067) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Se introdujo la conversión automática de tipos de texto a UTF-8 para MaterializedMySQL. [#52084](https://github.com/ClickHouse/ClickHouse/pull/52084) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Ahora se admiten cadenas UTF-8 sin comillas en DDL para MaterializedMySQL. [#52318](https://github.com/ClickHouse/ClickHouse/pull/52318) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Ahora se admiten comentarios entre comillas dobles en MaterializedMySQL. [#52355](https://github.com/ClickHouse/ClickHouse/pull/52355) ([Val Doroshchuk](https://github.com/valbok)).
* Se actualizó Intel QPL de v1.1.0 a v1.2.0. 2. Se actualizó Intel accel-config de v3.5 a v4.0. 3. Se corrigió un problema por el que los fallos de Device IOTLB tenían un gran impacto en el rendimiento de los aceleradores IAA. [#52180](https://github.com/ClickHouse/ClickHouse/pull/52180) ([jasperzhu](https://github.com/jinjunzh)).
* La configuración `session_timezone` (nueva en la versión 23.6) pasa a ser experimental. [#52445](https://github.com/ClickHouse/ClickHouse/pull/52445) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió compatibilidad con el comando `reconfig` de ZooKeeper para ClickHouse Keeper con reconfiguración incremental, que puede habilitarse mediante la configuración `keeper_server.enable_reconfiguration`. Permite añadir servidores, eliminar servidores y cambiar sus prioridades. [#49450](https://github.com/ClickHouse/ClickHouse/pull/49450) ([Mike Kot](https://github.com/myrrc)). Se sospecha que esta funcionalidad está incompleta.

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

* Se añaden compilaciones experimentales de ClickHouse para Linux RISC-V 64 a la CI. [#31398](https://github.com/ClickHouse/ClickHouse/pull/31398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade una comprobación de pruebas de integración con el analizador habilitado. [#50926](https://github.com/ClickHouse/ClickHouse/pull/50926) [#52210](https://github.com/ClickHouse/ClickHouse/pull/52210) ([Dmitry Novik](https://github.com/novikd)).
* Compilaciones reproducibles para Rust. [#52395](https://github.com/ClickHouse/ClickHouse/pull/52395) ([Azat Khuzhin](https://github.com/azat)).
* Se actualizan las dependencias de Cargo. [#51721](https://github.com/ClickHouse/ClickHouse/pull/51721) ([Raúl Marín](https://github.com/Algunenano)).
* Se hace que la función `CHColumnToArrowColumn::fillArrowArrayWithArrayColumnData` funcione con arrays Nullable, que no son posibles en ClickHouse, pero son necesarios para Gluten. [#52112](https://github.com/ClickHouse/ClickHouse/pull/52112) ([李扬](https://github.com/taiyang-li)).
* Hemos actualizado la biblioteca CCTZ a master, pero no hay cambios visibles para el usuario. [#52124](https://github.com/ClickHouse/ClickHouse/pull/52124) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La tabla `system.licenses` ahora incluye la biblioteca Poco derivada mediante hard fork. Esto cierra [#52066](https://github.com/ClickHouse/ClickHouse/issues/52066). [#52127](https://github.com/ClickHouse/ClickHouse/pull/52127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se comprueba que no haya casos de puntuación incorrecta: un espacio antes de una coma, como `Hello ,world` en lugar de `Hello, world`. [#52549](https://github.com/ClickHouse/ClickHouse/pull/52549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Se corrige la sincronización de tablas de MaterializedPostgreSQL [#49698](https://github.com/ClickHouse/ClickHouse/pull/49698) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la proyección con optimize\_aggregators\_of\_group\_by\_keys [#49709](https://github.com/ClickHouse/ClickHouse/pull/49709) ([Amos Bird](https://github.com/amosbird)).
* Se corrige optimize\_skip\_unused\_shards con JOINs [#51037](https://github.com/ClickHouse/ClickHouse/pull/51037) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió formatDateTime() con datetime64 negativo fraccional [#51290](https://github.com/ClickHouse/ClickHouse/pull/51290) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Las funciones `hasToken*` estaban completamente mal. Se añadió una prueba para [#43358](https://github.com/ClickHouse/ClickHouse/issues/43358) [#51378](https://github.com/ClickHouse/ClickHouse/pull/51378) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la optimización que mueve las funciones antes de la ordenación. [#51481](https://github.com/ClickHouse/ClickHouse/pull/51481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige el desajuste en la estructura de Block en Pipe::unitePipes para FINAL [#51492](https://github.com/ClickHouse/ClickHouse/pull/51492) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrige SIGSEGV en clústeres con peso cero en todos los segmentos (corrige INSERT INTO FUNCTION clusterAllReplicas()) [#51545](https://github.com/ClickHouse/ClickHouse/pull/51545) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el timeout en las solicitudes hedged [#51582](https://github.com/ClickHouse/ClickHouse/pull/51582) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un error lógico en el ANTI join con NULL [#51601](https://github.com/ClickHouse/ClickHouse/pull/51601) ([vdimir](https://github.com/vdimir)).
* Corrección al mover condiciones 'IN' a PREWHERE [#51610](https://github.com/ClickHouse/ClickHouse/pull/51610) ([Alexander Gololobov](https://github.com/davenger)).
* No aplicar PredicateExpressionsOptimizer a los join ASOF/ANTI [#51633](https://github.com/ClickHouse/ClickHouse/pull/51633) ([vdimir](https://github.com/vdimir)).
* Se corrige `async insert` con deduplicación para ReplicatedMergeTree mediante algoritmos de combinación [#51676](https://github.com/ClickHouse/ClickHouse/pull/51676) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige la lectura de una columna vacía en `parseSipHashKey` [#51804](https://github.com/ClickHouse/ClickHouse/pull/51804) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige un segfault al crear una tabla EmbeddedRocksdb no válida [#51847](https://github.com/ClickHouse/ClickHouse/pull/51847) ([Duc Canh Le](https://github.com/canhld94)).
* Corregidas las inserciones en tablas de MongoDB [#51876](https://github.com/ClickHouse/ClickHouse/pull/51876) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió un interbloqueo al cerrar DatabaseCatalog [#51908](https://github.com/ClickHouse/ClickHouse/pull/51908) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrige un error en los operadores de subconsulta [#51922](https://github.com/ClickHouse/ClickHouse/pull/51922) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige la conexión asíncrona a hosts con varias direcciones IP [#51934](https://github.com/ClickHouse/ClickHouse/pull/51934) ([Kruglov Pavel](https://github.com/Avogar)).
* No eliminar las entradas tras ActionsDAG::merge [#51947](https://github.com/ClickHouse/ClickHouse/pull/51947) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Comprobar el refcount en `RemoveManyObjectStorageOperation::finalize` en lugar de hacerlo en `execute` [#51954](https://github.com/ClickHouse/ClickHouse/pull/51954) ([vdimir](https://github.com/vdimir)).
* Se permiten UDF paramétricas [#51964](https://github.com/ClickHouse/ClickHouse/pull/51964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Pequeña corrección de `toDateTime64()` para fechas posteriores al 2283-12-31 [#52130](https://github.com/ClickHouse/ClickHouse/pull/52130) ([Andrey Zvonov](https://github.com/zvonand)).
* Se corrigió la tupla de ORDER BY de las funciones de ventana [#52145](https://github.com/ClickHouse/ClickHouse/pull/52145) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el análisis incorrecto de proyecciones cuando la expresión de agregación contiene funciones monótonas [#52151](https://github.com/ClickHouse/ClickHouse/pull/52151) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un error en las funciones `groupArrayMoving` [#52161](https://github.com/ClickHouse/ClickHouse/pull/52161) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Deshabilitar Direct JOIN para el diccionario de rango [#52187](https://github.com/ClickHouse/ClickHouse/pull/52187) ([Duc Canh Le](https://github.com/canhld94)).
* Corregir la prueba de mutaciones atascadas (y una condición de carrera extremadamente rara) [#52197](https://github.com/ClickHouse/ClickHouse/pull/52197) ([alesapin](https://github.com/alesapin)).
* Se corrige una condición de carrera en el disco Web [#52211](https://github.com/ClickHouse/ClickHouse/pull/52211) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió una condición de carrera de datos en Connection::setAsyncCallback al recibir un paquete desconocido del servidor [#52219](https://github.com/ClickHouse/ClickHouse/pull/52219) ([Kruglov Pavel](https://github.com/Avogar)).
* Corregir la eliminación de datos temporales al arrancar, añadir una prueba [#52275](https://github.com/ClickHouse/ClickHouse/pull/52275) ([vdimir](https://github.com/vdimir)).
* No utilice las proyecciones minmax\_count al contar columnas Nullable [#52297](https://github.com/ClickHouse/ClickHouse/pull/52297) ([Amos Bird](https://github.com/amosbird)).
* MergeTree/ReplicatedMergeTree debería usar la zona horaria del servidor para las entradas de log [#52325](https://github.com/ClickHouse/ClickHouse/pull/52325) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la vista parametrizada con CTE y usos múltiples [#52328](https://github.com/ClickHouse/ClickHouse/pull/52328) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Deshabilitar las plantillas de expresiones para los intervalos de tiempo [#52335](https://github.com/ClickHouse/ClickHouse/pull/52335) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrige `apply_snapshot` en Keeper [#52358](https://github.com/ClickHouse/ClickHouse/pull/52358) ([Antonio Andelic](https://github.com/antonio2368)).
* Actualización de build-osx.md [#52377](https://github.com/ClickHouse/ClickHouse/pull/52377) ([AlexBykovski](https://github.com/AlexBykovski)).
* Se corrige el bloqueo de `countSubstrings` con una subcadena de búsqueda vacía y una columna como cadena de entrada [#52409](https://github.com/ClickHouse/ClickHouse/pull/52409) ([Sergei Trifonov](https://github.com/serxa)).
* Corregir la proyección normal en la tabla Merge  [#52432](https://github.com/ClickHouse/ClickHouse/pull/52432) ([Amos Bird](https://github.com/amosbird)).
* Se corrige una posible doble liberación de memoria en Aggregator [#52439](https://github.com/ClickHouse/ClickHouse/pull/52439) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrigió la inserción en el motor Buffer [#52440](https://github.com/ClickHouse/ClickHouse/pull/52440) ([Vasily Nemkov](https://github.com/Enmk)).
* La implementación de AnyHash no cumplía con la especificación. [#52448](https://github.com/ClickHouse/ClickHouse/pull/52448) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Comprobación de la profundidad de recursión en OptimizedRegularExpression [#52451](https://github.com/ClickHouse/ClickHouse/pull/52451) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una condición de carrera en DatabaseReplicated::startupTables()/canExecuteReplicatedMetadataAlter() [#52490](https://github.com/ClickHouse/ClickHouse/pull/52490) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un fallo en la función `transform` [#52513](https://github.com/ClickHouse/ClickHouse/pull/52513) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregida la eliminación ligera después de borrar una proyección [#52517](https://github.com/ClickHouse/ClickHouse/pull/52517) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige el posible error "No se pueden drenar las conexiones: cancele primero" [#52585](https://github.com/ClickHouse/ClickHouse/pull/52585) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="236" /> Lanzamiento de ClickHouse 23.6, 2023-06-29. [Presentación](https://presentations.clickhouse.com/2023-release-23.6/), [Video](https://www.youtube.com/watch?v=cuf_hYn7dqU)

<Frame>
  <iframe src="https://www.youtube.com/embed/cuf_hYn7dqU" 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>

* Eliminar la funcionalidad `do_not_evict_index_and_mark_files` de la caché fs. Esta funcionalidad solo empeoraba las cosas. [#51253](https://github.com/ClickHouse/ClickHouse/pull/51253) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Eliminar la compatibilidad con ALTER para LIVE VIEW experimental. [#51287](https://github.com/ClickHouse/ClickHouse/pull/51287) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reducir los valores predeterminados de `http_max_field_value_size` y `http_max_field_name_size` a 128 KiB. [#51163](https://github.com/ClickHouse/ClickHouse/pull/51163) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Las métricas de CGroups relacionadas con la CPU se reemplazan por una sola métrica, `CGroupMaxCPU`, para mejorar la usabilidad. Las métricas `Normalized` de uso de CPU se normalizarán con respecto a los límites de CGroups en lugar de al número total de CPU cuando estos estén establecidos. Esto cierra [#50836](https://github.com/ClickHouse/ClickHouse/issues/50836). [#50835](https://github.com/ClickHouse/ClickHouse/pull/50835) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* La función `transform`, así como `CASE` con coincidencia de valores, pasó a admitir todos los tipos de datos. Esto cierra [#29730](https://github.com/ClickHouse/ClickHouse/issues/29730). Esto cierra [#32387](https://github.com/ClickHouse/ClickHouse/issues/32387). Esto cierra [#50827](https://github.com/ClickHouse/ClickHouse/issues/50827). Esto cierra [#31336](https://github.com/ClickHouse/ClickHouse/issues/31336). Esto cierra [#40493](https://github.com/ClickHouse/ClickHouse/issues/40493). [#51351](https://github.com/ClickHouse/ClickHouse/pull/51351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la opción `--rename_files_after_processing <pattern>`. Esto cierra [#34207](https://github.com/ClickHouse/ClickHouse/issues/34207). [#49626](https://github.com/ClickHouse/ClickHouse/pull/49626) ([alekseygolub](https://github.com/alekseygolub)).
* Se añadió compatibilidad con el modificador `TRUNCATE` en la cláusula `INTO OUTFILE`. Se recomienda usar `APPEND` o `TRUNCATE` con `INTO OUTFILE` cuando el archivo ya existe. [#50950](https://github.com/ClickHouse/ClickHouse/pull/50950) ([alekar](https://github.com/alekar)).
* Se añadió el table engine `Redis` y la table function `redis`. Permite realizar consultas en servidores Redis externos. [#50150](https://github.com/ClickHouse/ClickHouse/pull/50150) ([JackyWoo](https://github.com/JackyWoo)).
* Se pueden omitir archivos vacíos en las table functions file/s3/url/hdfs mediante las settings `s3_skip_empty_files`, `hdfs_skip_empty_files`, `engine_file_skip_empty_files`, `engine_url_skip_empty_files`. [#50364](https://github.com/ClickHouse/ClickHouse/pull/50364) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió una nueva setting llamada `use_mysql_types_in_show_columns` para modificar la instrucción SQL `SHOW COLUMNS` y mostrar los tipos equivalentes de MySQL cuando un cliente se conecta a través del puerto de compatibilidad con MySQL. [#49577](https://github.com/ClickHouse/ClickHouse/pull/49577) ([Thomas Panetti](https://github.com/tpanetti)).
* Ahora se puede invocar ClickHouse-client con una connection string en lugar de "--host", "--port", "--user", etc. [#50689](https://github.com/ClickHouse/ClickHouse/pull/50689) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Se añadió la setting `session_timezone`; se usa como timezone predeterminada de una sesión cuando no se especifica explícitamente. [#44149](https://github.com/ClickHouse/ClickHouse/pull/44149) ([Andrey Zvonov](https://github.com/zvonand)).
* El códec DEFLATE\_QPL ahora se controla mediante la server setting "enable\_deflate\_qpl\_codec" (valor predeterminado: false) en lugar de la setting "allow\_experimental\_codecs". Esto hace que DEFLATE\_QPL deje de ser experimental. [#50775](https://github.com/ClickHouse/ClickHouse/pull/50775) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Se mejoró la programación de las tareas de selección de merges y limpieza en `ReplicatedMergeTree`. Las tareas no se ejecutarán con demasiada frecuencia cuando no haya nada que fusionar ni limpiar. Se añadieron los ajustes `max_merge_selecting_sleep_ms`, `merge_selecting_sleep_slowdown_factor`, `max_cleanup_delay_period` y `cleanup_thread_preferred_points_per_iteration`. Esto debería cerrar [#31919](https://github.com/ClickHouse/ClickHouse/issues/31919). [#50107](https://github.com/ClickHouse/ClickHouse/pull/50107) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se habilitó el push down de filtros a través de cross join. [#50605](https://github.com/ClickHouse/ClickHouse/pull/50605) ([Han Fei](https://github.com/hanfei1991)).
* Se mejoró el rendimiento con QueryProfiler habilitado usando `timer_id` local al thread en lugar de un objeto global. [#48778](https://github.com/ClickHouse/ClickHouse/pull/48778) ([Jiebin Sun](https://github.com/jiebinn)).
* Se reescribió el formato de entrada/salida CapnProto para mejorar su rendimiento. Los nombres de columnas de Map y los campos de CapnProto ahora no distinguen entre mayúsculas y minúsculas, y se corrigió la lectura/escritura de los campos de estructuras anidadas. [#49752](https://github.com/ClickHouse/ClickHouse/pull/49752) ([Kruglov Pavel](https://github.com/Avogar)).
* Se optimizó el rendimiento de escritura de Parquet para threads en paralelo. [#50102](https://github.com/ClickHouse/ClickHouse/pull/50102) ([Hongbin Ma](https://github.com/binmahone)).
* Se deshabilitó `parallelize_output_from_storages` para el procesamiento de MATERIALIZED VIEWs y almacenamientos con un solo block. [#50214](https://github.com/ClickHouse/ClickHouse/pull/50214) ([Azat Khuzhin](https://github.com/azat)).
* Se fusionó el PR [#46558](https://github.com/ClickHouse/ClickHouse/pull/46558). Se evita la permutación de blocks durante sort si el block ya está ordenado. [#50697](https://github.com/ClickHouse/ClickHouse/pull/50697) ([Alexey Milovidov](https://github.com/alexey-milovidov), [Maksim Kita](https://github.com/kitaisreal)).
* Se realizan múltiples solicitudes de lista a ZooKeeper en paralelo para acelerar la lectura desde la tabla system.zookeeper. [#51042](https://github.com/ClickHouse/ClickHouse/pull/51042) ([Alexander Gololobov](https://github.com/davenger)).
* Se aceleró la inicialización de las tablas de lookup de DateTime para zonas horarias. Esto debería reducir el tiempo de arranque/conexión de clickhouse-client, especialmente en compilaciones de depuración, ya que es bastante costoso. [#51347](https://github.com/ClickHouse/ClickHouse/pull/51347) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrigió la lentitud de los lagos de datos causada por solicitudes HEAD síncronas. (Relacionado con la lentitud de Iceberg/DeltaLake/Hudi cuando hay muchos archivos). [#50976](https://github.com/ClickHouse/ClickHouse/pull/50976) ([Kseniia Sumarokova](https://github.com/kssenii)).
* No se leen todas las columnas de la tabla derecha de GLOBAL JOIN. [#50721](https://github.com/ClickHouse/ClickHouse/pull/50721) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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

* Se admiten réplicas paralelas con el analyzer. [#50441](https://github.com/ClickHouse/ClickHouse/pull/50441) ([Raúl Marín](https://github.com/Algunenano)).
* Se añade una espera aleatoria antes de ejecutar merges/mutations grandes para repartir la carga de forma más uniforme entre las réplicas en caso de replicación zero-copy. [#51282](https://github.com/ClickHouse/ClickHouse/pull/51282) ([alesapin](https://github.com/alesapin)).
* No se replican las consultas `ALTER PARTITION` ni las mutaciones a través de la base de datos `Replicated` si solo tiene un segmento y la tabla subyacente es `ReplicatedMergeTree`. [#51049](https://github.com/ClickHouse/ClickHouse/pull/51049) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* Relajar los umbrales de "too many parts" para hacerlos más actuales. Restaurar la contrapresión durante consultas INSERT de larga duración. [#50856](https://github.com/ClickHouse/ClickHouse/pull/50856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se permite convertir IPv6 a una dirección IPv4 para el CIDR ::ffff:0:0/96 (direcciones IPv4 mapeadas). [#49759](https://github.com/ClickHouse/ClickHouse/pull/49759) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se actualiza el protocolo de MongoDB para admitir MongoDB 5.1 y versiones posteriores. Se mantiene la compatibilidad con las versiones que usan el protocolo anterior (\<3.6). Cierra [#45621](https://github.com/ClickHouse/ClickHouse/issues/45621), [#49879](https://github.com/ClickHouse/ClickHouse/issues/49879). [#50061](https://github.com/ClickHouse/ClickHouse/pull/50061) ([Nikolay Degterinsky](https://github.com/evillique)).
* Añade la configuración `input_format_max_bytes_to_read_for_schema_inference` para limitar la cantidad de bytes que se leen durante la inferencia de esquema. Cierra [#50577](https://github.com/ClickHouse/ClickHouse/issues/50577). [#50592](https://github.com/ClickHouse/ClickHouse/pull/50592) ([Kruglov Pavel](https://github.com/Avogar)).
* Se respeta la configuración `input_format_null_as_default` en la inferencia de esquemas. [#50602](https://github.com/ClickHouse/ClickHouse/pull/50602) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite omitir las líneas vacías al final en los formatos CSV/TSV/CustomSeparated mediante las opciones `input_format_csv_skip_trailing_empty_lines`, `input_format_tsv_skip_trailing_empty_lines` e `input_format_custom_skip_trailing_empty_lines` (desactivadas de forma predeterminada). Cierra [#49315](https://github.com/ClickHouse/ClickHouse/issues/49315). [#50635](https://github.com/ClickHouse/ClickHouse/pull/50635) ([Kruglov Pavel](https://github.com/Avogar)).
* Las funciones "toDateOrDefault|OrNull" y "accuateCast\[OrDefault|OrNull]" ahora interpretan correctamente los argumentos numéricos. [#50709](https://github.com/ClickHouse/ClickHouse/pull/50709) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Compatibilidad con CSV con delimitadores de campo de espacios en blanco o `\t`; estos delimitadores también son compatibles con Spark. [#50712](https://github.com/ClickHouse/ClickHouse/pull/50712) ([KevinyhZou](https://github.com/KevinyhZou)).
* Los ajustes `number_of_mutations_to_delay` y `number_of_mutations_to_throw` están habilitados de forma predeterminada con valores de 500 y 1000, respectivamente. [#50726](https://github.com/ClickHouse/ClickHouse/pull/50726) ([Anton Popov](https://github.com/CurtizJ)).
* El panel muestra correctamente los valores ausentes. Esto cierra [#50831](https://github.com/ClickHouse/ClickHouse/issues/50831). [#50832](https://github.com/ClickHouse/ClickHouse/pull/50832) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la posibilidad de usar argumentos de fecha y hora con el formato de timestamp de syslog en las funciones `parseDateTimeBestEffort*` y `parseDateTime64BestEffort*`. [#50925](https://github.com/ClickHouse/ClickHouse/pull/50925) ([Victor Krasnov](https://github.com/sirvickr)).
* El parámetro de la línea de comandos "--password" en clickhouse-client ahora solo puede especificarse una vez. [#50966](https://github.com/ClickHouse/ClickHouse/pull/50966) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Use `hash_of_all_files` de `system.parts` para verificar la identidad de las partes durante las copias de seguridad en clúster. [#50997](https://github.com/ClickHouse/ClickHouse/pull/50997) ([Vitaly Baranov](https://github.com/vitlibar)).
* En la tabla del sistema zookeeper\_connection, connected\_time identifica el momento en que se establece la conexión (formato estándar), y se añade session\_uptime\_elapsed\_seconds, que indica la duración de la sesión de conexión establecida (en segundos). [#51026](https://github.com/ClickHouse/ClickHouse/pull/51026) ([郭小龙](https://github.com/guoxiaolongzte)).
* Mejora la barra de progreso para las funciones de tabla file/S3/hdfs/url utilizando el tamaño del fragmento de los datos de origen y un recuento incremental del tamaño total en cada hilo. Corrige la barra de progreso de las funciones \*Cluster. Esto cierra [#47250](https://github.com/ClickHouse/ClickHouse/issues/47250). [#51088](https://github.com/ClickHouse/ClickHouse/pull/51088) ([Kruglov Pavel](https://github.com/Avogar)).
* Añadir total\_bytes\_to\_read al paquete Progress del protocolo TCP para mejorar la barra de progreso. [#51158](https://github.com/ClickHouse/ClickHouse/pull/51158) ([Kruglov Pavel](https://github.com/Avogar)).
* Mejoras en la comprobación de las partes de datos en discos con caché del sistema de archivos. [#51164](https://github.com/ClickHouse/ClickHouse/pull/51164) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un valor de current\_elements\_num que a veces era incorrecto en la caché de fs. [#51242](https://github.com/ClickHouse/ClickHouse/pull/51242) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Se añadió `keeper-client` integrado al binario independiente de Keeper. [#50964](https://github.com/ClickHouse/ClickHouse/pull/50964) ([pufit](https://github.com/pufit)).
* Ahora se usa la versión real de LZ4. [#50621](https://github.com/ClickHouse/ClickHouse/pull/50621) ([Nikita Taranov](https://github.com/nickitat)).
* El servidor ClickHouse imprimirá la lista de configuraciones modificadas en caso de errores fatales. Esto cierra [#51137](https://github.com/ClickHouse/ClickHouse/issues/51137). [#51138](https://github.com/ClickHouse/ClickHouse/pull/51138) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora se puede compilar ClickHouse con clang-17. [#51300](https://github.com/ClickHouse/ClickHouse/pull/51300) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La comprobación de [SQLancer](https://github.com/sqlancer/sqlancer) ahora se considera estable, ya que se corrigieron los errores que ponía de manifiesto. A partir de ahora, los fallos de la comprobación de SQLancer se informarán con estado de comprobación fallida. [#51340](https://github.com/ClickHouse/ClickHouse/pull/51340) ([Ilya Yatsishin](https://github.com/qoega)).
* Se dividió el enorme `RUN` del Dockerfile en bloques condicionales más pequeños. Las herramientas necesarias se instalan bajo demanda en la misma capa `RUN` y después se eliminan. El SO se actualiza solo una vez al principio. Se utiliza un método moderno para comprobar el repositorio firmado. Se rebaja la imagen base a ubuntu:20.04 para resolver los problemas en versiones antiguas de Docker. Se actualiza la versión de golang para corregir vulnerabilidades de golang. [#51504](https://github.com/ClickHouse/ClickHouse/pull/51504) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).

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

* Informar correctamente del estado de carga de los diccionarios ejecutables [#48775](https://github.com/ClickHouse/ClickHouse/pull/48775) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Correcta mutación de los índices de omisión y las proyecciones [#50104](https://github.com/ClickHouse/ClickHouse/pull/50104) ([Amos Bird](https://github.com/amosbird)).
* Limpieza de partes en traslado [#50489](https://github.com/ClickHouse/ClickHouse/pull/50489) ([vdimir](https://github.com/vdimir)).
* Se corrigió la compatibilidad con versiones anteriores del hash de tipos IP en funciones de agregación [#50551](https://github.com/ClickHouse/ClickHouse/pull/50551) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige el recuento incorrecto de filas en las tablas de la familia Log después de TRUNCATE [#50585](https://github.com/ClickHouse/ClickHouse/pull/50585) ([flynn](https://github.com/ucasfl)).
* Corrige un error en la combinación paralela de `uniqExact` [#50590](https://github.com/ClickHouse/ClickHouse/pull/50590) ([Nikita Taranov](https://github.com/nickitat)).
* Se revierten los cambios recientes de grace hash join [#50699](https://github.com/ClickHouse/ClickHouse/pull/50699) ([vdimir](https://github.com/vdimir)).
* Caché de consultas: se intenta corregir una conversión incorrecta de `ColumnConst` a `ColumnVector<char8_t>` [#50704](https://github.com/ClickHouse/ClickHouse/pull/50704) ([Robert Schulze](https://github.com/rschu1ze)).
* Evitar almacenar en Keeper logs que contengan una operación desconocida [#50751](https://github.com/ClickHouse/ClickHouse/pull/50751) ([Antonio Andelic](https://github.com/antonio2368)).
* Compatibilidad de SummingMergeTree con DateTime64 [#50797](https://github.com/ClickHouse/ClickHouse/pull/50797) ([Jordi Villar](https://github.com/jrdi)).
* Añade una configuración de compatibilidad para zonas horarias no constantes [#50834](https://github.com/ClickHouse/ClickHouse/pull/50834) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige el hash de los parámetros LDAP en las entradas de caché [#50865](https://github.com/ClickHouse/ClickHouse/pull/50865) ([Julian Maicher](https://github.com/jmaicher)).
* Se usa fallback para analizar enteros grandes a partir de String en lugar de generar una excepción en el formato Parquet [#50873](https://github.com/ClickHouse/ClickHouse/pull/50873) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió la comprobación excesivamente frecuente del archivo de bloqueo durante la escritura de una copia de seguridad [#50889](https://github.com/ClickHouse/ClickHouse/pull/50889) ([Vitaly Baranov](https://github.com/vitlibar)).
* No aplicar la proyección si `read-in-order` estaba habilitado. [#50923](https://github.com/ClickHouse/ClickHouse/pull/50923) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige una condición de carrera en el iterador de Azure Blob Storage [#50936](https://github.com/ClickHouse/ClickHouse/pull/50936) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrige la propagación errónea de `sort_description` en `CreatingSets` [#50955](https://github.com/ClickHouse/ClickHouse/pull/50955) ([Nikita Taranov](https://github.com/nickitat)).
* Corregido el procesamiento de metadatos opcionales de Iceberg v2 [#50974](https://github.com/ClickHouse/ClickHouse/pull/50974) ([Kseniia Sumarokova](https://github.com/kssenii)).
* MaterializedMySQL: Mantener los paréntesis en las sobrescrituras de tablas vacías [#50977](https://github.com/ClickHouse/ClickHouse/pull/50977) ([Val Doroshchuk](https://github.com/valbok)).
* Se corrige un fallo en BackupCoordinationStageSync::setError() [#51012](https://github.com/ClickHouse/ClickHouse/pull/51012) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió un fallo sutil en el mecanismo de copy-on-write del diccionario ColumnLowCardinality [#51064](https://github.com/ClickHouse/ClickHouse/pull/51064) ([Michael Kolupaev](https://github.com/al13n321)).
* Generación de IV seguros [#51086](https://github.com/ClickHouse/ClickHouse/pull/51086) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corregir el funcionamiento ineficaz de la caché de consultas para `SELECT` con subconsultas [#51132](https://github.com/ClickHouse/ClickHouse/pull/51132) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigió el índice Set con una comparación constante Nullable. [#51205](https://github.com/ClickHouse/ClickHouse/pull/51205) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un cierre inesperado en las funciones s3 y s3Cluster [#51209](https://github.com/ClickHouse/ClickHouse/pull/51209) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige un cierre inesperado con expresiones compiladas [#51231](https://github.com/ClickHouse/ClickHouse/pull/51231) ([LiuNeng](https://github.com/liuneng1994)).
* Se corrigió un use-after-free en StorageURL al cambiar de URL [#51260](https://github.com/ClickHouse/ClickHouse/pull/51260) ([Michael Kolupaev](https://github.com/al13n321)).
* Se actualizó la comprobación para la vista parametrizada [#51272](https://github.com/ClickHouse/ClickHouse/pull/51272) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige la escritura repetida del mismo archivo en la copia de seguridad [#51299](https://github.com/ClickHouse/ClickHouse/pull/51299) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corregido un fallo del fuzzer en ActionsDAG [#51301](https://github.com/ClickHouse/ClickHouse/pull/51301) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Eliminar código basura de la función `transform` [#51350](https://github.com/ClickHouse/ClickHouse/pull/51350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

### <a id="235" /> Lanzamiento de ClickHouse 23.5, 2023-06-08. [Presentación](https://presentations.clickhouse.com/2023-release-23.5/), [Vídeo](https://www.youtube.com/watch?v=o8Gj1ClU71M)

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

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

* Comprimir las marcas y la clave primaria de forma predeterminada. Esto reduce significativamente el tiempo de las consultas en frío. Notas de actualización: la compatibilidad con marcas comprimidas y clave primaria comprimida se añadió en la versión 22.9. Si activó las marcas comprimidas o la clave primaria comprimida, o instaló la versión 23.5 o posterior, que las activa de forma predeterminada, no podrá volver a la versión 22.8 o a una anterior. También puede desactivar explícitamente las marcas comprimidas o las claves primarias comprimidas especificando los ajustes `compress_marks` y `compress_primary_key` en la sección `<merge_tree>` del archivo de configuración del servidor. **Notas de actualización:** Si actualiza desde versiones anteriores a la 22.9, debe actualizar todas las réplicas a la vez, o desactivar la compresión antes de la actualización, o actualizar pasando por una versión intermedia en la que las marcas comprimidas sean compatibles pero no estén activadas de forma predeterminada, como la 23.3. [#42587](https://github.com/ClickHouse/ClickHouse/pull/42587) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Hacer que el object storage local funcione de forma coherente con el object storage de S3, corregir el problema con append (cierra [#48465](https://github.com/ClickHouse/ClickHouse/issues/48465)) y permitir configurarlo como almacenamiento independiente. El cambio no es retrocompatible porque la caché sobre el object storage local no es compatible con versiones anteriores. [#48791](https://github.com/ClickHouse/ClickHouse/pull/48791) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se elimina la funcionalidad Experimental "in-memory data parts". El formato de datos sigue siendo compatible, pero los ajustes son `no-op` y en su lugar se usarán partes compact o wide. Esto cierra [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409). [#49429](https://github.com/ClickHouse/ClickHouse/pull/49429) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se cambiaron los valores predeterminados de los ajustes `parallelize_output_from_storages` y `input_format_parquet_preserve_order`. Esto permite a ClickHouse reordenar filas al leer desde archivos (por ejemplo, CSV o Parquet), lo que mejora enormemente el rendimiento en muchos casos. Para restaurar el comportamiento anterior y preservar el orden, use `parallelize_output_from_storages = 0`, `input_format_parquet_preserve_order = 1`. [#49479](https://github.com/ClickHouse/ClickHouse/pull/49479) ([Michael Kolupaev](https://github.com/al13n321)).
* Hacer que las projections estén listas para producción. Añadir el ajuste `optimize_use_projections` para controlar si se seleccionarán projections para las consultas SELECT. El ajuste `allow_experimental_projection_optimization` es Obsolete y no hace nada. [#49719](https://github.com/ClickHouse/ClickHouse/pull/49719) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Marcar `joinGet` como no determinista (igual que `dictGet`). Esto permite usarlos en mutations sin necesidad de un ajuste adicional. [#49843](https://github.com/ClickHouse/ClickHouse/pull/49843) ([Azat Khuzhin](https://github.com/azat)).
* Revertir el cambio por el que "`groupArray` returns cannot be nullable" (debido a una ruptura de compatibilidad binaria para `groupArray`/`groupArrayLast`/`groupArraySample` sobre tipos `Nullable`, lo que probablemente provocará `TOO_LARGE_ARRAY_SIZE` o `CANNOT_READ_ALL_DATA`). [#49971](https://github.com/ClickHouse/ClickHouse/pull/49971) ([Azat Khuzhin](https://github.com/azat)).
* El ajuste `enable_memory_bound_merging_of_aggregation_results` está activado de forma predeterminada. Si actualiza desde una versión anterior a la 22.12, recomendamos establecer este indicador en `false` hasta que finalice la actualización. [#50319](https://github.com/ClickHouse/ClickHouse/pull/50319) ([Nikita Taranov](https://github.com/nickitat)).

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

* Se añadió el motor de almacenamiento AzureBlobStorage y la función de tabla azureBlobStorage. El conjunto de funcionalidades compatibles es muy similar al de S3 como motor de almacenamiento/función de tabla \[#50604] ([https://github.com/ClickHouse/ClickHouse/pull/50604](https://github.com/ClickHouse/ClickHouse/pull/50604)) ([alesapin](https://github.com/alesapin)) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni).
* Se añadió un cliente nativo de línea de comandos para ClickHouse Keeper; está disponible como `clickhouse keeper-client` [#47414](https://github.com/ClickHouse/ClickHouse/pull/47414) ([pufit](https://github.com/pufit)).
* Se añade la función de tabla `urlCluster`. Se refactorizan todas las funciones de tabla \*Cluster para reducir la duplicación de código. Se hace que la inferencia de esquema funcione para todas las posibles firmas de las funciones \*Cluster y para las colecciones con nombre. Cierra [#38499](https://github.com/ClickHouse/ClickHouse/issues/38499). [#45427](https://github.com/ClickHouse/ClickHouse/pull/45427) ([attack204](https://github.com/attack204)), Pavel Kruglov.
* La caché de consultas ahora puede usarse para cargas de trabajo en producción. [#47977](https://github.com/ClickHouse/ClickHouse/pull/47977) ([Robert Schulze](https://github.com/rschu1ze)). La caché de consultas ahora puede admitir consultas con totales y el modificador extremes. [#48853](https://github.com/ClickHouse/ClickHouse/pull/48853) ([Robert Schulze](https://github.com/rschu1ze)). Marcar la configuración `allow_experimental_query_cache` como obsoleta para mantener la compatibilidad con versiones anteriores. Se eliminó en [https://github.com/ClickHouse/ClickHouse/pull/47977](https://github.com/ClickHouse/ClickHouse/pull/47977). [#49934](https://github.com/ClickHouse/ClickHouse/pull/49934) ([Timur Solodovnikov](https://github.com/tsolodov)).
* Los tipos de datos geográficos (`Point`, `Ring`, `Polygon` y `MultiPolygon`) están preparados para producción. [#50022](https://github.com/ClickHouse/ClickHouse/pull/50022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade inferencia de esquemas a los motores de tabla de PostgreSQL, MySQL, MeiliSearch y SQLite. Cierra [#49972](https://github.com/ClickHouse/ClickHouse/issues/49972). [#50000](https://github.com/ClickHouse/ClickHouse/pull/50000) ([Nikolay Degterinsky](https://github.com/evillique)).
* El tipo de contraseña en consultas como `CREATE USER u IDENTIFIED BY 'p'` se establecerá automáticamente según la configuración `default_password_type` de `config.xml` del servidor. Cierra [#42915](https://github.com/ClickHouse/ClickHouse/issues/42915). [#44674](https://github.com/ClickHouse/ClickHouse/pull/44674) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añade el tipo de autenticación por contraseña bcrypt. Cierra [#34599](https://github.com/ClickHouse/ClickHouse/issues/34599). [#44905](https://github.com/ClickHouse/ClickHouse/pull/44905) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se introduce la nueva palabra clave `INTO OUTFILE 'file.txt' APPEND`. [#48880](https://github.com/ClickHouse/ClickHouse/pull/48880) ([alekar](https://github.com/alekar)).
* Se añadió la tabla `system.zookeeper_connection`, que muestra información sobre las conexiones a Keeper. [#45245](https://github.com/ClickHouse/ClickHouse/pull/45245) ([mateng915](https://github.com/mateng0915)).
* Se agregó la nueva función `generateRandomStructure`, que genera una estructura aleatoria de tabla. Puede usarse junto con la table function `generateRandom`. [#47409](https://github.com/ClickHouse/ClickHouse/pull/47409) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite usar `CASE` sin una rama `ELSE` y amplía `transform` para admitir más tipos. También corrige algunos problemas que hacían que transform() devolviera resultados incorrectos cuando se mezclaban tipos decimales con otros tipos numéricos. [#48300](https://github.com/ClickHouse/ClickHouse/pull/48300) ([Salvatore Mesoraca](https://github.com/aiven-sal)). Cierra #2655. Cierra #9596. Cierra #38666.
* Se añadió el [cifrado del lado del servidor con claves KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) para tablas S3 y la configuración `header` para discos S3. Cierra [#48723](https://github.com/ClickHouse/ClickHouse/issues/48723). [#48724](https://github.com/ClickHouse/ClickHouse/pull/48724) ([Johann Gan](https://github.com/johanngan)).
* Añade MemoryTracker para las tareas en segundo plano (fusiones y mutaciones). Introduce los ajustes `merges_mutations_memory_usage_soft_limit` y `merges_mutations_memory_usage_to_ram_ratio`, que representan el límite blando de memoria para fusiones y mutaciones. Si se alcanza este límite, ClickHouse no programará nuevas tareas de fusión o mutación. También se introduce la métrica `MergesMutationsMemoryTracking` para poder observar el uso actual de memoria de las tareas en segundo plano. Reenvío de [#46089](https://github.com/ClickHouse/ClickHouse/issues/46089). Cierra [#48774](https://github.com/ClickHouse/ClickHouse/issues/48774). [#48787](https://github.com/ClickHouse/ClickHouse/pull/48787) ([Dmitry Novik](https://github.com/novikd)).
* La función `dotProduct` admite arrays. [#49050](https://github.com/ClickHouse/ClickHouse/pull/49050) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Se ha añadido compatibilidad con la instrucción `SHOW INDEX` para mejorar la compatibilidad con MySQL. [#49158](https://github.com/ClickHouse/ClickHouse/pull/49158) ([Robert Schulze](https://github.com/rschu1ze)).
* Añade compatibilidad para las columnas virtuales `_file` y `_path` en la función de tabla `url`. - Mejora el mensaje de error de la función de tabla `url`. - resuelve [#49231](https://github.com/ClickHouse/ClickHouse/issues/49231) - resuelve [#49232](https://github.com/ClickHouse/ClickHouse/issues/49232). [#49356](https://github.com/ClickHouse/ClickHouse/pull/49356) ([Ziyi Tan](https://github.com/Ziy1-Tan)).
* Se añadió el campo `grants` en el archivo users.xml, que permite especificar privilegios para los usuarios. [#49381](https://github.com/ClickHouse/ClickHouse/pull/49381) ([pufit](https://github.com/pufit)).
* Se admiten `full/right join` con el algoritmo `grace hash join`. [#49483](https://github.com/ClickHouse/ClickHouse/pull/49483) ([lgbo](https://github.com/lgbo-ustc)).
* El modificador `WITH FILL` agrupa el rellenado según el prefijo de ordenación. Lo controla la configuración `use_with_fill_by_sorting_prefix` (habilitada de forma predeterminada). Relacionado con [#33203](https://github.com/ClickHouse/ClickHouse/issues/33203)#issuecomment-1418736794. [#49503](https://github.com/ClickHouse/ClickHouse/pull/49503) ([Igor Nikonov](https://github.com/devcrafter)).
* Clickhouse-client ahora acepta consultas después de "--multiquery" cuando no se especifica "--query" (o "-q"). Ejemplo: clickhouse-client --multiquery "select 1; select 2;". [#49870](https://github.com/ClickHouse/ClickHouse/pull/49870) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Añade un `handshake_timeout` específico para recibir el paquete Hello de una réplica. Cierra [#48854](https://github.com/ClickHouse/ClickHouse/issues/48854). [#49948](https://github.com/ClickHouse/ClickHouse/pull/49948) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió la función "space", que repite un espacio tantas veces como se indique. [#50103](https://github.com/ClickHouse/ClickHouse/pull/50103) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió la opción --input\_format\_csv\_trim\_whitespaces. [#50215](https://github.com/ClickHouse/ClickHouse/pull/50215) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Permite que la función `dictGetAll` para diccionarios de árbol regexp devuelva valores de varias coincidencias como arrays. Cierra [#50254](https://github.com/ClickHouse/ClickHouse/issues/50254). [#50255](https://github.com/ClickHouse/ClickHouse/pull/50255) ([Johann Gan](https://github.com/johanngan)).
* Se añadió la función `toLastDayOfWeek` para redondear una fecha o una fecha con hora al sábado o domingo más cercano. [#50315](https://github.com/ClickHouse/ClickHouse/pull/50315) ([Victor Krasnov](https://github.com/sirvickr)).
* Posibilidad de ignorar un skip index especificando `ignore_data_skipping_indices`. [#50329](https://github.com/ClickHouse/ClickHouse/pull/50329) ([Boris Kuschel](https://github.com/bkuschel)).
* Añade la tabla `system.user_processes` y la consulta `SHOW USER PROCESSES` para mostrar información sobre la memoria y ProfileEvents a nivel de usuario. [#50492](https://github.com/ClickHouse/ClickHouse/pull/50492) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Añade las opciones de servidor y de formato `display_secrets_in_show_and_select` para mostrar secretos de tablas, bases de datos, funciones de tabla y diccionarios. Añade el privilegio `displaySecretsInShowAndSelect`, que controla qué usuarios pueden ver secretos. [#46528](https://github.com/ClickHouse/ClickHouse/pull/46528) ([Mike Kot](https://github.com/myrrc)).
* Se permite configurar una ROW POLICY para todas las tablas que pertenecen a una base de datos. [#47640](https://github.com/ClickHouse/ClickHouse/pull/47640) ([Ilya Golshtein](https://github.com/ilejn)).

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

* Comprime las marcas y la clave primaria de forma predeterminada. Esto reduce significativamente el tiempo de las consultas en frío. Notas de actualización: la compatibilidad con la compresión de marcas y de la clave primaria se añadió en la versión 22.9. Si activaste la compresión de las marcas o de la clave primaria, o instalaste la versión 23.5 o posterior, en la que la compresión de las marcas o de la clave primaria está activada de forma predeterminada, no podrás volver a una versión 22.8 o anterior. También puedes desactivar explícitamente la compresión de las marcas o de las claves primarias especificando los ajustes `compress_marks` y `compress_primary_key` en la sección `<merge_tree>` del archivo de configuración del servidor. [#42587](https://github.com/ClickHouse/ClickHouse/pull/42587) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La nueva configuración s3\_max\_inflight\_parts\_for\_one\_file establece el límite de partes cargadas simultáneamente mediante una solicitud de carga multiparte para un mismo archivo. [#49961](https://github.com/ClickHouse/ClickHouse/pull/49961) ([Sema Checherinda](https://github.com/CheSema)).
* Al leer varios archivos, se reduce el número de hilos de análisis en paralelo para cada archivo. Resuelve [#42192](https://github.com/ClickHouse/ClickHouse/issues/42192). [#46661](https://github.com/ClickHouse/ClickHouse/pull/46661) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Use la proyección de agregación solo si lee menos gránulos que la lectura habitual. Debería ayudar cuando la consulta alcanza la PK de la tabla, pero no la proyección. Corrige [#49150](https://github.com/ClickHouse/ClickHouse/issues/49150). [#49417](https://github.com/ClickHouse/ClickHouse/pull/49417) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* No almacenar bloques en `ANY` hash join cuando no se inserta nada. [#48633](https://github.com/ClickHouse/ClickHouse/pull/48633) ([vdimir](https://github.com/vdimir)).
* Corrige el combinador de agregación `-If` cuando se compila con JIT y habilita la compilación JIT para las funciones de agregación. Cierra [#48120](https://github.com/ClickHouse/ClickHouse/issues/48120). [#49083](https://github.com/ClickHouse/ClickHouse/pull/49083) ([Igor Nikonov](https://github.com/devcrafter)).
* Para leer desde tablas remotas usamos tareas más pequeñas (en lugar de leer la parte completa) para que el robo de tareas funcione \* el tamaño de la tarea se determina según el tamaño de las columnas que se van a leer \* usar siempre búferes de 1mb para leer desde S3 \* los límites de los segmentos de caché se alinean a 1mb para que tengan un tamaño adecuado incluso con tareas pequeñas. Esto también debería evitar la fragmentación. [#49287](https://github.com/ClickHouse/ClickHouse/pull/49287) ([Nikita Taranov](https://github.com/nickitat)).
* Se introdujeron los ajustes: - `merge_max_block_size_bytes` para limitar la cantidad de memoria utilizada en las operaciones en segundo plano. - `vertical_merge_algorithm_min_bytes_to_activate` para añadir una condición adicional para activar las fusiones verticales. [#49313](https://github.com/ClickHouse/ClickHouse/pull/49313) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* El tamaño predeterminado del búfer de lectura para el sistema de archivos local se ajustó a un valor ligeramente mejor. Además, se introdujeron dos nuevas opciones de configuración: `max_read_buffer_size_local_fs` y `max_read_buffer_size_remote_fs`. [#49321](https://github.com/ClickHouse/ClickHouse/pull/49321) ([Nikita Taranov](https://github.com/nickitat)).
* Se mejoró el uso de memoria y la velocidad de los diccionarios `SPARSE_HASHED`/`HASHED` (p. ej., `SPARSE_HASHED` ahora consume 2,6 veces menos memoria y es \~2 veces más rápido). [#49380](https://github.com/ClickHouse/ClickHouse/pull/49380) ([Azat Khuzhin](https://github.com/azat)).
* Optimice las tablas `system.query_log` y `system.query_thread_log` aplicando `LowCardinality` cuando corresponda. Las consultas sobre estas tablas serán más rápidas. [#49530](https://github.com/ClickHouse/ClickHouse/pull/49530) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mejor rendimiento al leer archivos `Parquet` locales (gracias a la lectura en paralelo). [#49539](https://github.com/ClickHouse/ClickHouse/pull/49539) ([Michael Kolupaev](https://github.com/al13n321)).
* Mejora el rendimiento de `RIGHT/FULL JOIN` hasta 2 veces en determinados casos, especialmente al hacer join entre una tabla izquierda pequeña y una tabla derecha grande. [#49585](https://github.com/ClickHouse/ClickHouse/pull/49585) ([lgbo](https://github.com/lgbo-ustc)).
* Se mejora el rendimiento de BLAKE3 en un 11 % al habilitar LTO para Rust. [#49600](https://github.com/ClickHouse/ClickHouse/pull/49600) ([Azat Khuzhin](https://github.com/azat)). Ahora está al nivel de C++.
* Optimizar la estructura de `system.opentelemetry_span_log`. Usar `LowCardinality` donde corresponda. Aunque esta tabla en general está bastante mal diseñada (usa el tipo de datos Map incluso para atributos comunes), mejorará ligeramente. [#49647](https://github.com/ClickHouse/ClickHouse/pull/49647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Intentar preasignar el tamaño de la tabla hash en el join `grace_hash`. [#49816](https://github.com/ClickHouse/ClickHouse/pull/49816) ([lgbo](https://github.com/lgbo-ustc)).
* Fusión en paralelo de estados `uniqExactIf`. Cierra [#49885](https://github.com/ClickHouse/ClickHouse/issues/49885). [#50285](https://github.com/ClickHouse/ClickHouse/pull/50285) ([flynn](https://github.com/ucasfl)).
* Mejora de Keeper: añadir la solicitud `CheckNotExists` a Keeper, lo que mejora el rendimiento de las tablas replicadas. [#48897](https://github.com/ClickHouse/ClickHouse/pull/48897) ([Antonio Andelic](https://github.com/antonio2368)).
* Mejoras de rendimiento de Keeper: se evita serializar la misma solicitud dos veces durante el procesamiento. Se almacenan en caché los resultados de deserialización de solicitudes grandes. Controlado mediante la nueva configuración de coordinación `min_request_size_for_cache`. [#49004](https://github.com/ClickHouse/ClickHouse/pull/49004) ([Antonio Andelic](https://github.com/antonio2368)).
* Se redujo el número de solicitudes `List` a ZooKeeper al seleccionar partes para fusionar cuando muchas particiones no tienen nada que fusionar. [#49637](https://github.com/ClickHouse/ClickHouse/pull/49637) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Refactorización del bloqueo en la caché de FS [#44985](https://github.com/ClickHouse/ClickHouse/pull/44985) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Deshabilitar las réplicas paralelas puras si es posible aplicar la optimización de conteo trivial. [#50594](https://github.com/ClickHouse/ClickHouse/pull/50594) ([Raúl Marín](https://github.com/Algunenano)).
* No enviar una solicitud HEAD para todas las claves en la inferencia de esquema de Iceberg, sino solo para las claves que se usan para leer datos. [#50203](https://github.com/ClickHouse/ClickHouse/pull/50203) ([Kruglov Pavel](https://github.com/Avogar)).
* La configuración `enable_memory_bound_merging_of_aggregation_results` está habilitada de forma predeterminada. [#50319](https://github.com/ClickHouse/ClickHouse/pull/50319) ([Nikita Taranov](https://github.com/nickitat)).

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

* El `codec` `DEFLATE_QPL` reduce la versión mínima de SIMD a SSE 4.2. [cambio en la documentación de qpl](https://github.com/intel/qpl/commit/3f8f5cea27739f5261e8fd577dc233ffe88bf679) - Intel® QPL se basa en un despachador de kernels en tiempo de ejecución y una comprobación de cpuid para elegir la mejor implementación disponible (sse/avx2/avx512) - se reestructuró el archivo CMake para la compilación de qpl en ClickHouse a fin de alinearlo con la última versión upstream de qpl. [#49811](https://github.com/ClickHouse/ClickHouse/pull/49811) ([jasperzhu](https://github.com/jinjunzh)).
* Se añade compatibilidad inicial para realizar JOINs con réplicas paralelas puras. [#49544](https://github.com/ClickHouse/ClickHouse/pull/49544) ([Raúl Marín](https://github.com/Algunenano)).
* Más paralelismo en la eliminación de partes `Outdated` con "zero-copy replication". [#49630](https://github.com/ClickHouse/ClickHouse/pull/49630) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Réplicas paralelas: 1) Se corrigió un error `NOT_FOUND_COLUMN_IN_BLOCK` al usar réplicas paralelas con almacenamiento no replicado y con la configuración `parallel_replicas_for_non_replicated_merge_tree` deshabilitada. 2) Ahora `allow_experimental_parallel_reading_from_replicas` tiene 3 valores posibles: 0, 1 y 2. 0 - deshabilitado, 1 - habilitado; se deshabilitan silenciosamente en caso de error (en caso de FINAL o JOIN), 2 - habilitado; lanza una excepción en caso de error. 3) Si se usa el modificador FINAL en una consulta SELECT y las réplicas paralelas están habilitadas, ClickHouse intentará deshabilitarlas si `allow_experimental_parallel_reading_from_replicas` está establecido en 1; en caso contrario, lanzará una excepción. [#50195](https://github.com/ClickHouse/ClickHouse/pull/50195) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Cuando las réplicas paralelas están habilitadas, siempre omitirán los servidores no disponibles (este comportamiento está controlado por la configuración `skip_unavailable_shards`, habilitada de forma predeterminada y que solo puede deshabilitarse). Esto cierra: [#48565](https://github.com/ClickHouse/ClickHouse/issues/48565). [#50293](https://github.com/ClickHouse/ClickHouse/pull/50293) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* El comando `BACKUP` no descifrará los datos de discos cifrados al crear una copia de seguridad. En su lugar, los datos se almacenarán en la copia de seguridad en forma cifrada. Estas copias de seguridad solo pueden restaurarse en un disco cifrado con la misma lista de claves de cifrado (o una ampliada). [#48896](https://github.com/ClickHouse/ClickHouse/pull/48896) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añadió la posibilidad de usar tablas temporales en la cláusula FROM de ATTACH PARTITION FROM y REPLACE PARTITION FROM. [#49436](https://github.com/ClickHouse/ClickHouse/pull/49436) ([Roman Vasin](https://github.com/rvasin)).
* Se añadió la configuración `async_insert` para las tablas `MergeTree`. Tiene el mismo significado que la configuración `async_insert` a nivel de consulta y habilita las inserciones asíncronas para una tabla específica. Nota: no surte efecto en las consultas de inserción desde `clickhouse-client`; en ese caso, use la configuración a nivel de consulta. [#49122](https://github.com/ClickHouse/ClickHouse/pull/49122) ([Anton Popov](https://github.com/CurtizJ)).
* Se admite el uso de sufijos de tamaño en los parámetros de la sentencia de creación de cuotas. [#49087](https://github.com/ClickHouse/ClickHouse/pull/49087) ([Eridanus](https://github.com/Eridanus117)).
* Se amplían `first_value` y `last_value` para aceptar NULL. [#46467](https://github.com/ClickHouse/ClickHouse/pull/46467) ([lgbo](https://github.com/lgbo-ustc)).
* Se añaden los alias `str_to_map` y `mapFromString` para `extractKeyValuePairs`. Cierra [https://github.com/clickhouse/clickhouse/issues/47185](https://github.com/clickhouse/clickhouse/issues/47185). [#49466](https://github.com/ClickHouse/ClickHouse/pull/49466) ([flynn](https://github.com/ucasfl)).
* Se añade compatibilidad con la versión 2 de CGroup para métricas asíncronas sobre el uso y la disponibilidad de la memoria. Esto cierra [#37983](https://github.com/ClickHouse/ClickHouse/issues/37983). [#45999](https://github.com/ClickHouse/ClickHouse/pull/45999) ([sichenzhao](https://github.com/sichenzhao)).
* Las funciones de tabla de clúster siempre deben omitir los segmentos no disponibles. cierra [#46314](https://github.com/ClickHouse/ClickHouse/issues/46314). [#46765](https://github.com/ClickHouse/ClickHouse/pull/46765) ([zk\_kiger](https://github.com/zk-kiger)).
* Permite que el archivo CSV contenga columnas vacías en el encabezado. [#47496](https://github.com/ClickHouse/ClickHouse/pull/47496) ([你不要过来啊](https://github.com/iiiuwioajdks)).
* Se añade la función de tabla `gcs`, compatible con S3, para Google Cloud Storage. Al igual que las funciones `oss` y `cosn`, es solo un alias de la función de tabla `s3` y no incorpora ninguna funcionalidad nueva. [#47815](https://github.com/ClickHouse/ClickHouse/pull/47815) ([Kuba Kaflik](https://github.com/jkaflik)).
* Se añadió la capacidad de usar un tamaño estricto para las partes en S3 (compatibilidad con el almacenamiento S3 de CloudFlare R2). [#48492](https://github.com/ClickHouse/ClickHouse/pull/48492) ([Azat Khuzhin](https://github.com/azat)).
* Se añadieron nuevas columnas con información sobre las réplicas de la base de datos `Replicated` en `system.clusters`: `database_shard_name`, `database_replica_name`, `is_active`. Se añadió una cláusula opcional `FROM SHARD` a la consulta `SYSTEM DROP DATABASE REPLICA`. [#48548](https://github.com/ClickHouse/ClickHouse/pull/48548) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Añade una nueva columna `zookeeper_name` en system.replicas para indicar en qué clúster de ZooKeeper (auxiliar) se almacenan los metadatos de la tabla replicada. [#48549](https://github.com/ClickHouse/ClickHouse/pull/48549) ([cangyin](https://github.com/cangyin)).
* El operador `IN` permite comparar `Date` y `Date32`. Cierra [#48736](https://github.com/ClickHouse/ClickHouse/issues/48736). [#48806](https://github.com/ClickHouse/ClickHouse/pull/48806) ([flynn](https://github.com/ucasfl)).
* Soporte para códigos de borrado en `HDFS`, autor: @M1eyu2018, @tomscut. [#48833](https://github.com/ClickHouse/ClickHouse/pull/48833) ([M1eyu](https://github.com/M1eyu2018)).
* Se implementó SYSTEM DROP REPLICA desde clústeres auxiliares de ZooKeeper; podría estar listo pronto [#48931](https://github.com/ClickHouse/ClickHouse/issues/48931). [#48932](https://github.com/ClickHouse/ClickHouse/pull/48932) ([wangxiaobo](https://github.com/wzb5212)).
* Se añade el tipo de datos Array a MongoDB. Cierra [#48598](https://github.com/ClickHouse/ClickHouse/issues/48598). [#48983](https://github.com/ClickHouse/ClickHouse/pull/48983) ([Nikolay Degterinsky](https://github.com/evillique)).
* Permite almacenar tipos de datos `Interval` en tablas. [#49085](https://github.com/ClickHouse/ClickHouse/pull/49085) ([larryluogit](https://github.com/larryluogit)).
* Permite usar la función de ventana `ntile` sin definir explícitamente el marco de ventana: `ntile(3) OVER (ORDER BY a)`, cierra [#46763](https://github.com/ClickHouse/ClickHouse/issues/46763). [#49093](https://github.com/ClickHouse/ClickHouse/pull/49093) ([vdimir](https://github.com/vdimir)).
* Se añadieron ajustes (`number_of_mutations_to_delay`, `number_of_mutations_to_throw`) para retrasar o rechazar consultas `ALTER` que crean mutaciones (`ALTER UPDATE`, `ALTER DELETE`, `ALTER MODIFY COLUMN`, ...) en caso de que la tabla ya tenga muchas mutaciones pendientes de finalizar. [#49117](https://github.com/ClickHouse/ClickHouse/pull/49117) ([Anton Popov](https://github.com/CurtizJ)).
* Capturar la excepción de `create_directories` en la caché del sistema de archivos. [#49203](https://github.com/ClickHouse/ClickHouse/pull/49203) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Copia ejemplos incorporados a un nuevo campo `example` en `system.functions` para complementar el campo `description`. [#49222](https://github.com/ClickHouse/ClickHouse/pull/49222) ([Dan Roscigno](https://github.com/DanRoscigno)).
* Habilita opciones de conexión para el Diccionario de MongoDB. Ejemplo: `xml <source> <mongodb> <host>localhost</host> <port>27017</port> <user></user> <password></password> <db>test</db> <collection>dictionary_source</collection> <options>ssl=true</options> </mongodb> </source>` ### Entrada en la documentación para cambios visibles para el usuario. [#49225](https://github.com/ClickHouse/ClickHouse/pull/49225) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se añadió el alias `asymptotic` para el método de cálculo `asymp` de `kolmogorovSmirnovTest`. Se mejoró la documentación. [#49286](https://github.com/ClickHouse/ClickHouse/pull/49286) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Las funciones de agregación groupBitAnd/Or/Xor ahora funcionan con datos enteros con signo. Esto las hace consistentes con el comportamiento de las funciones escalares bitAnd/Or/Xor. [#49292](https://github.com/ClickHouse/ClickHouse/pull/49292) ([exmy](https://github.com/exmy)).
* Se dividió la documentación de funciones en campos más específicos. [#49300](https://github.com/ClickHouse/ClickHouse/pull/49300) ([Robert Schulze](https://github.com/rschu1ze)).
* Usa varios hilos compartidos entre todas las tablas de un servidor para cargar partes de datos obsoletas. El tamaño del pool y de su cola se controla mediante las configuraciones `max_outdated_parts_loading_thread_pool_size` y `outdated_part_loading_thread_pool_queue_size`. [#49317](https://github.com/ClickHouse/ClickHouse/pull/49317) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* No sobreestime el tamaño de los datos procesados en las columnas `LowCardinality` cuando comparten diccionarios entre bloques. Esto corrige [#49322](https://github.com/ClickHouse/ClickHouse/issues/49322). Véase también [#48745](https://github.com/ClickHouse/ClickHouse/issues/48745). [#49323](https://github.com/ClickHouse/ClickHouse/pull/49323) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El escritor de Parquet ahora utiliza un tamaño adecuado para los grupos de filas cuando se invoca mediante `OUTFILE`. [#49325](https://github.com/ClickHouse/ClickHouse/pull/49325) ([Michael Kolupaev](https://github.com/al13n321)).
* Permitir el uso de palabras clave restringidas como `ARRAY` como alias si este está entre comillas. Cierra [#49324](https://github.com/ClickHouse/ClickHouse/issues/49324). [#49360](https://github.com/ClickHouse/ClickHouse/pull/49360) ([Nikolay Degterinsky](https://github.com/evillique)).
* La carga de partes de datos y los trabajos de eliminación se trasladaron a grupos compartidos para todo el servidor en lugar de grupos por tabla. El tamaño de los grupos se controla mediante la configuración `max_active_parts_loading_thread_pool_size`, `max_outdated_parts_loading_thread_pool_size` y `max_parts_cleaning_thread_pool_size` en la configuración de nivel superior. La configuración de nivel de tabla `max_part_loading_threads` y `max_part_removal_threads` quedó obsoleta. [#49474](https://github.com/ClickHouse/ClickHouse/pull/49474) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permitir `?password=pass` en la URL de la UI de Play. La contraseña se sustituye en el historial del navegador. [#49505](https://github.com/ClickHouse/ClickHouse/pull/49505) ([Mike Kot](https://github.com/myrrc)).
* Permitir la lectura de objetos de tamaño cero desde sistemas de archivos remotos. (Como los archivos vacíos no se incluyen en las copias de seguridad, podríamos terminar con cero blobs en el archivo de metadatos). Cierra [#49480](https://github.com/ClickHouse/ClickHouse/issues/49480). [#49519](https://github.com/ClickHouse/ClickHouse/pull/49519) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adjuntar el hilo MemoryTracker a `total_memory_tracker` después de desvincular `ThreadGroup`. [#49527](https://github.com/ClickHouse/ClickHouse/pull/49527) ([Dmitry Novik](https://github.com/novikd)).
* Se corrigieron las vistas parametrizadas cuando un parámetro de consulta se utiliza varias veces en la consulta. [#49556](https://github.com/ClickHouse/ClickHouse/pull/49556) ([Azat Khuzhin](https://github.com/azat)).
* Libera la memoria asignada a la última instantánea de ProfileEvents enviada en el contexto de una consulta. Relacionado con [#47564](https://github.com/ClickHouse/ClickHouse/issues/47564). [#49561](https://github.com/ClickHouse/ClickHouse/pull/49561) ([Dmitry Novik](https://github.com/novikd)).
* La función "makeDate" ahora admite una sobrecarga compatible con MySQL (con argumentos de año y día del año). [#49603](https://github.com/ClickHouse/ClickHouse/pull/49603) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió compatibilidad con la función de tabla `dictionary` para `RegExpTreeDictionary`. [#49666](https://github.com/ClickHouse/ClickHouse/pull/49666) ([Han Fei](https://github.com/hanfei1991)).
* Se añadió una política de planificación equitativa ponderada de IO. Se añadió un administrador dinámico de recursos que permite actualizar la jerarquía de planificación de IO en tiempo de ejecución sin reiniciar el servidor. [#49671](https://github.com/ClickHouse/ClickHouse/pull/49671) ([Sergei Trifonov](https://github.com/serxa)).
* Añadir una solicitud de compose después de una carga multiparte en GCS. Esto permite usar la operación de copia en objetos cargados mediante carga multiparte. Se recomienda establecer `s3_strict_upload_part_size` en algún valor, ya que la solicitud de compose puede fallar con objetos creados con partes de distinto tamaño. [#49693](https://github.com/ClickHouse/ClickHouse/pull/49693) ([Antonio Andelic](https://github.com/antonio2368)).
* Para la función `extractKeyValuePairs`: mejora la lógica de análisis de "mejor esfuerzo" para aceptar `key_value_delimiter` como parte válida del valor. Esto también simplifica las bifurcaciones e incluso podría acelerar un poco las cosas. [#49760](https://github.com/ClickHouse/ClickHouse/pull/49760) ([Arthur Passos](https://github.com/arthurpassos)).
* Se añade el campo `initial_query_id` para system.processors\_profile\_log [#49777](https://github.com/ClickHouse/ClickHouse/pull/49777) ([helifu](https://github.com/helifu)).
* Las tablas de registro del sistema ahora pueden tener claves de ordenación personalizadas. [#49778](https://github.com/ClickHouse/ClickHouse/pull/49778) ([helifu](https://github.com/helifu)).
* Se usa un nuevo campo `partitions` en `system.query_log` para indicar qué particiones intervienen en el cálculo. [#49779](https://github.com/ClickHouse/ClickHouse/pull/49779) ([helifu](https://github.com/helifu)).
* Se añadió la configuración `enable_the_endpoint_id_with_zookeeper_name_prefix` para `ReplicatedMergeTree` (deshabilitada de forma predeterminada). Cuando está habilitada, añade el nombre del clúster de ZooKeeper al endpoint de comunicación interservidor de la tabla. Esto evita errores `Duplicate interserver IO endpoint` al tener tablas replicadas con la misma ruta, pero con distintos ZooKeeper auxiliares. [#49780](https://github.com/ClickHouse/ClickHouse/pull/49780) ([helifu](https://github.com/helifu)).
* Se agregan parámetros de consulta a `clickhouse-local`. Se cierra [#46561](https://github.com/ClickHouse/ClickHouse/issues/46561). [#49785](https://github.com/ClickHouse/ClickHouse/pull/49785) ([Nikolay Degterinsky](https://github.com/evillique)).
* Permitir cargar diccionarios y funciones desde YAML de forma predeterminada. En versiones anteriores, era necesario editar `dictionaries_config` o `user_defined_executable_functions_config` en el archivo de configuración, ya que esperaban archivos `*.xml`. [#49812](https://github.com/ClickHouse/ClickHouse/pull/49812) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El motor de tablas Kafka ahora permite usar columnas de alias. [#49824](https://github.com/ClickHouse/ClickHouse/pull/49824) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Se añadió una configuración para limitar el número máximo de pares generados por `extractKeyValuePairs`, como salvaguarda para no consumir demasiada memoria. [#49836](https://github.com/ClickHouse/ClickHouse/pull/49836) ([Arthur Passos](https://github.com/arthurpassos)).
* Se añadió compatibilidad con un caso (inusual) en el que los argumentos del operador `IN` son tuplas de un solo elemento. [#49844](https://github.com/ClickHouse/ClickHouse/pull/49844) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* La función `bitHammingDistance` admite los tipos de datos `String` y `FixedString`. Cierra [#48827](https://github.com/ClickHouse/ClickHouse/issues/48827). [#49858](https://github.com/ClickHouse/ClickHouse/pull/49858) ([flynn](https://github.com/ucasfl)).
* Se corrigen errores al restablecer el timeout en el cliente de OS X. [#49863](https://github.com/ClickHouse/ClickHouse/pull/49863) ([alekar](https://github.com/alekar)).
* Se añadió compatibilidad con enteros de gran tamaño, como UInt128, Int128, UInt256 e Int256, en la función `bitCount`. Esto permite calcular la distancia de Hamming sobre máscaras de bits grandes para aplicaciones de IA. [#49867](https://github.com/ClickHouse/ClickHouse/pull/49867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Huellas digitales para usar en lugar de ID de clave en discos cifrados. Esto simplifica la configuración de los discos cifrados. [#49882](https://github.com/ClickHouse/ClickHouse/pull/49882) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añade el tipo de dato UUID a PostgreSQL. Cierra [#49739](https://github.com/ClickHouse/ClickHouse/issues/49739). [#49894](https://github.com/ClickHouse/ClickHouse/pull/49894) ([Nikolay Degterinsky](https://github.com/evillique)).
* La función `toUnixTimestamp` ahora acepta argumentos de tipo `Date` y `Date32`. [#49989](https://github.com/ClickHouse/ClickHouse/pull/49989) ([Victor Krasnov](https://github.com/sirvickr)).
* Contabilizar únicamente la memoria del servidor para los diccionarios. [#49995](https://github.com/ClickHouse/ClickHouse/pull/49995) ([Azat Khuzhin](https://github.com/azat)).
* El servidor permitirá usar configuraciones `SQL_*`, como `SQL_AUTO_IS_NULL`, como operaciones sin efecto para mantener la compatibilidad con MySQL. Esto cierra [#49927](https://github.com/ClickHouse/ClickHouse/issues/49927). [#50013](https://github.com/ClickHouse/ClickHouse/pull/50013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se conserva initial\_query\_id en las consultas ON CLUSTER, lo que resulta útil para la introspección (con `distributed_ddl_entry_format_version=5`). [#50015](https://github.com/ClickHouse/ClickHouse/pull/50015) ([Azat Khuzhin](https://github.com/azat)).
* Se mantiene la incompatibilidad con versiones anteriores para las configuraciones renombradas mediante alias (`allow_experimental_projection_optimization` para `optimize_use_projections`, `allow_experimental_lightweight_delete` para `enable_lightweight_delete`). [#50044](https://github.com/ClickHouse/ClickHouse/pull/50044) ([Azat Khuzhin](https://github.com/azat)).
* Se admite pasar el FQDN mediante la configuración my\_hostname para registrar el nodo del clúster en Keeper. Se añade la configuración invisible para admitir varios grupos de cómputo. Un grupo de cómputo, como clúster, es invisible para los demás grupos de cómputo. [#50186](https://github.com/ClickHouse/ClickHouse/pull/50186) ([Yangkuan Liu](https://github.com/LiuYangkuan)).
* Se corrigió un problema por el que PostgreSQL leía todos los datos aunque se pudiera especificar `LIMIT n`. [#50187](https://github.com/ClickHouse/ClickHouse/pull/50187) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añaden nuevos eventos de perfil para consultas con subconsultas (`QueriesWithSubqueries`/`SelectQueriesWithSubqueries`/`InsertQueriesWithSubqueries`). [#50204](https://github.com/ClickHouse/ClickHouse/pull/50204) ([Azat Khuzhin](https://github.com/azat)).
* Se añade el campo roles en el archivo users.xml, lo que permite especificar roles con privilegios mediante un archivo de configuración. [#50278](https://github.com/ClickHouse/ClickHouse/pull/50278) ([pufit](https://github.com/pufit)).
* Registrar `CGroupCpuCfsPeriod` y `CGroupCpuCfsQuota` en AsynchronousMetrics. - Respetar los límites de memoria de cgroup v2 durante el inicio del servidor. [#50379](https://github.com/ClickHouse/ClickHouse/pull/50379) ([alekar](https://github.com/alekar)).
* Se añade un manejador de señales para SIGQUIT para que funcione igual que SIGINT. Cierra [#50298](https://github.com/ClickHouse/ClickHouse/issues/50298). [#50435](https://github.com/ClickHouse/ClickHouse/pull/50435) ([Nikolay Degterinsky](https://github.com/evillique)).
* En caso de que el análisis de JSON falle debido al gran tamaño de la salida del objeto, mostrar la última posición para facilitar la depuración. [#50474](https://github.com/ClickHouse/ClickHouse/pull/50474) ([Valentin Alexeev](https://github.com/valentinalexeev)).
* Compatibilidad con decimales de tamaño no fijo. Cierra [#49130](https://github.com/ClickHouse/ClickHouse/issues/49130). [#50586](https://github.com/ClickHouse/ClickHouse/pull/50586) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Nuevo y mejorado `keeper-bench`. Todo puede personalizarse mediante un archivo YAML/XML: - generador de peticiones - cada tipo de generador de peticiones puede tener un conjunto específico de campos - las solicitudes múltiples pueden generarse simplemente haciendo lo mismo bajo la clave `multi` - para cada solicitud o subsolicitud en `multi` se puede definir un campo `weight` para controlar la distribución - definir árboles que deban configurarse para una ejecución de prueba - los hosts pueden definirse con todos los tiempos de espera personalizables y es posible controlar cuántas sesiones generar para cada host - los enteros definidos con los campos `min_value` y `max_value` son generadores de números aleatorios. [#48547](https://github.com/ClickHouse/ClickHouse/pull/48547) ([Antonio Andelic](https://github.com/antonio2368)).
* Io\_uring no es compatible con MacOS; no lo elijas al ejecutar pruebas localmente para evitar fallos ocasionales. [#49250](https://github.com/ClickHouse/ClickHouse/pull/49250) ([Frank Chen](https://github.com/FrankChen021)).
* Se admite la inyección de fallos con nombre para pruebas. [#49361](https://github.com/ClickHouse/ClickHouse/pull/49361) ([Han Fei](https://github.com/hanfei1991)).
* Permite ejecutar ClickHouse en sistemas operativos donde la syscall `prctl` (control de procesos) no está disponible, como AWS Lambda. [#49538](https://github.com/ClickHouse/ClickHouse/pull/49538) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se solucionó el conflicto de compilación entre contrib/isa-l e isa-l en qpl [49296](https://github.com/ClickHouse/ClickHouse/issues/49296). [#49584](https://github.com/ClickHouse/ClickHouse/pull/49584) ([jasperzhu](https://github.com/jinjunzh)).
* Las utilidades ahora solo se compilan si se solicitan explícitamente ("-DENABLE\_UTILS=1") en lugar de compilarse de forma predeterminada; esto reduce los tiempos de enlazado en las compilaciones de desarrollo habituales. [#49620](https://github.com/ClickHouse/ClickHouse/pull/49620) ([Robert Schulze](https://github.com/rschu1ze)).
* Separar la descripción de compilación de idxd-config en un archivo CMake independiente para evitar que se elimine accidentalmente en el futuro. [#49651](https://github.com/ClickHouse/ClickHouse/pull/49651) ([jasperzhu](https://github.com/jinjunzh)).
* Añadir una comprobación de CI con el analizador habilitado en master. Continuación en [#49562](https://github.com/ClickHouse/ClickHouse/issues/49562). [#49668](https://github.com/ClickHouse/ClickHouse/pull/49668) ([Dmitry Novik](https://github.com/novikd)).
* Migración a LLVM/clang 16. [#49678](https://github.com/ClickHouse/ClickHouse/pull/49678) ([Azat Khuzhin](https://github.com/azat)).
* Se permite compilar ClickHouse con clang-17. [#49851](https://github.com/ClickHouse/ClickHouse/pull/49851) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#50410](https://github.com/ClickHouse/ClickHouse/pull/50410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ahora es más fácil integrar ClickHouse en otros proyectos de cmake. [#49991](https://github.com/ClickHouse/ClickHouse/pull/49991) ([Amos Bird](https://github.com/amosbird)). (Algo que se desaconseja encarecidamente - Alexey Milovidov).
* Se corrige el extraño registro adicional de QEMU tras [#47151](https://github.com/ClickHouse/ClickHouse/issues/47151), véase [https://s3.amazonaws.com/clickhouse-test-reports/50078/a4743996ee4f3583884d07bcd6501df0cfdaa346/stateless\&#95;tests\&#95;\&#95;release\&#95;\&#95;databasereplicated\&#95;\&#95;\[3\&#95;4\].html](https://s3.amazonaws.com/clickhouse-test-reports/50078/a4743996ee4f3583884d07bcd6501df0cfdaa346/stateless\&#95;tests\&#95;\&#95;release\&#95;\&#95;databasereplicated\&#95;\&#95;\[3\&#95;4].html). [#50442](https://github.com/ClickHouse/ClickHouse/pull/50442) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* ClickHouse puede ejecutarse en Linux RISC-V 6.1.22. Esto cierra [#50456](https://github.com/ClickHouse/ClickHouse/issues/50456). [#50457](https://github.com/ClickHouse/ClickHouse/pull/50457) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se actualiza el protobuf interno a la v3.18 (corrige el falso CVE-2022-1941). [#50400](https://github.com/ClickHouse/ClickHouse/pull/50400) ([Robert Schulze](https://github.com/rschu1ze)).
* Aumenta la versión de libxml2 interna a v2.10.4 (corrige los falsos CVE-2023-28484 y CVE-2023-29469). [#50402](https://github.com/ClickHouse/ClickHouse/pull/50402) ([Robert Schulze](https://github.com/rschu1ze)).
* Actualización de c-ares a la versión 1.19.1 (CVE-2023-32067 falso, CVE-2023-31130 falso, CVE-2023-31147 falso). [#50403](https://github.com/ClickHouse/ClickHouse/pull/50403) ([Robert Schulze](https://github.com/rschu1ze)).
* Corregido el CVE-2022-2469 incorrecto en libgsasl. [#50404](https://github.com/ClickHouse/ClickHouse/pull/50404) ([Robert Schulze](https://github.com/rschu1ze)).

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

* ActionsDAG: corrige una optimización errónea [#47584](https://github.com/ClickHouse/ClickHouse/pull/47584) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Gestionar correctamente las instantáneas concurrentes en Keeper [#48466](https://github.com/ClickHouse/ClickHouse/pull/48466) ([Antonio Andelic](https://github.com/antonio2368)).
* MergeTreeMarksLoader usa DataPart en lugar de DataPartStorage [#48515](https://github.com/ClickHouse/ClickHouse/pull/48515) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrección del estado de la secuencia [#48603](https://github.com/ClickHouse/ClickHouse/pull/48603) ([Ilya Golshtein](https://github.com/ilejn)).
* Comprobación de concurrencia de Back/Restore ante fallos previos [#48726](https://github.com/ClickHouse/ClickHouse/pull/48726) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrección: al adjuntar una tabla con una ruta de ZK inexistente, no se incrementa la métrica ReadonlyReplica [#48954](https://github.com/ClickHouse/ClickHouse/pull/48954) ([wangxiaobo](https://github.com/wzb5212)).
* Corrige posibles llamadas a terminate por excepciones no capturadas en algunos casos [#49112](https://github.com/ClickHouse/ClickHouse/pull/49112) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió el error de «clave no encontrada» en consultas con varios StorageJoin [#49137](https://github.com/ClickHouse/ClickHouse/pull/49137) ([vdimir](https://github.com/vdimir)).
* Se corrige un resultado incorrecto de la consulta al usar una clave primaria Nullable [#49172](https://github.com/ClickHouse/ClickHouse/pull/49172) ([Duc Canh Le](https://github.com/canhld94)).
* Se corrigió reinterpretAs\*() en máquinas big endian [#49198](https://github.com/ClickHouse/ClickHouse/pull/49198) ([Suzy Wang](https://github.com/SuzyWangIBMer)).
* (Replicación zero-copy experimental) Bloquear las partes zero-copy de forma más atómica [#49211](https://github.com/ClickHouse/ClickHouse/pull/49211) ([alesapin](https://github.com/alesapin)).
* Se corrige una condición de carrera al cargar partes obsoletas [#49223](https://github.com/ClickHouse/ClickHouse/pull/49223) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corregido el caso en que todos los valores clave son NULL y en que el uso de rollup en la agrupación devuelve una respuesta incorrecta [#49282](https://github.com/ClickHouse/ClickHouse/pull/49282) ([Shuai li](https://github.com/loneylee)).
* Corregido el cálculo de load\_factor para diccionarios HASHED con segmentos [#49319](https://github.com/ClickHouse/ClickHouse/pull/49319) ([Azat Khuzhin](https://github.com/azat)).
* Impedir configurar códecs de compresión en columnas de alias [#49363](https://github.com/ClickHouse/ClickHouse/pull/49363) ([Timur Solodovnikov](https://github.com/tsolodov)).
* Se corrige un error al eliminar el directorio de una part existente [#49365](https://github.com/ClickHouse/ClickHouse/pull/49365) ([alesapin](https://github.com/alesapin)).
* Se corrige adecuadamente GCS cuando se usa HMAC [#49390](https://github.com/ClickHouse/ClickHouse/pull/49390) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige un error detectado por fuzzing cuando no se crea el conjunto de la subconsulta al leer con remote() [#49425](https://github.com/ClickHouse/ClickHouse/pull/49425) ([Alexander Gololobov](https://github.com/davenger)).
* Se invierte `shutdown_wait_unfinished_queries` [#49427](https://github.com/ClickHouse/ClickHouse/pull/49427) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* (Replicación zero-copy experimental) Se corrige otro fallo de zero copy [#49473](https://github.com/ClickHouse/ClickHouse/pull/49473) ([alesapin](https://github.com/alesapin)).
* Corrige la configuración de la base de datos Postgres [#49481](https://github.com/ClickHouse/ClickHouse/pull/49481) ([Mal Curtis](https://github.com/snikch)).
* Gestionar correctamente los argumentos de `s3Cluster` [#49490](https://github.com/ClickHouse/ClickHouse/pull/49490) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un error en el destructor de TraceCollector. [#49508](https://github.com/ClickHouse/ClickHouse/pull/49508) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige AsynchronousReadIndirectBufferFromRemoteFS, que fallaba con desplazamientos cortos [#49525](https://github.com/ClickHouse/ClickHouse/pull/49525) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrigió el orden de carga de los diccionarios [#49560](https://github.com/ClickHouse/ClickHouse/pull/49560) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Prohibir cambiar el tipo de datos de la columna Object('json') [#49563](https://github.com/ClickHouse/ClickHouse/pull/49563) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrige la prueba de estrés (Error lógico: se esperaba 7134 >= 11030) [#49623](https://github.com/ClickHouse/ClickHouse/pull/49623) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió un error en DISTINCT [#49628](https://github.com/ClickHouse/ClickHouse/pull/49628) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrección: DISTINCT en orden con valores de cero en columnas no ordenadas [#49636](https://github.com/ClickHouse/ClickHouse/pull/49636) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrige un error puntual en enteros grandes detectado por UBSan con un fuzzer [#49645](https://github.com/ClickHouse/ClickHouse/pull/49645) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige la lectura de columnas dispersas después de reiniciar [#49660](https://github.com/ClickHouse/ClickHouse/pull/49660) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió la aserción en SpanHolder::finish() con fibras [#49673](https://github.com/ClickHouse/ClickHouse/pull/49673) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrección de las funciones de cortocircuito y de las mutaciones con argumentos dispersos [#49716](https://github.com/ClickHouse/ClickHouse/pull/49716) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige la escritura de archivos añadidos en copias de seguridad incrementales [#49725](https://github.com/ClickHouse/ClickHouse/pull/49725) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige el error "There is no physical column \_row\_exists in table" que se produce durante una mutación de eliminación ligera en una tabla con una columna de tipo Object. [#49737](https://github.com/ClickHouse/ClickHouse/pull/49737) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige un problema de msan en randomStringUTF8(número impar) [#49750](https://github.com/ClickHouse/ClickHouse/pull/49750) ([Robert Schulze](https://github.com/rschu1ze)).
* Corregir la función de agregación kolmogorovSmirnovTest [#49768](https://github.com/ClickHouse/ClickHouse/pull/49768) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Corregidos los alias de configuración en el protocolo nativo [#49776](https://github.com/ClickHouse/ClickHouse/pull/49776) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió `arrayMap` con un array de tuplas con un solo argumento [#49789](https://github.com/ClickHouse/ClickHouse/pull/49789) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió la configuración de limitación de IO/BACKUP por consulta [#49797](https://github.com/ClickHouse/ClickHouse/pull/49797) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la configuración de NULL en la definición del perfil [#49831](https://github.com/ClickHouse/ClickHouse/pull/49831) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige un error relacionado con las proyecciones y con la configuración aggregate\_functions\_null\_for\_empty (para query\_plan\_optimize\_projection) [#49873](https://github.com/ClickHouse/ClickHouse/pull/49873) ([Amos Bird](https://github.com/amosbird)).
* Se corrige el procesamiento del lote pendiente de async INSERT de Distributed tras el reinicio [#49884](https://github.com/ClickHouse/ClickHouse/pull/49884) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió una aserción en CacheMetadata::doCleanup [#49914](https://github.com/ClickHouse/ClickHouse/pull/49914) ([Kseniia Sumarokova](https://github.com/kssenii)).
* se corrige `is_prefix` en OptimizeRegularExpression [#49919](https://github.com/ClickHouse/ClickHouse/pull/49919) ([Han Fei](https://github.com/hanfei1991)).
* Se corrigieron las métricas `WriteBufferFromS3Bytes`, `WriteBufferFromS3Microseconds` y `WriteBufferFromS3RequestsErrors` [#49930](https://github.com/ClickHouse/ClickHouse/pull/49930) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Se corrige la codificación de IPv6 en Protobuf [#49933](https://github.com/ClickHouse/ClickHouse/pull/49933) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corregido un posible error lógico causado por un análisis incorrecto de Nullable en formatos de texto [#49960](https://github.com/ClickHouse/ClickHouse/pull/49960) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añade la configuración output\_format\_parquet\_compliant\_nested\_types para generar archivos Parquet más compatibles [#50001](https://github.com/ClickHouse/ClickHouse/pull/50001) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrige un error lógico en la prueba de estrés "Not enough space to add ..." [#50021](https://github.com/ClickHouse/ClickHouse/pull/50021) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se evita un interbloqueo al iniciar una tabla en el hilo de attach de `ReplicatedMergeTree` [#50026](https://github.com/ClickHouse/ClickHouse/pull/50026) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige un assert en SpanHolder::finish() al usar fibers, intento 2 [#50034](https://github.com/ClickHouse/ClickHouse/pull/50034) ([Kruglov Pavel](https://github.com/Avogar)).
* Añadir el escapado adecuado para la serialización del contexto de OpenTelemetry en DDL [#50045](https://github.com/ClickHouse/ClickHouse/pull/50045) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el reporte de partes de proyección dañadas [#50052](https://github.com/ClickHouse/ClickHouse/pull/50052) ([Amos Bird](https://github.com/amosbird)).
* Corrección de `not equals NaN` en la compilación JIT [#50056](https://github.com/ClickHouse/ClickHouse/pull/50056) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrige el fallo en caso de una base de datos Replicated sin argumentos [#50058](https://github.com/ClickHouse/ClickHouse/pull/50058) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un fallo en `multiIf` con una condición constante y argumentos Nullable [#50123](https://github.com/ClickHouse/ClickHouse/pull/50123) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige un análisis de índices no válido para claves relacionadas con fechas [#50153](https://github.com/ClickHouse/ClickHouse/pull/50153) ([Amos Bird](https://github.com/amosbird)).
* no permitir modificar ORDER BY cuando no haya columnas en ORDER BY [#50154](https://github.com/ClickHouse/ClickHouse/pull/50154) ([Han Fei](https://github.com/hanfei1991)).
* Se corrige el fallo en el análisis de índices cuando un operador binario contiene un argumento constante NULL [#50177](https://github.com/ClickHouse/ClickHouse/pull/50177) ([Amos Bird](https://github.com/amosbird)).
* clickhouse-client: impedir el uso de `--query` y `--queries-file` al mismo tiempo [#50210](https://github.com/ClickHouse/ClickHouse/pull/50210) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Se corrige el UB en las extensiones de INTO OUTFILE (APPEND / AND STDOUT) y WATCH EVENTS [#50216](https://github.com/ClickHouse/ClickHouse/pull/50216) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la omisión de espacios al final de la fila en el formato CustomSeparatedIgnoreSpaces [#50224](https://github.com/ClickHouse/ClickHouse/pull/50224) ([Kruglov Pavel](https://github.com/Avogar)).
* Corregir el procesamiento de metadatos de Iceberg [#50232](https://github.com/ClickHouse/ClickHouse/pull/50232) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige el `SELECT` distribuido anidado en la cláusula `WITH` [#50234](https://github.com/ClickHouse/ClickHouse/pull/50234) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un problema de msan en SipHash con clave [#50245](https://github.com/ClickHouse/ClickHouse/pull/50245) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigen errores de los sockets de Poco en modo no bloqueante y se usan sockets realmente no bloqueantes [#50252](https://github.com/ClickHouse/ClickHouse/pull/50252) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el cálculo de la suma de comprobación de las entradas de la copia de seguridad [#50264](https://github.com/ClickHouse/ClickHouse/pull/50264) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrección de NaN en las funciones de comparación [#50287](https://github.com/ClickHouse/ClickHouse/pull/50287) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrección de la clave Nullable en la agregación JIT [#50291](https://github.com/ClickHouse/ClickHouse/pull/50291) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrige el cierre inesperado de clickhouse-local al escribir una salida vacía en formato Arrow o Parquet [#50328](https://github.com/ClickHouse/ClickHouse/pull/50328) ([Michael Kolupaev](https://github.com/al13n321)).
* Se corrige un bloqueo cuando se llama a Pool::Entry::disconnect() [#50334](https://github.com/ClickHouse/ClickHouse/pull/50334) ([Val Doroshchuk](https://github.com/valbok)).
* Se mejoró la recuperación de una parte al mantener el bloqueo del directorio durante más tiempo [#50339](https://github.com/ClickHouse/ClickHouse/pull/50339) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrigen las funciones bitShift\* con ambos argumentos constantes [#50343](https://github.com/ClickHouse/ClickHouse/pull/50343) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un interbloqueo en Keeper por una excepción al preprocesar solicitudes. [#50387](https://github.com/ClickHouse/ClickHouse/pull/50387) ([frinkr](https://github.com/frinkr)).
* Se corrige el hash de valores enteros constantes [#50421](https://github.com/ClickHouse/ClickHouse/pull/50421) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrigen merge\_tree\_min\_rows\_for\_seek/merge\_tree\_min\_bytes\_for\_seek para los índices de omisión de datos [#50432](https://github.com/ClickHouse/ClickHouse/pull/50432) ([Azat Khuzhin](https://github.com/azat)).
* Limitar el número de tareas en curso para la carga de partes obsoletas [#50450](https://github.com/ClickHouse/ClickHouse/pull/50450) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrección de Keeper: aplicar el estado sin confirmar después de instalar la instantánea [#50483](https://github.com/ClickHouse/ClickHouse/pull/50483) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió el plegado incorrecto de constantes [#50536](https://github.com/ClickHouse/ClickHouse/pull/50536) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un error lógico en la prueba de estrés (Not enough space to add ...) [#50583](https://github.com/ClickHouse/ClickHouse/pull/50583) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la conversión de Null a LowCardinality(Nullable) en la función de tabla values [#50637](https://github.com/ClickHouse/ClickHouse/pull/50637) ([Kruglov Pavel](https://github.com/Avogar)).
* Se revierte la optimización no válida de RegExpTreeDictionary [#50642](https://github.com/ClickHouse/ClickHouse/pull/50642) ([Johann Gan](https://github.com/johanngan)).

### <a id="234" /> Lanzamiento de ClickHouse 23.4, 2023-04-26. [Presentación](https://presentations.clickhouse.com/2023-release-23.4/), [Video](https://www.youtube.com/watch?v=4rrf6bk_mOg)

<Frame>
  <iframe src="https://www.youtube.com/embed/4rrf6bk_mOg" 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 `Formatter` '%M' en la función formatDateTime() ahora imprime el nombre del mes en lugar de los minutos. Esto hace que el comportamiento sea consistente con MySQL. El comportamiento anterior se puede restaurar mediante la configuración "formatdatetime\_parsedatetime\_m\_is\_month\_name = 0". [#47246](https://github.com/ClickHouse/ClickHouse/pull/47246) ([Robert Schulze](https://github.com/rschu1ze)).
* Este cambio solo tiene sentido si utiliza la `filesystem cache` virtual. Si `path` en la configuración de la `filesystem cache` virtual no está vacío y no es una ruta absoluta, se colocará en `<clickhouse server data directory>/caches/<path_from_cache_config>`. [#48784](https://github.com/ClickHouse/ClickHouse/pull/48784) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ahora se rechazan los índices primarios y secundarios, así como las claves de ordenación, con expresiones idénticas. Este comportamiento puede deshabilitarse mediante la configuración `allow_suspicious_indices`. [#48536](https://github.com/ClickHouse/ClickHouse/pull/48536) ([凌涛](https://github.com/lingtaolf)).

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

* Se añade compatibilidad con la nueva función de agregación `quantileGK`/`quantilesGK`, como [approx\_percentile](https://spark.apache.org/docs/latest/api/sql/index.html#approx_percentile) en Spark. El algoritmo de Greenwald-Khanna se describe en [http://infolab.stanford.edu/\~datar/courses/cs361a/papers/quantiles.pdf](http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf). [#46428](https://github.com/ClickHouse/ClickHouse/pull/46428) ([李扬](https://github.com/taiyang-li)).
* Se añade la instrucción `SHOW COLUMNS`, que muestra información resumida de system.columns. [#48017](https://github.com/ClickHouse/ClickHouse/pull/48017) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadieron los modificadores `LIGHTWEIGHT` y `PULL` para la consulta `SYSTEM SYNC REPLICA`. La versión `LIGHTWEIGHT` espera solo a los fetches y a los drop-ranges (se ignoran las merges y las mutations). La versión `PULL` recupera nuevas entradas de ZooKeeper y no espera a que se procesen. Corrige [#47794](https://github.com/ClickHouse/ClickHouse/issues/47794). [#48085](https://github.com/ClickHouse/ClickHouse/pull/48085) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Añadir la función `kafkaMurmurHash` para que sea compatible con el DefaultPartitioner de Kafka. Cierra [#47834](https://github.com/ClickHouse/ClickHouse/issues/47834). [#48185](https://github.com/ClickHouse/ClickHouse/pull/48185) ([Nikolay Degterinsky](https://github.com/evillique)).
* Permite crear fácilmente un usuario con los mismos permisos que el usuario actual usando `GRANT CURRENT GRANTS`. [#48262](https://github.com/ClickHouse/ClickHouse/pull/48262) ([pufit](https://github.com/pufit)).
* Se añade la función de agregación estadística `kolmogorovSmirnovTest`. Cierra [#48228](https://github.com/ClickHouse/ClickHouse/issues/48228). [#48325](https://github.com/ClickHouse/ClickHouse/pull/48325) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Se añadió una columna `lost_part_count` a la tabla `system.replicas`. El valor de la columna muestra el número total de partes perdidas en la tabla correspondiente. El valor se almacena en ZooKeeper y puede usarse en lugar del evento de perfil no persistente `ReplicatedDataLoss` para la monitorización. [#48526](https://github.com/ClickHouse/ClickHouse/pull/48526) ([Sergei Trifonov](https://github.com/serxa)).
* Se añade la función `soundex` para mayor compatibilidad. Cierra [#39880](https://github.com/ClickHouse/ClickHouse/issues/39880). [#48567](https://github.com/ClickHouse/ClickHouse/pull/48567) ([FriendLey](https://github.com/FriendLey)).
* Se admite el tipo `Map` para JSONExtract. [#48629](https://github.com/ClickHouse/ClickHouse/pull/48629) ([李扬](https://github.com/taiyang-li)).
* Agrega el formato `PrettyJSONEachRow` para generar JSON legible con delimitadores de salto de línea y sangrías de 4 espacios. [#48898](https://github.com/ClickHouse/ClickHouse/pull/48898) ([Kruglov Pavel](https://github.com/Avogar)).
* Añade el formato de entrada `ParquetMetadata` para leer los metadatos de archivos Parquet. [#48911](https://github.com/ClickHouse/ClickHouse/pull/48911) ([Kruglov Pavel](https://github.com/Avogar)).
* Añade la función `extractKeyValuePairs` para extraer pares clave-valor de cadenas. Las cadenas de entrada pueden contener ruido (es decir, archivos de registro / no necesitan estar formateadas al 100 % como pares clave-valor); el algoritmo buscará pares clave-valor que coincidan con los argumentos pasados a la función. Por ahora, la función acepta los siguientes argumentos: `data_column` (obligatorio), `key_value_pair_delimiter` (el valor predeterminado es `:`), `pair_delimiters` (los valores predeterminados son `\space \, \;`) y `quoting_character` (el valor predeterminado son comillas dobles). [#43606](https://github.com/ClickHouse/ClickHouse/pull/43606) ([Arthur Passos](https://github.com/arthurpassos)).
* Las funciones replaceOne(), replaceAll(), replaceRegexpOne() y replaceRegexpAll() ahora pueden llamarse con argumentos pattern y replacement no constantes. [#46589](https://github.com/ClickHouse/ClickHouse/pull/46589) ([Robert Schulze](https://github.com/rschu1ze)).
* Se agregaron funciones para trabajar con columnas de tipo `Map`: `mapConcat`, `mapSort`, `mapExists`. [#48071](https://github.com/ClickHouse/ClickHouse/pull/48071) ([Anton Popov](https://github.com/CurtizJ)).

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

* La lectura de archivos en formato `Parquet` ahora es mucho más rápida. La E/S y la decodificación se paralelizan (controladas por la configuración `max_threads`), y solo se leen los rangos de datos necesarios. [#47964](https://github.com/ClickHouse/ClickHouse/pull/47964) ([Michael Kolupaev](https://github.com/al13n321)).
* Si ejecutamos una mutación con IN (subconsulta) como esta: `ALTER TABLE t UPDATE col='new value' WHERE id IN (SELECT id FROM huge_table)` y la tabla `t` tiene múltiples partes, entonces para cada parte se construye en memoria un conjunto para la subconsulta `SELECT id FROM huge_table`. Y si hay muchas partes, esto podría consumir mucha memoria (y provocar un OOM) y CPU. La solución es introducir una caché de corta duración para los conjuntos que las tareas de mutación están construyendo en ese momento. Si otra tarea de la misma mutación se ejecuta de forma concurrente, puede buscar el conjunto en la caché, esperar a que se construya y reutilizarlo. [#46835](https://github.com/ClickHouse/ClickHouse/pull/46835) ([Alexander Gololobov](https://github.com/davenger)).
* Comprobar las dependencias solo cuando sea necesario al aplicar consultas `ALTER TABLE`. [#48062](https://github.com/ClickHouse/ClickHouse/pull/48062) ([Raúl Marín](https://github.com/Algunenano)).
* Optimizar la función `mapUpdate`. [#48118](https://github.com/ClickHouse/ClickHouse/pull/48118) ([Anton Popov](https://github.com/CurtizJ)).
* Ahora, una consulta interna a la réplica local se envía explícitamente y sus datos se reciben a través de la interfaz de loopback. La configuración `prefer_localhost_replica` no se respeta para las réplicas paralelas. Esto es necesario para mejorar la planificación y hace que el código sea más limpio: el iniciador solo se encarga de coordinar el proceso de lectura y fusionar los resultados, respondiendo continuamente a las solicitudes mientras todas las consultas secundarias leen los datos. Nota: usar la interfaz de loopback no es tan eficiente; de lo contrario, algunas réplicas podrían quedarse sin tareas, lo que podría dar lugar a una ejecución de consultas aún más lenta y a no aprovechar todos los recursos posibles. La inicialización del coordinador ahora se retrasa aún más. Todas las solicitudes entrantes contienen la información sobre el algoritmo de lectura; inicializamos el coordinador con ella cuando llega la primera solicitud. Si alguna réplica decide leer con un algoritmo diferente, se lanzará una excepción y se abortará la consulta. [#48246](https://github.com/ClickHouse/ClickHouse/pull/48246) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* No construir el conjunto para el lado derecho de la cláusula `IN` con subconsulta cuando se usa solo para analizar skip indexes y estos están deshabilitados por configuración (`use_skip_indexes=0`). Antes, esto podía afectar al rendimiento de las consultas. [#48299](https://github.com/ClickHouse/ClickHouse/pull/48299) ([Anton Popov](https://github.com/CurtizJ)).
* El procesamiento de consultas se paraleliza justo después de leer `FROM file(...)`. Relacionado con [#38755](https://github.com/ClickHouse/ClickHouse/issues/38755). [#48525](https://github.com/ClickHouse/ClickHouse/pull/48525) ([Igor Nikonov](https://github.com/devcrafter)). El procesamiento de consultas se paraleliza justo después de leer desde cualquier fuente de datos. Las fuentes de datos afectadas son principalmente almacenamientos simples o externos, como las funciones de tabla `url`, `file`. [#48727](https://github.com/ClickHouse/ClickHouse/pull/48727) ([Igor Nikonov](https://github.com/devcrafter)). Esto se controla mediante la configuración `parallelize_output_from_storages`, que no está habilitada de forma predeterminada.
* Se redujo la contención del mutex de ThreadPool (puede aumentar el rendimiento cuando hay una gran cantidad de trabajos pequeños). [#48750](https://github.com/ClickHouse/ClickHouse/pull/48750) ([Sergei Trifonov](https://github.com/serxa)).
* Reducir el uso de memoria en múltiples mutaciones `ALTER DELETE`. [#48522](https://github.com/ClickHouse/ClickHouse/pull/48522) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Eliminar los intentos de conexión excesivos si la configuración `skip_unavailable_shards` está habilitada. [#48771](https://github.com/ClickHouse/ClickHouse/pull/48771) ([Azat Khuzhin](https://github.com/azat)).

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

* Las entradas en la caché de consultas ahora se agrupan hasta max\_block\_size y se comprimen. [#45912](https://github.com/ClickHouse/ClickHouse/pull/45912) ([Robert Schulze](https://github.com/rschu1ze)).
* Ahora es posible definir cuotas por usuario en la caché de consultas. [#48284](https://github.com/ClickHouse/ClickHouse/pull/48284) ([Robert Schulze](https://github.com/rschu1ze)).
* Varias correcciones para las réplicas paralelas [#48433](https://github.com/ClickHouse/ClickHouse/pull/48433) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se implementa la replicación zero-copy (una funcionalidad experimental) en discos cifrados. [#48741](https://github.com/ClickHouse/ClickHouse/pull/48741) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Se aumenta el valor predeterminado de `connect_timeout_with_failover_ms` a 1000 ms (debido a la incorporación de conexiones asíncronas en [https://github.com/ClickHouse/ClickHouse/pull/47229](https://github.com/ClickHouse/ClickHouse/pull/47229)). Cierra [#5188](https://github.com/ClickHouse/ClickHouse/issues/5188). [#49009](https://github.com/ClickHouse/ClickHouse/pull/49009) ([Kruglov Pavel](https://github.com/Avogar)).
* Varias mejoras relacionadas con los lagos de datos: - Hacer que `Iceberg` funcione con datos no particionados. - Soporte para la versión v2 del formato de `Iceberg` (anteriormente solo se admitía la v1) - Soporte para la lectura de datos particionados en `DeltaLake`/`Hudi` - Lectura más rápida de los metadatos de `DeltaLake` mediante el uso de los archivos de checkpoint de Delta - Se corrigieron lecturas incorrectas de `Hudi`: anteriormente elegía de forma incorrecta qué datos leer y, por lo tanto, solo podía leer correctamente tablas pequeñas - Se hizo que estos motores detectaran actualizaciones en datos modificados (anteriormente, el estado se establecía al crear la tabla) - Añadir pruebas adecuadas para `Iceberg`/`DeltaLake`/`Hudi` usando Spark. [#47307](https://github.com/ClickHouse/ClickHouse/pull/47307) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añade conexión asíncrona al socket y escritura asíncrona en el socket. Se hacen asíncronos, entre segmentos, la creación de conexiones y el envío de la consulta y las tablas externas. Se refactoriza el código con fibras. Cierra [#46931](https://github.com/ClickHouse/ClickHouse/issues/46931). Después de este PR ([https://github.com/ClickHouse/ClickHouse/issues/5188](https://github.com/ClickHouse/ClickHouse/issues/5188)), podremos aumentar `connect_timeout_with_failover_ms` de forma predeterminada. [#47229](https://github.com/ClickHouse/ClickHouse/pull/47229) ([Kruglov Pavel](https://github.com/Avogar)).
* Se admiten las secciones de configuración `keeper`/`keeper_server` como alternativa a `zookeeper`. Cierra [#34766](https://github.com/ClickHouse/ClickHouse/issues/34766), [#34767](https://github.com/ClickHouse/ClickHouse/issues/34767). [#35113](https://github.com/ClickHouse/ClickHouse/pull/35113) ([李扬](https://github.com/taiyang-li)).
* Es posible establecer la marca *secure* en named\_collections para un diccionario con una tabla de ClickHouse como origen. Soluciona [#38450](https://github.com/ClickHouse/ClickHouse/issues/38450) . [#46323](https://github.com/ClickHouse/ClickHouse/pull/46323) ([Ilya Golshtein](https://github.com/ilejn)).
* La función `bitCount` admite los tipos de datos `FixedString` y `String`. [#49044](https://github.com/ClickHouse/ClickHouse/pull/49044) ([flynn](https://github.com/ucasfl)).
* Se añadieron reintentos configurables a todas las operaciones con \[Zoo]Keeper para las consultas de Backup. [#47224](https://github.com/ClickHouse/ClickHouse/pull/47224) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Habilitar `use_environment_credentials` para S3 de forma predeterminada, de modo que, por defecto, se construya toda la cadena de proveedores de credenciales. [#47397](https://github.com/ClickHouse/ClickHouse/pull/47397) ([Antonio Andelic](https://github.com/antonio2368)).
* Actualmente, la función JSON\_VALUE es similar a la función get\_json\_object de Spark, que permite obtener un valor de una cadena JSON mediante una ruta como '\$.key'. Sin embargo, aún presenta algunas diferencias: - 1. en get\_json\_object de Spark se devuelve null cuando la ruta no existe, mientras que en JSON\_VALUE se devuelve una cadena vacía; - 2. en get\_json\_object de Spark se devuelve un valor de tipo complejo, como un objeto/arreglo JSON, pero en JSON\_VALUE se devuelve una cadena vacía. [#47494](https://github.com/ClickHouse/ClickHouse/pull/47494) ([KevinyhZou](https://github.com/KevinyhZou)).
* Para `use_structure_from_insertion_table_in_table_functions`, se añadió una propagación más flexible de la estructura de la tabla de inserción a la función de tabla. Se corrigió un problema con la correspondencia de nombres y el uso de columnas virtuales. Ya no hace falta la configuración 'auto'. [#47962](https://github.com/ClickHouse/ClickHouse/pull/47962) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* No seguir reintentando la conexión a Keeper si la consulta se cancela o supera los límites. [#47985](https://github.com/ClickHouse/ClickHouse/pull/47985) ([Raúl Marín](https://github.com/Algunenano)).
* Se admite la entrada y salida de Enum en `BSONEachRow`, se permiten todos los tipos de clave de map y se evitan cálculos adicionales en la salida. [#48122](https://github.com/ClickHouse/ClickHouse/pull/48122) ([Kruglov Pavel](https://github.com/Avogar)).
* Compatibilidad con más tipos de ClickHouse en los formatos `ORC`/`Arrow`/`Parquet`: Enum(8|16), (U)Int(128|256), Decimal256 (para ORC); se permite leer IPv4 a partir de valores Int32 (ORC genera IPv4 como Int32 y no podíamos leerlo de nuevo) y se corrige la lectura de Nullable(IPv6) desde datos binarios para `ORC`. [#48126](https://github.com/ClickHouse/ClickHouse/pull/48126) ([Kruglov Pavel](https://github.com/Avogar)).
* Se agregan las columnas `perform_ttl_move_on_insert` y `load_balancing` a la tabla `system.storage_policies`, y se modifica el tipo de la columna `volume_type` a `Enum8`. [#48167](https://github.com/ClickHouse/ClickHouse/pull/48167) ([lizhuoyu5](https://github.com/lzydmxy)).
* Se añadió compatibilidad con el comando `BACKUP ALL`, que crea copias de seguridad de todas las tablas y bases de datos, incluidas las temporales y las del sistema. [#48189](https://github.com/ClickHouse/ClickHouse/pull/48189) ([Vitaly Baranov](https://github.com/vitlibar)).
* La función mapFromArrays admite el tipo `Map` como argumento de entrada. [#48207](https://github.com/ClickHouse/ClickHouse/pull/48207) ([李扬](https://github.com/taiyang-li)).
* La salida de algunos SHOW PROCESSLIST ahora se muestra ordenada. [#48241](https://github.com/ClickHouse/ClickHouse/pull/48241) ([Robert Schulze](https://github.com/rschu1ze)).
* Limitación por consulta/por servidor para IO remoto/IO local/copias de seguridad (configuración del servidor: `max_remote_read_network_bandwidth_for_server`, `max_remote_write_network_bandwidth_for_server`, `max_local_read_bandwidth_for_server`, `max_local_write_bandwidth_for_server`, `max_backup_bandwidth_for_server`; configuración: `max_remote_read_network_bandwidth`, `max_remote_write_network_bandwidth`, `max_local_read_bandwidth`, `max_local_write_bandwidth`, `max_backup_bandwidth`). [#48242](https://github.com/ClickHouse/ClickHouse/pull/48242) ([Azat Khuzhin](https://github.com/azat)).
* Se admiten más tipos en el formato `CapnProto`: Map, (U)Int(128|256), Decimal(128|256). Se permiten conversiones de enteros durante la entrada/salida. [#48257](https://github.com/ClickHouse/ClickHouse/pull/48257) ([Kruglov Pavel](https://github.com/Avogar)).
* No lanzar CURRENT\_WRITE\_BUFFER\_IS\_EXHAUSTED en el comportamiento normal. [#48288](https://github.com/ClickHouse/ClickHouse/pull/48288) ([Raúl Marín](https://github.com/Algunenano)).
* Se agregó la nueva configuración `keeper_map_strict_mode`, que impone garantías adicionales en las operaciones realizadas sobre las tablas `KeeperMap`. [#48293](https://github.com/ClickHouse/ClickHouse/pull/48293) ([Antonio Andelic](https://github.com/antonio2368)).
* Se comprueba que el tipo de clave primaria de un diccionario simple sea un tipo entero sin signo nativo. Se añade la configuración `check_dictionary_primary_key ` para mantener la compatibilidad (establezca `check_dictionary_primary_key =false` para desactivar la comprobación). [#48335](https://github.com/ClickHouse/ClickHouse/pull/48335) ([lizhuoyu5](https://github.com/lzydmxy)).
* No replique las mutaciones de `KeeperMap`, ya que es innecesario. [#48354](https://github.com/ClickHouse/ClickHouse/pull/48354) ([Antonio Andelic](https://github.com/antonio2368)).
* Permite escribir/leer una Tuple sin nombre como un Message anidado en formato Protobuf. Los elementos de Tuple y los campos de Message se corresponden por posición. [#48390](https://github.com/ClickHouse/ClickHouse/pull/48390) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió compatibilidad con las opciones `additional_table_filters` y `additional_result_filter` en el nuevo planificador. Además, se añadió una entrada en la documentación para `additional_result_filter`. [#48405](https://github.com/ClickHouse/ClickHouse/pull/48405) ([Dmitry Novik](https://github.com/novikd)).
* `parseDateTime` ahora admite la cadena de formato '%f' (segundos fraccionarios). [#48420](https://github.com/ClickHouse/ClickHouse/pull/48420) ([Robert Schulze](https://github.com/rschu1ze)).
* La cadena de formato "%f" en formatDateTime() ahora muestra "000000" si el valor formateado no tiene fracciones de segundo; el comportamiento anterior (un solo cero) se puede restaurar mediante la configuración "formatdatetime\_f\_prints\_single\_zero = 1". [#48422](https://github.com/ClickHouse/ClickHouse/pull/48422) ([Robert Schulze](https://github.com/rschu1ze)).
* No replicar DELETE ni TRUNCATE para KeeperMap. [#48434](https://github.com/ClickHouse/ClickHouse/pull/48434) ([Antonio Andelic](https://github.com/antonio2368)).
* Genera Decimals y Bools válidos en la función generateRandom. [#48436](https://github.com/ClickHouse/ClickHouse/pull/48436) ([Kruglov Pavel](https://github.com/Avogar)).
* Se permiten comas finales en la lista de expresiones de la consulta SELECT, por ejemplo `SELECT a, b, c, FROM table`. Cierra [#37802](https://github.com/ClickHouse/ClickHouse/issues/37802). [#48438](https://github.com/ClickHouse/ClickHouse/pull/48438) ([Nikolay Degterinsky](https://github.com/evillique)).
* Los parámetros del cliente `--user` y `--password` prevalecen sobre las variables de entorno `CLICKHOUSE_USER` y `CLICKHOUSE_PASSWORD`. Cierra [#38909](https://github.com/ClickHouse/ClickHouse/issues/38909). [#48440](https://github.com/ClickHouse/ClickHouse/pull/48440) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añadieron reintentos durante la carga de partes de datos en tablas `MergeTree` en caso de errores que permiten reintento. [#48442](https://github.com/ClickHouse/ClickHouse/pull/48442) ([Anton Popov](https://github.com/CurtizJ)).
* Se añadió compatibilidad con los tipos de datos `Date`, `Date32`, `DateTime` y `DateTime64` para las funciones `arrayMin`, `arrayMax` y `arrayDifference`. Cierra [#21645](https://github.com/ClickHouse/ClickHouse/issues/21645). [#48445](https://github.com/ClickHouse/ClickHouse/pull/48445) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añade compatibilidad con la macro `{server_uuid}`. Es útil para identificar réplicas en clústeres con escalado automático cuando se añaden y eliminan réplicas constantemente en tiempo de ejecución. Esto resuelve [#48554](https://github.com/ClickHouse/ClickHouse/issues/48554). [#48563](https://github.com/ClickHouse/ClickHouse/pull/48563) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El script de instalación creará un enlace físico en lugar de copiarlo, si es posible. [#48578](https://github.com/ClickHouse/ClickHouse/pull/48578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se admite la sintaxis `SHOW TABLE` con el mismo significado que `SHOW CREATE TABLE`. Cierra [#48580](https://github.com/ClickHouse/ClickHouse/issues/48580). [#48591](https://github.com/ClickHouse/ClickHouse/pull/48591) ([flynn](https://github.com/ucasfl)).
* Los búferes temporales de HTTP ahora pueden funcionar desalojando datos de la caché virtual del sistema de archivos. [#48664](https://github.com/ClickHouse/ClickHouse/pull/48664) ([Vladimir C](https://github.com/vdimir)).
* Permitir que la inferencia de esquema funcione para `CREATE AS SELECT`. Cierra [#47599](https://github.com/ClickHouse/ClickHouse/issues/47599). [#48679](https://github.com/ClickHouse/ClickHouse/pull/48679) ([flynn](https://github.com/ucasfl)).
* Se añadió la configuración `replicated_max_mutations_in_one_entry` para `ReplicatedMergeTree`, que permite limitar el número de comandos de mutación por cada entrada `MUTATE_PART` (el valor predeterminado es 10000). [#48731](https://github.com/ClickHouse/ClickHouse/pull/48731) ([Alexander Tokmakov](https://github.com/tavplubix)).
* En los tipos AggregateFunction, no se cuentan los bytes de arena no utilizados como `read_bytes`. [#48745](https://github.com/ClickHouse/ClickHouse/pull/48745) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige algunas configuraciones relacionadas con MySQL que no se gestionaban correctamente con la fuente de diccionario de MySQL + colección con nombre. Cierra [#48402](https://github.com/ClickHouse/ClickHouse/issues/48402). [#48759](https://github.com/ClickHouse/ClickHouse/pull/48759) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Si un usuario establecía `max_single_part_upload_size` en un valor muy alto, esto podía provocar un fallo debido a un error en el SDK de AWS S3. Esto corrige [#47679](https://github.com/ClickHouse/ClickHouse/issues/47679). [#48816](https://github.com/ClickHouse/ClickHouse/pull/48816) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige una condición de carrera en `RabbitMQ` ([informe](https://pastila.nl/?004f7100/de1505289ab5bb355e67ebe6c7cc8707)) y se reorganiza el código. [#48845](https://github.com/ClickHouse/ClickHouse/pull/48845) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Añade los alias `name` y `part_name` en `system.parts` y `system.part_log`. Cierra [#48718](https://github.com/ClickHouse/ClickHouse/issues/48718). [#48850](https://github.com/ClickHouse/ClickHouse/pull/48850) ([sichenzhao](https://github.com/sichenzhao)).
* Las funciones "arrayDifferenceSupport()", "arrayCumSum()" y "arrayCumSumNonNegative()" ahora admiten arrays de entrada de tipos enteros amplios (U)Int128/256. [#48866](https://github.com/ClickHouse/ClickHouse/pull/48866) ([cluster](https://github.com/infdahai)).
* El historial multilínea en clickhouse-client ahora ya no lleva relleno. Esto hace que pegar texto resulte más natural. [#48870](https://github.com/ClickHouse/ClickHouse/pull/48870) ([Joanna Hulboj](https://github.com/jh0x)).
* Se implementa una pequeña mejora para el caso poco frecuente en que ClickHouse se ejecuta dentro de LXC y se utiliza LXCFS. LXCFS tiene un problema: a veces devuelve el error "Transport endpoint is not connected" al leer un archivo dentro de `/proc`. Este error se registraba correctamente en el registro del servidor de ClickHouse. Además, se ha añadido una solución alternativa para este problema que consiste en volver a abrir el archivo. Se trata de un cambio minúsculo. [#48922](https://github.com/ClickHouse/ClickHouse/pull/48922) ([Real](https://github.com/RunningXie)).
* Mejorar la contabilización de memoria de las precargas. Aleatorizar la configuración de las precargas en CI. [#48973](https://github.com/ClickHouse/ClickHouse/pull/48973) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Configurar correctamente las cabeceras para las operaciones nativas de copia en GCS. [#48981](https://github.com/ClickHouse/ClickHouse/pull/48981) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añadió compatibilidad para especificar nombres de configuraciones en la línea de comandos con guiones en lugar de guiones bajos, por ejemplo, `--max-threads` en lugar de `--max_threads`. Además, se añadió compatibilidad con caracteres Unicode de guion, como `—` en lugar de `--`; esto resulta útil cuando te comunicas con un equipo de otra empresa y un gerente de ese equipo ha copiado y pegado código desde MS Word. [#48985](https://github.com/ClickHouse/ClickHouse/pull/48985) ([alekseygolub](https://github.com/alekseygolub)).
* Se añade un mecanismo de respaldo a la autenticación por contraseña cuando falla la autenticación con un certificado SSL de usuario. Cierra [#48974](https://github.com/ClickHouse/ClickHouse/issues/48974). [#48989](https://github.com/ClickHouse/ClickHouse/pull/48989) ([Nikolay Degterinsky](https://github.com/evillique)).
* Mejora el panel integrado. Cierra [#46671](https://github.com/ClickHouse/ClickHouse/issues/46671). [#49036](https://github.com/ClickHouse/ClickHouse/pull/49036) ([Kevin Zhang](https://github.com/Kinzeng)).
* Se añadieron eventos de perfil para los mensajes de registro, de modo que puedas ver fácilmente el número de mensajes de registro por nivel de gravedad. [#49042](https://github.com/ClickHouse/ClickHouse/pull/49042) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* En versiones anteriores, el formato `LineAsString` funcionaba de forma inconsistente con los saltos de línea de DOS o macOS Classic, tanto si el análisis paralelo estaba habilitado como si no. Esto resuelve [#49039](https://github.com/ClickHouse/ClickHouse/issues/49039). [#49052](https://github.com/ClickHouse/ClickHouse/pull/49052) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El mensaje de excepción sobre el parámetro de consulta que no se pudo analizar también indicará el nombre del parámetro. Se vuelve a implementar [#48878](https://github.com/ClickHouse/ClickHouse/issues/48878). Se cierra [#48772](https://github.com/ClickHouse/ClickHouse/issues/48772). [#49061](https://github.com/ClickHouse/ClickHouse/pull/49061) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Se actualizaron las zonas horarias siguientes: Africa/Cairo, Africa/Casablanca, Africa/El\_Aaiun, America/Bogota, America/Cambridge\_Bay, America/Ciudad\_Juarez, America/Godthab, America/Inuvik, America/Iqaluit, America/Nuuk, America/Ojinaga, America/Pangnirtung, America/Rankin\_Inlet, America/Resolute, America/Whitehorse, America/Yellowknife, Asia/Gaza, Asia/Hebron, Asia/Kuala\_Lumpur, Asia/Singapore, Canada/Yukon, Egypt, Europe/Kirov, Europe/Volgograd, Singapore. [#48572](https://github.com/ClickHouse/ClickHouse/pull/48572) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se redujo el número de dependencias en los archivos de cabecera para acelerar la compilación. [#47984](https://github.com/ClickHouse/ClickHouse/pull/47984) ([Dmitry Novik](https://github.com/novikd)).
* Se aleatorizó la compresión de marcas e índices en las pruebas. [#48286](https://github.com/ClickHouse/ClickHouse/pull/48286) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se actualizó la versión interna de ZSTD de la 1.5.4 a la 1.5.5. [#46797](https://github.com/ClickHouse/ClickHouse/pull/46797) ([Robert Schulze](https://github.com/rschu1ze)).
* Se aleatorizaron en las pruebas las fusiones verticales de partes de compact a wide. [#48287](https://github.com/ClickHouse/ClickHouse/pull/48287) ([Raúl Marín](https://github.com/Algunenano)).
* Se añadió soporte para checksum CRC32 en HDFS. Se corrigieron problemas de rendimiento. [#48614](https://github.com/ClickHouse/ClickHouse/pull/48614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se eliminaron restos del soporte para GCC. [#48671](https://github.com/ClickHouse/ClickHouse/pull/48671) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió una ejecución de CI con la infraestructura del nuevo analyzer habilitada. [#48719](https://github.com/ClickHouse/ClickHouse/pull/48719) ([Dmitry Novik](https://github.com/novikd)).

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

* Corregido system.query\_views\_log para las MV enviadas desde hilos en segundo plano [#46668](https://github.com/ClickHouse/ClickHouse/pull/46668) ([Azat Khuzhin](https://github.com/azat)).
* Corrige varios fallos de `RENAME COLUMN` [#46946](https://github.com/ClickHouse/ClickHouse/pull/46946) ([alesapin](https://github.com/alesapin)).
* Corrige pequeños problemas de resaltado en clickhouse-format [#47610](https://github.com/ClickHouse/ClickHouse/pull/47610) ([Natasha Murashkina](https://github.com/murfel)).
* Corrige un error en libc++ de LLVM que provocaba un fallo al subir partes a S3 cuyo tamaño era mayor que INT\_MAX [#47693](https://github.com/ClickHouse/ClickHouse/pull/47693) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un desbordamiento en la función `sparkbar` [#48121](https://github.com/ClickHouse/ClickHouse/pull/48121) ([Vladimir C](https://github.com/vdimir)).
* Se corrige una condición de carrera en S3 [#48190](https://github.com/ClickHouse/ClickHouse/pull/48190) ([Anton Popov](https://github.com/CurtizJ)).
* Se deshabilitó JIT para las funciones de agregación debido a un comportamiento inconsistente [#48195](https://github.com/ClickHouse/ClickHouse/pull/48195) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregido el formato de ALTER (cambio menor) [#48289](https://github.com/ClickHouse/ClickHouse/pull/48289) ([Natasha Murashkina](https://github.com/murfel)).
* Se corrigió el uso de CPU en RabbitMQ (había empeorado en la versión 23.2 tras [#44404](https://github.com/ClickHouse/ClickHouse/issues/44404)) [#48311](https://github.com/ClickHouse/ClickHouse/pull/48311) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un bloqueo en EXPLAIN PIPELINE para Merge sobre Distributed [#48320](https://github.com/ClickHouse/ClickHouse/pull/48320) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la serialización de LowCardinality como diccionario de Arrow [#48361](https://github.com/ClickHouse/ClickHouse/pull/48361) ([Kruglov Pavel](https://github.com/Avogar)).
* Se restableció el descargador para el segmento de archivo de la caché en TemporaryFileStream [#48386](https://github.com/ClickHouse/ClickHouse/pull/48386) ([Vladimir C](https://github.com/vdimir)).
* Se corrige un posible bloqueo de SYSTEM SYNC REPLICA en casos de DROP/REPLACE PARTITION [#48391](https://github.com/ClickHouse/ClickHouse/pull/48391) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un error de inicio al cargar una tabla distribuida que depende de un diccionario [#48419](https://github.com/ClickHouse/ClickHouse/pull/48419) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* No comprobar las dependencias al renombrar automáticamente las tablas del sistema [#48431](https://github.com/ClickHouse/ClickHouse/pull/48431) ([Raúl Marín](https://github.com/Algunenano)).
* Actualizar únicamente las filas afectadas en el almacenamiento KeeperMap [#48435](https://github.com/ClickHouse/ClickHouse/pull/48435) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige un posible segfault en la caché VFS [#48469](https://github.com/ClickHouse/ClickHouse/pull/48469) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La función `toTimeZone` devuelve un error cuando no se proporciona una cadena constante [#48471](https://github.com/ClickHouse/ClickHouse/pull/48471) ([Jordi Villar](https://github.com/jrdi)).
* Se corrige un error lógico con IPv4 en Protobuf y se añade compatibilidad con Date32 [#48486](https://github.com/ClickHouse/ClickHouse/pull/48486) ([Kruglov Pavel](https://github.com/Avogar)).
* La marca "changed" en system.settings se calculaba de forma incorrecta para ajustes con varios valores [#48516](https://github.com/ClickHouse/ClickHouse/pull/48516) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corregido el almacenamiento `Memory` con la compresión habilitada [#48517](https://github.com/ClickHouse/ClickHouse/pull/48517) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un problema por el que el modo de pegado entre corchetes estropeaba la entrada de la contraseña en caso de reconexión del cliente [#48528](https://github.com/ClickHouse/ClickHouse/pull/48528) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrección de Map anidado para claves de tipo IP y UUID [#48556](https://github.com/ClickHouse/ClickHouse/pull/48556) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige una excepción no capturada al usar el cargador paralelo para diccionarios hash [#48571](https://github.com/ClickHouse/ClickHouse/pull/48571) ([Azat Khuzhin](https://github.com/azat)).
* La función de agregación `groupArray` ahora funciona correctamente con resultados vacíos sobre tipos Nullable [#48593](https://github.com/ClickHouse/ClickHouse/pull/48593) ([lgbo](https://github.com/lgbo-ustc)).
* Se corrige un error en Keeper que, en ocasiones, impedía crear un nodo con el esquema `auth` en la ACL. [#48595](https://github.com/ClickHouse/ClickHouse/pull/48595) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Permite operadores de comparación de IPv4 con UInt [#48611](https://github.com/ClickHouse/ClickHouse/pull/48611) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrigió un posible error relacionado con la caché [#48636](https://github.com/ClickHouse/ClickHouse/pull/48636) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Las inserciones asíncronas con datos vacíos ya no generarán una excepción. [#48663](https://github.com/ClickHouse/ClickHouse/pull/48663) ([Anton Popov](https://github.com/CurtizJ)).
* Corregir las dependencias de las tablas en caso de que falle `RENAME TABLE` [#48683](https://github.com/ClickHouse/ClickHouse/pull/48683) ([Azat Khuzhin](https://github.com/azat)).
* Si la clave primaria tiene columnas duplicadas (lo que solo es posible en las proyecciones), en versiones anteriores esto podía provocar un error [#48838](https://github.com/ClickHouse/ClickHouse/pull/48838) ([Amos Bird](https://github.com/amosbird)).
* Corrección de una condición de carrera en ZooKeeper al hacer join de send\_thread/receive\_thread [#48849](https://github.com/ClickHouse/ClickHouse/pull/48849) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrige el error de nombre de parte inesperada al intentar eliminar una parte `detached` ignorada con zero copy replication [#48862](https://github.com/ClickHouse/ClickHouse/pull/48862) ([Michael Lex](https://github.com/mlex)).
* Se corrige la lectura de una columna `Date32` de Parquet/Arrow como una columna distinta de `Date32` [#48864](https://github.com/ClickHouse/ClickHouse/pull/48864) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el error `UNKNOWN_IDENTIFIER` al seleccionar datos de una tabla con una política de filas y una columna con puntos [#48976](https://github.com/ClickHouse/ClickHouse/pull/48976) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió la agregación con cadenas Nullable vacías [#48999](https://github.com/ClickHouse/ClickHouse/pull/48999) ([LiuNeng](https://github.com/liuneng1994)).

### <a id="233" /> lanzamiento de ClickHouse 23.3 LTS, 2023-03-30. [Presentación](https://presentations.clickhouse.com/2023-release-23.3/), [Video](https://www.youtube.com/watch?v=ISaGUjvBNao)

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

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

* Las eliminaciones ligeras `DELETE` están listas para producción y habilitadas de forma predeterminada. La consulta `DELETE` para tablas MergeTree ahora está disponible de forma predeterminada.
* El comportamiento de las funciones `*domain*RFC` y `netloc` ha cambiado ligeramente: se relajó el conjunto de símbolos permitidos en la autoridad de la URL para ajustarse mejor al estándar. [#46841](https://github.com/ClickHouse/ClickHouse/pull/46841) ([Azat Khuzhin](https://github.com/azat)).
* Se prohibió crear tablas basadas en KafkaEngine con sentencias DEFAULT/EPHEMERAL/ALIAS/MATERIALIZED para columnas. [#47138](https://github.com/ClickHouse/ClickHouse/pull/47138) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Se eliminó la funcionalidad de "drenaje asíncrono de conexiones". También se eliminaron las configuraciones y métricas relacionadas. Era una funcionalidad interna, por lo que su eliminación no debería afectar a los usuarios que nunca habían oído hablar de ella. [#47486](https://github.com/ClickHouse/ClickHouse/pull/47486) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se admite el tipo de dato Decimal de 256 bits (más de 38 dígitos) en `arraySum`/`Min`/`Max`/`Avg`/`Product`, `arrayCumSum`/`CumSumNonNegative`, `arrayDifference`, construcción de arrays, operador IN, parámetros de consulta, `groupArrayMovingSum`, funciones estadísticas, `min`/`max`/`any`/`argMin`/`argMax`, protocolo wire de PostgreSQL, motor de tabla MySQL y función, `sumMap`, `mapAdd`, `mapSubtract`, `arrayIntersect`. Se añadió soporte para enteros grandes en `arrayIntersect`. Las funciones de agregación estadísticas que involucran momentos (como `corr` o varios `TTest`) usarán `Float64` como representación interna (antes de este cambio usaban `Decimal128`, pero no tenía sentido), y estas funciones pueden devolver `nan` en lugar de `inf` en caso de varianza infinita. Algunas funciones admitían tipos de dato `Decimal256`, pero en versiones anteriores devolvían `Decimal128`; ahora esto se ha corregido. Esto cierra [#47569](https://github.com/ClickHouse/ClickHouse/issues/47569). Esto cierra [#44864](https://github.com/ClickHouse/ClickHouse/issues/44864). Esto cierra [#28335](https://github.com/ClickHouse/ClickHouse/issues/28335). [#47594](https://github.com/ClickHouse/ClickHouse/pull/47594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `backup_threads`/`restore_threads` pasan a ser configuraciones del servidor (en lugar de configuraciones de usuario). [#47881](https://github.com/ClickHouse/ClickHouse/pull/47881) ([Azat Khuzhin](https://github.com/azat)).
* Ya no se permiten índices secundarios const ni no deterministas. [#46839](https://github.com/ClickHouse/ClickHouse/pull/46839) ([Anton Popov](https://github.com/CurtizJ)).

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

* Añade un nuevo modo para dividir el trabajo entre réplicas mediante los ajustes `parallel_replicas_custom_key` y `parallel_replicas_custom_key_filter_type`. Si el clúster consta de un solo segmento con varias réplicas, se seleccionarán aleatoriamente hasta `max_parallel_replicas` y se convertirán en segmentos. Para cada segmento, se añade el filtro correspondiente a la consulta en el iniciador antes de enviarla al segmento. Si el clúster consta de varios segmentos, se comportará igual que `sample_key`, pero con la posibilidad de definir una clave arbitraria. [#45108](https://github.com/ClickHouse/ClickHouse/pull/45108) ([Antonio Andelic](https://github.com/antonio2368)).
* Una opción para mostrar resultados parciales al cancelar: Se agregó la configuración de consulta `partial_result_on_first_cancel`, que permite que la consulta cancelada (p. ej., con Ctrl-C) devuelva un resultado parcial. [#45689](https://github.com/ClickHouse/ClickHouse/pull/45689) ([Alexey Perevyshin](https://github.com/alexX512)).
* Se añadió compatibilidad con motores de tabla arbitrarios para tablas temporales (excepto los motores Replicated y KeeperMap). Cierra [#31497](https://github.com/ClickHouse/ClickHouse/issues/31497). [#46071](https://github.com/ClickHouse/ClickHouse/pull/46071) ([Roman Vasin](https://github.com/rvasin)).
* Se añade soporte para la replicación de funciones SQL definidas por el usuario mediante almacenamiento centralizado en Keeper. [#46085](https://github.com/ClickHouse/ClickHouse/pull/46085) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Implementar `system.server_settings` (similar a `system.settings`), que contendrá la configuración del servidor. [#46550](https://github.com/ClickHouse/ClickHouse/pull/46550) ([pufit](https://github.com/pufit)).
* Soporte para la consulta `UNDROP TABLE`. Cierra [#46811](https://github.com/ClickHouse/ClickHouse/issues/46811). [#47241](https://github.com/ClickHouse/ClickHouse/pull/47241) ([chen](https://github.com/xiedeyantu)).
* Permite grants independientes para named collections (p. ej., para poder otorgar acceso a `SHOW/CREATE/ALTER/DROP named collection` solo a determinadas colecciones, en lugar de a todas de una vez). Cierra [#40894](https://github.com/ClickHouse/ClickHouse/issues/40894). Añade un nuevo tipo de acceso, `NAMED_COLLECTION_CONTROL`, que no se concede al valor predeterminado del usuario salvo que se añada explícitamente a la configuración del usuario (es necesario para poder hacer `GRANT ALL`); además, `show_named_collections` ya no es obligatorio especificarlo manualmente en el valor predeterminado del usuario para poder tener derechos de acceso completos, como ocurría en la versión 23.2. [#46241](https://github.com/ClickHouse/ClickHouse/pull/46241) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permitir discos personalizados anidados. Anteriormente, los discos personalizados solo admitían una estructura de discos plana. [#47106](https://github.com/ClickHouse/ClickHouse/pull/47106) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se ha introducido la función `widthBucket` (con el alias `WIDTH_BUCKET` por compatibilidad). [#42974](https://github.com/ClickHouse/ClickHouse/issues/42974). [#46790](https://github.com/ClickHouse/ClickHouse/pull/46790) ([avoiderboi](https://github.com/avoiderboi)).
* Se añade la nueva función `parseDateTime`/`parseDateTimeInJodaSyntax` según la cadena de formato especificada. `parseDateTime` convierte String a DateTime con sintaxis MySQL, `parseDateTimeInJodaSyntax` lo convierte con sintaxis Joda. [#46815](https://github.com/ClickHouse/ClickHouse/pull/46815) ([李扬](https://github.com/taiyang-li)).
* Se usa `dummy UInt8` como estructura predeterminada de la función de tabla `null`. Cierra [#46930](https://github.com/ClickHouse/ClickHouse/issues/46930). [#47006](https://github.com/ClickHouse/ClickHouse/pull/47006) ([flynn](https://github.com/ucasfl)).
* Soporte para el formato de fecha con coma, como `Dec 15, 2021`, en la función `parseDateTimeBestEffort`. Cierra [#46816](https://github.com/ClickHouse/ClickHouse/issues/46816). [#47071](https://github.com/ClickHouse/ClickHouse/pull/47071) ([chen](https://github.com/xiedeyantu)).
* Se añaden las opciones de configuración `http_wait_end_of_query` y `http_response_buffer_size`, correspondientes a los parámetros de URL `wait_end_of_query` y `buffer_size` de la interfaz HTTP. Esto permite modificar estas opciones en los perfiles. [#47108](https://github.com/ClickHouse/ClickHouse/pull/47108) ([Vladimir C](https://github.com/vdimir)).
* Se agrega la tabla `system.dropped_tables`, que muestra las tablas eliminadas de las bases de datos `Atomic` pero que todavía no se han eliminado por completo. [#47364](https://github.com/ClickHouse/ClickHouse/pull/47364) ([chen](https://github.com/xiedeyantu)).
* Se añade `INSTR` como alias de `positionCaseInsensitive` por compatibilidad con MySQL. Cierra [#47529](https://github.com/ClickHouse/ClickHouse/issues/47529). [#47535](https://github.com/ClickHouse/ClickHouse/pull/47535) ([flynn](https://github.com/ucasfl)).
* Se añadió la función `toDecimalString`, que permite convertir números en cadenas con precisión fija. [#47838](https://github.com/ClickHouse/ClickHouse/pull/47838) ([Andrey Zvonov](https://github.com/zvonand)).
* Añade una configuración de MergeTree `max_number_of_mutations_for_replica`. Limita el número de mutaciones de partes por réplica a la cantidad especificada. Cero significa que no hay límite en el número de mutaciones por réplica (la ejecución aún puede estar restringida por otras configuraciones). [#48047](https://github.com/ClickHouse/ClickHouse/pull/48047) ([Vladimir C](https://github.com/vdimir)).
* Se añade la función `mapFromArrays`, relacionada con Map, que permite crear un map a partir de un par de arrays. [#31125](https://github.com/ClickHouse/ClickHouse/pull/31125) ([李扬](https://github.com/taiyang-li)).
* Permite controlar la compresión en los formatos de salida Parquet/ORC/Arrow y añade compatibilidad con más formatos de entrada comprimidos. Esto cierra [#13541](https://github.com/ClickHouse/ClickHouse/issues/13541). [#47114](https://github.com/ClickHouse/ClickHouse/pull/47114) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añade autenticación con certificado de usuario SSL al protocolo nativo. Cierra [#47077](https://github.com/ClickHouse/ClickHouse/issues/47077). [#47596](https://github.com/ClickHouse/ClickHouse/pull/47596) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añaden variantes \*OrNull() y \*OrZero() para `parseDateTime`, y el alias `str_to_date` para mantener la compatibilidad con MySQL. [#48000](https://github.com/ClickHouse/ClickHouse/pull/48000) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió el operador `REGEXP` (similar a los operadores "LIKE", "IN", "MOD", etc.) para mejorar la compatibilidad con MySQL [#47869](https://github.com/ClickHouse/ClickHouse/pull/47869) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Las marks en memoria ahora están comprimidas y requieren entre 3 y 6 veces menos memoria. [#47290](https://github.com/ClickHouse/ClickHouse/pull/47290) ([Michael Kolupaev](https://github.com/al13n321)).
* Las copias de seguridad con grandes cantidades de archivos eran increíblemente lentas en versiones anteriores. Ya no. Ahora son increíblemente rápidas. [#47251](https://github.com/ClickHouse/ClickHouse/pull/47251) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Se introdujo un pool de hilos independiente para las operaciones de IO de las copias de seguridad. Esto permitirá escalarlo de forma independiente de otros pools y aumentar el rendimiento. [#47174](https://github.com/ClickHouse/ClickHouse/pull/47174) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Se usan solicitudes MultiRead y reintentos para recopilar metadatos en la etapa final del procesamiento de la copia de seguridad. [#47243](https://github.com/ClickHouse/ClickHouse/pull/47243) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Si tanto la copia de seguridad como la restauración de datos están en S3, a partir de ahora debe utilizarse una copia del lado del servidor. [#47546](https://github.com/ClickHouse/ClickHouse/pull/47546) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el exceso de lecturas en consultas con `FINAL`. [#47801](https://github.com/ClickHouse/ClickHouse/pull/47801) ([Nikita Taranov](https://github.com/nickitat)).
* La configuración `max_final_threads` se establecerá con el número de núcleos al iniciar el servidor (con el mismo algoritmo que se usa para `max_threads`). Esto mejora la concurrencia de la ejecución de `final` en servidores con un gran número de CPU. [#47915](https://github.com/ClickHouse/ClickHouse/pull/47915) ([Nikita Taranov](https://github.com/nickitat)).
* Permite ejecutar el pipeline de lectura para el diccionario DIRECT con fuente CLICKHOUSE en varios hilos. Para habilitarlo, establezca `dictionary_use_async_executor=1` en la sección `SETTINGS` de la fuente en la instrucción `CREATE DICTIONARY`. [#47986](https://github.com/ClickHouse/ClickHouse/pull/47986) ([Vladimir C](https://github.com/vdimir)).
* Optimizar el rendimiento de agregación con una clave Nullable. [#45772](https://github.com/ClickHouse/ClickHouse/pull/45772) ([LiuNeng](https://github.com/liuneng1994)).
* Se implementó el uso del índice `tokenbf_v1` en minúscula para `hasTokenOrNull`, `hasTokenCaseInsensitive` y `hasTokenCaseInsensitiveOrNull`. [#46252](https://github.com/ClickHouse/ClickHouse/pull/46252) ([ltrk2](https://github.com/ltrk2)).
* Optimiza las funciones `position` y `LIKE` al buscar los dos primeros caracteres mediante SIMD. [#46289](https://github.com/ClickHouse/ClickHouse/pull/46289) ([Jiebin Sun](https://github.com/jiebinn)).
* Se optimizaron las consultas sobre `system.detached_parts`, que podían ser considerablemente grandes. Se añadieron varias fuentes teniendo en cuenta la limitación del tamaño de bloque; en cada bloque, se usa un pool de hilos de IO para calcular el tamaño de la parte, es decir, para realizar llamadas al sistema en paralelo. [#46624](https://github.com/ClickHouse/ClickHouse/pull/46624) ([Sema Checherinda](https://github.com/CheSema)).
* Aumenta el valor predeterminado de `max_replicated_merges_in_queue` para las tablas ReplicatedMergeTree de 16 a 1000. Esto permite realizar merges en segundo plano más rápidamente en clústeres con un número muy elevado de réplicas, como los clústeres con almacenamiento compartido en ClickHouse Cloud. [#47050](https://github.com/ClickHouse/ClickHouse/pull/47050) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se actualizó `clickhouse-copier` para usar `GROUP BY` en lugar de `DISTINCT` para obtener la lista de particiones. En tablas grandes, esto redujo el tiempo de selección de más de 500 s a menos de 1 s. [#47386](https://github.com/ClickHouse/ClickHouse/pull/47386) ([Clayton McClure](https://github.com/cmcclure-twilio)).
* Se ha corregido la degradación del rendimiento en `ASOF JOIN`. [#47544](https://github.com/ClickHouse/ClickHouse/pull/47544) ([Ongkong](https://github.com/ongkong)).
* Aún más procesamiento por lotes en Keeper. Mejora el rendimiento al evitar dividir los lotes en las solicitudes de lectura. [#47978](https://github.com/ClickHouse/ClickHouse/pull/47978) ([Antonio Andelic](https://github.com/antonio2368)).
* Permitir PREWHERE en Merge con distintas expresiones DEFAULT para las columnas. [#46831](https://github.com/ClickHouse/ClickHouse/pull/46831) ([Azat Khuzhin](https://github.com/azat)).

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

* Réplicas paralelas: se mejoró el rendimiento general al aprovechar mejor la réplica local, y de forma predeterminada se prohibió la lectura con réplicas paralelas desde MergeTree no replicado. [#47858](https://github.com/ClickHouse/ClickHouse/pull/47858) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se admite el push down de filtros a la tabla izquierda para JOIN con tablas `Join`, `Dictionary` y `EmbeddedRocksDB` si el analizador experimental está habilitado. [#47280](https://github.com/ClickHouse/ClickHouse/pull/47280) ([Maksim Kita](https://github.com/kitaisreal)).
* Ahora, ReplicatedMergeTree con zero copy replication genera menos carga en Keeper. [#47676](https://github.com/ClickHouse/ClickHouse/pull/47676) ([alesapin](https://github.com/alesapin)).
* Se corrigió la creación de vista materializada con MaterializedPostgreSQL [#40807](https://github.com/ClickHouse/ClickHouse/pull/40807) ([Maksim Buren](https://github.com/maks-buren630501)).

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

* Se habilita `input_format_json_ignore_unknown_keys_in_named_tuple` de forma predeterminada. [#46742](https://github.com/ClickHouse/ClickHouse/pull/46742) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir ignorar errores al escribir en MATERIALIZED VIEW (añade la nueva configuración `materialized_views_ignore_errors`, con valor predeterminado `false`, pero se establece incondicionalmente en `true` al volcar logs en las tablas `system.*_log`). [#46658](https://github.com/ClickHouse/ClickHouse/pull/46658) ([Azat Khuzhin](https://github.com/azat)).
* Seguimiento en memoria de la cola de archivos para envíos distribuidos. [#45491](https://github.com/ClickHouse/ClickHouse/pull/45491) ([Azat Khuzhin](https://github.com/azat)).
* Ahora se añaden los encabezados `X-ClickHouse-Query-Id` y `X-ClickHouse-Timezone` a las respuestas de todas las consultas a través del protocolo HTTP. Anteriormente, esto solo se hacía para las consultas `SELECT`. [#46364](https://github.com/ClickHouse/ClickHouse/pull/46364) ([Anton Popov](https://github.com/CurtizJ)).
* Tablas externas de `MongoDB`: soporte para la conexión a un Replica Set mediante un URI con un enum de host:port y soporte para la opción readPreference en los diccionarios de MongoDB. URI de ejemplo: mongodb://db0.example.com:27017,db1.example.com:27017,db2.example.com:27017/?replicaSet=myRepl\&readPreference=primary. [#46524](https://github.com/ClickHouse/ClickHouse/pull/46524) ([artem-yadr](https://github.com/artem-yadr)).
* Esta mejora debería pasarle desapercibida. Se reimplementó el análisis de proyecciones sobre el plan de consulta. Se añadió la configuración `query_plan_optimize_projection=1` para alternar entre la versión antigua y la nueva. Corrige [#44963](https://github.com/ClickHouse/ClickHouse/issues/44963). [#46537](https://github.com/ClickHouse/ClickHouse/pull/46537) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Usa el formato Parquet v2 en lugar de v1 en el formato de salida de forma predeterminada. Añade la configuración `output_format_parquet_version` para controlar la versión de Parquet; valores posibles: `1.0`, `2.4`, `2.6`, `2.latest` (predeterminado). [#46617](https://github.com/ClickHouse/ClickHouse/pull/46617) ([Kruglov Pavel](https://github.com/Avogar)).
* Ahora es posible usar la nueva sintaxis de configuración para configurar temas de Kafka con puntos (`.`) en el nombre. [#46752](https://github.com/ClickHouse/ClickHouse/pull/46752) ([Robert Schulze](https://github.com/rschu1ze)).
* Corregir las heurísticas que verifican los patrones de hyperscan para detectar repeticiones problemáticas. [#46819](https://github.com/ClickHouse/ClickHouse/pull/46819) ([Robert Schulze](https://github.com/rschu1ze)).
* No informar de que el nodo ZK ya existe en system.errors cuando un bloque se creó de forma concurrente en una réplica diferente. [#46820](https://github.com/ClickHouse/ClickHouse/pull/46820) ([Raúl Marín](https://github.com/Algunenano)).
* Se aumenta el límite de archivos abiertos en `clickhouse-local`. Podrá leer desde tablas `web` en servidores con una gran cantidad de núcleos de CPU. No dejará de leer desde el motor de tabla URL si hay demasiados archivos abiertos. Esto cierra [#46852](https://github.com/ClickHouse/ClickHouse/issues/46852). [#46853](https://github.com/ClickHouse/ClickHouse/pull/46853) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Las excepciones que se generan cuando no se pueden interpretar los números ahora tienen un mensaje de error más fácil de leer. [#46917](https://github.com/ClickHouse/ClickHouse/pull/46917) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió una actualización de `system.backups` tras cada tarea procesada para hacer seguimiento del progreso de las copias de seguridad. [#46989](https://github.com/ClickHouse/ClickHouse/pull/46989) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Permite la conversión de tipos en el formato de entrada Native. Se añade la configuración `input_format_native_allow_types_conversion` para controlarla (habilitada de forma predeterminada). [#46990](https://github.com/ClickHouse/ClickHouse/pull/46990) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir el uso de IPv4 en la función `range` para generar rangos de IP. [#46995](https://github.com/ClickHouse/ClickHouse/pull/46995) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Mejora el mensaje de excepción cuando no es posible mover una parte de un volumen/disco a otro. [#47032](https://github.com/ClickHouse/ClickHouse/pull/47032) ([alesapin](https://github.com/alesapin)).
* Se admite el tipo `Bool` en la función `JSONType`. Anteriormente, se devolvía por error el tipo `Null` para los valores booleanos. [#47046](https://github.com/ClickHouse/ClickHouse/pull/47046) ([Anton Popov](https://github.com/CurtizJ)).
* Use el parámetro `_request_body` para configurar consultas HTTP predefinidas. [#47086](https://github.com/ClickHouse/ClickHouse/pull/47086) ([Constantine Peresypkin](https://github.com/pkit)).
* Indentación automática en el SQL Editor integrado de la UI al pulsar Enter. [#47113](https://github.com/ClickHouse/ClickHouse/pull/47113) ([Alexey Korepanov](https://github.com/alexkorep)).
* La autoextracción con 'sudo' intentará establecer el uid y el gid de los archivos extraídos para el usuario en ejecución. [#47116](https://github.com/ClickHouse/ClickHouse/pull/47116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Anteriormente, el segundo argumento de la función `repeat` solo aceptaba un tipo entero sin signo, lo que significaba que no podía admitir valores como -1. Este comportamiento difería del de la función de Spark. En esta actualización, la función `repeat` se ha modificado para que coincida con el comportamiento de la función de Spark. Ahora acepta los mismos tipos de entrada, incluidos los enteros negativos. Se han realizado pruebas exhaustivas para verificar la corrección de la implementación actualizada. [#47134](https://github.com/ClickHouse/ClickHouse/pull/47134) ([KevinyhZou](https://github.com/KevinyhZou)). Nota: la entrada del changelog fue reescrita por ChatGPT.
* Eliminar `::__1` de las trazas de pila. Mostrar `std::basic_string<char, ...` como `String` en las trazas de pila. [#47171](https://github.com/ClickHouse/ClickHouse/pull/47171) ([Mike Kot](https://github.com/myrrc)).
* Reimplementar el modo interservidor para evitar ataques de repetición (ten en cuenta que este cambio es retrocompatible con servidores anteriores). [#47213](https://github.com/ClickHouse/ClickHouse/pull/47213) ([Azat Khuzhin](https://github.com/azat)).
* Mejora el reconocimiento de grupos de expresiones regulares y perfecciona el diccionario regexp\_tree. [#47218](https://github.com/ClickHouse/ClickHouse/pull/47218) ([Han Fei](https://github.com/hanfei1991)).
* Mejora de Keeper: añade un nuevo 4LW `clrs` para limpiar los recursos utilizados por Keeper (p. ej., liberar memoria no utilizada). [#47256](https://github.com/ClickHouse/ClickHouse/pull/47256) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añaden argumentos opcionales a los códecs `DoubleDelta(bytes_size)`, `Gorilla(bytes_size)`, `FPC(level, float_size)`; esto permite usar estos códecs sin especificar el tipo de columna en `clickhouse-compressor`. Se corrigen posibles abortos y errores aritméticos en `clickhouse-compressor` con estos códecs. Correcciones: [https://github.com/ClickHouse/ClickHouse/discussions/47262](https://github.com/ClickHouse/ClickHouse/discussions/47262). [#47271](https://github.com/ClickHouse/ClickHouse/pull/47271) ([Kruglov Pavel](https://github.com/Avogar)).
* Añade compatibilidad con tipos `big int` a la función `runningDifference`. Cierra [#47194](https://github.com/ClickHouse/ClickHouse/issues/47194). [#47322](https://github.com/ClickHouse/ClickHouse/pull/47322) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añade un margen de expiración para las credenciales de S3 que tienen una hora de vencimiento, a fin de evitar errores `ExpiredToken` en algunos casos extremos. Se puede controlar con la configuración `expiration_window_seconds`; el valor predeterminado es de 120 segundos. [#47423](https://github.com/ClickHouse/ClickHouse/pull/47423) ([Antonio Andelic](https://github.com/antonio2368)).
* Compatibilidad con Decimal y Date32 en el formato `Avro`. [#47434](https://github.com/ClickHouse/ClickHouse/pull/47434) ([Kruglov Pavel](https://github.com/Avogar)).
* No iniciar el servidor si se detecta una conversión interrumpida de `Ordinary` a `Atomic`; mostrar un mensaje de error más claro con instrucciones para solucionar problemas. [#47487](https://github.com/ClickHouse/ClickHouse/pull/47487) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Añade una nueva columna `kind` a `system.opentelemetry_span_log`. Esta columna almacena el valor de [SpanKind](https://opentelemetry.io/docs/reference/specification/trace/api/#spankind) definido en OpenTelemetry. [#47499](https://github.com/ClickHouse/ClickHouse/pull/47499) ([Frank Chen](https://github.com/FrankChen021)).
* Permite leer/escribir arrays anidados en formato `Protobuf` usando solo el nombre del campo raíz como nombre de la columna. Anteriormente, el nombre de la columna debía incluir todos los nombres de los campos anidados (por ejemplo, `a.b.c Array(Array(Array(UInt32)))`, ahora puedes usar solo `a Array(Array(Array(UInt32)))`. [#47650](https://github.com/ClickHouse/ClickHouse/pull/47650) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió un modificador opcional `STRICT` para `SYSTEM SYNC REPLICA` que hace que la consulta espere a que la cola de replicación se vacíe (igual que ocurría antes de [https://github.com/ClickHouse/ClickHouse/pull/45648](https://github.com/ClickHouse/ClickHouse/pull/45648)). [#47659](https://github.com/ClickHouse/ClickHouse/pull/47659) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Mejora la nomenclatura de algunos logs de span de OpenTelemetry. [#47667](https://github.com/ClickHouse/ClickHouse/pull/47667) ([Frank Chen](https://github.com/FrankChen021)).
* Evita usar cadenas demasiado largas de combinadores de funciones de agregación (pueden dar lugar a consultas lentas durante la fase de análisis). Esto cierra [#47715](https://github.com/ClickHouse/ClickHouse/issues/47715). [#47716](https://github.com/ClickHouse/ClickHouse/pull/47716) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compatibilidad con subconsultas en vistas parametrizadas; resuelve [#46741](https://github.com/ClickHouse/ClickHouse/issues/46741) [#47725](https://github.com/ClickHouse/ClickHouse/pull/47725) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrige una fuga de memoria en la integración de MySQL (se reproduce con `connection_auto_close=1`). [#47732](https://github.com/ClickHouse/ClickHouse/pull/47732) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se mejoró el manejo de errores en el código relacionado con los parámetros Decimal, lo que da lugar a mensajes de error más informativos. Anteriormente, cuando se proporcionaban parámetros Decimal incorrectos, el mensaje de error generado era poco claro o poco útil. Con esta actualización, se corrigió el mensaje de error mostrado para ofrecer información más detallada y útil, lo que facilita la identificación y corrección de problemas relacionados con los parámetros Decimal. [#47812](https://github.com/ClickHouse/ClickHouse/pull/47812) ([Yu Feng](https://github.com/Vigor-jpg)). Nota: esta entrada del registro de cambios fue reescrita por ChatGPT.
* El parámetro `exact_rows_before_limit` se usa para que `rows_before_limit_at_least` refleje con exactitud el número de filas devueltas antes de alcanzar el límite. Este pull request corrige problemas detectados cuando la consulta implica procesamiento distribuido entre múltiples segmentos u operaciones de ordenación. Antes de esta actualización, estos escenarios no funcionaban como se esperaba. [#47874](https://github.com/ClickHouse/ClickHouse/pull/47874) ([Amos Bird](https://github.com/amosbird)).
* Introspección de las métricas de ThreadPools. [#47880](https://github.com/ClickHouse/ClickHouse/pull/47880) ([Azat Khuzhin](https://github.com/azat)).
* Se añaden los eventos de perfil `WriteBufferFromS3Microseconds` y `WriteBufferFromS3RequestsErrors`. [#47885](https://github.com/ClickHouse/ClickHouse/pull/47885) ([Antonio Andelic](https://github.com/antonio2368)).
* Añadir las opciones `--link` y `--noninteractive` (`-y`) al comando de instalación de ClickHouse. Cierra [#47750](https://github.com/ClickHouse/ClickHouse/issues/47750). [#47887](https://github.com/ClickHouse/ClickHouse/pull/47887) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió la excepción `UNKNOWN_TABLE` al adjuntar una vista materializada que tiene tablas dependientes no disponibles. Esto puede ser útil al intentar restaurar el estado desde una copia de seguridad. [#47975](https://github.com/ClickHouse/ClickHouse/pull/47975) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Se corrige el caso en que no se añade la ruta (opcional) a la configuración de un disco cifrado. [#47981](https://github.com/ClickHouse/ClickHouse/pull/47981) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Compatibilidad con CTE en vistas parametrizadas Implementación: Se actualizó para permitir parámetros de consulta al evaluar subconsultas escalares. [#48065](https://github.com/ClickHouse/ClickHouse/pull/48065) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Compatibilidad con enteros grandes `(U)Int128/(U)Int256`, `Map` con cualquier tipo de clave y `DateTime64` con cualquier precisión (no solo 3 y 6). [#48119](https://github.com/ClickHouse/ClickHouse/pull/48119) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir omitir errores relacionados con valores `enum` desconocidos en formatos de entrada por filas. [#48133](https://github.com/ClickHouse/ClickHouse/pull/48133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* ClickHouse ahora se compila con `C++23`. [#47424](https://github.com/ClickHouse/ClickHouse/pull/47424) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadieron pruebas de fuzzing para consultas `EXPLAIN` en el AST Fuzzer. [#47803](https://github.com/ClickHouse/ClickHouse/pull/47803) [#47852](https://github.com/ClickHouse/ClickHouse/pull/47852) ([flynn](https://github.com/ucasfl)).
* Se separaron la prueba de estrés y la comprobación automatizada de compatibilidad con versiones anteriores (ahora, comprobación de actualización). [#44879](https://github.com/ClickHouse/ClickHouse/pull/44879) ([Kruglov Pavel](https://github.com/Avogar)).
* Se actualizó la imagen de Ubuntu para Docker para mitigar algunos informes de seguridad falsos. [#46784](https://github.com/ClickHouse/ClickHouse/pull/46784) ([Julio Jimenez](https://github.com/juliojimenez)). Tenga en cuenta que ClickHouse no tiene dependencias y no requiere Docker.
* Añade un mensaje para permitir eliminar una descarga existente de `clickhouse` al usar la descarga de ClickHouse con «curl | sh». El mensaje es "ClickHouse binary clickhouse already exists. Overwrite? \[y/N]". [#46859](https://github.com/ClickHouse/ClickHouse/pull/46859) ([Dan Roscigno](https://github.com/DanRoscigno)).
* Corrige un error durante el inicio del servidor en distribuciones antiguas (p. ej., Amazon Linux 2) y en ARM, donde no se encuentran los símbolos de glibc 2.28. [#47008](https://github.com/ClickHouse/ClickHouse/pull/47008) ([Robert Schulze](https://github.com/rschu1ze)).
* Se prepara la compatibilidad con clang 16. [#47027](https://github.com/ClickHouse/ClickHouse/pull/47027) ([Amos Bird](https://github.com/amosbird)).
* Se añadió una comprobación de CI que garantiza que ClickHouse puede ejecutarse con una glibc antigua en ARM. [#47063](https://github.com/ClickHouse/ClickHouse/pull/47063) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió una comprobación de estilo para evitar el uso incorrecto de la macro `NDEBUG`. [#47699](https://github.com/ClickHouse/ClickHouse/pull/47699) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se acelera un poco la compilación. [#47714](https://github.com/ClickHouse/ClickHouse/pull/47714) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se actualizó `vectorscan` a la versión 5.4.9. [#47955](https://github.com/ClickHouse/ClickHouse/pull/47955) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió una prueba unitaria para verificar que el logging fatal de Apache Arrow no provoque una interrupción. Cubre los cambios de [ClickHouse/arrow#16](https://github.com/ClickHouse/arrow/pull/16). [#47958](https://github.com/ClickHouse/ClickHouse/pull/47958) ([Arthur Passos](https://github.com/arthurpassos)).
* Se restauró la capacidad de iniciar la compilación nativa del servidor de depuración para macOS. [#48050](https://github.com/ClickHouse/ClickHouse/pull/48050) ([Robert Schulze](https://github.com/rschu1ze)). Nota: este cambio solo es relevante para desarrollo, ya que las compilaciones oficiales de ClickHouse se realizan con compilación cruzada.

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

* Corregir el restablecimiento del analizador de formatos, probar el procesamiento de mensajes erróneos en `Kafka` [#45693](https://github.com/ClickHouse/ClickHouse/pull/45693) ([Kruglov Pavel](https://github.com/Avogar)).
* Corregir el cálculo del tamaño de los datos en Keeper [#46086](https://github.com/ClickHouse/ClickHouse/pull/46086) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un error en los reintentos automáticos de la consulta `DROP TABLE` con tablas `ReplicatedMergeTree` y bases de datos `Atomic`. En casos poco frecuentes, podía provocar los errores `Can't get data for node /zk_path/log_pointer` y `The specified key does not exist` si la sesión de ZooKeeper expiraba durante DROP y, en paralelo, se creaba una nueva tabla replicada con la misma ruta en ZooKeeper. [#46384](https://github.com/ClickHouse/ClickHouse/pull/46384) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrigió la recursión incorrecta de alias al normalizar las consultas, lo que impedía que algunas consultas se ejecutaran. [#46609](https://github.com/ClickHouse/ClickHouse/pull/46609) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige la serialización/deserialización de IPv4/IPv6 en formatos binarios [#46616](https://github.com/ClickHouse/ClickHouse/pull/46616) ([Kruglov Pavel](https://github.com/Avogar)).
* ActionsDAG: no se debe cambiar el resultado de `and` durante la optimización [#46653](https://github.com/ClickHouse/ClickHouse/pull/46653) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Mejora la cancelación de consultas cuando un cliente se desconecta inesperadamente [#46681](https://github.com/ClickHouse/ClickHouse/pull/46681) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrigen las operaciones aritméticas en la optimización de agregados [#46705](https://github.com/ClickHouse/ClickHouse/pull/46705) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige un posible cierre inesperado de `clickhouse-local` al inferir el esquema de JSONEachRow [#46731](https://github.com/ClickHouse/ClickHouse/pull/46731) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el cambio de un rol caducado [#46772](https://github.com/ClickHouse/ClickHouse/pull/46772) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió la acumulación conjunta de columnas PREWHERE de varios pasos [#46785](https://github.com/ClickHouse/ClickHouse/pull/46785) ([Alexander Gololobov](https://github.com/davenger)).
* Usar el rango inicial para determinar el tamaño del archivo en el búfer de lectura HTTP. Sin este cambio, algunos archivos remotos no podían procesarse. [#46824](https://github.com/ClickHouse/ClickHouse/pull/46824) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige la barra de progreso errónea al usar tablas URL [#46830](https://github.com/ClickHouse/ClickHouse/pull/46830) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrigió un informe de MSan en la función `maxIntersections` [#46847](https://github.com/ClickHouse/ClickHouse/pull/46847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige un error en el tipo de datos `Map` [#46856](https://github.com/ClickHouse/ClickHouse/pull/46856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigieron los resultados incorrectos de algunas búsquedas LIKE cuando el patrón LIKE contiene caracteres no entrecomillables entre comillas [#46875](https://github.com/ClickHouse/ClickHouse/pull/46875) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrección: WITH FILL provocaba una interrupción cuando Filling Transform procesaba un bloque vacío [#46897](https://github.com/ClickHouse/ClickHouse/pull/46897) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corregida la inferencia de fechas y enteros desde cadenas en JSON [#46972](https://github.com/ClickHouse/ClickHouse/pull/46972) ([Kruglov Pavel](https://github.com/Avogar)).
* Corregido un error en la elección del disco de la replicación zero-copy durante el fetch [#47010](https://github.com/ClickHouse/ClickHouse/pull/47010) ([alesapin](https://github.com/alesapin)).
* Se corrige una errata en la definición del servicio de systemd [#47051](https://github.com/ClickHouse/ClickHouse/pull/47051) ([Palash Goel](https://github.com/palash-goel)).
* Se corrige el error NOT\_IMPLEMENTED con CROSS JOIN y algorithm = auto [#47068](https://github.com/ClickHouse/ClickHouse/pull/47068) ([Vladimir C](https://github.com/vdimir)).
* Soluciona el problema por el que la tabla 'ReplicatedMergeTree' no podía insertar dos datos similares cuando 'part\_type' está configurado en modo 'InMemory' (función experimental). [#47121](https://github.com/ClickHouse/ClickHouse/pull/47121) ([liding1992](https://github.com/liding1992)).
* Diccionarios externos / library-bridge: Se corrige el error "método de biblioteca desconocido 'extDict\_libClone'" [#47136](https://github.com/ClickHouse/ClickHouse/pull/47136) ([alex filatov](https://github.com/phil-88)).
* Se corrige una condición de carrera en un grace hash join con límite [#47153](https://github.com/ClickHouse/ClickHouse/pull/47153) ([Vladimir C](https://github.com/vdimir)).
* Se corrigió la compatibilidad de PREWHERE con columnas concretas [#47154](https://github.com/ClickHouse/ClickHouse/pull/47154) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un posible interbloqueo en Query Status [#47161](https://github.com/ClickHouse/ClickHouse/pull/47161) ([Kruglov Pavel](https://github.com/Avogar)).
* Se prohíbe `insert select` en la misma tabla `Join`, ya que provoca un interbloqueo [#47260](https://github.com/ClickHouse/ClickHouse/pull/47260) ([Vladimir C](https://github.com/vdimir)).
* Omitir las particiones fusionadas en las fusiones de `min_age_to_force_merge_seconds` [#47303](https://github.com/ClickHouse/ClickHouse/pull/47303) ([Antonio Andelic](https://github.com/antonio2368)).
* Modificar find\_first\_symbols para que funcione como se espera con find\_first\_not\_symbols [#47304](https://github.com/ClickHouse/ClickHouse/pull/47304) ([Arthur Passos](https://github.com/arthurpassos)).
* Corrección de la inferencia de números grandes en CSV [#47410](https://github.com/ClickHouse/ClickHouse/pull/47410) ([Kruglov Pavel](https://github.com/Avogar)).
* Se deshabilitó el optimizador de expresiones lógicas para expresiones con alias. [#47451](https://github.com/ClickHouse/ClickHouse/pull/47451) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un error en `decodeURLComponent` [#47457](https://github.com/ClickHouse/ClickHouse/pull/47457) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corregido el gráfico de EXPLAIN con proyección [#47473](https://github.com/ClickHouse/ClickHouse/pull/47473) ([flynn](https://github.com/ucasfl)).
* Corrige los parámetros de consulta [#47488](https://github.com/ClickHouse/ClickHouse/pull/47488) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Vista parametrizada: corrección de un error. [#47495](https://github.com/ClickHouse/ClickHouse/pull/47495) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Fuzzer de formatos de datos y las correcciones correspondientes. [#47519](https://github.com/ClickHouse/ClickHouse/pull/47519) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la comprobación de monotonía para `DateTime64` [#47526](https://github.com/ClickHouse/ClickHouse/pull/47526) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige "incompatibilidad en la estructura del bloque" en una columna Nullable LowCardinality [#47537](https://github.com/ClickHouse/ClickHouse/pull/47537) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrección adecuada de un error en Apache Parquet [#45878](https://github.com/ClickHouse/ClickHouse/issues/45878) [#47538](https://github.com/ClickHouse/ClickHouse/pull/47538) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el análisis paralelo de `BSONEachRow` cuando el tamaño del documento no es válido [#47540](https://github.com/ClickHouse/ClickHouse/pull/47540) ([Kruglov Pavel](https://github.com/Avogar)).
* Mantener el error en `system.distribution_queue` al ejecutar `SYSTEM FLUSH DISTRIBUTED` [#47541](https://github.com/ClickHouse/ClickHouse/pull/47541) ([Azat Khuzhin](https://github.com/azat)).
* Comprobación de columnas duplicadas en el formato `BSONEachRow` [#47609](https://github.com/ClickHouse/ClickHouse/pull/47609) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la espera del bloqueo de zero copy durante el movimiento [#47631](https://github.com/ClickHouse/ClickHouse/pull/47631) ([alesapin](https://github.com/alesapin)).
* Corrección de la agregación por particiones [#47634](https://github.com/ClickHouse/ClickHouse/pull/47634) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrigió un error en la serialización de una tupla como array en el formato `BSONEachRow` [#47690](https://github.com/ClickHouse/ClickHouse/pull/47690) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un fallo en `polygonsSymDifferenceCartesian` [#47702](https://github.com/ClickHouse/ClickHouse/pull/47702) ([pufit](https://github.com/pufit)).
* Se corrigió la lectura de archivos comprimidos con `zlib` y `gzip` desde el almacenamiento `File` [#47796](https://github.com/ClickHouse/ClickHouse/pull/47796) ([Anton Popov](https://github.com/CurtizJ)).
* Mejorar la detección de consultas vacías para PostgreSQL (para el driver pgx de Go) [#47854](https://github.com/ClickHouse/ClickHouse/pull/47854) ([Azat Khuzhin](https://github.com/azat)).
* Corrige la verificación de monotonía de DateTime para tipos LowCardinality [#47860](https://github.com/ClickHouse/ClickHouse/pull/47860) ([Antonio Andelic](https://github.com/antonio2368)).
* Usa restore\_threads (no backup\_threads) en RESTORE ASYNC [#47861](https://github.com/ClickHouse/ClickHouse/pull/47861) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige DROP COLUMN en ReplicatedMergeTree con proyecciones [#47883](https://github.com/ClickHouse/ClickHouse/pull/47883) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrección de la recuperación de la base de datos Replicated [#47901](https://github.com/ClickHouse/ClickHouse/pull/47901) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrección de emergencia para advertencias demasiado detalladas en HTTP [#47903](https://github.com/ClickHouse/ClickHouse/pull/47903) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corregido "Valor del campo demasiado largo" en `catboostEvaluate` [#47970](https://github.com/ClickHouse/ClickHouse/pull/47970) ([Robert Schulze](https://github.com/rschu1ze)).
* Se corrige [#36971](https://github.com/ClickHouse/ClickHouse/issues/36971): Watchdog: salir con un código distinto de cero si el proceso hijo finaliza [#47973](https://github.com/ClickHouse/ClickHouse/pull/47973) ([Коренберг Марк](https://github.com/socketpair)).
* Solución para "el archivo de índice `cidx` es inesperadamente largo" [#48010](https://github.com/ClickHouse/ClickHouse/pull/48010) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se corrigió la consulta de MaterializedPostgreSQL para obtener atributos (replica-identity) [#48015](https://github.com/ClickHouse/ClickHouse/pull/48015) ([Solomatov Sergei](https://github.com/solomatovs)).
* parseDateTime(): Corrige UB (desbordamiento de enteros con signo) [#48019](https://github.com/ClickHouse/ClickHouse/pull/48019) ([Robert Schulze](https://github.com/rschu1ze)).
* Usar nombres únicos para los registros en Avro para evitar reutilizar su esquema [#48057](https://github.com/ClickHouse/ClickHouse/pull/48057) ([Kruglov Pavel](https://github.com/Avogar)).
* Configure correctamente los tiempos de espera de los sockets TCP/HTTP en Keeper [#48108](https://github.com/ClickHouse/ClickHouse/pull/48108) ([Antonio Andelic](https://github.com/antonio2368)).
* Se corrige una posible llamada a un método sobre un puntero nulo en el formato `Avro` [#48184](https://github.com/ClickHouse/ClickHouse/pull/48184) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="232" /> Versión de ClickHouse 23.2, 2023-02-23. [Presentación](https://presentations.clickhouse.com/2023-release-23.2/), [Vídeo](https://www.youtube.com/watch?v=2o0vRMMIrkY)

<Frame>
  <iframe src="https://www.youtube.com/embed/2o0vRMMIrkY" 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 amplía la función "toDayOfWeek()" (alias: "DAYOFWEEK") con un argumento `mode` que codifica si la semana empieza en lunes o en domingo, y si el conteo comienza en 0 o en 1. Para mantener la coherencia con otras funciones de fecha y hora, el argumento `mode` se insertó entre los argumentos de tiempo y zona horaria. Esto rompe el uso existente de la sintaxis de 2 argumentos (antes no documentada) "toDayOfWeek(time, time\_zone)". La solución es reescribir la función como "toDayOfWeek(time, 0, time\_zone)". [#45233](https://github.com/ClickHouse/ClickHouse/pull/45233) ([Robert Schulze](https://github.com/rschu1ze)).
* Se cambia el nombre del ajuste `max_query_cache_size` a `filesystem_cache_max_download_size`. [#45614](https://github.com/ClickHouse/ClickHouse/pull/45614) ([Kseniia Sumarokova](https://github.com/kssenii)).
* El usuario `default` no tendrá, de forma predeterminada, permisos para el tipo de acceso `SHOW NAMED COLLECTION` (por ejemplo, el usuario `default` ya no podrá conceder ALL a otros usuarios como ocurría antes; por lo tanto, este PR es incompatible con versiones anteriores). [#46010](https://github.com/ClickHouse/ClickHouse/pull/46010) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Si la cláusula SETTINGS se especifica antes de la cláusula FORMAT, los ajustes también se aplicarán al formato de salida. [#46003](https://github.com/ClickHouse/ClickHouse/pull/46003) ([Azat Khuzhin](https://github.com/azat)).
* Se elimina la compatibilidad con el ajuste `materialized_postgresql_allow_automatic_update` (que estaba desactivado de forma predeterminada). [#46106](https://github.com/ClickHouse/ClickHouse/pull/46106) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se mejora ligeramente el rendimiento de `countDigits` en conjuntos de datos realistas. Esto cierra [#44518](https://github.com/ClickHouse/ClickHouse/issues/44518). En versiones anteriores, `countDigits(0)` devolvía `0`; ahora devuelve `1`, lo cual es más correcto y se ajusta a la documentación existente. [#46187](https://github.com/ClickHouse/ClickHouse/pull/46187) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* No se permite crear nuevas columnas comprimidas con una combinación de códecs "Delta" o "DoubleDelta", seguidos de los códecs "Gorilla" o "FPC". Esto puede evitarse usando el ajuste "allow\_suspicious\_codecs = true". [#45652](https://github.com/ClickHouse/ClickHouse/pull/45652) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Se añade `StorageIceberg` y la función de tabla `iceberg` para acceder al almacenamiento de tablas Iceberg en S3. [#45384](https://github.com/ClickHouse/ClickHouse/pull/45384) ([flynn](https://github.com/ucasfl)).
* Permite configurar el almacenamiento con `SETTINGS disk = '<disk_name>'` (en lugar de `storage_policy`) y mediante la creación explícita de discos con `SETTINGS disk = disk(type=s3, ...)`. [#41976](https://github.com/ClickHouse/ClickHouse/pull/41976) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Exponer los contadores `ProfileEvents` en `system.part_log`. [#38614](https://github.com/ClickHouse/ClickHouse/pull/38614) ([Bharat Nallan](https://github.com/bharatnc)).
* Ampliación del motor `ReplacingMergeTree` existente para permitir inserciones duplicadas. Combina la potencia de `ReplacingMergeTree` y `CollapsingMergeTree` en un único motor MergeTree. Los datos eliminados no se devuelven al consultarlos, pero tampoco se eliminan del disco. [#41005](https://github.com/ClickHouse/ClickHouse/pull/41005) ([youennL-cs](https://github.com/youennL-cs)).
* Se añade la función `generateULID`. Se cierra [#36536](https://github.com/ClickHouse/ClickHouse/issues/36536). [#44662](https://github.com/ClickHouse/ClickHouse/pull/44662) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añade la función de agregación `corrMatrix`, que calcula cada par de columnas. Además, como las funciones de agregación `covarSamp` y `covarPop` son similares a `corr`, también se añaden `covarSampMatrix` y `covarPopMatrix`. @alexey-milovidov cierra [#44587](https://github.com/ClickHouse/ClickHouse/issues/44587). [#44680](https://github.com/ClickHouse/ClickHouse/pull/44680) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Se incorpora la función arrayShuffle para generar permutaciones aleatorias de arrays. [#45271](https://github.com/ClickHouse/ClickHouse/pull/45271) ([Joanna Hulboj](https://github.com/jh0x)).
* Se admiten los tipos `FIXED_SIZE_BINARY` en Arrow y `FIXED_LENGTH_BYTE_ARRAY` en `Parquet`, que se corresponden con `FixedString`. Se añaden las Settings `output_format_parquet_fixed_string_as_fixed_byte_array/output_format_arrow_fixed_string_as_fixed_byte_array` para controlar el tipo de salida predeterminado de `FixedString`. Cierra [#45326](https://github.com/ClickHouse/ClickHouse/issues/45326). [#45340](https://github.com/ClickHouse/ClickHouse/pull/45340) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió una nueva columna `last_exception_time` a system.replication\_queue. [#45457](https://github.com/ClickHouse/ClickHouse/pull/45457) ([Frank Chen](https://github.com/FrankChen021)).
* Se añaden dos nuevas funciones que permiten usar claves/semillas definidas por el usuario con SipHash{64,128}. [#45513](https://github.com/ClickHouse/ClickHouse/pull/45513) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Se permite una versión de tres argumentos para la función de tabla `format`. Cierra [#45808](https://github.com/ClickHouse/ClickHouse/issues/45808). [#45873](https://github.com/ClickHouse/ClickHouse/pull/45873) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Añadida compatibilidad con el formato `JodaTime` para 'x','w','S'. Consulte [https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html). [#46073](https://github.com/ClickHouse/ClickHouse/pull/46073) ([zk\_kiger](https://github.com/zk-kiger)).
* Se admite la función de ventana `ntile`. ([lgbo](https://github.com/lgbo-ustc)).
* Añadir la configuración `final` para aplicar implícitamente el modificador `FINAL` a todas las tablas. [#40945](https://github.com/ClickHouse/ClickHouse/pull/40945) ([Arthur Passos](https://github.com/arthurpassos)).
* Se agregaron las funciones `arrayPartialSort` y `arrayPartialReverseSort`. [#46296](https://github.com/ClickHouse/ClickHouse/pull/46296) ([Joanna Hulboj](https://github.com/jh0x)).
* El nuevo parámetro HTTP `client_protocol_version` permite establecer una versión del protocolo de cliente para las respuestas HTTP en Native format. [#40397](https://github.com/ClickHouse/ClickHouse/issues/40397). [#46360](https://github.com/ClickHouse/ClickHouse/pull/46360) ([Geoff Genz](https://github.com/genzgd)).
* Se agregó la nueva función `regexpExtract`, como la función de Spark `REGEXP_EXTRACT`, por compatibilidad. Es similar a la función existente `extract`. [#46469](https://github.com/ClickHouse/ClickHouse/pull/46469) ([李扬](https://github.com/taiyang-li)).
* Añade la nueva función `JSONArrayLength`, que devuelve el número de elementos del JSON array de nivel superior. La función devuelve NULL si la cadena JSON de entrada no es válida. [#46631](https://github.com/ClickHouse/ClickHouse/pull/46631) ([李扬](https://github.com/taiyang-li)).

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

* La lógica introducida funciona si la condición PREWHERE es una conjunción de múltiples condiciones (cond1 AND cond2 AND ... ). Agrupa en pasos aquellas condiciones que requieren leer las mismas columnas. Después de cada paso, se calcula la parte correspondiente de la condición completa y se pueden filtrar las filas resultantes. Esto permite leer menos filas en los pasos siguientes, lo que ahorra ancho de banda de IO y reduce el cómputo necesario. Por ahora, esta lógica está deshabilitada de forma predeterminada. Se habilitará de forma predeterminada en uno de los próximos releases una vez que se confirme que no provoca regresiones, por lo que se recomienda encarecidamente usarla para realizar pruebas. Puede controlarse con 2 configuraciones: "enable\_multiple\_prewhere\_read\_steps" y "move\_all\_conditions\_to\_prewhere". [#46140](https://github.com/ClickHouse/ClickHouse/pull/46140) ([Alexander Gololobov](https://github.com/davenger)).
* Se añadió una opción para agregar particiones de forma independiente si la clave de partición de la tabla y la clave de agrupación son compatibles. Se controla mediante la configuración `allow_aggregate_partitions_independently`. Está deshabilitada de forma predeterminada debido a su aplicabilidad limitada (consulte la documentación). [#45364](https://github.com/ClickHouse/ClickHouse/pull/45364) ([Nikita Taranov](https://github.com/nickitat)).
* Se permite usar el algoritmo de fusión vertical con partes en formato Compact. Esto permitirá que el servidor de ClickHouse use mucha menos memoria para las operaciones en segundo plano. Con esto se cierra [#46084](https://github.com/ClickHouse/ClickHouse/issues/46084). [#45681](https://github.com/ClickHouse/ClickHouse/pull/45681) [#46282](https://github.com/ClickHouse/ClickHouse/pull/46282) ([Anton Popov](https://github.com/CurtizJ)).
* Optimiza el lector de `Parquet` utilizando un lector por lotes. [#45878](https://github.com/ClickHouse/ClickHouse/pull/45878) ([LiuNeng](https://github.com/liuneng1994)).
* Se añade el nuevo método `io_uring` para `local_filesystem_read_method`, basado en el subsistema asíncrono de Linux [io\_uring](https://kernel.dk/io_uring.pdf), que mejora el rendimiento de lectura casi de forma generalizada en comparación con el método predeterminado `pread`. [#38456](https://github.com/ClickHouse/ClickHouse/pull/38456) ([Saulius Valatka](https://github.com/sauliusvl)).
* Reescritura de funciones de agregación que tienen la expresión `if` como argumento cuando son lógicamente equivalentes. Por ejemplo, `avg(if(cond, col, null))` se puede reescribir como avgIf(cond, col). Esto mejora el rendimiento. [#44730](https://github.com/ClickHouse/ClickHouse/pull/44730) ([李扬](https://github.com/taiyang-li)).
* Mejora el rendimiento de las funciones lower/upper con instrucciones AVX512. [#37894](https://github.com/ClickHouse/ClickHouse/pull/37894) ([yaqi-zhao](https://github.com/yaqi-zhao)).
* Se elimina la limitación por la que, en sistemas con >=32 núcleos y SMT deshabilitado, ClickHouse usa solo la mitad de los núcleos (como cuando se desactiva Hyper Threading en la BIOS). [#44973](https://github.com/ClickHouse/ClickHouse/pull/44973) ([Robert Schulze](https://github.com/rschu1ze)).
* Mejora el rendimiento de la función `multiIf` mediante la ejecución columnar, con una aceleración de 2,3x. [#45296](https://github.com/ClickHouse/ClickHouse/pull/45296) ([李扬](https://github.com/taiyang-li)).
* Añadir una vía rápida para la función `position` cuando la subcadena buscada está vacía. [#45382](https://github.com/ClickHouse/ClickHouse/pull/45382) ([李扬](https://github.com/taiyang-li)).
* Se habilita la optimización `query_plan_remove_redundant_sorting` de forma predeterminada. Optimización implementada en [#45420](https://github.com/ClickHouse/ClickHouse/issues/45420). [#45567](https://github.com/ClickHouse/ClickHouse/pull/45567) ([Igor Nikonov](https://github.com/devcrafter)).
* Se aumentó el tamaño de los fragmentos de HTTP Transfer Encoding para mejorar el rendimiento de las consultas grandes que usan la interfaz HTTP. [#45593](https://github.com/ClickHouse/ClickHouse/pull/45593) ([Geoff Genz](https://github.com/genzgd)).
* Se mejoró el rendimiento de las consultas `SELECT` cortas que leen de tablas con una gran cantidad de columnas `Array`/`Map`/`Nested`. [#45630](https://github.com/ClickHouse/ClickHouse/pull/45630) ([Anton Popov](https://github.com/CurtizJ)).
* Mejora del rendimiento del filtrado para enteros grandes y tipos Decimal. [#45949](https://github.com/ClickHouse/ClickHouse/pull/45949) ([李扬](https://github.com/taiyang-li)).
* Este cambio podría reducir eficazmente la sobrecarga de obtener el filtro de ColumnNullable(UInt8) y mejorar el rendimiento general de las consultas. Para evaluar el impacto de este cambio, utilizamos el benchmark TPC-H, pero cambiamos los tipos de columna de no anulables a anulables y medimos el QPS de sus consultas como indicador de rendimiento. [#45962](https://github.com/ClickHouse/ClickHouse/pull/45962) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Hacer que las columnas virtuales `_part` y `_partition_id` sean de tipo `LowCardinality(String)`. Cierra [#45964](https://github.com/ClickHouse/ClickHouse/issues/45964). [#45975](https://github.com/ClickHouse/ClickHouse/pull/45975) ([flynn](https://github.com/ucasfl)).
* Mejora del rendimiento en la conversión de Decimal cuando la escala no cambia. [#46095](https://github.com/ClickHouse/ClickHouse/pull/46095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite aumentar la precarga en la lectura de datos. [#46168](https://github.com/ClickHouse/ClickHouse/pull/46168) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reescritura de `arrayExists(x -> x = 1, arr)` -> `has(arr, 1)`, lo que mejora el rendimiento en 1.34x. [#46188](https://github.com/ClickHouse/ClickHouse/pull/46188) ([李扬](https://github.com/taiyang-li)).
* Corrige el consumo excesivo de memoria en las fusiones verticales sobre disco no remoto. Respeta `max_insert_delayed_streams_for_parallel_write` para el disco remoto. [#46275](https://github.com/ClickHouse/ClickHouse/pull/46275) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se actualizó zstd a v1.5.4. Incluye algunas mejoras menores en el rendimiento y la tasa de compresión. Si ejecuta réplicas con distintas versiones de ClickHouse, puede que vea mensajes de error apropiados `Data after merge/mutation is not byte-identical to data on another replicas.` con una explicación. Estos mensajes son normales y no debe preocuparse. [#46280](https://github.com/ClickHouse/ClickHouse/pull/46280) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige la degradación del rendimiento provocada por [#39737](https://github.com/ClickHouse/ClickHouse/issues/39737). [#46309](https://github.com/ClickHouse/ClickHouse/pull/46309) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* El controlador `replicas_status` responderá rápidamente incluso si la cola de replicación es grande. [#46310](https://github.com/ClickHouse/ClickHouse/pull/46310) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añade compatibilidad con avx512 para la función de agregación `sum` y para las funciones aritméticas unarias y de comparación. [#37870](https://github.com/ClickHouse/ClickHouse/pull/37870) ([zhao zhou](https://github.com/zzachimed)).
* Se reescribió el código relacionado con la distribución de marks y la coordinación global de la lectura para lograr la máxima mejora del rendimiento. Esto cierra [#34527](https://github.com/ClickHouse/ClickHouse/issues/34527). [#43772](https://github.com/ClickHouse/ClickHouse/pull/43772) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Elimina cláusulas DISTINCT redundantes en las consultas (subconsultas). Implementado a nivel del plan de consulta. Realiza una optimización similar a `optimize_duplicate_order_by_and_distinct` en lo que respecta a las cláusulas DISTINCT. Se puede habilitar mediante la configuración `query_plan_remove_redundant_distinct`. Relacionado con [#42648](https://github.com/ClickHouse/ClickHouse/issues/42648). [#44176](https://github.com/ClickHouse/ClickHouse/pull/44176) ([Igor Nikonov](https://github.com/devcrafter)).
* Algunas optimizaciones de reescritura de consultas: `sumIf(123, cond) -> 123 * countIf(1, cond)`, `sum(if(cond, 123, 0)) -> 123 * countIf(cond)`, `sum(if(cond, 0, 123)) -> 123 * countIf(not(cond))` [#44728](https://github.com/ClickHouse/ClickHouse/pull/44728) ([李扬](https://github.com/taiyang-li)).
* Se mejoró la interacción entre la fusión limitada por memoria y la agregación In order en el plan de consulta de nivel superior. Antes, en algunos casos se recurría a una ordenación explícita para AIO cuando en realidad no era necesaria. [#45892](https://github.com/ClickHouse/ClickHouse/pull/45892) ([Nikita Taranov](https://github.com/nickitat)).
* Las fusiones concurrentes se programan mediante round-robin de forma predeterminada para garantizar un funcionamiento equitativo y sin inanición. Anteriormente, en segmentos muy sobrecargados, las fusiones grandes podían verse desplazadas por las más pequeñas debido al uso de una programación con prioridad estricta. Se añadió la opción de configuración del servidor `background_merges_mutations_scheduling_policy` para seleccionar el algoritmo de programación (`round_robin` o `shortest_task_first`). [#46247](https://github.com/ClickHouse/ClickHouse/pull/46247) ([Sergei Trifonov](https://github.com/serxa)).

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

* Se habilitan los reintentos para INSERT de forma predeterminada en caso de pérdida de la sesión de ZooKeeper. Ya lo usamos en producción. [#46308](https://github.com/ClickHouse/ClickHouse/pull/46308) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se agregó la posibilidad de ignorar claves desconocidas en objetos JSON para tuplas con nombre (`input_format_json_ignore_unknown_keys_in_named_tuple`). [#45678](https://github.com/ClickHouse/ClickHouse/pull/45678) ([Azat Khuzhin](https://github.com/azat)).
* Se admite la optimización de la cláusula `where` moviendo la expresión de la clave de ordenación a `prewhere` para consultas con `final`. [#38893](https://github.com/ClickHouse/ClickHouse/issues/38893). [#38950](https://github.com/ClickHouse/ClickHouse/pull/38950) ([hexiaoting](https://github.com/hexiaoting)).
* Añadidas nuevas métricas para las copias de seguridad: num\_processed\_files y processed\_files\_size describen el número real de archivos procesados. [#42244](https://github.com/ClickHouse/ClickHouse/pull/42244) ([Aleksandr](https://github.com/AVMusorin)).
* Se añadieron reintentos ante errores de DNS entre servidores. [#43179](https://github.com/ClickHouse/ClickHouse/pull/43179) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Mejora de Keeper: se intenta preasignar espacio en el disco para evitar problemas indeterminados por falta de espacio. Se introduce la configuración `max_log_file_size` para definir el tamaño máximo de los archivos de registro de Raft de Keeper. [#44370](https://github.com/ClickHouse/ClickHouse/pull/44370) ([Antonio Andelic](https://github.com/antonio2368)).
* Optimizar el comportamiento de la lógica de la API de retraso de réplica en caso de que la réplica sea de solo lectura. [#45148](https://github.com/ClickHouse/ClickHouse/pull/45148) ([mateng915](https://github.com/mateng0915)).
* Solicitar la contraseña de forma interactiva en clickhouse-client cuando una contraseña vacía sea incorrecta. Cierra [#46702](https://github.com/ClickHouse/ClickHouse/issues/46702). [#46730](https://github.com/ClickHouse/ClickHouse/pull/46730) ([Nikolay Degterinsky](https://github.com/evillique)).
* Marcar como sospechosa la compresión `Gorilla` en columnas de tipo distinto de `Float*`. [#45376](https://github.com/ClickHouse/ClickHouse/pull/45376) ([Robert Schulze](https://github.com/rschu1ze)).
* Mostrar el nombre de la réplica que está ejecutando un merge en la columna `postpone_reason`. [#45458](https://github.com/ClickHouse/ClickHouse/pull/45458) ([Frank Chen](https://github.com/FrankChen021)).
* Guardar la traza de pila de la excepción en part\_log. [#45459](https://github.com/ClickHouse/ClickHouse/pull/45459) ([Frank Chen](https://github.com/FrankChen021)).
* El Diccionario `regexp_tree` se ha mejorado y ahora es compatible con [https://github.com/ua-parser/uap-core](https://github.com/ua-parser/uap-core). [#45631](https://github.com/ClickHouse/ClickHouse/pull/45631) ([Han Fei](https://github.com/hanfei1991)).
* Se actualizó la verificación de `SYSTEM SYNC REPLICA`, se resuelve [#45508](https://github.com/ClickHouse/ClickHouse/issues/45508) [#45648](https://github.com/ClickHouse/ClickHouse/pull/45648) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se cambió el nombre de la configuración `replication_alter_partitions_sync` a `alter_sync`. [#45659](https://github.com/ClickHouse/ClickHouse/pull/45659) ([Antonio Andelic](https://github.com/antonio2368)).
* La función de tabla `generateRandom` y el motor ahora admiten tipos de datos `LowCardinality`. Esto resulta útil para hacer pruebas; por ejemplo, puede escribir `INSERT INTO table SELECT * FROM generateRandom() LIMIT 1000`. Esto es necesario para depurar [#45590](https://github.com/ClickHouse/ClickHouse/issues/45590). [#45661](https://github.com/ClickHouse/ClickHouse/pull/45661) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La caché experimental de resultados de consultas ahora ofrece opciones de configuración más modulares. [#45679](https://github.com/ClickHouse/ClickHouse/pull/45679) ([Robert Schulze](https://github.com/rschu1ze)).
* Se renombró "caché de resultados de consultas" a "caché de consultas". [#45682](https://github.com/ClickHouse/ClickHouse/pull/45682) ([Robert Schulze](https://github.com/rschu1ze)).
* se añade el comando `SYSTEM SYNC FILE CACHE`. Ejecuta la llamada al sistema `sync`. [#8921](https://github.com/ClickHouse/ClickHouse/issues/8921). [#45685](https://github.com/ClickHouse/ClickHouse/pull/45685) ([DR](https://github.com/freedomDR)).
* Agrega una nueva configuración de S3 `allow_head_object_request`. Esta PR hace opcional el uso de la solicitud `GetObjectAttributes` en lugar de `HeadObject`, introducido en [https://github.com/ClickHouse/ClickHouse/pull/45288](https://github.com/ClickHouse/ClickHouse/pull/45288) (y deshabilitado de forma predeterminada). [#45701](https://github.com/ClickHouse/ClickHouse/pull/45701) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añadió la capacidad de aplicar sobrescrituras a la configuración de conexión según los nombres de las conexiones (es decir, que ahora puedes olvidarte de almacenar una contraseña para cada conexión; simplemente puedes ponerlo todo en `~/.clickhouse-client/config.xml` e incluso usar distintos archivos de historial para ellas, lo que también puede ser útil). [#45715](https://github.com/ClickHouse/ClickHouse/pull/45715) ([Azat Khuzhin](https://github.com/azat)).
* Formato Arrow: compatibilidad con el tipo `duration`. Cierra [#45669](https://github.com/ClickHouse/ClickHouse/issues/45669). [#45750](https://github.com/ClickHouse/ClickHouse/pull/45750) ([flynn](https://github.com/ucasfl)).
* Se amplía el registro detallado en la caché de consultas para mejorar la investigación del comportamiento de la caché. [#45751](https://github.com/ClickHouse/ClickHouse/pull/45751) ([Robert Schulze](https://github.com/rschu1ze)).
* Los ajustes de la caché de consultas a nivel de servidor ahora pueden reconfigurarse en tiempo de ejecución. [#45758](https://github.com/ClickHouse/ClickHouse/pull/45758) ([Robert Schulze](https://github.com/rschu1ze)).
* Ocultar la contraseña en los logs cuando los argumentos de una función de tabla se especifican mediante una colección con nombre. [#45774](https://github.com/ClickHouse/ClickHouse/pull/45774) ([Vitaly Baranov](https://github.com/vitlibar)).
* Mejora del cliente interno de S3 para deducir correctamente las regiones y las redirecciones en distintos tipos de URL. [#45783](https://github.com/ClickHouse/ClickHouse/pull/45783) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añade compatibilidad con los tipos Map, IPv4 e IPv6 en generateRandom. Resulta útil principalmente para pruebas. [#45785](https://github.com/ClickHouse/ClickHouse/pull/45785) ([Raúl Marín](https://github.com/Algunenano)).
* Soporte para empty/notEmpty en tipos IP. [#45799](https://github.com/ClickHouse/ClickHouse/pull/45799) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* La columna `num_processed_files` se dividió en dos: `num_files` (para BACKUP) y `files_read` (para RESTORE). La columna `processed_files_size` se dividió en dos: `total_size` (para BACKUP) y `bytes_read` (para RESTORE). [#45800](https://github.com/ClickHouse/ClickHouse/pull/45800) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añadió compatibilidad con la consulta `SHOW ENGINES` por compatibilidad con MySQL. [#45859](https://github.com/ClickHouse/ClickHouse/pull/45859) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Se mejoró la forma en que el ofuscador maneja las consultas. [#45867](https://github.com/ClickHouse/ClickHouse/pull/45867) ([Raúl Marín](https://github.com/Algunenano)).
* Mejora del comportamiento de la conversión a Date para el valor límite 65535 (2149-06-06). [#46042](https://github.com/ClickHouse/ClickHouse/pull/46042) [#45914](https://github.com/ClickHouse/ClickHouse/pull/45914) ([Joanna Hulboj](https://github.com/jh0x)).
* Añade la configuración `check_referential_table_dependencies` para comprobar las dependencias referenciales al ejecutar `DROP TABLE`. Este PR resuelve [#38326](https://github.com/ClickHouse/ClickHouse/issues/38326). [#45936](https://github.com/ClickHouse/ClickHouse/pull/45936) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corregir `tupleElement` para que devuelva `Null` si recibe un argumento `Null`. Cierra [#45894](https://github.com/ClickHouse/ClickHouse/issues/45894). [#45952](https://github.com/ClickHouse/ClickHouse/pull/45952) ([flynn](https://github.com/ucasfl)).
* Generar un error cuando no haya archivos que coincidan con el comodín de S3. Cierra [#45587](https://github.com/ClickHouse/ClickHouse/issues/45587). [#45957](https://github.com/ClickHouse/ClickHouse/pull/45957) ([chen](https://github.com/xiedeyantu)).
* Usa datos del estado del clúster para comprobar copias de seguridad/restauraciones concurrentes. [#45982](https://github.com/ClickHouse/ClickHouse/pull/45982) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* ClickHouse Client: Usa coincidencias "exactas" para la búsqueda difusa, con una insensibilidad correcta a mayúsculas y minúsculas y un algoritmo más adecuado para hacer coincidir consultas SQL. [#46000](https://github.com/ClickHouse/ClickHouse/pull/46000) ([Azat Khuzhin](https://github.com/azat)).
* Se prohíbe la sintaxis incorrecta de create View `CREATE View X TO Y AS SELECT`. Cierra [#4331](https://github.com/ClickHouse/ClickHouse/issues/4331). [#46043](https://github.com/ClickHouse/ClickHouse/pull/46043) ([flynn](https://github.com/ucasfl)).
* La familia Storage `Log` admite la configuración de `storage_policy`. Cierra [#43421](https://github.com/ClickHouse/ClickHouse/issues/43421). [#46044](https://github.com/ClickHouse/ClickHouse/pull/46044) ([flynn](https://github.com/ucasfl)).
* Mejora del formato `JSONColumns` cuando el resultado está vacío. Cierra [#46024](https://github.com/ClickHouse/ClickHouse/issues/46024). [#46053](https://github.com/ClickHouse/ClickHouse/pull/46053) ([flynn](https://github.com/ucasfl)).
* Se añadió una implementación de referencia para SipHash128. [#46065](https://github.com/ClickHouse/ClickHouse/pull/46065) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Añadir una nueva métrica para registrar los tiempos y bytes de asignación usando mmap. [#46068](https://github.com/ClickHouse/ClickHouse/pull/46068) ([李扬](https://github.com/taiyang-li)).
* Actualmente, en funciones como `leftPad`, `rightPad`, `leftPadUTF8` y `rightPadUTF8`, el segundo argumento `length` debe ser UInt8|16|32|64|128|256. Esto es demasiado restrictivo para los usuarios de ClickHouse y, además, no es coherente con otras funciones similares, como `arrayResize`, `substring`, etc. [#46103](https://github.com/ClickHouse/ClickHouse/pull/46103) ([李扬](https://github.com/taiyang-li)).
* Se corrigió una aserción en la función `welchTTest` en una compilación de depuración cuando la estadística resultante es NaN. Se unificó su comportamiento con el de otras funciones similares. Se cambió el comportamiento de `studentTTest` para que devuelva NaN en lugar de lanzar una excepción, ya que el comportamiento anterior resultaba inconveniente. Esto cierra [#41176](https://github.com/ClickHouse/ClickHouse/issues/41176). Esto cierra [#42162](https://github.com/ClickHouse/ClickHouse/issues/42162). [#46141](https://github.com/ClickHouse/ClickHouse/pull/46141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Uso más cómodo de enteros grandes y ORDER BY WITH FILL. Se permite usar enteros simples para los puntos de inicio y fin en WITH FILL al usar ORDER BY con enteros grandes (de 128 y 256 bits). Se corrige el resultado incorrecto para enteros grandes con puntos de inicio o fin negativos. Esto cierra [#16733](https://github.com/ClickHouse/ClickHouse/issues/16733). [#46152](https://github.com/ClickHouse/ClickHouse/pull/46152) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadieron las columnas `parts`, `active_parts` y `total_marks` a `system.tables` en la [incidencia](https://github.com/ClickHouse/ClickHouse/issues/44336). [#46161](https://github.com/ClickHouse/ClickHouse/pull/46161) ([attack204](https://github.com/attack204)).
* Las funciones "multi\[Fuzzy]Match(Any|AnyIndex|AllIndices}" ahora rechazan expresiones regulares que probablemente tengan una evaluación muy lenta en vectorscan. [#46167](https://github.com/ClickHouse/ClickHouse/pull/46167) ([Robert Schulze](https://github.com/rschu1ze)).
* Cuando `insert_null_as_default` está habilitado y la columna no tiene un valor predeterminado definido, se usará el valor predeterminado del tipo de la columna. Además, este PR corrige el uso de valores predeterminados para valores nulos en el caso de las columnas LowCardinality. [#46171](https://github.com/ClickHouse/ClickHouse/pull/46171) ([Kruglov Pavel](https://github.com/Avogar)).
* Se prefieren las claves de acceso definidas explícitamente para los clientes de S3. Si `use_environment_credentials` se establece en `true` y el usuario ha proporcionado la clave de acceso mediante una consulta o la configuración, se utilizará en lugar de la de la variable de entorno. [#46191](https://github.com/ClickHouse/ClickHouse/pull/46191) ([Antonio Andelic](https://github.com/antonio2368)).
* Se añade un alias "DATE\_FORMAT()" para la función "formatDateTime()" con el fin de mejorar la compatibilidad con el dialecto SQL de MySQL; se amplía la función `formatDateTime` con las sustituciones "a", "b", "c", "h", "i", "k", "l" "r", "s", "W". ### Entrada de documentación para cambios visibles para el usuario Descripción breve para el usuario: `DATE_FORMAT` es un alias de `formatDateTime`. Formatea un valor de tiempo según la cadena de formato indicada. El formato es una expresión constante, por lo que no se pueden usar varios formatos para una sola columna de resultados. (Incluya un enlace a [formatDateTime](/es/reference/functions/regular-functions/date-time-functions#formatDateTime)). [#46302](https://github.com/ClickHouse/ClickHouse/pull/46302) ([Jake Bamrah](https://github.com/JakeBamrah)).
* Añade `ProfileEvents` y `CurrentMetrics` sobre las tareas de callback de las réplicas paralelas (tablas `s3Cluster` y `MergeTree`). [#46313](https://github.com/ClickHouse/ClickHouse/pull/46313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Añade soporte para `DELETE` y `UPDATE` en tablas que usan el motor de almacenamiento `KeeperMap`. [#46330](https://github.com/ClickHouse/ClickHouse/pull/46330) ([Antonio Andelic](https://github.com/antonio2368)).
* Se permite escribir consultas RENAME con parámetros de consulta. Resuelve [#45778](https://github.com/ClickHouse/ClickHouse/issues/45778). [#46407](https://github.com/ClickHouse/ClickHouse/pull/46407) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige las consultas `SELECT` parametrizadas con el transformador `REPLACE`. Soluciona [#33002](https://github.com/ClickHouse/ClickHouse/issues/33002). [#46420](https://github.com/ClickHouse/ClickHouse/pull/46420) ([Nikolay Degterinsky](https://github.com/evillique)).
* Excluir de la métrica asíncrona "NumberOfDatabases" la base de datos interna utilizada para las tablas temporales/externas. Esto hace que el comportamiento sea consistente con la tabla del sistema "system.databases". [#46435](https://github.com/ClickHouse/ClickHouse/pull/46435) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió la columna `last_exception_time` a la tabla distribution\_queue. [#46564](https://github.com/ClickHouse/ClickHouse/pull/46564) ([Aleksandr](https://github.com/AVMusorin)).
* Compatibilidad con parámetros en la cláusula IN de vistas parametrizadas. [#46583](https://github.com/ClickHouse/ClickHouse/pull/46583) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* No cargar las named collections al iniciar el servidor (cargarlas en el primer acceso). [#46607](https://github.com/ClickHouse/ClickHouse/pull/46607) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Se introduce GWP-ASan, implementado por el runtime de LLVM. Esto cierra [#27039](https://github.com/ClickHouse/ClickHouse/issues/27039). [#45226](https://github.com/ClickHouse/ClickHouse/pull/45226) ([Han Fei](https://github.com/hanfei1991)).
* Queremos hacer que nuestras pruebas sean menos estables y más propensas a fallos intermitentes: se añade aleatorización a la configuración de MergeTree en las pruebas. [#38983](https://github.com/ClickHouse/ClickHouse/pull/38983) ([Anton Popov](https://github.com/CurtizJ)).
* Se habilita la compatibilidad con HDFS en PowerPC, lo que ayuda a corregir las siguientes pruebas funcionales: 02113\_hdfs\_assert.sh, 02244\_hdfs\_cluster.sql y 02368\_cancel\_write\_into\_hdfs.sh. [#44949](https://github.com/ClickHouse/ClickHouse/pull/44949) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Se añade el archivo systemd.service para clickhouse-keeper. Corrige [#44293](https://github.com/ClickHouse/ClickHouse/issues/44293). [#45568](https://github.com/ClickHouse/ClickHouse/pull/45568) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* El fork de poco de ClickHouse se movió de "contrib/" a "base/poco/". [#46075](https://github.com/ClickHouse/ClickHouse/pull/46075) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añade una opción para que `clickhouse-watchdog` reinicie el proceso hijo. Esto no tiene mucha utilidad. [#46312](https://github.com/ClickHouse/ClickHouse/pull/46312) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Si la variable de entorno `CLICKHOUSE_DOCKER_RESTART_ON_EXIT` está configurada en 1, el contenedor de Docker ejecutará `clickhouse-server` como proceso hijo en lugar de como proceso principal, y lo reiniciará cuando termine. [#46391](https://github.com/ClickHouse/ClickHouse/pull/46391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrige el archivo de servicio de systemd. [#46461](https://github.com/ClickHouse/ClickHouse/pull/46461) ([SuperDJY](https://github.com/cmsxbc)).
* Se elevó la versión mínima de Clang necesaria para compilar ClickHouse de 12 a 15. [#46710](https://github.com/ClickHouse/ClickHouse/pull/46710) ([Robert Schulze](https://github.com/rschu1ze)).
* Se actualiza Intel QPL de v0.3.0 a v1.0.0. Se compila libaccel-config y se enlaza estáticamente con la biblioteca QPL en lugar de hacerlo dinámicamente. [#45809](https://github.com/ClickHouse/ClickHouse/pull/45809) ([jasperzhu](https://github.com/jinjunzh)).

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

* Realiza el volcado de datos exactamente según `rabbitmq_flush_interval_ms` o `rabbitmq_max_block_size` en `StorageRabbitMQ`. Cierra [#42389](https://github.com/ClickHouse/ClickHouse/issues/42389). Cierra [#45160](https://github.com/ClickHouse/ClickHouse/issues/45160). [#44404](https://github.com/ClickHouse/ClickHouse/pull/44404) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Usa PODArray para renderizar en la función sparkBar, de modo que se pueda controlar el uso de memoria. Cierra [#44467](https://github.com/ClickHouse/ClickHouse/issues/44467). [#44489](https://github.com/ClickHouse/ClickHouse/pull/44489) ([Duc Canh Le](https://github.com/canhld94)).
* Se corrigió: las funciones (quantilesExactExclusive, quantilesExactInclusive) devuelven un elemento de Array no ordenado. [#45379](https://github.com/ClickHouse/ClickHouse/pull/45379) ([wujunfu](https://github.com/wujunfu)).
* Se corrigió una excepción no controlada en HTTPHandler cuando OpenTelemetry está habilitado. [#45456](https://github.com/ClickHouse/ClickHouse/pull/45456) ([Frank Chen](https://github.com/FrankChen021)).
* No infiera fechas a partir de números de 8 dígitos. Podría provocar que se leyeran datos incorrectos. [#45581](https://github.com/ClickHouse/ClickHouse/pull/45581) ([Kruglov Pavel](https://github.com/Avogar)).
* Correcciones para usar correctamente la opción `odbc_bridge_use_connection_pooling`. [#45591](https://github.com/ClickHouse/ClickHouse/pull/45591) ([Bharat Nallan](https://github.com/bharatnc)).
* Cuando se invoca el callback de la caché, es posible que esta se destruya. Para mantenerla segura, capturamos los miembros por valor. Esto también es seguro para la planificación de tareas, porque se desactivará antes de que se destruya el almacenamiento. Resuelve [#45548](https://github.com/ClickHouse/ClickHouse/issues/45548). [#45601](https://github.com/ClickHouse/ClickHouse/pull/45601) ([Han Fei](https://github.com/hanfei1991)).
* Se corrige la corrupción de datos cuando los códecs Delta o DoubleDelta se combinan con el códec Gorilla. [#45615](https://github.com/ClickHouse/ClickHouse/pull/45615) ([Robert Schulze](https://github.com/rschu1ze)).
* Comprobar correctamente los tipos al usar el índice bloom filter de n-gramas para evitar lecturas no válidas. [#45617](https://github.com/ClickHouse/ClickHouse/pull/45617) ([Antonio Andelic](https://github.com/antonio2368)).
* Se han reportado un par de fallos de segmentación relacionados con `c-ares`. Se introdujeron en mis pull requests anteriores. Los he corregido con la ayuda de Alexander Tokmakov. [#45629](https://github.com/ClickHouse/ClickHouse/pull/45629) ([Arthur Passos](https://github.com/arthurpassos)).
* Corregir la descripción de la clave cuando se encuentren claves primarias duplicadas. Esto puede ocurrir en las proyecciones. Consulte [#45590](https://github.com/ClickHouse/ClickHouse/issues/45590) para más detalles. [#45686](https://github.com/ClickHouse/ClickHouse/pull/45686) ([Amos Bird](https://github.com/amosbird)).
* Establece el método y el nivel de compresión para las copias de seguridad. Cierra [#45690](https://github.com/ClickHouse/ClickHouse/issues/45690). [#45737](https://github.com/ClickHouse/ClickHouse/pull/45737) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Debe usarse `select_query_typed.limitByOffset` en lugar de `select_query_typed.limitOffset`. [#45817](https://github.com/ClickHouse/ClickHouse/pull/45817) ([刘陶峰](https://github.com/taofengliu)).
* Al usar el analyzer experimental, las consultas como `SELECT number FROM numbers(100) LIMIT 10 OFFSET 10;` devuelven resultados incorrectos (resultado vacío para esta consulta SQL). Esto se debe a un paso OFFSET innecesario añadido por el planner. [#45822](https://github.com/ClickHouse/ClickHouse/pull/45822) ([刘陶峰](https://github.com/taofengliu)).
* Compatibilidad con versiones anteriores: permitir la conversión implícita con pérdida de información de UInt64 a IPv4, necesaria para la expresión "INSERT ... VALUES ...". [#45865](https://github.com/ClickHouse/ClickHouse/pull/45865) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrección del parser de IPv6 para direcciones IPv4 mixtas sin el primer octeto (como `::.1.2.3`). [#45871](https://github.com/ClickHouse/ClickHouse/pull/45871) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Añade la columna `query_kind` a la tabla `system.processes` y a la consulta `SHOW PROCESSLIST`. Elimina el código duplicado. Esto corrige un error: el parámetro de configuración global `max_concurrent_select_queries` no se aplicaba a las consultas con cadenas `INTERSECT` o `EXCEPT`. [#45872](https://github.com/ClickHouse/ClickHouse/pull/45872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un fallo en la función `stochasticLinearRegression` que provocaba un cierre inesperado. Detectado por WingFuzz. [#45985](https://github.com/ClickHouse/ClickHouse/pull/45985) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un fallo en las consultas `SELECT` con los modificadores `INTERSECT` y `EXCEPT` que leen datos de tablas con columnas dispersas activadas (controlado por la configuración `ratio_of_defaults_for_sparse_serialization`). [#45987](https://github.com/ClickHouse/ClickHouse/pull/45987) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige la optimización de lectura en orden para la ordenación DESC con FINAL; cierra [#45815](https://github.com/ClickHouse/ClickHouse/issues/45815). [#46009](https://github.com/ClickHouse/ClickHouse/pull/46009) ([Vladimir C](https://github.com/vdimir)).
* Se corrige la lectura de columnas anidadas inexistentes de varios niveles en partes compactas. [#46045](https://github.com/ClickHouse/ClickHouse/pull/46045) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la columna elapsed en system.processes (error de 10x). [#46047](https://github.com/ClickHouse/ClickHouse/pull/46047) ([Azat Khuzhin](https://github.com/azat)).
* Corrección de seguimiento para reemplazar los tipos de dominio IP (IPv4, IPv6) por tipos nativos [https://github.com/ClickHouse/ClickHouse/pull/43221](https://github.com/ClickHouse/ClickHouse/pull/43221). [#46087](https://github.com/ClickHouse/ClickHouse/pull/46087) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige la sustitución de variables de entorno en la configuración cuando un parámetro ya tiene un valor asignado. Cierra [#46131](https://github.com/ClickHouse/ClickHouse/issues/46131). Cierra [#9547](https://github.com/ClickHouse/ClickHouse/issues/9547). [#46144](https://github.com/ClickHouse/ClickHouse/pull/46144) ([pufit](https://github.com/pufit)).
* Corrige el pushdown incorrecto de predicados con grouping sets. Cierra [#45947](https://github.com/ClickHouse/ClickHouse/issues/45947). [#46151](https://github.com/ClickHouse/ClickHouse/pull/46151) ([flynn](https://github.com/ucasfl)).
* Corrige un posible error de bloqueo del pipeline en `fulls_sorting_join` con claves constantes. [#46175](https://github.com/ClickHouse/ClickHouse/pull/46175) ([Vladimir C](https://github.com/vdimir)).
* No reescriba nunca las funciones de tupla como literales al formatear para evitar resultados incorrectos. [#46232](https://github.com/ClickHouse/ClickHouse/pull/46232) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrige un posible error por acceso fuera de los límites al leer LowCardinality(Nullable) en formato Arrow. [#46270](https://github.com/ClickHouse/ClickHouse/pull/46270) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigen los fallos de las consultas `SYSTEM UNFREEZE` con la excepción `CANNOT_PARSE_INPUT_ASSERTION_FAILED`. [#46325](https://github.com/ClickHouse/ClickHouse/pull/46325) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrige un posible fallo causado por un desbordamiento de enteros al deserializar el estado de agregación de una función que almacena HashTable. [#46349](https://github.com/ClickHouse/ClickHouse/pull/46349) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un posible `LOGICAL_ERROR` en las inserciones asíncronas con datos no válidos enviados en formato `VALUES`. [#46350](https://github.com/ClickHouse/ClickHouse/pull/46350) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió un LOGICAL\_ERROR al intentar ejecutar `ALTER ... MOVE PART ... TO TABLE`. En realidad, este tipo de consulta nunca estuvo admitido. [#46359](https://github.com/ClickHouse/ClickHouse/pull/46359) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige la inferencia de esquema de s3Cluster en operaciones distributed insert select en paralelo cuando `parallel_distributed_insert_select` está habilitado. [#46381](https://github.com/ClickHouse/ClickHouse/pull/46381) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigen consultas como `ALTER TABLE ... UPDATE nested.arr1 = nested.arr2 ...`, donde `arr1` y `arr2` son campos de la misma columna `Nested`. [#46387](https://github.com/ClickHouse/ClickHouse/pull/46387) ([Anton Popov](https://github.com/CurtizJ)).
* Es posible que el planificador no pueda programar una tarea. Si esto ocurre, debe abortarse por completo el MulityPartUpload y `UploadHelper` debe esperar a las tareas ya programadas. [#46451](https://github.com/ClickHouse/ClickHouse/pull/46451) ([Dmitry Novik](https://github.com/novikd)).
* Corrige PREWHERE para Merge con diferentes tipos predeterminados (corrige algunos `NOT_FOUND_COLUMN_IN_BLOCK` cuando el tipo predeterminado de la columna es distinto; también permite `PREWHERE` cuando el tipo de la columna es el mismo en todas las tablas y lo prohíbe solo si es distinto). [#46454](https://github.com/ClickHouse/ClickHouse/pull/46454) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un fallo que podía producirse cuando se usan valores constantes en `ORDER BY`. Corrige [#46466](https://github.com/ClickHouse/ClickHouse/issues/46466). [#46493](https://github.com/ClickHouse/ClickHouse/pull/46493) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* No se generará ninguna excepción si la configuración `disk` se especificó a nivel de consulta, pero `storage_policy` se especificó en la sección Settings de configuración de MergeTree. `disk` sobrescribirá la configuración del archivo de configuración. [#46533](https://github.com/ClickHouse/ClickHouse/pull/46533) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige el procesamiento no válido del argumento constante `LowCardinality` en la función `arrayMap`. Este error podía provocar un segfault en la compilación release y el error lógico `Bad cast` en una compilación de depuración. [#46569](https://github.com/ClickHouse/ClickHouse/pull/46569) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* soluciona [#46557](https://github.com/ClickHouse/ClickHouse/issues/46557). [#46611](https://github.com/ClickHouse/ClickHouse/pull/46611) ([Alexander Gololobov](https://github.com/davenger)).
* Se corrigen los reinicios infinitos de la unidad systemd de clickhouse-server si el servidor no puede iniciarse en 1 min 30 s (se desactiva la lógica de tiempo de espera al iniciar clickhouse-server desde el servicio systemd). [#46613](https://github.com/ClickHouse/ClickHouse/pull/46613) ([Azat Khuzhin](https://github.com/azat)).
* Los búferes de memoria asignados durante las inserciones asíncronas se liberaban en el contexto global, y los contadores de MemoryTracker para el usuario y la consulta correspondientes no se actualizaban correctamente. Eso provocaba falsas excepciones de OOM. [#46622](https://github.com/ClickHouse/ClickHouse/pull/46622) ([Dmitry Novik](https://github.com/novikd)).
* Actualizado para no borrar on\_expression de table\_join, ya que se usa en futuras ejecuciones de analyze; resuelve [#45185](https://github.com/ClickHouse/ClickHouse/issues/45185). [#46487](https://github.com/ClickHouse/ClickHouse/pull/46487) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).

### <a id="231" /> Versión de ClickHouse 23.1, 2023-01-26. [Presentación](https://presentations.clickhouse.com/2023-release-23.1/), [Vídeo](https://www.youtube.com/watch?v=zYSZXBnTMSE)

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

<div id="clickhouse-release-231">
  ### Versión de ClickHouse 23.1
</div>

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

* La consulta `SYSTEM RESTART DISK` pasa a no tener efecto. [#44647](https://github.com/ClickHouse/ClickHouse/pull/44647) ([alesapin](https://github.com/alesapin)).
* La opción `PREALLOCATE` para los diccionarios `HASHED`/`SPARSE_HASHED` pasa a no tener efecto. [#45388](https://github.com/ClickHouse/ClickHouse/pull/45388) ([Azat Khuzhin](https://github.com/azat)). Ya no aporta ventajas significativas.
* Se prohíbe el códec `Gorilla` en columnas que no sean de tipo Float32 o Float64. [#45252](https://github.com/ClickHouse/ClickHouse/pull/45252) ([Robert Schulze](https://github.com/rschu1ze)). No tenía sentido y provocaba inconsistencias.
* Las inserciones con cuórum paralelas podrían funcionar incorrectamente con tablas `*MergeTree` creadas con la sintaxis obsoleta. Por lo tanto, el soporte para las inserciones con cuórum paralelas se desactiva por completo para esas tablas. Esto no afecta a las tablas creadas con la nueva sintaxis. [#45430](https://github.com/ClickHouse/ClickHouse/pull/45430) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Utilice la solicitud `GetObjectAttributes` en lugar de la solicitud `HeadObject` para obtener el tamaño de un objeto en AWS S3. Este cambio corrige, por ejemplo, el manejo de endpoints sin regiones explícitas tras actualizar el AWS SDK. [#45288](https://github.com/ClickHouse/ClickHouse/pull/45288) ([Vitaly Baranov](https://github.com/vitlibar)). Se ha probado con AWS S3 y Minio, pero tenga en cuenta que varios servicios compatibles con S3 (GCS, R2, B2) pueden presentar incompatibilidades sutiles. Este cambio también puede requerir que ajuste la ACL para permitir la solicitud `GetObjectAttributes`.
* Se prohíben las rutas en los nombres de zonas horarias. Por ejemplo, no se permite un nombre de zona horaria como `/usr/share/zoneinfo/Asia/Aden`; debe usarse el nombre de la base de datos de zonas horarias de IANA, como `Asia/Aden`. [#44225](https://github.com/ClickHouse/ClickHouse/pull/44225) ([Kruglov Pavel](https://github.com/Avogar)).
* Se prohíben las consultas que combinan equijoin y expresiones constantes (p. ej., `JOIN ON t1.x = t2.x AND 1 = 1`) debido a resultados incorrectos. [#44016](https://github.com/ClickHouse/ClickHouse/pull/44016) ([Vladimir C](https://github.com/vdimir)).

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

* Fuente de diccionario para extraer claves recorriendo el árbol de expresiones regulares. Se puede usar para analizar User-Agent. [#40878](https://github.com/ClickHouse/ClickHouse/pull/40878) ([Vage Ogannisian](https://github.com/nooblose)). [#43858](https://github.com/ClickHouse/ClickHouse/pull/43858) ([Han Fei](https://github.com/hanfei1991)).
* Se añadió la funcionalidad de vistas parametrizadas; ahora es posible especificar parámetros de consulta para el motor de tabla View. Resuelve [#40907](https://github.com/ClickHouse/ClickHouse/issues/40907). [#41687](https://github.com/ClickHouse/ClickHouse/pull/41687) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se añaden las funciones `quantileInterpolatedWeighted`/`quantilesInterpolatedWeighted`. [#38252](https://github.com/ClickHouse/ClickHouse/pull/38252) ([Bharat Nallan](https://github.com/bharatnc)).
* Soporte de ARRAY JOIN para el tipo `Map`, como la función "explode" de Spark. [#43239](https://github.com/ClickHouse/ClickHouse/pull/43239) ([李扬](https://github.com/taiyang-li)).
* Admite literales de cadena binarios y hexadecimales estándar de SQL. [#43785](https://github.com/ClickHouse/ClickHouse/pull/43785) ([Mo Xuan](https://github.com/mo-avatar)).
* Permite formatear `DateTime` con el estilo de Joda-Time. Consulte [la documentación de Joda-Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html). [#43818](https://github.com/ClickHouse/ClickHouse/pull/43818) ([李扬](https://github.com/taiyang-li)).
* Se implementó un formateador de fracciones de segundo (`%f`) para `formatDateTime`. [#44060](https://github.com/ClickHouse/ClickHouse/pull/44060) ([ltrk2](https://github.com/ltrk2)). [#44497](https://github.com/ClickHouse/ClickHouse/pull/44497) ([Alexander Gololobov](https://github.com/davenger)).
* Se agregó la función `age` para calcular la diferencia entre dos fechas o entre fechas con valores de hora, expresada como el número de unidades completas. Cierra [#41115](https://github.com/ClickHouse/ClickHouse/issues/41115). [#44421](https://github.com/ClickHouse/ClickHouse/pull/44421) ([Robert Schulze](https://github.com/rschu1ze)).
* Se agrega la fuente `Null` para diccionarios. Cierra [#44240](https://github.com/ClickHouse/ClickHouse/issues/44240). [#44502](https://github.com/ClickHouse/ClickHouse/pull/44502) ([mayamika](https://github.com/mayamika)).
* Se permite configurar la clase de almacenamiento de S3 con la opción de configuración `s3_storage_class`. Por ejemplo, `<s3_storage_class>STANDARD/INTELLIGENT_TIERING</s3_storage_class>` Cierra [#44443](https://github.com/ClickHouse/ClickHouse/issues/44443). [#44707](https://github.com/ClickHouse/ClickHouse/pull/44707) ([chen](https://github.com/xiedeyantu)).
* Inserta valores predeterminados cuando faltan elementos en un objeto JSON al analizar una tupla con nombre. Se añade la configuración `input_format_json_defaults_for_missing_elements_in_named_tuple`, que controla este comportamiento. Cierra [#45142](https://github.com/ClickHouse/ClickHouse/issues/45142)#issuecomment-1380153217. [#45231](https://github.com/ClickHouse/ClickHouse/pull/45231) ([Kruglov Pavel](https://github.com/Avogar)).
* Registra el tiempo de arranque del servidor en ProfileEvents (`ServerStartupMilliseconds`). Resuelve [#43188](https://github.com/ClickHouse/ClickHouse/issues/43188). [#45250](https://github.com/ClickHouse/ClickHouse/pull/45250) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Refactorización y mejoras de los motores de streaming Kafka/RabbitMQ/NATS, además de compatibilidad con todos los formatos, junto con una pequeña refactorización de los formatos: - Se corrige la producción de mensajes en formatos basados en filas con sufijos/prefijos. Ahora cada mensaje se formatea por completo con todos los delimitadores y puede volver a procesarse con el formato de entrada. - Se añade compatibilidad con formatos basados en bloques como Native, Parquet, ORC, etc. Cada bloque se formatea como un mensaje independiente. El número de filas de un mensaje depende del tamaño del bloque, por lo que puede controlarse mediante la opción `max_block_size`. - Se añaden nuevos ajustes del motor `kafka_max_rows_per_message/rabbitmq_max_rows_per_message/nats_max_rows_per_message`. Controlan el número de filas formateadas en un mensaje en los formatos basados en filas. Valor predeterminado: 1. - Se corrige el alto consumo de memoria en el table engine de NATS. - Se añade compatibilidad con datos binarios arbitrarios en el productor de NATS (anteriormente solo funcionaba con cadenas que contenían \0 al final) - Se añaden a la documentación los ajustes de motor de Kafka/RabbitMQ/NATS que faltaban. - Se refactorizan la producción y el consumo en Kafka/RabbitMQ/NATS, separándolos de la semántica de WriteBuffers/ReadBuffers. - Se refactorizan los formatos de salida: se eliminan los callbacks por fila usados en Kafka/RabbitMQ/NATS (ahora ya no se usan allí), se permite usar IRowOutputFormat directamente, se aclaran los delimitadores de fin de fila y entre filas, y se hace posible restablecer el formato de salida para volver a formatear desde el principio - Se añade una implementación adecuada en la función formatRow (bonus tras la refactorización de formatos). [#42777](https://github.com/ClickHouse/ClickHouse/pull/42777) ([Kruglov Pavel](https://github.com/Avogar)).
* Compatibilidad con la lectura y escritura de tablas `Nested` como `List` de `Struct` en formato `CapnProto`. Lectura y escritura de `Decimal32/64` como `Int32/64`. Cierra [#43319](https://github.com/ClickHouse/ClickHouse/issues/43319). [#43379](https://github.com/ClickHouse/ClickHouse/pull/43379) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió una columna `message_format_string` a `system.text_log`. La columna contiene un patrón utilizado para dar formato al mensaje. [#44543](https://github.com/ClickHouse/ClickHouse/pull/44543) ([Alexander Tokmakov](https://github.com/tavplubix)). Esto permite realizar varios análisis sobre los logs de ClickHouse.
* Intentar autodetectar encabezados con nombres de columna (y, posiblemente, tipos) para los formatos de entrada CSV/TSV/CustomSeparated.
  Añadir las opciones de configuración input\_format\_tsv/csv/custom\_detect\_header que habilitan este comportamiento (habilitadas de forma predeterminada). Cierra [#44640](https://github.com/ClickHouse/ClickHouse/issues/44640). [#44953](https://github.com/ClickHouse/ClickHouse/pull/44953) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Se añadió un índice invertido experimental como nuevo tipo de índice secundario para búsquedas de texto eficientes. [#38667](https://github.com/ClickHouse/ClickHouse/pull/38667) ([larryluogit](https://github.com/larryluogit)).
* Se añadió una caché experimental de resultados de consulta. [#43797](https://github.com/ClickHouse/ClickHouse/pull/43797) ([Robert Schulze](https://github.com/rschu1ze)).
* Se añadió un subsistema de planificación extensible y configurable para solicitudes de IO (aún no integrado con el propio código de IO). [#41840](https://github.com/ClickHouse/ClickHouse/pull/41840) ([Sergei Trifonov](https://github.com/serxa)). Esta funcionalidad no hace absolutamente nada; disfrútala.
* Se añadió `SYSTEM DROP DATABASE REPLICA`, que elimina los metadatos de una réplica caída de una base de datos `Replicated`. Resuelve [#41794](https://github.com/ClickHouse/ClickHouse/issues/41794). [#42807](https://github.com/ClickHouse/ClickHouse/pull/42807) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* No cargar las partes inactivas al iniciar las tablas `MergeTree`. [#42181](https://github.com/ClickHouse/ClickHouse/pull/42181) ([Anton Popov](https://github.com/CurtizJ)).
* Se mejoró la latencia de lectura desde el almacenamiento `S3` y la función de tabla `s3` cuando hay una gran cantidad de archivos pequeños. Ahora las opciones `remote_filesystem_read_method` y `remote_filesystem_read_prefetch` surten efecto al leer desde el almacenamiento `S3`. [#43726](https://github.com/ClickHouse/ClickHouse/pull/43726) ([Anton Popov](https://github.com/CurtizJ)).
* Optimización de la lectura de campos de struct en archivos Parquet/ORC. Solo se cargan los campos necesarios. [#44484](https://github.com/ClickHouse/ClickHouse/pull/44484) ([lgbo](https://github.com/lgbo-ustc)).
* El algoritmo de agregación de dos niveles se deshabilitó por error para las consultas realizadas mediante la interfaz HTTP. Se volvió a habilitar, lo que supone una gran mejora del rendimiento. [#45450](https://github.com/ClickHouse/ClickHouse/pull/45450) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se añadió soporte para mmap en StorageFile, lo que debería mejorar el rendimiento de clickhouse-local. [#43927](https://github.com/ClickHouse/ClickHouse/pull/43927) ([pufit](https://github.com/pufit)).
* Se añadió compatibilidad con la segmentación en HashedDictionary para permitir la carga paralela (escalado casi lineal en función del número de segmentos). [#40003](https://github.com/ClickHouse/ClickHouse/pull/40003) ([Azat Khuzhin](https://github.com/azat)).
* Acelerar el análisis sintáctico de consultas. [#42284](https://github.com/ClickHouse/ClickHouse/pull/42284) ([Raúl Marín](https://github.com/Algunenano)).
* Se reemplaza siempre la cadena OR `expr = x1 OR ... OR expr = xN` por `expr IN (x1, ..., xN)` cuando `expr` es una columna `LowCardinality`. En este caso, se ignora la configuración `optimize_min_equality_disjunction_chain_length`. [#42889](https://github.com/ClickHouse/ClickHouse/pull/42889) ([Guo Wangyang](https://github.com/guowangy)).
* Mejora ligeramente el rendimiento al optimizar el código relacionado con ThreadStatus. [#43586](https://github.com/ClickHouse/ClickHouse/pull/43586) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Se optimiza la evaluación de la lógica ternaria por columnas mediante autovectorización. En la prueba de rendimiento de este [microbenchmark](https://github.com/ZhiguoZh/ClickHouse/blob/20221123-ternary-logic-opt-example/src/Functions/examples/associative_applier_perf.cpp), hemos observado una **mejora de rendimiento** de hasta **21x** en el dispositivo ICX (CPU Intel Xeon Platinum 8380). [#43669](https://github.com/ClickHouse/ClickHouse/pull/43669) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Evita, en la medida de lo posible, adquirir bloqueos de lectura en la tabla `system.tables`. [#43840](https://github.com/ClickHouse/ClickHouse/pull/43840) ([Raúl Marín](https://github.com/Algunenano)).
* Optimización de ThreadPool. Los experimentos de rendimiento de SSB (Star Schema Benchmark) en el dispositivo ICX (CPU Intel Xeon Platinum 8380, 80 núcleos, 160 threads) muestran que este cambio podría reducir eficazmente la contención de bloqueos en ThreadPoolImpl::mutex en un **75 %**, aumentando la utilización de la CPU y mejorando el rendimiento general en un **2,4 %**. [#44308](https://github.com/ClickHouse/ClickHouse/pull/44308) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Ahora, la optimización para predecir el tamaño de la tabla hash se aplica solo si el tamaño en caché de la tabla hash es lo suficientemente grande (los umbrales se determinaron empíricamente y se fijaron en el código). [#44455](https://github.com/ClickHouse/ClickHouse/pull/44455) ([Nikita Taranov](https://github.com/nickitat)).
* Pequeña mejora del rendimiento en la lectura asíncrona desde sistemas de archivos remotos. [#44868](https://github.com/ClickHouse/ClickHouse/pull/44868) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añade una vía rápida para: - `col like '%%'`; - `col like '%'`; - `col not like '%'`; - `col not like '%'`; - `match(col, '.*')`. [#45244](https://github.com/ClickHouse/ClickHouse/pull/45244) ([李扬](https://github.com/taiyang-li)).
* Ligera mejora de la optimización del caso habitual en el filtrado (cláusula WHERE). [#45289](https://github.com/ClickHouse/ClickHouse/pull/45289) ([Nikita Taranov](https://github.com/nickitat)).
* Se proporciona información sobre monotonicidad para `toUnixTimestamp64*` a fin de permitir más optimizaciones algebraicas en el análisis de índices. [#44116](https://github.com/ClickHouse/ClickHouse/pull/44116) ([Nikita Taranov](https://github.com/nickitat)).
* Permite que la configuración de los datos temporales para el procesamiento de consultas (volcado a disco) coopere con la caché del sistema de archivos (ocupando espacio del disco de caché) [#43972](https://github.com/ClickHouse/ClickHouse/pull/43972) ([Vladimir C](https://github.com/vdimir)). Esto mejora principalmente [ClickHouse Cloud](https://console.clickhouse.cloud/), pero también puede usarse en implementaciones autogestionadas, si sabes lo que haces.
* Hacer que la tabla `system.replicas` obtenga en paralelo los estados de las réplicas. Cierra [#43918](https://github.com/ClickHouse/ClickHouse/issues/43918). [#43998](https://github.com/ClickHouse/ClickHouse/pull/43998) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se optimizó el consumo de memoria durante la copia de seguridad a S3: ahora los archivos se copiarán directamente a S3 sin usar `WriteBufferFromS3` (que podía consumir mucha memoria). [#45188](https://github.com/ClickHouse/ClickHouse/pull/45188) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se agrega una caché para los ID de bloques asíncronos. Esto reducirá el número de solicitudes a ZooKeeper al habilitar la deduplicación de async inserts. [#45106](https://github.com/ClickHouse/ClickHouse/pull/45106) ([Han Fei](https://github.com/hanfei1991)).

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

* Usar la estructura de la tabla de inserción en generateRandom sin argumentos. [#45239](https://github.com/ClickHouse/ClickHouse/pull/45239) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite convertir implícitamente números de coma flotante almacenados en campos de cadena de JSON a enteros en las funciones `JSONExtract`. P. ej., `JSONExtract('{"a": "1000.111"}', 'a', 'UInt64')` -> `1000`; antes devolvía 0. [#45432](https://github.com/ClickHouse/ClickHouse/pull/45432) ([Anton Popov](https://github.com/CurtizJ)).
* Se añadieron los campos `supports_parallel_parsing` y `supports_parallel_formatting` a la tabla `system.formats` para facilitar la introspección. [#45499](https://github.com/ClickHouse/ClickHouse/pull/45499) ([Anton Popov](https://github.com/CurtizJ)).
* Mejora de la lectura de campos CSV en formato CustomSeparated/Template. Cierra [#42352](https://github.com/ClickHouse/ClickHouse/issues/42352) Cierra [#39620](https://github.com/ClickHouse/ClickHouse/issues/39620). [#43332](https://github.com/ClickHouse/ClickHouse/pull/43332) ([Kruglov Pavel](https://github.com/Avogar)).
* Unificar las mediciones del tiempo de ejecución de las consultas. [#43455](https://github.com/ClickHouse/ClickHouse/pull/43455) ([Raúl Marín](https://github.com/Algunenano)).
* Mejora el uso automático de la estructura de la tabla de inserción en las funciones de tabla file/hdfs/s3 cuando una consulta `select` incluye columnas virtuales; esto corrige el posible error `Block structure mismatch` o `number of columns mismatch`. [#43695](https://github.com/ClickHouse/ClickHouse/pull/43695) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añade compatibilidad con argumentos con signo en la función `range`. Corrige [#43333](https://github.com/ClickHouse/ClickHouse/issues/43333). [#43733](https://github.com/ClickHouse/ClickHouse/pull/43733) ([sanyu](https://github.com/wineternity)).
* Elimina la ordenación redundante, por ejemplo, las cláusulas ORDER BY relacionadas con la ordenación en subconsultas. Implementado sobre el plan de consulta. Realiza una optimización similar a `optimize_duplicate_order_by_and_distinct` con respecto a las cláusulas `ORDER BY`, pero más genérica, ya que se aplica a cualquier paso de ordenación redundante (no solo a los provocados por la cláusula ORDER BY) y a subconsultas de cualquier profundidad. Relacionado con [#42648](https://github.com/ClickHouse/ClickHouse/issues/42648). [#43905](https://github.com/ClickHouse/ClickHouse/pull/43905) ([Igor Nikonov](https://github.com/devcrafter)).
* Se agregó la posibilidad de deshabilitar la deduplicación de archivos para BACKUP (para backups sin deduplicación, se puede usar ATTACH en lugar de un RESTORE completo). Por ejemplo, `BACKUP foo TO S3(...) SETTINGS deduplicate_files=0` (valor predeterminado: `deduplicate_files=1`). [#43947](https://github.com/ClickHouse/ClickHouse/pull/43947) ([Azat Khuzhin](https://github.com/azat)).
* Se refactoriza y mejora la inferencia de esquemas para formatos de texto. Se añade la nueva opción `schema_inference_make_columns_nullable`, que controla si los tipos de resultado pasan a ser `Nullable` (habilitada de forma predeterminada);. [#44019](https://github.com/ClickHouse/ClickHouse/pull/44019) ([Kruglov Pavel](https://github.com/Avogar)).
* Mejor soporte para el protocolo `PROXYv1`. [#44135](https://github.com/ClickHouse/ClickHouse/pull/44135) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Agregar información sobre la última comprobación de partes realizada por los hilos de limpieza en la tabla `system.parts`. [#44244](https://github.com/ClickHouse/ClickHouse/pull/44244) ([Dmitry Novik](https://github.com/novikd)).
* Deshabilitar las funciones de tabla en modo readonly para inserciones. [#44290](https://github.com/ClickHouse/ClickHouse/pull/44290) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Añade la configuración `simultaneous_parts_removal_limit` para limitar el número de partes procesadas en una iteración de CleanupThread. [#44461](https://github.com/ClickHouse/ClickHouse/pull/44461) ([Dmitry Novik](https://github.com/novikd)).
* No se inicializa ReadBufferFromS3 cuando en una consulta solo se necesitan columnas virtuales. Esto puede ayudar con [#44246](https://github.com/ClickHouse/ClickHouse/issues/44246). [#44493](https://github.com/ClickHouse/ClickHouse/pull/44493) ([chen](https://github.com/xiedeyantu)).
* Evita sugerencias duplicadas de nombres de columna. Cierra [#44130](https://github.com/ClickHouse/ClickHouse/issues/44130). [#44519](https://github.com/ClickHouse/ClickHouse/pull/44519) ([Joanna Hulboj](https://github.com/jh0x)).
* Permitir la sustitución de macros en el endpoint de los discos. Resuelve [#40951](https://github.com/ClickHouse/ClickHouse/issues/40951). [#44533](https://github.com/ClickHouse/ClickHouse/pull/44533) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se mejora la inferencia de esquemas cuando `input_format_json_read_object_as_string` está habilitado. [#44546](https://github.com/ClickHouse/ClickHouse/pull/44546) ([Kruglov Pavel](https://github.com/Avogar)).
* Se agregó una configuración a nivel de usuario `database_replicated_allow_replicated_engine_arguments` que permite impedir la creación de tablas `ReplicatedMergeTree` con argumentos en `DatabaseReplicated`. [#44566](https://github.com/ClickHouse/ClickHouse/pull/44566) ([alesapin](https://github.com/alesapin)).
* Evita que los usuarios especifiquen por error el valor cero (no válido) para `index_granularity`. Esto corrige [#44536](https://github.com/ClickHouse/ClickHouse/issues/44536). [#44578](https://github.com/ClickHouse/ClickHouse/pull/44578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se añadió la posibilidad de especificar la ruta del archivo keytab del servicio en el parámetro `keytab` de la sección `kerberos` de config.xml. [#44594](https://github.com/ClickHouse/ClickHouse/pull/44594) ([Roman Vasin](https://github.com/rvasin)).
* Usar la parte de la consulta ya escrita para la búsqueda difusa (se pasa a la biblioteca `skim`, escrita en Rust y enlazada estáticamente con ClickHouse). [#44600](https://github.com/ClickHouse/ClickHouse/pull/44600) ([Azat Khuzhin](https://github.com/azat)).
* Se habilita `input_format_json_read_objects_as_strings` de forma predeterminada para poder leer objetos JSON anidados mientras el tipo JSON Object sigue siendo experimental. [#44657](https://github.com/ClickHouse/ClickHouse/pull/44657) ([Kruglov Pavel](https://github.com/Avogar)).
* Mejora en la deduplicación de inserts asíncronos: cuando los usuarios realizan inserts asíncronos duplicados, debemos deduplicarlos en memoria antes de consultar Keeper. [#44682](https://github.com/ClickHouse/ClickHouse/pull/44682) ([Han Fei](https://github.com/hanfei1991)).
* El formato `Avro` de entrada/salida interpretará el tipo bool como el tipo bool de ClickHouse. [#44684](https://github.com/ClickHouse/ClickHouse/pull/44684) ([Kruglov Pavel](https://github.com/Avogar)).
* Soporte para el tipo Bool en Arrow/Parquet/ORC. Cierra [#43970](https://github.com/ClickHouse/ClickHouse/issues/43970). [#44698](https://github.com/ClickHouse/ClickHouse/pull/44698) ([Kruglov Pavel](https://github.com/Avogar)).
* No haga un análisis codicioso más allá de las comillas al leer UUIDs; esto puede hacer que datos incorrectos se analicen correctamente por error. [#44686](https://github.com/ClickHouse/ClickHouse/pull/44686) ([Raúl Marín](https://github.com/Algunenano)).
* Inferir UInt64 cuando se produzca un desbordamiento de Int64 y corregir algunas transformaciones en la inferencia de esquema. [#44696](https://github.com/ClickHouse/ClickHouse/pull/44696) ([Kruglov Pavel](https://github.com/Avogar)).
* Anteriormente, la resolución de dependencias dentro de la base de datos `Replicated` se hacía de forma improvisada, y ahora se hace correctamente mediante un grafo explícito. [#44697](https://github.com/ClickHouse/ClickHouse/pull/44697) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrige un problema por el que `output_format_pretty_row_numbers` no conservaba el contador entre bloques. Cierra [#44815](https://github.com/ClickHouse/ClickHouse/issues/44815). [#44832](https://github.com/ClickHouse/ClickHouse/pull/44832) ([flynn](https://github.com/ucasfl)).
* No reportar errores en `system.errors` cuando las partes se fusionan de forma concurrente con el proceso de limpieza en segundo plano. [#44874](https://github.com/ClickHouse/ClickHouse/pull/44874) ([Raúl Marín](https://github.com/Algunenano)).
* Optimizar y corregir las métricas para INSERT asíncrono de Distributed. [#44922](https://github.com/ClickHouse/ClickHouse/pull/44922) ([Azat Khuzhin](https://github.com/azat)).
* Se añadieron ajustes para impedir copias de seguridad y restauraciones concurrentes, lo que resuelve [#43891](https://github.com/ClickHouse/ClickHouse/issues/43891) Implementación: \* Se añadieron ajustes a nivel de servidor para impedir copias de seguridad y restauraciones concurrentes, que se leen y se establecen cuando se crea BackupWorker en Context. \* Los ajustes se establecen en true de forma predeterminada. \* Antes de iniciar una copia de seguridad o una restauración, se añadió una comprobación para verificar si hay otras copias de seguridad/restauraciones en ejecución. Para las solicitudes internas, se comprueba si provienen del propio nodo mediante backup\_uuid. [#45072](https://github.com/ClickHouse/ClickHouse/pull/45072) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Se añade el parámetro de configuración `<storage_policy>` para los logs del sistema. [#45320](https://github.com/ClickHouse/ClickHouse/pull/45320) ([Stig Bakken](https://github.com/stigsb)).

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

* Se enlaza estáticamente con la biblioteca `skim` (está escrita en Rust) para la búsqueda difusa en el historial local de clickhouse client. [#44239](https://github.com/ClickHouse/ClickHouse/pull/44239) ([Azat Khuzhin](https://github.com/azat)).
* Se eliminó la compatibilidad con el enlazado compartido debido a Rust. En realidad, Rust es solo una excusa para esta eliminación, y queríamos quitarlo de todos modos. [#44828](https://github.com/ClickHouse/ClickHouse/pull/44828) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se eliminó la dependencia de la herramienta `adduser` de los paquetes, porque no la usamos. Esto corrige [#44934](https://github.com/ClickHouse/ClickHouse/issues/44934). [#45011](https://github.com/ClickHouse/ClickHouse/pull/45011) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* La biblioteca `SQLite` se actualizó a la última versión. Se utiliza para los motores de integración de base de datos y de tabla de SQLite. Además, se corrigió un informe de TSan con un falso positivo. Esto cierra [#45027](https://github.com/ClickHouse/ClickHouse/issues/45027). [#45031](https://github.com/ClickHouse/ClickHouse/pull/45031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Cambios en CRC-32 para abordar el problema de colisión de WeakHash en PowerPC. [#45144](https://github.com/ClickHouse/ClickHouse/pull/45144) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Se actualizaron los submódulos aws-c\* [#43020](https://github.com/ClickHouse/ClickHouse/pull/43020) ([Vitaly Baranov](https://github.com/vitlibar)).
* Fusionar automáticamente los backport PR con CI en verde y los PR aprobados con CI en verde [#41110](https://github.com/ClickHouse/ClickHouse/pull/41110) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se lanzó un [sitio web](https://aretestsgreenyet.com/) para consultar el estado de la CI de ClickHouse. [Fuente](https://github.com/ClickHouse/aretestsgreenyet).

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

* Sustituye los tipos de dominio IP (IPv4, IPv6) por tipos nativos. [#43221](https://github.com/ClickHouse/ClickHouse/pull/43221) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). Esto corrige automáticamente algunas implementaciones faltantes en el código.
* Se corrige el proceso de copia de seguridad cuando las mutaciones se cancelan durante dicho proceso. [#45351](https://github.com/ClickHouse/ClickHouse/pull/45351) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige el mensaje de excepción `Invalid number of rows in Chunk`. [#41404](https://github.com/ClickHouse/ClickHouse/issues/41404). [#42126](https://github.com/ClickHouse/ClickHouse/pull/42126) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige un posible uso de un valor sin inicializar después de ejecutar expresiones tras la ordenación. Cierra [#43386](https://github.com/ClickHouse/ClickHouse/issues/43386) [#43635](https://github.com/ClickHouse/ClickHouse/pull/43635) ([Kruglov Pavel](https://github.com/Avogar)).
* Mejor manejo de NULL en los combinadores de agregación; se corrige un posible segfault/error lógico al usar una optimización poco conocida, `optimize_rewrite_sum_if_to_count_if`. Cierra [#43758](https://github.com/ClickHouse/ClickHouse/issues/43758). [#43813](https://github.com/ClickHouse/ClickHouse/pull/43813) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigen las restricciones de configuración de las consultas CREATE USER/ROLE. [#43993](https://github.com/ClickHouse/ClickHouse/pull/43993) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió un error relacionado con un valor predeterminado que no se podía analizar para la columna `EPHEMERAL` en los metadatos de la tabla. [#44026](https://github.com/ClickHouse/ClickHouse/pull/44026) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se corrige el análisis de una versión no válida en la configuración de compatibilidad. [#44224](https://github.com/ClickHouse/ClickHouse/pull/44224) ([Kruglov Pavel](https://github.com/Avogar)).
* Hacer que la resta de intervalos en datetime sea coherente con la suma. [#44241](https://github.com/ClickHouse/ClickHouse/pull/44241) ([ltrk2](https://github.com/ltrk2)).
* Eliminar los límites del tamaño máximo del resultado de una vista. [#44261](https://github.com/ClickHouse/ClickHouse/pull/44261) ([lizhuoyu5](https://github.com/lzydmxy)).
* Se corrige un posible error lógico en la caché si `do_not_evict_index_and_mrk_files=1`. Cierra [#42142](https://github.com/ClickHouse/ClickHouse/issues/42142). [#44268](https://github.com/ClickHouse/ClickHouse/pull/44268) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige una posible interrupción prematura de la escritura en la caché write-through (el almacenamiento en caché podía detenerse por una suposición errónea cuando no debía). [#44289](https://github.com/ClickHouse/ClickHouse/pull/44289) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un posible fallo cuando la función case `IN` con argumentos constantes se utilizaba como argumento constante junto con `LowCardinality`. Corrige [#44221](https://github.com/ClickHouse/ClickHouse/issues/44221). [#44346](https://github.com/ClickHouse/ClickHouse/pull/44346) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la compatibilidad con parámetros complejos (como arrays) en las funciones de agregación paramétricas. Esto cierra [#30975](https://github.com/ClickHouse/ClickHouse/issues/30975). La función de agregación `sumMapFiltered` no se podía usar en consultas distribuidas antes de este cambio. [#44358](https://github.com/ClickHouse/ClickHouse/pull/44358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la lectura de ObjectId en la inferencia de esquema de BSON. [#44382](https://github.com/ClickHouse/ClickHouse/pull/44382) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige una condición de carrera que puede provocar la eliminación prematura de partes temporales antes de que termine la fusión en ReplicatedMergeTree. Este problema podía provocar errores como `No such file or directory: xxx`. Corrige [#43983](https://github.com/ClickHouse/ClickHouse/issues/43983). [#44383](https://github.com/ClickHouse/ClickHouse/pull/44383) ([alesapin](https://github.com/alesapin)).
* Algunas consultas `SYSTEM ... ON CLUSTER` no válidas funcionaban de forma inesperada si no se especificaba un nombre de clúster. Se ha corregido; ahora las consultas no válidas lanzan `SYNTAX_ERROR`, como debe ser. Corrige [#44264](https://github.com/ClickHouse/ClickHouse/issues/44264). [#44387](https://github.com/ClickHouse/ClickHouse/pull/44387) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se corrigió la lectura del tipo Map en el formato ORC. [#44400](https://github.com/ClickHouse/ClickHouse/pull/44400) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la lectura de columnas que no están presentes en los datos de entrada en los formatos Parquet/ORC. Anteriormente, esto podía causar el error `INCORRECT_NUMBER_OF_COLUMNS`. Cierra [#44333](https://github.com/ClickHouse/ClickHouse/issues/44333). [#44405](https://github.com/ClickHouse/ClickHouse/pull/44405) ([Kruglov Pavel](https://github.com/Avogar)).
* Anteriormente, la función `bar` usaba el mismo carácter '▋' (U+258B "bloque izquierdo de cinco octavos") para mostrar tanto barras de 5/8 como de 6/8. Este cambio corrige ese comportamiento al usar '▊' (U+258A "bloque izquierdo de tres cuartos") para mostrar la barra de 6/8. [#44410](https://github.com/ClickHouse/ClickHouse/pull/44410) ([Alexander Gololobov](https://github.com/davenger)).
* Colocar la configuración del perfil después de las restricciones de configuración del perfil en el archivo de configuración hacía que dichas restricciones no surtieran efecto. [#44411](https://github.com/ClickHouse/ClickHouse/pull/44411) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Se corrige `SYNTAX_ERROR` al ejecutar consultas `EXPLAIN AST INSERT` con datos. Cierra [#44207](https://github.com/ClickHouse/ClickHouse/issues/44207). [#44413](https://github.com/ClickHouse/ClickHouse/pull/44413) ([save-my-heart](https://github.com/save-my-heart)).
* Se corrigió la lectura de valores bool con CRLF en formato CSV. Cierra [#44401](https://github.com/ClickHouse/ClickHouse/issues/44401). [#44442](https://github.com/ClickHouse/ClickHouse/pull/44442) ([Kruglov Pavel](https://github.com/Avogar)).
* No se deben ejecutar and/or/if/multiIf en un diccionario LowCardinality, por lo que el tipo de resultado no puede ser LowCardinality. En algunos casos, esto podía provocar el error `Illegal column ColumnLowCardinality`. Corrige [#43603](https://github.com/ClickHouse/ClickHouse/issues/43603). [#44469](https://github.com/ClickHouse/ClickHouse/pull/44469) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigen las mutaciones con la configuración `max_streams_for_merge_tree_reading`. [#44472](https://github.com/ClickHouse/ClickHouse/pull/44472) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige una posible desreferenciación de puntero nulo con GROUPING SETS en ASTSelectQuery::formatImpl ([#43049](https://github.com/ClickHouse/ClickHouse/issues/43049)). [#44479](https://github.com/ClickHouse/ClickHouse/pull/44479) ([Robert Schulze](https://github.com/rschu1ze)).
* Validar los tipos en los argumentos de la función de tabla, en los argumentos de la función CAST y en la inferencia de esquema de JSONAsObject según la configuración. [#44501](https://github.com/ClickHouse/ClickHouse/pull/44501) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige la función IN con LowCardinality y una columna constante; se cierra [#44503](https://github.com/ClickHouse/ClickHouse/issues/44503). [#44506](https://github.com/ClickHouse/ClickHouse/pull/44506) ([Duc Canh Le](https://github.com/canhld94)).
* Se corrigió un error en la normalización de una expresión `DEFAULT` en la sentencia `CREATE TABLE`. El segundo argumento de la función `in` (o el argumento derecho del operador `IN`) podía sustituirse por el resultado de su evaluación durante la ejecución de la consulta CREATE. Corrige [#44496](https://github.com/ClickHouse/ClickHouse/issues/44496). [#44547](https://github.com/ClickHouse/ClickHouse/pull/44547) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Las proyecciones no funcionan cuando se usan WITH ROLLUP, WITH CUBE y WITH TOTALS. En versiones anteriores, una consulta producía una excepción en lugar de omitir el uso de proyecciones. Se cierra [#44614](https://github.com/ClickHouse/ClickHouse/issues/44614). Se cierra [#42772](https://github.com/ClickHouse/ClickHouse/issues/42772). [#44615](https://github.com/ClickHouse/ClickHouse/pull/44615) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Los bloques asíncronos no se limpiaron porque la función `get all blocks sorted by time` no recuperaba los bloques asíncronos. [#44651](https://github.com/ClickHouse/ClickHouse/pull/44651) ([Han Fei](https://github.com/hanfei1991)).
* Se corrige `LOGICAL_ERROR` `The top step of the right pipeline should be ExpressionStep` al usar JOIN con subconsulta, UNION y TOTALS. Corrige [#43687](https://github.com/ClickHouse/ClickHouse/issues/43687). [#44673](https://github.com/ClickHouse/ClickHouse/pull/44673) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se evitó la excepción `std::out_of_range` en el motor de tabla Executable. [#44681](https://github.com/ClickHouse/ClickHouse/pull/44681) ([Kruglov Pavel](https://github.com/Avogar)).
* No aplicar `optimize_syntax_fuse_functions` a los cuantiles en el AST; cierra [#44712](https://github.com/ClickHouse/ClickHouse/issues/44712). [#44713](https://github.com/ClickHouse/ClickHouse/pull/44713) ([Vladimir C](https://github.com/vdimir)).
* Soluciona un error de tipo incorrecto en la tabla Merge y en PREWHERE, cierra [#43324](https://github.com/ClickHouse/ClickHouse/issues/43324). [#44716](https://github.com/ClickHouse/ClickHouse/pull/44716) ([Vladimir C](https://github.com/vdimir)).
* Corrige un posible fallo durante el cierre (al destruir TraceCollector). Soluciona [#44757](https://github.com/ClickHouse/ClickHouse/issues/44757). [#44758](https://github.com/ClickHouse/ClickHouse/pull/44758) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un posible fallo en el procesamiento distribuido de consultas. El fallo podía producirse si una consulta con totales o extremos devolvía un resultado vacío y había tipos incompatibles entre las tablas Distributed y las tablas locales. Corrige [#44738](https://github.com/ClickHouse/ClickHouse/issues/44738). [#44760](https://github.com/ClickHouse/ClickHouse/pull/44760) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige `fsync` en las operaciones de fetch (`min_compressed_bytes_to_fsync_after_fetch`)/archivos pequeños (ttl.txt, columns.txt) en las mutaciones (`min_rows_to_fsync_after_merge`/`min_compressed_bytes_to_fsync_after_merge`). [#44781](https://github.com/ClickHouse/ClickHouse/pull/44781) ([Azat Khuzhin](https://github.com/azat)).
* Podía producirse una condición de carrera poco frecuente al consultar las tablas `system.parts` o `system.parts_columns` mientras se movían partes entre discos. Introducido en [#41145](https://github.com/ClickHouse/ClickHouse/issues/41145). [#44809](https://github.com/ClickHouse/ClickHouse/pull/44809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige el error `Context has expired` que podía producirse con la optimización de proyecciones habilitada. Puede reproducirse en consultas con funciones específicas, como `dictHas/dictGet`, que usan el contexto en tiempo de ejecución. Corrige [#44844](https://github.com/ClickHouse/ClickHouse/issues/44844). [#44850](https://github.com/ClickHouse/ClickHouse/pull/44850) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el error `Cannot read all data`, que podía producirse al leer el diccionario `LowCardinality` desde remote fs. Corrige [#44709](https://github.com/ClickHouse/ClickHouse/issues/44709). [#44875](https://github.com/ClickHouse/ClickHouse/pull/44875) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ignorar los casos en que no se puedan leer los sensores de monitorización de hardware, en lugar de mostrar un mensaje completo de excepción en los logs. [#44895](https://github.com/ClickHouse/ClickHouse/pull/44895) ([Raúl Marín](https://github.com/Algunenano)).
* Usa el valor de `max_delay_to_insert` si el tiempo de retraso calculado para INSERT supera el valor configurado. Relacionado con [#44902](https://github.com/ClickHouse/ClickHouse/issues/44902). [#44916](https://github.com/ClickHouse/ClickHouse/pull/44916) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige el error `Different order of columns in UNION subquery` en consultas con `UNION`. Corrige [#44866](https://github.com/ClickHouse/ClickHouse/issues/44866). [#44920](https://github.com/ClickHouse/ClickHouse/pull/44920) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* El retraso de `INSERT` puede calcularse incorrectamente, lo que puede hacer que siempre se use el ajuste `max_delay_to_insert` como retraso en lugar del valor correcto. Se utiliza la fórmula simple `max_delay_to_insert * (parts_over_threshold/max_allowed_parts_over_threshold)`; es decir, el retraso aumenta de forma proporcional a las partes que superan el umbral. Cierra [#44902](https://github.com/ClickHouse/ClickHouse/issues/44902). [#44954](https://github.com/ClickHouse/ClickHouse/pull/44954) ([Igor Nikonov](https://github.com/devcrafter)).
* Se corrige el error de ALTER TABLE TTL cuando una parte wide tiene la máscara de eliminación ligera. [#44959](https://github.com/ClickHouse/ClickHouse/pull/44959) ([Mingliang Pan](https://github.com/liangliangpan)).
* Corrección adicional para reemplazar los tipos IP de dominio (IPv4, IPv6) por tipos nativos [#43221](https://github.com/ClickHouse/ClickHouse/issues/43221). [#45024](https://github.com/ClickHouse/ClickHouse/pull/45024) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrección de seguimiento para reemplazar los tipos IP de dominio (IPv4, IPv6) por tipos nativos [https://github.com/ClickHouse/ClickHouse/pull/43221](https://github.com/ClickHouse/ClickHouse/pull/43221). [#45043](https://github.com/ClickHouse/ClickHouse/pull/45043) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Se podía producir un desbordamiento de búfer en el analizador sintáctico. Se detectó mediante un fuzzer. [#45047](https://github.com/ClickHouse/ClickHouse/pull/45047) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Soluciona un posible error `cannot-read-all-data` en el almacenamiento FileLog. Cierra [#45051](https://github.com/ClickHouse/ClickHouse/issues/45051), [#38257](https://github.com/ClickHouse/ClickHouse/issues/38257). [#45057](https://github.com/ClickHouse/ClickHouse/pull/45057) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La agregación con uso eficiente de memoria (ajuste `distributed_aggregation_memory_efficient`) se desactiva cuando hay grouping sets en la consulta. [#45058](https://github.com/ClickHouse/ClickHouse/pull/45058) ([Nikita Taranov](https://github.com/nickitat)).
* Se corrige el diccionario `RANGE_HASHED` para que las columnas de rango se cuenten como parte de la clave primaria durante las actualizaciones cuando se especifica `update_field`. Cierra [#44588](https://github.com/ClickHouse/ClickHouse/issues/44588). [#45061](https://github.com/ClickHouse/ClickHouse/pull/45061) ([Maksim Kita](https://github.com/kitaisreal)).
* Soluciona el error `Cannot capture column` en el argumento capturado `LowCardinality` de una lambda anidada. Soluciona [#45028](https://github.com/ClickHouse/ClickHouse/issues/45028). [#45065](https://github.com/ClickHouse/ClickHouse/pull/45065) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige el resultado incorrecto de la consulta de `additional_table_filters` (no se aplicaba el filtro adicional) cuando se usa la proyección minmax/count. [#45133](https://github.com/ClickHouse/ClickHouse/pull/45133) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un error en la función `histogram`, que aceptaba valores negativos. [#45147](https://github.com/ClickHouse/ClickHouse/pull/45147) ([simpleton](https://github.com/rgzntrade)).
* Corrige la nulabilidad errónea de la columna en StoreageJoin, cierra [#44940](https://github.com/ClickHouse/ClickHouse/issues/44940). [#45184](https://github.com/ClickHouse/ClickHouse/pull/45184) ([Vladimir C](https://github.com/vdimir)).
* Corregida la recarga de la configuración de `background_fetches_pool_size` (permite aumentarla en tiempo de ejecución). [#45189](https://github.com/ClickHouse/ClickHouse/pull/45189) ([Raúl Marín](https://github.com/Algunenano)).
* Procesa correctamente las consultas `SELECT` en motores KV (p. ej., KeeperMap, EmbeddedRocksDB) al usar `IN` en la clave con una subconsulta que produce un tipo distinto. [#45215](https://github.com/ClickHouse/ClickHouse/pull/45215) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige un error lógico en SEMI JOIN y join\_use\_nulls en algunos casos, cierra [#45163](https://github.com/ClickHouse/ClickHouse/issues/45163) y [#45209](https://github.com/ClickHouse/ClickHouse/issues/45209). [#45230](https://github.com/ClickHouse/ClickHouse/pull/45230) ([Vladimir C](https://github.com/vdimir)).
* Se corrige un heap-use-after-free al leer desde S3. [#45253](https://github.com/ClickHouse/ClickHouse/pull/45253) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un error que se producía cuando el tipo Union de Avro es \['null', tipo Nested], cierra [#45275](https://github.com/ClickHouse/ClickHouse/issues/45275). Corrige un error que infería incorrectamente el tipo `bytes` como `Float`. [#45276](https://github.com/ClickHouse/ClickHouse/pull/45276) ([flynn](https://github.com/ucasfl)).
* Lanzar una excepción adecuada cuando el PREWHERE explícito no pueda usarse con una tabla que utiliza el motor de almacenamiento `Merge`. [#45319](https://github.com/ClickHouse/ClickHouse/pull/45319) ([Antonio Andelic](https://github.com/antonio2368)).
* En Ubuntu sobre WSL1, el ClickHouse autoextraíble no puede descomprimirse debido a una inconsistencia: /proc/self/maps informa el inodo del archivo de 32 bits, mientras que stat informa el inodo de 64 bits. [#45339](https://github.com/ClickHouse/ClickHouse/pull/45339) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige una condición de carrera durante el arranque de la tabla Distributed (que podía hacer que el archivo de async INSERT se procesara varias veces). [#45360](https://github.com/ClickHouse/ClickHouse/pull/45360) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un posible fallo al leer desde el almacenamiento `S3` y la función de tabla `s3` cuando ha fallado la solicitud `ListObject`. [#45371](https://github.com/ClickHouse/ClickHouse/pull/45371) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige la excepción de `SELECT ... FROM system.dictionaries` cuando hay un diccionario con una estructura incorrecta (por ejemplo, un tipo incorrecto en la configuración XML). [#45399](https://github.com/ClickHouse/ClickHouse/pull/45399) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Se corrige la inferencia de esquema de s3Cluster cuando se usa la estructura de la tabla de inserción en las consultas `INSERT INTO ... SELECT * FROM s3Cluster`. [#45422](https://github.com/ClickHouse/ClickHouse/pull/45422) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un error en el análisis de JSON/BSONEachRow a través de HTTP que podía hacer que se usaran valores predeterminados para algunas columnas en lugar de los valores de los datos. [#45424](https://github.com/ClickHouse/ClickHouse/pull/45424) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió un error (Code: 632. DB::Exception: Unexpected data ... after parsed IPv6 value ...) en el análisis tipado de tipos de IP desde una fuente de texto. [#45425](https://github.com/ClickHouse/ClickHouse/pull/45425) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* cierra [#45297](https://github.com/ClickHouse/ClickHouse/issues/45297) Añade una comprobación de expresiones regulares vacías. [#45428](https://github.com/ClickHouse/ClickHouse/pull/45428) ([Han Fei](https://github.com/hanfei1991)).
* Corrección de un posible bloqueo de una consulta (probablemente distribuida). [#45448](https://github.com/ClickHouse/ClickHouse/pull/45448) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un posible interbloqueo con `allow_asynchronous_read_from_io_pool_for_merge_tree` habilitado en caso de que se produzca una excepción en `ThreadPool::schedule`. [#45481](https://github.com/ClickHouse/ClickHouse/pull/45481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un posible problema de tabla en uso tras DETACH. [#45493](https://github.com/ClickHouse/ClickHouse/pull/45493) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un fallo poco frecuente al cancelar una consulta cuando se había utilizado análisis sintáctico en paralelo durante su ejecución. [#45498](https://github.com/ClickHouse/ClickHouse/pull/45498) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige una condición de carrera entre la creación de una tabla Distributed y el INSERT sobre ella (podía provocar CANNOT\_LINK durante el INSERT en la tabla). [#45502](https://github.com/ClickHouse/ClickHouse/pull/45502) ([Azat Khuzhin](https://github.com/azat)).
* Añade el valor predeterminado correcto (SLRU) al getter de la política de caché. Cierra [#45514](https://github.com/ClickHouse/ClickHouse/issues/45514). [#45524](https://github.com/ClickHouse/ClickHouse/pull/45524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* No se permite ARRAY JOIN en las mutaciones; cierra [#42637](https://github.com/ClickHouse/ClickHouse/issues/42637) [#44447](https://github.com/ClickHouse/ClickHouse/pull/44447) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrección de los asteriscos calificados con nombre de tabla con alias y transformador de columnas. Resuelve [#44736](https://github.com/ClickHouse/ClickHouse/issues/44736). [#44755](https://github.com/ClickHouse/ClickHouse/pull/44755) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).

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