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

# Registro de cambios de 2021

> Registro de cambios de 2021

<div id="clickhouse-release-v2112-2021-12-15">
  ### Lanzamiento de ClickHouse v21.12, 2021-12-15. [Presentación](https://presentations.clickhouse.com/2021-release-21.12/), [Video](https://www.youtube.com/watch?v=6qi_S9CEqa4)
</div>

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

* *Una corrección para una funcionalidad que antes tenía un comportamiento no deseado.* No se permite el `SELECT` directo para Kafka/RabbitMQ/FileLog. Se puede habilitar estableciendo `stream_like_engine_allow_direct_select`. El `SELECT` directo no estará permitido aunque se habilite mediante esta configuración si hay una vista materializada adjunta. En Kafka y RabbitMQ, el `SELECT` directo, si está permitido, no confirmará mensajes de forma predeterminada. Para habilitar las confirmaciones con `SELECT` directo, el usuario debe usar la configuración a nivel de almacenamiento `kafka{rabbitmq}_commit_on_select=1` (valor predeterminado: `0`). [#31053](https://github.com/ClickHouse/ClickHouse/pull/31053) ([Kseniia Sumarokova](https://github.com/kssenii)).
* *Un ligero cambio en el comportamiento de una función nueva.* Devuelve una cadena sin comillas en JSON\_VALUE. Cierra [#27965](https://github.com/ClickHouse/ClickHouse/issues/27965). [#31008](https://github.com/ClickHouse/ClickHouse/pull/31008) ([Kseniia Sumarokova](https://github.com/kssenii)).
* *Cambio de nombre de una configuración.* Añade compatibilidad con una representación personalizada de NULL para los formatos de entrada TSV/CSV. Corrige la deserialización de Nullable(String) en los formatos de entrada TSV/CSV/JSONCompactStringsEachRow/JSONStringsEachRow. Cambia el nombre de `output_format_csv_null_representation` y `output_format_tsv_null_representation` a `format_csv_null_representation` y `format_tsv_null_representation`, respectivamente. [#30497](https://github.com/ClickHouse/ClickHouse/pull/30497) ([Kruglov Pavel](https://github.com/Avogar)).
* *Degradación adicional de código que ya no se usaba.* Esto solo es relevante si usa versiones de ClickHouse anteriores a la 20.6. Se elimina el mecanismo de "elección de líder" de `ReplicatedMergeTree`, porque desde la versión 20.6 se admiten varios líderes. Si está actualizando desde una versión anterior y alguna réplica con una versión antigua es líder, el servidor no podrá iniciarse después de la actualización. Detenga las réplicas con la versión antigua para que la nueva versión pueda iniciarse. Después de eso, ya no será posible volver a una versión anterior a la 20.6. [#32140](https://github.com/ClickHouse/ClickHouse/pull/32140) ([tavplubix](https://github.com/tavplubix)).

<div id="new-feature">
  #### Nueva característica
</div>

* Se implementaron más comandos Four Letter Words de ZooKeeper en clickhouse-keeper: [https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc\&#95;zkCommands](https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc\&#95;zkCommands). [#28981](https://github.com/ClickHouse/ClickHouse/pull/28981) ([JackyWoo](https://github.com/JackyWoo)). Ahora `clickhouse-keeper` ya ofrece todas las funcionalidades.
* Soporte para el tipo de datos `Bool`. [#31072](https://github.com/ClickHouse/ClickHouse/pull/31072) ([kevin wan](https://github.com/MaxWk)).
* Compatibilidad con `PARTITION BY` en los almacenamientos File, URL y HDFS, y con la función de tabla `INSERT INTO`. Cierra [#30273](https://github.com/ClickHouse/ClickHouse/issues/30273). [#30690](https://github.com/ClickHouse/ClickHouse/pull/30690) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió `CONSTRAINT ... ASSUME ...` (sin validación durante `INSERT`). Se añadió la transformación de consultas a CNF ([https://github.com/ClickHouse/ClickHouse/issues/11749](https://github.com/ClickHouse/ClickHouse/issues/11749)) para facilitar la optimización. Se añadió una reescritura simple de consultas mediante restricciones (por ahora solo con coincidencias simples; más adelante se mejorará para admitir \<,=,>...). Se añadió la posibilidad de reemplazar columnas pesadas por columnas ligeras cuando sea posible. [#18787](https://github.com/ClickHouse/ClickHouse/pull/18787) ([Nikita Vasilev](https://github.com/nikvas0)).
* Autenticación básica para el acceso a las funciones http/url. [#31648](https://github.com/ClickHouse/ClickHouse/pull/31648) ([michael1589](https://github.com/michael1589)).
* Se admite el tipo `INTERVAL` en la cláusula `STEP` del modificador `WITH FILL`. [#30927](https://github.com/ClickHouse/ClickHouse/pull/30927) ([Anton Popov](https://github.com/CurtizJ)).
* Se añade soporte para la lectura en paralelo de varios archivos y para patrones glob en la cláusula `FROM INFILE`. [#30135](https://github.com/ClickHouse/ClickHouse/pull/30135) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Se añade compatibilidad con parámetros de consulta `Identifier` para tablas y bases de datos. Cierra [#27226](https://github.com/ClickHouse/ClickHouse/issues/27226). [#28668](https://github.com/ClickHouse/ClickHouse/pull/28668) ([Nikolay Degterinsky](https://github.com/evillique)).
* *TLDR: Grandes mejoras en la exhaustividad y la coherencia de los formatos de texto.* Se refactorizan los formatos `TSV`, `TSVRaw`, `CSV`, `JSONCompactEachRow` y `JSONCompactStringsEachRow`, se elimina la duplicación de código y se añade una interfaz base para los formatos con los sufijos `-WithNames` y `-WithNamesAndTypes`. Se añaden los formatos `CSVWithNamesAndTypes`, `TSVRawWithNames`, `TSVRawWithNamesAndTypes`, `JSONCompactEachRowWIthNames`, `JSONCompactStringsEachRowWIthNames`, `RowBinaryWithNames`. Se añade compatibilidad con el parsing en paralelo para los formatos `TSVWithNamesAndTypes`, `TSVRaw(WithNames/WIthNamesAndTypes)`, `CSVWithNamesAndTypes`, `JSONCompactEachRow(WithNames/WIthNamesAndTypes)` y `JSONCompactStringsEachRow(WithNames/WIthNamesAndTypes)`. Se añade compatibilidad con el mapeo de columnas y la comprobación de tipos para el formato `RowBinaryWithNamesAndTypes`. Se añade la configuración `input_format_with_types_use_header`, que especifica si se debe comprobar que los tipos escritos en el formato `<format_name>WIthNamesAndTypes` coincidan con la estructura de la tabla. Se añade la configuración `input_format_csv_empty_as_default` y se usa en el formato CSV en lugar de `input_format_defaults_for_omitted_fields` (porque esta configuración no debería controlar `csv_empty_as_default`). Se corrige el uso de la configuración `input_format_defaults_for_omitted_fields` (solo se usaba como `csv_empty_as_default`, pero debería controlar el cálculo de las expresiones de valor predeterminado para los campos omitidos). Se corrige la entrada/salida de Nullable en el formato `TSVRaw`, lo que hace que este formato sea totalmente compatible con la inserción en TSV. Se corrige la inserción de NULL en `LowCardinality(Nullable)` cuando `input_format_null_as_default` está habilitado (antes se insertaban valores predeterminados en lugar de valores NULL reales). Se corrige la deserialización de cadenas en los formatos `JSONStringsEachRow`/`JSONCompactStringsEachRow` (las cadenas se parseaban solo hasta el primer '\n' o '\t'). Se añade la posibilidad de usar la regla de escape `Raw` en el formato de entrada Template. Se añade información de diagnóstico para el formato de entrada `JSONCompactEachRow(WithNames/WIthNamesAndTypes)`. Se corrige un error en el parsing en paralelo de los formatos `-WithNames` cuando la configuración `min_chunk_bytes_for_parallel_parsing` es menor que los bytes de una sola fila. [#30178](https://github.com/ClickHouse/ClickHouse/pull/30178) ([Kruglov Pavel](https://github.com/Avogar)). Se permite imprimir/parsear nombres y tipos de columnas en el formato de entrada/salida `CustomSeparated`. Se añaden los formatos `CustomSeparatedWithNames/WithNamesAndTypes`, similares a `TSVWithNames/WithNamesAndTypes`. [#31434](https://github.com/ClickHouse/ClickHouse/pull/31434) ([Kruglov Pavel](https://github.com/Avogar)).
* Soporte para el almacenamiento OSS de Aliyun. [#31286](https://github.com/ClickHouse/ClickHouse/pull/31286) ([cfcz48](https://github.com/cfcz48)).
* Expone todos los parámetros del pool global de hilos en el archivo de configuración. [#31285](https://github.com/ClickHouse/ClickHouse/pull/31285) ([Tomáš Hromada](https://github.com/gyfis)).
* Se introdujeron las funciones de ventana `exponentialTimeDecayedSum`, `exponentialTimeDecayedMax`, `exponentialTimeDecayedCount` y `exponentialTimeDecayedAvg`, que son más eficaces que `exponentialMovingAverage` para ventanas más grandes. Además, se abarcaron más casos de uso. [#29799](https://github.com/ClickHouse/ClickHouse/pull/29799) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se agregó la opción de comprimir los logs antes de escribirlos en un archivo con LZ4. Cierra [#23860](https://github.com/ClickHouse/ClickHouse/issues/23860). [#29219](https://github.com/ClickHouse/ClickHouse/pull/29219) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se admite `JOIN ON 1 = 1` con semántica de CROSS JOIN. Esto cierra [#25578](https://github.com/ClickHouse/ClickHouse/issues/25578). [#25894](https://github.com/ClickHouse/ClickHouse/pull/25894) ([Vladimir C](https://github.com/vdimir)).
* Se añade el combinador Map para el tipo `Map`. - Se renombra el anterior `sum-, min-, max- Map` para arrays mapeados a `sum-, min-, max- MappedArrays`. [#24539](https://github.com/ClickHouse/ClickHouse/pull/24539) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Permitir reintentar la lectura desde HTTP. Cierra [#29696](https://github.com/ClickHouse/ClickHouse/issues/29696). [#29894](https://github.com/ClickHouse/ClickHouse/pull/29894) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* `WINDOW VIEW` para habilitar el procesamiento de flujo en ClickHouse. [#8331](https://github.com/ClickHouse/ClickHouse/pull/8331) ([vxider](https://github.com/Vxider)).
* Se elimina la compatibilidad con el uso de bases de datos Ordinary en `MaterializedMySQL`. [#31292](https://github.com/ClickHouse/ClickHouse/pull/31292) ([Stig Bakken](https://github.com/stigsb)).
* Se implementan los comandos BACKUP y RESTORE para la familia Log. Esta funcionalidad está en desarrollo. [#30688](https://github.com/ClickHouse/ClickHouse/pull/30688) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Reduce el uso de memoria al leer formatos `Parquet`, `ORC` y `Arrow` con `s3` / `url` / `hdfs` (controlado por la configuración `input_format_allow_seeks`, habilitada de forma predeterminada). También se añade la configuración `remote_read_min_bytes_for_seek` para controlar los seeks. Cierra [#10461](https://github.com/ClickHouse/ClickHouse/issues/10461). Cierra [#16857](https://github.com/ClickHouse/ClickHouse/issues/16857). [#30936](https://github.com/ClickHouse/ClickHouse/pull/30936) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Añade optimizaciones para condiciones constantes en `JOIN ON`, ref. [#26928](https://github.com/ClickHouse/ClickHouse/issues/26928). [#27021](https://github.com/ClickHouse/ClickHouse/pull/27021) ([Vladimir C](https://github.com/vdimir)).
* Admite formatting en paralelo para todos los formatos de texto, excepto `JSONEachRowWithProgress` y `PrettyCompactMonoBlock`. [#31489](https://github.com/ClickHouse/ClickHouse/pull/31489) ([Kruglov Pavel](https://github.com/Avogar)).
* Acelera `count` en columnas Nullable. [#31806](https://github.com/ClickHouse/ClickHouse/pull/31806) ([Raúl Marín](https://github.com/Algunenano)).
* Acelera las aggregate functions `avg` y `sumCount`. [#31694](https://github.com/ClickHouse/ClickHouse/pull/31694) ([Raúl Marín](https://github.com/Algunenano)).
* Mejora el rendimiento de los formatos de salida JSON y XML. [#31673](https://github.com/ClickHouse/ClickHouse/pull/31673) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora el rendimiento de la sincronización de datos con dispositivos de bloques. Esto cierra [#31181](https://github.com/ClickHouse/ClickHouse/issues/31181). [#31229](https://github.com/ClickHouse/ClickHouse/pull/31229) ([zhanglistar](https://github.com/zhanglistar)).
* Corrige un problema de rendimiento de consultas en tablas `LiveView`. Corrige [#30831](https://github.com/ClickHouse/ClickHouse/issues/30831). [#31006](https://github.com/ClickHouse/ClickHouse/pull/31006) ([vzakaznikov](https://github.com/vzakaznikov)).
* Acelera el análisis de consultas. [#31949](https://github.com/ClickHouse/ClickHouse/pull/31949) ([Raúl Marín](https://github.com/Algunenano)).
* Permite dividir las reglas de rollup de `GraphiteMergeTree` para metrics simples y etiquetadas (campo opcional `rule_type`). [#25122](https://github.com/ClickHouse/ClickHouse/pull/25122) ([Michail Safronov](https://github.com/msaf1980)).
* Elimina solicitudes excesivas de `DESC TABLE` para `remote()` (en el caso de `remote('127.1', system.one)` —es decir, un identificador como db.table en lugar de una cadena—, había una solicitud excesiva de `DESC TABLE`). [#32019](https://github.com/ClickHouse/ClickHouse/pull/32019) ([Azat Khuzhin](https://github.com/azat)).
* Optimiza la función `tupleElement` para leer subcolumns con la configuración `optimize_functions_to_subcolumns` habilitada. [#31261](https://github.com/ClickHouse/ClickHouse/pull/31261) ([Anton Popov](https://github.com/CurtizJ)).
* Optimiza la función `mapContains` para leer la subcolumn `key` con la configuración `optimize_functions_to_subcolumns` habilitada. [#31218](https://github.com/ClickHouse/ClickHouse/pull/31218) ([Anton Popov](https://github.com/CurtizJ)).
* Añade las configuraciones `merge_tree_min_rows_for_concurrent_read_for_remote_filesystem` y `merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem`. [#30970](https://github.com/ClickHouse/ClickHouse/pull/30970) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Omite mutations de distintas particiones en `StorageMergeTree`. [#21326](https://github.com/ClickHouse/ClickHouse/pull/21326) ([Vladimir Chebotarev](https://github.com/excitoon)).

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

* No permitir que se elimine una tabla o diccionario si hay tablas o diccionarios que dependen de él. [#30977](https://github.com/ClickHouse/ClickHouse/pull/30977) ([tavplubix](https://github.com/tavplubix)).
* Permitir el versionado de los estados de las funciones de agregado. Ahora podemos introducir cambios retrocompatibles en el formato de serialización de los estados de las funciones de agregado. Cierra [#12552](https://github.com/ClickHouse/ClickHouse/issues/12552). [#24820](https://github.com/ClickHouse/ClickHouse/pull/24820) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Compatibilidad con la sintaxis `ALTER MODIFY COLUMN` de estilo PostgreSQL. [#32003](https://github.com/ClickHouse/ClickHouse/pull/32003) ([SuperDJY](https://github.com/cmsxbc)).
* Se añadió soporte para `update_field` en `RangeHashedDictionary` y `ComplexKeyRangeHashedDictionary`. [#32185](https://github.com/ClickHouse/ClickHouse/pull/32185) ([Maksim Kita](https://github.com/kitaisreal)).
* Las funciones `murmurHash3_128` y `sipHash128` ahora aceptan una cantidad arbitraria de argumentos. Esto resuelve [#28774](https://github.com/ClickHouse/ClickHouse/issues/28774). [#28965](https://github.com/ClickHouse/ClickHouse/pull/28965) ([小路](https://github.com/nicelulu)).
* Admite expresiones predeterminadas para el almacenamiento `HDFS` y optimiza la recuperación cuando el origen está orientado a columnas. [#32256](https://github.com/ClickHouse/ClickHouse/pull/32256) ([李扬](https://github.com/taiyang-li)).
* Mejora el nombre de la operación en un span de OpenTelemetry. [#32234](https://github.com/ClickHouse/ClickHouse/pull/32234) ([Frank Chen](https://github.com/FrankChen021)).
* Utilice `Content-Type: application/x-ndjson` ([http://ndjson.org/](http://ndjson.org/)) para el formato de salida `JSONEachRow`. [#32223](https://github.com/ClickHouse/ClickHouse/pull/32223) ([Dmitriy Dorofeev](https://github.com/deem0n)).
* Se mejora la omisión de campos desconocidos con la regla de escape con comillas en los formatos Template/CustomSeparated. Antes solo se podían omitir cadenas entrecomilladas; ahora se pueden omitir valores de cualquier tipo. [#32204](https://github.com/ClickHouse/ClickHouse/pull/32204) ([Kruglov Pavel](https://github.com/Avogar)).
* Ahora, `clickhouse-keeper` se niega a iniciarse o a aplicar cambios en la configuración si estos contienen IDs o endpoints duplicados. Corrige [#31339](https://github.com/ClickHouse/ClickHouse/issues/31339). [#32121](https://github.com/ClickHouse/ClickHouse/pull/32121) ([alesapin](https://github.com/alesapin)).
* Se establece el Content-Type en los paquetes HTTP emitidos por el motor URL. [#32113](https://github.com/ClickHouse/ClickHouse/pull/32113) ([Frank Chen](https://github.com/FrankChen021)).
* Devuelve `Content-Type` como 'application/json' para el formato `JSONEachRow` si `output_format_json_array_of_rows` está habilitado. [#32112](https://github.com/ClickHouse/ClickHouse/pull/32112) ([Frank Chen](https://github.com/FrankChen021)).
* Permitir interpretar `+` delante de los valores `Float32`/`Float64`. [#32079](https://github.com/ClickHouse/ClickHouse/pull/32079) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite que el usuario configure el parámetro `hdfs_replication` para `DiskHDFS` y `StorageHDFS`. Cierra [#32039](https://github.com/ClickHouse/ClickHouse/issues/32039). [#32049](https://github.com/ClickHouse/ClickHouse/pull/32049) ([leosunli](https://github.com/leosunli)).
* Se añadieron los campos `exception` y `exception_code` de ClickHouse al log de spans de OpenTelemetry. [#32040](https://github.com/ClickHouse/ClickHouse/pull/32040) ([Frank Chen](https://github.com/FrankChen021)).
* Mejorar la duración del registro del span de OpenTelemetry: era cero a nivel de consulta si se producía una excepción en la consulta. [#32038](https://github.com/ClickHouse/ClickHouse/pull/32038) ([Frank Chen](https://github.com/FrankChen021)).
* Se solucionó el problema que impedía crear `LowCardinality` de `Int256`. [#31832](https://github.com/ClickHouse/ClickHouse/pull/31832) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Volver a crear las tablas `system.*_log` si engine/partition\_by son diferentes. [#31824](https://github.com/ClickHouse/ClickHouse/pull/31824) ([Azat Khuzhin](https://github.com/azat)).
* `MaterializedMySQL`: Se corrige un problema con una tabla llamada 'table'. [#31781](https://github.com/ClickHouse/ClickHouse/pull/31781) ([Håvard Kvålen](https://github.com/havardk)).
* Fuente del diccionario de ClickHouse: admite conexiones predefinidas. Cierra [#31705](https://github.com/ClickHouse/ClickHouse/issues/31705). [#31749](https://github.com/ClickHouse/ClickHouse/pull/31749) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se permite usar la configuración predefinida de conexiones para los motores Kafka y RabbitMQ (del mismo modo que para los motores de tabla de otras integraciones). [#31691](https://github.com/ClickHouse/ClickHouse/pull/31691) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Volver a mostrar siempre el prompt al navegar por el historial en clickhouse-client. Esto mejora la usabilidad al manipular consultas muy largas que no caben en pantalla. [#31675](https://github.com/ClickHouse/ClickHouse/pull/31675) ([alexey-milovidov](https://github.com/alexey-milovidov)) (autor: Amos Bird).
* Agregar atajos de teclado para navegar por el historial (en lugar de líneas/historial). [#31641](https://github.com/ClickHouse/ClickHouse/pull/31641) ([Azat Khuzhin](https://github.com/azat)).
* Mejoradas las comprobaciones de `max_execution_time`. Se corrigieron algunos casos en los que no se realizaban las comprobaciones de timeout y la consulta podía ejecutarse durante demasiado tiempo. [#31636](https://github.com/ClickHouse/ClickHouse/pull/31636) ([Raúl Marín](https://github.com/Algunenano)).
* Mensaje de excepción mejorado cuando no se puede cargar `users.xml` debido a un hash de contraseña incorrecto. Esto cierra [#24126](https://github.com/ClickHouse/ClickHouse/issues/24126). [#31557](https://github.com/ClickHouse/ClickHouse/pull/31557) ([Vitaly Baranov](https://github.com/vitlibar)).
* Usa el nombre del segmento y de la réplica de los argumentos de la base de datos `Replicated` al expandir macros en los argumentos de `ReplicatedMergeTree` si esas macros no están definidas en la configuración. Cierra [#31471](https://github.com/ClickHouse/ClickHouse/issues/31471). [#31488](https://github.com/ClickHouse/ClickHouse/pull/31488) ([tavplubix](https://github.com/tavplubix)).
* Mejora del análisis de la proyección `min/max/count`. Ahora, con `allow_experimental_projection_optimization` habilitado, la proyección virtual `min/max/count` puede usarse junto con columnas de la clave de partición. [#31474](https://github.com/ClickHouse/ClickHouse/pull/31474) ([Amos Bird](https://github.com/amosbird)).
* Se añadió compatibilidad con `--pager` en `clickhouse-local`. [#31457](https://github.com/ClickHouse/ClickHouse/pull/31457) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la espera del editor durante la edición interactiva de consultas (`waitpid()` devuelve -1 con `SIGWINCH` y `EDITOR` y `clickhouse-local`/`clickhouse-client` funcionan de forma concurrente). [#31456](https://github.com/ClickHouse/ClickHouse/pull/31456) ([Azat Khuzhin](https://github.com/azat)).
* Lanzar una excepción si hay datos no válidos después de un campo en el formato `JSONCompactStrings(EachRow)`. [#31455](https://github.com/ClickHouse/ClickHouse/pull/31455) ([Kruglov Pavel](https://github.com/Avogar)).
* El valor predeterminado de la configuración `http_send_timeout` y `http_receive_timeout` cambió de 1800 (30 minutos) a 180 (3 minutos). [#31450](https://github.com/ClickHouse/ClickHouse/pull/31450) ([tavplubix](https://github.com/tavplubix)).
* `MaterializedMySQL` ahora gestiona las consultas DDL `CREATE TABLE ... LIKE ...`. [#31410](https://github.com/ClickHouse/ClickHouse/pull/31410) ([Stig Bakken](https://github.com/stigsb)).
* Devolver una consulta CREATE artificial al ejecutar `show create table` sobre tablas del sistema. [#31391](https://github.com/ClickHouse/ClickHouse/pull/31391) ([SuperDJY](https://github.com/cmsxbc)).
* Anteriormente, el progreso solo se mostraba para la table function `numbers`. Ahora también se muestra para `numbers_mt`. [#31318](https://github.com/ClickHouse/ClickHouse/pull/31318) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ahora se usan los roles iniciales del usuario para determinar las políticas de fila; consulte [#31080](https://github.com/ClickHouse/ClickHouse/issues/31080). [#31262](https://github.com/ClickHouse/ClickHouse/pull/31262) ([Vitaly Baranov](https://github.com/vitlibar)).
* Si se cambia alguna configuración obsoleta, se muestra una advertencia en `system.warnings`. [#31252](https://github.com/ClickHouse/ClickHouse/pull/31252) ([tavplubix](https://github.com/tavplubix)).
* Se mejoró el backoff de las tareas de limpieza en segundo plano de `MergeTree`. Los ajustes `merge_tree_clear_old_temporary_directories_interval_seconds` y `merge_tree_clear_old_parts_interval_seconds` pasaron de la configuración de usuario a la configuración de MergeTree. [#31180](https://github.com/ClickHouse/ClickHouse/pull/31180) ([tavplubix](https://github.com/tavplubix)).
* Ahora cada réplica enviará al cliente únicamente información incremental sobre los contadores de profile events. [#31155](https://github.com/ClickHouse/ClickHouse/pull/31155) ([Dmitry Novik](https://github.com/novikd)). Esto hace que la opción `--hardware_utilization` de `clickhouse-client` sea útil.
* Activar la edición multilínea en clickhouse-client de manera predeterminada. Esto soluciona [#31121](https://github.com/ClickHouse/ClickHouse/issues/31121) . [#31123](https://github.com/ClickHouse/ClickHouse/pull/31123) ([Amos Bird](https://github.com/amosbird)).
* Normalización de nombres de funciones para las consultas `ALTER`. Esto ayuda a evitar discrepancias en los metadatos entre crear tablas con índices/proyecciones y añadir índices/proyecciones mediante comandos `ALTER`. Este es un PR de seguimiento de [https://github.com/ClickHouse/ClickHouse/pull/20174](https://github.com/ClickHouse/ClickHouse/pull/20174). Se clasifica como mejora, ya que no hay informes de errores y el escenario es poco frecuente. [#31095](https://github.com/ClickHouse/ClickHouse/pull/31095) ([Amos Bird](https://github.com/amosbird)).
* Se admite el modificador `IF EXISTS` para la consulta `RENAME DATABASE`/`TABLE`/`DICTIONARY`. Si se usa esta directiva, no se producirá un error si no existe la DATABASE/TABLE/DICTIONARY que se va a renombrar. [#31081](https://github.com/ClickHouse/ClickHouse/pull/31081) ([victorgao](https://github.com/kafka1991)).
* Cancelar las fusiones verticales al eliminar una partición. Esto da continuidad a [https://github.com/ClickHouse/ClickHouse/pull/25684](https://github.com/ClickHouse/ClickHouse/pull/25684) y [https://github.com/ClickHouse/ClickHouse/pull/30996](https://github.com/ClickHouse/ClickHouse/pull/30996). [#31057](https://github.com/ClickHouse/ClickHouse/pull/31057) ([Amos Bird](https://github.com/amosbird)).
* La sesión local dentro de una fuente de diccionario de ClickHouse ya no enviará sus eventos al log de sesión. Esto corrige un posible interbloqueo (alerta de TSan) durante el apagado. Además, este PR corrige la intermitencia de `test_dictionaries_dependency_xml/`. [#31013](https://github.com/ClickHouse/ClickHouse/pull/31013) ([Vitaly Baranov](https://github.com/vitlibar)).
* Menos bloqueos en el comando ALTER. [#31010](https://github.com/ClickHouse/ClickHouse/pull/31010) ([Amos Bird](https://github.com/amosbird)).
* Se corrige la opción `--verbose` en el modo interactivo de clickhouse-local y se permite guardar el registro en un archivo. [#30881](https://github.com/ClickHouse/ClickHouse/pull/30881) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadieron los comandos `\l`, `\d` y `\c` en `clickhouse-client`, como en MySQL y PostgreSQL. [#30876](https://github.com/ClickHouse/ClickHouse/pull/30876) ([Pavel Medvedev](https://github.com/pmed)).
* Para clickhouse-local o clickhouse-client: si la opción `--interactive` se usa con `--query` o `--queries-file`, primero ejecútelos como en modo no interactivo y luego inicie el modo interactivo. [#30851](https://github.com/ClickHouse/ClickHouse/pull/30851) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige el posible error "El conjunto local de partes de X no coincide con el conjunto de partes en ZooKeeper" (si DROP falla al eliminar znodes de ZooKeeper). [#30826](https://github.com/ClickHouse/ClickHouse/pull/30826) ([Azat Khuzhin](https://github.com/azat)).
* El formato Avro funciona con Kafka. Se añadió la opción de configuración `output_format_avro_rows_in_file`. [#30351](https://github.com/ClickHouse/ClickHouse/pull/30351) ([Ilya Golshtein](https://github.com/ilejn)).
* Permite especificar uno o varios esquemas de PostgreSQL para una base de datos `MaterializedPostgreSQL`. Cierra [#28901](https://github.com/ClickHouse/ClickHouse/issues/28901). Cierra [#29324](https://github.com/ClickHouse/ClickHouse/issues/29324). [#28933](https://github.com/ClickHouse/ClickHouse/pull/28933) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se cambiaron los puertos predeterminados para la comunicación interna de clickhouse-keeper de 44444 a 9234. Corrige [#30879](https://github.com/ClickHouse/ClickHouse/issues/30879). [#31799](https://github.com/ClickHouse/ClickHouse/pull/31799) ([alesapin](https://github.com/alesapin)).
* Se implementó la función transform con argumentos Decimal. [#31839](https://github.com/ClickHouse/ClickHouse/pull/31839) ([李帅](https://github.com/loneylee)).
* Se corrige una terminación abrupta en el servidor de depuración y el error `DB::Exception: std::out_of_range: basic_string` en el servidor release cuando la URL de hdfs es incorrecta, añadiendo una comprobación adicional de la estructura de la URL de hdfs. [#31042](https://github.com/ClickHouse/ClickHouse/pull/31042) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un posible assert en la función de tabla/motor `hdfs`, y añade una prueba. [#31036](https://github.com/ClickHouse/ClickHouse/pull/31036) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Corrige los alias de GROUP BY / ORDER BY / LIMIT BY cuando están habilitados los argumentos posicionales. Cierra [#31173](https://github.com/ClickHouse/ClickHouse/issues/31173). [#31741](https://github.com/ClickHouse/ClickHouse/pull/31741) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige el uso del motor de tabla `Buffer` con el tipo `Map`. Soluciona [#30546](https://github.com/ClickHouse/ClickHouse/issues/30546). [#31742](https://github.com/ClickHouse/ClickHouse/pull/31742) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige la lectura de tablas `MergeTree` con `use_uncompressed_cache` habilitado. [#31826](https://github.com/ClickHouse/ClickHouse/pull/31826) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió el comportamiento cuando las mutaciones que no tienen nada que hacer se quedaban atascadas (con la configuración `empty_result_for_aggregation_by_empty_set` habilitada). [#32358](https://github.com/ClickHouse/ClickHouse/pull/32358) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió el problema por el que se omitían columnas al escribir protobuf. Este PR corrige [#31160](https://github.com/ClickHouse/ClickHouse/issues/31160); véase el comentario [#31160](https://github.com/ClickHouse/ClickHouse/issues/31160)#issuecomment-980595318. [#31988](https://github.com/ClickHouse/ClickHouse/pull/31988) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió un error al eliminar columnas innecesarias en una subconsulta. Si hay una función de agregación en una consulta sin GROUP BY, no debe eliminarse aunque parezca innecesaria. [#32289](https://github.com/ClickHouse/ClickHouse/pull/32289) ([dongyifeng](https://github.com/dyf6372)).
* No se alcanzó el límite de cuota, pero se superó el límite. Este PR corrige [#31174](https://github.com/ClickHouse/ClickHouse/issues/31174). [#31337](https://github.com/ClickHouse/ClickHouse/pull/31337) ([sunny](https://github.com/sunny19930321)).
* Se corrige SHOW GRANTS cuando se usan revocaciones parciales. Este PR corrige [#31138](https://github.com/ClickHouse/ClickHouse/issues/31138). [#31249](https://github.com/ClickHouse/ClickHouse/pull/31249) ([Vitaly Baranov](https://github.com/vitlibar)).
* La cantidad de memoria se calculaba incorrectamente cuando ClickHouse se ejecutaba en contenedores con límites de cgroup. [#31157](https://github.com/ClickHouse/ClickHouse/pull/31157) ([Pavel Medvedev](https://github.com/pmed)).
* Se corrigen las consultas `ALTER ... MATERIALIZE COLUMN ...` en caso de que el tipo de datos de la expresión por defecto no coincida con el tipo de datos de la columna. [#32348](https://github.com/ClickHouse/ClickHouse/pull/32348) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió un fallo con SIGFPE en la función de agregación `avgWeighted` con un argumento `Decimal`. Corrige [#32053](https://github.com/ClickHouse/ClickHouse/issues/32053). [#32303](https://github.com/ClickHouse/ClickHouse/pull/32303) ([tavplubix](https://github.com/tavplubix)).
* El servidor podía no iniciarse con el error `Cannot attach 1 tables due to cyclic dependencies` si la tabla `Dictionary` apuntaba a un diccionario XML con el mismo nombre; ya se ha corregido. Corrige [#31315](https://github.com/ClickHouse/ClickHouse/issues/31315). [#32288](https://github.com/ClickHouse/ClickHouse/pull/32288) ([tavplubix](https://github.com/tavplubix)).
* Corregido un error de análisis sintáctico al deserializar NaN para `Nullable(Float)` con la regla de escape `Quoted`. [#32190](https://github.com/ClickHouse/ClickHouse/pull/32190) ([Kruglov Pavel](https://github.com/Avogar)).
* Diccionarios XML: los identificadores usados en la consulta CREATE de la tabla pueden calificarse con `default_database` durante la actualización a una versión más reciente. Cierra [#31963](https://github.com/ClickHouse/ClickHouse/issues/31963). [#32187](https://github.com/ClickHouse/ClickHouse/pull/32187) ([Maksim Kita](https://github.com/kitaisreal)).
* El número de réplicas activas podía determinarse de forma incorrecta al insertar con quorum si la configuración `replicated_can_become_leader` está deshabilitada en algunas réplicas. Se ha corregido. [#32157](https://github.com/ClickHouse/ClickHouse/pull/32157) ([tavplubix](https://github.com/tavplubix)).
* Dictionaries: se corrigen los casos en los que `{condition}` no funciona para consultas personalizadas a la base de datos. [#32117](https://github.com/ClickHouse/ClickHouse/pull/32117) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrige `CAST` desde `Nullable` con `cast_keep_nullable` (antes se producía el error `PARAMETER_OUT_OF_BOUND`, por ejemplo, con `toUInt32OrDefault(toNullable(toUInt32(1)))`). [#32080](https://github.com/ClickHouse/ClickHouse/pull/32080) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió CREATE TABLE de Join Storage en algunos casos poco frecuentes. Cierra [#31680](https://github.com/ClickHouse/ClickHouse/issues/31680). [#32066](https://github.com/ClickHouse/ClickHouse/pull/32066) ([SuperDJY](https://github.com/cmsxbc)).
* Se corrigió el error `Directory ... already exists and is not empty` que se producía al desacoplar una parte. [#32063](https://github.com/ClickHouse/ClickHouse/pull/32063) ([tavplubix](https://github.com/tavplubix)).
* `MaterializedMySQL` (característica experimental): Corrige la interpretación errónea de los datos `DECIMAL` de MySQL. [#31990](https://github.com/ClickHouse/ClickHouse/pull/31990) ([Håvard Kvålen](https://github.com/havardk)).
* El motor `FileLog` (funcionalidad experimental) creaba innecesariamente un directorio de metadatos cuando fallaba la creación de la tabla. Corrección [#31962](https://github.com/ClickHouse/ClickHouse/issues/31962). [#31967](https://github.com/ClickHouse/ClickHouse/pull/31967) ([flynn](https://github.com/ucasfl)).
* Algunas entradas `GET_PART` podrían quedar bloqueadas en la cola de replicación si una parte se pierde en todas las réplicas y no hay otras partes en la misma partición. Se ha corregido en los casos en que la clave de partición contiene solo columnas de tipo entero o `Date[Time]`. Corrige [#31485](https://github.com/ClickHouse/ClickHouse/issues/31485). [#31887](https://github.com/ClickHouse/ClickHouse/pull/31887) ([tavplubix](https://github.com/tavplubix)).
* Se corrigen las funciones `empty` y `notEmpty` con argumentos de tipo `UUID`. Corrige [#31819](https://github.com/ClickHouse/ClickHouse/issues/31819). [#31883](https://github.com/ClickHouse/ClickHouse/pull/31883) ([Anton Popov](https://github.com/CurtizJ)).
* Cambiar la ruta de configuración de `keeper_server.session_timeout_ms` a `keeper_server.coordination_settings.session_timeout_ms` al crear un `KeeperTCPHandler`. Lo mismo con `operation_timeout`. [#31859](https://github.com/ClickHouse/ClickHouse/pull/31859) ([JackyWoo](https://github.com/JackyWoo)).
* Corrige la conversión no válida del tipo Nullable cuando se usa una clave primaria Nullable. (La clave primaria Nullable es una funcionalidad desaconsejada; por favor, no la use). Esto corrige [#31075](https://github.com/ClickHouse/ClickHouse/issues/31075). [#31823](https://github.com/ClickHouse/ClickHouse/pull/31823) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un fallo en una UDF recursiva en SQL. Cierra [#30856](https://github.com/ClickHouse/ClickHouse/issues/30856). [#31820](https://github.com/ClickHouse/ClickHouse/pull/31820) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige el fallo cuando se usa la función `dictGet` con tipo para un atributo de diccionario y el tipo es `Nullable`. Corrige [#30980](https://github.com/ClickHouse/ClickHouse/issues/30980). [#31800](https://github.com/ClickHouse/ClickHouse/pull/31800) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrige un fallo al obtener un resultado vacío en una consulta ODBC (con algunos controladores ODBC). Cierra [#31465](https://github.com/ClickHouse/ClickHouse/issues/31465). [#31766](https://github.com/ClickHouse/ClickHouse/pull/31766) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la desactivación del perfilador de consultas (en caso de `query_profiler_real_time_period_ns>0`/`query_profiler_cpu_time_period_ns>0`, el perfilador de consultas podía seguir habilitado incluso después de finalizar la consulta). [#31740](https://github.com/ClickHouse/ClickHouse/pull/31740) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un segfault poco frecuente en consultas concurrentes `ATTACH PARTITION`. [#31738](https://github.com/ClickHouse/ClickHouse/pull/31738) ([tavplubix](https://github.com/tavplubix)).
* Se corrige una condición de carrera en el formato de salida JSONEachRowWithProgress cuando se mezclan en la salida datos y líneas de progreso. [#31736](https://github.com/ClickHouse/ClickHouse/pull/31736) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió el error `there are no such cluster here` al ejecutar la consulta `ON CLUSTER` cuando el nombre del clúster especificado coincide con el de la base de datos `Replicated`. [#31723](https://github.com/ClickHouse/ClickHouse/pull/31723) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió una excepción en algunas aplicaciones de la función `decrypt` sobre columnas Nullable. Esto cierra [#31662](https://github.com/ClickHouse/ClickHouse/issues/31662). Esto cierra [#31426](https://github.com/ClickHouse/ClickHouse/issues/31426). [#31707](https://github.com/ClickHouse/ClickHouse/pull/31707) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la función ngrams cuando la cadena contiene caracteres UTF-8. [#31706](https://github.com/ClickHouse/ClickHouse/pull/31706) ([yandd](https://github.com/yandd)).
* Las configuraciones `input_format_allow_errors_num` e `input_format_allow_errors_ratio` no funcionaban para el análisis de tipos de dominio, como `IPv4`; ya se corrigió. Corrige [#31686](https://github.com/ClickHouse/ClickHouse/issues/31686). [#31697](https://github.com/ClickHouse/ClickHouse/pull/31697) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió una excepción de puntero NULL en `MATERIALIZE COLUMN`. [#31679](https://github.com/ClickHouse/ClickHouse/pull/31679) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* La consulta `RENAME TABLE` funcionaba de forma incorrecta al intentar cambiar el nombre de un diccionario DDL en la base de datos `Ordinary`; ya se ha corregido. [#31638](https://github.com/ClickHouse/ClickHouse/pull/31638) ([tavplubix](https://github.com/tavplubix)).
* Implementar la función de agregación `sparkbar` como estaba previsto; véase: [#26175](https://github.com/ClickHouse/ClickHouse/issues/26175)#issuecomment-960353867, [comentario](https://github.com/ClickHouse/ClickHouse/issues/26175#issuecomment-961155065). [#31624](https://github.com/ClickHouse/ClickHouse/pull/31624) ([小路](https://github.com/nicelulu)).
* Corrige el JSON generado inválido cuando solo los nombres de las columnas contienen secuencias UTF-8 no válidas. [#31534](https://github.com/ClickHouse/ClickHouse/pull/31534) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Desactive `partial_merge_join_left_table_buffer_bytes` hasta que se corrija el error de esta optimización. Consulte [#31009](https://github.com/ClickHouse/ClickHouse/issues/31009)). Elimine la opción redundante `partial_merge_join_optimizations`. [#31528](https://github.com/ClickHouse/ClickHouse/pull/31528) ([Vladimir C](https://github.com/vdimir)).
* Corrige el progreso en consultas `INSERT SELECT` cortas. [#31510](https://github.com/ClickHouse/ClickHouse/pull/31510) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el comportamiento erróneo de group by y los argumentos posicionales. Cierra [#31280](https://github.com/ClickHouse/ClickHouse/issues/31280)#issuecomment-968696186. [#31420](https://github.com/ClickHouse/ClickHouse/pull/31420) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige `nullptr` en el proveedor de credenciales STS para S3. [#31409](https://github.com/ClickHouse/ClickHouse/pull/31409) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Eliminar la función `notLike` del análisis de índices porque era incorrecta. [#31169](https://github.com/ClickHouse/ClickHouse/pull/31169) ([sundyli](https://github.com/sundy-li)).
* Se corrigió un error en Keeper que podía impedir el inicio cuando se habían perdido algunos logs de coordinación y había una instantánea más reciente que el último log. [#31150](https://github.com/ClickHouse/ClickHouse/pull/31150) ([alesapin](https://github.com/alesapin)).
* Reescribe la tabla distribuida del lado derecho como un join local. resuelve [#25809](https://github.com/ClickHouse/ClickHouse/issues/25809). [#31105](https://github.com/ClickHouse/ClickHouse/pull/31105) ([abel-cheng](https://github.com/abel-cheng)).
* Se corrige la tabla `Merge` al usar alias y where (antes no funcionaba en absoluto). Cierra [#28802](https://github.com/ClickHouse/ClickHouse/issues/28802). [#31044](https://github.com/ClickHouse/ClickHouse/pull/31044) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige JSON\_VALUE/JSON\_QUERY con identificadores entre comillas. Esto permite incluir espacios en la ruta JSON. Cierra [#30971](https://github.com/ClickHouse/ClickHouse/issues/30971). [#31003](https://github.com/ClickHouse/ClickHouse/pull/31003) ([Kseniia Sumarokova](https://github.com/kssenii)).
* El uso de la función `formatRow` con formatos no orientados a filas provocaba un segfault. Ya no se permite usar esta función con esos formatos (porque no tiene sentido). [#31001](https://github.com/ClickHouse/ClickHouse/pull/31001) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige un error que hacía fallar las consultas SELECT si se ejecutaban después de eliminar una vista materializada. Detectado en [#30691](https://github.com/ClickHouse/ClickHouse/issues/30691). [#30997](https://github.com/ClickHouse/ClickHouse/pull/30997) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Omitir la comprobación de `max_partition_size_to_drop` en el caso de ATTACH PARTITION ... FROM y MOVE PARTITION ... [#30995](https://github.com/ClickHouse/ClickHouse/pull/30995) ([Amr Alaa](https://github.com/amralaa-MSFT)).
* Corrige algunos casos extremos con los operadores `INTERSECT` y `EXCEPT`. Cierra [#30803](https://github.com/ClickHouse/ClickHouse/issues/30803). [#30965](https://github.com/ClickHouse/ClickHouse/pull/30965) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Se corrige un resultado de filtrado incorrecto en compilaciones no x86. Esto cierra [#31417](https://github.com/ClickHouse/ClickHouse/issues/31417). Esto cierra [#31524](https://github.com/ClickHouse/ClickHouse/issues/31524). [#31574](https://github.com/ClickHouse/ClickHouse/pull/31574) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Hacer que la compilación de ClickHouse sea totalmente reproducible (idéntica byte a byte en distintas máquinas). Esto cierra [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#31899](https://github.com/ClickHouse/ClickHouse/pull/31899) ([alexey-milovidov](https://github.com/alexey-milovidov)). Eliminar de los binarios la ruta del filesystem al directorio de compilación para permitir compilaciones reproducibles. Esto era necesario para [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#31838](https://github.com/ClickHouse/ClickHouse/pull/31838) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Usar nuestros propios CMakeLists para `zlib-ng`, `cassandra`, `mariadb-connector-c`, `xz`, `re2`, `sentry`, `gsasl`, `arrow` y `protobuf`. Esto es necesario para [#20151](https://github.com/ClickHouse/ClickHouse/issues/20151). Parte de [#9226](https://github.com/ClickHouse/ClickHouse/issues/9226). Un pequeño paso hacia la eliminación de basura molesta del sistema de compilación. [#30599](https://github.com/ClickHouse/ClickHouse/pull/30599) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Compilaciones herméticas: usar una versión fija de libc y asegurarse de que no se use ningún archivo fuente ni binario del SO anfitrión durante la compilación. Esto cierra [#27133](https://github.com/ClickHouse/ClickHouse/issues/27133). Esto cierra [#21435](https://github.com/ClickHouse/ClickHouse/issues/21435). Esto cierra [#30462](https://github.com/ClickHouse/ClickHouse/issues/30462). [#30011](https://github.com/ClickHouse/ClickHouse/pull/30011) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añade la función `getFuzzerData()` para aplicar fuzzing fácilmente a funciones concretas. Esto cierra [#23227](https://github.com/ClickHouse/ClickHouse/issues/23227). [#27526](https://github.com/ClickHouse/ClickHouse/pull/27526) ([Alexey Boykov](https://github.com/mathalex)).
* Configuración más correcta de las capabilities dentro de Docker. [#31802](https://github.com/ClickHouse/ClickHouse/pull/31802) ([Constantine Peresypkin](https://github.com/pkit)).
* Habilitar las opciones de compilación de clang `-fstrict-vtable-pointers`, `-fwhole-program-vtables`. [#20151](https://github.com/ClickHouse/ClickHouse/pull/20151) ([Maksim Kita](https://github.com/kitaisreal)).
* Evitar descargar tarballs de la toolchain para compilación cruzada en FreeBSD. [#31672](https://github.com/ClickHouse/ClickHouse/pull/31672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Compatibilidad inicial con risc-v. Consulte development/build-cross-riscv para ver las particularidades y el comando de compilación que se ha probado. [#31309](https://github.com/ClickHouse/ClickHouse/pull/31309) ([Vladimir Smirnov](https://github.com/Civil)).
* Compatibilidad con la compilación en una máquina arm con el parámetro "-DENABLE\_TESTS=OFF". [#31007](https://github.com/ClickHouse/ClickHouse/pull/31007) ([zhanghuajie](https://github.com/zhanghuajieHIT)).

<div id="clickhouse-release-v2111-2021-11-09">
  ### Lanzamiento de ClickHouse v21.11, 2021-11-09. [Presentación](https://presentations.clickhouse.com/2021-release-21.11/), [Vídeo](https://www.youtube.com/watch?v=xb64zoPYvqQ)
</div>

<Frame>
  <iframe src="https://www.youtube.com/embed/xb64zoPYvqQ" 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 cambia el orden de los argumentos `json_path` y `json` en las funciones SQL/JSON (para mantener la coherencia con el estándar). Cierra [#30449](https://github.com/ClickHouse/ClickHouse/issues/30449). [#30474](https://github.com/ClickHouse/ClickHouse/pull/30474) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se elimina la configuración de tabla `write_final_mark` de `MergeTree`. A partir de ahora, siempre será `true`. [#30455](https://github.com/ClickHouse/ClickHouse/pull/30455) ([Kseniia Sumarokova](https://github.com/kssenii)). No se requiere ninguna acción; todas las tablas son compatibles con la nueva versión.
* Se elimina la función `bayesAB`. Se agradecerá ayuda para recuperar esta función, actualizada. Esto cierra [#26233](https://github.com/ClickHouse/ClickHouse/issues/26233). [#29934](https://github.com/ClickHouse/ClickHouse/pull/29934) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Esto solo es relevante si ya ha empezado a usar el soporte experimental de `clickhouse-keeper`. Ahora, los snapshots de ClickHouse Keeper se comprimen con el códec `ZSTD` de forma predeterminada, en lugar de usar la compresión personalizada de bloques LZ4 de ClickHouse. Este comportamiento se puede desactivar con la configuración de coordination `compress_snapshots_with_zstd_format` (debe ser igual en todas las réplicas del quórum). Esta incompatibilidad con versiones anteriores es bastante poco frecuente y solo puede producirse cuando un nodo nuevo envía un snapshot (esto ocurre en caso de recuperación) a un nodo antiguo que no puede leer snapshots en formato ZSTD. [#29417](https://github.com/ClickHouse/ClickHouse/pull/29417) ([alesapin](https://github.com/alesapin)).

<div id="new-feature">
  #### Nueva característica
</div>

* El nuevo modo INSERT asíncrono permite acumular los datos insertados y almacenarlos en un único lote en segundo plano. En el cliente, se puede habilitar estableciendo `async_insert` para consultas `INSERT` con datos incluidos en la propia consulta o en un búfer independiente (p. ej., para consultas `INSERT` a través del protocolo HTTP). Si `wait_for_async_insert` es true (de forma predeterminada), el cliente esperará hasta que los datos se escriban en la tabla. En el servidor, se controla mediante los parámetros `async_insert_threads`, `async_insert_max_data_size` y `async_insert_busy_timeout_ms`. Implementa [#18282](https://github.com/ClickHouse/ClickHouse/issues/18282). [#27537](https://github.com/ClickHouse/ClickHouse/pull/27537) ([Anton Popov](https://github.com/CurtizJ)). [#20557](https://github.com/ClickHouse/ClickHouse/pull/20557) ([Ivan](https://github.com/abyss7)). Notas sobre el rendimiento: con inserts asíncronos, se pueden realizar hasta unas 10 000 consultas INSERT individuales por segundo, por lo que se sigue recomendando insertar en lotes si desea alcanzar un rendimiento de hasta millones de filas insertadas por segundo.
* Se añade el modo interactivo para `clickhouse-local`. Así, puede ejecutar simplemente `clickhouse-local` para obtener una interfaz de línea de comandos de ClickHouse sin conectarse a un servidor y procesar datos desde archivos y orígenes de datos externos. También se unifica el código de `clickhouse-client` y `clickhouse-local`. Cierra [#7203](https://github.com/ClickHouse/ClickHouse/issues/7203). Cierra [#25516](https://github.com/ClickHouse/ClickHouse/issues/25516). Cierra [#22401](https://github.com/ClickHouse/ClickHouse/issues/22401). [#26231](https://github.com/ClickHouse/ClickHouse/pull/26231) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió compatibilidad con funciones definidas por el usuario ejecutables (scriptables). Se trata de UDFs que pueden escribirse en cualquier lenguaje de programación. [#28803](https://github.com/ClickHouse/ClickHouse/pull/28803) ([Maksim Kita](https://github.com/kitaisreal)).
* Permitir conexiones predefinidas a fuentes de datos externas. Esto permite evitar especificar credenciales o direcciones al usar fuentes de datos externas, ya que se puede hacer referencia a ellas por nombre. Cierra [#28367](https://github.com/ClickHouse/ClickHouse/issues/28367). [#28577](https://github.com/ClickHouse/ClickHouse/pull/28577) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió la base de datos `INFORMATION_SCHEMA`, con las vistas `SCHEMATA`, `TABLES`, `VIEWS` y `COLUMNS`, sobre las tablas correspondientes de la base de datos `system`. Cierra [#9770](https://github.com/ClickHouse/ClickHouse/issues/9770). [#28691](https://github.com/ClickHouse/ClickHouse/pull/28691) ([tavplubix](https://github.com/tavplubix)).
* Se admite `EXISTS (subquery)`. Cierra [#6852](https://github.com/ClickHouse/ClickHouse/issues/6852). [#29731](https://github.com/ClickHouse/ClickHouse/pull/29731) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Registro de sesiones para auditoría. Registro de todos los eventos de inicio y cierre de sesión exitosos y fallidos en una nueva tabla `system.session_log`. [#22415](https://github.com/ClickHouse/ClickHouse/pull/22415) ([Vasily Nemkov](https://github.com/Enmk)) ([Vitaly Baranov](https://github.com/vitlibar)).
* Compatibilidad con funciones multidimensionales de distancia de coseno y distancia euclidiana; distancias y normas L1, L2, Lp y Linf. Producto escalar en tuplas y diversos operadores aritméticos en tuplas. Esto resuelve por completo [#4509](https://github.com/ClickHouse/ClickHouse/issues/4509) y más. [#27933](https://github.com/ClickHouse/ClickHouse/pull/27933) ([Alexey Boykov](https://github.com/mathalex)).
* Se añade soporte para la compresión y descompresión en `INTO OUTFILE` y `FROM INFILE` (con autodetección o con un parámetro opcional adicional). [#27135](https://github.com/ClickHouse/ClickHouse/pull/27135) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Se agregó compatibilidad con CORS (intercambio de recursos entre distintos orígenes) mediante la solicitud HTTP `OPTIONS`. Esto significa que ahora Grafana funcionará con solicitudes serverless sin recurrir a apaños. Cierra [#18693](https://github.com/ClickHouse/ClickHouse/issues/18693). [#29155](https://github.com/ClickHouse/ClickHouse/pull/29155) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Las consultas con JOIN ON ahora admiten condiciones disyuntivas (OR). [#21320](https://github.com/ClickHouse/ClickHouse/pull/21320) ([Ilya Golshtein](https://github.com/ilejn)).
* Se añadió la función `tokens`. Esto permite dividir una cadena en tokens usando caracteres ASCII no alfanuméricos como separadores. [#29981](https://github.com/ClickHouse/ClickHouse/pull/29981) ([Maksim Kita](https://github.com/kitaisreal)). Se añadió la función `ngrams` para extraer ngrams de texto. Cierra [#29699](https://github.com/ClickHouse/ClickHouse/issues/29699). [#29738](https://github.com/ClickHouse/ClickHouse/pull/29738) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añaden funciones para la normalización de Unicode: `normalizeUTF8NFC`, `normalizeUTF8NFD`, `normalizeUTF8NFKC`, `normalizeUTF8NFKD`. [#28633](https://github.com/ClickHouse/ClickHouse/pull/28633) ([darkkeks](https://github.com/darkkeks)).
* Consumo en streaming de archivos de logs de aplicaciones en ClickHouse con el motor de tabla `FileLog`. Es como el motor `Kafka` o `RabbitMQ`, pero para logs de solo anexado y rotados en el sistema de archivos local. Cierra [#6953](https://github.com/ClickHouse/ClickHouse/issues/6953). [#25969](https://github.com/ClickHouse/ClickHouse/pull/25969) ([flynn](https://github.com/ucasfl)) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añade el formato de salida `CapnProto` y se refactoriza el formato de entrada `CapnProto`. [#29291](https://github.com/ClickHouse/ClickHouse/pull/29291) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite escribir números en una consulta como literales binarios. Ejemplo: `SELECT 0b001;`. [#29304](https://github.com/ClickHouse/ClickHouse/pull/29304) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió el tipo de diccionario `hashed_array`. Ahorra memoria al usar diccionarios con múltiples atributos. Cierra [#30236](https://github.com/ClickHouse/ClickHouse/issues/30236). [#30242](https://github.com/ClickHouse/ClickHouse/pull/30242) ([Maksim Kita](https://github.com/kitaisreal)).
* Se ha añadido la función `JSONExtractKeys`. [#30056](https://github.com/ClickHouse/ClickHouse/pull/30056) ([Vitaly](https://github.com/orloffv)).
* Se añade una función `getOSKernelVersion`: devuelve una cadena con la versión del kernel del sistema operativo. [#29755](https://github.com/ClickHouse/ClickHouse/pull/29755) ([Memo](https://github.com/Joeywzr)).
* Se añadieron las funciones `MD4` y `SHA384`. MD4 es una función hash obsoleta e insegura; solo puede usarse en casos excepcionales en los que ya se utilice MD4 en algún sistema heredado y sea necesario obtener exactamente el mismo resultado. [#29602](https://github.com/ClickHouse/ClickHouse/pull/29602) ([Nikita Tikhomirov](https://github.com/NSTikhomirov)).
* HSTS puede activarse en el servidor HTTP de ClickHouse configurando `hsts_max_age` en el archivo de configuración con un valor positivo. [#29516](https://github.com/ClickHouse/ClickHouse/pull/29516) ([凌涛](https://github.com/lingtaolf)).
* Soporte para almacenamiento OBS de Huawei. Cierra [#24294](https://github.com/ClickHouse/ClickHouse/issues/24294). [#29511](https://github.com/ClickHouse/ClickHouse/pull/29511) ([kevin wan](https://github.com/MaxWk)).
* Nueva función `mapContainsKeyLike` para obtener el map cuya key coincide con una expresión regular simple. [#29471](https://github.com/ClickHouse/ClickHouse/pull/29471) ([凌涛](https://github.com/lingtaolf)). Nueva función `mapExtractKeyLike` para obtener el map que solo conserva los elementos que coinciden con el patrón especificado. [#30793](https://github.com/ClickHouse/ClickHouse/pull/30793) ([凌涛](https://github.com/lingtaolf)).
* Se implementó `ALTER TABLE x MODIFY COMMENT`. [#29264](https://github.com/ClickHouse/ClickHouse/pull/29264) ([Vasily Nemkov](https://github.com/Enmk)).
* Añade funciones de inspección de H3 que no están en ClickHouse, pero sí están disponibles a través de la API de H3: [https://h3geo.org/docs/api/inspection](https://h3geo.org/docs/api/inspection). [#29209](https://github.com/ClickHouse/ClickHouse/pull/29209) ([Bharat Nallan](https://github.com/bharatnc)).
* Permitir operaciones ALTER TABLE FETCH y ATTACH no replicadas en bases de datos Replicated. [#29202](https://github.com/ClickHouse/ClickHouse/pull/29202) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Se añadió la configuración `output_format_csv_null_representation`: es igual que `output_format_tsv_null_representation`, pero para la salida en CSV. [#29123](https://github.com/ClickHouse/ClickHouse/pull/29123) ([PHO](https://github.com/depressed-pho)).
* Se añadió la función `zookeeperSessionUptime()`, que devuelve el tiempo de actividad de la sesión actual de ZooKeeper en segundos. [#28983](https://github.com/ClickHouse/ClickHouse/pull/28983) ([tavplubix](https://github.com/tavplubix)).
* Implementa la función `h3ToGeoBoundary`. [#28952](https://github.com/ClickHouse/ClickHouse/pull/28952) ([Ivan Veselov](https://github.com/fuzzERot)).
* Se ha añadido la función de agregación `exponentialMovingAverage`, que puede usarse como función de ventana. Esto cierra [#27511](https://github.com/ClickHouse/ClickHouse/issues/27511). [#28914](https://github.com/ClickHouse/ClickHouse/pull/28914) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite incluir las subcolumnas de las columnas de la tabla en el resultado de la consulta `DESCRIBE` (se puede habilitar mediante la opción `describe_include_subcolumns`). [#28905](https://github.com/ClickHouse/ClickHouse/pull/28905) ([Anton Popov](https://github.com/CurtizJ)).
* `Executable`, `ExecutablePool` añadieron la opción `send_chunk_header`. Si esta opción es true, se enviará al cliente `rows&#95;count` del fragmento, seguido de un salto de línea, antes del fragmento. [#28833](https://github.com/ClickHouse/ClickHouse/pull/28833) ([Maksim Kita](https://github.com/kitaisreal)).
* `tokenbf_v1` y `ngram` admiten Map con clave de tipo String de tipo FixedSring. Mejora la omisión de datos en consultas con filtros por clave de Map. `sql CREATE TABLE map_tokenbf ( row_id UInt32, map Map(String, String), INDEX map_tokenbf map TYPE ngrambf_v1(4,256,2,0) GRANULARITY 1 ) Engine=MergeTree() Order by id ` Con la tabla anterior, la consulta `select * from map_tokebf where map['K']='V'` omitirá el gránulo que no contenga la clave `A`. Por supuesto, cuántas filas se omitirán depende de la `granularity` y de la `index_granularity` que configures. [#28511](https://github.com/ClickHouse/ClickHouse/pull/28511) ([凌涛](https://github.com/lingtaolf)).
* Enviar eventos de perfil del servidor al cliente. Se introdujo un nuevo tipo de paquete `ProfileEvents`. Cierra [#26177](https://github.com/ClickHouse/ClickHouse/issues/26177). [#28364](https://github.com/ClickHouse/ClickHouse/pull/28364) ([Dmitry Novik](https://github.com/novikd)).
* Operaciones de desplazamiento de bits en los tipos de datos `FixedString` y `String`. Esto cierra [#27763](https://github.com/ClickHouse/ClickHouse/issues/27763). [#28325](https://github.com/ClickHouse/ClickHouse/pull/28325) ([小路](https://github.com/nicelulu)).
* Se admite añadir o eliminar tablas de la replicación desde PostgreSQL de forma dinámica en el motor de base de datos MaterializedPostgreSQL. Se admite ALTER para la configuración de la base de datos. Cierra [#27573](https://github.com/ClickHouse/ClickHouse/issues/27573). [#28301](https://github.com/ClickHouse/ClickHouse/pull/28301) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió la función accurateCastOrDefault(x, T). Cierra [#21330](https://github.com/ClickHouse/ClickHouse/issues/21330). Autor: @taiyang-li. [#23028](https://github.com/ClickHouse/ClickHouse/pull/23028) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade la función `toUUIDOrDefault`, `toUInt8/16/32/64/256OrDefault`, `toInt8/16/32/64/128/256OrDefault`, que permite al usuario definir un valor predeterminado (no nulo) cuando falla el análisis de la cadena. [#21330](https://github.com/ClickHouse/ClickHouse/pull/21330) ([taiyang-li](https://github.com/taiyang-li)).

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

* Las fusiones en segundo plano pueden interrumpirse entre sí y se programan con las prioridades adecuadas. Ahora, las fusiones de larga duración no impedirán que las fusiones cortas avancen. Esto es necesario para mejorar la planificación y el control de la ejecución de las fusiones. Reduce la probabilidad de que se produzca el error "too many parts". [#22381](https://github.com/ClickHouse/ClickHouse/issues/22381). [#25165](https://github.com/ClickHouse/ClickHouse/pull/25165) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Se añadió la capacidad de ejecutar más fusiones y mutaciones que el número de hilos del background pool. Las fusiones y mutaciones se ejecutarán paso a paso según su tamaño (cuanto menor sea el tamaño, mayor será la prioridad). La proporción entre el número de tareas y los hilos de ejecución se controla mediante la configuración `background_merges_mutations_concurrency_ratio`, 2 de forma predeterminada. [#29140](https://github.com/ClickHouse/ClickHouse/pull/29140) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite usar lecturas asíncronas en sistemas de archivos remotos. Reduce el número de reposicionamientos al leer desde sistemas de archivos remotos. Esto mejora enormemente el rendimiento y hace que los discos experimentales `web` y `s3` funcionen más rápido que EBS en determinadas condiciones. [#29205](https://github.com/ClickHouse/ClickHouse/pull/29205) ([Kseniia Sumarokova](https://github.com/kssenii)). Mientras tanto, el tipo de disco `web` (conjunto de datos estático alojado en un servidor web) deja de ser experimental y pasa a ser apto para producción.
* Las consultas con `INTO OUTFILE` en `clickhouse-client` utilizarán varios hilos. Se corrige el problema del parpadeo de la barra de progreso al usar `INTO OUTFILE`. Esto cierra [#30873](https://github.com/ClickHouse/ClickHouse/issues/30873). Esto cierra [#30872](https://github.com/ClickHouse/ClickHouse/issues/30872). [#30886](https://github.com/ClickHouse/ClickHouse/pull/30886) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Reducir la cantidad de datos comprimidos redundantes leídos del disco en algunos tipos de consultas `SELECT` (solo para la familia de motores `MergeTree`). [#30111](https://github.com/ClickHouse/ClickHouse/pull/30111) ([alesapin](https://github.com/alesapin)).
* Se eliminaron algunas llamadas redundantes a `seek` al leer bloques comprimidos en la familia de motores de tabla MergeTree. [#29766](https://github.com/ClickHouse/ClickHouse/pull/29766) ([alesapin](https://github.com/alesapin)).
* Permitir que la función de tabla `url` procese varias URL en paralelo. Esto cierra [#29670](https://github.com/ClickHouse/ClickHouse/issues/29670) y [#29671](https://github.com/ClickHouse/ClickHouse/issues/29671). [#29673](https://github.com/ClickHouse/ClickHouse/pull/29673) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora del rendimiento de la agregación siguiendo el orden de la clave primaria (con la opción `optimize_aggregation_in_order` habilitada). [#30266](https://github.com/ClickHouse/ClickHouse/pull/30266) ([Anton Popov](https://github.com/CurtizJ)).
* Ahora ClickHouse usa la caché de DNS al comunicarse con S3 externo. [#29999](https://github.com/ClickHouse/ClickHouse/pull/29999) ([alesapin](https://github.com/alesapin)).
* Se añade soporte para el pushdown de `IS NULL`/`IS NOT NULL` a bases de datos externas (es decir, MySQL). [#29463](https://github.com/ClickHouse/ClickHouse/pull/29463) ([Azat Khuzhin](https://github.com/azat)). Se convierten `isNull`/`isNotNull` en `IS NULL`/`IS NOT NULL` (para bases de datos externas, es decir, MySQL). [#29446](https://github.com/ClickHouse/ClickHouse/pull/29446) ([Azat Khuzhin](https://github.com/azat)).
* Las consultas SELECT en tablas de Diccionario utilizarán múltiples hilos. [#30500](https://github.com/ClickHouse/ClickHouse/pull/30500) ([Maksim Kita](https://github.com/kitaisreal)).
* Mejora del rendimiento del filtrado (operación `WHERE`) en columnas `Decimal`. [#30431](https://github.com/ClickHouse/ClickHouse/pull/30431) ([Jun Jin](https://github.com/vesslanjin)).
* Se eliminó el código con ramificaciones en la operación de filtrado mediante una mejor implementación con popcnt/ctz, que ofrece un mejor rendimiento. [#29881](https://github.com/ClickHouse/ClickHouse/pull/29881) ([Jun Jin](https://github.com/vesslanjin)).
* Se ha mejorado el generador de máscaras de bytes para filtros (utilizado en el operador WHERE), unificándolo todo en una sola función con instrucciones SSE/AVX2/AVX512. Tenga en cuenta que, de forma predeterminada, ClickHouse solo utiliza SSE, por lo que esto solo es relevante para compilaciones personalizadas. [#30014](https://github.com/ClickHouse/ClickHouse/pull/30014) ([jasperzhu](https://github.com/jinjunzh)). [#30670](https://github.com/ClickHouse/ClickHouse/pull/30670) ([jasperzhu](https://github.com/jinjunzh)).
* Mejora el rendimiento de la función de agregación SUM para números Nullable de coma flotante. [#28906](https://github.com/ClickHouse/ClickHouse/pull/28906) ([Raúl Marín](https://github.com/Algunenano)).
* Acelera el proceso de carga de partes cuando se utilizan varios discos. La idea es similar a [https://github.com/ClickHouse/ClickHouse/pull/16423](https://github.com/ClickHouse/ClickHouse/pull/16423) . En producción se observa una mejora: 24 min -> 16 min . [#28363](https://github.com/ClickHouse/ClickHouse/pull/28363) ([Amos Bird](https://github.com/amosbird)).
* Reducir el tamaño predeterminado de las partes en la carga multiparte de S3 para disminuir el uso de memoria. [#28679](https://github.com/ClickHouse/ClickHouse/pull/28679) ([ianton-ru](https://github.com/ianton-ru)).
* Se aceleró la función `bitmapAnd`. [#28332](https://github.com/ClickHouse/ClickHouse/pull/28332) ([dddounaiking](https://github.com/OodounaikingoO)).
* Se eliminaron las notificaciones de mutación poco óptimas en `StorageMergeTree` cuando los merges aún estaban en curso. [#27552](https://github.com/ClickHouse/ClickHouse/pull/27552) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Mejora del rendimiento de la comparación de cadenas. [#28767](https://github.com/ClickHouse/ClickHouse/pull/28767) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* El índice de clave primaria y el filtro de partición pueden funcionar con tuplas. [#29281](https://github.com/ClickHouse/ClickHouse/pull/29281) ([凌涛](https://github.com/lingtaolf)).
* Si una consulta tiene varias funciones de agregado `quantile` con los mismos argumentos pero con distinto parámetro de nivel, se fusionarán y se ejecutarán en una sola pasada si la configuración `optimize_syntax_fuse_functions` está habilitada. [#26657](https://github.com/ClickHouse/ClickHouse/pull/26657) ([hexiaoting](https://github.com/hexiaoting)).
* Ahora, la agregación min-max sobre la primera expresión de la clave primaria se optimiza mediante una proyección. Esto es para [#329](https://github.com/ClickHouse/ClickHouse/issues/329). [#29918](https://github.com/ClickHouse/ClickHouse/pull/29918) ([Amos Bird](https://github.com/amosbird)).

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

* Se añadió la posibilidad de cambiar la configuración de los nodos (en el archivo `.xml`) para ClickHouse Keeper. [#30372](https://github.com/ClickHouse/ClickHouse/pull/30372) ([alesapin](https://github.com/alesapin)).
* Se añadió la función de agregación `sparkbar`. Esto cierra [#26175](https://github.com/ClickHouse/ClickHouse/issues/26175). [#27481](https://github.com/ClickHouse/ClickHouse/pull/27481) ([小路](https://github.com/nicelulu)). Nota: esta función tiene un defecto; su comportamiento cambiará en versiones futuras.

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

* Permite al usuario cambiar los niveles de registro sin reiniciar. [#29586](https://github.com/ClickHouse/ClickHouse/pull/29586) ([Nikolay Degterinsky](https://github.com/evillique)).
* Varias mejoras para las UDF de SQL. Las consultas para manipular funciones SQL definidas por el usuario ahora admiten la cláusula ON CLUSTER. Ejemplo `CREATE FUNCTION test_function ON CLUSTER 'cluster' AS x -> x + 1;`. Cierra [#30666](https://github.com/ClickHouse/ClickHouse/issues/30666). [#30734](https://github.com/ClickHouse/ClickHouse/pull/30734) ([Maksim Kita](https://github.com/kitaisreal)). Se admiten las sintaxis `CREATE OR REPLACE` y `CREATE IF NOT EXISTS`. [#30454](https://github.com/ClickHouse/ClickHouse/pull/30454) ([Maksim Kita](https://github.com/kitaisreal)). Se añadió compatibilidad con `DROP IF EXISTS`. Ejemplo `DROP FUNCTION IF EXISTS test_function`. [#30437](https://github.com/ClickHouse/ClickHouse/pull/30437) ([Maksim Kita](https://github.com/kitaisreal)). Se admiten lambdas. Ejemplo `CREATE FUNCTION lambda_function AS x -> arrayMap(element -> element * 2, x);`. [#30435](https://github.com/ClickHouse/ClickHouse/pull/30435) ([Maksim Kita](https://github.com/kitaisreal)). Se admiten funciones SQL definidas por el usuario para `clickhouse-local`. [#30179](https://github.com/ClickHouse/ClickHouse/pull/30179) ([Maksim Kita](https://github.com/kitaisreal)).
* Se habilitó globalmente el perfilador de memoria por consulta (establecido en `memory_profiler_step` = 4MiB). [#29455](https://github.com/ClickHouse/ClickHouse/pull/29455) ([Azat Khuzhin](https://github.com/azat)).
* Se añadieron las columnas `data_compressed_bytes`, `data_uncompressed_bytes`, `marks_bytes` en `system.data_skipping_indices`. Se añadieron las columnas `secondary_indices_compressed_bytes`, `secondary_indices_uncompressed_bytes`, `secondary_indices_marks_bytes` en `system.parts`. Cierra [#29697](https://github.com/ClickHouse/ClickHouse/issues/29697). [#29896](https://github.com/ClickHouse/ClickHouse/pull/29896) ([Maksim Kita](https://github.com/kitaisreal)).
* Añadir el alias `table` a system.tables y el alias `database` a system.databases [#29677](https://github.com/ClickHouse/ClickHouse/issues/29677). [#29882](https://github.com/ClickHouse/ClickHouse/pull/29882) ([kevin wan](https://github.com/MaxWk)).
* Resuelve correctamente las interdependencias entre tablas al iniciar el servidor. Cierra [#8004](https://github.com/ClickHouse/ClickHouse/issues/8004), cierra [#15170](https://github.com/ClickHouse/ClickHouse/issues/15170). [#28373](https://github.com/ClickHouse/ClickHouse/pull/28373) ([tavplubix](https://github.com/tavplubix)).
* Se evita el error "Division by zero" cuando el denominador es Nullable en las funciones `divide`, `intDiv` y `modulo`. Cierra [#22621](https://github.com/ClickHouse/ClickHouse/issues/22621). [#28352](https://github.com/ClickHouse/ClickHouse/pull/28352) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite interpretar valores del tipo de dato `Date` en formatos de texto como `YYYYMMDD`, además de `YYYY-MM-DD`. Esto cierra [#30870](https://github.com/ClickHouse/ClickHouse/issues/30870). [#30871](https://github.com/ClickHouse/ClickHouse/pull/30871) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* UI web: mostrar barras en celdas de tabla. [#29792](https://github.com/ClickHouse/ClickHouse/pull/29792) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ahora se pueden crear diccionarios con comentarios: `CREATE DICTIONARY ... COMMENT 'vaue'` ... [#29899](https://github.com/ClickHouse/ClickHouse/pull/29899) ([Vasily Nemkov](https://github.com/Enmk)). Ahora también se pueden establecer comentarios en la base de datos en la sentencia `CREATE DATABASE` ... [#29429](https://github.com/ClickHouse/ClickHouse/pull/29429) ([Vasily Nemkov](https://github.com/Enmk)).
* Se introduce la configuración `compiled_expression_cache_elements_size`. Si alguna vez necesita usar esta configuración, ya sabrá para qué sirve. [#30667](https://github.com/ClickHouse/ClickHouse/pull/30667) ([Maksim Kita](https://github.com/kitaisreal)).
* clickhouse-format ahora admite la opción `--query`. En versiones anteriores, había que pasar la consulta a stdin. [#29325](https://github.com/ClickHouse/ClickHouse/pull/29325) ([凌涛](https://github.com/lingtaolf)).
* Se admite `ALTER TABLE` en tablas de bases de datos `Memory`. Las bases de datos Memory se utilizan en `clickhouse-local`. [#30866](https://github.com/ClickHouse/ClickHouse/pull/30866) ([tavplubix](https://github.com/tavplubix)).
* Ahora se admiten arrays de todos los tipos serializables en `arrayStringConcat`. [#30840](https://github.com/ClickHouse/ClickHouse/pull/30840) ([Nickita Taranov](https://github.com/nickitat)).
* ClickHouse ahora tendrá en cuenta las limitaciones de docker/cgroups para determinar la cantidad de memoria del sistema. Véase [#25662](https://github.com/ClickHouse/ClickHouse/issues/25662). [#30574](https://github.com/ClickHouse/ClickHouse/pull/30574) ([Pavel Medvedev](https://github.com/pmed)).
* La estructura de tabla obtenida para la base de datos PostgreSQL es ahora más fiable. [#30477](https://github.com/ClickHouse/ClickHouse/pull/30477) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Soporte completo para argumentos posicionales en GROUP BY y ORDER BY. [#30433](https://github.com/ClickHouse/ClickHouse/pull/30433) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite extraer como cadena un elemento que no es de tipo String usando JSONExtractString. Esto es para [pull/25452#issuecomment-927123287](https://github.com/ClickHouse/ClickHouse/pull/25452#issuecomment-927123287). [#30426](https://github.com/ClickHouse/ClickHouse/pull/30426) ([Amos Bird](https://github.com/amosbird)).
* Se añadió la posibilidad de usar la cláusula FINAL en consultas SELECT desde `GraphiteMergeTree`. [#30360](https://github.com/ClickHouse/ClickHouse/pull/30360) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Mejoras menores en la clonación de réplicas y en la puesta en cola de la obtención de partes dañadas, que deberían evitar que las entradas `GET_PART` de la cola de replicación queden colgadas en casos extremadamente raros. [#30346](https://github.com/ClickHouse/ClickHouse/pull/30346) ([tavplubix](https://github.com/tavplubix)).
* Permitir enlaces simbólicos a archivos del directorio `user_files` para la función de tabla file. [#30309](https://github.com/ClickHouse/ClickHouse/pull/30309) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió la comparación entre `Date32` y `Date`, `DateTime`, `DateTime64` y `String`. [#30219](https://github.com/ClickHouse/ClickHouse/pull/30219) ([liang.huang](https://github.com/lhuang09287750)).
* Se permite quitar la expresión `SAMPLE BY` de las tablas `MergeTree` (`ALTER TABLE <table> REMOVE SAMPLE BY`). [#30180](https://github.com/ClickHouse/ClickHouse/pull/30180) ([Anton Popov](https://github.com/CurtizJ)).
* Ahora `Keeper` (como parte de `clickhouse-server`) se iniciará de forma asíncrona si logra conectarse a algún otro nodo. [#30170](https://github.com/ClickHouse/ClickHouse/pull/30170) ([alesapin](https://github.com/alesapin)).
* Ahora `clickhouse-client` admite la edición multilínea nativa. [#30143](https://github.com/ClickHouse/ClickHouse/pull/30143) ([Amos Bird](https://github.com/amosbird)).
* Los diccionarios `polygon` (geocodificación inversa): se añadió compatibilidad para leer el contenido del diccionario mediante el método de consulta SELECT si `store_polygon_key_column` = true. Cierra [#30090](https://github.com/ClickHouse/ClickHouse/issues/30090). [#30142](https://github.com/ClickHouse/ClickHouse/pull/30142) ([Maksim Kita](https://github.com/kitaisreal)).
* Añadir el logotipo de ClickHouse a la UI de Play. [#29674](https://github.com/ClickHouse/ClickHouse/pull/29674) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mensaje de excepción mejorado al leer una columna en formatos compatibles con Arrow como `Arrow`, `ArrowStream`, `Parquet` y `ORC`. Esto cierra [#29926](https://github.com/ClickHouse/ClickHouse/issues/29926). [#29927](https://github.com/ClickHouse/ClickHouse/pull/29927) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una condición de carrera entre el vaciado y el arranque en las tablas `Buffer`. Esto puede darse en las pruebas. [#29930](https://github.com/ClickHouse/ClickHouse/pull/29930) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige `lock-order-inversion` entre `DROP TABLE` en `DatabaseMemory` y `LiveView`. Live View es una función experimental. La base de datos Memory se usa en clickhouse-local. [#29929](https://github.com/ClickHouse/ClickHouse/pull/29929) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la inversión en el orden de bloqueo entre la recarga periódica del Diccionario y la recarga de la configuración. [#29928](https://github.com/ClickHouse/ClickHouse/pull/29928) ([Azat Khuzhin](https://github.com/azat)).
* Actualizados los archivos de zoneinfo a 2021c. [#29925](https://github.com/ClickHouse/ClickHouse/pull/29925) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió la posibilidad de configurar reintentos y los retrasos entre ellos para `clickhouse-copier`. [#29921](https://github.com/ClickHouse/ClickHouse/pull/29921) ([Azat Khuzhin](https://github.com/azat)).
* Añade la configuración del servidor `shutdown_wait_unfinished_queries` para permitir esperar a que las consultas en ejecución finalicen durante un tiempo máximo de `shutdown_wait_unfinished`. Esto corresponde a [#24451](https://github.com/ClickHouse/ClickHouse/issues/24451). [#29914](https://github.com/ClickHouse/ClickHouse/pull/29914) ([Amos Bird](https://github.com/amosbird)).
* Se añade la capacidad de rastrear el uso máximo de memoria (con el nuevo trace\_type en `system.trace_log`: `MemoryPeak`). [#29858](https://github.com/ClickHouse/ClickHouse/pull/29858) ([Azat Khuzhin](https://github.com/azat)).
* Tablas foráneas de PostgreSQL: Se añadió el prefijo de tabla particionada 'p' a la consulta para obtener el índice de replica identity. [#29828](https://github.com/ClickHouse/ClickHouse/pull/29828) ([Shoh Jahon](https://github.com/Shohjahon)).
* Aplicar `max_untracked_memory`/`memory_profiler_step`/`memory_profiler_sample_probability` durante mutate/merge para generar perfiles del uso de memoria durante las fusiones. [#29681](https://github.com/ClickHouse/ClickHouse/pull/29681) ([Azat Khuzhin](https://github.com/azat)).
* Ofuscador de consultas: `clickhouse-format --obfuscate` ahora admite más tipos de consultas. [#29672](https://github.com/ClickHouse/ClickHouse/pull/29672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se solucionó el problema: `clickhouse-format --obfuscate` no podía procesar consultas con diccionarios embebidos (funciones `regionTo...`). [#29667](https://github.com/ClickHouse/ClickHouse/pull/29667) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige el manejo incorrecto de Nullable en las funciones JSON. Esto corrige [#29615](https://github.com/ClickHouse/ClickHouse/issues/29615) . Se considera una mejora porque [https://github.com/ClickHouse/ClickHouse/pull/28012](https://github.com/ClickHouse/ClickHouse/pull/28012) aún no se ha lanzado. [#29659](https://github.com/ClickHouse/ClickHouse/pull/29659) ([Amos Bird](https://github.com/amosbird)).
* Aumenta `listen_backlog` de forma predeterminada (para ajustarlo al valor predeterminado de las versiones más recientes del kernel de Linux). [#29643](https://github.com/ClickHouse/ClickHouse/pull/29643) ([Azat Khuzhin](https://github.com/azat)).
* Recarga los diccionarios, los modelos y las funciones ejecutables definidas por el usuario si cambia la configuración del servidor `dictionaries_config`, `models_config`, `user_defined_executable_functions_config`. Cierra [#28142](https://github.com/ClickHouse/ClickHouse/issues/28142). [#29529](https://github.com/ClickHouse/ClickHouse/pull/29529) ([Maksim Kita](https://github.com/kitaisreal)).
* Se elimina la restricción innecesaria sobre el nombre de la proyección. Ahora el nombre de la proyección puede empezar por `tmp_`. [#29520](https://github.com/ClickHouse/ClickHouse/pull/29520) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió el error `There is no query or query context has expired` en las mutaciones con subconsultas anidadas. No se permiten subconsultas en una mutación si la tabla está replicada y la configuración `allow_nondeterministic_mutations` está deshabilitada. [#29495](https://github.com/ClickHouse/ClickHouse/pull/29495) ([tavplubix](https://github.com/tavplubix)).
* Aplicar cambios de configuración a `max_concurrent_queries` en tiempo de ejecución (no es necesario reiniciar). [#29414](https://github.com/ClickHouse/ClickHouse/pull/29414) ([Raúl Marín](https://github.com/Algunenano)).
* Se añadió la opción `use_skip_indexes`. [#29405](https://github.com/ClickHouse/ClickHouse/pull/29405) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió compatibilidad con `FREEZE` para las partes en memoria (para copias de seguridad). [#29376](https://github.com/ClickHouse/ClickHouse/pull/29376) ([Mo Xuan](https://github.com/mo-avatar)).
* Propagar el `query&#95;id` inicial para `clickhouse-benchmark` (anteriormente, si se ejecutaba una consulta remota mediante `clickhouse-benchmark`, las consultas en los segmentos no quedaban vinculadas a la consulta inicial mediante `initial_query_id`). [#29364](https://github.com/ClickHouse/ClickHouse/pull/29364) ([Azat Khuzhin](https://github.com/azat)).
* Índices de omisión `tokenbf_v1` y `ngrambf_v1`: se añadió compatibilidad con el tipo de dato `Array` con claves de tipo `String` y `FixedString`. [#29280](https://github.com/ClickHouse/ClickHouse/pull/29280) ([Maksim Kita](https://github.com/kitaisreal)). Los índices de omisión `tokenbf_v1` y `ngrambf_v1` añadieron compatibilidad con el tipo de dato `Map` con claves de tipo `String` y `FixedString`. Autor @lingtaolf. [#29220](https://github.com/ClickHouse/ClickHouse/pull/29220) ([Maksim Kita](https://github.com/kitaisreal)).
* Función `has`: se añadió compatibilidad con el tipo de datos `Map`. [#29267](https://github.com/ClickHouse/ClickHouse/pull/29267) ([Maksim Kita](https://github.com/kitaisreal)).
* Añade la configuración `compress_logs` de clickhouse-keeper, que permite comprimir los logs de clickhouse-keeper (de la máquina de estados replicada) en `ZSTD`. Implementa: [#26977](https://github.com/ClickHouse/ClickHouse/issues/26977). [#29223](https://github.com/ClickHouse/ClickHouse/pull/29223) ([alesapin](https://github.com/alesapin)).
* Se añade una configuración, `external_table_strict_query`: forzará el envío de toda la expresión WHERE en las consultas a bases de datos externas, incluso si es incompatible. [#29206](https://github.com/ClickHouse/ClickHouse/pull/29206) ([Azat Khuzhin](https://github.com/azat)).
* Deshabilitar las proyecciones cuando se use `ARRAY JOIN`. En versiones anteriores, el análisis de proyecciones podía afectar a los alias en `ARRAY JOIN`. [#29139](https://github.com/ClickHouse/ClickHouse/pull/29139) ([Amos Bird](https://github.com/amosbird)).
* Se admiten más tipos en el formato de entrada/salida `MsgPack`. [#29077](https://github.com/ClickHouse/ClickHouse/pull/29077) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite la lectura y escritura de columnas `LowCardinality` en el formato de entrada/salida `ORC`. [#29062](https://github.com/ClickHouse/ClickHouse/pull/29062) ([Kruglov Pavel](https://github.com/Avogar)).
* Una consulta a `system.distributed_ddl_queue` podría mostrar valores incorrectos; ya está corregido. [#29061](https://github.com/ClickHouse/ClickHouse/pull/29061) ([tavplubix](https://github.com/tavplubix)).
* Comportamiento correcto ante métodos desconocidos en la conexión HTTP. Resuelve [#29050](https://github.com/ClickHouse/ClickHouse/issues/29050). [#29057](https://github.com/ClickHouse/ClickHouse/pull/29057) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* `clickhouse-keeper`: Se corrige un error en `clickhouse-keeper-converter` que puede provocar cierta pérdida de datos al restaurar desde los logs de ZooKeeper (no desde un snapshot). [#29030](https://github.com/ClickHouse/ClickHouse/pull/29030) ([小路](https://github.com/nicelulu)). Se corrige un error en `clickhouse-keeper-converter` que puede provocar una deserialización incorrecta de los logs de ZooKeeper. [#29071](https://github.com/ClickHouse/ClickHouse/pull/29071) ([小路](https://github.com/nicelulu)).
* Aplicar la configuración de las consultas `CREATE ... AS SELECT` (soluciona: [#28810](https://github.com/ClickHouse/ClickHouse/issues/28810)). [#28962](https://github.com/ClickHouse/ClickHouse/pull/28962) ([Azat Khuzhin](https://github.com/azat)).
* Respetar la configuración predeterminada de la base de datos en ALTER TABLE ... ON CLUSTER ... REPLACE/MOVE PARTITION FROM/TO ... [#28955](https://github.com/ClickHouse/ClickHouse/pull/28955) ([anneji-dev](https://github.com/anneji-dev)).
* Protocolo gRPC: permitir cambiar desde el cliente la compresión en el servidor. [#28953](https://github.com/ClickHouse/ClickHouse/pull/28953) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ignorar la excepción "no data" al leer sensores térmicos para métricas asíncronas. Esto cierra [#28852](https://github.com/ClickHouse/ClickHouse/issues/28852). [#28882](https://github.com/ClickHouse/ClickHouse/pull/28882) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió una condición de carrera lógica que, en raras ocasiones, podía provocar el error `Dictionary not found` en un diccionario existente. [#28853](https://github.com/ClickHouse/ClickHouse/pull/28853) ([tavplubix](https://github.com/tavplubix)).
* Relajar la comprobación del combinador If para funciones anidadas (pero prohibir combinadores idénticos anidados). [#28828](https://github.com/ClickHouse/ClickHouse/pull/28828) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige una posible excepción sin capturar al finalizar el servidor. [#28761](https://github.com/ClickHouse/ClickHouse/pull/28761) ([Azat Khuzhin](https://github.com/azat)).
* Prohibir la limpieza de directorios tmp que pueda usar una mutation/merge activa si la mutation/merge dura un tiempo extraordinariamente largo. [#28760](https://github.com/ClickHouse/ClickHouse/pull/28760) ([Azat Khuzhin](https://github.com/azat)).
* Se permite la optimización `optimize_arithmetic_operations_in_aggregate_functions = 1` cuando se usa un alias. [#28746](https://github.com/ClickHouse/ClickHouse/pull/28746) ([Amos Bird](https://github.com/amosbird)).
* Implementa la configuración `detach_not_byte_identical_parts` para `ReplicatedMergeTree`, que desacoplará, en lugar de eliminar, las partes no idénticas byte a byte (después de merge/mutate). [#28708](https://github.com/ClickHouse/ClickHouse/pull/28708) ([Azat Khuzhin](https://github.com/azat)).
* Se implementa la configuración `max_suspicious_broken_parts_bytes` para `MergeTree` (para limitar el tamaño total de todas las partes dañadas; el valor predeterminado es `1GiB`). [#28707](https://github.com/ClickHouse/ClickHouse/pull/28707) ([Azat Khuzhin](https://github.com/azat)).
* Se habilita la expansión de macros en los ajustes de la tabla `RabbitMQ`. [#28683](https://github.com/ClickHouse/ClickHouse/pull/28683) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se restablece la capacidad de leer datos de una tabla con el motor `Log` en varios hilos. [#28125](https://github.com/ClickHouse/ClickHouse/pull/28125) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige el manejo incorrecto de la columna NULL en las funciones JSON. Esto corrige [#27930](https://github.com/ClickHouse/ClickHouse/issues/27930). [#28012](https://github.com/ClickHouse/ClickHouse/pull/28012) ([Amos Bird](https://github.com/amosbird)).
* Permite establecer el tamaño de la caché Mark/Uncompressed para los índices de omisión por separado del de las columnas. [#27961](https://github.com/ClickHouse/ClickHouse/pull/27961) ([Amos Bird](https://github.com/amosbird)).
* Permitir usar JOIN con `USING` junto con otros tipos de JOIN. [#23881](https://github.com/ClickHouse/ClickHouse/pull/23881) ([darkkeks](https://github.com/darkkeks)).
* Se actualizó el submódulo `aws-sdk` por el throttling en Yandex Cloud S3. [#30646](https://github.com/ClickHouse/ClickHouse/pull/30646) ([ianton-ru](https://github.com/ianton-ru)).
* Corregida la liberación del ID de consulta y del ID de sesión al final del procesamiento de la consulta al gestionar una llamada gRPC. [#29954](https://github.com/ClickHouse/ClickHouse/pull/29954) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el apagado de `AccessControlManager` para solucionar una prueba intermitente. [#29951](https://github.com/ClickHouse/ClickHouse/pull/29951) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige una aserción fallida al leer desde `HDFS`. Actualiza la biblioteca libhdfs3 para que pueda ejecutarse en pruebas en modo de depuración. Cierra [#29251](https://github.com/ClickHouse/ClickHouse/issues/29251). Cierra [#27814](https://github.com/ClickHouse/ClickHouse/issues/27814). [#29276](https://github.com/ClickHouse/ClickHouse/pull/29276) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Se añadió compatibilidad con compilaciones de FreeBSD para máquinas Aarch64. [#29952](https://github.com/ClickHouse/ClickHouse/pull/29952) ([MikaelUrankar](https://github.com/MikaelUrankar)).
* Los submódulos recursivos ya no son necesarios para ClickHouse. [#30315](https://github.com/ClickHouse/ClickHouse/pull/30315) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* ClickHouse ahora puede compilarse estáticamente con Musl. Esto se añade como experimento; no admite la compilación de `odbc-bridge`, `library-bridge`, la integración con CatBoost ni algunas bibliotecas. [#30248](https://github.com/ClickHouse/ClickHouse/pull/30248) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se habilitan `Protobuf`, `Arrow`, `ORC` y `Parquet` para compilaciones de `AArch64` y `Darwin` (MacOS). Esto cierra [#29248](https://github.com/ClickHouse/ClickHouse/issues/29248). Esto cierra [#28018](https://github.com/ClickHouse/ClickHouse/issues/28018). [#30015](https://github.com/ClickHouse/ClickHouse/pull/30015) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añade compilación cruzada para PowerPC (powerpc64le). Esto cierra [#9589](https://github.com/ClickHouse/ClickHouse/issues/9589). Se habilita la interacción con MySQL para AArch64 y PowerPC. Esto cierra [#26301](https://github.com/ClickHouse/ClickHouse/issues/26301). [#30010](https://github.com/ClickHouse/ClickHouse/pull/30010) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se dejan solo los archivos necesarios en las toolchains de compilación cruzada. Se incluyen como submódulos (antes se descargaban como archivos tar). [#29974](https://github.com/ClickHouse/ClickHouse/pull/29974) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se implementó en ClickHouse un enfoque de fuzzing basado en la estructura para el parser de sentencias select. [#30012](https://github.com/ClickHouse/ClickHouse/pull/30012) ([Paul](https://github.com/PaulCher)).
* Se activa el evaluador experimental de expresiones constexpr para clang para acelerar la compilación de código de plantillas. [#29668](https://github.com/ClickHouse/ClickHouse/pull/29668) ([myrrc](https://github.com/myrrc)).
* Se añade la capacidad de compilar con una versión más reciente de glibc sin usar símbolos nuevos. [#29594](https://github.com/ClickHouse/ClickHouse/pull/29594) ([Azat Khuzhin](https://github.com/azat)).
* Se reduce el tamaño del binario de la compilación Debug mediante una opción de optimización de clang. [#28736](https://github.com/ClickHouse/ClickHouse/pull/28736) ([flynn](https://github.com/ucasfl)).
* Ahora todas las imágenes para CI se alojarán en un repositorio independiente de Docker Hub. [#28656](https://github.com/ClickHouse/ClickHouse/pull/28656) ([alesapin](https://github.com/alesapin)).
* Se mejora la compatibilidad con compilaciones con clang-13. [#28046](https://github.com/ClickHouse/ClickHouse/pull/28046) ([Sergei Semin](https://github.com/syominsergey)).
* Se añade la capacidad de imprimir profile events sin procesar en `clickhouse-client` (esto puede ser útil para debugging y pruebas). [#30064](https://github.com/ClickHouse/ClickHouse/pull/30064) ([Azat Khuzhin](https://github.com/azat)).
* Se añade una dependencia temporal para la unidad de clickhouse-server (init de systemd y sysvinit). [#28891](https://github.com/ClickHouse/ClickHouse/pull/28891) ([Azat Khuzhin](https://github.com/azat)).
* Se recarga la caché de stacktrace cuando se vuelve a cargar el símbolo. [#28137](https://github.com/ClickHouse/ClickHouse/pull/28137) ([Amos Bird](https://github.com/amosbird)).

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

* Las funciones para la búsqueda sin distinción entre mayúsculas y minúsculas en cadenas UTF-8, como `positionCaseInsensitiveUTF8` y `countSubstringsCaseInsensitiveUTF8`, podían encontrar subcadenas que en realidad no coincidían en casos muy poco frecuentes; ya se ha corregido. [#30663](https://github.com/ClickHouse/ClickHouse/pull/30663) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió la lectura de un archivo vacío en un disco cifrado. [#30494](https://github.com/ClickHouse/ClickHouse/pull/30494) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió la transformación de la cadena de disyunciones a `IN` (controlada por el ajuste `optimize_min_equality_disjunction_chain_length`) en consultas distribuidas con el ajuste `legacy_column_name_of_tuple_literal = 0`. [#28658](https://github.com/ClickHouse/ClickHouse/pull/28658) ([Anton Popov](https://github.com/CurtizJ)).
* Permitir el uso de una columna materializada como clave de fragmentación en una tabla distribuida incluso si `insert_allow_materialized_columns=0`:. [#28637](https://github.com/ClickHouse/ClickHouse/pull/28637) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corregido `ORDER BY ... WITH FILL` cuando `TO` y `FROM` están establecidos y no hay filas en el conjunto de resultados. [#30888](https://github.com/ClickHouse/ClickHouse/pull/30888) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió un problema por el que el índice set no se usaba en expresiones AND/OR cuando había más de dos operandos. Esto corrige [#30416](https://github.com/ClickHouse/ClickHouse/issues/30416) . [#30887](https://github.com/ClickHouse/ClickHouse/pull/30887) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un fallo al materializar una proyección con una función de hash. Esto corrige [#30861](https://github.com/ClickHouse/ClickHouse/issues/30861). El problema es similar a [https://github.com/ClickHouse/ClickHouse/pull/28560](https://github.com/ClickHouse/ClickHouse/pull/28560) y se debe a una comprensión inadecuada de la invariante de que la cabecera esté vacía. [#30877](https://github.com/ClickHouse/ClickHouse/pull/30877) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió la ambigüedad al extraer el nombre auxiliar de ZooKeeper de la ruta de ZooKeeper en `ReplicatedMergeTree`. Anteriormente, el servidor podía no iniciarse con `Unknown auxiliary ZooKeeper name` si la ruta de ZooKeeper contenía dos puntos. Corrige [#29052](https://github.com/ClickHouse/ClickHouse/issues/29052). Además, antes se permitía especificar una ruta de ZooKeeper que no comenzara con una barra, pero ahora está obsoleto y no se permite crear tablas nuevas con esa ruta. Tampoco se permiten barras ni dos puntos en los nombres auxiliares de ZooKeeper. [#30822](https://github.com/ClickHouse/ClickHouse/pull/30822) ([tavplubix](https://github.com/tavplubix)).
* Se limpia el directorio temporal cuando localBackup falla por algún motivo. [#30797](https://github.com/ClickHouse/ClickHouse/pull/30797) ([ianton-ru](https://github.com/ianton-ru)).
* Se corrigió una condición de carrera entre `REPLACE/MOVE PARTITION` y la fusión en segundo plano en `MergeTree` no replicado, que podía hacer que parte de los datos movidos o reemplazados permaneciera en la partición. Corrige [#29327](https://github.com/ClickHouse/ClickHouse/issues/29327). [#30717](https://github.com/ClickHouse/ClickHouse/pull/30717) ([tavplubix](https://github.com/tavplubix)).
* Se corrige PREWHERE por WHERE en caso de que PREWHERE sea siempre verdadero. [#30668](https://github.com/ClickHouse/ClickHouse/pull/30668) ([Azat Khuzhin](https://github.com/azat)).
* La optimización de push down de LIMIT podía causar el error `Cannot find column`. Corrige [#30438](https://github.com/ClickHouse/ClickHouse/issues/30438). [#30562](https://github.com/ClickHouse/ClickHouse/pull/30562) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Agregar los paréntesis que faltan para las reescrituras de `isNotNull`/`isNull` a `IS [NOT] NULL` (corrige consultas con expresiones como `isNotNull(1)+isNotNull(2)`). [#30520](https://github.com/ClickHouse/ClickHouse/pull/30520) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un interbloqueo en ALTER con una subconsulta escalar sobre la misma tabla, cierra [#30461](https://github.com/ClickHouse/ClickHouse/issues/30461). [#30492](https://github.com/ClickHouse/ClickHouse/pull/30492) ([Vladimir C](https://github.com/vdimir)).
* Se corrigió un segfault que podía producirse si la sesión expiraba durante la ejecución de REPLACE PARTITION. [#30432](https://github.com/ClickHouse/ClickHouse/pull/30432) ([tavplubix](https://github.com/tavplubix)).
* Las consultas con una condición como `IN (subquery)` podían devolver resultados incorrectos cuando se aplicaba una proyección agregada. Se corrigió la creación de conjuntos para las proyecciones. [#30310](https://github.com/ClickHouse/ClickHouse/pull/30310) ([Amos Bird](https://github.com/amosbird)).
* Corrige la resolución de alias de columnas en las consultas JOIN cuando la proyección está habilitada. Esto corrige [#30146](https://github.com/ClickHouse/ClickHouse/issues/30146). [#30293](https://github.com/ClickHouse/ClickHouse/pull/30293) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió una deficiencia en la función `replaceRegexpAll`. [#30292](https://github.com/ClickHouse/ClickHouse/pull/30292) ([Memo](https://github.com/Joeywzr)).
* Corrige el análisis de la opción `preallocate` en la configuración del layout de ComplexKeyHashedDictionary y ComplexKeySparseHashedDictionary. [#30246](https://github.com/ClickHouse/ClickHouse/pull/30246) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrige la función `[I]LIKE`. Cierra [#28661](https://github.com/ClickHouse/ClickHouse/issues/28661). [#30244](https://github.com/ClickHouse/ClickHouse/pull/30244) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se corrigió un fallo con `shortcircuit` y `lowcardinality` en `multiIf`. [#30243](https://github.com/ClickHouse/ClickHouse/pull/30243) ([Raúl Marín](https://github.com/Algunenano)).
* FlatDictionary, HashedDictionary corrigen el cálculo de bytes\_allocated de atributos Nullable. [#30238](https://github.com/ClickHouse/ClickHouse/pull/30238) ([Maksim Kita](https://github.com/kitaisreal)).
* Permitir identificadores que comiencen con números en varios joins. [#30230](https://github.com/ClickHouse/ClickHouse/pull/30230) ([Vladimir C](https://github.com/vdimir)).
* Se corrigió la lectura desde `MergeTree` con `max_read_buffer_size = 0` (cuando el usuario quiere pegarse un tiro en el pie) (puede provocar excepciones `Can't adjust last granule`, `LOGICAL_ERROR` o incluso pérdida de datos). [#30192](https://github.com/ClickHouse/ClickHouse/pull/30192) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige `pread_fake_async`/`pread_threadpool` con `min_bytes_to_use_direct_io`. [#30191](https://github.com/ClickHouse/ClickHouse/pull/30191) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un problema por el que `INSERT SELECT` rellenaba incorrectamente la columna MATERIALIZED basándose en una columna Nullable. [#30189](https://github.com/ClickHouse/ClickHouse/pull/30189) ([Azat Khuzhin](https://github.com/azat)).
* Se admiten argumentos Nullable en la función `initializeAggregation`. [#30177](https://github.com/ClickHouse/ClickHouse/pull/30177) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el error `Port is already connected` en consultas con `GLOBAL IN` y `WITH TOTALS`. Solo para 21.9 y 21.10. [#30086](https://github.com/ClickHouse/ClickHouse/pull/30086) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige una condición de carrera entre MOVE PARTITION y las fusiones/mutaciones de MergeTree. [#30074](https://github.com/ClickHouse/ClickHouse/pull/30074) ([Azat Khuzhin](https://github.com/azat)).
* La base de datos `Memory` eliminada podría reaparecer después de reiniciar el servidor; esto ya se ha corregido ([#29795](https://github.com/ClickHouse/ClickHouse/issues/29795)). También se añadió la configuración `force_remove_data_recursively_on_drop` como solución alternativa para el error `Directory not empty` al eliminar una base de datos `Ordinary` (porque no es posible eliminar manualmente los restos de datos en un entorno de nube). [#30054](https://github.com/ClickHouse/ClickHouse/pull/30054) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió el fallo de sample provocado por `tuple()`, cierra [#30004](https://github.com/ClickHouse/ClickHouse/issues/30004). [#30016](https://github.com/ClickHouse/ClickHouse/pull/30016) ([flynn](https://github.com/ucasfl)).
* intenta cerrar la incidencia: [#29965](https://github.com/ClickHouse/ClickHouse/issues/29965). [#29976](https://github.com/ClickHouse/ClickHouse/pull/29976) ([hexiaoting](https://github.com/hexiaoting)).
* Corrige una posible condición de carrera entre `FileChecker` y `StorageLog`/`StorageStripeLog`. [#29959](https://github.com/ClickHouse/ClickHouse/pull/29959) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la condición de carrera entre `LogSink::writeMarks()` y `LogSource` en `StorageLog`. [#29946](https://github.com/ClickHouse/ClickHouse/pull/29946) ([Azat Khuzhin](https://github.com/azat)).
* Corrige una posible fuga de recursos en el límite de consultas concurrentes de las tablas MergeTree introducido en [https://github.com/ClickHouse/ClickHouse/pull/19544](https://github.com/ClickHouse/ClickHouse/pull/19544). [#29879](https://github.com/ClickHouse/ClickHouse/pull/29879) ([Amos Bird](https://github.com/amosbird)).
* Corregir la comprobación de recreación de las tablas del sistema (no detecta cambios en los valores de tipo enum). [#29857](https://github.com/ClickHouse/ClickHouse/pull/29857) ([Azat Khuzhin](https://github.com/azat)).
* MaterializedMySQL: Corrige un problema por el que, si se perdía la conexión con MySQL, solo podían procesarse partes de una transacción. [#29837](https://github.com/ClickHouse/ClickHouse/pull/29837) ([Håvard Kvålen](https://github.com/havardk)).
* Se evita el error `Timeout exceeded: elapsed 18446744073.709553 seconds` que podría producirse en casos extremadamente raros, presuntamente debido a algún error del kernel. Corrige [#29154](https://github.com/ClickHouse/ClickHouse/issues/29154). [#29811](https://github.com/ClickHouse/ClickHouse/pull/29811) ([tavplubix](https://github.com/tavplubix)).
* Se corrige una conversión errónea en la consulta `ATTACH TABLE ... FROM 'path'` cuando se usa un literal no de cadena en lugar de una ruta. Esto puede provocar la lectura de memoria no inicializada. [#29790](https://github.com/ClickHouse/ClickHouse/pull/29790) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el acceso concurrente a `LowCardinality` en `GROUP BY` (en combinación con tablas `Buffer`, podía causar problemas). [#29782](https://github.com/ClickHouse/ClickHouse/pull/29782) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un `GROUP BY` incorrecto (varias filas con las mismas claves en el resultado) en una consulta distribuida cuando los segmentos tenían versiones mixtas `<= 21.3` y `>= 21.4`, la clave de `GROUP BY` tenía varias columnas, todas de tamaño fijo, y estaba activada la agregación de dos niveles (consulte `group_by_two_level_threshold` y `group_by_two_level_threshold_bytes`). Corrige [#29580](https://github.com/ClickHouse/ClickHouse/issues/29580). [#29735](https://github.com/ClickHouse/ClickHouse/pull/29735) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el comportamiento incorrecto de la configuración `materialized_postgresql_tables_list` al reiniciar el servidor. Reportado en [#28529](https://github.com/ClickHouse/ClickHouse/issues/28529). [#29686](https://github.com/ClickHouse/ClickHouse/pull/29686) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La condición del predicado de filtro podía perderse tras la optimización push-down. [#29625](https://github.com/ClickHouse/ClickHouse/pull/29625) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la compilación JIT de expresiones con alias y la evaluación con cortocircuito de expresiones. Cierra [#29403](https://github.com/ClickHouse/ClickHouse/issues/29403). [#29574](https://github.com/ClickHouse/ClickHouse/pull/29574) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige un `segfault` poco frecuente en la consulta `ALTER MODIFY` al usar un identificador de tabla incorrecto en una expresión `DEFAULT` como `x.y.z...` Soluciona [#29184](https://github.com/ClickHouse/ClickHouse/issues/29184). [#29573](https://github.com/ClickHouse/ClickHouse/pull/29573) ([alesapin](https://github.com/alesapin)).
* Se corrige la desreferenciación de nullptr en `GROUP BY WITH TOTALS HAVING` (cuando no se había seleccionado la columna de `HAVING`). [#29553](https://github.com/ClickHouse/ClickHouse/pull/29553) ([Azat Khuzhin](https://github.com/azat)).
* Evita interbloqueos al leer y escribir en tablas del motor Join al mismo tiempo. [#29544](https://github.com/ClickHouse/ClickHouse/pull/29544) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrigió un error en la comprobación `pathStartsWith` debido a un uso incorrecto de `std::mismatch`: ` The behavior is undefined if the second range is shorter than the first range.`. [#29531](https://github.com/ClickHouse/ClickHouse/pull/29531) ([Kseniia Sumarokova](https://github.com/kssenii)).
* En ODBC bridge, se añaden reintentos para el error Invalid cursor state. Es un error recuperable mediante reintentos. Cierra [#29473](https://github.com/ClickHouse/ClickHouse/issues/29473). [#29518](https://github.com/ClickHouse/ClickHouse/pull/29518) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió el análisis incorrecto del nombre de la tabla durante la carga de la base de datos `Lazy`. Corrige [#29456](https://github.com/ClickHouse/ClickHouse/issues/29456). [#29476](https://github.com/ClickHouse/ClickHouse/pull/29476) ([tavplubix](https://github.com/tavplubix)).
* Corrige un posible `Block structure mismatch` en subconsultas con un predicado `HAVING` desplazado hacia abajo. Corrige [#29010](https://github.com/ClickHouse/ClickHouse/issues/29010). [#29475](https://github.com/ClickHouse/ClickHouse/pull/29475) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se ha corregido el error lógico `Cannot capture columns` en las funciones greatest/least. Cierra [#29334](https://github.com/ClickHouse/ClickHouse/issues/29334). [#29454](https://github.com/ClickHouse/ClickHouse/pull/29454) ([Kruglov Pavel](https://github.com/Avogar)).
* Motor de tabla RocksDB: corrección de una condición de carrera durante la apertura de varias DB (y restauración de algunas pruebas que reproducen el problema en CI). [#29393](https://github.com/ClickHouse/ClickHouse/pull/29393) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió el cierre incorrecto del almacenamiento de acceso replicado cuando estaba mal configurado. [#29388](https://github.com/ClickHouse/ClickHouse/pull/29388) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Se elimina la función de ventana `nth_value`, ya que no es segura en términos de memoria. Esto cierra [#29347](https://github.com/ClickHouse/ClickHouse/issues/29347). [#29348](https://github.com/ClickHouse/ClickHouse/pull/29348) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigen las fusiones verticales de las partes de proyección. Con esto se corrige [#29253](https://github.com/ClickHouse/ClickHouse/issues/29253). Este PR también corrige varios problemas de fusión/mutación de proyecciones introducidos en [https://github.com/ClickHouse/ClickHouse/pull/25165](https://github.com/ClickHouse/ClickHouse/pull/25165). [#29337](https://github.com/ClickHouse/ClickHouse/pull/29337) ([Amos Bird](https://github.com/amosbird)).
* Se corrigen las consultas DDL que quedaban bloqueadas en la base de datos Replicated al añadir una nueva réplica. [#29328](https://github.com/ClickHouse/ClickHouse/pull/29328) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Se corrigen los tiempos de espera de conexión (`send_timeout`/`receive_timeout`). [#29282](https://github.com/ClickHouse/ClickHouse/pull/29282) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la posible excepción `Table columns structure in ZooKeeper is different from local table structure` al recrear o crear nuevas réplicas de `ReplicatedMergeTree`, cuando una de las columnas de la tabla tiene expresiones por defecto con funciones no sensibles a mayúsculas y minúsculas. [#29266](https://github.com/ClickHouse/ClickHouse/pull/29266) ([Anton Popov](https://github.com/CurtizJ)).
* Enviar al cliente (a través de TCP) el error normal `Database doesn't exist error` (`UNKNOWN_DATABASE`) en lugar de `Attempt to read after eof` (`ATTEMPT_TO_READ_AFTER_EOF`). [#29229](https://github.com/ClickHouse/ClickHouse/pull/29229) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un error de segmentación al insertar en una columna de tipo LowCardinality(Nullable) en el formato de entrada Avro. [#29132](https://github.com/ClickHouse/ClickHouse/pull/29132) ([Kruglov Pavel](https://github.com/Avogar)).
* No permitir la reutilización de credenciales previas en caso de secreto entre servidores (Antes de INSERT mediante Buffer/Kafka en una tabla distribuida con un secreto entre servidores configurado para ese clúster, podía reutilizarse el usuario establecido previamente para esa conexión). [#29060](https://github.com/ClickHouse/ClickHouse/pull/29060) ([Azat Khuzhin](https://github.com/azat)).
* Gestionar `any_join_distinct_right_table_keys` al hacer un join con un diccionario; soluciona [#29007](https://github.com/ClickHouse/ClickHouse/issues/29007). [#29014](https://github.com/ClickHouse/ClickHouse/pull/29014) ([Vladimir C](https://github.com/vdimir)).
* Corrige el error "No se encontró la columna ... en el bloque" al hacer join sobre una columna con alias, cierra [#26980](https://github.com/ClickHouse/ClickHouse/issues/26980). [#29008](https://github.com/ClickHouse/ClickHouse/pull/29008) ([Vladimir C](https://github.com/vdimir)).
* Se corrige el número de hilos utilizados en la subconsulta `GLOBAL IN` (se ejecutaba en un solo hilo desde la corrección del error [#19414](https://github.com/ClickHouse/ClickHouse/issues/19414)). [#28997](https://github.com/ClickHouse/ClickHouse/pull/28997) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige las optimizaciones incorrectas de ORDER BY si contiene WITH FILL. Esto cierra [#28908](https://github.com/ClickHouse/ClickHouse/issues/28908). Esto cierra [#26049](https://github.com/ClickHouse/ClickHouse/issues/26049). [#28910](https://github.com/ClickHouse/ClickHouse/pull/28910) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigen las funciones de arrays de orden superior (`SIGSEGV` para `arrayCompact`/`ILLEGAL_COLUMN` para `arrayDifference`/`arrayCumSumNonNegative`) al usar constantes. [#28904](https://github.com/ClickHouse/ClickHouse/pull/28904) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la espera de finalización de una mutación con `mutations_sync=2`. [#28889](https://github.com/ClickHouse/ClickHouse/pull/28889) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigen las consultas a bases de datos externas (es decir, MySQL) con varias columnas en IN (es decir, `(k,v) IN ((1, 2))` ). [#28888](https://github.com/ClickHouse/ClickHouse/pull/28888) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un fallo con `LowCardinality` en la evaluación con cortocircuito de funciones. Cierra [#28884](https://github.com/ClickHouse/ClickHouse/issues/28884). [#28887](https://github.com/ClickHouse/ClickHouse/pull/28887) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió la lectura de subcolumnas de partes compactas. [#28873](https://github.com/ClickHouse/ClickHouse/pull/28873) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió una condición de carrera entre `DROP PART` y `REPLACE/MOVE PARTITION` que, en raras ocasiones, podía hacer que las réplicas divergieran. [#28864](https://github.com/ClickHouse/ClickHouse/pull/28864) ([tavplubix](https://github.com/tavplubix)).
* Se corrige la compilación de expresiones con evaluación de cortocircuito. [#28821](https://github.com/ClickHouse/ClickHouse/pull/28821) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un caso extremadamente raro en el que las réplicas de ReplicatedMergeTree pueden divergir tras un reinicio forzado de todas ellas. El error aparece como: `Part ... intersects (previous|next) part ...`. [#28817](https://github.com/ClickHouse/ClickHouse/pull/28817) ([alesapin](https://github.com/alesapin)).
* Se mejora la comprobación de la usabilidad de la conexión y también se captura cualquier excepción durante el apagado de `RabbitMQ`, por si acaso. [#28797](https://github.com/ClickHouse/ClickHouse/pull/28797) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige una condición de carrera benigna en ReplicatedMergeTreeQueue. No debería ser visible para el usuario, pero puede dar lugar a errores sutiles. [#28734](https://github.com/ClickHouse/ClickHouse/pull/28734) ([alesapin](https://github.com/alesapin)).
* Se corrige un posible fallo de `SELECT` con una proyección agregada creada parcialmente en caso de excepción. [#28700](https://github.com/ClickHouse/ClickHouse/pull/28700) ([Amos Bird](https://github.com/amosbird)).
* Se corrige el coredump al crear tablas distribuidas cuando los parámetros proporcionados son incorrectos. [#28686](https://github.com/ClickHouse/ClickHouse/pull/28686) ([Zhiyong Wang](https://github.com/ljcui)).
* Se añaden los alias Settings.Names y Settings.Values para la tabla system.processes. [#28685](https://github.com/ClickHouse/ClickHouse/pull/28685) ([Vitaly](https://github.com/orloffv)).
* Compatibilidad con la biblioteca S2 Geometry: se corrigió el número de argumentos requeridos por las funciones `s2RectAdd` y `s2RectContains`. [#28663](https://github.com/ClickHouse/ClickHouse/pull/28663) ([Bharat Nallan](https://github.com/bharatnc)).
* Se corrige la conversión no válida de tipo constante cuando se usa una clave primaria Nullable o LowCardinality. [#28636](https://github.com/ClickHouse/ClickHouse/pull/28636) ([Amos Bird](https://github.com/amosbird)).
* Se corrige "La columna no está dentro de una función de agregado ni en GROUP BY" con PREWHERE (Soluciona: [#28461](https://github.com/ClickHouse/ClickHouse/issues/28461)). [#28502](https://github.com/ClickHouse/ClickHouse/pull/28502) ([Azat Khuzhin](https://github.com/azat)).

<div id="clickhouse-release-v2110-2021-10-16">
  ### lanzamiento de ClickHouse v21.10, 2021-10-16. [Presentation](https://presentations.clickhouse.com/2021-release-21.10/), [Video](https://www.youtube.com/watch?v=b9MeoOtAivQ)
</div>

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

* Ahora, las siguientes configuraciones de MergeTree a nivel de tabla: `replicated_max_parallel_sends`, `replicated_max_parallel_sends_for_table`, `replicated_max_parallel_fetches`, `replicated_max_parallel_fetches_for_table` ya no tienen ningún efecto. Nunca funcionaron bien y fueron sustituidas por `max_replicated_fetches_network_bandwidth`, `max_replicated_sends_network_bandwidth` y `background_fetches_pool_size`. [#28404](https://github.com/ClickHouse/ClickHouse/pull/28404) ([alesapin](https://github.com/alesapin)).

<div id="new-feature">
  #### Nueva característica
</div>

* Se añade una funcionalidad para crear funciones definidas por el usuario (UDF) como expresiones lambda. Sintaxis `CREATE FUNCTION {function_name} as ({parameters}) -> {function core}`. Ejemplo: `CREATE FUNCTION plus_one as (a) -> a + 1`. Autores: @Realist007. [#27796](https://github.com/ClickHouse/ClickHouse/pull/27796) ([Maksim Kita](https://github.com/kitaisreal)) [#23978](https://github.com/ClickHouse/ClickHouse/pull/23978) ([Realist007](https://github.com/Realist007)).
* Se añaden el motor de almacenamiento `Executable` y la función de tabla `executable`. Permite procesar datos con scripts externos en streaming. [#28102](https://github.com/ClickHouse/ClickHouse/pull/28102) ([Maksim Kita](https://github.com/kitaisreal)) ([ruct](https://github.com/ruct)).
* Se añade el motor de almacenamiento `ExecutablePool`. Es similar a `Executable`, pero utiliza un grupo de procesos de larga duración. [#28518](https://github.com/ClickHouse/ClickHouse/pull/28518) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade la consulta `ALTER TABLE ... MATERIALIZE COLUMN`. [#27038](https://github.com/ClickHouse/ClickHouse/pull/27038) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se añade compatibilidad con la escritura particionada en la función de tabla `s3`. [#23051](https://github.com/ClickHouse/ClickHouse/pull/23051) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se añade compatibilidad con el formato de compresión `lz4` (además de `gz`, `bz2`, `xz`, `zstd`) para la importación y exportación de datos. [#25310](https://github.com/ClickHouse/ClickHouse/pull/25310) ([Bharat Nallan](https://github.com/bharatnc)).
* Se permiten argumentos posicionales con la configuración `enable_positional_arguments`. Cierra [#2592](https://github.com/ClickHouse/ClickHouse/issues/2592). [#27530](https://github.com/ClickHouse/ClickHouse/pull/27530) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se aceptan configuraciones de usuario relacionadas con formatos de archivo en la cláusula `SETTINGS` de la consulta `CREATE` para tablas `s3`. Esto cierra [#27580](https://github.com/ClickHouse/ClickHouse/issues/27580). [#28037](https://github.com/ClickHouse/ClickHouse/pull/28037) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se permite la conexión SSL para el motor `RabbitMQ`. [#28365](https://github.com/ClickHouse/ClickHouse/pull/28365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añade la función `getServerPort`, que permite obtener el puerto del servidor. Si el puerto no está siendo utilizado por el servidor, se lanza una excepción. [#27900](https://github.com/ClickHouse/ClickHouse/pull/27900) ([Amos Bird](https://github.com/amosbird)).
* Se añaden funciones de conversión entre "Snowflake ID" y `DateTime`, `DateTime64`. Véase [#27058](https://github.com/ClickHouse/ClickHouse/issues/27058). [#27704](https://github.com/ClickHouse/ClickHouse/pull/27704) ([jasine](https://github.com/jasine)).
* Se añade la función `SHA512`. [#27830](https://github.com/ClickHouse/ClickHouse/pull/27830) ([zhanglistar](https://github.com/zhanglistar)).
* Se añade la configuración `log_queries_probability`, que permite al usuario escribir en `query_log` solo una muestra de consultas. Cierra [#16609](https://github.com/ClickHouse/ClickHouse/issues/16609). [#27527](https://github.com/ClickHouse/ClickHouse/pull/27527) ([Nikolay Degterinsky](https://github.com/evillique)).

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

* Discos de tipo `web` para almacenar tablas readonly en un servidor web en forma de archivos estáticos. Véase [#23982](https://github.com/ClickHouse/ClickHouse/issues/23982). [#25251](https://github.com/ClickHouse/ClickHouse/pull/25251) ([Kseniia Sumarokova](https://github.com/kssenii)). Esto se necesita principalmente para facilitar las pruebas de funcionamiento sobre almacenamiento compartido y para importar conjuntos de datos con facilidad. No se recomienda su uso antes de la versión 21.11.
* Se añadieron los nuevos comandos `BACKUP` y `RESTORE`. [#21945](https://github.com/ClickHouse/ClickHouse/pull/21945) ([Vitaly Baranov](https://github.com/vitlibar)). Esto está en desarrollo y no está pensado para usarse en la versión actual.

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

* Acelera las funciones de agregación `sumIf` y `countIf`. [#28272](https://github.com/ClickHouse/ClickHouse/pull/28272) ([Raúl Marín](https://github.com/Algunenano)).
* Crea una proyección virtual para el índice `minmax`. Ahora, cuando `allow_experimental_projection_optimization` está habilitado, las consultas usarán el índice `minmax` en lugar de leer los datos, cuando sea posible. [#26286](https://github.com/ClickHouse/ClickHouse/pull/26286) ([Amos Bird](https://github.com/amosbird)).
* Se introducen dos comprobaciones en `sequenceMatch` y `sequenceCount` que permiten salir antes cuando falta en la lista de eventos alguna parte determinista del patrón de secuencia. Este cambio desbloquea muchas consultas que antes fallaban por alcanzar el límite de operaciones y, en general, acelera el pipeline. [#27729](https://github.com/ClickHouse/ClickHouse/pull/27729) ([Jakub Kuklis](https://github.com/jkuklis)).
* Mejora el análisis de la clave primaria con información de monotonicidad para funciones binarias, en particular la división por una constante distinta de cero. [#28302](https://github.com/ClickHouse/ClickHouse/pull/28302) ([Amos Bird](https://github.com/amosbird)).
* Hace que la condición de filtro `hasAll` aproveche los índices bloom filter de omisión de datos. [#27984](https://github.com/ClickHouse/ClickHouse/pull/27984) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Acelera la carga de las partes de datos al retrasar el proceso de inicio de la tabla. [#28313](https://github.com/ClickHouse/ClickHouse/pull/28313) ([Amos Bird](https://github.com/amosbird)).
* Corrige un posible número excesivo de condiciones movidas de `WHERE` a `PREWHERE` (optimización controlada por la configuración `optimize_move_to_prewhere`). [#28139](https://github.com/ClickHouse/ClickHouse/pull/28139) ([lthaooo](https://github.com/lthaooo)).
* Habilita `optimize_distributed_group_by_sharding_key` de forma predeterminada. [#28105](https://github.com/ClickHouse/ClickHouse/pull/28105) ([Azat Khuzhin](https://github.com/azat)).

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

* Comprobar el nombre del clúster antes de crear la tabla `Distributed`; no permitir crear una tabla con un nombre de clúster incorrecto. Corrige [#27832](https://github.com/ClickHouse/ClickHouse/issues/27832). [#27927](https://github.com/ClickHouse/ClickHouse/pull/27927) ([tavplubix](https://github.com/tavplubix)).
* Añada la función de agregación `quantileBFloat16Weighted`, de forma similar a otras funciones quantile...Weighted. Esto cierra [#27745](https://github.com/ClickHouse/ClickHouse/issues/27745). [#27758](https://github.com/ClickHouse/ClickHouse/pull/27758) ([Ivan Novitskiy](https://github.com/RedClusive)).
* Se permite crear diccionarios con una lista vacía de atributos. [#27905](https://github.com/ClickHouse/ClickHouse/pull/27905) ([Maksim Kita](https://github.com/kitaisreal)).
* Agregar documentación interactiva en `clickhouse-client` sobre cómo restablecer la contraseña. Esto resulta útil cuando un usuario instala ClickHouse, configura la contraseña y la olvida al instante. Véase [#27750](https://github.com/ClickHouse/ClickHouse/issues/27750). [#27903](https://github.com/ClickHouse/ClickHouse/pull/27903) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se admite el caso en que los datos estén encerrados en un array en el formato de entrada `JSONAsString`. Cierra [#25517](https://github.com/ClickHouse/ClickHouse/issues/25517). [#25633](https://github.com/ClickHouse/ClickHouse/pull/25633) ([Kruglov Pavel](https://github.com/Avogar)).
* Se agrega una nueva columna `last_queue_update_exception` a la tabla `system.replicas`. [#26843](https://github.com/ClickHouse/ClickHouse/pull/26843) ([nvartolomei](https://github.com/nvartolomei)).
* Se añade compatibilidad con reconexiones en caso de failover para las tablas `MaterializedPostgreSQL`. Cierra [#28529](https://github.com/ClickHouse/ClickHouse/issues/28529). [#28614](https://github.com/ClickHouse/ClickHouse/pull/28614) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Genera un UUID único para el servidor en su primer arranque. [#20089](https://github.com/ClickHouse/ClickHouse/pull/20089) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añade la configuración `connection_wait_timeout` (valor predeterminado: 5 segundos; 0: no esperar) para el motor `MySQL`. [#28474](https://github.com/ClickHouse/ClickHouse/pull/28474) ([Azat Khuzhin](https://github.com/azat)).
* No permitir la creación de `MaterializedPostgreSQL` con argumentos incorrectos. Cierra [#28423](https://github.com/ClickHouse/ClickHouse/issues/28423). [#28430](https://github.com/ClickHouse/ClickHouse/pull/28430) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Usa un archivo tmp real en lugar de "rows\_sources" predefinido para las fusiones verticales. Esto evita generar directorios basura en discos tmp. [#28299](https://github.com/ClickHouse/ClickHouse/pull/28299) ([Amos Bird](https://github.com/amosbird)).
* Se añadió `libhdfs3_conf` a la configuración del servidor en lugar de exportar la variable de entorno `LIBHDFS3_CONF` en clickhouse-server.service. Esto sirve para configurar la interacción con HDFS. [#28268](https://github.com/ClickHouse/ClickHouse/pull/28268) ([Zhichang Yu](https://github.com/yuzhichang)).
* Se corrige la eliminación de partes en estado temporal, que puede provocar una excepción inesperada (`Part %name% doesn't exist`). Corrige [#23661](https://github.com/ClickHouse/ClickHouse/issues/23661). [#28221](https://github.com/ClickHouse/ClickHouse/pull/28221) [#28221](https://github.com/ClickHouse/ClickHouse/issues/28221)) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige `zookeeper_log.address` (antes del primer parche de este PR, la dirección siempre era `::`) y se reduce el número de llamadas a `getpeername(2)` para esta columna (como cada vez que se añade una entrada a `zookeeper_log` se llama a `getpeername()`, esta dirección se almacena en caché en el cliente de zookeeper para evitarlo). [#28212](https://github.com/ClickHouse/ClickHouse/pull/28212) ([Azat Khuzhin](https://github.com/azat)).
* Se admiten conversiones implícitas entre el índice del operador `[]` y la clave de tipo `Map` (p. ej., distintos tipos de `Int`, `String` y `FixedString`). [#28096](https://github.com/ClickHouse/ClickHouse/pull/28096) ([Anton Popov](https://github.com/CurtizJ)).
* Se admite la cláusula `ON CONFLICT` al insertar en el motor de tabla PostgreSQL o en la función de tabla. Cierra [#27727](https://github.com/ClickHouse/ClickHouse/issues/27727). [#28081](https://github.com/ClickHouse/ClickHouse/pull/28081) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se reducen las restricciones del tipo de dato `Enum` para permitir adjuntar datos compatibles. Cierra [#26672](https://github.com/ClickHouse/ClickHouse/issues/26672). [#28028](https://github.com/ClickHouse/ClickHouse/pull/28028) ([Dmitry Novik](https://github.com/novikd)).
* Añadir una opción de configuración `empty_result_for_aggregation_by_constant_keys_on_empty_set` para controlar el comportamiento de la agrupación por claves constantes en un conjunto vacío. Esto recupera el comportamiento anterior de [#6842](https://github.com/ClickHouse/ClickHouse/issues/6842). [#27932](https://github.com/ClickHouse/ClickHouse/pull/27932) ([Amos Bird](https://github.com/amosbird)).
* Se añadió la configuración `replication_wait_for_inactive_replica_timeout`. Permite especificar cuánto tiempo esperar para que las réplicas inactivas ejecuten la consulta `ALTER`/`OPTIMZE`/`TRUNCATE` (el valor predeterminado es de 120 segundos). Si `replication_alter_partitions_sync` es 2 y algunas réplicas permanecen inactivas durante más de `replication_wait_for_inactive_replica_timeout` segundos, se lanzará `UNFINISHED`. [#27931](https://github.com/ClickHouse/ClickHouse/pull/27931) ([tavplubix](https://github.com/tavplubix)).
* Se admite un argumento lambda para el transformador de columnas `APPLY`, que permite aplicar funciones con más de un argumento. Esto corresponde a [#27877](https://github.com/ClickHouse/ClickHouse/issues/27877). [#27901](https://github.com/ClickHouse/ClickHouse/pull/27901) ([Amos Bird](https://github.com/amosbird)).
* Se habilitó `tcp_keep_alive_timeout` de forma predeterminada. [#27882](https://github.com/ClickHouse/ClickHouse/pull/27882) ([Azat Khuzhin](https://github.com/azat)).
* Se mejora la cancelación remota de consultas (en caso de terminación anómala del servidor remoto). [#27881](https://github.com/ClickHouse/ClickHouse/pull/27881) ([Azat Khuzhin](https://github.com/azat)).
* Usar la carga por copia multiparte para objetos grandes de S3. [#27858](https://github.com/ClickHouse/ClickHouse/pull/27858) ([ianton-ru](https://github.com/ianton-ru)).
* Permitir seguir enlaces simbólicos en la ruta del diccionario de la biblioteca. [#27815](https://github.com/ClickHouse/ClickHouse/pull/27815) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ahora, cambiar `T` a `Nullable(T)` con `ALTER MODIFY COLUM` no requiere mutación. [#27787](https://github.com/ClickHouse/ClickHouse/pull/27787) ([victorgao](https://github.com/kafka1991)).
* No se ignoran silenciosamente los errores ni se contabilizan los retrasos en `ReadBufferFromS3`. [#27484](https://github.com/ClickHouse/ClickHouse/pull/27484) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se mejora `ALTER ... MATERIALIZE TTL` al recalcular solo los metadatos, sin ejecutar ninguna acción de TTL real. [#27019](https://github.com/ClickHouse/ClickHouse/pull/27019) ([lthaooo](https://github.com/lthaooo)).
* Permite leer la lista de dominios de nivel superior personalizados sin una nueva línea al final del archivo. [#28213](https://github.com/ClickHouse/ClickHouse/pull/28213) ([Azat Khuzhin](https://github.com/azat)).

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

* Corrige los casos en los que la lectura de datos comprimidos de `carbon-clickhouse` falla con 'attempt to read after end of file'. Cierra [#26149](https://github.com/ClickHouse/ClickHouse/issues/26149). [#28150](https://github.com/ClickHouse/ClickHouse/pull/28150) ([FArthur-cmd](https://github.com/FArthur-cmd)).
* Se corrige la comprobación de los privilegios de acceso al ejecutar la sentencia `GRANT WITH REPLACE` con la cláusula `ON CLUSTER`. Este PR mejora la solución de [#27001](https://github.com/ClickHouse/ClickHouse/pull/27701). [#27983](https://github.com/ClickHouse/ClickHouse/pull/27983) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permite realizar selecciones con `extremes = 1` a partir de una columna del tipo `LowCardinality(UUID)`. [#27918](https://github.com/ClickHouse/ClickHouse/pull/27918) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió la conversión de tipo al estilo de PostgreSQL (operador `::`) para números negativos. [#27876](https://github.com/ClickHouse/ClickHouse/pull/27876) ([Anton Popov](https://github.com/CurtizJ)).
* Después de [#26864](https://github.com/ClickHouse/ClickHouse/pull/26864). Se corrigió el cierre de `NamedSessionStorage`: los contextos de sesión almacenados en `NamedSessionStorage` ahora se destruyen antes de destruir el contexto global. [#27875](https://github.com/ClickHouse/ClickHouse/pull/27875) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrección de un error en el modo "strict" de `windowFunnel`. Esto corrige [#27469](https://github.com/ClickHouse/ClickHouse/issues/27469). [#27563](https://github.com/ClickHouse/ClickHouse/pull/27563) ([achimbab](https://github.com/achimbab)).
* Se corrigió un bucle infinito al leer un archivo `bzip2` truncado. [#28543](https://github.com/ClickHouse/ClickHouse/pull/28543) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el solapamiento de UUID en `DROP TABLE` para DDL interno de `MaterializedMySQL`. MaterializedMySQL es una característica experimental. [#28533](https://github.com/ClickHouse/ClickHouse/pull/28533) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió el error `There is no subcolumn` al hacer SELECT sobre tablas que tienen columnas `Nested` y columnas escalares con un punto en el nombre y el mismo prefijo que `Nested` (p. ej., `n.id UInt32, n.arr1 Array(UInt64), n.arr2 Array(UInt64)`). [#28531](https://github.com/ClickHouse/ClickHouse/pull/28531) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un error que puede provocar el mensaje de error `Existing table metadata in ZooKeeper differs in sorting key expression.` después de un `ALTER` de `ReplicatedVersionedCollapsingMergeTree`. Corrige [#28515](https://github.com/ClickHouse/ClickHouse/issues/28515). [#28528](https://github.com/ClickHouse/ClickHouse/pull/28528) ([alesapin](https://github.com/alesapin)).
* Se corrigió una posible fuga de watches de ZooKeeper (problema menor) durante el procesamiento en segundo plano de la cola de DDL distribuido. Cierra [#26036](https://github.com/ClickHouse/ClickHouse/issues/26036). [#28446](https://github.com/ClickHouse/ClickHouse/pull/28446) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió la falta de comillas en los nombres de las tablas del motor `MaterializedPostgreSQL`. Cierra [#28316](https://github.com/ClickHouse/ClickHouse/issues/28316). [#28433](https://github.com/ClickHouse/ClickHouse/pull/28433) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige el comportamiento incorrecto de las filas sin coincidencia de una columna Nullable. Cierra [#27691](https://github.com/ClickHouse/ClickHouse/issues/27691). [#28349](https://github.com/ClickHouse/ClickHouse/pull/28349) ([vdimir](https://github.com/vdimir)).
* Se corrige la optimización del índice NOT-IN cuando no se utilizan todas las columnas de la clave. Esto corrige [#28120](https://github.com/ClickHouse/ClickHouse/issues/28120). [#28315](https://github.com/ClickHouse/ClickHouse/pull/28315) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió el problema de partes superpuestas causado porque una parte nueva había sido reemplazada por una parte vacía. [#28310](https://github.com/ClickHouse/ClickHouse/pull/28310) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió el resultado inconsistente de las consultas con `ORDER BY` y tablas Merge con la configuración `optimize_read_in_order` habilitada. [#28266](https://github.com/ClickHouse/ClickHouse/pull/28266) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige una posible lectura de memoria sin inicializar en consultas con el tipo `Nullable(LowCardinality)` y la configuración `extremes` establecida en 1. Corrige [#28165](https://github.com/ClickHouse/ClickHouse/issues/28165). [#28205](https://github.com/ClickHouse/ClickHouse/pull/28205) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Varias correcciones pequeñas en las proyecciones. Consulte la descripción detallada en el PR. [#28178](https://github.com/ClickHouse/ClickHouse/pull/28178) ([Amos Bird](https://github.com/amosbird)).
* Corregidos fallos de segmentación extremadamente raros durante el apagado debido a un orden incorrecto al detener el recargador de contexto/configuración. [#28088](https://github.com/ClickHouse/ClickHouse/pull/28088) ([nvartolomei](https://github.com/nvartolomei)).
* Se ha corregido el manejo del valor NULL con el tipo `Nullable(String)` en la función `JSONExtract`. Esto corrige [#27929](https://github.com/ClickHouse/ClickHouse/issues/27929) y [#27930](https://github.com/ClickHouse/ClickHouse/issues/27930). Esto se introdujo en [https://github.com/ClickHouse/ClickHouse/pull/25452](https://github.com/ClickHouse/ClickHouse/pull/25452) . [#27939](https://github.com/ClickHouse/ClickHouse/pull/27939) ([Amos Bird](https://github.com/amosbird)).
* Múltiples correcciones para la nueva herramienta `clickhouse-keeper`. Se corrige un error poco frecuente en `clickhouse-keeper` por el que el cliente podía recibir una respuesta de watch antes de la respuesta a la solicitud correspondiente. [#28197](https://github.com/ClickHouse/ClickHouse/pull/28197) ([alesapin](https://github.com/alesapin)). Se corrige un comportamiento incorrecto en `clickhouse-keeper` cuando los watches de lista (`getChildren`) se activaban con solicitudes `set` para nodos hijos. [#28190](https://github.com/ClickHouse/ClickHouse/pull/28190) ([alesapin](https://github.com/alesapin)). Se corrige un caso poco frecuente en el que los cambios en la configuración de `clickhouse-keeper` podían provocar la pérdida de logs y que el servidor se quedara bloqueado. [#28360](https://github.com/ClickHouse/ClickHouse/pull/28360) ([alesapin](https://github.com/alesapin)). Se corrige un error en `clickhouse-keeper` que podía provocar logs sin fin cuando se reducía `rotate_logs_interval`. [#28152](https://github.com/ClickHouse/ClickHouse/pull/28152) ([alesapin](https://github.com/alesapin)).

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

* Se habilitó Thread Fuzzer en la prueba de estrés. Thread Fuzzer es una funcionalidad de ClickHouse que permite probar más permutaciones de la planificación de hilos y descubrir más problemas potenciales. Esto cierra [#9813](https://github.com/ClickHouse/ClickHouse/issues/9813). Esto cierra [#9814](https://github.com/ClickHouse/ClickHouse/issues/9814). Esto cierra [#9515](https://github.com/ClickHouse/ClickHouse/issues/9515). Esto cierra [#9516](https://github.com/ClickHouse/ClickHouse/issues/9516). [#27538](https://github.com/ClickHouse/ClickHouse/pull/27538) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió un nuevo nivel de registro, `test`, para entornos de prueba. Es incluso más detallado que el `trace` predeterminado. [#28559](https://github.com/ClickHouse/ClickHouse/pull/28559) ([alesapin](https://github.com/alesapin)).
* Se imprime la información del estado de git en la etapa de configuración de CMake. [#28047](https://github.com/ClickHouse/ClickHouse/pull/28047) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Se cambió temporalmente el repositorio apt de Ubuntu al servidor espejo ru.archive.ubuntu.com, ya que el predeterminado (archive.ubuntu.com) no responde desde nuestro CI. [#28016](https://github.com/ClickHouse/ClickHouse/pull/28016) ([Ilya Yatsishin](https://github.com/qoega)).

<div id="clickhouse-release-v219-2021-09-09">
  ### Lanzamiento de ClickHouse v21.9, 2021-09-09
</div>

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

* No mostrar ceros finales en la representación textual de los tipos `Decimal`. Ejemplo: se imprimirá `1.23` en lugar de `1.230000` para un decimal con escala 6. Esto cierra [#15794](https://github.com/ClickHouse/ClickHouse/issues/15794). Puede introducir una ligera incompatibilidad si sus aplicaciones dependían de algún modo de esos ceros finales. La serialización en los formatos de salida puede controlarse con el ajuste `output_format_decimal_trailing_zeros`. La implementación de `toString` y la conversión a String cambian incondicionalmente. [#27680](https://github.com/ClickHouse/ClickHouse/pull/27680) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* No permitir aplicar una función de agregado paramétrica con el combinador `-Merge` al estado de una función de agregado si ese estado fue producido por una función de agregado con parámetros distintos. Por ejemplo, el estado de `fooState(42)(x)` no puede finalizarse con `fooMerge(s)` ni con `fooMerge(123)(s)`; los parámetros deben especificarse explícitamente, como en `fooMerge(42)(s)`, y deben coincidir. Esto no afecta a algunas funciones de agregado especiales como `quantile` y `sequence*`, que usan parámetros solo para la finalización. [#26847](https://github.com/ClickHouse/ClickHouse/pull/26847) ([tavplubix](https://github.com/tavplubix)).
* En clickhouse-local, tratar siempre las direcciones locales con puerto como remotas. [#26736](https://github.com/ClickHouse/ClickHouse/pull/26736) ([Raúl Marín](https://github.com/Algunenano)).
* Corregido el problema por el que, en algunas consultas complejas con alias de columna idénticos a los nombres de las expresiones, podía producirse una conversión incorrecta. Esto corrige [#25447](https://github.com/ClickHouse/ClickHouse/issues/25447). Esto corrige [#26914](https://github.com/ClickHouse/ClickHouse/issues/26914). Esta corrección puede introducir incompatibilidad con versiones anteriores: si hay expresiones distintas con nombres idénticos, se lanzará una excepción. Puede romper algunos casos poco frecuentes cuando `enable_optimize_predicate_expression` está habilitado. [#26639](https://github.com/ClickHouse/ClickHouse/pull/26639) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ahora, una subconsulta escalar siempre devuelve un resultado `Nullable` si su tipo puede ser `Nullable`. Esto es necesario porque, en el caso de una subconsulta vacía, su resultado debería ser `Null`. Antes, era posible obtener un error sobre tipos incompatibles (la deducción de tipos no ejecuta la subconsulta escalar y podía usar un tipo no anulable). Una subconsulta escalar con resultado vacío que no puede convertirse a `Nullable` (como `Array` o `Tuple`) ahora lanza un error. Corrige [#25411](https://github.com/ClickHouse/ClickHouse/issues/25411). [#26423](https://github.com/ClickHouse/ClickHouse/pull/26423) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se introduce sintaxis para here-documents. Ejemplo: `SELECT $doc$ VALUE $doc$`. [#26671](https://github.com/ClickHouse/ClickHouse/pull/26671) ([Maksim Kita](https://github.com/kitaisreal)). Este cambio es incompatible con versiones anteriores si en la consulta hay identificadores que contienen `$` [#28768](https://github.com/ClickHouse/ClickHouse/issues/28768).
* Ahora los índices pueden manejar tipos `Nullable`, incluidos `isNull` y `isNotNull`. [#12433](https://github.com/ClickHouse/ClickHouse/pull/12433) y [#12455](https://github.com/ClickHouse/ClickHouse/pull/12455) ([Amos Bird](https://github.com/amosbird)) y [#27250](https://github.com/ClickHouse/ClickHouse/pull/27250) ([Azat Khuzhin](https://github.com/azat)). Pero esto implicó cambios en el formato en disco y, aunque el servidor nuevo puede leer datos antiguos, el servidor antiguo no puede. Además, si tiene índices de omisión de datos `MINMAX`, puede obtener el error `Data after mutation/merge is not byte-identical`, ya que el nuevo índice tendrá la extensión `.idx2`, mientras que antes era `.idx`. Por ello, no debería retrasar la actualización de todas las réplicas existentes en este caso; de lo contrario, si una réplica antigua (\<21.9) descarga datos de una réplica nueva con 21.9+, no podrá aplicar el índice a la parte descargada.

<div id="new-feature">
  #### Nueva característica
</div>

* Implementación de la evaluación de funciones con cortocircuito; cierra [#12587](https://github.com/ClickHouse/ClickHouse/issues/12587). Se añade la opción de configuración `short_circuit_function_evaluation` para controlar la evaluación de funciones con cortocircuito. [#23367](https://github.com/ClickHouse/ClickHouse/pull/23367) ([Kruglov Pavel](https://github.com/Avogar)).
* Se agregó compatibilidad con los operadores INTERSECT, EXCEPT, ANY y ALL. [#24757](https://github.com/ClickHouse/ClickHouse/pull/24757) ([Kirill Ershov](https://github.com/zdikov)). ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió compatibilidad con el cifrado a nivel del sistema de archivos virtual (cifrado de datos en reposo) mediante el algoritmo AES-CTR. [#24206](https://github.com/ClickHouse/ClickHouse/pull/24206) ([Latysheva Alexandra](https://github.com/alexelex)). ([Vitaly Baranov](https://github.com/vitlibar)) [#26733](https://github.com/ClickHouse/ClickHouse/pull/26733) [#26377](https://github.com/ClickHouse/ClickHouse/pull/26377) [#26465](https://github.com/ClickHouse/ClickHouse/pull/26465).
* Se añadieron funciones de procesamiento del lenguaje natural (NLP) para la tokenización, el stemming, la lematización y la búsqueda en extensiones de sinónimos. [#24997](https://github.com/ClickHouse/ClickHouse/pull/24997) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añadió la integración con la biblioteca de geometría S2. [#24980](https://github.com/ClickHouse/ClickHouse/pull/24980) ([Andr0901](https://github.com/Andr0901)). ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añaden el motor de tabla SQLite, la función de tabla y el motor de base de datos. [#24194](https://github.com/ClickHouse/ClickHouse/pull/24194) ([Arslan Gumerov](https://github.com/g-arslan)). ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió compatibilidad con consultas personalizadas para la fuente de diccionario `MySQL`, `PostgreSQL`, `ClickHouse`, `JDBC` y `Cassandra`. Cierra [#1270](https://github.com/ClickHouse/ClickHouse/issues/1270). [#26995](https://github.com/ClickHouse/ClickHouse/pull/26995) ([Maksim Kita](https://github.com/kitaisreal)).
* Añade almacenamiento compartido (replicado) de usuarios, roles, políticas de fila, cuotas y perfiles de configuración mediante ZooKeeper. [#27426](https://github.com/ClickHouse/ClickHouse/pull/27426) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Añade compresión para `INTO OUTFILE` con selección automática del algoritmo de compresión. Cierra [#3473](https://github.com/ClickHouse/ClickHouse/issues/3473). [#27134](https://github.com/ClickHouse/ClickHouse/pull/27134) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Se añade `INSERT ... FROM INFILE`, de forma similar a `SELECT ... INTO OUTFILE`. [#27655](https://github.com/ClickHouse/ClickHouse/pull/27655) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Se añadió el Diccionario `complex_key_range_hashed`. Cierra [#22029](https://github.com/ClickHouse/ClickHouse/issues/22029). [#27629](https://github.com/ClickHouse/ClickHouse/pull/27629) ([Maksim Kita](https://github.com/kitaisreal)).
* Se admiten expresiones en la cláusula JOIN ON. Cierra [#21868](https://github.com/ClickHouse/ClickHouse/issues/21868). [#24420](https://github.com/ClickHouse/ClickHouse/pull/24420) ([Vladimir C](https://github.com/vdimir)).
* Cuando el cliente se conecta al servidor, recibe información sobre todas las advertencias que el servidor ya había recopilado. (Esto se puede desactivar con la opción `--no-warnings`). Se añade la tabla `system.warnings` para recopilar advertencias sobre la configuración del servidor. [#26246](https://github.com/ClickHouse/ClickHouse/pull/26246) ([Filatenkov Artur](https://github.com/FArthur-cmd)). [#26282](https://github.com/ClickHouse/ClickHouse/pull/26282) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Permitir el uso de expresiones constantes de WITH y SELECT en los parámetros de las funciones de agregado. Cierra [#10945](https://github.com/ClickHouse/ClickHouse/issues/10945). [#27531](https://github.com/ClickHouse/ClickHouse/pull/27531) ([abel-cheng](https://github.com/abel-cheng)).
* Se añade `tupleToNameValuePairs`, una función que convierte una tupla nombrada en un array de pares. [#27505](https://github.com/ClickHouse/ClickHouse/pull/27505) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Se añadió compatibilidad con el método de compresión `bzip2` para la importación/exportación. Cierra [#22428](https://github.com/ClickHouse/ClickHouse/issues/22428). [#27377](https://github.com/ClickHouse/ClickHouse/pull/27377) ([Nikolay Degterinsky](https://github.com/evillique)).
* Se añadió la función `bitmapSubsetOffsetLimit(bitmap, offset, cardinality_limit)`. Crea un subconjunto del bitmap y limita los resultados a `cardinality_limit` con un desplazamiento de `offset`. [#27234](https://github.com/ClickHouse/ClickHouse/pull/27234) ([DHBin](https://github.com/DHBin)).
* Se agrega la columna `default_database` a `system.users`. [#27054](https://github.com/ClickHouse/ClickHouse/pull/27054) ([kevin wan](https://github.com/MaxWk)).
* Se agregó compatibilidad con macros de `cluster` en las funciones de tabla 'cluster' y 'clusterAllReplicas'. [#26913](https://github.com/ClickHouse/ClickHouse/pull/26913) ([polyprogrammist](https://github.com/PolyProgrammist)).
* Se añaden nuevas funciones `currentRoles()`, `enabledRoles()`, `defaultRoles()`. [#26780](https://github.com/ClickHouse/ClickHouse/pull/26780) ([Vitaly Baranov](https://github.com/vitlibar)).
* Nuevas funciones `currentProfiles()`, `enabledProfiles()`, `defaultProfiles()`. [#26714](https://github.com/ClickHouse/ClickHouse/pull/26714) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añaden funciones que devuelven el (initial\_)query\_id de la consulta actual. Con esto se cierra [#23682](https://github.com/ClickHouse/ClickHouse/issues/23682). [#26410](https://github.com/ClickHouse/ClickHouse/pull/26410) ([Alexey Boykov](https://github.com/mathalex)).
* Se añadió la funcionalidad `REPLACE GRANT`. [#26384](https://github.com/ClickHouse/ClickHouse/pull/26384) ([Caspian](https://github.com/Cas-pian)).
* La consulta `EXPLAIN` ahora cuenta con el modo `EXPLAIN ESTIMATE ...`, que mostrará información sobre las filas, marcas y partes leídas de las tablas MergeTree. Cierra [#23941](https://github.com/ClickHouse/ClickHouse/issues/23941). [#26131](https://github.com/ClickHouse/ClickHouse/pull/26131) ([fastio](https://github.com/fastio)).
* Se añadió la tabla `system.zookeeper_log`. Todas las acciones del cliente de ZooKeeper quedan registradas en esta tabla. Implementa [#25449](https://github.com/ClickHouse/ClickHouse/issues/25449). [#26129](https://github.com/ClickHouse/ClickHouse/pull/26129) ([tavplubix](https://github.com/tavplubix)).
* Replicación zero-copy de `ReplicatedMergeTree` sobre almacenamiento `HDFS`. [#25918](https://github.com/ClickHouse/ClickHouse/pull/25918) ([Zhichang Yu](https://github.com/yuzhichang)).
* Permite insertar el tipo Nested como un array de estructuras en los formatos de entrada `Arrow`, `ORC` y `Parquet`. [#25902](https://github.com/ClickHouse/ClickHouse/pull/25902) ([Kruglov Pavel](https://github.com/Avogar)).
* Añade un nuevo tipo de datos `Date32` (almacena los datos como Int32), admite el mismo intervalo de fechas que `DateTime64`, permite cargar `date32` de Parquet en `Date32` de ClickHouse. Añade la nueva función `toDate32`, similar a `toDate`. [#25774](https://github.com/ClickHouse/ClickHouse/pull/25774) ([LiuNeng](https://github.com/liuneng1994)).
* Permite establecer la base de datos predeterminada para el usuario. [#25268](https://github.com/ClickHouse/ClickHouse/issues/25268). [#25687](https://github.com/ClickHouse/ClickHouse/pull/25687) ([kevin wan](https://github.com/MaxWk)).
* Agrega un parámetro opcional al motor `MongoDB` para aceptar opciones de cadena de conexión y admitir conexiones SSL. Cierra [#21189](https://github.com/ClickHouse/ClickHouse/issues/21189). Cierra [#21041](https://github.com/ClickHouse/ClickHouse/issues/21041). [#22045](https://github.com/ClickHouse/ClickHouse/pull/22045) ([Omar Bazaraa](https://github.com/OmarBazaraa)).

<div id="experimental-feature-3">
  #### Característica experimental
</div>

* Se añadió un códec de compresión `AES_128_GCM_SIV` que cifra columnas en lugar de comprimirlas. [#19896](https://github.com/ClickHouse/ClickHouse/pull/19896) ([PHO](https://github.com/depressed-pho)). Se reescribirá; no lo use.
* Se cambió el nombre de `MaterializeMySQL` a `MaterializedMySQL`. [#26822](https://github.com/ClickHouse/ClickHouse/pull/26822) ([tavplubix](https://github.com/tavplubix)).

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

* Mejora el rendimiento de las consultas rápidas cuando `max_execution_time = 0` al reducir el número de llamadas al sistema `clock_gettime`. [#27325](https://github.com/ClickHouse/ClickHouse/pull/27325) ([filimonov](https://github.com/filimonov)).
* Especializa las comparaciones relacionadas con fecha y hora para mejorar el rendimiento. Esto corrige [#27083](https://github.com/ClickHouse/ClickHouse/issues/27083). [#27122](https://github.com/ClickHouse/ClickHouse/pull/27122) ([Amos Bird](https://github.com/amosbird)).
* Comparte descriptores de archivo en lecturas concurrentes de los mismos archivos. No hay una diferencia de rendimiento apreciable en Linux. Pero el número de archivos abiertos será significativamente menor (entre 10 y 100 veces) en servidores típicos, lo que facilita las operaciones. Consulta [#26214](https://github.com/ClickHouse/ClickHouse/issues/26214). [#26768](https://github.com/ClickHouse/ClickHouse/pull/26768) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora la latencia de las consultas cortas que requieren leer tablas con una gran cantidad de columnas. [#26371](https://github.com/ClickHouse/ClickHouse/pull/26371) ([Anton Popov](https://github.com/CurtizJ)).
* No crea conjuntos para índices al analizar una consulta. [#26365](https://github.com/ClickHouse/ClickHouse/pull/26365) ([Raúl Marín](https://github.com/Algunenano)).
* Vectoriza la función SUM de tipos enteros Nullable con representación nativa ([David Manzanares](https://github.com/davidmanzanares), [Raúl Marín](https://github.com/Algunenano)). [#26248](https://github.com/ClickHouse/ClickHouse/pull/26248) ([Raúl Marín](https://github.com/Algunenano)).
* Compila expresiones que involucran columnas con tipos `Enum`. [#26237](https://github.com/ClickHouse/ClickHouse/pull/26237) ([Maksim Kita](https://github.com/kitaisreal)).
* Compila las funciones agregadas `groupBitOr`, `groupBitAnd`, `groupBitXor`. [#26161](https://github.com/ClickHouse/ClickHouse/pull/26161) ([Maksim Kita](https://github.com/kitaisreal)).
* Mejora el uso de memoria con una mejor predicción del tamaño del bloque al leer columnas DEFAULT vacías. Cierra [#17317](https://github.com/ClickHouse/ClickHouse/issues/17317). [#25917](https://github.com/ClickHouse/ClickHouse/pull/25917) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Reduce el uso de memoria y el número de filas leídas en consultas con `ORDER BY primary_key`. [#25721](https://github.com/ClickHouse/ClickHouse/pull/25721) ([Anton Popov](https://github.com/CurtizJ)).
* Habilita `distributed_push_down_limit` de forma predeterminada. [#27104](https://github.com/ClickHouse/ClickHouse/pull/27104) ([Azat Khuzhin](https://github.com/azat)).
* Hace que `toTimeZone` sea monótona cuando timeZone es un valor constante para admitir la poda de particiones al usar SQL como este:. [#26261](https://github.com/ClickHouse/ClickHouse/pull/26261) ([huangzhaowei](https://github.com/SaintBacchus)).

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

* Marque las funciones de ventana como aptas para uso general. Elimine la configuración `allow_experimental_window_functions`. [#27184](https://github.com/ClickHouse/ClickHouse/pull/27184) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Mejora la compatibilidad con desfases de zona horaria que no se expresan en minutos enteros. [#27080](https://github.com/ClickHouse/ClickHouse/pull/27080) ([Raúl Marín](https://github.com/Algunenano)).
* Si el descriptor de archivo de la tabla `File` es un archivo regular, permitir leerlo varias veces. Esto permite que `clickhouse-local` lea varias veces desde stdin (con múltiples consultas `SELECT` o subconsultas) si stdin es un archivo regular, como en `clickhouse-local --query "SELECT * FROM table UNION ALL SELECT * FROM table" ... < file`. Esto cierra [#11124](https://github.com/ClickHouse/ClickHouse/issues/11124). En coautoría con ([alexey-milovidov](https://github.com/alexey-milovidov)). [#25960](https://github.com/ClickHouse/ClickHouse/pull/25960) ([BoloniniD](https://github.com/BoloniniD)).
* Elimina el análisis de índices duplicado y evita posibles comprobaciones de límites no válidas durante el análisis de proyecciones. [#27742](https://github.com/ClickHouse/ClickHouse/pull/27742) ([Amos Bird](https://github.com/amosbird)).
* Permite enviar parámetros de consulta en el cuerpo de las solicitudes HTTP. [#27706](https://github.com/ClickHouse/ClickHouse/pull/27706) ([Hermano Lustosa](https://github.com/hllustosa)).
* Ya no se permite `arrayJoin` en las expresiones de partición. [#27648](https://github.com/ClickHouse/ClickHouse/pull/27648) ([Raúl Marín](https://github.com/Algunenano)).
* Registrar la dirección IP del cliente cuando falle la autenticación. [#27514](https://github.com/ClickHouse/ClickHouse/pull/27514) ([Misko Lee](https://github.com/imiskolee)).
* Usa bytes en lugar de cadenas para los datos binarios en el protocolo GRPC. [#27431](https://github.com/ClickHouse/ClickHouse/pull/27431) ([Vitaly Baranov](https://github.com/vitlibar)).
* Enviar una respuesta con un mensaje de error si el puerto HTTP no está configurado y el usuario intenta enviar una solicitud HTTP al puerto TCP. [#27385](https://github.com/ClickHouse/ClickHouse/pull/27385) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Se agrega la función `_CAST` para uso interno, que no preservará la propiedad Nullable del tipo, mientras que la conversión no interna sí la preservará según la configuración `cast_keep_nullable`. Cierra [#12636](https://github.com/ClickHouse/ClickHouse/issues/12636). [#27382](https://github.com/ClickHouse/ClickHouse/pull/27382) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añade la configuración `log_formatted_queries` para registrar una consulta formateada adicional en `system.query_log`. Es útil para el análisis de consultas normalizadas porque funciones como `normalizeQuery` y `normalizeQueryKeepNames` no analizan ni formatean consultas para lograr un mejor rendimiento. [#27380](https://github.com/ClickHouse/ClickHouse/pull/27380) ([Amos Bird](https://github.com/amosbird)).
* Se agregan dos opciones de configuración, `max_hyperscan_regexp_length` y `max_hyperscan_regexp_total_length`, para evitar el uso de regexp enormes en funciones relacionadas con hyperscan, como `multiMatchAny`. [#27378](https://github.com/ClickHouse/ClickHouse/pull/27378) ([Amos Bird](https://github.com/amosbird)).
* La memoria consumida por las funciones de agregado de bitmap ahora se tiene en cuenta para los límites de memoria. Esto cierra [#26555](https://github.com/ClickHouse/ClickHouse/issues/26555). [#27252](https://github.com/ClickHouse/ClickHouse/pull/27252) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió una caché de 10 segundos al resolvedor de proxy de S3. [#27216](https://github.com/ClickHouse/ClickHouse/pull/27216) ([ianton-ru](https://github.com/ianton-ru)).
* Se dividió el mutex global en construcciones individuales de expresiones regulares. Esto ayuda a evitar que la construcción de expresiones regulares, cuando es muy grande, bloquee otros hilos relacionados. [#27211](https://github.com/ClickHouse/ClickHouse/pull/27211) ([Amos Bird](https://github.com/amosbird)).
* Compatibilidad con esquemas para el motor de base de datos PostgreSQL. Cierra [#27166](https://github.com/ClickHouse/ClickHouse/issues/27166). [#27198](https://github.com/ClickHouse/ClickHouse/pull/27198) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se agregó el seguimiento del uso de memoria en clickhouse-client. [#27191](https://github.com/ClickHouse/ClickHouse/pull/27191) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Intentar registrar `query_kind` en `system.query_log` incluso cuando la consulta no llega a iniciarse. [#27182](https://github.com/ClickHouse/ClickHouse/pull/27182) ([Amos Bird](https://github.com/amosbird)).
* Se añadieron las columnas `replica_is_active`, que asignan el nombre de la réplica a su estado de actividad, a la tabla `system.replicas`. Cierra [#27138](https://github.com/ClickHouse/ClickHouse/issues/27138). [#27180](https://github.com/ClickHouse/ClickHouse/pull/27180) ([Maksim Kita](https://github.com/kitaisreal)).
* Permitir pasar los ajustes de la consulta a través de la URI del servidor en la interfaz web. [#27177](https://github.com/ClickHouse/ClickHouse/pull/27177) ([kolsys](https://github.com/kolsys)).
* Agrega una nueva métrica llamada `MaxPushedDDLEntryID`, que es el ID máximo de entrada DDL que el nodo actual envía a ZooKeeper. [#27174](https://github.com/ClickHouse/ClickHouse/pull/27174) ([Fuwang Hu](https://github.com/fuwhu)).
* Se mejoró la comprobación de la condición de existencia y de los nodos con cadena vacía cuando `clickhouse-keeper` crea un znode. [#27125](https://github.com/ClickHouse/ClickHouse/pull/27125) ([小路](https://github.com/nicelulu)).
* Merge JOIN maneja correctamente un conjunto vacío en el lado derecho. [#27078](https://github.com/ClickHouse/ClickHouse/pull/27078) ([Vladimir C](https://github.com/vdimir)).
* Ahora las funciones pueden ser constantes a nivel de segmento, lo que significa que, si se ejecutan en el contexto de una tabla distribuida, generan una columna normal; de lo contrario, producen un valor constante. Entre las funciones más destacadas se encuentran: `hostName()`, `tcpPort()`, `version()`, `buildId()`, `uptime()`, etc. [#27020](https://github.com/ClickHouse/ClickHouse/pull/27020) ([Amos Bird](https://github.com/amosbird)).
* `extractAllGroupsHorizontal` actualizado: ahora se puede establecer el límite máximo del número de coincidencias por fila mediante un tercer argumento opcional. [#26961](https://github.com/ClickHouse/ClickHouse/pull/26961) ([Vasily Nemkov](https://github.com/Enmk)).
* Exponer las estadísticas de `RocksDB` mediante la tabla system.rocksdb. Leer las opciones de RocksDB desde la configuración de ClickHouse (claves `rocksdb...`). NOTA: ClickHouse no depende de RocksDB; es solo uno de los motores de almacenamiento de integración adicionales. [#26821](https://github.com/ClickHouse/ClickHouse/pull/26821) ([Azat Khuzhin](https://github.com/azat)).
* Logs internos de RocksDB menos verbosos. NOTA: ClickHouse no depende de RocksDB; es solo uno de los motores de almacenamiento adicionales para integraciones. Esto cierra [#26252](https://github.com/ClickHouse/ClickHouse/issues/26252). [#26789](https://github.com/ClickHouse/ClickHouse/pull/26789) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Cambiar los roles predeterminados solo afecta a las nuevas sesiones. [#26759](https://github.com/ClickHouse/ClickHouse/pull/26759) ([Vitaly Baranov](https://github.com/vitlibar)).
* Watchdog está deshabilitado en docker de forma predeterminada. Corrección del problema al no manejar Ctrl+C. [#26757](https://github.com/ClickHouse/ClickHouse/pull/26757) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* `SET PROFILE` ahora también aplica restricciones si están establecidas para el perfil especificado. [#26730](https://github.com/ClickHouse/ClickHouse/pull/26730) ([Vitaly Baranov](https://github.com/vitlibar)).
* Mejora el manejo de las solicitudes de `KILL QUERY`. [#26675](https://github.com/ClickHouse/ClickHouse/pull/26675) ([Raúl Marín](https://github.com/Algunenano)).
* La función `mapPopulatesSeries` admite el tipo `Map`. [#26663](https://github.com/ClickHouse/ClickHouse/pull/26663) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Se corrigen los intentos de conexión excesivos (x2) al usar `skip_unavailable_shards`. [#26658](https://github.com/ClickHouse/ClickHouse/pull/26658) ([Azat Khuzhin](https://github.com/azat)).
* Evita que `clickhouse-benchmark` se bloquee si falla la conexión (es decir, con EMFILE). [#26656](https://github.com/ClickHouse/ClickHouse/pull/26656) ([Azat Khuzhin](https://github.com/azat)).
* Permitir que el motor Kafka use más hilos. [#26642](https://github.com/ClickHouse/ClickHouse/pull/26642) ([feihengye](https://github.com/feihengye)).
* Se añade compatibilidad con round-robin para `clickhouse-benchmark` (no difiere de la ejecución habitual con varios hosts/puertos, excepto en el informe de estadísticas). [#26607](https://github.com/ClickHouse/ClickHouse/pull/26607) ([Azat Khuzhin](https://github.com/azat)).
* Los diccionarios ejecutables (`executable`, `executable_pool`) permiten crearlos con una consulta DDL mediante `clickhouse-local`. Cierra [#22355](https://github.com/ClickHouse/ClickHouse/issues/22355). [#26510](https://github.com/ClickHouse/ClickHouse/pull/26510) ([Maksim Kita](https://github.com/kitaisreal)).
* Define el tipo de consulta del cliente para los controladores de protocolo de compatibilidad de `mysql` y `postgresql`. [#26498](https://github.com/ClickHouse/ClickHouse/pull/26498) ([anneji-dev](https://github.com/anneji-dev)).
* Aplica `LIMIT` en los segmentos para consultas como `SELECT * FROM dist ORDER BY key LIMIT 10` con `distributed_push_down_limit=1`. Evita ejecutar pasos de `Distinct`/`LIMIT BY` para consultas como `SELECT DISTINCT shading_key FROM dist ORDER BY key`. Ahora la optimización `optimize_distributed_group_by_sharding_key` respeta `distributed_push_down_limit`. [#26466](https://github.com/ClickHouse/ClickHouse/pull/26466) ([Azat Khuzhin](https://github.com/azat)).
* Se actualizó protobuf a la versión 3.17.3. Los registros de cambios están disponibles en [https://github.com/protocolbuffers/protobuf/releases](https://github.com/protocolbuffers/protobuf/releases). [#26424](https://github.com/ClickHouse/ClickHouse/pull/26424) ([Ilya Yatsishin](https://github.com/qoega)).
* Se habilitó la configuración `use_hedged_requests`, que permite mitigar la latencia de cola en clústeres grandes. [#26380](https://github.com/ClickHouse/ClickHouse/pull/26380) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora del comportamiento cuando hay un host inexistente en la lista de hosts permitidos del usuario. [#26368](https://github.com/ClickHouse/ClickHouse/pull/26368) ([ianton-ru](https://github.com/ianton-ru)).
* Se añade la posibilidad de configurar los ajustes del monitor del directorio de `Distributed` mediante CREATE TABLE (es decir, `CREATE TABLE dist (key Int) Engine=Distributed(cluster, db, table) SETTINGS monitor_batch_inserts=1` y similares). [#26336](https://github.com/ClickHouse/ClickHouse/pull/26336) ([Azat Khuzhin](https://github.com/azat)).
* Guardar la dirección del servidor en las URL del historial de la UI web si difiere del origen de la UI web. Esto cierra [#26044](https://github.com/ClickHouse/ClickHouse/issues/26044). [#26322](https://github.com/ClickHouse/ClickHouse/pull/26322) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadieron eventos de perfil para las llamadas a `sleep` / `sleepEachRow`. [#26320](https://github.com/ClickHouse/ClickHouse/pull/26320) ([Raúl Marín](https://github.com/Algunenano)).
* Permite reutilizar las conexiones a los segmentos entre distintos clústeres. También evita crear nuevas conexiones al usar la función de tabla `cluster`. [#26318](https://github.com/ClickHouse/ClickHouse/pull/26318) ([Amos Bird](https://github.com/amosbird)).
* Permite controlar la frecuencia de ejecución de la limpieza de directorios temporales antiguos mediante un parámetro con valor predeterminado. [#26212](https://github.com/ClickHouse/ClickHouse/issues/26212). [#26313](https://github.com/ClickHouse/ClickHouse/pull/26313) ([fastio](https://github.com/fastio)).
* Se agrega una configuración `function_range_max_elements_in_block` para ajustar el umbral de seguridad del volumen de datos generado por la función `range`. Esto cierra [#26303](https://github.com/ClickHouse/ClickHouse/issues/26303). [#26305](https://github.com/ClickHouse/ClickHouse/pull/26305) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Comprobar la función hash al crear la tabla, no durante el muestreo. Añadir configuración para MergeTree: si alguien crea una tabla con una columna de muestreo incorrecta pero el muestreo nunca se usa, desactivar esta configuración para iniciar el servidor sin que se produzca una excepción. [#26256](https://github.com/ClickHouse/ClickHouse/pull/26256) ([zhaoyu](https://github.com/zxc111)).
* Se añadió la configuración `output_format_avro_string_column_pattern` para que las columnas String especificadas se escriban en Avro como string en lugar de bytes de forma predeterminada. Implementa [#22414](https://github.com/ClickHouse/ClickHouse/issues/22414). [#26245](https://github.com/ClickHouse/ClickHouse/pull/26245) ([Ilya Golshtein](https://github.com/ilejn)).
* Añade información sobre los tamaños de las columnas en la tabla `system.columns` para las tablas `Log` y `TinyLog`. Esto cierra [#9001](https://github.com/ClickHouse/ClickHouse/issues/9001). [#26241](https://github.com/ClickHouse/ClickHouse/pull/26241) ([Nikolay Degterinsky](https://github.com/evillique)).
* No lanzar una excepción al consultar la tabla `system.detached_parts` si hay una configuración de disco personalizada y el directorio `detached` no existe en algunos discos. Esto cierra [#26078](https://github.com/ClickHouse/ClickHouse/issues/26078). [#26236](https://github.com/ClickHouse/ClickHouse/pull/26236) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Comprobación de funciones no deterministas en las claves, incluidas expresiones constantes como `now()`, `today()`. Esto cierra [#25875](https://github.com/ClickHouse/ClickHouse/issues/25875). Esto cierra [#11333](https://github.com/ClickHouse/ClickHouse/issues/11333). [#26235](https://github.com/ClickHouse/ClickHouse/pull/26235) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* convertir los tipos de datos timestamp y timestamptz a `DateTime64` en el engine de tabla PostgreSQL. [#26234](https://github.com/ClickHouse/ClickHouse/pull/26234) ([jasine](https://github.com/jasine)).
* Aplicar un análisis agresivo de los índices IN en las proyecciones, de modo que pueda seleccionarse una mejor proyección candidata. [#26218](https://github.com/ClickHouse/ClickHouse/pull/26218) ([Amos Bird](https://github.com/amosbird)).
* Se elimina la palabra clave GLOBAL de IN cuando se pasa una función escalar. En versiones anteriores, si el usuario especificaba `GLOBAL IN f(x)`, se lanzaba una excepción. [#26217](https://github.com/ClickHouse/ClickHouse/pull/26217) ([Amos Bird](https://github.com/amosbird)).
* Añadir el ID de error (como `BAD_ARGUMENTS`) a los mensajes de excepción. Esto cierra [#25862](https://github.com/ClickHouse/ClickHouse/issues/25862). [#26172](https://github.com/ClickHouse/ClickHouse/pull/26172) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige la salida incorrecta con la opción `--progress` para clickhouse-local. La barra de progreso se eliminará al alcanzar el 100 %, igual que en clickhouse-client. Cierra [#17484](https://github.com/ClickHouse/ClickHouse/issues/17484). [#26128](https://github.com/ClickHouse/ClickHouse/pull/26128) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se agregó la configuración `merge_selecting_sleep_ms`. [#26120](https://github.com/ClickHouse/ClickHouse/pull/26120) ([lthaooo](https://github.com/lthaooo)).
* Se elimina el uso complejo de Linux AIO con lectura anticipada de un bloque y se sustituye por E/S síncrona simple con O\_DIRECT. En versiones anteriores, la configuración `min_bytes_to_use_direct_io` podía no funcionar correctamente si `max_threads` era mayor que uno. La lectura con E/S directa (deshabilitada de forma predeterminada para las consultas y habilitada de forma predeterminada para las fusiones grandes) funcionará de forma menos eficiente. Esto cierra [#25997](https://github.com/ClickHouse/ClickHouse/issues/25997). [#26003](https://github.com/ClickHouse/ClickHouse/pull/26003) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Vaciar la tabla `Distributed` en la consulta `REPLACE TABLE`. Resuelve [#24566](https://github.com/ClickHouse/ClickHouse/issues/24566): no reemplazar (ni crear) la tabla con la consulta `[CREATE OR] REPLACE TABLE ... AS SELECT` si falla la inserción en la tabla nueva. Resuelve [#23175](https://github.com/ClickHouse/ClickHouse/issues/23175). [#25895](https://github.com/ClickHouse/ClickHouse/pull/25895) ([tavplubix](https://github.com/tavplubix)).
* Añade la columna `views` a system.query\_log, que contiene los nombres de las vistas (materializadas o activas) ejecutadas por la consulta. Añade una nueva tabla de registro (`system.query_views_log`) que contiene información sobre cada vista ejecutada durante una consulta. Modifica la ejecución de vistas: cuando se lanza una excepción mientras se ejecuta una vista, cualquier vista que ya haya comenzado seguirá ejecutándose hasta que termine. Antes, este era el comportamiento con parallel\_view\_processing=true y ahora este comportamiento se aplica siempre. - Las vistas dependientes ahora informan del progreso de lectura al contexto. [#25714](https://github.com/ClickHouse/ClickHouse/pull/25714) ([Raúl Marín](https://github.com/Algunenano)).
* El drenaje de conexiones se realiza de forma asíncrona al terminar de ejecutar consultas distribuidas. Se añade una nueva configuración del servidor, `max_threads_for_connection_collector`, que especifica el número de workers para reciclar conexiones en segundo plano. Si el pool está lleno, la conexión se drenará de forma síncrona, pero de manera algo distinta a la anterior: se drena después de enviar EOS al cliente, la consulta se completará correctamente en cuanto reciba suficientes datos, y cualquier excepción se registrará en lugar de devolverse al cliente. Se añadió la configuración `drain_timeout` (3 segundos de forma predeterminada). El drenaje de conexiones desconectará la conexión cuando se agote el tiempo de espera. [#25674](https://github.com/ClickHouse/ClickHouse/pull/25674) ([Amos Bird](https://github.com/amosbird)).
* Compatibilidad con múltiples inclusiones en la configuración. Es posible incluir la configuración de usuarios y la de servidores remotos desde varias fuentes. Basta con colocar el elemento `<include />` con el atributo `from_zk`, `from_env` o `incl`, y se sustituirá por el valor correspondiente. [#24404](https://github.com/ClickHouse/ClickHouse/pull/24404) ([nvartolomei](https://github.com/nvartolomei)).
* Corrige la inserción de múltiples bloques en una tabla distribuida con `insert_distributed_one_random_shard = 1`. Se trata de una funcionalidad menor. Marcar como mejora. [#23140](https://github.com/ClickHouse/ClickHouse/pull/23140) ([Amos Bird](https://github.com/amosbird)).
* Se admiten claves y valores `LowCardinality` y `FixedString` para el tipo `Map`. [#21543](https://github.com/ClickHouse/ClickHouse/pull/21543) ([hexiaoting](https://github.com/hexiaoting)).
* Se habilita la recarga de la configuración del disco local. [#19526](https://github.com/ClickHouse/ClickHouse/pull/19526) ([taiyang-li](https://github.com/taiyang-li)).

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

* Corrige un par de errores que podrían hacer que las réplicas divergieran. [#27808](https://github.com/ClickHouse/ClickHouse/pull/27808) ([tavplubix](https://github.com/tavplubix)).
* Corrige un error poco frecuente en `DROP PART` que puede provocar el error `Unexpected merged part intersects drop range`. [#27807](https://github.com/ClickHouse/ClickHouse/pull/27807) ([alesapin](https://github.com/alesapin)).
* Se evitaron fallos en algunos formatos cuando llegaba desde Kafka un mensaje NULL (tombstone). Cierra [#19255](https://github.com/ClickHouse/ClickHouse/issues/19255). [#27794](https://github.com/ClickHouse/ClickHouse/pull/27794) ([filimonov](https://github.com/filimonov)).
* Corrige el filtrado de columnas con UNION DISTINCT en una subconsulta. Cierra [#27578](https://github.com/ClickHouse/ClickHouse/issues/27578). [#27689](https://github.com/ClickHouse/ClickHouse/pull/27689) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige una conversión de tipo errónea cuando se aplican funciones como `arrayHas` a Arrays de LowCardinality de Nullable de distintos tipos no numéricos, como `DateTime` y `DateTime64`. En versiones anteriores se producía una conversión incorrecta. En la nueva versión, esto provocará una excepción. Esto cierra [#26330](https://github.com/ClickHouse/ClickHouse/issues/26330). [#27682](https://github.com/ClickHouse/ClickHouse/pull/27682) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige la función de tabla postgresql que dejaba conexiones sin cerrar. Cierra [#26088](https://github.com/ClickHouse/ClickHouse/issues/26088). [#27662](https://github.com/ClickHouse/ClickHouse/pull/27662) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigió otro caso del error `Unexpected merged part ... intersecting drop range ...`. [#27656](https://github.com/ClickHouse/ClickHouse/pull/27656) ([tavplubix](https://github.com/tavplubix)).
* Corrige un error en una columna con alias de una tabla `Distributed`. [#27652](https://github.com/ClickHouse/ClickHouse/pull/27652) ([Vladimir C](https://github.com/vdimir)).
* Después de establecer `max_memory_usage*` en un valor distinto de cero, no era posible volver a ponerlo en 0 (sin límite). Ya está corregido. [#27638](https://github.com/ClickHouse/ClickHouse/pull/27638) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió el infraflujo del valor temporal al construirlo a partir de sus componentes. Cierra [#27193](https://github.com/ClickHouse/ClickHouse/issues/27193). [#27605](https://github.com/ClickHouse/ClickHouse/pull/27605) ([Vasily Nemkov](https://github.com/Enmk)).
* Se corrige un fallo durante la materialización de proyecciones cuando algunas partes contienen columnas ausentes. Esto corrige [#27512](https://github.com/ClickHouse/ClickHouse/issues/27512). [#27528](https://github.com/ClickHouse/ClickHouse/pull/27528) ([Amos Bird](https://github.com/amosbird)).
* se corrigió la métrica `BackgroundMessageBrokerSchedulePoolTask`, quizá estaba mal escrita. [#27452](https://github.com/ClickHouse/ClickHouse/pull/27452) ([Ben](https://github.com/benbiti)).
* Corrige las consultas distribuidas cuando hay cero segmentos y la agregación. [#27427](https://github.com/ClickHouse/ClickHouse/pull/27427) ([Azat Khuzhin](https://github.com/azat)).
* Compatibilidad cuando `/proc/meminfo` no incluye el sufijo KB. [#27361](https://github.com/ClickHouse/ClickHouse/pull/27361) ([Mike Kot](https://github.com/myrrc)).
* Corrige un resultado incorrecto en una consulta con seguridad a nivel de fila, PREWHERE y un filtro LowCardinality. Corrige [#27179](https://github.com/ClickHouse/ClickHouse/issues/27179). [#27329](https://github.com/ClickHouse/ClickHouse/pull/27329) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió la validación incorrecta del identificador de partición para las tablas MergeTree creadas con la sintaxis antigua. [#27328](https://github.com/ClickHouse/ClickHouse/pull/27328) ([tavplubix](https://github.com/tavplubix)).
* Se corrige el protocolo de MySQL al usar formatos paralelos (CSV / TSV). [#27326](https://github.com/ClickHouse/ClickHouse/pull/27326) ([Raúl Marín](https://github.com/Algunenano)).
* Se soluciona el error `Cannot find column` en consultas con muestreo. Se introdujo en [#24574](https://github.com/ClickHouse/ClickHouse/issues/24574). Corrige [#26522](https://github.com/ClickHouse/ClickHouse/issues/26522). [#27301](https://github.com/ClickHouse/ClickHouse/pull/27301) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige errores como `Expected ColumnLowCardinality, gotUInt8` o `Bad cast from type DB::ColumnVector<char8_t> to DB::ColumnLowCardinality` en algunas consultas con `LowCardinality` en `PREWHERE`. Y, lo que es más importante, corrige la falta de espacios en el mensaje de error. Corrige [#23515](https://github.com/ClickHouse/ClickHouse/issues/23515). [#27298](https://github.com/ClickHouse/ClickHouse/pull/27298) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige el problema de `distributed_group_by_no_merge = 2` con `distributed_push_down_limit = 1` o de `optimize_distributed_group_by_sharding_key = 1` con `LIMIT BY` y `LIMIT OFFSET`. [#27249](https://github.com/ClickHouse/ClickHouse/pull/27249) ([Azat Khuzhin](https://github.com/azat)). Se trata de una combinación poco habitual de configuraciones que nadie usa.
* Corrige una mutación atascada en particiones no válidas de MergeTree no replicado. [#27248](https://github.com/ClickHouse/ClickHouse/pull/27248) ([Azat Khuzhin](https://github.com/azat)).
* En caso de ambigüedad, las funciones lambda dan prioridad a sus argumentos frente a otros alias o identificadores. [#27235](https://github.com/ClickHouse/ClickHouse/pull/27235) ([Raúl Marín](https://github.com/Algunenano)).
* Se corrige la estructura de columnas en merge join y se cierra [#27091](https://github.com/ClickHouse/ClickHouse/issues/27091). [#27217](https://github.com/ClickHouse/ClickHouse/pull/27217) ([Vladimir C](https://github.com/vdimir)).
* En casos excepcionales, la tabla `system.detached_parts` podía contener información incorrecta sobre algunas partes; esto ya se ha corregido. Corrige [#27114](https://github.com/ClickHouse/ClickHouse/issues/27114). [#27183](https://github.com/ClickHouse/ClickHouse/pull/27183) ([tavplubix](https://github.com/tavplubix)).
* Corrige el problema de memoria no inicializada en las funciones `multiSearch*` con un array vacío; cierra [#27169](https://github.com/ClickHouse/ClickHouse/issues/27169). [#27181](https://github.com/ClickHouse/ClickHouse/pull/27181) ([Vladimir C](https://github.com/vdimir)).
* Se corrige la sincronización en GRPCServer. Este PR corrige [#27024](https://github.com/ClickHouse/ClickHouse/issues/27024). [#27064](https://github.com/ClickHouse/ClickHouse/pull/27064) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el análisis de la configuración de `cache`, `complex_key_cache`, `ssd_cache` y `complex_key_ssd_cache`. Las opciones `allow_read_expired_keys`, `max_update_queue_size`, `update_queue_push_timeout_milliseconds` y `query_wait_timeout_milliseconds` no se analizaban en diccionarios que no eran de tipo `cache`. [#27032](https://github.com/ClickHouse/ClickHouse/pull/27032) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrige un posible atasco de mutaciones debido a una condición de carrera con DROP\_RANGE. [#27002](https://github.com/ClickHouse/ClickHouse/pull/27002) ([Azat Khuzhin](https://github.com/azat)).
* Ahora se valida la corrección del ID de partición en consultas como `ALTER TABLE ... PARTITION ID xxx`. Corrige [#25718](https://github.com/ClickHouse/ClickHouse/issues/25718). [#26963](https://github.com/ClickHouse/ClickHouse/pull/26963) ([alesapin](https://github.com/alesapin)).
* Se corrige el error "Unknown column name" en algunos casos con múltiples JOINs; cierra [#26899](https://github.com/ClickHouse/ClickHouse/issues/26899). [#26957](https://github.com/ClickHouse/ClickHouse/pull/26957) ([Vladimir C](https://github.com/vdimir)).
* Se corrige la lectura de TLD personalizados (el procesamiento se detenía cuando el búfer era más pequeño o el archivo más grande). [#26948](https://github.com/ClickHouse/ClickHouse/pull/26948) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el error `Missing columns: 'xxx'` cuando la columna `DEFAULT` hace referencia a otra columna no materializada sin expresión `DEFAULT`. Corrige [#26591](https://github.com/ClickHouse/ClickHouse/issues/26591). [#26900](https://github.com/ClickHouse/ClickHouse/pull/26900) ([alesapin](https://github.com/alesapin)).
* Se corrige la carga de las claves de diccionario en `library-bridge` para la fuente de diccionario `library`. [#26834](https://github.com/ClickHouse/ClickHouse/pull/26834) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Los parámetros de las funciones de agregado podían perderse al aplicar ciertos combinadores, lo que provocaba excepciones como `Conversion from AggregateFunction(topKArray, Array(String)) to AggregateFunction(topKArray(10), Array(String)) is not supported`. Ya se ha corregido. Soluciona [#26196](https://github.com/ClickHouse/ClickHouse/issues/26196) y [#26433](https://github.com/ClickHouse/ClickHouse/issues/26433). [#26814](https://github.com/ClickHouse/ClickHouse/pull/26814) ([tavplubix](https://github.com/tavplubix)).
* Se añade el valor `event_time_microseconds` para `REMOVE_PART` en `system.part_log`. En versiones anteriores no se establecía. [#26720](https://github.com/ClickHouse/ClickHouse/pull/26720) ([Azat Khuzhin](https://github.com/azat)).
* No elimine los datos al apagar una tabla ReplicatedMergeTree para evitar inconsistencias entre los datos y los metadatos. [#26716](https://github.com/ClickHouse/ClickHouse/pull/26716) ([nvartolomei](https://github.com/nvartolomei)).
* A veces, `SET ROLE` podía no funcionar correctamente; este PR lo corrige. [#26707](https://github.com/ClickHouse/ClickHouse/pull/26707) ([Vitaly Baranov](https://github.com/vitlibar)).
* Algunas correcciones en el formateo en paralelo ([https://github.com/ClickHouse/ClickHouse/issues/26694](https://github.com/ClickHouse/ClickHouse/issues/26694)). [#26703](https://github.com/ClickHouse/ClickHouse/pull/26703) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige una posible desreferenciación de `nullptr` en funciones de ventana. Soluciona [#25276](https://github.com/ClickHouse/ClickHouse/issues/25276). [#26668](https://github.com/ClickHouse/ClickHouse/pull/26668) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Se corrige la conversión del archivo de historial de clickhouse-client (al actualizar desde el formato de una versión de clickhouse-client de hace 3 años) si el archivo está vacío. [#26589](https://github.com/ClickHouse/ClickHouse/pull/26589) ([Azat Khuzhin](https://github.com/azat)).
* Corrige los nombres de función incorrectos de groupBitmapAnd/Or/Xor (que pueden mostrarse en algunas ocasiones). Se corrige este problema. [#26557](https://github.com/ClickHouse/ClickHouse/pull/26557) ([Amos Bird](https://github.com/amosbird)).
* Se actualiza la comprobación del comando `chown` en el entrypoint de Docker de clickhouse-server. Esto corrige el error que hacía que el reinicio de un pod de Kubernetes del clúster fallara (o agotara el tiempo de espera) en Kubernetes. [#26545](https://github.com/ClickHouse/ClickHouse/pull/26545) ([Ky Li](https://github.com/Kylinrix)).
* Se corrige un fallo al cerrar `RabbitMQ` en caso de que no se hubiera iniciado su configuración. Cierra [#26504](https://github.com/ClickHouse/ClickHouse/issues/26504). [#26529](https://github.com/ClickHouse/ClickHouse/pull/26529) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigieron problemas con la consulta `CREATE DICTIONARY` cuando el nombre del diccionario o de la base de datos estaba entre comillas. Se cierra [#26491](https://github.com/ClickHouse/ClickHouse/issues/26491). [#26508](https://github.com/ClickHouse/ClickHouse/pull/26508) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige la resolución incorrecta de nombres de columna tras reescribir los alias de columna. Esto corrige [#26432](https://github.com/ClickHouse/ClickHouse/issues/26432). [#26475](https://github.com/ClickHouse/ClickHouse/pull/26475) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un fallo de msan detectado mediante fuzzing. Soluciona [#22517](https://github.com/ClickHouse/ClickHouse/issues/22517). [#26428](https://github.com/ClickHouse/ClickHouse/pull/26428) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige el flujo infinito de bloques sin unir en `partial_merge_join`, cierra [#26325](https://github.com/ClickHouse/ClickHouse/issues/26325). [#26374](https://github.com/ClickHouse/ClickHouse/pull/26374) ([Vladimir C](https://github.com/vdimir)).
* Corrige un posible cierre inesperado al iniciar sesión con un usuario eliminado. Este PR corrige [#26073](https://github.com/ClickHouse/ClickHouse/issues/26073). [#26363](https://github.com/ClickHouse/ClickHouse/pull/26363) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige `optimize_distributed_group_by_sharding_key` para múltiples columnas (da lugar a resultados incorrectos con `optimize_skip_unused_shards=1`/`allow_nondeterministic_optimize_skip_unused_shards=1` y múltiples columnas en la expresión de la clave de sharding). [#26353](https://github.com/ClickHouse/ClickHouse/pull/26353) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un error poco frecuente en la recuperación de réplicas perdidas que podía hacer que las réplicas divergieran. [#26321](https://github.com/ClickHouse/ClickHouse/pull/26321) ([tavplubix](https://github.com/tavplubix)).
* Se corrige la descompresión de zstd (para la importación/exportación en formato de encapsulado zstd, no relacionado con los datos de las tablas) en caso de que haya secuencias de escape al final del búfer interno. Cierra [#26013](https://github.com/ClickHouse/ClickHouse/issues/26013). [#26314](https://github.com/ClickHouse/ClickHouse/pull/26314) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corregido un error lógico en join con totals, cierra [#26017](https://github.com/ClickHouse/ClickHouse/issues/26017). [#26250](https://github.com/ClickHouse/ClickHouse/pull/26250) ([Vladimir C](https://github.com/vdimir)).
* Se elimina el salto de línea excesivo en la columna `thread_name` de la tabla `system.stack_trace`. Esto corrige [#24124](https://github.com/ClickHouse/ClickHouse/issues/24124). [#26210](https://github.com/ClickHouse/ClickHouse/pull/26210) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un posible fallo si se utiliza más de una expresión `untuple`. [#26179](https://github.com/ClickHouse/ClickHouse/pull/26179) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* No lanzar una excepción en `toString` para Nullable Enum si Enum no tiene un valor para cero; se cierra [#25806](https://github.com/ClickHouse/ClickHouse/issues/25806). [#26123](https://github.com/ClickHouse/ClickHouse/pull/26123) ([Vladimir C](https://github.com/vdimir)).
* Se corrigió el `sequence_id` incorrecto en los paquetes del protocolo MySQL que ClickHouse envía cuando se produce una excepción durante la ejecución de la consulta. Esto podría hacer que el cliente MySQL restablezca la conexión con el servidor ClickHouse. Soluciona [#21184](https://github.com/ClickHouse/ClickHouse/issues/21184). [#26051](https://github.com/ClickHouse/ClickHouse/pull/26051) ([tavplubix](https://github.com/tavplubix)).
* Corrección para el caso en que `cutToFirstSignificantSubdomainCustom()`/`cutToFirstSignificantSubdomainCustomWithWWW()`/`firstSignificantSubdomainCustom()` devuelven un tipo incorrecto para constantes y, por tanto, `optimize_skip_unused_shards` no funciona:. [#26041](https://github.com/ClickHouse/ClickHouse/pull/26041) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un posible desajuste del encabezado al usar una proyección normal con prewhere. Esto corrige [#26020](https://github.com/ClickHouse/ClickHouse/issues/26020). [#26038](https://github.com/ClickHouse/ClickHouse/pull/26038) ([Amos Bird](https://github.com/amosbird)).
* Se corrige sharding\_key a partir de una columna sin función para remote() (antes, `select * from remote('127.1', system.one, dummy)` provocaba el error `Unknown column: dummy, there are only columns .`). [#25824](https://github.com/ClickHouse/ClickHouse/pull/25824) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigieron los errores `Not found column ...` y `Missing column ...` al consultar `MaterializeMySQL`. Soluciona [#23708](https://github.com/ClickHouse/ClickHouse/issues/23708), [#24830](https://github.com/ClickHouse/ClickHouse/issues/24830), [#25794](https://github.com/ClickHouse/ClickHouse/issues/25794). [#25822](https://github.com/ClickHouse/ClickHouse/pull/25822) ([tavplubix](https://github.com/tavplubix)).
* Se corrige `optimize_skip_unused_shards_rewrite_in` para tipos distintos de UInt64 (puede terminar seleccionando segmentos incorrectos o provocar `Cannot infer type of an empty tuple` o `Function tuple requires at least one argument`). [#25798](https://github.com/ClickHouse/ClickHouse/pull/25798) ([Azat Khuzhin](https://github.com/azat)).

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

* Ahora ejecutamos pruebas con estado y pruebas sin estado en zonas horarias aleatorias. Corrige [#12439](https://github.com/ClickHouse/ClickHouse/issues/12439). La lectura de String como DateTime y la escritura de DateTime como String en formato Protobuf ahora respetan la zona horaria. La lectura de UInt16 como DateTime en los formatos Arrow y Parquet ahora lo trata como Date y luego lo convierte a DateTime respetando la zona horaria de DateTime, porque Date se serializa en Arrow y Parquet como UInt16. GraphiteMergeTree ahora respeta la zona horaria para el redondeo de tiempos. Corrige [#5098](https://github.com/ClickHouse/ClickHouse/issues/5098). Autor: @alexey-milovidov. [#15408](https://github.com/ClickHouse/ClickHouse/pull/15408) ([alesapin](https://github.com/alesapin)).
* `clickhouse-test` admite pruebas SQL con plantillas de [Jinja2](https://jinja.palletsprojects.com/en/3.0.x/templates/#synopsis). [#26579](https://github.com/ClickHouse/ClickHouse/pull/26579) ([Vladimir C](https://github.com/vdimir)).
* Se añadió compatibilidad para compilar con `clang-13`. Esto cierra [#27705](https://github.com/ClickHouse/ClickHouse/issues/27705). [#27714](https://github.com/ClickHouse/ClickHouse/pull/27714) ([alexey-milovidov](https://github.com/alexey-milovidov)). [#27777](https://github.com/ClickHouse/ClickHouse/pull/27777) ([Sergei Semin](https://github.com/syominsergey))
* Se añadieron opciones de CMake para compilar con o sin un conjunto específico de instrucciones de CPU. Esto es para [#17469](https://github.com/ClickHouse/ClickHouse/issues/17469) y [#27509](https://github.com/ClickHouse/ClickHouse/issues/27509). [#27508](https://github.com/ClickHouse/ClickHouse/pull/27508) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el enlazado de programas auxiliares al usar bibliotecas dinámicas. [#26958](https://github.com/ClickHouse/ClickHouse/pull/26958) ([Raúl Marín](https://github.com/Algunenano)).
* Se actualizó RocksDB al master del `2021-07-16`. [#26411](https://github.com/ClickHouse/ClickHouse/pull/26411) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-v218-2021-08-12">
  ### Lanzamiento de ClickHouse v21.8, 2021-08-12
</div>

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

* La nueva versión usa el tipo de datos `Map` para las tablas de logs del sistema (`system.query_log`, `system.query_thread_log`, `system.processes`, `system.opentelemetry_span_log`). Estas tablas se crearán automáticamente con los nuevos tipos de datos. Se crean columnas virtuales para mantener la compatibilidad con las consultas anteriores. Cierra [#18698](https://github.com/ClickHouse/ClickHouse/issues/18698). [#23934](https://github.com/ClickHouse/ClickHouse/pull/23934), [#25773](https://github.com/ClickHouse/ClickHouse/pull/25773) ([hexiaoting](https://github.com/hexiaoting), [sundy-li](https://github.com/sundy-li), [Maksim Kita](https://github.com/kitaisreal)). Si quieres *downgrade* de la versión 21.8 a versiones anteriores, tendrás que limpiar manualmente las tablas del sistema con logs. Consulta `/var/lib/clickhouse/data/system/*_log`.

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

* Se añade compatibilidad con parte del estándar SQL/JSON. [#24148](https://github.com/ClickHouse/ClickHouse/pull/24148) ([l1tsolaiki](https://github.com/l1tsolaiki), [Kseniia Sumarokova](https://github.com/kssenii)).
* Se recopilan métricas comunes del sistema (en `system.asynchronous_metrics` y `system.asynchronous_metric_log`) sobre uso de CPU, uso de disco, uso de memoria, E/S, red, archivos, promedio de carga, frecuencias de CPU, sensores térmicos, contadores EDAC y tiempo de actividad del sistema; también se añadieron métricas sobre el jitter de planificación y el tiempo dedicado a recopilar dichas métricas. Funciona de forma similar a `atop` en ClickHouse y permite acceder a datos de monitorización incluso si no tiene herramientas adicionales instaladas. Cierra [#9430](https://github.com/ClickHouse/ClickHouse/issues/9430). [#24416](https://github.com/ClickHouse/ClickHouse/pull/24416) ([alexey-milovidov](https://github.com/alexey-milovidov), [Yegor Levankov](https://github.com/elevankoff)).
* Se añaden el motor de tabla y el motor de base de datos MaterializedPostgreSQL. Este motor de base de datos permite replicar una base de datos completa o cualquier subconjunto de sus tablas. [#20470](https://github.com/ClickHouse/ClickHouse/pull/20470) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añaden las nuevas funciones `leftPad()`, `rightPad()`, `leftPadUTF8()`, `rightPadUTF8()`. [#26075](https://github.com/ClickHouse/ClickHouse/pull/26075) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añade la palabra clave `FIRST` al comando `ADD INDEX` para poder agregar el índice al principio de la lista de índices. [#25904](https://github.com/ClickHouse/ClickHouse/pull/25904) ([xjewer](https://github.com/xjewer)).
* Se introduce la tabla `system.data_skipping_indices`, que contiene información sobre los índices de omisión de datos existentes. Cierra [#7659](https://github.com/ClickHouse/ClickHouse/issues/7659). [#25693](https://github.com/ClickHouse/ClickHouse/pull/25693) ([Dmitry Novik](https://github.com/novikd)).
* Se añaden las funciones `bin`/`unbin`. [#25609](https://github.com/ClickHouse/ClickHouse/pull/25609) ([zhaoyu](https://github.com/zxc111)).
* Se añade compatibilidad con los tipos `Map`, `UInt128`, `Int128`, `UInt256` e `Int256` en las funciones `mapAdd` y `mapSubtract`. [#25596](https://github.com/ClickHouse/ClickHouse/pull/25596) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Se añade compatibilidad con la expresión `DISTINCT ON (columns)`, cierra [#25404](https://github.com/ClickHouse/ClickHouse/issues/25404). [#25589](https://github.com/ClickHouse/ClickHouse/pull/25589) ([Zijie Lu](https://github.com/TszKitLo40)).
* Se añade la posibilidad de restablecer una configuración personalizada a su valor predeterminado y eliminarla de los metadatos de la tabla. Esto permite revertir el cambio sin conocer el valor predeterminado del sistema o de la configuración. Cierra [#14449](https://github.com/ClickHouse/ClickHouse/issues/14449). [#17769](https://github.com/ClickHouse/ClickHouse/pull/17769) ([xjewer](https://github.com/xjewer)).
* Representa las pipelines como grafos en la UI web si se envía la consulta `EXPLAIN PIPELINE graph = 1`. [#26067](https://github.com/ClickHouse/ClickHouse/pull/26067) ([alexey-milovidov](https://github.com/alexey-milovidov)).

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

* Compilación de funciones de agregado. Use la opción `compile_aggregate_expressions` para habilitarla. [#24789](https://github.com/ClickHouse/ClickHouse/pull/24789) ([Maksim Kita](https://github.com/kitaisreal)).
* Mejora de la latencia de las consultas cortas que requieren leer tablas con muchas columnas. [#26371](https://github.com/ClickHouse/ClickHouse/pull/26371) ([Anton Popov](https://github.com/CurtizJ)).

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

* Se usa el tipo de datos `Map` para las tablas de logs del sistema (`system.query_log`, `system.query_thread_log`, `system.processes`, `system.opentelemetry_span_log`). Estas tablas se crearán automáticamente con los nuevos tipos de datos. Se crean columnas virtuales para dar soporte a las consultas antiguas. Cierra [#18698](https://github.com/ClickHouse/ClickHouse/issues/18698). [#23934](https://github.com/ClickHouse/ClickHouse/pull/23934), [#25773](https://github.com/ClickHouse/ClickHouse/pull/25773) ([hexiaoting](https://github.com/hexiaoting), [sundy-li](https://github.com/sundy-li), [Maksim Kita](https://github.com/kitaisreal)).
* Para los diccionarios con una clave compleja que contiene solo un atributo, se permite no encapsular la expresión de clave en una tupla para las funciones `dictGet`, `dictHas`. [#26130](https://github.com/ClickHouse/ClickHouse/pull/26130) ([Maksim Kita](https://github.com/kitaisreal)).
* Se implementa la función `bin`/`hex` a partir de estados de `AggregateFunction`. [#26094](https://github.com/ClickHouse/ClickHouse/pull/26094) ([zhaoyu](https://github.com/zxc111)).
* Se admiten argumentos de tipo `UUID` para las funciones `empty` y `notEmpty`. Un `UUID` está vacío si está compuesto solo por ceros (UUID nulo). Cierra [#3446](https://github.com/ClickHouse/ClickHouse/issues/3446). [#25974](https://github.com/ClickHouse/ClickHouse/pull/25974) ([zhaoyu](https://github.com/zxc111)).
* Se añadió compatibilidad con `SET SQL_SELECT_LIMIT` en el protocolo MySQL. Cierra [#17115](https://github.com/ClickHouse/ClickHouse/issues/17115). [#25972](https://github.com/ClickHouse/ClickHouse/pull/25972) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Más instrumentación para la interacción de red: se añaden contadores para los bytes recibidos/enviados; se añaden gauges para recepciones/envíos. Se añadió la documentación que faltaba. Cierra [#5897](https://github.com/ClickHouse/ClickHouse/issues/5897). [#25962](https://github.com/ClickHouse/ClickHouse/pull/25962) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Añade la configuración `optimize_move_to_prewhere_if_final`. Si una consulta incluye `FINAL`, la optimización `move_to_prewhere` solo se habilitará si tanto `optimize_move_to_prewhere` como `optimize_move_to_prewhere_if_final` están habilitadas. Cierra [#8684](https://github.com/ClickHouse/ClickHouse/issues/8684). [#25940](https://github.com/ClickHouse/ClickHouse/pull/25940) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permitir identificadores complejos entre comillas de tablas incluidas en JOIN. Cierra [#17861](https://github.com/ClickHouse/ClickHouse/issues/17861). [#25924](https://github.com/ClickHouse/ClickHouse/pull/25924) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añade compatibilidad con componentes Unicode (p. ej., chino, cirílico) en los tipos de datos `Nested`. Cierra [#25594](https://github.com/ClickHouse/ClickHouse/issues/25594). [#25923](https://github.com/ClickHouse/ClickHouse/pull/25923) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite que las funciones `quantiles*` funcionen con `aggregate_functions_null_for_empty`. Cierra [#25892](https://github.com/ClickHouse/ClickHouse/issues/25892). [#25919](https://github.com/ClickHouse/ClickHouse/pull/25919) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite que los parámetros de las funciones de agregación paramétricas sean expresiones constantes arbitrarias (p. ej., `1 + 2`) y no solo literales. También permite usar parámetros de consulta (en consultas parametrizadas como `{param:UInt8}`) dentro de las funciones de agregación paramétricas. Cierra [#11607](https://github.com/ClickHouse/ClickHouse/issues/11607). [#25910](https://github.com/ClickHouse/ClickHouse/pull/25910) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Genera correctamente una excepción al intentar analizar una `Date` no válida. Cierra [#6481](https://github.com/ClickHouse/ClickHouse/issues/6481). [#25909](https://github.com/ClickHouse/ClickHouse/pull/25909) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Soporte para múltiples inclusiones en la configuración. Es posible incluir la configuración de usuarios y la configuración del servidor remoto desde múltiples fuentes. Basta con colocar el elemento `<include />` con el atributo `from_zk`, `from_env` o `incl`, y se sustituirá por el valor correspondiente. [#24404](https://github.com/ClickHouse/ClickHouse/pull/24404) ([nvartolomei](https://github.com/nvartolomei)).
* Se admiten consultas con una columna llamada `"null"` (debe especificarse entre acentos graves o comillas dobles) y `ON CLUSTER`. Cierra [#24035](https://github.com/ClickHouse/ClickHouse/issues/24035). [#25907](https://github.com/ClickHouse/ClickHouse/pull/25907) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Admite `LowCardinality`, `Decimal` y `UUID` en `JSONExtract`. Cierra [#24606](https://github.com/ClickHouse/ClickHouse/issues/24606). [#25900](https://github.com/ClickHouse/ClickHouse/pull/25900) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Convierte el archivo de historial de formato `readline` a formato `replxx`. [#25888](https://github.com/ClickHouse/ClickHouse/pull/25888) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un problema que puede provocar partes superpuestas después de `DROP PART` o de la eliminación en segundo plano de una parte vacía. [#25884](https://github.com/ClickHouse/ClickHouse/pull/25884) ([alesapin](https://github.com/alesapin)).
* Mejor gestión de las partes perdidas en las tablas `ReplicatedMergeTree`. Corrige inconsistencias poco frecuentes en `ReplicationQueue`. Corrige [#10368](https://github.com/ClickHouse/ClickHouse/issues/10368). [#25820](https://github.com/ClickHouse/ClickHouse/pull/25820) ([alesapin](https://github.com/alesapin)).
* Permitir iniciar clickhouse-client aunque el directorio de trabajo no sea legible. [#25817](https://github.com/ClickHouse/ClickHouse/pull/25817) ([ianton-ru](https://github.com/ianton-ru)).
* Se corrige el error "No hay columnas disponibles" para el motor de almacenamiento `Merge`. [#25801](https://github.com/ClickHouse/ClickHouse/pull/25801) ([Azat Khuzhin](https://github.com/azat)).
* El motor MySQL ahora admite el intercambio de comentarios de las columnas entre MySQL y ClickHouse. [#25795](https://github.com/ClickHouse/ClickHouse/pull/25795) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Corrige el comportamiento inconsistente de la constante `GROUP BY` con un conjunto vacío. Cierra [#6842](https://github.com/ClickHouse/ClickHouse/issues/6842). [#25786](https://github.com/ClickHouse/ClickHouse/pull/25786) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Cancela las fusiones que ya están en ejecución en una partición al usar `DROP PARTITION` y `TRUNCATE` en `ReplicatedMergeTree`. Resuelve [#17151](https://github.com/ClickHouse/ClickHouse/issues/17151). [#25684](https://github.com/ClickHouse/ClickHouse/pull/25684) ([tavplubix](https://github.com/tavplubix)).
* Se admite el tipo de dato ENUM\` en MaterializeMySQL. [#25676](https://github.com/ClickHouse/ClickHouse/pull/25676) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Soporta columnas materializadas y con alias en JOIN, cierra [#13274](https://github.com/ClickHouse/ClickHouse/issues/13274). [#25634](https://github.com/ClickHouse/ClickHouse/pull/25634) ([Vladimir C](https://github.com/vdimir)).
* Se corrige una posible condición de carrera a nivel lógico entre `ALTER TABLE ... DETACH` y las fusiones en segundo plano. [#25605](https://github.com/ClickHouse/ClickHouse/pull/25605) ([Azat Khuzhin](https://github.com/azat)).
* La métrica `NetworkReceiveElapsedMicroseconds` ahora incluye correctamente el tiempo dedicado a esperar datos del cliente para `INSERT`. Cierra [#9958](https://github.com/ClickHouse/ClickHouse/issues/9958). [#25602](https://github.com/ClickHouse/ClickHouse/pull/25602) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se ha añadido compatibilidad con `TRUNCATE TABLE` para S3 y HDFS. Cierra [#25530](https://github.com/ClickHouse/ClickHouse/issues/25530). [#25550](https://github.com/ClickHouse/ClickHouse/pull/25550) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Soporte para la recarga dinámica de la configuración para cambiar el número de hilos del pool para la ejecución de trabajos en segundo plano (fusiones, mutaciones y fetches). [#25548](https://github.com/ClickHouse/ClickHouse/pull/25548) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permitir extraer como cadena un elemento que no sea de tipo cadena mediante `JSONExtract`. Esto es para [#25414](https://github.com/ClickHouse/ClickHouse/issues/25414). [#25452](https://github.com/ClickHouse/ClickHouse/pull/25452) ([Amos Bird](https://github.com/amosbird)).
* Se admite una expresión regular en el argumento `Database` de `StorageMerge`. Cierra [#776](https://github.com/ClickHouse/ClickHouse/issues/776). [#25064](https://github.com/ClickHouse/ClickHouse/pull/25064) ([flynn](https://github.com/ucasfl)).
* UI web: si el valor parece una URL, generar un enlace automáticamente. [#25965](https://github.com/ClickHouse/ClickHouse/pull/25965) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite que `sudo service clickhouse-server start` funcione en sistemas con `systemd`, como CentOS 8. Cierra [#14298](https://github.com/ClickHouse/ClickHouse/issues/14298). Cierra [#17799](https://github.com/ClickHouse/ClickHouse/issues/17799). [#25921](https://github.com/ClickHouse/ClickHouse/pull/25921) ([alexey-milovidov](https://github.com/alexey-milovidov)).

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

* Se corrige el uso incorrecto de `SET ROLE` en algunos casos. [#26707](https://github.com/ClickHouse/ClickHouse/pull/26707) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige una posible desreferenciación de `nullptr` en las funciones de ventana. Corrige [#25276](https://github.com/ClickHouse/ClickHouse/issues/25276). [#26668](https://github.com/ClickHouse/ClickHouse/pull/26668) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Corrige los nombres incorrectos de las funciones `groupBitmapAnd/Or/Xor`. Soluciona [#26557](https://github.com/ClickHouse/ClickHouse/pull/26557) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un fallo en el apagado de RabbitMQ en caso de que no se hubiera iniciado la puesta en marcha de RabbitMQ. Cierra [#26504](https://github.com/ClickHouse/ClickHouse/issues/26504). [#26529](https://github.com/ClickHouse/ClickHouse/pull/26529) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrigen problemas con la consulta `CREATE DICTIONARY` si el nombre del diccionario o el nombre de la base de datos estaban entre comillas. Cierra [#26491](https://github.com/ClickHouse/ClickHouse/issues/26491). [#26508](https://github.com/ClickHouse/ClickHouse/pull/26508) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige la resolución de nombres que se rompía tras reescribir los alias de columna. Corrige [#26432](https://github.com/ClickHouse/ClickHouse/issues/26432). [#26475](https://github.com/ClickHouse/ClickHouse/pull/26475) ([Amos Bird](https://github.com/amosbird)).
* Corrige el flujo infinito de bloques sin join en el cierre de `partial_merge_join` [#26325](https://github.com/ClickHouse/ClickHouse/issues/26325). [#26374](https://github.com/ClickHouse/ClickHouse/pull/26374) ([Vladimir C](https://github.com/vdimir)).
* Se corrige un posible cierre inesperado al iniciar sesión con un usuario eliminado. Corrección [#26073](https://github.com/ClickHouse/ClickHouse/issues/26073). [#26363](https://github.com/ClickHouse/ClickHouse/pull/26363) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige `optimize_distributed_group_by_sharding_key` para varias columnas (provoca resultados incorrectos con `optimize_skip_unused_shards=1`/`allow_nondeterministic_optimize_skip_unused_shards=1` y varias columnas en la expresión de la clave de segmentación). [#26353](https://github.com/ClickHouse/ClickHouse/pull/26353) ([Azat Khuzhin](https://github.com/azat)).
* `CAST` de `Date` a `DateTime` (o `DateTime64`) no estaba usando la zona horaria del tipo `DateTime`. Esto también puede afectar a la comparación entre `Date` y `DateTime`. La inferencia del tipo común para `Date` y `DateTime` tampoco estaba usando la zona horaria correspondiente. Esto afectaba a los resultados de la función `if` y a la construcción de arrays. Cierra [#24128](https://github.com/ClickHouse/ClickHouse/issues/24128). [#24129](https://github.com/ClickHouse/ClickHouse/pull/24129) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió un error poco frecuente en la recuperación de réplicas perdidas que podía hacer que las réplicas divergieran. [#26321](https://github.com/ClickHouse/ClickHouse/pull/26321) ([tavplubix](https://github.com/tavplubix)).
* Se corrige la descompresión de zstd si hay secuencias de escape al final del búfer interno. Cierra [#26013](https://github.com/ClickHouse/ClickHouse/issues/26013). [#26314](https://github.com/ClickHouse/ClickHouse/pull/26314) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un error lógico en un join con totals; se cierra [#26017](https://github.com/ClickHouse/ClickHouse/issues/26017). [#26250](https://github.com/ClickHouse/ClickHouse/pull/26250) ([Vladimir C](https://github.com/vdimir)).
* Se elimina el salto de línea excesivo en la columna `thread_name` de la tabla `system.stack_trace`. Se corrige [#24124](https://github.com/ClickHouse/ClickHouse/issues/24124). [#26210](https://github.com/ClickHouse/ClickHouse/pull/26210) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige `joinGet` con columnas `LowCarinality`; se cierra [#25993](https://github.com/ClickHouse/ClickHouse/issues/25993). [#26118](https://github.com/ClickHouse/ClickHouse/pull/26118) ([Vladimir C](https://github.com/vdimir)).
* Corrige un posible bloqueo en `pointInPolygon` si el ajuste `validate_polygons` está desactivado. [#26113](https://github.com/ClickHouse/ClickHouse/pull/26113) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige la excepción que se producía al iterar sobre un directorio remoto inexistente. [#26087](https://github.com/ClickHouse/ClickHouse/pull/26087) ([ianton-ru](https://github.com/ianton-ru)).
* Se corrige un raro bloqueo del servidor debido a `abort` en el cliente de ZooKeeper. Corrige [#25813](https://github.com/ClickHouse/ClickHouse/issues/25813). [#26079](https://github.com/ClickHouse/ClickHouse/pull/26079) ([alesapin](https://github.com/alesapin)).
* Se corrige la estimación incorrecta del número de hilos para el join de la subconsulta derecha en algunos casos. Cierra [#24075](https://github.com/ClickHouse/ClickHouse/issues/24075). [#26052](https://github.com/ClickHouse/ClickHouse/pull/26052) ([Vladimir C](https://github.com/vdimir)).
* Se corrigió el `sequence_id` incorrecto en los paquetes del protocolo MySQL que ClickHouse envía cuando se produce una excepción durante la ejecución de consultas. Esto podría hacer que el cliente MySQL restablezca la conexión con el servidor ClickHouse. Corrige [#21184](https://github.com/ClickHouse/ClickHouse/issues/21184). [#26051](https://github.com/ClickHouse/ClickHouse/pull/26051) ([tavplubix](https://github.com/tavplubix)).
* Se corrige un posible desajuste en el encabezado al usar una proyección normal con `PREWHERE`. Corrección de [#26020](https://github.com/ClickHouse/ClickHouse/issues/26020). [#26038](https://github.com/ClickHouse/ClickHouse/pull/26038) ([Amos Bird](https://github.com/amosbird)).
* Se corrige el formateo a `JSON` del tipo `Map` con claves enteras. [#25982](https://github.com/ClickHouse/ClickHouse/pull/25982) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un posible interbloqueo durante el desenrollado de la pila del perfilador de consultas. Se corrige [#25968](https://github.com/ClickHouse/ClickHouse/issues/25968). [#25970](https://github.com/ClickHouse/ClickHouse/pull/25970) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió un fallo al llamar a `dictGet()` con argumentos incorrectos. [#25913](https://github.com/ClickHouse/ClickHouse/pull/25913) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió la autenticación `scram-sha-256` para los motores de PostgreSQL. Cierra [#24516](https://github.com/ClickHouse/ClickHouse/issues/24516). [#25906](https://github.com/ClickHouse/ClickHouse/pull/25906) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un backoff excesivamente largo en las tareas en segundo plano cuando el background pool está lleno. Corrige [#25836](https://github.com/ClickHouse/ClickHouse/issues/25836). [#25893](https://github.com/ClickHouse/ClickHouse/pull/25893) ([alesapin](https://github.com/alesapin)).
* Se corrige el manejo de excepciones en ARM con un tamaño de página distinto del predeterminado. Corrige [#25512](https://github.com/ClickHouse/ClickHouse/issues/25512), [#25044](https://github.com/ClickHouse/ClickHouse/issues/25044), [#24901](https://github.com/ClickHouse/ClickHouse/issues/24901), [#23183](https://github.com/ClickHouse/ClickHouse/issues/23183), [#20221](https://github.com/ClickHouse/ClickHouse/issues/20221), [#19703](https://github.com/ClickHouse/ClickHouse/issues/19703), [#19028](https://github.com/ClickHouse/ClickHouse/issues/19028), [#18391](https://github.com/ClickHouse/ClickHouse/issues/18391), [#18121](https://github.com/ClickHouse/ClickHouse/issues/18121), [#17994](https://github.com/ClickHouse/ClickHouse/issues/17994), [#12483](https://github.com/ClickHouse/ClickHouse/issues/12483). [#25854](https://github.com/ClickHouse/ClickHouse/pull/25854) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrige sharding\_key de una columna sin función al usar `remote()` (antes, `select * from remote('127.1', system.one, dummy)` provocaba el error `Unknown column: dummy, there are only columns .`). [#25824](https://github.com/ClickHouse/ClickHouse/pull/25824) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigieron los errores `Not found column ...` y `Missing column ...` al seleccionar en `MaterializeMySQL`. Soluciona [#23708](https://github.com/ClickHouse/ClickHouse/issues/23708), [#24830](https://github.com/ClickHouse/ClickHouse/issues/24830), [#25794](https://github.com/ClickHouse/ClickHouse/issues/25794). [#25822](https://github.com/ClickHouse/ClickHouse/pull/25822) ([tavplubix](https://github.com/tavplubix)).
* Se corrige `optimize_skip_unused_shards_rewrite_in` para tipos distintos de UInt64 (puede acabar seleccionando segmentos incorrectos o generar `Cannot infer type of an empty tuple` o `Function tuple requires at least one argument`). [#25798](https://github.com/ClickHouse/ClickHouse/pull/25798) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un error poco frecuente en la consulta `DROP PART` para tablas `ReplicatedMergeTree` que puede provocar el mensaje de error `Unexpected merged part intersecting drop range`. [#25783](https://github.com/ClickHouse/ClickHouse/pull/25783) ([alesapin](https://github.com/alesapin)).
* Se corrigió un error en `TTL` con una expresión `GROUP BY` que dejaba de ejecutar `TTL` después de la primera ejecución en una parte. [#25743](https://github.com/ClickHouse/ClickHouse/pull/25743) ([alesapin](https://github.com/alesapin)).
* Permitir que StorageMerge acceda a las tablas con alias. Cierra [#6051](https://github.com/ClickHouse/ClickHouse/issues/6051). [#25694](https://github.com/ClickHouse/ClickHouse/pull/25694) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige la lentitud de dict join en algunos casos, cierra [#24209](https://github.com/ClickHouse/ClickHouse/issues/24209). [#25618](https://github.com/ClickHouse/ClickHouse/pull/25618) ([Vladimir C](https://github.com/vdimir)).
* Se corrige `ALTER MODIFY COLUMN` para columnas que participan en expresiones TTL. [#25554](https://github.com/ClickHouse/ClickHouse/pull/25554) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige una aserción en `PREWHERE` con un tipo no UInt8; se cierra [#19589](https://github.com/ClickHouse/ClickHouse/issues/19589). [#25484](https://github.com/ClickHouse/ClickHouse/pull/25484) ([Vladimir C](https://github.com/vdimir)).
* Corrige un fallo de msan detectado con fuzzing. Corrige [#22517](https://github.com/ClickHouse/ClickHouse/issues/22517). [#26428](https://github.com/ClickHouse/ClickHouse/pull/26428) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se actualizó la comprobación del comando `chown` en el entrypoint de Docker de `clickhouse-server`. Corrige el error 'fallo al reiniciar el pod de Kubernetes del clúster (o timeout)' en Kubernetes. [#26545](https://github.com/ClickHouse/ClickHouse/pull/26545) ([Ky Li](https://github.com/Kylinrix)).

<div id="clickhouse-release-v217-2021-07-09">
  ### Lanzamiento de ClickHouse v21.7, 2021-07-09
</div>

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

* Se mejoró el rendimiento de las consultas con conjuntos grandes definidos explícitamente. Se añadió la configuración de compatibilidad `legacy_column_name_of_tuple_literal`. Conviene establecerla en `true` mientras se realiza una actualización gradual del clúster desde una versión anterior a 21.7 hasta cualquier versión posterior. De lo contrario, las consultas distribuidas con conjuntos definidos explícitamente en la cláusula `IN` pueden fallar durante la actualización. [#25371](https://github.com/ClickHouse/ClickHouse/pull/25371) ([Anton Popov](https://github.com/CurtizJ)).
* Cambio incompatible hacia delante y hacia atrás del tamaño máximo del búfer en clickhouse-keeper (una alternativa experimental a ZooKeeper). Es mejor hacerlo ahora (antes de entrar en producción) que más adelante. [#25421](https://github.com/ClickHouse/ClickHouse/pull/25421) ([alesapin](https://github.com/alesapin)).

<div id="new-feature">
  #### Nueva característica
</div>

* Soporte para la configuración en formato YAML como alternativa a XML. Esto cierra [#3607](https://github.com/ClickHouse/ClickHouse/issues/3607). [#21858](https://github.com/ClickHouse/ClickHouse/pull/21858) ([BoloniniD](https://github.com/BoloniniD)).
* Proporciona una forma de restaurar una tabla replicada cuando los datos están (posiblemente) presentes, pero se han perdido los metadatos de ZooKeeper. Resuelve [#13458](https://github.com/ClickHouse/ClickHouse/issues/13458). [#13652](https://github.com/ClickHouse/ClickHouse/pull/13652) ([Mike Kot](https://github.com/myrrc)).
* Soporte para structs y maps en los formatos Arrow/Parquet/ORC, y para diccionarios en los formatos de entrada/salida Arrow. Introduce el nuevo ajuste `output_format_arrow_low_cardinality_as_dictionary`. [#24341](https://github.com/ClickHouse/ClickHouse/pull/24341) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió compatibilidad con el tipo `Array` en diccionarios. [#25119](https://github.com/ClickHouse/ClickHouse/pull/25119) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la función `bitPositionsToArray`. Cierra [#23792](https://github.com/ClickHouse/ClickHouse/issues/23792). Autor: \[Kevin Wan] (@MaxWk). [#25394](https://github.com/ClickHouse/ClickHouse/pull/25394) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la función `dateName` para devolver nombres como 'Friday' o 'April'. Autor: \[Daniil Kondratyev] (@dankondr). [#25372](https://github.com/ClickHouse/ClickHouse/pull/25372) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la función `toJSONString` para serializar columnas en sus representaciones JSON. [#25164](https://github.com/ClickHouse/ClickHouse/pull/25164) ([Amos Bird](https://github.com/amosbird)).
* Ahora `query_log` tiene dos columnas nuevas: `initial_query_start_time`, `initial_query_start_time_microsecond`, que registran la hora de inicio de una consulta distribuida, si existe. [#25022](https://github.com/ClickHouse/ClickHouse/pull/25022) ([Amos Bird](https://github.com/amosbird)).
* Se añadió la función de agregado `segmentLengthSum`. [#24250](https://github.com/ClickHouse/ClickHouse/pull/24250) ([flynn](https://github.com/ucasfl)).
* Se añadió un nuevo ajuste booleano `prefer_global_in_and_join` que hace que todos los IN/JOIN sean GLOBAL IN/JOIN de forma predeterminada. [#23434](https://github.com/ClickHouse/ClickHouse/pull/23434) ([Amos Bird](https://github.com/amosbird)).
* Soporte para consultas `ALTER DELETE` en el engine de tabla `Join`. [#23260](https://github.com/ClickHouse/ClickHouse/pull/23260) ([foolchi](https://github.com/foolchi)).
* Se añadió la función de agregado `quantileBFloat16`, así como las correspondientes `quantilesBFloat16` y `medianBFloat16`. Es un estimador de quantile muy simple y rápido, con un error relativo no superior al 0.390625%. Esto cierra [#16641](https://github.com/ClickHouse/ClickHouse/issues/16641). [#23204](https://github.com/ClickHouse/ClickHouse/pull/23204) ([Ivan Novitskiy](https://github.com/RedClusive)).
* Se implementó la función `sequenceNextNode()`, útil para `flow analysis`. [#19766](https://github.com/ClickHouse/ClickHouse/pull/19766) ([achimbab](https://github.com/achimbab)).

<div id="experimental-feature-3">
  #### Característica experimental
</div>

* Se agregó compatibilidad con un sistema de archivos virtual sobre HDFS. [#11058](https://github.com/ClickHouse/ClickHouse/pull/11058) ([overshov](https://github.com/overshov)) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ahora clickhouse-keeper (una alternativa experimental a ZooKeeper) admite ACL de `digest` similares a las de ZooKeeper. [#24448](https://github.com/ClickHouse/ClickHouse/pull/24448) ([alesapin](https://github.com/alesapin)).

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

* Se añadió una optimización que transforma algunas funciones en lecturas de subcolumnas para reducir la cantidad de datos leídos. Por ejemplo, la instrucción `col IS NULL` se transforma en la lectura de la subcolumna `col.null`. La optimización puede habilitarse mediante la configuración `optimize_functions_to_subcolumns`, que actualmente está desactivada de forma predeterminada. [#24406](https://github.com/ClickHouse/ClickHouse/pull/24406) ([Anton Popov](https://github.com/CurtizJ)).
* Se reescriben más columnas como posibles expresiones de alias. Esto puede permitir mejores optimizaciones, como las proyecciones. [#24405](https://github.com/ClickHouse/ClickHouse/pull/24405) ([Amos Bird](https://github.com/amosbird)).
* El índice de tipo `bloom_filter` puede usarse para expresiones con la función `hasAny` y arrays constantes. Esto cierra: [#24291](https://github.com/ClickHouse/ClickHouse/issues/24291). [#24900](https://github.com/ClickHouse/ClickHouse/pull/24900) ([Vasily Nemkov](https://github.com/Enmk)).
* Se añadió backoff exponencial para reprogramar el intento de lectura en caso de que las colas de RabbitMQ estén vacías. (ClickHouse admite la importación de datos desde RabbitMQ). Cierra [#24340](https://github.com/ClickHouse/ClickHouse/issues/24340). [#24415](https://github.com/ClickHouse/ClickHouse/pull/24415) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Permite limitar el ancho de banda de la replicación. Añade dos configuraciones de Replicated\*MergeTree: `max_replicated_fetches_network_bandwidth` y `max_replicated_sends_network_bandwidth`, que permiten limitar la velocidad máxima de los fetches/envíos replicados de la tabla. Añade dos configuraciones para todo el servidor (en el perfil de usuario `default`): `max_replicated_fetches_network_bandwidth_for_server` y `max_replicated_sends_network_bandwidth_for_server`, que limitan la velocidad máxima de replicación para todas las tablas. Las configuraciones no se respetan con total precisión. Desactivadas de forma predeterminada. Corrige [#1821](https://github.com/ClickHouse/ClickHouse/issues/1821). [#24573](https://github.com/ClickHouse/ClickHouse/pull/24573) ([alesapin](https://github.com/alesapin)).
* Restricciones de recursos y aislamiento para los bridges ODBC y Library. Use un grupo y un usuario `clickhouse-bridge` independientes para los procesos de bridge. Configure `oom_score_adj` para que los bridges sean los primeros candidatos para el OOM killer. Establezca el RSS máximo en 1 GiB. Cierra [#23861](https://github.com/ClickHouse/ClickHouse/issues/23861). [#25280](https://github.com/ClickHouse/ClickHouse/pull/25280) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió un enlace simbólico independiente `clickhouse-keeper` al binario principal `clickhouse`. Ahora es posible ejecutar la coordinación sin el servidor principal de ClickHouse. [#24059](https://github.com/ClickHouse/ClickHouse/pull/24059) ([alesapin](https://github.com/alesapin)).
* Usar la configuración global para las consultas a `VIEW`. Se corrigió el comportamiento cuando las consultas a `VIEW` usan configuraciones locales, lo que provoca errores si la configuración de `CREATE VIEW` y `SELECT` es diferente. Por ahora, `VIEW` no usará estas configuraciones modificadas, pero aún puedes pasar configuraciones adicionales en la sección `SETTINGS` de la consulta `CREATE VIEW`. Cierra [#20551](https://github.com/ClickHouse/ClickHouse/issues/20551). [#24095](https://github.com/ClickHouse/ClickHouse/pull/24095) ([Vladimir](https://github.com/vdimir)).
* Al iniciar el servidor, las partes con un ID de partición incorrecto nunca se eliminaban, sino que siempre se marcaban como detached. [#25070](https://github.com/ClickHouse/ClickHouse/issues/25070). [#25166](https://github.com/ClickHouse/ClickHouse/pull/25166) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Aumenta el tamaño del pool de programación en segundo plano a 128 (ajuste `background_schedule_pool_size`). Permite evitar que la cola de replicación quede bloqueada cuando la conexión con ZooKeeper es lenta. [#25072](https://github.com/ClickHouse/ClickHouse/pull/25072) ([alesapin](https://github.com/alesapin)).
* Añade la configuración de MergeTree `max_parts_to_merge_at_once`, que limita el número de partes que pueden fusionarse en segundo plano a la vez. No afecta a la consulta `OPTIMIZE FINAL`. Corrige [#1820](https://github.com/ClickHouse/ClickHouse/issues/1820). [#24496](https://github.com/ClickHouse/ClickHouse/pull/24496) ([alesapin](https://github.com/alesapin)).
* Se permite usar el operador `NOT IN` en la poda de particiones. [#24894](https://github.com/ClickHouse/ClickHouse/pull/24894) ([Amos Bird](https://github.com/amosbird)).
* Reconocer como locales las direcciones IPv4 como `127.0.1.1`. Esto es controvertido y resuelve [#23504](https://github.com/ClickHouse/ClickHouse/issues/23504). Michael Filimonov probará esta función. [#24316](https://github.com/ClickHouse/ClickHouse/pull/24316) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* La base de datos de ClickHouse creada con MaterializeMySQL (es una funcionalidad experimental) ahora contiene todos los comentarios de las columnas de la base de datos de MySQL materializada. [#25199](https://github.com/ClickHouse/ClickHouse/pull/25199) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Se agregan ajustes (`connection_auto_close`/`connection_max_tries`/`connection_pool_size`) al motor de almacenamiento MySQL. [#24146](https://github.com/ClickHouse/ClickHouse/pull/24146) ([Azat Khuzhin](https://github.com/azat)).
* Mejora el tiempo de arranque del motor Distributed. [#25663](https://github.com/ClickHouse/ClickHouse/pull/25663) ([Azat Khuzhin](https://github.com/azat)).
* Mejora de las tablas Distributed. Se eliminan las réplicas de dirname para internal\_replication=true (permite INSERT en Distributed con clústeres con cualquier número de réplicas; antes solo se admitían 15 réplicas; por encima de ese límite fallaba con ENAMETOOLONG al crear el directorio para bloques asíncronos). [#25513](https://github.com/ClickHouse/ClickHouse/pull/25513) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió soporte para el tipo `Interval` en `LowCardinality`. Se necesita para los valores intermedios de algunas expresiones. Cierra [#21730](https://github.com/ClickHouse/ClickHouse/issues/21730). [#25410](https://github.com/ClickHouse/ClickHouse/pull/25410) ([Vladimir](https://github.com/vdimir)).
* Se añade el operador `==` en las condiciones de tiempo para las funciones `sequenceMatch` y `sequenceCount`. Por ejemplo: sequenceMatch('(?1)(?t==1)(?2)')(time, data = 1, data = 2). [#25299](https://github.com/ClickHouse/ClickHouse/pull/25299) ([Christophe Kalenzaga](https://github.com/mga-chka)).
* Se añaden las configuraciones `http_max_fields`, `http_max_field_name_size`, `http_max_field_value_size`. [#25296](https://github.com/ClickHouse/ClickHouse/pull/25296) ([Ivan](https://github.com/abyss7)).
* Se añadió compatibilidad para la función `if` con tipos `Decimal` e `Int` en sus ramas. Esto cierra [#20549](https://github.com/ClickHouse/ClickHouse/issues/20549). Esto cierra [#10142](https://github.com/ClickHouse/ClickHouse/issues/10142). [#25283](https://github.com/ClickHouse/ClickHouse/pull/25283) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Actualiza el prompt de `clickhouse-client` y muestra un mensaje al reconectarse. Esto cierra [#10577](https://github.com/ClickHouse/ClickHouse/issues/10577). [#25281](https://github.com/ClickHouse/ClickHouse/pull/25281) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el seguimiento del uso de memoria en la función de agregación `topK`. Esto cierra [#25259](https://github.com/ClickHouse/ClickHouse/issues/25259). [#25260](https://github.com/ClickHouse/ClickHouse/pull/25260) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió `topLevelDomain` para hosts IDN (es decir, `example.рф`); antes devolvía una cadena vacía para estos hosts. [#25103](https://github.com/ClickHouse/ClickHouse/pull/25103) ([Azat Khuzhin](https://github.com/azat)).
* Detectar la versión del kernel de Linux en tiempo de ejecución (para que funcione `epoll` anidado, esto es necesario para `async_socket_for_remote`/`use_hedged_requests`; de lo contrario, las consultas remotas pueden quedar bloqueadas). [#25067](https://github.com/ClickHouse/ClickHouse/pull/25067) ([Azat Khuzhin](https://github.com/azat)).
* Para consultas distribuidas, cuando `optimize_skip_unused_shards=1`, se permite omitir un segmento con una condición como `(sharding key) IN (tupla de un elemento)`. (Las tuplas con muchos elementos eran compatibles. La tupla de un solo elemento no funcionaba porque se interpreta como un literal). [#24930](https://github.com/ClickHouse/ClickHouse/pull/24930) ([Amos Bird](https://github.com/amosbird)).
* Se mejoraron los mensajes de registro para errores de S3; ya no hay espacios en blanco dobles cuando las claves y los buckets están vacíos. [#24897](https://github.com/ClickHouse/ClickHouse/pull/24897) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Algunas consultas requieren un análisis semántico en varias pasadas. Pruebe a reutilizar los conjuntos ya creados para `IN` en este caso. [#24874](https://github.com/ClickHouse/ClickHouse/pull/24874) ([Amos Bird](https://github.com/amosbird)).
* Se tiene en cuenta `max_distributed_connections` para `insert_distributed_sync` (de lo contrario, en clústeres muy grandes y con inserción síncrona, podría agotarse `max_thread_pool_size`). [#24754](https://github.com/ClickHouse/ClickHouse/pull/24754) ([Azat Khuzhin](https://github.com/azat)).
* Evita ocultar errores como `Limit for rows or bytes to read exceeded` en las subconsultas escalares. [#24545](https://github.com/ClickHouse/ClickHouse/pull/24545) ([nvartolomei](https://github.com/nvartolomei)).
* Hacer más estricto el analizador de String a Int para que `toInt64('+')` genere una excepción. [#24475](https://github.com/ClickHouse/ClickHouse/pull/24475) ([Amos Bird](https://github.com/amosbird)).
* Si `SSD_CACHE` se crea mediante una consulta DDL, solo puede crearse dentro del directorio `user_files`. [#24466](https://github.com/ClickHouse/ClickHouse/pull/24466) ([Maksim Kita](https://github.com/kitaisreal)).
* Compatibilidad con PostgreSQL para especificar un esquema distinto del predeterminado para las consultas INSERT. Cierra [#24149](https://github.com/ClickHouse/ClickHouse/issues/24149). [#24413](https://github.com/ClickHouse/ClickHouse/pull/24413) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige la resolución de direcciones IPv6 (es decir, se corrige `select * from remote('[::1]', system.one)`). [#24319](https://github.com/ClickHouse/ClickHouse/pull/24319) ([Azat Khuzhin](https://github.com/azat)).
* Corrige los espacios en blanco finales en la cláusula FROM con subconsultas en modo multilínea y también modifica ligeramente la salida de las consultas para hacerla más legible. [#24151](https://github.com/ClickHouse/ClickHouse/pull/24151) ([Azat Khuzhin](https://github.com/azat)).
* Mejora para las tablas distribuidas. Se añade la posibilidad de dividir el batch distribuido en caso de fallo (es decir, debido a límites de memoria o corrupciones) con `distributed_directory_monitor_split_batch_on_failure` (OFF de forma predeterminada). [#23864](https://github.com/ClickHouse/ClickHouse/pull/23864) ([Azat Khuzhin](https://github.com/azat)).
* Se resuelven los conflictos de nombres de columnas para el motor de tabla `Join`. Cierra [#20309](https://github.com/ClickHouse/ClickHouse/issues/20309). [#23769](https://github.com/ClickHouse/ClickHouse/pull/23769) ([Vladimir](https://github.com/vdimir)).
* Mostrar el progreso del motor de tabla `File` en `clickhouse-local` y de la consulta INSERT en `clickhouse-client` cuando los datos se envían a stdin. Cierra [#18209](https://github.com/ClickHouse/ClickHouse/issues/18209). [#23656](https://github.com/ClickHouse/ClickHouse/pull/23656) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correcciones y mejoras de `clickhouse-copier`. Permite copiar tablas con esquemas distintos (pero compatibles). Cierra [#9159](https://github.com/ClickHouse/ClickHouse/issues/9159). Se añadió una prueba para copiar ReplacingMergeTree. Cierra [#22711](https://github.com/ClickHouse/ClickHouse/issues/22711). Compatibilidad con TTL en columnas e índices de omisión de datos. Simplemente los elimina para crear la tabla Distributed interna (la tabla subyacente tendrá TTL e índices de omisión). Cierra [#19384](https://github.com/ClickHouse/ClickHouse/issues/19384). Permite copiar columnas MATERIALIZED y ALIAS. En algunos casos esto puede ser útil (p. ej., si esta columna está en PRIMARY KEY). Ahora se puede permitir estableciendo la propiedad `allow_to_copy_alias_and_materialized_columns` en true en la configuración de la tarea. Cierra [#9177](https://github.com/ClickHouse/ClickHouse/issues/9177). Cierra \[#11007] ([https://github.com/ClickHouse/ClickHouse/issues/11007](https://github.com/ClickHouse/ClickHouse/issues/11007)). Cierra [#9514](https://github.com/ClickHouse/ClickHouse/issues/9514). Se añadió la propiedad `allow_to_drop_target_partitions` en la configuración de la tarea para eliminar una partición de la tabla original antes de mover las tablas auxiliares. Cierra [#20957](https://github.com/ClickHouse/ClickHouse/issues/20957). Elimina la consulta `OPTIMIZE DEDUPLICATE`. Este truco era necesario porque `ALTER TABLE MOVE PARTITION` se reintentaba muchas veces y las tablas MergeTree simples no tienen deduplicación. Cierra [#17966](https://github.com/ClickHouse/ClickHouse/issues/17966). Escribe el progreso en el nodo de ZooKeeper en la ruta `task_path + /status` en formato JSON. Cierra [#20955](https://github.com/ClickHouse/ClickHouse/issues/20955). Compatibilidad con ReplicatedTables sin argumentos. Cierra [#24834](https://github.com/ClickHouse/ClickHouse/issues/24834) .[#23518](https://github.com/ClickHouse/ClickHouse/pull/23518) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añadió una pausa con backoff entre los reintentos de lectura desde S3. [#23461](https://github.com/ClickHouse/ClickHouse/pull/23461) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Respeta `insert_allow_materialized_columns` (permite columnas materializadas) para INSERT en la tabla `Distributed`. [#23349](https://github.com/ClickHouse/ClickHouse/pull/23349) ([Azat Khuzhin](https://github.com/azat)).
* Se añade la posibilidad de delegar LIMIT en las consultas distribuidas. [#23027](https://github.com/ClickHouse/ClickHouse/pull/23027) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la replicación zero-copy con varios volúmenes de S3 (corrige [#22679](https://github.com/ClickHouse/ClickHouse/issues/22679)). [#22864](https://github.com/ClickHouse/ClickHouse/pull/22864) ([ianton-ru](https://github.com/ianton-ru)).
* Determinar el número de puerto real asignado cuando un usuario solicita cualquier puerto disponible al sistema operativo para mostrarlo en el mensaje de registro. [#25569](https://github.com/ClickHouse/ClickHouse/pull/25569) ([bnaecker](https://github.com/bnaecker)).
* Se corrigió el caso en el que, a veces, la conversión de arrays de Postgres producía el tipo de datos String en lugar de un array n-dimensional, porque `attndims` funciona incorrectamente en algunos casos. Cierra [#24804](https://github.com/ClickHouse/ClickHouse/issues/24804). [#25538](https://github.com/ClickHouse/ClickHouse/pull/25538) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige la conversión de DateTime con zona horaria en MySQL, PostgreSQL y ODBC. Cierra [#5057](https://github.com/ClickHouse/ClickHouse/issues/5057). [#25528](https://github.com/ClickHouse/ClickHouse/pull/25528) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Distinguir KILL MUTATION entre distintas tablas (corrige el error inesperado `Cancelled mutating parts`). [#25025](https://github.com/ClickHouse/ClickHouse/pull/25025) ([Azat Khuzhin](https://github.com/azat)).
* Permite declarar un disco S3 en la raíz del bucket (el sistema de archivos virtual de S3 es una característica experimental en desarrollo). [#24898](https://github.com/ClickHouse/ClickHouse/pull/24898) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Habilita la lectura de subcolumnas (p. ej., componentes de Tuples) para tablas distribuidas. [#24472](https://github.com/ClickHouse/ClickHouse/pull/24472) ([Anton Popov](https://github.com/CurtizJ)).
* Una mejora para el protocolo de compatibilidad con MySQL: hacer que la función `user` devuelva el resultado correcto. Cierra [#25697](https://github.com/ClickHouse/ClickHouse/pull/25697). [#25697](https://github.com/ClickHouse/ClickHouse/pull/25697) ([sundyli](https://github.com/sundy-li)).

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

* Mejora de la compatibilidad con versiones anteriores. Se usa la versión anterior de la función de módulo cuando se utiliza en la clave de partición. Cierra [#23508](https://github.com/ClickHouse/ClickHouse/issues/23508). [#24157](https://github.com/ClickHouse/ClickHouse/pull/24157) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige un error extremadamente raro en servidores con poca memoria que puede impedir realizar merges sin reiniciar. Posiblemente corrige [#24603](https://github.com/ClickHouse/ClickHouse/issues/24603). [#24872](https://github.com/ClickHouse/ClickHouse/pull/24872) ([alesapin](https://github.com/alesapin)).
* Corrige un error extremadamente raro, `Tagging already tagged part`, en la cola de replicación durante operaciones concurrentes de `alter move/replace partition`. Posiblemente corrige [#22142](https://github.com/ClickHouse/ClickHouse/issues/22142). [#24961](https://github.com/ClickHouse/ClickHouse/pull/24961) ([alesapin](https://github.com/alesapin)).
* Corrige un posible fallo al calcular estados de funciones de agregado mediante la agregación de estados de funciones de agregado de otras funciones de agregado (no es un caso de uso práctico). Véase [#24523](https://github.com/ClickHouse/ClickHouse/issues/24523). [#25015](https://github.com/ClickHouse/ClickHouse/pull/25015) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el comportamiento cuando la consulta `SYSTEM RESTART REPLICA` o `SYSTEM SYNC REPLICA` no finalizaba. Esto se detectó en un servidor con una cantidad extremadamente baja de RAM. [#24457](https://github.com/ClickHouse/ClickHouse/pull/24457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige un error que puede hacer que el cliente de ZooKeeper se quede colgado dentro de clickhouse-server. [#24721](https://github.com/ClickHouse/ClickHouse/pull/24721) ([alesapin](https://github.com/alesapin)).
* Si se perdió la conexión con ZooKeeper y la réplica se clonó después de restablecerla, su cola de replicación podía contener entradas obsoletas. Se corrigió una aserción fallida cuando la cola de replicación contiene partes virtuales que se intersecan. Esto puede ocurrir en raras ocasiones si se pierde alguna parte de datos. Ahora se registra un error en el log en lugar de finalizar. [#24777](https://github.com/ClickHouse/ClickHouse/pull/24777) ([tavplubix](https://github.com/tavplubix)).
* Se corrige la pérdida de la condición `WHERE` en la optimización de inserción de expresiones del plan de consulta (con `query_plan_filter_push_down = 1` de forma predeterminada). Corrige [#25368](https://github.com/ClickHouse/ClickHouse/issues/25368). [#25370](https://github.com/ClickHouse/ClickHouse/pull/25370) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige un error que puede provocar partes solapadas después de las fusiones con TTL: `Part all_40_40_0 is covered by all_40_40_1 but should be merged into all_40_41_1. This shouldn't happen often.`. [#25549](https://github.com/ClickHouse/ClickHouse/pull/25549) ([alesapin](https://github.com/alesapin)).
* Si se pierde la conexión con ZooKeeper, la tabla `ReplicatedMergeTree` puede esperar a que finalicen las operaciones en segundo plano antes de intentar reconectarse. Esto ya se corrigió: ahora las operaciones en segundo plano se detienen de forma forzosa. [#25306](https://github.com/ClickHouse/ClickHouse/pull/25306) ([tavplubix](https://github.com/tavplubix)).
* Se corrige el error `Key expression contains comparison between inconvertible types` en consultas con `ARRAY JOIN` cuando se usa un Array en la clave primaria. Corrige [#8247](https://github.com/ClickHouse/ClickHouse/issues/8247). [#25546](https://github.com/ClickHouse/ClickHouse/pull/25546) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige los totales incorrectos para la consulta `WITH TOTALS` y `WITH FILL`. Corrige [#20872](https://github.com/ClickHouse/ClickHouse/issues/20872). [#25539](https://github.com/ClickHouse/ClickHouse/pull/25539) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió una condición de carrera al consultar `system.clusters` mientras se recargaba la configuración del clúster al mismo tiempo. [#25737](https://github.com/ClickHouse/ClickHouse/pull/25737) ([Amos Bird](https://github.com/amosbird)).
* Se solucionó el error `No such file or directory` al mover una tabla `Distributed` entre bases de datos. Corrige [#24971](https://github.com/ClickHouse/ClickHouse/issues/24971). [#25667](https://github.com/ClickHouse/ClickHouse/pull/25667) ([tavplubix](https://github.com/tavplubix)).
* `REPLACE PARTITION` podía ignorarse en casos excepcionales si la partición de origen estaba vacía. Ya se ha corregido. Corrige [#24869](https://github.com/ClickHouse/ClickHouse/issues/24869). [#25665](https://github.com/ClickHouse/ClickHouse/pull/25665) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió un error en el motor de base de datos `Replicated` que, en raras ocasiones, podía hacer que alguna réplica omitiera una consulta DDL encolada. [#24805](https://github.com/ClickHouse/ClickHouse/pull/24805) ([tavplubix](https://github.com/tavplubix)).
* Se corrige la desreferenciación de puntero nulo en `EXPLAIN AST` sin consulta. [#25631](https://github.com/ClickHouse/ClickHouse/pull/25631) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige la espera durante la eliminación automática de partes vacías. Podía provocar la saturación total del background pool y el bloqueo de la replicación. [#23315](https://github.com/ClickHouse/ClickHouse/pull/23315) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige la restauración de una tabla almacenada en el sistema de archivos virtual de S3 (se trata de una funcionalidad experimental que no está lista para producción). [#25601](https://github.com/ClickHouse/ClickHouse/pull/25601) ([ianton-ru](https://github.com/ianton-ru)).
* Se corrige la desreferencia de `nullptr` en el formato `Arrow` al usar `Decimal256`. Se añade compatibilidad con `Decimal256` en el formato `Arrow`. [#25531](https://github.com/ClickHouse/ClickHouse/pull/25531) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el exceso de guiones bajos antes de los nombres de los archivos de configuración preprocesados. [#25431](https://github.com/ClickHouse/ClickHouse/pull/25431) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrección en la herramienta `clickhouse-copier`: se corrige un fallo de segmentación cuando falta `sharding&#95;key` en la configuración de la tarea de copier. [#25419](https://github.com/ClickHouse/ClickHouse/pull/25419) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige el transformador de columnas `REPLACE` cuando se usa en DDL entrecomillando correctamente la consulta formateada. Esto corrige [#23925](https://github.com/ClickHouse/ClickHouse/issues/23925). [#25391](https://github.com/ClickHouse/ClickHouse/pull/25391) ([Amos Bird](https://github.com/amosbird)).
* Se corrige la posibilidad de un comportamiento no determinista en la función `quantileDeterministic` y otras similares. Esto cierra [#20480](https://github.com/ClickHouse/ClickHouse/issues/20480). [#25313](https://github.com/ClickHouse/ClickHouse/pull/25313) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añade compatibilidad con `SimpleAggregateFunction(LowCardinality)` para `SummingMergeTree`. Corrige [#25134](https://github.com/ClickHouse/ClickHouse/issues/25134). [#25300](https://github.com/ClickHouse/ClickHouse/pull/25300) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un error lógico relacionado con el mensaje de excepción "No se puede sumar Array/Tuple en min/maxMap". [#25298](https://github.com/ClickHouse/ClickHouse/pull/25298) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige el error `Bad cast from type DB::ColumnLowCardinality to DB::ColumnVector<char8_t>` en consultas donde se usó el argumento `LowCardinality` para IN (este error apareció en la versión 21.6). Corrige [#25187](https://github.com/ClickHouse/ClickHouse/issues/25187). [#25290](https://github.com/ClickHouse/ClickHouse/pull/25290) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige el comportamiento incorrecto de `joinGetOrNull` con columnas no anulables. Esto soluciona [#24261](https://github.com/ClickHouse/ClickHouse/issues/24261). [#25288](https://github.com/ClickHouse/ClickHouse/pull/25288) ([Amos Bird](https://github.com/amosbird)).
* Se corrige el comportamiento erróneo y el informe de UBSan en enteros grandes. En versiones anteriores, `CAST(1e19 AS UInt128)` devolvía cero. [#25279](https://github.com/ClickHouse/ClickHouse/pull/25279) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un error que se producía al insertar un subconjunto de columnas en formato CSVWithNames. Soluciona [#25129](https://github.com/ClickHouse/ClickHouse/issues/25129). [#25169](https://github.com/ClickHouse/ClickHouse/pull/25169) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* No utilice la proyección de la tabla con `SELECT` y `FINAL`. Aún no es compatible. [#25163](https://github.com/ClickHouse/ClickHouse/pull/25163) ([Amos Bird](https://github.com/amosbird)).
* Se corrige la posible pérdida de partes después de actualizar hasta la versión 21.5, en caso de que la tabla usara `UUID` en la clave de partición. (No se recomienda usar `UUID` en la clave de partición). Corrige [#25070](https://github.com/ClickHouse/ClickHouse/issues/25070). [#25127](https://github.com/ClickHouse/ClickHouse/pull/25127) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un fallo en una consulta con CROSS JOIN y `joined_subquery_requires_alias = 0`. Soluciona [#24011](https://github.com/ClickHouse/ClickHouse/issues/24011). [#25082](https://github.com/ClickHouse/ClickHouse/pull/25082) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un error con mapas constantes en la función mapContains que provocaba el mensaje de error `empty column was returned by function mapContains`. Cierra [#25077](https://github.com/ClickHouse/ClickHouse/issues/25077). [#25080](https://github.com/ClickHouse/ClickHouse/pull/25080) ([Kruglov Pavel](https://github.com/Avogar)).
* Se elimina la posibilidad de crear tablas con columnas que se referencian a sí mismas, como `a UInt32 ALIAS a + 1` o `b UInt32 MATERIALIZED b`. Corrige [#24910](https://github.com/ClickHouse/ClickHouse/issues/24910), [#24292](https://github.com/ClickHouse/ClickHouse/issues/24292). [#25059](https://github.com/ClickHouse/ClickHouse/pull/25059) ([alesapin](https://github.com/alesapin)).
* Corrige un resultado incorrecto al usar una proyección agregada con una clave `GROUP BY` *no vacía* para ejecutar una consulta con `GROUP BY` sobre una clave *vacía*. [#25055](https://github.com/ClickHouse/ClickHouse/pull/25055) ([Amos Bird](https://github.com/amosbird)).
* Se corrige la serialización de mensajes anidados divididos en el formato Protobuf. Este PR corrige [#24647](https://github.com/ClickHouse/ClickHouse/issues/24647). [#25000](https://github.com/ClickHouse/ClickHouse/pull/25000) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige la configuración de LIMIT/OFFSET para las consultas distribuidas (se ignoran en los nodos remotos). [#24940](https://github.com/ClickHouse/ClickHouse/pull/24940) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un posible heap-buffer-overflow en el formato `Arrow`. [#24922](https://github.com/ClickHouse/ClickHouse/pull/24922) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrigió un posible error: 'Cannot read from istream at offset 0' al leer un archivo desde DiskS3 (el sistema de archivos virtual de S3 es una función experimental en desarrollo y no debe usarse en producción). [#24885](https://github.com/ClickHouse/ClickHouse/pull/24885) ([Pavel Kovalenko](https://github.com/Jokser)).
* Se corrigió la excepción "Missing columns" al realizar un join sobre una vista materializada distribuida. [#24870](https://github.com/ClickHouse/ClickHouse/pull/24870) ([Azat Khuzhin](https://github.com/azat)).
* Permite valores `NULL` en el protocolo de compatibilidad con PostgreSQL. Cierra [#22622](https://github.com/ClickHouse/ClickHouse/issues/22622). [#24857](https://github.com/ClickHouse/ClickHouse/pull/24857) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un error por el que la excepción `Mutation was killed` podía enviarse al cliente al esperar una mutación, cuando esta aún no se había cargado en memoria. [#24809](https://github.com/ClickHouse/ClickHouse/pull/24809) ([alesapin](https://github.com/alesapin)).
* Se corrigió un error en la deserialización del estado del generador aleatorio que podía provocar que algunos tipos de datos, como `AggregateFunction(groupArraySample(N), T))`, se comportaran de forma no determinista. [#24538](https://github.com/ClickHouse/ClickHouse/pull/24538) ([tavplubix](https://github.com/tavplubix)).
* Prohibir la creación de `uniqXXXXStates` a partir de otros estados de agregación. [#24523](https://github.com/ClickHouse/ClickHouse/pull/24523) ([Raúl Marín](https://github.com/Algunenano)). Luego se volvió a permitir tras eliminar realmente la causa raíz del problema relacionado. ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige el uso de tuplas en consultas `CREATE .. AS SELECT`. [#24464](https://github.com/ClickHouse/ClickHouse/pull/24464) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige el cálculo del total de bytes en la tabla `Buffer`. En la versión actual de ClickHouse, el contador total\_writes.bytes disminuye demasiado durante el vaciado del búfer. Esto provoca un desbordamiento del contador y hace que totalBytes devuelva algo en torno a 17.44 EB al cabo de un tiempo tras el vaciado. [#24450](https://github.com/ClickHouse/ClickHouse/pull/24450) ([DimasKovas](https://github.com/DimasKovas)).
* Corrige información incorrecta sobre la monotonicidad de la función toWeek. Esto corrige [#24422](https://github.com/ClickHouse/ClickHouse/issues/24422) . Este error se introdujo en [https://github.com/ClickHouse/ClickHouse/pull/5212](https://github.com/ClickHouse/ClickHouse/pull/5212) , y más tarde quedó al descubierto por un mecanismo de poda de particiones más inteligente. [#24446](https://github.com/ClickHouse/ClickHouse/pull/24446) ([Amos Bird](https://github.com/amosbird)).
* Cuando la autenticación de usuarios se gestiona mediante LDAP. Se corrigió un posible interbloqueo que puede producirse durante el (re)mapeo de roles de LDAP cuando un grupo de LDAP se asigna a un rol local inexistente. [#24431](https://github.com/ClickHouse/ClickHouse/pull/24431) ([Denis Glazachev](https://github.com/traceon)).
* En el mensaje "multipart/form-data", considerar el CRLF que precede a un delimitador como parte de este. Corrige [#23905](https://github.com/ClickHouse/ClickHouse/issues/23905). [#24399](https://github.com/ClickHouse/ClickHouse/pull/24399) ([Ivan](https://github.com/abyss7)).
* Se corrigió DROP PARTITION con partes ficticias de INTERSECT. En casos excepcionales, puede haber partes con una versión de mutación superior al número de bloque actual. [#24321](https://github.com/ClickHouse/ClickHouse/pull/24321) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió un error al mover una vista materializada de una base de datos Ordinary a una base de datos Atomic (consulta `RENAME TABLE`). Ahora la tabla interna se mueve a la nueva base de datos junto con la vista materializada. Corrige [#23926](https://github.com/ClickHouse/ClickHouse/issues/23926). [#24309](https://github.com/ClickHouse/ClickHouse/pull/24309) ([tavplubix](https://github.com/tavplubix)).
* Permite cabeceras HTTP vacías. Corrige [#23901](https://github.com/ClickHouse/ClickHouse/issues/23901). [#24285](https://github.com/ClickHouse/ClickHouse/pull/24285) ([Ivan](https://github.com/abyss7)).
* Procesamiento correcto de las mutaciones (ALTER UPDATE/DELETE) en tablas Memory. Soluciona [#24274](https://github.com/ClickHouse/ClickHouse/issues/24274). [#24275](https://github.com/ClickHouse/ClickHouse/pull/24275) ([flynn](https://github.com/ucasfl)).
* Hacer que la propiedad LowCardinality de la columna en la salida de JOIN sea igual que en la entrada, cierra [#23351](https://github.com/ClickHouse/ClickHouse/issues/23351), cierra [#20315](https://github.com/ClickHouse/ClickHouse/issues/20315). [#24061](https://github.com/ClickHouse/ClickHouse/pull/24061) ([Vladimir](https://github.com/vdimir)).
* Corrección para las tablas de Kafka. Corrige un error en el comportamiento de failover por el que Engine = Kafka no podía iniciar el consumo si ese mismo consumidor se había quedado previamente sin asignaciones. Cierra [#21118](https://github.com/ClickHouse/ClickHouse/issues/21118). [#21267](https://github.com/ClickHouse/ClickHouse/pull/21267) ([filimonov](https://github.com/filimonov)).

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

* Se añaden compilaciones `darwin-aarch64` (Mac M1 / Apple Silicon) en CI [#25560](https://github.com/ClickHouse/ClickHouse/pull/25560) ([Ivan](https://github.com/abyss7)) y se agregan enlaces en la documentación y el sitio web ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Añade la incrustación multiplataforma de recursos binarios en ejecutables. Funciona en Illumos. [#25146](https://github.com/ClickHouse/ClickHouse/pull/25146) ([bnaecker](https://github.com/bnaecker)).
* Añade opciones relacionadas con join a las pruebas de estrés para mejorar el fuzzing. [#25200](https://github.com/ClickHouse/ClickHouse/pull/25200) ([Vladimir](https://github.com/vdimir)).
* Habilita la compilación con el módulo S3 en OSX [#25217](https://github.com/ClickHouse/ClickHouse/issues/25217). [#25218](https://github.com/ClickHouse/ClickHouse/pull/25218) ([kevin wan](https://github.com/MaxWk)).
* Añade casos de prueba de integración para cubrir el puente JDBC. [#25047](https://github.com/ClickHouse/ClickHouse/pull/25047) ([Zhichun Wu](https://github.com/zhicwu)).
* La configuración de las pruebas de integración tiene un tratamiento especial para los diccionarios. Se eliminó la configuración manual restante de diccionarios. [#24728](https://github.com/ClickHouse/ClickHouse/pull/24728) ([Ilya Yatsishin](https://github.com/qoega)).
* Añade pruebas de libfuzzer para la clase YAMLParser. [#24480](https://github.com/ClickHouse/ClickHouse/pull/24480) ([BoloniniD](https://github.com/BoloniniD)).
* Ahora se usa Ubuntu 20.04 para ejecutar las pruebas de integración; la versión de docker-compose utilizada para ejecutarlas se actualizó a la 1.28.2. Las variables de entorno ahora surten efecto en docker-compose. Se rehízo test\_dictionaries\_all\_layouts\_separate\_sources para permitir la ejecución en paralelo. [#20393](https://github.com/ClickHouse/ClickHouse/pull/20393) ([Ilya Yatsishin](https://github.com/qoega)).
* Corrige un error TOCTOU en el script de instalación. [#25277](https://github.com/ClickHouse/ClickHouse/pull/25277) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-216-2021-06-05">
  ### Lanzamiento de ClickHouse 21.6, 2021-06-05
</div>

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

* uniqState / uniqHLL12State / uniqCombinedState / uniqCombined64State producen estados incompatibles con el tipo `UUID`. [#33607](https://github.com/ClickHouse/ClickHouse/issues/33607).

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

* La biblioteca de compresión `zstd` se ha actualizado a la versión 1.5.0. Es posible que reciba mensajes de "checksum does not match" en la replicación. Estos mensajes son normales debido a la actualización del algoritmo de compresión y puede ignorarlos. Son meramente informativos y no indican ningún tipo de comportamiento no deseado.
* La configuración `compile_expressions` está habilitada de forma predeterminada. Aunque se ha probado exhaustivamente en una amplia variedad de escenarios, si detecta algún comportamiento no deseado en sus servidores, puede intentar desactivar esta configuración.
* Los valores de tipo `UUID` no pueden compararse con enteros. Por ejemplo, en lugar de escribir `uuid != 0`, escriba `uuid != '00000000-0000-0000-0000-000000000000'`.

<div id="new-feature">
  #### Nueva característica
</div>

* Se añade el operador de conversión de tipos al estilo de Postgres (`::`). P. ej.: `[1, 2]::Array(UInt8)`, `0.1::Decimal(4, 4)`, `number::UInt16`. [#23871](https://github.com/ClickHouse/ClickHouse/pull/23871) ([Anton Popov](https://github.com/CurtizJ)).
* Preparar los enteros grandes para su uso en producción. Añadir compatibilidad con el tipo de dato `UInt128`. Corregir problemas conocidos del tipo de dato `Decimal256`. Admitir enteros grandes en diccionarios. Admitir las funciones `gcd`/`lcm` para enteros grandes. Admitir enteros grandes en funciones de búsqueda en arrays y funciones condicionales. Admitir `LowCardinality(UUID)`. Admitir enteros grandes en la función de tabla `generateRandom` y en `clickhouse-obfuscator`. Corregir el error al devolver `UUID` desde subconsultas escalares. Esto corrige [#7834](https://github.com/ClickHouse/ClickHouse/issues/7834). Esto corrige [#23936](https://github.com/ClickHouse/ClickHouse/issues/23936). Esto corrige [#4176](https://github.com/ClickHouse/ClickHouse/issues/4176). Esto corrige [#24018](https://github.com/ClickHouse/ClickHouse/issues/24018). Cambio incompatible con versiones anteriores: los valores de tipo `UUID` no pueden compararse con enteros. Por ejemplo, en lugar de escribir `uuid != 0`, escriba `uuid != '00000000-0000-0000-0000-000000000000'`. [#23631](https://github.com/ClickHouse/ClickHouse/pull/23631) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se admite el tipo de dato `Array` para insertar y seleccionar datos en los formatos `Arrow`, `Parquet` y `ORC`. [#21770](https://github.com/ClickHouse/ClickHouse/pull/21770) ([taylor12805](https://github.com/taylor12805)).
* Implementar comentarios en tablas. Cierra [#23225](https://github.com/ClickHouse/ClickHouse/issues/23225). [#23548](https://github.com/ClickHouse/ClickHouse/pull/23548) ([flynn](https://github.com/ucasFL)).
* Se admite la creación de diccionarios con consultas DDL en `clickhouse-local`. Cierra [#22354](https://github.com/ClickHouse/ClickHouse/issues/22354). Se añadió compatibilidad con `DETACH DICTIONARY PERMANENTLY`. Se añadió compatibilidad con `EXCHANGE DICTIONARIES` para el engine de base de datos `Atomic`. Se añadió compatibilidad para mover diccionarios entre bases de datos con `RENAME DICTIONARY`. [#23436](https://github.com/ClickHouse/ClickHouse/pull/23436) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade la función de agregación `uniqTheta` para admitir [Theta Sketch](https://datasketches.apache.org/docs/Theta/ThetaSketchFramework.html) en ClickHouse. [#23894](https://github.com/ClickHouse/ClickHouse/pull/23894). [#22609](https://github.com/ClickHouse/ClickHouse/pull/22609) ([Ping Yu](https://github.com/pingyu)).
* Se añadió la función `splitByRegexp`. [#24077](https://github.com/ClickHouse/ClickHouse/pull/24077) ([abel-cheng](https://github.com/abel-cheng)).
* Se añade la función `arrayProduct`, que acepta un array como parámetro y devuelve el producto de todos los elementos del array. Cierra [#21613](https://github.com/ClickHouse/ClickHouse/issues/21613). [#23782](https://github.com/ClickHouse/ClickHouse/pull/23782) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade la columna `thread_name` en `system.stack_trace`. Esto cierra [#23256](https://github.com/ClickHouse/ClickHouse/issues/23256). [#24124](https://github.com/ClickHouse/ClickHouse/pull/24124) ([abel-cheng](https://github.com/abel-cheng)).
* Si `insert_null_as_default` = 1, se insertan valores predeterminados en lugar de NULL en las consultas `INSERT ... SELECT` e `INSERT ... SELECT ... UNION ALL ...`. Cierra [#22832](https://github.com/ClickHouse/ClickHouse/issues/22832). [#23524](https://github.com/ClickHouse/ClickHouse/pull/23524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió soporte para mostrar el progreso en `clickhouse-local` con la opción `--progress`. [#23196](https://github.com/ClickHouse/ClickHouse/pull/23196) ([Egor Savin](https://github.com/Amesaru)).
* Se añade compatibilidad con la compresión HTTP (determinada por el encabezado HTTP `Content-Encoding`) en la fuente de diccionario `http`. Esto corrige [#8912](https://github.com/ClickHouse/ClickHouse/issues/8912). [#23946](https://github.com/ClickHouse/ClickHouse/pull/23946) ([FArthur-cmd](https://github.com/FArthur-cmd)).
* Se añadieron `SYSTEM QUERY RELOAD MODEL`, `SYSTEM QUERY RELOAD MODELS`. Resuelve [#18722](https://github.com/ClickHouse/ClickHouse/issues/18722). [#23182](https://github.com/ClickHouse/ClickHouse/pull/23182) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade la opción `json` (booleana, 0 de forma predeterminada) para la consulta `EXPLAIN PLAN`. Cuando está habilitada, la salida de la consulta será una única fila `JSON`. Se recomienda usar el formato `TSVRaw` para evitar escapes innecesarios. [#23082](https://github.com/ClickHouse/ClickHouse/pull/23082) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se añade la opción `indexes` (booleano, desactivado de forma predeterminada) a la consulta `EXPLAIN PIPELINE`. Cuando está activada, muestra los índices utilizados y el número de partes y gránulos filtrados para cada índice aplicado. Compatible con tablas `MergeTree*`. [#22352](https://github.com/ClickHouse/ClickHouse/pull/22352) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* LDAP: se implementó la funcionalidad de detección de user DN para su uso al mapear grupos de Active Directory a roles de ClickHouse. [#22228](https://github.com/ClickHouse/ClickHouse/pull/22228) ([Denis Glazachev](https://github.com/traceon)).
* Nueva función de agregación `deltaSumTimestamp` para sumar la diferencia entre filas consecutivas, manteniendo el orden durante la fusión mediante el almacenamiento de marcas de tiempo. [#21888](https://github.com/ClickHouse/ClickHouse/pull/21888) ([Russ Frank](https://github.com/rf)).
* Se añadió para S3 un proveedor de credenciales IMDS menos seguro que funciona correctamente en Docker. [#21852](https://github.com/ClickHouse/ClickHouse/pull/21852) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Vuelve a agregar la función `indexHint`. Esto corresponde a [#21238](https://github.com/ClickHouse/ClickHouse/issues/21238). Revierte [#9542](https://github.com/ClickHouse/ClickHouse/pull/9542). Corrige [#9540](https://github.com/ClickHouse/ClickHouse/issues/9540). [#21304](https://github.com/ClickHouse/ClickHouse/pull/21304) ([Amos Bird](https://github.com/amosbird)).

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

* Se agregó compatibilidad con `PROJECTION` para las tablas `MergeTree*`. [#20202](https://github.com/ClickHouse/ClickHouse/pull/20202) ([Amos Bird](https://github.com/amosbird)).

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

* Se habilita la configuración `compile_expressions` de forma predeterminada. Cuando esta configuración está habilitada, las composiciones de funciones simples y operadores se compilan a código nativo con LLVM en tiempo de ejecución. [#8482](https://github.com/ClickHouse/ClickHouse/pull/8482) ([Maksim Kita](https://github.com/kitaisreal), [alexey-milovidov](https://github.com/alexey-milovidov)). Nota: si tienes problemas, desactiva esta opción.
* Se actualiza la biblioteca `re2`. Se mejora el rendimiento de la coincidencia de expresiones regulares. Además, este PR añade compatibilidad con gcc-11. [#24196](https://github.com/ClickHouse/ClickHouse/pull/24196) ([Raúl Marín](https://github.com/Algunenano)).
* Lectura del formato de entrada ORC por stripe, en lugar de leer toda la tabla en memoria de una sola vez, lo que consume mucha memoria cuando el tamaño del archivo es muy grande. [#23102](https://github.com/ClickHouse/ClickHouse/pull/23102) ([Chao Ma](https://github.com/godliness)).
* Fusión de las funciones de agregación `sum`, `count` y `avg` de una consulta en una sola función de agregación. La optimización se controla con la configuración `optimize_fuse_sum_count_avg`. Esto se implementa con una nueva función de agregación `sumCount`. Esta función devuelve una tupla de dos campos: `sum` y `count`. [#21337](https://github.com/ClickHouse/ClickHouse/pull/21337) ([hexiaoting](https://github.com/hexiaoting)).
* Se actualiza `zstd` a v1.5.0. El rendimiento de la compresión mejora en unos pocos puntos porcentuales. [#24135](https://github.com/ClickHouse/ClickHouse/pull/24135) ([Raúl Marín](https://github.com/Algunenano)). Nota: es posible que recibas mensajes sobre "checksum does not match" en la replicación. Estos mensajes son esperables debido a la actualización del algoritmo de compresión y puedes ignorarlos.
* Se mejora el rendimiento de las tablas `Buffer`: no se adquiere un bloqueo para total\_bytes/total\_rows en el engine `Buffer`. [#24066](https://github.com/ClickHouse/ClickHouse/pull/24066) ([Azat Khuzhin](https://github.com/azat)).
* Se recupera la compatibilidad con la preasignación para los diccionarios hashed/sparse\_hashed. [#23979](https://github.com/ClickHouse/ClickHouse/pull/23979) ([Azat Khuzhin](https://github.com/azat)).
* Se habilita `async_socket_for_remote` de forma predeterminada (menor cantidad de threads al consultar tablas Distributed con gran fanout). [#23683](https://github.com/ClickHouse/ClickHouse/pull/23683) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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

* Se añade la columna virtual `_partition_value` a la familia de tablas MergeTree. Puede utilizarse para descartar particiones de forma determinista. Es necesaria para implementar el mecanismo de coincidencia de particiones para las mutaciones. [#23673](https://github.com/ClickHouse/ClickHouse/pull/23673) ([Amos Bird](https://github.com/amosbird)).
* Se añadió el parámetro `region` para el almacenamiento y el disco en S3. [#23846](https://github.com/ClickHouse/ClickHouse/pull/23846) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Permite configurar distintos niveles de registro para diferentes canales de logging. Cierra [#19569](https://github.com/ClickHouse/ClickHouse/issues/19569). [#23857](https://github.com/ClickHouse/ClickHouse/pull/23857) ([filimonov](https://github.com/filimonov)).
* Conserve la timezone predeterminada en las operaciones con `DateTime` si no se ha especificado explícitamente. Por ejemplo, si añade un segundo a un valor de tipo `DateTime` sin timezone, seguirá siendo `DateTime` sin timezone. En versiones anteriores, el valor de la timezone predeterminada se añadía explícitamente al tipo de dato devuelto, por lo que pasaba a ser DateTime('something'). Esto cierra [#4854](https://github.com/ClickHouse/ClickHouse/issues/4854). [#23392](https://github.com/ClickHouse/ClickHouse/pull/23392) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite que el usuario especifique una cadena vacía en lugar del nombre de la base de datos para el almacenamiento `MySQL`. Se usará la base de datos predeterminada para las consultas. En versiones anteriores, esto funcionaba para las consultas SELECT, y también se añadió compatibilidad con INSERT. Esto cierra [#19281](https://github.com/ClickHouse/ClickHouse/issues/19281). Esto puede resultar útil al trabajar con `Sphinx` u otras bases de datos externas compatibles con MySQL. [#23319](https://github.com/ClickHouse/ClickHouse/pull/23319) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió `quantile(s)TDigest`. Se añadió un tratamiento especial para los centroides singleton de acuerdo con tdunning/t-digest 3.2+. También se corrigió un error de compresión excesiva de centroides en la implementación de una versión anterior del algoritmo. [#23314](https://github.com/ClickHouse/ClickHouse/pull/23314) ([Vladimir Chebotarev](https://github.com/excitoon)).
* La función `now64` ahora admite un argumento opcional de zona horaria. [#24091](https://github.com/ClickHouse/ClickHouse/pull/24091) ([Vasily Nemkov](https://github.com/Enmk)).
* Se corrige un problema por el que la barra de progreso en modo interactivo de clickhouse-client, al aparecer en medio de los datos, podía sobrescribir partes de los datos visibles en el terminal. Esto cierra [#19283](https://github.com/ClickHouse/ClickHouse/issues/19283). [#23050](https://github.com/ClickHouse/ClickHouse/pull/23050) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige un bloqueo cuando falla la asignación de memoria en simdjson. [https://github.com/simdjson/simdjson/pull/1567](https://github.com/simdjson/simdjson/pull/1567) . Se clasifica como mejora porque es un error muy poco frecuente. [#24147](https://github.com/ClickHouse/ClickHouse/pull/24147) ([Amos Bird](https://github.com/amosbird)).
* Conservar los diccionarios hasta que se apague el almacenamiento (esto evitará posibles errores `external dictionary 'DICT' not found` al apagar el servidor durante el vaciado final del motor `Buffer`). [#24068](https://github.com/ClickHouse/ClickHouse/pull/24068) ([Azat Khuzhin](https://github.com/azat)).
* Vaciar las tablas `Buffer` antes de detener las tablas (dentro de una misma base de datos), para evitar que se descarten bloques porque la tabla subyacente ya se había marcado como detached (y el error `Destination table default.a_data_01870 doesn't exist. Block of data is discarded` en el log). [#24067](https://github.com/ClickHouse/ClickHouse/pull/24067) ([Azat Khuzhin](https://github.com/azat)).
* Ahora `prefer_column_name_to_alias = 1` también dará prioridad a los nombres de las columnas en `group by`, `having` y `order by`. Esto corrige [#23882](https://github.com/ClickHouse/ClickHouse/issues/23882). [#24022](https://github.com/ClickHouse/ClickHouse/pull/24022) ([Amos Bird](https://github.com/amosbird)).
* Se añade soporte para `ORDER BY WITH FILL` con `DateTime64`. [#24016](https://github.com/ClickHouse/ClickHouse/pull/24016) ([kevin wan](https://github.com/MaxWk)).
* Se habilita `DateTime64` como columna de versión en `ReplacingMergeTree`. [#23992](https://github.com/ClickHouse/ClickHouse/pull/23992) ([kevin wan](https://github.com/MaxWk)).
* Registrar información sobre el nombre del sistema operativo, la versión del kernel y la arquitectura de la CPU al iniciar el servidor. [#23988](https://github.com/ClickHouse/ClickHouse/pull/23988) ([Azat Khuzhin](https://github.com/azat)).
* Se admite especificar el esquema de la tabla para la fuente de diccionario `postgresql`. Cierra [#23958](https://github.com/ClickHouse/ClickHouse/issues/23958). [#23980](https://github.com/ClickHouse/ClickHouse/pull/23980) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añaden sugerencias para los nombres de los elementos `Enum` (se sugieren nombres en caso de errores tipográficos). Cierra [#17112](https://github.com/ClickHouse/ClickHouse/issues/17112). [#23919](https://github.com/ClickHouse/ClickHouse/pull/23919) ([flynn](https://github.com/ucasFL)).
* Se mide la tasa de aciertos (el porcentaje de casos en los que se encontró el valor) para los diccionarios (consulte `found_rate` en `system.dictionaries`). [#23916](https://github.com/ClickHouse/ClickHouse/pull/23916) ([Azat Khuzhin](https://github.com/azat)).
* Permite añadir configuraciones específicas de la queue mediante la setting de table `rabbitmq_queue_settings_list`. (Cierra [#23737](https://github.com/ClickHouse/ClickHouse/issues/23737) y [#23918](https://github.com/ClickHouse/ClickHouse/issues/23918)). Permite al usuario controlar toda la configuración de RabbitMQ: si la setting de table `rabbitmq_queue_consume` se establece en `1`, el engine de table RabbitMQ solo se conectará a la queue especificada y no realizará ninguna configuración de RabbitMQ del lado del consumer, como declarar exchange, queues y bindings. (Cierra [#21757](https://github.com/ClickHouse/ClickHouse/issues/21757)). Añade una limpieza adecuada cuando se elimina la table RabbitMQ: elimina las queues que la table haya declarado y todos los exchanges vinculados, si fueron creados por la table. [#23887](https://github.com/ClickHouse/ClickHouse/pull/23887) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añaden `broken_data_files`/`broken_data_compressed_bytes` a `system.distribution_queue`. Se añade una métrica para el número de archivos de inserción asíncrona en tablas Distributed marcados como dañados (`BrokenDistributedFilesToInsert`). [#23885](https://github.com/ClickHouse/ClickHouse/pull/23885) ([Azat Khuzhin](https://github.com/azat)).
* Al consultar `system.tables`, ya no se accede a ZooKeeper. [#23793](https://github.com/ClickHouse/ClickHouse/pull/23793) ([Fuwang Hu](https://github.com/fuwhu)).
* Se respeta `lock_acquire_timeout_for_background_operations` en las consultas `OPTIMIZE`. [#23623](https://github.com/ClickHouse/ClickHouse/pull/23623) ([Azat Khuzhin](https://github.com/azat)).
* Posibilidad de cambiar la configuración del disco `S3` en tiempo de ejecución con el nuevo comando SQL `SYSTEM RESTART DISK`. [#23429](https://github.com/ClickHouse/ClickHouse/pull/23429) ([Pavel Kovalenko](https://github.com/Jokser)).
* Si el usuario aplicó una configuración incorrecta al establecer por error `max_distributed_connections` en cero, cada consulta a una tabla `Distributed` lanzará una excepción con un mensaje que contiene "logical error". Pero en realidad se trata de un comportamiento esperado, no de un error lógico, por lo que el mensaje de la excepción era ligeramente incorrecto. Esto también activaba comprobaciones en nuestro entorno de CI que garantizan que nunca se produzcan errores lógicos. En su lugar, trataremos `max_distributed_connections` configurado incorrectamente en cero como el valor mínimo posible (uno). [#23348](https://github.com/ClickHouse/ClickHouse/pull/23348) ([Azat Khuzhin](https://github.com/azat)).
* Se deshabilita `min_bytes_to_use_mmap_io` de forma predeterminada. [#23322](https://github.com/ClickHouse/ClickHouse/pull/23322) ([Azat Khuzhin](https://github.com/azat)).
* Se admite la nulabilidad en `LowCardinality` con `join_use_nulls`, cierra [#15101](https://github.com/ClickHouse/ClickHouse/issues/15101). [#23237](https://github.com/ClickHouse/ClickHouse/pull/23237) ([vdimir](https://github.com/vdimir)).
* Se añadió la posibilidad de restaurar partes de `MergeTree` al directorio `detached` para el disco `S3`. [#23112](https://github.com/ClickHouse/ClickHouse/pull/23112) ([Pavel Kovalenko](https://github.com/Jokser)).
* Reintentos cuando se cae la conexión HTTP en S3. [#22988](https://github.com/ClickHouse/ClickHouse/pull/22988) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se añaden las configuraciones `external_storage_max_read_rows` y `external_storage_max_read_rows` para el motor de tabla MySQL, la fuente del diccionario y las recuperaciones menores de datos de MaterializeMySQL. [#22697](https://github.com/ClickHouse/ClickHouse/pull/22697) ([TCeason](https://github.com/TCeason)).
* `MaterializeMySQL` (función experimental): Anteriormente, MySQL 5.7.9 no era compatible por incompatibilidades de SQL. Ahora la verificación de parámetros de MySQL se deja en manos de MaterializeMySQL. [#23413](https://github.com/ClickHouse/ClickHouse/pull/23413) ([TCeason](https://github.com/TCeason)).
* Se habilita la lectura de subcolumnas para tablas distribuidas. [#24472](https://github.com/ClickHouse/ClickHouse/pull/24472) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el uso de tuplas en consultas `CREATE .. AS SELECT`. [#24464](https://github.com/ClickHouse/ClickHouse/pull/24464) ([Anton Popov](https://github.com/CurtizJ)).
* Compatibilidad con el formato `Parquet` en las tablas `Kafka`. [#23412](https://github.com/ClickHouse/ClickHouse/pull/23412) ([Chao Ma](https://github.com/godliness)).

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

* Usar la versión anterior de la función módulo cuando se use en la clave de partición y la clave primaria. Cierra [#23508](https://github.com/ClickHouse/ClickHouse/issues/23508). [#24157](https://github.com/ClickHouse/ClickHouse/pull/24157) ([Kseniia Sumarokova](https://github.com/kssenii)). Provocaba incompatibilidades con versiones anteriores en lanzamientos previos.
* Se corrigió el comportamiento cuando la consulta `SYSTEM RESTART REPLICA` o `SYSTEM SYNC REPLICA` quedaba procesándose indefinidamente. Esto se detectó en un servidor con una cantidad extremadamente reducida de RAM. [#24457](https://github.com/ClickHouse/ClickHouse/pull/24457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrige la monotonía incorrecta de la función `toWeek`. Esto corrige [#24422](https://github.com/ClickHouse/ClickHouse/issues/24422). Este error se introdujo en [#5212](https://github.com/ClickHouse/ClickHouse/pull/5212) y quedó expuesto más tarde por un podador de particiones más inteligente. [#24446](https://github.com/ClickHouse/ClickHouse/pull/24446) ([Amos Bird](https://github.com/amosbird)).
* Se corrige DROP PARTITION con partes ficticias de intersect. En casos excepcionales, puede haber partes con una versión de mutación superior al número de bloque actual. [#24321](https://github.com/ClickHouse/ClickHouse/pull/24321) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió un error al mover una vista materializada de una base de datos Ordinary a Atomic (consulta `RENAME TABLE`). Ahora, la tabla interna se mueve a la nueva base de datos junto con la vista materializada. Corrige [#23926](https://github.com/ClickHouse/ClickHouse/issues/23926). [#24309](https://github.com/ClickHouse/ClickHouse/pull/24309) ([tavplubix](https://github.com/tavplubix)).
* Permite encabezados HTTP vacíos en las solicitudes de cliente. Corrige [#23901](https://github.com/ClickHouse/ClickHouse/issues/23901). [#24285](https://github.com/ClickHouse/ClickHouse/pull/24285) ([Ivan](https://github.com/abyss7)).
* Establezca `max_threads = 1` para corregir el fallo de la mutación de las tablas `Memory`. Cierra [#24274](https://github.com/ClickHouse/ClickHouse/issues/24274). [#24275](https://github.com/ClickHouse/ClickHouse/pull/24275) ([flynn](https://github.com/ucasFL)).
* Se corrigió una errata en la implementación de las tablas `Memory`; este error se introdujo en [#15127](https://github.com/ClickHouse/ClickHouse/issues/15127). Cierra [#24192](https://github.com/ClickHouse/ClickHouse/issues/24192). [#24193](https://github.com/ClickHouse/ClickHouse/pull/24193) ([张中南](https://github.com/plugine)).
* Corrige la terminación anómala del servidor debido a que `HDFS` dejó de estar accesible durante la ejecución de la consulta. Cierra [#24117](https://github.com/ClickHouse/ClickHouse/issues/24117). [#24191](https://github.com/ClickHouse/ClickHouse/pull/24191) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige un cierre inesperado al actualizar una columna `Nested` con una condición constante. [#24183](https://github.com/ClickHouse/ClickHouse/pull/24183) ([hexiaoting](https://github.com/hexiaoting)).
* Se corrige una condición de carrera que podía producirse en RBAC con una carga elevada. Este PR corrige [#24090](https://github.com/ClickHouse/ClickHouse/issues/24090), [#24134](https://github.com/ClickHouse/ClickHouse/issues/24134),. [#24176](https://github.com/ClickHouse/ClickHouse/pull/24176) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige un error poco frecuente que podía hacer que una tabla quedara parcialmente inicializada y aun así pudiera atender solicitudes de escritura (insert/alter/etc.). Ahora, esas tablas estarán en modo readonly. [#24122](https://github.com/ClickHouse/ClickHouse/pull/24122) ([alesapin](https://github.com/alesapin)).
* Se corrigió un error: `EXPLAIN PIPELINE` con `SELECT xxx FINAL` mostraba una canalización incorrecta. ([hexiaoting](https://github.com/hexiaoting)).
* Se corrigió el uso de un valor `DateTime` constante frente a una columna `DateTime64` en `WHERE`. [#24100](https://github.com/ClickHouse/ClickHouse/pull/24100) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrige un fallo que provocaba un cierre inesperado en merge JOIN, cierra [#24010](https://github.com/ClickHouse/ClickHouse/issues/24010). [#24013](https://github.com/ClickHouse/ClickHouse/pull/24013) ([vdimir](https://github.com/vdimir)).
* Algunas consultas `ALTER PARTITION` podían provocar los errores `Part A intersects previous part B` y `Unexpected merged part C intersecting drop range D` en la cola de replicación. Corregido. Soluciona [#23296](https://github.com/ClickHouse/ClickHouse/issues/23296). [#23997](https://github.com/ClickHouse/ClickHouse/pull/23997) ([tavplubix](https://github.com/tavplubix)).
* Se corrige un SIGSEGV en `GROUP BY` externo y en la fila de desbordamiento (es decir, consultas como `SELECT FROM GROUP BY WITH TOTALS SETTINGS max_bytes_before_external_group_by>0, max_rows_to_group_by>0, group_by_overflow_mode='any', totals_mode='before_having'`). [#23962](https://github.com/ClickHouse/ClickHouse/pull/23962) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el cómputo de las métricas de claves del diccionario `CACHE` cuando hay duplicados en el origen (lo que provoca desbordamientos de `DictCacheKeysRequestedMiss`). [#23929](https://github.com/ClickHouse/ClickHouse/pull/23929) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la implementación del pool de conexiones del motor `PostgreSQL`. Cierra [#23897](https://github.com/ClickHouse/ClickHouse/issues/23897). [#23909](https://github.com/ClickHouse/ClickHouse/pull/23909) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corregido `distributed_group_by_no_merge = 2` con `GROUP BY` y una función de agregado envuelta en una función normal (se había roto en [#23546](https://github.com/ClickHouse/ClickHouse/issues/23546)). Se lanza una excepción si alguien intenta usar `distributed_group_by_no_merge = 2` con funciones de ventana. Se deshabilita `optimize_distributed_group_by_sharding_key` para consultas con funciones de ventana. [#23906](https://github.com/ClickHouse/ClickHouse/pull/23906) ([Azat Khuzhin](https://github.com/azat)).
* Una corrección para la función de tabla `s3`: mejor gestión de los errores HTTP. Anteriormente se ignoraban los cuerpos de las respuestas de error HTTP. [#23844](https://github.com/ClickHouse/ClickHouse/pull/23844) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Una corrección para la `s3` table function: mejor gestión de las URI. Se corrigió una incompatibilidad con las URL que contienen el símbolo `+`; antes no se podían leer los datos con dichas claves. [#23822](https://github.com/ClickHouse/ClickHouse/pull/23822) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Soluciona el error `Can't initialize pipeline with empty pipe` en consultas con `GLOBAL IN/JOIN` y `use_hedged_requests`. Corrige [#23431](https://github.com/ClickHouse/ClickHouse/issues/23431). [#23805](https://github.com/ClickHouse/ClickHouse/pull/23805) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige que `CLEAR COLUMN` no funcione cuando una vista materializada hace referencia a él. Cierra [#23764](https://github.com/ClickHouse/ClickHouse/issues/23764). [#23781](https://github.com/ClickHouse/ClickHouse/pull/23781) ([flynn](https://github.com/ucasFL)).
* Se corrigió el uso de memoria del heap tras su liberación al leer desde HDFS si se utiliza el formato `Values`. [#23761](https://github.com/ClickHouse/ClickHouse/pull/23761) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Evita el posible error "Cannot schedule a task" (si se había producido alguna excepción) al hacer INSERT en Distributed. [#23744](https://github.com/ClickHouse/ClickHouse/pull/23744) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un error en la recuperación de una réplica `ReplicatedMergeTree` desactualizada. Una réplica desactualizada podía ignorar algunas actualizaciones de metadatos si se ejecutaba una consulta `ALTER` durante el tiempo de inactividad de la réplica. [#23742](https://github.com/ClickHouse/ClickHouse/pull/23742) ([tavplubix](https://github.com/tavplubix)).
* Soluciona un error con `Join` y `WITH TOTALS`, cierra [#17718](https://github.com/ClickHouse/ClickHouse/issues/17718). [#23549](https://github.com/ClickHouse/ClickHouse/pull/23549) ([vdimir](https://github.com/vdimir)).
* Corrige un posible error `Block structure mismatch` en consultas con `UNION` que podría producirse tras aplicar la optimización de pushdown de filtros. Corrige [#23029](https://github.com/ClickHouse/ClickHouse/issues/23029). [#23359](https://github.com/ClickHouse/ClickHouse/pull/23359) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Agregar la conversión de tipos cuando está habilitada la configuración `optimize_skip_unused_shards_rewrite_in`. Esto corrige un informe de MSan. [#23219](https://github.com/ClickHouse/ClickHouse/pull/23219) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió una comprobación que faltaba al actualizar subcolumnas anidadas, cierra la incidencia: [#22353](https://github.com/ClickHouse/ClickHouse/issues/22353). [#22503](https://github.com/ClickHouse/ClickHouse/pull/22503) ([hexiaoting](https://github.com/hexiaoting)).

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

* Soporte para la compilación en Illumos. [#24144](https://github.com/ClickHouse/ClickHouse/pull/24144). Añade soporte para compilar en sistemas operativos derivados de Solaris. [#23746](https://github.com/ClickHouse/ClickHouse/pull/23746) ([bnaecker](https://github.com/bnaecker)).
* Se añaden más benchmarks para hash tables, incluida la Swiss Table de Google (que parecía ser más lenta que el hash map de ClickHouse en nuestro caso de uso específico). [#24111](https://github.com/ClickHouse/ClickHouse/pull/24111) ([Maksim Kita](https://github.com/kitaisreal)).
* Se actualiza librdkafka de la versión 1.6.0-RC3 a la 1.6.1. [#23874](https://github.com/ClickHouse/ClickHouse/pull/23874) ([filimonov](https://github.com/filimonov)).
* Activar siempre `asynchronous-unwind-tables` de forma explícita. Esto puede corregir el query profiler en AArch64. [#23602](https://github.com/ClickHouse/ClickHouse/pull/23602) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Evitar una posible dependencia de compilación respecto de la configuración regional y del orden del filesystem. Esto permite compilaciones reproducibles. [#23600](https://github.com/ClickHouse/ClickHouse/pull/23600) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Eliminar una fuente de no determinismo en la compilación. Ahora, las builds generadas en momentos distintos producirán binarios idénticos byte por byte. Parcialmente resuelto en [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#23559](https://github.com/ClickHouse/ClickHouse/pull/23559) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Añadir una herramienta sencilla para hacer benchmark de (Zoo)Keeper. [#23038](https://github.com/ClickHouse/ClickHouse/pull/23038) ([alesapin](https://github.com/alesapin)).

<div id="clickhouse-release-215-2021-05-20">
  ## Lanzamiento de ClickHouse 21.5, 2021-05-20
</div>

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

* Se cambia la comparación entre enteros y números de punto flotante cuando el entero no puede representarse exactamente en el tipo de dato de punto flotante. En la nueva versión, la comparación devolverá `false`, ya que se producirá un error de redondeo. Ejemplo: `9223372036854775808.0 != 9223372036854775808`, porque el número `9223372036854775808` no puede representarse exactamente como número de punto flotante (y `9223372036854775808.0` se redondea a `9223372036854776000.0`). Sin embargo, en la versión anterior la comparación devolvía que los números eran iguales, porque si el número de punto flotante `9223372036854776000.0` se convertía de nuevo a UInt64, daba como resultado `9223372036854775808`. Como referencia, el lenguaje de programación Python también considera estos números iguales. Pero este comportamiento dependía del modelo de CPU (con resultados distintos en AMD64 y AArch64 para algunos números fuera de rango), por lo que hacemos la comparación más precisa. Tratará los números int y float como iguales solo si el int está representado exactamente en el tipo de punto flotante. [#22595](https://github.com/ClickHouse/ClickHouse/pull/22595) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se elimina la compatibilidad de `argMin` y `argMax` con un único argumento `Tuple`. El código no era seguro en términos de memoria. Esta funcionalidad se añadió por error y resulta confusa para los usuarios. Estas funciones pueden volver a introducirse más adelante con otros nombres. Esto corrige [#22384](https://github.com/ClickHouse/ClickHouse/issues/22384) y revierte [#17359](https://github.com/ClickHouse/ClickHouse/issues/17359). [#23393](https://github.com/ClickHouse/ClickHouse/pull/23393) ([alexey-milovidov](https://github.com/alexey-milovidov)).

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

* Se añadieron las funciones `dictGetChildren(dictionary, key)`, `dictGetDescendants(dictionary, key, level)`. La función `dictGetChildren` devuelve todos los elementos hijo como un array de índices. Es una transformación inversa de `dictGetHierarchy`. La función `dictGetDescendants` devuelve todos los descendientes como si `dictGetChildren` se aplicara `level` veces de forma recursiva. Un valor de `level` igual a cero equivale a infinito. Se mejoró el rendimiento de las funciones `dictGetHierarchy` y `dictIsIn`. Cierra [#14656](https://github.com/ClickHouse/ClickHouse/issues/14656). [#22096](https://github.com/ClickHouse/ClickHouse/pull/22096) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la función `dictGetOrNull`. Funciona como `dictGet`, pero devuelve `NULL` si no se encuentra la clave en el Diccionario. Cierra [#22375](https://github.com/ClickHouse/ClickHouse/issues/22375). [#22413](https://github.com/ClickHouse/ClickHouse/pull/22413) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió una table function `s3Cluster`, que permite procesar archivos de `s3` en paralelo en cada nodo de un clúster especificado. [#22012](https://github.com/ClickHouse/ClickHouse/pull/22012) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añadió compatibilidad con réplicas y segmentos en el motor de tabla / table function de MySQL/PostgreSQL. Puede escribir `SELECT * FROM mysql('host{1,2}-{1|2}', ...)`. Cierra [#20969](https://github.com/ClickHouse/ClickHouse/issues/20969). [#22217](https://github.com/ClickHouse/ClickHouse/pull/22217) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añadió la consulta `ALTER TABLE ... FETCH PART ...`. Es similar a `FETCH PARTITION`, pero recupera solo una parte. [#22706](https://github.com/ClickHouse/ClickHouse/pull/22706) ([turbo jason](https://github.com/songenjie)).
* Se añadió la configuración `max_distributed_depth`, que limita la profundidad de las consultas recursivas sobre las tablas `Distributed`. Cierra [#20229](https://github.com/ClickHouse/ClickHouse/issues/20229). [#21942](https://github.com/ClickHouse/ClickHouse/pull/21942) ([flynn](https://github.com/ucasFL)).

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

* Se mejoró el rendimiento de `intDiv` mediante despacho dinámico para AVX2. Esto cierra [#22314](https://github.com/ClickHouse/ClickHouse/issues/22314). [#23000](https://github.com/ClickHouse/ClickHouse/pull/23000) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se mejoró el rendimiento de la lectura con el input format `ArrowStream` para fuentes distintas de archivos locales (por ejemplo, URL). [#22673](https://github.com/ClickHouse/ClickHouse/pull/22673) ([nvartolomei](https://github.com/nvartolomei)).
* Se deshabilitó la compresión de forma predeterminada al interactuar con localhost (con clickhouse-client o de server a server con distributed queries) mediante native protocol. Esto puede mejorar el rendimiento de algunas operaciones de importación/exportación. Esto cierra [#22234](https://github.com/ClickHouse/ClickHouse/issues/22234). [#22237](https://github.com/ClickHouse/ClickHouse/pull/22237) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Excluye los valores que no pertenecen al segmento de la parte derecha de la sección IN para distributed queries (en `optimize_skip_unused_shards_rewrite_in`, habilitado de forma predeterminada, ya que aún requiere `optimize_skip_unused_shards`). [#21511](https://github.com/ClickHouse/ClickHouse/pull/21511) ([Azat Khuzhin](https://github.com/azat)).
* Se mejoró el rendimiento de la lectura de un subconjunto de columnas con motores de tabla similares a File y formatos orientados a columnas como Parquet, Arrow u ORC. Esto cierra [#issue:20129](https://github.com/ClickHouse/ClickHouse/issues/20129). [#21302](https://github.com/ClickHouse/ClickHouse/pull/21302) ([keenwolf](https://github.com/keen-wolf)).
* Se permite mover más conditions a `PREWHERE`, como ocurría antes de la versión 21.1 (ajuste de heurísticas internas). Un número insuficiente de conditions movidas podía dar lugar a un peor rendimiento. [#23397](https://github.com/ClickHouse/ClickHouse/pull/23397) ([Anton Popov](https://github.com/CurtizJ)).
* Se mejoró el rendimiento de las conexiones ODBC y se corrigieron todos los problemas pendientes del backlog. Se usa la biblioteca `nanodbc` en lugar de `Poco::ODBC`. Cierra [#9678](https://github.com/ClickHouse/ClickHouse/issues/9678). Se añadió soporte para DateTime64 y Decimal\* para el motor de tabla ODBC. Cierra [#21961](https://github.com/ClickHouse/ClickHouse/issues/21961). Se corrigió un problema por el que el texto en cirílico se truncaba. Cierra [#16246](https://github.com/ClickHouse/ClickHouse/issues/16246). Se añadieron pools de conexiones para ODBC bridge. [#21972](https://github.com/ClickHouse/ClickHouse/pull/21972) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Se aumenta `max_uri_size` (el tamaño máximo de la URL en la interfaz HTTP) a 1 MiB de forma predeterminada. Esto resuelve [#21197](https://github.com/ClickHouse/ClickHouse/issues/21197). [#22997](https://github.com/ClickHouse/ClickHouse/pull/22997) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Establezca `background_fetches_pool_size` en `8`, ya que es más adecuado para entornos de producción con inserciones pequeñas frecuentes o con un clúster de ZooKeeper lento. [#22945](https://github.com/ClickHouse/ClickHouse/pull/22945) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* FlatDictionary incorporó las opciones `initial_array_size` y `max_array_size`. [#22521](https://github.com/ClickHouse/ClickHouse/pull/22521) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade la nueva configuración `non_replicated_deduplication_window` para la deduplicación de inserciones en MergeTree no replicadas. [#22514](https://github.com/ClickHouse/ClickHouse/pull/22514) ([alesapin](https://github.com/alesapin)).
* Se actualizaron las rutas de las configuraciones del modelo `CatBoost` durante la recarga de la configuración. [#22434](https://github.com/ClickHouse/ClickHouse/pull/22434) ([Kruglov Pavel](https://github.com/Avogar)).
* Se añadió compatibilidad con el tipo `Decimal256` en los diccionarios. `Decimal256` es una función experimental. Cierra [#20979](https://github.com/ClickHouse/ClickHouse/issues/20979). [#22960](https://github.com/ClickHouse/ClickHouse/pull/22960) ([Maksim Kita](https://github.com/kitaisreal)).
* Se habilitó `async_socket_for_remote` de forma predeterminada (utilizando menos hilos del sistema operativo para las consultas distribuidas). [#23683](https://github.com/ClickHouse/ClickHouse/pull/23683) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió `quantile(s)TDigest`. Se añadió un tratamiento especial para los centroides singleton conforme a tdunning/t-digest 3.2+. También se corrigió un error de sobrecompresión de centroides en la implementación de una versión anterior del algoritmo. [#23314](https://github.com/ClickHouse/ClickHouse/pull/23314) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Hacer que el nombre de la función `unhex` no distinga entre mayúsculas y minúsculas para que sea compatible con MySQL. [#23229](https://github.com/ClickHouse/ClickHouse/pull/23229) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se implementan las funciones `arrayHasAny`, `arrayHasAll`, `has`, `indexOf` y `countEqual` para el caso genérico en el que los tipos de los elementos del array son diferentes. En versiones anteriores, las funciones `arrayHasAny` y `arrayHasAll` devolvían false, y `has`, `indexOf` y `countEqual` lanzaban una excepción. También se añade compatibilidad con `Decimal` y tipos de enteros grandes en las funciones `has` y similares. Esto cierra [#20272](https://github.com/ClickHouse/ClickHouse/issues/20272). [#23044](https://github.com/ClickHouse/ClickHouse/pull/23044) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se aumentó el número máximo de coincidencias permitido en el resultado de la función `extractAllGroupsHorizontal`. [#23036](https://github.com/ClickHouse/ClickHouse/pull/23036) ([Vasily Nemkov](https://github.com/Enmk)).
* No realizar `optimize_skip_unused_shards` en clústeres de un solo nodo. [#22999](https://github.com/ClickHouse/ClickHouse/pull/22999) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió la posibilidad de ejecutar clickhouse-keeper (reemplazo directo experimental de ZooKeeper) con SSL. La opción de configuración `keeper_server.tcp_port_secure` se puede usar para una interacción segura entre el cliente y keeper-server. `keeper_server.raft_configuration.secure` se puede usar para habilitar la comunicación interna segura entre nodos. [#22992](https://github.com/ClickHouse/ClickHouse/pull/22992) ([alesapin](https://github.com/alesapin)).
* Se añadió la opción de vaciar el búfer únicamente en segundo plano para las tablas `Buffer`. [#22986](https://github.com/ClickHouse/ClickHouse/pull/22986) ([Azat Khuzhin](https://github.com/azat)).
* Al seleccionar datos de una tabla MergeTree con NULL en la condición WHERE, en raras ocasiones se producía una excepción. Esto cierra [#20019](https://github.com/ClickHouse/ClickHouse/issues/20019). [#22978](https://github.com/ClickHouse/ClickHouse/pull/22978) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige el manejo de errores en Poco HTTP Client para AWS. [#22973](https://github.com/ClickHouse/ClickHouse/pull/22973) ([kreuzerkrieg](https://github.com/kreuzerkrieg)).
* Se respeta `max_part_removal_threads` en `ReplicatedMergeTree`. [#22971](https://github.com/ClickHouse/ClickHouse/pull/22971) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un caso límite poco frecuente en la configuración de MergeTree inactive\_parts\_to\_throw\_insert = 0 con inactive\_parts\_to\_delay\_insert > 0. [#22947](https://github.com/ClickHouse/ClickHouse/pull/22947) ([Azat Khuzhin](https://github.com/azat)).
* `dateDiff` ahora funciona con argumentos de tipo `DateTime64` (incluso para valores fuera del rango de `DateTime`) [#22931](https://github.com/ClickHouse/ClickHouse/pull/22931) ([Vasily Nemkov](https://github.com/Enmk)).
* MaterializeMySQL (funcionalidad experimental): se añadió la capacidad de replicar bases de datos MySQL que contienen vistas sin que falle. Esto se consigue ignorando las vistas. [#22760](https://github.com/ClickHouse/ClickHouse/pull/22760) ([Christian](https://github.com/cfroystad)).
* Se permite la política de filas de RBAC a través del protocolo PostgreSQL. Cierra [#22658](https://github.com/ClickHouse/ClickHouse/issues/22658). El protocolo PostgreSQL está habilitado de forma predeterminada en la configuración. [#22755](https://github.com/ClickHouse/ClickHouse/pull/22755) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se añade una métrica para medir cuánto tiempo se dedica a esperar el bloqueo de la capa Buffer. [#22725](https://github.com/ClickHouse/ClickHouse/pull/22725) ([Azat Khuzhin](https://github.com/azat)).
* Se permite usar CTE en la definición de VIEW. Esto cierra [#22491](https://github.com/ClickHouse/ClickHouse/issues/22491). [#22657](https://github.com/ClickHouse/ClickHouse/pull/22657) ([Amos Bird](https://github.com/amosbird)).
* Se limpia el resto de la pantalla y se muestra el cursor en `clickhouse-client` si el programa anterior ha dejado residuos en el terminal. Esto cierra [#16518](https://github.com/ClickHouse/ClickHouse/issues/16518). [#22634](https://github.com/ClickHouse/ClickHouse/pull/22634) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Hacer que la función `round` se comporte de forma coherente en plataformas que no son x86\_64. Se utiliza el redondeo al par más cercano en los casos de mitad (redondeo bancario). [#22582](https://github.com/ClickHouse/ClickHouse/pull/22582) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Comprobar correctamente la estructura de los bloques de datos enviados por las tablas Distributed. [#22325](https://github.com/ClickHouse/ClickHouse/pull/22325) ([Azat Khuzhin](https://github.com/azat)).
* Permite publicar errores de Kafka en una columna virtual del motor Kafka, controlado mediante la configuración `kafka_handle_error_mode`. [#21850](https://github.com/ClickHouse/ClickHouse/pull/21850) ([fastio](https://github.com/fastio)).
* Añade los alias `simpleJSONExtract/simpleJSONHas` a `visitParam/visitParamExtract{UInt, Int, Bool, Float, Raw, String}`. Corrige [#21383](https://github.com/ClickHouse/ClickHouse/issues/21383). [#21519](https://github.com/ClickHouse/ClickHouse/pull/21519) ([fastio](https://github.com/fastio)).
* Se añade `clickhouse-library-bridge` para la fuente de diccionario de biblioteca. Cierra [#9502](https://github.com/ClickHouse/ClickHouse/issues/9502). [#21509](https://github.com/ClickHouse/ClickHouse/pull/21509) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se prohíbe eliminar una columna si está referenciada por una vista materializada. Cierra [#21164](https://github.com/ClickHouse/ClickHouse/issues/21164). [#21303](https://github.com/ClickHouse/ClickHouse/pull/21303) ([flynn](https://github.com/ucasFL)).
* Admite credenciales dinámicas entre servidores (rotación de credenciales sin tiempo de inactividad). [#14113](https://github.com/ClickHouse/ClickHouse/pull/14113) ([johnskopis](https://github.com/johnskopis)).
* Se añadió compatibilidad con el almacenamiento en Kafka para mensajes en formato `Arrow` y `ArrowStream`. [#23415](https://github.com/ClickHouse/ClickHouse/pull/23415) ([Chao Ma](https://github.com/godliness)).
* Se corrigió el punto y coma faltante en el mensaje de excepción. Al usuario este mensaje de excepción puede resultarle desagradable de leer. [#23208](https://github.com/ClickHouse/ClickHouse/pull/23208) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la ausencia de espacios en algunos mensajes de excepción sobre el tipo `LowCardinality`. [#23207](https://github.com/ClickHouse/ClickHouse/pull/23207) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Algunos valores aparecían centrados en las celdas de las tablas en formato `Markdown`. Ya no. [#23096](https://github.com/ClickHouse/ClickHouse/pull/23096) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se eliminaron los detalles no esenciales de las sugerencias en clickhouse-client. Esto cierra [#22158](https://github.com/ClickHouse/ClickHouse/issues/22158). [#23040](https://github.com/ClickHouse/ClickHouse/pull/23040) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Cálculo correcto del campo `bytes_allocated` de system.dictionaries para diccionarios sparse\_hashed. [#22867](https://github.com/ClickHouse/ClickHouse/pull/22867) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió el cálculo aproximado del total de filas en la lectura inversa de MergeTree. [#22726](https://github.com/ClickHouse/ClickHouse/pull/22726) ([Azat Khuzhin](https://github.com/azat)).
* Corrige el caso en el que era posible configurar un diccionario con un origen de ClickHouse que apuntaba a sí mismo, lo que provocaba un bucle infinito. Cierra [#14314](https://github.com/ClickHouse/ClickHouse/issues/14314). [#22479](https://github.com/ClickHouse/ClickHouse/pull/22479) ([Maksim Kita](https://github.com/kitaisreal)).

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

* Múltiples correcciones para las hedged requests. Se corrigió un error `Can't initialize pipeline with empty pipe` para consultas con `GLOBAL IN/JOIN` cuando el ajuste `use_hedged_requests` está habilitado. Corrige [#23431](https://github.com/ClickHouse/ClickHouse/issues/23431). [#23805](https://github.com/ClickHouse/ClickHouse/pull/23805) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). Se corrigió una condición de carrera en las conexiones hedged que provocaba un fallo. Esto corrige [#22161](https://github.com/ClickHouse/ClickHouse/issues/22161). [#22443](https://github.com/ClickHouse/ClickHouse/pull/22443) ([Kruglov Pavel](https://github.com/Avogar)). Se corrigió un posible fallo en caso de que se recibiera `unknown packet` de una consulta remota (con `async_socket_for_remote` habilitado). Corrige [#21167](https://github.com/ClickHouse/ClickHouse/issues/21167). [#23309](https://github.com/ClickHouse/ClickHouse/pull/23309) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el comportamiento por el cual, al deshabilitar la configuración `input_format_with_names_use_header `, se descartaban todos los datos de entrada en formato CSVWithNames. Esto corrige [#22406](https://github.com/ClickHouse/ClickHouse/issues/22406). [#23202](https://github.com/ClickHouse/ClickHouse/pull/23202) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió el problema de timeout en la conexión del bridge JDBC remoto. Cierra [#9609](https://github.com/ClickHouse/ClickHouse/issues/9609). [#23771](https://github.com/ClickHouse/ClickHouse/pull/23771) ([Maksim Kita](https://github.com/kitaisreal), [alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige la lógica de la carga inicial de `complex_key_hashed` cuando se especifica `update_field`. Cierra [#23800](https://github.com/ClickHouse/ClickHouse/issues/23800). [#23824](https://github.com/ClickHouse/ClickHouse/pull/23824) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió un fallo cuando `PREWHERE` y el filtro de `ROW POLICY` se aplican a la vez con un resultado vacío. [#23763](https://github.com/ClickHouse/ClickHouse/pull/23763) ([Amos Bird](https://github.com/amosbird)).
* Evitar el posible error "Cannot schedule a task" (en caso de que se hubiera producido alguna excepción) al hacer INSERT en Distributed. [#23744](https://github.com/ClickHouse/ClickHouse/pull/23744) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió una excepción para el caso en que ambas muestras tengan valores completamente idénticos en la función de agregación `mannWhitneyUTest`. Esto corrige [#23646](https://github.com/ClickHouse/ClickHouse/issues/23646). [#23654](https://github.com/ClickHouse/ClickHouse/pull/23654) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió un fallo del servidor que provocaba una excepción al insertar datos mediante HTTP. Esto corrige [#23512](https://github.com/ClickHouse/ClickHouse/issues/23512). [#23643](https://github.com/ClickHouse/ClickHouse/pull/23643) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió la interpretación errónea de algunas expresiones `LIKE` con secuencias de escape. [#23610](https://github.com/ClickHouse/ClickHouse/pull/23610) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corregido el bloqueo al ejecutar el comando de reinicio / detención. Cierra [#20214](https://github.com/ClickHouse/ClickHouse/issues/20214). [#23552](https://github.com/ClickHouse/ClickHouse/pull/23552) ([filimonov](https://github.com/filimonov)).
* Se corrigió el comparador `COLUMNS` en caso de múltiples JOINs en la consulta SELECT. Cierra [#22736](https://github.com/ClickHouse/ClickHouse/issues/22736). [#23501](https://github.com/ClickHouse/ClickHouse/pull/23501) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió un fallo al modificar el valor predeterminado de una columna cuando esa misma columna se usa como parámetro de `ReplacingMergeTree`. [#23483](https://github.com/ClickHouse/ClickHouse/pull/23483) ([hexiaoting](https://github.com/hexiaoting)).
* Se corrigieron casos extremos en las fusiones verticales con `ReplacingMergeTree`. En casos poco frecuentes, podían hacer que las fusiones fallaran con excepciones como `Incomplete granules are not allowed while blocks are granules size`. [#23459](https://github.com/ClickHouse/ClickHouse/pull/23459) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió un error que impedía convertir un literal de array vacío en un array con más de 1 dimensión, por ejemplo, `CAST([] AS Array(Array(String)))`. Cierra [#14476](https://github.com/ClickHouse/ClickHouse/issues/14476). [#23456](https://github.com/ClickHouse/ClickHouse/pull/23456) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió un error por el que la función de agregación `deltaSum` producía un resultado incorrecto después de reiniciar el contador. [#23437](https://github.com/ClickHouse/ClickHouse/pull/23437) ([Russ Frank](https://github.com/rf)).
* Se corrigió el error `Cannot unlink file` que se producía al intentar crear sin éxito una tabla ReplicatedMergeTree con una configuración multidisco. Esto cierra [#21755](https://github.com/ClickHouse/ClickHouse/issues/21755). [#23433](https://github.com/ClickHouse/ClickHouse/pull/23433) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió la generación de expresiones constantes incompatibles durante la poda de particiones a partir de columnas virtuales. Esto corrige [https://github.com/ClickHouse/ClickHouse/pull/21401#discussion\&#95;r611888913](https://github.com/ClickHouse/ClickHouse/pull/21401#discussion\&#95;r611888913). [#23366](https://github.com/ClickHouse/ClickHouse/pull/23366) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió un bloqueo cuando `join&#95;algorithm` se establece en 'auto' y se realiza un Join con un Diccionario. Cierra [#23002](https://github.com/ClickHouse/ClickHouse/issues/23002). [#23312](https://github.com/ClickHouse/ClickHouse/pull/23312) ([Vladimir](https://github.com/vdimir)).
* No se relajan las condiciones NOT durante la poda de particiones. Esto corrige [#23305](https://github.com/ClickHouse/ClickHouse/issues/23305) y [#21539](https://github.com/ClickHouse/ClickHouse/issues/21539). [#23310](https://github.com/ClickHouse/ClickHouse/pull/23310) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió una condición de carrera muy poco frecuente en la limpieza en segundo plano de bloques antiguos. Podía hacer que un bloque no se deduplicara si estaba demasiado cerca del final de la ventana de deduplicación. [#23301](https://github.com/ClickHouse/ClickHouse/pull/23301) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió una condición de carrera (distribuida) muy poco frecuente entre la creación y la eliminación de tablas ReplicatedMergeTree. Podía provocar excepciones como `node doesn't exist` al intentar crear una tabla replicada. Corrige [#21419](https://github.com/ClickHouse/ClickHouse/issues/21419). [#23294](https://github.com/ClickHouse/ClickHouse/pull/23294) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió la creación mediante DDL de un Diccionario de clave simple si la clave primaria no es el primer atributo. Corrige [#23236](https://github.com/ClickHouse/ClickHouse/issues/23236). [#23262](https://github.com/ClickHouse/ClickHouse/pull/23262) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió la lectura mediante ODBC cuando una tabla tiene muchos nombres de columna largos. Cierra [#8853](https://github.com/ClickHouse/ClickHouse/issues/8853). [#23215](https://github.com/ClickHouse/ClickHouse/pull/23215) ([Kseniia Sumarokova](https://github.com/kssenii)).
* MaterializeMySQL (característica experimental): se corrigió el error `Not found column` al seleccionar de `MaterializeMySQL` con una condición en la columna clave. Corrige [#22432](https://github.com/ClickHouse/ClickHouse/issues/22432). [#23200](https://github.com/ClickHouse/ClickHouse/pull/23200) ([tavplubix](https://github.com/tavplubix)).
* Corrige el manejo de alias cuando la subconsulta se optimizó como una constante. Corrige [#22924](https://github.com/ClickHouse/ClickHouse/issues/22924). Corrige [#10401](https://github.com/ClickHouse/ClickHouse/issues/10401). [#23191](https://github.com/ClickHouse/ClickHouse/pull/23191) ([Maksim Kita](https://github.com/kitaisreal)).
* Es posible que el servidor no se iniciara si la configuración `data_type_default_nullable` estaba habilitada en el perfil predeterminado; ya está corregido. Corrige [#22573](https://github.com/ClickHouse/ClickHouse/issues/22573). [#23185](https://github.com/ClickHouse/ClickHouse/pull/23185) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió un fallo durante el apagado que se producía debido a un recuento incorrecto de las conexiones activas. [#23154](https://github.com/ClickHouse/ClickHouse/pull/23154) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el error `Table .inner_id... doesn't exist` al consultar una vista materializada después de desacoplarla de la base de datos Atomic y volver a adjuntarla. [#23047](https://github.com/ClickHouse/ClickHouse/pull/23047) ([tavplubix](https://github.com/tavplubix)).
* Corrige el error `Cannot find column in ActionsDAG result`, que puede producirse si la subconsulta usa `untuple`. Soluciona [#22290](https://github.com/ClickHouse/ClickHouse/issues/22290). [#22991](https://github.com/ClickHouse/ClickHouse/pull/22991) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige el uso de columnas constantes de tipo `Map` con valores que pueden ser `NULL`. [#22939](https://github.com/ClickHouse/ClickHouse/pull/22939) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigieron `formatDateTime()` en `DateTime64` y el especificador de formato "%C"; también se corrigió `toDateTime64()` para valores grandes y una escala distinta de cero. [#22937](https://github.com/ClickHouse/ClickHouse/pull/22937) ([Vasily Nemkov](https://github.com/Enmk)).
* Se corrigió un fallo al usar `mannWhitneyUTest` y `rankCorr` con funciones de ventana. Esto corrige [#22728](https://github.com/ClickHouse/ClickHouse/issues/22728). [#22876](https://github.com/ClickHouse/ClickHouse/pull/22876) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* LIVE VIEW (función experimental): se corrigió un posible cuelgue durante el DROP/CREATE concurrente de TEMPORARY LIVE VIEW en `TemporaryLiveViewCleaner`, [ver](https://gist.github.com/vzakaznikov/0c03195960fc86b56bfe2bc73a90019e). [#22858](https://github.com/ClickHouse/ClickHouse/pull/22858) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el pushdown de `HAVING` cuando la columna del filtro se usa en la agregación. [#22763](https://github.com/ClickHouse/ClickHouse/pull/22763) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigieron posibles bloqueos en las solicitudes de ZooKeeper en caso de que se produjera una excepción OOM. Corrige [#22438](https://github.com/ClickHouse/ClickHouse/issues/22438). [#22684](https://github.com/ClickHouse/ClickHouse/pull/22684) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió la espera de mutaciones en varias réplicas para los motores de tabla ReplicatedMergeTree. Anteriormente, una consulta de mutación/ALTER podía finalizar antes de que la mutación se hubiera ejecutado realmente en otras réplicas. [#22669](https://github.com/ClickHouse/ClickHouse/pull/22669) ([alesapin](https://github.com/alesapin)).
* Se corrigió la excepción de Log con tipos anidados sin columnas en la cláusula SELECT. [#22654](https://github.com/ClickHouse/ClickHouse/pull/22654) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la espera indefinida de las solicitudes auxiliares de AWS. [#22594](https://github.com/ClickHouse/ClickHouse/pull/22594) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se corrigió un fallo cuando el cliente cierra la conexión demasiado pronto [#22579](https://github.com/ClickHouse/ClickHouse/issues/22579). [#22591](https://github.com/ClickHouse/ClickHouse/pull/22591) ([nvartolomei](https://github.com/nvartolomei)).
* Tipo de dato `Map` (funcionalidad experimental): se corrigió un formato incorrecto de la función `map` en consultas distribuidas. [#22588](https://github.com/ClickHouse/ClickHouse/pull/22588) ([foolchi](https://github.com/foolchi)).
* Se corrigió la deserialización de una cadena vacía sin salto de línea al final en formato TSV. Esto cierra [#20244](https://github.com/ClickHouse/ClickHouse/issues/20244). Posible solución alternativa sin actualizar la versión: establecer `input_format_null_as_default` en cero. En versiones anteriores era cero. [#22527](https://github.com/ClickHouse/ClickHouse/pull/22527) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el cast incorrecto de una columna de tipo `LowCardinality` en el algoritmo Merge Join. Se cierran [#22386](https://github.com/ClickHouse/ClickHouse/issues/22386) y [#22388](https://github.com/ClickHouse/ClickHouse/issues/22388). [#22510](https://github.com/ClickHouse/ClickHouse/pull/22510) ([Vladimir](https://github.com/vdimir)).
* Era posible que se produjera un desbordamiento de búfer (durante la lectura) en el índice de texto completo `tokenbf_v1`. Los bytes excedentes no se usan, pero la operación de lectura puede provocar un bloqueo en casos poco frecuentes. Esto cierra [#19233](https://github.com/ClickHouse/ClickHouse/issues/19233). [#22421](https://github.com/ClickHouse/ClickHouse/pull/22421) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* No limitar el tamaño de los fragmentos HTTP. Corrige [#21907](https://github.com/ClickHouse/ClickHouse/issues/21907). [#22322](https://github.com/ClickHouse/ClickHouse/pull/22322) ([Ivan](https://github.com/abyss7)).
* Se corrigió un error que provocaba una agregación incompleta de los datos cuando `optimize_aggregation_in_order` estaba habilitado y había muchas partes en la tabla. Se mejoró ligeramente el rendimiento de la agregación con `optimize_aggregation_in_order` habilitado. [#21889](https://github.com/ClickHouse/ClickHouse/pull/21889) ([Anton Popov](https://github.com/CurtizJ)).
* Comprobar si la vista de función de tabla se usa como columna. Esto complementa #20350. [#21465](https://github.com/ClickHouse/ClickHouse/pull/21465) ([Amos Bird](https://github.com/amosbird)).
* Se corrige el error "columna desconocida" en tablas con motor `Merge` en consultas con `JOIN` y agregación. Cierra [#18368](https://github.com/ClickHouse/ClickHouse/issues/18368) y [#22226](https://github.com/ClickHouse/ClickHouse/issues/22226). [#21370](https://github.com/ClickHouse/ClickHouse/pull/21370) ([Vladimir](https://github.com/vdimir)).
* Se corrigieron las colisiones de nombres en la optimización de pushdown. Esto provocaba un filtrado incorrecto en `WHERE` después de FULL JOIN. Cierra [#20497](https://github.com/ClickHouse/ClickHouse/issues/20497). [#20622](https://github.com/ClickHouse/ClickHouse/pull/20622) ([Vladimir](https://github.com/vdimir)).
* Se corrigió un error muy poco frecuente por el que una inserción con quorum con `quorum_parallel=1` no era realmente "quorum" debido a la deduplicación. [#18215](https://github.com/ClickHouse/ClickHouse/pull/18215) ([filimonov](https://github.com/filimonov) - reportó el problema, [alesapin](https://github.com/alesapin) - lo corrigió).

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

* Se ejecutan pruebas stateless en paralelo en CI. [#22300](https://github.com/ClickHouse/ClickHouse/pull/22300) ([alesapin](https://github.com/alesapin)).
* Se simplificaron los paquetes de Debian. Esto corrige [#21698](https://github.com/ClickHouse/ClickHouse/issues/21698). [#22976](https://github.com/ClickHouse/ClickHouse/pull/22976) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió compatibilidad para compilar ClickHouse en Apple M1. [#21639](https://github.com/ClickHouse/ClickHouse/pull/21639) ([changvvb](https://github.com/changvvb)).
* Se corrigió la compilación de ClickHouse Keeper para macOS. [#22860](https://github.com/ClickHouse/ClickHouse/pull/22860) ([alesapin](https://github.com/alesapin)).
* Se corrigieron algunas pruebas en la plataforma AArch64. [#22596](https://github.com/ClickHouse/ClickHouse/pull/22596) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió alineación de funciones para posiblemente mejorar el rendimiento. [#21431](https://github.com/ClickHouse/ClickHouse/pull/21431) ([Danila Kutenin](https://github.com/danlark1)).
* Se ajustaron algunas pruebas para que produzcan resultados idénticos en amd64 y aarch64 (qemu). El resultado dependía del comportamiento de la CPU específico de la implementación. [#22590](https://github.com/ClickHouse/ClickHouse/pull/22590) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se permite el profiling de consultas solo en x86\_64. Véase [#15174](https://github.com/ClickHouse/ClickHouse/issues/15174#issuecomment-812954965) y [#15638](https://github.com/ClickHouse/ClickHouse/issues/15638#issuecomment-703805337). Esto cierra [#15638](https://github.com/ClickHouse/ClickHouse/issues/15638). [#22580](https://github.com/ClickHouse/ClickHouse/pull/22580) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se permite compilar con xz (lzma) externo usando la opción de CMake `USE_INTERNAL_XZ_LIBRARY=OFF`. [#22571](https://github.com/ClickHouse/ClickHouse/pull/22571) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Se habilitó `openldap` incluido en `ppc64le` [#22487](https://github.com/ClickHouse/ClickHouse/pull/22487) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Se deshabilitaron bibliotecas incompatibles (normalmente específicas de la plataforma) en `ppc64le` [#22475](https://github.com/ClickHouse/ClickHouse/pull/22475) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Se añadió una prueba de Jepsen en CI para ClickHouse Keeper. [#22373](https://github.com/ClickHouse/ClickHouse/pull/22373) ([alesapin](https://github.com/alesapin)).
* Se compiló `jemalloc` con compatibilidad para [heap profiling](https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Heap-Profiling). [#22834](https://github.com/ClickHouse/ClickHouse/pull/22834) ([nvartolomei](https://github.com/nvartolomei)).
* Se evita UB en los motores `*Log` al liberar el rwlock desde otro hilo. [#22583](https://github.com/ClickHouse/ClickHouse/pull/22583) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió UB liberando el rwlock de TinyLog desde el mismo hilo. [#22560](https://github.com/ClickHouse/ClickHouse/pull/22560) ([Azat Khuzhin](https://github.com/azat)).

<div id="clickhouse-release-214">
  ## Lanzamiento de ClickHouse 21.4
</div>

<div id="clickhouse-release-2141-2021-04-12">
  ### Lanzamiento de ClickHouse 21.4.1 2021-04-12
</div>

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

* `toStartOfIntervalFunction` alineará los intervalos de hora con la medianoche (en versiones anteriores se alineaban con el inicio de la época Unix). Por ejemplo, `toStartOfInterval(x, INTERVAL 11 HOUR)` dividirá cada día en tres intervalos: `00:00:00..10:59:59`, `11:00:00..21:59:59` y `22:00:00..23:59:59`. Este comportamiento se ajusta mejor a las necesidades prácticas. Esto cierra [#9510](https://github.com/ClickHouse/ClickHouse/issues/9510). [#22060](https://github.com/ClickHouse/ClickHouse/pull/22060) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `Age` y `Precision` en las configuraciones de rollup de Graphite deben aumentar de una retención a la siguiente. Ahora esto se comprueba y una configuración incorrecta genera una excepción. [#21496](https://github.com/ClickHouse/ClickHouse/pull/21496) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Se corrigió `cutToFirstSignificantSubdomainCustom()`/`firstSignificantSubdomainCustom()`, que devolvía un resultado incorrecto para dominios de 3 o más niveles presentes en la lista personalizada de dominios de nivel superior. Para los dominios de entrada que coinciden con estos dominios de nivel superior personalizados, el dominio de tercer nivel se consideraba el primero significativo. Esto ya está corregido. Este cambio puede introducir incompatibilidades si la función se usa, por ejemplo, en la clave de sharding. [#21946](https://github.com/ClickHouse/ClickHouse/pull/21946) ([Azat Khuzhin](https://github.com/azat)).
* La columna `keys` de la tabla `system.dictionaries` fue sustituida por las columnas `key.names` y `key.types`. Las columnas `key.names`, `key.types`, `attribute.names`, `attribute.types` de la tabla `system.dictionaries` no requieren que el diccionario esté cargado. [#21884](https://github.com/ClickHouse/ClickHouse/pull/21884) ([Maksim Kita](https://github.com/kitaisreal)).
* Ahora las réplicas que están procesando el comando `ALTER TABLE ATTACH PART[ITION]` buscan en sus carpetas `detached/` antes de obtener los datos de otras réplicas. Como detalle de implementación, se introduce un nuevo comando `ATTACH_PART` en el log replicado. Las partes se buscan y comparan por sus sumas de comprobación. [#18978](https://github.com/ClickHouse/ClickHouse/pull/18978) ([Mike Kot](https://github.com/myrrc)). **Nota**:
  * Las consultas `ATTACH PART[ITION]` pueden no funcionar durante la actualización del cluster.
  * No es posible volver a una versión anterior de ClickHouse después de ejecutar la consulta `ALTER ... ATTACH` en la nueva versión, ya que los servidores antiguos no podrían procesar la entrada `ATTACH_PART` en el log replicado.
* En esta versión, un elemento vacío `<remote_url_allow_hosts></remote_url_allow_hosts>` bloqueará todo el acceso a hosts remotos, mientras que en versiones anteriores no hacía nada. Si desea mantener el comportamiento anterior y tiene un elemento `remote_url_allow_hosts` vacío en el archivo de configuración, elimínelo. [#20058](https://github.com/ClickHouse/ClickHouse/pull/20058) ([Vladimir Chebotarev](https://github.com/excitoon)).

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

* Se amplió el rango de `DateTime64` para admitir fechas desde 1925 hasta 2283. Se mejoró la compatibilidad de `DateTime` con la fecha cero (`1970-01-01`). [#9404](https://github.com/ClickHouse/ClickHouse/pull/9404) ([alexey-milovidov](https://github.com/alexey-milovidov), [Vasily Nemkov](https://github.com/Enmk)). No todas las funciones de fecha y hora funcionan con este rango ampliado de fechas.
* Se añadió compatibilidad con la autenticación de Kerberos para usuarios preconfigurados y solicitudes HTTP (GSS-SPNEGO). [#14995](https://github.com/ClickHouse/ClickHouse/pull/14995) ([Denis Glazachev](https://github.com/traceon)).
* Se agregó la configuración `prefer_column_name_to_alias` para usar los nombres de columna originales en lugar de alias. Es necesaria para que la compatibilidad con las reglas habituales de alias de las bases de datos más comunes sea mayor. Esto corresponde a [#9715](https://github.com/ClickHouse/ClickHouse/issues/9715) y [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#22044](https://github.com/ClickHouse/ClickHouse/pull/22044) ([Amos Bird](https://github.com/amosbird)).
* Se añadieron las funciones `dictGetChildren(dictionary, key)`, `dictGetDescendants(dictionary, key, level)`. La función `dictGetChildren` devuelve todos los elementos secundarios como un array de índices. Es una transformación inversa de `dictGetHierarchy`. La función `dictGetDescendants` devuelve todos los descendientes como si `dictGetChildren` se hubiera aplicado recursivamente `level` veces. Un valor de `level` igual a cero equivale a infinito. Cierra [#14656](https://github.com/ClickHouse/ClickHouse/issues/14656). [#22096](https://github.com/ClickHouse/ClickHouse/pull/22096) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la fuente de diccionario `executable_pool`. Cierra [#14528](https://github.com/ClickHouse/ClickHouse/issues/14528). [#21321](https://github.com/ClickHouse/ClickHouse/pull/21321) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la función de tabla `dictionary`. Funciona de la misma manera que el motor `Dictionary`. Cierra [#21560](https://github.com/ClickHouse/ClickHouse/issues/21560). [#21910](https://github.com/ClickHouse/ClickHouse/pull/21910) ([Maksim Kita](https://github.com/kitaisreal)).
* Se admite el tipo `Nullable` para el atributo `PolygonDictionary`. [#21890](https://github.com/ClickHouse/ClickHouse/pull/21890) ([Maksim Kita](https://github.com/kitaisreal)).
* Las funciones `dictGet`, `dictHas` usan el nombre de la base de datos actual si este no se especifica para los diccionarios creados con DDL. Cierra [#21632](https://github.com/ClickHouse/ClickHouse/issues/21632). [#21859](https://github.com/ClickHouse/ClickHouse/pull/21859) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la función `dictGetOrNull`. Funciona como `dictGet`, pero devuelve `Null` si no se encuentra la clave en el diccionario. Cierra [#22375](https://github.com/ClickHouse/ClickHouse/issues/22375). [#22413](https://github.com/ClickHouse/ClickHouse/pull/22413) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la actualización asíncrona en los diccionarios `ComplexKeyCache`, `SSDCache` y `SSDComplexKeyCache`. Se añadió compatibilidad con el tipo `Nullable` en los diccionarios `Cache`, `ComplexKeyCache`, `SSDCache` y `SSDComplexKeyCache`. Se añadió compatibilidad con la obtención de varios atributos mediante las funciones `dictGet` y `dictGetOrDefault`. Corrige [#21517](https://github.com/ClickHouse/ClickHouse/issues/21517). [#20595](https://github.com/ClickHouse/ClickHouse/pull/20595) ([Maksim Kita](https://github.com/kitaisreal)).
* Se admite la función `dictHas` para `RangeHashedDictionary`. Corrige [#6680](https://github.com/ClickHouse/ClickHouse/issues/6680). [#19816](https://github.com/ClickHouse/ClickHouse/pull/19816) ([Maksim Kita](https://github.com/kitaisreal)).
* Se agregó la función `timezoneOf`, que devuelve el nombre de la zona horaria de los tipos de datos `DateTime` o `DateTime64`. Esto no cierra [#9959](https://github.com/ClickHouse/ClickHouse/issues/9959). Se corrigieron las inconsistencias en los nombres de las funciones: se agregaron los alias `timezone` y `timeZone`, así como `toTimezone` y `toTimeZone`, y `timezoneOf` y `timeZoneOf`. [#22001](https://github.com/ClickHouse/ClickHouse/pull/22001) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Añade una nueva cláusula opcional `GRANTEES` para los comandos `CREATE/ALTER USER`. Especifica qué usuarios o roles pueden recibir grants de este usuario, con la condición de que este usuario también tenga todos los permisos necesarios concedidos con la opción de grant. De forma predeterminada, se usa `GRANTEES ANY`, lo que significa que un usuario con la opción de grant puede conceder permisos a cualquiera. Sintaxis: `CREATE USER ... GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]`. [#21641](https://github.com/ClickHouse/ClickHouse/pull/21641) ([Vitaly Baranov](https://github.com/vitlibar)).
* Añadir la nueva columna `slowdowns_count` a `system.clusters`. Al usar hedged requests, muestra cuántas veces cambiamos a otra réplica porque esta respondía lentamente. Mostrar también el valor real de `errors_count` en `system.clusters`. [#21480](https://github.com/ClickHouse/ClickHouse/pull/21480) ([Kruglov Pavel](https://github.com/Avogar)).
* Agregar la columna virtual `_partition_id` para los motores `MergeTree*`. Permitir descartar particiones por `_partition_id`. Agregar la función `partitionID()` para calcular la cadena con el ID de la partición. [#21401](https://github.com/ClickHouse/ClickHouse/pull/21401) ([Amos Bird](https://github.com/amosbird)).
* Se añade la función `isIPAddressInRange` para comprobar si una dirección IPv4 o IPv6 está contenida en un prefijo de red CIDR determinado. [#21329](https://github.com/ClickHouse/ClickHouse/pull/21329) ([PHO](https://github.com/depressed-pho)).
* Se añadió un nuevo comando SQL `ALTER TABLE 'table_name' UNFREEZE [PARTITION 'part_expr'] WITH NAME 'backup_name'`. Este comando es necesario para eliminar correctamente las particiones 'congeladas' de todos los discos. [#21142](https://github.com/ClickHouse/ClickHouse/pull/21142) ([Pavel Kovalenko](https://github.com/Jokser)).
* Admite la conversión implícita del tipo de las claves en JOIN. [#19885](https://github.com/ClickHouse/ClickHouse/pull/19885) ([Vladimir](https://github.com/vdimir)).

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

* Compatibilidad con el marco `RANGE OFFSET` (para funciones de ventana) en tipos de coma flotante. Se implementan las funciones de ventana `lagInFrame`/`leadInFrame`, análogas a `lag`/`lead`, pero que respetan el marco de la ventana. Son idénticas cuando el marco es `between unbounded preceding and unbounded following`. Esto cierra [#5485](https://github.com/ClickHouse/ClickHouse/issues/5485). [#21895](https://github.com/ClickHouse/ClickHouse/pull/21895) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Replicación zero-copy para `ReplicatedMergeTree` en almacenamiento S3. [#16240](https://github.com/ClickHouse/ClickHouse/pull/16240) ([ianton-ru](https://github.com/ianton-ru)).
* Se añadió la posibilidad de migrar un disco S3 existente al esquema con capacidades de copia de seguridad y restauración. [#22070](https://github.com/ClickHouse/ClickHouse/pull/22070) ([Pavel Kovalenko](https://github.com/Jokser)).

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

* Se añadió compatibilidad con formatting en paralelo en `clickhouse-local` y en el resto de casos. [#21630](https://github.com/ClickHouse/ClickHouse/pull/21630) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añadió compatibilidad con parsing en paralelo para los formatos `CSVWithNames` y `TSVWithNames`. Esto cierra [#21085](https://github.com/ClickHouse/ClickHouse/issues/21085). [#21149](https://github.com/ClickHouse/ClickHouse/pull/21149) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se habilitó la lectura con mmap IO para rangos de archivos a partir de 64 MiB (la configuración `min_bytes_to_use_mmap_io`). Esto puede suponer una mejora moderada del rendimiento. [#22326](https://github.com/ClickHouse/ClickHouse/pull/22326) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió una cache para los archivos leídos con la configuración `min_bytes_to_use_mmap_io`. Esto aporta una mejora significativa del rendimiento (2x o más) cuando el valor de la configuración es pequeño, al evitar llamadas frecuentes a mmap/munmap y los consiguientes fallos de página. Tenga en cuenta que mmap IO tiene importantes inconvenientes que lo hacen menos fiable en producción (por ejemplo, bloqueos o SIGBUS en discos defectuosos; uso de memoria menos controlable). No obstante, funciona bien en benchmarks. [#22206](https://github.com/ClickHouse/ClickHouse/pull/22206) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se evita la copia innecesaria de datos al usar el codec `NONE`. Tenga en cuenta que el codec `NONE` suele ser poco útil: se recomienda usar siempre compresión (`LZ4` se usa de forma predeterminada). A pesar de la creencia generalizada, desactivar la compresión puede no mejorar el rendimiento (incluso puede producir el efecto contrario). El codec `NONE` es útil en algunos casos: - cuando los datos no se pueden comprimir; - para benchmarks sintéticos. [#22145](https://github.com/ClickHouse/ClickHouse/pull/22145) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `GROUP BY` más rápido con un `max_rows_to_group_by` pequeño y `group_by_overflow_mode='any'`. [#21856](https://github.com/ClickHouse/ClickHouse/pull/21856) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se optimizó el rendimiento de queries como `SELECT ... FINAL ... WHERE`. Ahora, en las queries con `FINAL`, se permite mover a `PREWHERE` las columnas que forman parte de la sorting key. [#21830](https://github.com/ClickHouse/ClickHouse/pull/21830) ([foolchi](https://github.com/foolchi)).
* Se mejoró el rendimiento al sustituir `memcpy` por otra implementación. Esto cierra [#18583](https://github.com/ClickHouse/ClickHouse/issues/18583). [#21520](https://github.com/ClickHouse/ClickHouse/pull/21520) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se mejoró el rendimiento de la aggregation en el orden de la sorting key (con la configuración `optimize_aggregation_in_order` habilitada). [#19401](https://github.com/ClickHouse/ClickHouse/pull/19401) ([Anton Popov](https://github.com/CurtizJ)).

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

* Se añade un pool de conexiones para el motor de tabla o de base de datos de PostgreSQL y para el origen del diccionario. Debería corregir [#21444](https://github.com/ClickHouse/ClickHouse/issues/21444). [#21839](https://github.com/ClickHouse/ClickHouse/pull/21839) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Admite esquemas de tablas no predeterminados para storage/table-function de Postgres. Cierra [#21701](https://github.com/ClickHouse/ClickHouse/issues/21701). [#21711](https://github.com/ClickHouse/ClickHouse/pull/21711) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Compatibilidad con la prioridad de réplicas para la fuente de diccionario de Postgres. [#21710](https://github.com/ClickHouse/ClickHouse/pull/21710) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se introduce una nueva configuración de MergeTree, `min_bytes_to_rebalance_partition_over_jbod`, que permite asignar nuevas partes a distintos discos de un volumen JBOD de forma equilibrada. [#16481](https://github.com/ClickHouse/ClickHouse/pull/16481) ([Amos Bird](https://github.com/amosbird)).
* Se añadieron los valores `Grant`, `Revoke` y `System` en la columna `query_kind` para las consultas correspondientes de `system.query_log`. [#21102](https://github.com/ClickHouse/ClickHouse/pull/21102) ([Vasily Nemkov](https://github.com/Enmk)).
* Permite configurar de forma independiente los tiempos de espera de las conexiones HTTP utilizadas para la replicación respecto de otros tiempos de espera HTTP. [#20088](https://github.com/ClickHouse/ClickHouse/pull/20088) ([nvartolomei](https://github.com/nvartolomei)).
* Mejor mensaje de excepción en el cliente en caso de que se produzca una excepción mientras el servidor escribe bloques. En versiones anteriores, el cliente podía recibir un mensaje confuso como `Data compressed with different methods`. [#22427](https://github.com/ClickHouse/ClickHouse/pull/22427) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige el error `Directory tmp_fetch_XXX already exists`, que podía producirse después de un fallo al obtener una parte. Elimina el directorio temporal de obtención si ya existe. Corrige [#14197](https://github.com/ClickHouse/ClickHouse/issues/14197). [#22411](https://github.com/ClickHouse/ClickHouse/pull/22411) ([nvartolomei](https://github.com/nvartolomei)).
* Se corrige el informe de MSan de la función `range` con el argumento `UInt256` (la compatibilidad con enteros grandes es experimental). Esto cierra [#22157](https://github.com/ClickHouse/ClickHouse/issues/22157). [#22387](https://github.com/ClickHouse/ClickHouse/pull/22387) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió la columna `current_database` a la tabla `system.processes`. Contiene la base de datos actual de la consulta. [#22365](https://github.com/ClickHouse/ClickHouse/pull/22365) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Se añade la búsqueda y navegación en el historial sin distinguir entre mayúsculas y minúsculas, así como funciones para moverse por subpalabras, a `clickhouse-client`. [#22105](https://github.com/ClickHouse/ClickHouse/pull/22105) ([Amos Bird](https://github.com/amosbird)).
* Si una tupla de `NULL`, p. ej., `(NULL, NULL)`, está en el lado izquierdo del operador `IN` y a la derecha hay tuplas sin `NULL`, p. ej., `SELECT (NULL, NULL) IN ((0, 0), (3, 1))`, devuelve 0 en lugar de lanzar una excepción por tipos incompatibles. La expresión también puede aparecer debido a la optimización de algo como `SELECT (NULL, NULL) = (8, 0) OR (NULL, NULL) = (3, 2) OR (NULL, NULL) = (0, 0) OR (NULL, NULL) = (3, 1)`. Esto cierra [#22017](https://github.com/ClickHouse/ClickHouse/issues/22017). [#22063](https://github.com/ClickHouse/ClickHouse/pull/22063) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se actualiza la versión utilizada de simdjson a la 0.9.1. Esto corrige [#21984](https://github.com/ClickHouse/ClickHouse/issues/21984). [#22057](https://github.com/ClickHouse/ClickHouse/pull/22057) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se añadieron alias sin distinción entre mayúsculas y minúsculas para las funciones `CONNECTION_ID()` y `VERSION()`. Esto corrige [#22028](https://github.com/ClickHouse/ClickHouse/issues/22028). [#22042](https://github.com/ClickHouse/ClickHouse/pull/22042) ([Eugene Klimov](https://github.com/Slach)).
* Se añadió la opción `strict_increase` a la función `windowFunnel` para calcular cada evento una sola vez (resuelve [#21835](https://github.com/ClickHouse/ClickHouse/issues/21835)). [#22025](https://github.com/ClickHouse/ClickHouse/pull/22025) ([Vladimir](https://github.com/vdimir)).
* Si la clave de partición de una tabla `MergeTree` no incluye columnas `Date` o `DateTime`, pero sí incluye exactamente una columna `DateTime64`, sus valores se exponen en las columnas `min_time` y `max_time` de las tablas `system.parts` y `system.parts_columns`. Se añaden las columnas `min_time` y `max_time` a la tabla `system.parts_columns` (esto corregía una inconsistencia con la tabla `system.parts`). Esto cierra [#18244](https://github.com/ClickHouse/ClickHouse/issues/18244). [#22011](https://github.com/ClickHouse/ClickHouse/pull/22011) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió compatibilidad con la configuración `replication_alter_partitions_sync=1` en `clickhouse-copier` para mover particiones desde la tabla auxiliar hasta el destino. Se redujeron los tiempos de espera predeterminados. Corrige [#21911](https://github.com/ClickHouse/ClickHouse/issues/21911). [#21912](https://github.com/ClickHouse/ClickHouse/pull/21912) ([turbo jason](https://github.com/songenjie)).
* Mostrar la ruta del directorio de datos de las tablas `EmbeddedRocksDB` en las tablas del sistema. [#21903](https://github.com/ClickHouse/ClickHouse/pull/21903) ([tavplubix](https://github.com/tavplubix)).
* Se añadió el evento de perfil `HedgedRequestsChangeReplica` y se cambió el tiempo de espera de lectura de datos de s a ms. [#21886](https://github.com/ClickHouse/ClickHouse/pull/21886) ([Kruglov Pavel](https://github.com/Avogar)).
* DiskS3 (funcionalidad experimental en desarrollo). Se corrigió un error que impedía mover el directorio si el destino no estaba vacío y se utilizaba un disco de caché. [#21837](https://github.com/ClickHouse/ClickHouse/pull/21837) ([Pavel Kovalenko](https://github.com/Jokser)).
* Mejoras en el formato de los tipos de datos `Array` y `Map` en la interfaz web. [#21798](https://github.com/ClickHouse/ClickHouse/pull/21798) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Actualizar los clústeres solo si se actualizaron sus configuraciones. [#21685](https://github.com/ClickHouse/ClickHouse/pull/21685) ([Kruglov Pavel](https://github.com/Avogar)).
* Se propagan las configuraciones de consulta y de sesión para las consultas DDL distribuidas. Establezca `distributed_ddl_entry_format_version` en 2 para habilitar esta función. Se añadió la configuración `distributed_ddl_output_mode`. Modos admitidos: `none`, `throw` (predeterminado), `null_status_on_timeout` y `never_throw`. Correcciones y mejoras varias para el engine de base de datos `Replicated`. [#21535](https://github.com/ClickHouse/ClickHouse/pull/21535) ([tavplubix](https://github.com/tavplubix)).
* Si `PODArray` se instanciaba con un tamaño de elemento que no era ni una fracción ni un múltiplo de 16, podía producirse un desbordamiento de búfer. No hay errores en las versiones actuales. [#21533](https://github.com/ClickHouse/ClickHouse/pull/21533) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añaden las columnas `last_error_time`/`last_error_message`/`last_error_stacktrace`/`remote` para `system.errors`. [#21529](https://github.com/ClickHouse/ClickHouse/pull/21529) ([Azat Khuzhin](https://github.com/azat)).
* Se añaden alias `simpleJSONExtract/simpleJSONHas` a `visitParam/visitParamExtract{UInt, Int, Bool, Float, Raw, String}`. Corrige el problema #21383. [#21519](https://github.com/ClickHouse/ClickHouse/pull/21519) ([fastio](https://github.com/fastio)).
* Se añade la configuración `optimize_skip_unused_shards_limit` para limitar la cantidad de valores de la clave de sharding para `optimize_skip_unused_shards`. [#21512](https://github.com/ClickHouse/ClickHouse/pull/21512) ([Azat Khuzhin](https://github.com/azat)).
* Mejora de `clickhouse-format` para que no lance una excepción cuando haya espacios de más o un comentario después de la última consulta, y para que lance una excepción de inmediato con un mensaje claro al formatear `ASTInsertQuery` con datos. [#21311](https://github.com/ClickHouse/ClickHouse/pull/21311) ([flynn](https://github.com/ucasFL)).
* Se mejoró la compatibilidad con claves enteras en el tipo de dato `Map`. [#21157](https://github.com/ClickHouse/ClickHouse/pull/21157) ([Anton Popov](https://github.com/CurtizJ)).
* MaterializeMySQL: intenta reconectarse a MySQL si se pierde la conexión. [#20961](https://github.com/ClickHouse/ClickHouse/pull/20961) ([Håvard Kvålen](https://github.com/havardk)).
* Se amplían los casos en los que se puede reescribir `CROSS JOIN` como `INNER JOIN`. [#20392](https://github.com/ClickHouse/ClickHouse/pull/20392) ([Vladimir](https://github.com/vdimir)).
* No crear partes vacías al hacer INSERT cuando esté habilitada la configuración `optimize_on_insert`. Corrige [#20304](https://github.com/ClickHouse/ClickHouse/issues/20304). [#20387](https://github.com/ClickHouse/ClickHouse/pull/20387) ([Kruglov Pavel](https://github.com/Avogar)).
* `MaterializeMySQL`: añade un índice minmax de omisión para la columna `_version`. [#20382](https://github.com/ClickHouse/ClickHouse/pull/20382) ([Stig Bakken](https://github.com/stigsb)).
* Se añadió la opción `--backslash` a `clickhouse-format`, que permite añadir una barra invertida al final de cada línea de la consulta formateada. [#21494](https://github.com/ClickHouse/ClickHouse/pull/21494) ([flynn](https://github.com/ucasFL)).
* Ahora ClickHouse ya no lanzará la excepción `LOGICAL_ERROR` cuando intentemos mutar la parte ya cubierta. Corrige [#22013](https://github.com/ClickHouse/ClickHouse/issues/22013). [#22291](https://github.com/ClickHouse/ClickHouse/pull/22291) ([alesapin](https://github.com/alesapin)).

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

* Eliminar el socket de epoll antes de cancelar el receptor de paquetes en `HedgedConnections` para evitar una posible condición de carrera. Corrige [#22161](https://github.com/ClickHouse/ClickHouse/issues/22161). [#22443](https://github.com/ClickHouse/ClickHouse/pull/22443) ([Kruglov Pavel](https://github.com/Avogar)).
* Se agregó la contabilización de memoria (faltante) en las rutinas de parsing en paralelo. En versiones anteriores, podía producirse un OOM cuando el conjunto de resultados contenía bloques de datos muy grandes. Esto cierra [#22008](https://github.com/ClickHouse/ClickHouse/issues/22008). [#22425](https://github.com/ClickHouse/ClickHouse/pull/22425) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige una excepción que puede producirse cuando `SELECT` tiene una condición `WHERE` constante y la tabla de origen tiene columnas con nombres compuestos solo por dígitos. [#22270](https://github.com/ClickHouse/ClickHouse/pull/22270) ([LiuNeng](https://github.com/liuneng1994)).
* Se ha corregido la cancelación de consultas con `use_hedged_requests=0` y `async_socket_for_remote=1`. [#22183](https://github.com/ClickHouse/ClickHouse/pull/22183) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió una excepción no controlada en `InterserverIOHTTPHandler`. [#22146](https://github.com/ClickHouse/ClickHouse/pull/22146) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el entrypoint de Docker en caso de que `http_port` no esté en la configuración. [#22132](https://github.com/ClickHouse/ClickHouse/pull/22132) ([Ewout](https://github.com/devwout)).
* Se corrige el error `Invalid number of rows in Chunk` en `JOIN` con `TOTALS` y `arrayJoin`. Se cierra [#19303](https://github.com/ClickHouse/ClickHouse/issues/19303). [#22129](https://github.com/ClickHouse/ClickHouse/pull/22129) ([Vladimir](https://github.com/vdimir)).
* Se corrige el nombre del pool de subprocesos en segundo plano que se usaba para leer mensajes de Kafka. El motor Kafka con el pool de subprocesos defectuoso no consumirá el mensaje de la cola de mensajes. [#22122](https://github.com/ClickHouse/ClickHouse/pull/22122) ([fastio](https://github.com/fastio)).
* Se corrigió el problema de espera de las consultas `OPTIMIZE` y `ALTER` en los motores de tabla `ReplicatedMergeTree`. Ahora la consulta no se quedará bloqueada cuando la tabla se haya puesto en estado detached o se haya reiniciado. [#22118](https://github.com/ClickHouse/ClickHouse/pull/22118) ([alesapin](https://github.com/alesapin)).
* Deshabilitar `async_socket_for_remote`/`use_hedged_requests` en versiones defectuosas del kernel de Linux. [#22109](https://github.com/ClickHouse/ClickHouse/pull/22109) ([Azat Khuzhin](https://github.com/azat)).
* Entrypoint de Docker: evitar el `chown` de `.` cuando `LOG_PATH` está vacío. Cierra [#22100](https://github.com/ClickHouse/ClickHouse/issues/22100). [#22102](https://github.com/ClickHouse/ClickHouse/pull/22102) ([filimonov](https://github.com/filimonov)).
* A la función `decrypt` le faltaba una verificación del tamaño mínimo de los datos cifrados en modo `AEAD`. Esto corrige [#21897](https://github.com/ClickHouse/ClickHouse/issues/21897). [#22064](https://github.com/ClickHouse/ClickHouse/pull/22064) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* En un caso poco frecuente, una fusión para `CollapsingMergeTree` puede crear un gránulo con `index_granularity + 1` filas. Debido a ello, la comprobación interna, añadida en [#18928](https://github.com/ClickHouse/ClickHouse/issues/18928) (afecta a 21.2 y 21.3), puede fallar con el error `Incomplete granules are not allowed while blocks are granules size`. Este error impedía fusionar las partes. [#21976](https://github.com/ClickHouse/ClickHouse/pull/21976) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se revirtió [#15454](https://github.com/ClickHouse/ClickHouse/issues/15454), que podía provocar un aumento significativo del uso de memoria durante la carga de diccionarios externos de tipo hash. Esto cierra [#21935](https://github.com/ClickHouse/ClickHouse/issues/21935). [#21948](https://github.com/ClickHouse/ClickHouse/pull/21948) ([Maksim Kita](https://github.com/kitaisreal)).
* Evitar solapamientos en las conexiones hedged (error `Unknown packet 9 from server`). [#21941](https://github.com/ClickHouse/ClickHouse/pull/21941) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige, en algunos casos, la lectura de la solicitud HTTP POST con el tipo de contenido "multipart/form-data". [#21936](https://github.com/ClickHouse/ClickHouse/pull/21936) ([Ivan](https://github.com/abyss7)).
* Corrige resultados incorrectos de `ORDER BY` cuando una consulta contiene funciones de ventana y se aplica la optimización de lectura en orden de clave primaria. Corrige [#21828](https://github.com/ClickHouse/ClickHouse/issues/21828). [#21915](https://github.com/ClickHouse/ClickHouse/pull/21915) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Se corrige un interbloqueo durante la primera ejecución del modelo CatBoost. Cierra [#13832](https://github.com/ClickHouse/ClickHouse/issues/13832). [#21844](https://github.com/ClickHouse/ClickHouse/pull/21844) ([Kruglov Pavel](https://github.com/Avogar)).
* Se corrige un resultado de consulta incorrecto (y un posible fallo) que podía producirse cuando la condición `WHERE` o `HAVING` se aplicaba antes de `GROUP BY`. Corrige [#21773](https://github.com/ClickHouse/ClickHouse/issues/21773). [#21841](https://github.com/ClickHouse/ClickHouse/pull/21841) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Mejor gestión de errores y logging en `WriteBufferFromS3`. [#21836](https://github.com/ClickHouse/ClickHouse/pull/21836) ([Pavel Kovalenko](https://github.com/Jokser)).
* Corrige posibles bloqueos en las funciones de agregación con el combinador `Distinct` al usar agregación en dos niveles. Esta es una corrección complementaria de [#18365](https://github.com/ClickHouse/ClickHouse/pull/18365) . Solo puede reproducirse en un entorno de producción. [#21818](https://github.com/ClickHouse/ClickHouse/pull/21818) ([Amos Bird](https://github.com/amosbird)).
* Se corrige el análisis de índices en subconsultas escalares. Esto corrige [#21717](https://github.com/ClickHouse/ClickHouse/issues/21717) , que se introdujo en [#18896](https://github.com/ClickHouse/ClickHouse/pull/18896). [#21766](https://github.com/ClickHouse/ClickHouse/pull/21766) ([Amos Bird](https://github.com/amosbird)).
* Corrige un error en los motores de tabla `ReplicatedMerge` cuando la consulta `ALTER MODIFY COLUMN` no modifica el tipo de una columna `Decimal` si su tamaño (32 bits o 64 bits) no cambia. [#21728](https://github.com/ClickHouse/ClickHouse/pull/21728) ([alesapin](https://github.com/alesapin)).
* Se corrige un posible bloqueo indefinido al ejecutar `OPTIMIZE` y `DROP` de forma concurrente en `ReplicatedMergeTree`. [#21716](https://github.com/ClickHouse/ClickHouse/pull/21716) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la función `arrayElement` con el tipo `Map` para argumentos enteros constantes. [#21699](https://github.com/ClickHouse/ClickHouse/pull/21699) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige SIGSEGV en atributos no existentes de `ip_trie` con `access_to_key_from_attributes`. [#21692](https://github.com/ClickHouse/ClickHouse/pull/21692) ([Azat Khuzhin](https://github.com/azat)).
* El servidor ahora solo acepta conexiones después de inicializar `DDLWorker` y los diccionarios. [#21676](https://github.com/ClickHouse/ClickHouse/pull/21676) ([Azat Khuzhin](https://github.com/azat)).
* Se añadió la conversión de tipos para las claves de las tablas de tipo `Join` (antes provocaba SIGSEGV). [#21646](https://github.com/ClickHouse/ClickHouse/pull/21646) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió la cancelación de solicitudes distribuidas (por ejemplo, un `select` simple en varios segmentos con `limit`, es decir, `select * from remote('127.{2,3}', system.numbers) limit 100`) con `async_socket_for_remote=1`. [#21643](https://github.com/ClickHouse/ClickHouse/pull/21643) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió `fsync_part_directory` para la fusión horizontal. [#21642](https://github.com/ClickHouse/ClickHouse/pull/21642) ([Azat Khuzhin](https://github.com/azat)).
* Eliminar las columnas desconocidas de la tabla del JOIN en `WHERE` para las consultas a motores de base de datos externos (MySQL, PostgreSQL). cierra [#14614](https://github.com/ClickHouse/ClickHouse/issues/14614), cierra [#19288](https://github.com/ClickHouse/ClickHouse/issues/19288) (dup), cierra [#19645](https://github.com/ClickHouse/ClickHouse/issues/19645) (dup). [#21640](https://github.com/ClickHouse/ClickHouse/pull/21640) ([Vladimir](https://github.com/vdimir)).
* Se invocaba `std::terminate` si se producía un error al escribir datos en S3. [#21624](https://github.com/ClickHouse/ClickHouse/pull/21624) ([Vladimir](https://github.com/vdimir)).
* Se corrige un posible error `Cannot find column` cuando `optimize_skip_unused_shards` está habilitado y no se usa ningún segmento. [#21579](https://github.com/ClickHouse/ClickHouse/pull/21579) ([Azat Khuzhin](https://github.com/azat)).
* Si una consulta tiene una condición `WHERE` constante y la configuración `optimize_skip_unused_shards` está habilitada, es posible que se omitan todos los segmentos y que la consulta devuelva incorrectamente un resultado vacío. [#21550](https://github.com/ClickHouse/ClickHouse/pull/21550) ([Amos Bird](https://github.com/amosbird)).
* Se corrige un problema por el que la función de tabla `clusterAllReplicas` devolvía un `_shard_num` incorrecto. cierra [#21481](https://github.com/ClickHouse/ClickHouse/issues/21481). [#21498](https://github.com/ClickHouse/ClickHouse/pull/21498) ([flynn](https://github.com/ucasFL)).
* Se corrigió el problema por el que la tabla S3 conservaba credenciales antiguas tras actualizar la configuración. [#21457](https://github.com/ClickHouse/ClickHouse/pull/21457) ([Grigory Pervakov](https://github.com/GrigoryPervakov)).
* Se corrigió una condición de carrera en el objeto SSL de `SecureSocket` en Poco. [#21456](https://github.com/ClickHouse/ClickHouse/pull/21456) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige el análisis del formato `Avro` en `Kafka`. Soluciona [#21437](https://github.com/ClickHouse/ClickHouse/issues/21437). [#21438](https://github.com/ClickHouse/ClickHouse/pull/21438) ([Ilya Golshtein](https://github.com/ilejn)).
* Se corrigen los tiempos de espera de recepción y envío, y la lectura no bloqueante en un socket seguro. [#21429](https://github.com/ClickHouse/ClickHouse/pull/21429) ([Kruglov Pavel](https://github.com/Avogar)).
* La opción `force_drop_table` no funcionaba con `MATERIALIZED VIEW`; ya se ha corregido. Soluciona [#18943](https://github.com/ClickHouse/ClickHouse/issues/18943). [#20626](https://github.com/ClickHouse/ClickHouse/pull/20626) ([tavplubix](https://github.com/tavplubix)).
* Se corrigen conflictos de nombres en `PredicateRewriteVisitor`. Esto provocaba un filtrado incorrecto en `WHERE` después de un full join. Cierra [#20497](https://github.com/ClickHouse/ClickHouse/issues/20497). [#20622](https://github.com/ClickHouse/ClickHouse/pull/20622) ([Vladimir](https://github.com/vdimir)).

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

* Añadidas pruebas de [Jepsen](https://github.com/jepsen-io/jepsen) para ClickHouse Keeper. [#21677](https://github.com/ClickHouse/ClickHouse/pull/21677) ([alesapin](https://github.com/alesapin)).
* Ejecutar pruebas sin estado en paralelo en CI. Depende de [#22181](https://github.com/ClickHouse/ClickHouse/issues/22181). [#22300](https://github.com/ClickHouse/ClickHouse/pull/22300) ([alesapin](https://github.com/alesapin)).
* Se habilitó la comprobación de estado para la ejecución de CI de [SQLancer](https://github.com/sqlancer/sqlancer). [#22015](https://github.com/ClickHouse/ClickHouse/pull/22015) ([Ilya Yatsishin](https://github.com/qoega)).
* Varias mejoras preparatorias para las compilaciones de PowerPC: Habilitar el openldap integrado en `ppc64le`. [#22487](https://github.com/ClickHouse/ClickHouse/pull/22487) ([Kfir Itzhak](https://github.com/mastertheknife)).  Habilitar la compilación en `ppc64le` con Clang. [#22476](https://github.com/ClickHouse/ClickHouse/pull/22476) ([Kfir Itzhak](https://github.com/mastertheknife)). Corregir la compilación de Boost en `ppc64le`. [#22474](https://github.com/ClickHouse/ClickHouse/pull/22474) ([Kfir Itzhak](https://github.com/mastertheknife)). Corregir un error de CMake relacionado con que la variable interna de CMake `CMAKE_ASM_COMPILE_OBJECT` no estaba establecida en `ppc64le`. [#22469](https://github.com/ClickHouse/ClickHouse/pull/22469) ([Kfir Itzhak](https://github.com/mastertheknife)). Corregir que Fedora/RHEL/CentOS no encuentre `libclang_rt.builtins` en `ppc64le`. [#22458](https://github.com/ClickHouse/ClickHouse/pull/22458) ([Kfir Itzhak](https://github.com/mastertheknife)).  Habilitar la compilación con `jemalloc` en `ppc64le`. [#22447](https://github.com/ClickHouse/ClickHouse/pull/22447) ([Kfir Itzhak](https://github.com/mastertheknife)). Corregir la incrustación de la configuración de ClickHouse y de la zona horaria de cctz en `ppc64le`. [#22445](https://github.com/ClickHouse/ClickHouse/pull/22445) ([Kfir Itzhak](https://github.com/mastertheknife)). Se corrigió la compilación en `ppc64le` y se pasó a usar el registro correcto del puntero de instrucción en `ppc64le`. [#22430](https://github.com/ClickHouse/ClickHouse/pull/22430) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Volver a habilitar la biblioteca S3 (AWS) en `aarch64`. [#22484](https://github.com/ClickHouse/ClickHouse/pull/22484) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Se añadió `tzdata` a los contenedores Docker, ya que es necesario para leer formatos `ORC`. Esto cierra [#14156](https://github.com/ClickHouse/ClickHouse/issues/14156). [#22000](https://github.com/ClickHouse/ClickHouse/pull/22000) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se introducen dos argumentos para el Dockerfile de la imagen `clickhouse-server`: `deb_location` & `single_binary_location`. [#21977](https://github.com/ClickHouse/ClickHouse/pull/21977) ([filimonov](https://github.com/filimonov)).
* Se permite usar clang-tidy con compilaciones release al habilitar las aserciones, si se utiliza. [#21914](https://github.com/ClickHouse/ClickHouse/pull/21914) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió el nombre de los binarios de llvm-12 a la búsqueda en los scripts de CMake. Conversiones implícitas de constantes para silenciar las advertencias de clang. Se actualizaron los submódulos para compilar con CMake 3.19. Se silenció la recursión en la expansión de macros de la biblioteca `readpassphrase`. La opción `-fuse-ld`, en desuso, se cambió por `--ld-path` para clang. [#21597](https://github.com/ClickHouse/ClickHouse/pull/21597) ([Ilya Yatsishin](https://github.com/qoega)).
* Actualización de `docker/test/testflows/runner/dockerd-entrypoint.sh` para usar el proxy de Docker Hub de Yandex, porque Docker Hub ha impuesto límites de solicitudes muy restrictivos [#21551](https://github.com/ClickHouse/ClickHouse/pull/21551) ([vzakaznikov](https://github.com/vzakaznikov)).
* Se corrigió la compilación de la biblioteca compartida en macOS. [#20184](https://github.com/ClickHouse/ClickHouse/pull/20184) ([nvartolomei](https://github.com/nvartolomei)).
* Se añade la opción `ctime` a `zookeeper-dump-tree`. Permite volcar la hora de creación del nodo. [#21842](https://github.com/ClickHouse/ClickHouse/pull/21842) ([Ilya](https://github.com/HumanUser)).

<div id="clickhouse-release-213-lts">
  ## Lanzamiento de ClickHouse 21.3 (LTS)
</div>

<div id="clickhouse-release-v213-2021-03-12">
  ### Lanzamiento de ClickHouse v21.3, 2021-03-12
</div>

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

* Ahora ya no se permite crear tablas MergeTree con la sintaxis antigua usando TTL de tabla, porque simplemente se ignora. Sigue siendo posible hacer Attach de tablas antiguas. [#20282](https://github.com/ClickHouse/ClickHouse/pull/20282) ([alesapin](https://github.com/alesapin)).
* Ahora todos los nombres de funciones que no distinguen entre mayúsculas y minúsculas se reescribirán a su forma canónica. Esto es necesario para el enrutamiento de consultas de proyección (la próxima funcionalidad). [#20174](https://github.com/ClickHouse/ClickHouse/pull/20174) ([Amos Bird](https://github.com/amosbird)).
* Se corrige la creación de `TTL` en los casos en que su expresión es una función y coincide con la clave `ORDER BY`. Ahora se permite establecer una agregación personalizada para las columnas de la clave primaria en `TTL` con `GROUP BY`. Incompatible con versiones anteriores: para las columnas de la clave primaria que no están en `GROUP BY` y no se establecen explícitamente, ahora se aplica la función `any` en lugar de `max` cuando expira el TTL. Además, si usa TTL con `WHERE` o `GROUP BY`, puede ver excepciones durante las fusiones mientras realiza una actualización gradual. [#15450](https://github.com/ClickHouse/ClickHouse/pull/15450) ([Anton Popov](https://github.com/CurtizJ)).

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

* Se añaden configuraciones del motor File: `engine_file_empty_if_not_exists` y `engine_file_truncate_on_insert`. [#20620](https://github.com/ClickHouse/ClickHouse/pull/20620) ([M0r64n](https://github.com/M0r64n)).
* Se añade la función de agregado `deltaSum` para sumar las diferencias entre filas consecutivas. [#20057](https://github.com/ClickHouse/ClickHouse/pull/20057) ([Russ Frank](https://github.com/rf)).
* Nueva columna `event_time_microseconds` en la tabla `system.part_log`. [#20027](https://github.com/ClickHouse/ClickHouse/pull/20027) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añadió la función `timezoneOffset(datetime)`, que devuelve el desplazamiento respecto a UTC en segundos. Esto cierra [#issue:19850](https://github.com/ClickHouse/ClickHouse/issues/19850). [#19962](https://github.com/ClickHouse/ClickHouse/pull/19962) ([keenwolf](https://github.com/keen-wolf)).
* Se añade la configuración `insert_shard_id` para admitir la inserción de datos en un segmento específico desde una tabla distribuida. [#19961](https://github.com/ClickHouse/ClickHouse/pull/19961) ([flynn](https://github.com/ucasFL)).
* La función `reinterpretAs` se actualizó para admitir enteros grandes. Corrige [#19691](https://github.com/ClickHouse/ClickHouse/issues/19691). [#19858](https://github.com/ClickHouse/ClickHouse/pull/19858) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió compatibilidad con Server Side Encryption Customer Keys (la cabecera `x-amz-server-side-encryption-customer-(key/md5)`) en el cliente S3. Consulta [el enlace](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). Cierra [#19428](https://github.com/ClickHouse/ClickHouse/issues/19428). [#19748](https://github.com/ClickHouse/ClickHouse/pull/19748) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se añadió la opción `implicit_key` para el dictionary source `executable`. Permite evitar imprimir la clave en cada registro si los registros llegan en el mismo orden que las claves de entrada. Implementa [#14527](https://github.com/ClickHouse/ClickHouse/issues/14527). [#19677](https://github.com/ClickHouse/ClickHouse/pull/19677) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade el tipo de cuota `query_selects` y `query_inserts`. [#19603](https://github.com/ClickHouse/ClickHouse/pull/19603) ([JackyWoo](https://github.com/JackyWoo)).
* Se añade la función `extractTextFromHTML` [#19600](https://github.com/ClickHouse/ClickHouse/pull/19600) ([zlx19950903](https://github.com/zlx19950903)), ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Las tablas con motor `MergeTree*` ahora tienen dos nuevas configuraciones a nivel de tabla para controlar la concurrencia de consultas. La configuración `max_concurrent_queries` limita el número de consultas que se ejecutan de forma concurrente y están relacionadas con esta tabla. La configuración `min_marks_to_honor_max_concurrent_queries` indica que la configuración anterior debe aplicarse solo si la consulta lee al menos esta cantidad de marks. [#19544](https://github.com/ClickHouse/ClickHouse/pull/19544) ([Amos Bird](https://github.com/amosbird)).
* Se añadió la función `file` para leer archivos del directorio `user_files` como un String. Esto es diferente de la table function `file`. Esto implementa [#issue:18851](https://github.com/ClickHouse/ClickHouse/issues/18851). [#19204](https://github.com/ClickHouse/ClickHouse/pull/19204) ([keenwolf](https://github.com/keen-wolf)).

<div id="experimental-feature-3">
  #### Característica experimental
</div>

* Se añade el motor de base de datos experimental `Replicated`. Replica consultas DDL entre varios hosts. [#16193](https://github.com/ClickHouse/ClickHouse/pull/16193) ([tavplubix](https://github.com/tavplubix)).
* Se introduce soporte experimental para las funciones de ventana, habilitado con `allow_experimental_window_functions = 1`. Esta es una implementación preliminar, en fase alfa, que no es apta para su uso en producción y cambiará de forma incompatible con versiones anteriores en futuras versiones. Consulte [la documentación](https://github.com/ClickHouse/ClickHouse/blob/master/docs/sql-reference/window-functions/index.md#experimental-window-functions) para ver la lista de características admitidas. [#20337](https://github.com/ClickHouse/ClickHouse/pull/20337) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Se añade la posibilidad de hacer copias de seguridad y restaurar archivos de metadatos de DiskS3. [#18377](https://github.com/ClickHouse/ClickHouse/pull/18377) ([Pavel Kovalenko](https://github.com/Jokser)).

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

* Solicitudes especulativas para consultas remotas. Cuando `use_hedged_requests` está habilitado (desactivado de forma predeterminada), se permite establecer múltiples conexiones con distintas réplicas para una consulta. Se habilita una nueva conexión si las conexiones existentes con las réplicas no se establecieron dentro de `hedged_connection_timeout` o si no se recibieron datos dentro de `receive_data_timeout`. La consulta utiliza la primera conexión que envía un paquete de progreso no vacío (o un paquete de datos, si `allow_changing_replica_until_first_data_packet`); las demás conexiones se cancelan. Se admiten consultas con `max_parallel_replicas > 1`. [#19291](https://github.com/ClickHouse/ClickHouse/pull/19291) ([Kruglov Pavel](https://github.com/Avogar)). Esto permite reducir significativamente las latencias de cola en clústeres muy grandes.
* Se agregó compatibilidad con `PREWHERE` (y se habilitó la optimización correspondiente) cuando las tablas tienen definidas expresiones de seguridad a nivel de fila. [#19576](https://github.com/ClickHouse/ClickHouse/pull/19576) ([Denis Glazachev](https://github.com/traceon)).
* La configuración `distributed_aggregation_memory_efficient` está activada de forma predeterminada. Reducirá el uso de memoria y mejorará el rendimiento de las consultas distribuidas. [#20599](https://github.com/ClickHouse/ClickHouse/pull/20599) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora el rendimiento de GROUP BY con varias claves de tamaño fijo. [#20472](https://github.com/ClickHouse/ClickHouse/pull/20472) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora el rendimiento de las funciones de agregación mediante un uso más estricto de alias. [#19946](https://github.com/ClickHouse/ClickHouse/pull/19946) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Acelera la lectura desde tablas `Memory` en casos extremos (cuando la velocidad de lectura es del orden de 50 GB/s) mediante la simplificación del pipeline y, en consecuencia, una menor contención por bloqueos en la planificación del pipeline. [#20468](https://github.com/ClickHouse/ClickHouse/pull/20468) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se ha reimplementado parcialmente el servidor HTTP para que haga menos copias de los datos entrantes y salientes. Esto ofrece una mejora de rendimiento de hasta 1,5 veces al insertar registros largos a través de HTTP. [#19516](https://github.com/ClickHouse/ClickHouse/pull/19516) ([Ivan](https://github.com/abyss7)).
* Se añade la configuración `compress` para las tablas `Memory`. Si está habilitada, la tabla usará menos RAM. En algunas máquinas y conjuntos de datos, también puede hacer que SELECT sea más rápido, pero no siempre es así. Esto cierra [#20093](https://github.com/ClickHouse/ClickHouse/issues/20093). Nota: hay razones por las que las tablas `Memory` pueden ser más lentas que MergeTree: (1) falta de compresión (2) tamaño estático de los bloques (3) falta de índices y prewhere... [#20168](https://github.com/ClickHouse/ClickHouse/pull/20168) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Código de agregación ligeramente mejorado. [#20978](https://github.com/ClickHouse/ClickHouse/pull/20978) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se vuelven a añadir las especializaciones de `intDiv`/`modulo` para mejorar el rendimiento. Esto corrige [#21293](https://github.com/ClickHouse/ClickHouse/issues/21293) . La regresión se introdujo en [https://github.com/ClickHouse/ClickHouse/pull/18145](https://github.com/ClickHouse/ClickHouse/pull/18145) . [#21307](https://github.com/ClickHouse/ClickHouse/pull/21307) ([Amos Bird](https://github.com/amosbird)).
* No compacte demasiado los bloques en INSERT SELECT si se insertan en una tabla Memory. En versiones anteriores, tras INSERT SELECT se creaba una representación ineficiente de los datos en la tabla Memory. Esto cierra [#13052](https://github.com/ClickHouse/ClickHouse/issues/13052). [#20169](https://github.com/ClickHouse/ClickHouse/pull/20169) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige al menos un caso en el que el analizador sintáctico de DataType puede tener complejidad exponencial (detectado por un fuzzer). Esto cierra [#20096](https://github.com/ClickHouse/ClickHouse/issues/20096). [#20132](https://github.com/ClickHouse/ClickHouse/pull/20132) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Paralelización de SELECT con FINAL para una sola parte con nivel > 0 cuando la configuración `do_not_merge_across_partitions_select_final` es 1. [#19375](https://github.com/ClickHouse/ClickHouse/pull/19375) ([Kruglov Pavel](https://github.com/Avogar)).
* Rellenar solo las columnas solicitadas al consultar `system.parts` y `system.parts_columns`. Cierra [#19570](https://github.com/ClickHouse/ClickHouse/issues/19570). [#21035](https://github.com/ClickHouse/ClickHouse/pull/21035) ([Anmol Arora](https://github.com/anmolarora)).
* Optimizaciones algebraicas de expresiones aritméticas dentro de la función de agregación `avg`. Cierra [#20092](https://github.com/ClickHouse/ClickHouse/issues/20092). [#20183](https://github.com/ClickHouse/ClickHouse/pull/20183) ([flynn](https://github.com/ucasFL)).

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

* Métodos de compresión para funciones de tabla sin distinción entre mayúsculas y minúsculas. También se corrigió el método de compresión LZMA, que se verificaba en mayúsculas. [#21416](https://github.com/ClickHouse/ClickHouse/pull/21416) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Añade dos configuraciones para retrasar la inserción o generar un error cuando haya demasiadas partes inactivas. Esto es útil cuando el servidor no consigue limpiar las partes con la suficiente rapidez. [#20178](https://github.com/ClickHouse/ClickHouse/pull/20178) ([Amos Bird](https://github.com/amosbird)).
* Mejora la compatibilidad con clientes de mysql. 1. mysql jdbc 2. mycli. [#21367](https://github.com/ClickHouse/ClickHouse/pull/21367) ([Amos Bird](https://github.com/amosbird)).
* Se prohíbe eliminar una columna si una vista materializada hace referencia a ella. Cierra [#21164](https://github.com/ClickHouse/ClickHouse/issues/21164). [#21303](https://github.com/ClickHouse/ClickHouse/pull/21303) ([flynn](https://github.com/ucasFL)).
* La fuente de diccionario MySQL ahora reintentará los fallos de conexión inesperados (Lost connection to MySQL server during query), que a veces se producen en conexiones SSL/TLS. [#21237](https://github.com/ClickHouse/ClickHouse/pull/21237) ([Alexander Kazakov](https://github.com/Akazz)).
* Mejora de usabilidad: análisis más consistente de `DateTime64`: reconoce el caso en que un Unix timestamp con resolución de subsegundos se especifica como un entero escalado (como `1111111111222` en lugar de `1111111111.222`). Esto resuelve [#13194](https://github.com/ClickHouse/ClickHouse/issues/13194). [#21053](https://github.com/ClickHouse/ClickHouse/pull/21053) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Realizar únicamente la fusión de bloques ordenados en el iniciador con distributed\_group\_by\_no\_merge. [#20882](https://github.com/ClickHouse/ClickHouse/pull/20882) ([Azat Khuzhin](https://github.com/azat)).
* Al cargar la configuración del origen MySQL, ClickHouse ahora ordenará aleatoriamente la lista de réplicas con la misma prioridad para garantizar la lógica de round robin al seleccionar el endpoint de MySQL. Esto cierra [#20629](https://github.com/ClickHouse/ClickHouse/issues/20629). [#20632](https://github.com/ClickHouse/ClickHouse/pull/20632) ([Alexander Kazakov](https://github.com/Akazz)).
* La función 'reinterpretAs(x, Type)' pasó a llamarse 'reinterpret(x, Type)'. [#20611](https://github.com/ClickHouse/ClickHouse/pull/20611) ([Maksim Kita](https://github.com/kitaisreal)).
* Compatibilidad con `vhost` en el motor RabbitMQ [#20576](https://github.com/ClickHouse/ClickHouse/issues/20576). [#20596](https://github.com/ClickHouse/ClickHouse/pull/20596) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se mejoró la serialización para tipos de datos compuestos por Arrays y Tuples. Se mejoró la correspondencia entre los tipos de datos `enum` y el tipo `enum` de protobuf. Se corrigió la serialización del tipo de datos `Map`. Los valores omitidos ahora se asignan por defecto. [#20506](https://github.com/ClickHouse/ClickHouse/pull/20506) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió una condición de carrera entre la ejecución de tareas de DDL distribuido y la limpieza de la cola de DDL. Ahora, una tarea de DDL no puede eliminarse de ZooKeeper si hay workers activos. Corrige [#20016](https://github.com/ClickHouse/ClickHouse/issues/20016). [#20448](https://github.com/ClickHouse/ClickHouse/pull/20448) ([tavplubix](https://github.com/tavplubix)).
* Hacer que FQDN y otras funciones relacionadas con DNS funcionen correctamente en imágenes de Alpine. [#20336](https://github.com/ClickHouse/ClickHouse/pull/20336) ([filimonov](https://github.com/filimonov)).
* No permitir la evaluación anticipada de constantes en funciones explícitamente prohibidas. [#20303](https://github.com/ClickHouse/ClickHouse/pull/20303) ([Azat Khuzhin](https://github.com/azat)).
* La conversión implícita de entero a tipo Decimal podía completarse correctamente incluso cuando el valor entero no cabía en el tipo Decimal. Ahora lanza `ARGUMENT_OUT_OF_BOUND`. [#20232](https://github.com/ClickHouse/ClickHouse/pull/20232) ([tavplubix](https://github.com/tavplubix)).
* `SYSTEM FLUSH DISTRIBUTED` sin bloqueos. [#20215](https://github.com/ClickHouse/ClickHouse/pull/20215) ([Azat Khuzhin](https://github.com/azat)).
* Normalizar `count(constant)` y `sum(1)` a `count()`. Esto es necesario para el enrutamiento de consultas a proyecciones. [#20175](https://github.com/ClickHouse/ClickHouse/pull/20175) ([Amos Bird](https://github.com/amosbird)).
* Compatibilidad con todos los tipos enteros nativos en las funciones de bitmap. [#20171](https://github.com/ClickHouse/ClickHouse/pull/20171) ([Amos Bird](https://github.com/amosbird)).
* Se actualizaron `CacheDictionary`, `ComplexCacheDictionary`, `SSDCacheDictionary` y `SSDComplexKeyDictionary` para que utilicen LRUHashMap como índice subyacente. [#20164](https://github.com/ClickHouse/ClickHouse/pull/20164) ([Maksim Kita](https://github.com/kitaisreal)).
* La configuración `access_management` ahora puede configurarse al iniciar mediante `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT`; de forma predeterminada está deshabilitada (`0`), que era el valor anterior. [#20139](https://github.com/ClickHouse/ClickHouse/pull/20139) ([Marquitos](https://github.com/sonirico)).
* Se corrige toDateTime64(toDate()/toDateTime()) para DateTime64: se implementa el ajuste de límites de DateTime64 para que coincida con el comportamiento de DateTime. [#20131](https://github.com/ClickHouse/ClickHouse/pull/20131) ([Azat Khuzhin](https://github.com/azat)).
* Mejoras en las cuotas: SHOW TABLES ahora se considera una sola consulta en los cálculos de cuota, no dos. Las consultas SYSTEM ahora consumen cuota. Se corrige el cálculo del final de interval en el consumo de cuota. [#20106](https://github.com/ClickHouse/ClickHouse/pull/20106) ([Vitaly Baranov](https://github.com/vitlibar)).
* Admite expresiones `path IN (set)` en la tabla `system.zookeeper`. [#20105](https://github.com/ClickHouse/ClickHouse/pull/20105) ([小路](https://github.com/nicelulu)).
* Mostrar toda la información de las tablas `MaterializeMySQL` en `system.tables`. [#20051](https://github.com/ClickHouse/ClickHouse/pull/20051) ([Stig Bakken](https://github.com/stigsb)).
* Se corrigió una condición de carrera en el Diccionario ejecutable que solo podía producirse por un uso indebido (cuando el script devuelve datos ignorando la entrada). [#20045](https://github.com/ClickHouse/ClickHouse/pull/20045) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* El valor de la opción MYSQL\_OPT\_RECONNECT ahora puede controlarse mediante el parámetro "opt\_reconnect" en la sección de configuración de la réplica de MySQL. [#19998](https://github.com/ClickHouse/ClickHouse/pull/19998) ([Alexander Kazakov](https://github.com/Akazz)).
* Si el usuario llama a la función `JSONExtract` solicitando el tipo `Float32`, se permite una conversión inexacta al tipo de resultado. Por ejemplo, el número `0.1` en JSON es de doble precisión y no se puede representar en Float32, pero el usuario aun así quiere obtenerlo. Las versiones anteriores devolvían 0 para el tipo no `Nullable` y NULL para el tipo `Nullable` para indicar que la conversión no era precisa. La lógica era 100 % correcta, pero resultaba sorprendente para los usuarios y generaba preguntas. Esto cierra [#13962](https://github.com/ClickHouse/ClickHouse/issues/13962). [#19960](https://github.com/ClickHouse/ClickHouse/pull/19960) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadió la conversión de la estructura del bloque para INSERT en tablas distribuidas si no coincide. [#19947](https://github.com/ClickHouse/ClickHouse/pull/19947) ([Azat Khuzhin](https://github.com/azat)).
* Mejora para la tabla `system.distributed_ddl_queue`. Inicializa MaxDDLEntryID con el último valor después de reiniciar. Antes de este PR, MaxDDLEntryID permanecía en cero hasta que se procesara una nueva DDLTask. [#19924](https://github.com/ClickHouse/ClickHouse/pull/19924) ([Amos Bird](https://github.com/amosbird)).
* Mostrar las tablas de `MaterializeMySQL` en `system.parts`. [#19770](https://github.com/ClickHouse/ClickHouse/pull/19770) ([Stig Bakken](https://github.com/stigsb)).
* Se añadió una directiva de configuración independiente para el perfil `Buffer`. [#19721](https://github.com/ClickHouse/ClickHouse/pull/19721) ([Azat Khuzhin](https://github.com/azat)).
* Traslada a la cláusula WHERE las condiciones no relacionadas con JOIN. [#18720](https://github.com/ClickHouse/ClickHouse/issues/18720). [#19685](https://github.com/ClickHouse/ClickHouse/pull/19685) ([hexiaoting](https://github.com/hexiaoting)).
* Se añadió la capacidad de limitar la velocidad de INSERT en Distributed en función de la cantidad de bytes pendientes de envío asíncrono (se añadieron los ajustes `bytes_to_delay_insert`/`max_delay_to_insert` y `bytes_to_throw_insert` para el motor `Distributed`). [#19673](https://github.com/ClickHouse/ClickHouse/pull/19673) ([Azat Khuzhin](https://github.com/azat)).
* Corrige algunos casos excepcionales en los que se pueden ignorar los errores de escritura en los destructores. [#19451](https://github.com/ClickHouse/ClickHouse/pull/19451) ([Azat Khuzhin](https://github.com/azat)).
* Imprimir los frames inline en las trazas de pila para errores fatales. [#19317](https://github.com/ClickHouse/ClickHouse/pull/19317) ([Ivan](https://github.com/abyss7)).

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

* Se corrigen las reconexiones redundantes a ZooKeeper y la posibilidad de que haya dos sesiones activas para un mismo servidor de ClickHouse. Ambos problemas se introdujeron en #14678. [#21264](https://github.com/ClickHouse/ClickHouse/pull/21264) ([alesapin](https://github.com/alesapin)).
* Corrige el error `Bad cast from type ... to DB::ColumnLowCardinality` al insertar en una tabla con una columna `LowCardinality` desde el formato `Values`. Corrige #21140 [#21357](https://github.com/ClickHouse/ClickHouse/pull/21357) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un interbloqueo en las mutaciones `ALTER DELETE` de motores de tabla MergeTree no replicados cuando el predicado contiene la propia tabla. Corrige [#20558](https://github.com/ClickHouse/ClickHouse/issues/20558). [#21477](https://github.com/ClickHouse/ClickHouse/pull/21477) ([alesapin](https://github.com/alesapin)).
* Corrige SIGSEGV en las consultas distribuidas en caso de fallo. [#21434](https://github.com/ClickHouse/ClickHouse/pull/21434) ([Azat Khuzhin](https://github.com/azat)).
* Ahora, las consultas `ALTER MODIFY COLUMN` afectarán correctamente a los cambios en la clave de partición, los índices de omisión, los TTL, etc. Corrige [#13675](https://github.com/ClickHouse/ClickHouse/issues/13675). [#21334](https://github.com/ClickHouse/ClickHouse/pull/21334) ([alesapin](https://github.com/alesapin)).
* Se corrige un error relacionado con `join_use_nulls` y con la unión de `TOTALS` de subconsultas. Esto cierra [#19362](https://github.com/ClickHouse/ClickHouse/issues/19362) y [#21137](https://github.com/ClickHouse/ClickHouse/issues/21137). [#21248](https://github.com/ClickHouse/ClickHouse/pull/21248) ([vdimir](https://github.com/vdimir)).
* Se corrige un fallo en `EXPLAIN` para una consulta que incluye `UNION`. Corrige [#20876](https://github.com/ClickHouse/ClickHouse/issues/20876), [#21170](https://github.com/ClickHouse/ClickHouse/issues/21170). [#21246](https://github.com/ClickHouse/ClickHouse/pull/21246) ([flynn](https://github.com/ucasFL)).
* Ahora solo se permiten mutaciones en los motores de tabla que las admiten (familia MergeTree, Memory, MaterializedView). Los demás motores mostrarán un error más claro. Corrige [#21168](https://github.com/ClickHouse/ClickHouse/issues/21168). [#21183](https://github.com/ClickHouse/ClickHouse/pull/21183) ([alesapin](https://github.com/alesapin)).
* Soluciona [#21112](https://github.com/ClickHouse/ClickHouse/issues/21112). Se corrigió un error que podía causar duplicados con la consulta de inserción (si uno de los callbacks llegaba un poco tarde). [#21138](https://github.com/ClickHouse/ClickHouse/pull/21138) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Hacer que `input_format_null_as_default` surta efecto cuando los tipos sean Nullable. Esto corrige [#21116](https://github.com/ClickHouse/ClickHouse/issues/21116). [#21121](https://github.com/ClickHouse/ClickHouse/pull/21121) ([Amos Bird](https://github.com/amosbird)).
* Corrige un error relacionado con la conversión de Tuple a Map. Cierra [#21029](https://github.com/ClickHouse/ClickHouse/issues/21029). [#21120](https://github.com/ClickHouse/ClickHouse/pull/21120) ([hexiaoting](https://github.com/hexiaoting)).
* Se corrige la fuga de metadatos cuando se elimina un Replicated\*MergeTree con un clúster de ZooKeeper personalizado (no predeterminado). [#21119](https://github.com/ClickHouse/ClickHouse/pull/21119) ([fastio](https://github.com/fastio)).
* Corrige el problema de incompatibilidad de tipos al usar claves LowCardinality en joinGet. Esto soluciona [#21114](https://github.com/ClickHouse/ClickHouse/issues/21114). [#21117](https://github.com/ClickHouse/ClickHouse/pull/21117) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió que los valores default\_replica\_path y default\_replica\_name fueran inútiles en el motor Replicated(\*)MergeTree cuando este necesita especificar otros parámetros. [#21060](https://github.com/ClickHouse/ClickHouse/pull/21060) ([mxzlxy](https://github.com/mxzlxy)).
* Era posible acceder a memoria fuera de los límites al formatear un valor de tipo `DateTime64` fuera de rango especialmente diseñado. Esto cierra [#20494](https://github.com/ClickHouse/ClickHouse/issues/20494). Esto cierra [#20543](https://github.com/ClickHouse/ClickHouse/issues/20543). [#21023](https://github.com/ClickHouse/ClickHouse/pull/21023) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Bloquear las inserciones paralelas en StorageJoin. [#21009](https://github.com/ClickHouse/ClickHouse/pull/21009) ([vdimir](https://github.com/vdimir)).
* Se corrigió el comportamiento por el que `ALTER MODIFY COLUMN` creaba una mutación que se sabía de antemano que fallaría. [#21007](https://github.com/ClickHouse/ClickHouse/pull/21007) ([Anton Popov](https://github.com/CurtizJ)).
* Cierra [#9969](https://github.com/ClickHouse/ClickHouse/issues/9969). Se corrigió un error de compresión HTTP de Brotli que se reproducía con grandes volúmenes de datos, una estructura algo complicada y el formato de salida JSON. Se actualizó Brotli a la versión más reciente para incluir la "corrección de un acceso poco frecuente a datos no inicializados en el búfer circular". [#20991](https://github.com/ClickHouse/ClickHouse/pull/20991) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se corrige 'Empty task was returned from async task queue' al cancelar consultas. [#20881](https://github.com/ClickHouse/ClickHouse/pull/20881) ([Azat Khuzhin](https://github.com/azat)).
* La consulta `USE database;` no funcionaba al usar el cliente MySQL 5.7 para conectarse al servidor ClickHouse; ya se ha corregido. Corrige [#18926](https://github.com/ClickHouse/ClickHouse/issues/18926). [#20878](https://github.com/ClickHouse/ClickHouse/pull/20878) ([tavplubix](https://github.com/tavplubix)).
* Se corrige el uso del combinador `-Distinct` con el combinador `-State` en las funciones de agregación. [#20866](https://github.com/ClickHouse/ClickHouse/pull/20866) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige la subconsulta con las cláusulas UNION DISTINCT y LIMIT. Cierra [#20597](https://github.com/ClickHouse/ClickHouse/issues/20597). [#20610](https://github.com/ClickHouse/ClickHouse/pull/20610) ([flynn](https://github.com/ucasFL)).
* Se corrigió el comportamiento inconsistente del diccionario en consultas en las que se buscan claves inexistentes en el diccionario. [#20578](https://github.com/ClickHouse/ClickHouse/pull/20578) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrige el número de hilos para las subconsultas escalares y las subconsultas de índice (después de [#19007](https://github.com/ClickHouse/ClickHouse/issues/19007), siempre se usaba un solo hilo). Corrige [#20457](https://github.com/ClickHouse/ClickHouse/issues/20457), [#20512](https://github.com/ClickHouse/ClickHouse/issues/20512). [#20550](https://github.com/ClickHouse/ClickHouse/pull/20550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un fallo que podía producirse si se recibía un paquete desconocido procedente de una consulta remove (se introdujo en [#17868](https://github.com/ClickHouse/ClickHouse/issues/17868)). [#20547](https://github.com/ClickHouse/ClickHouse/pull/20547) ([Azat Khuzhin](https://github.com/azat)).
* Añade las comprobaciones adecuadas al analizar los nombres de directorio para async INSERT (corrige SIGSEGV). [#20498](https://github.com/ClickHouse/ClickHouse/pull/20498) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige un problema por el que la función `transform` no funciona correctamente con claves de punto flotante. Cierra [#20460](https://github.com/ClickHouse/ClickHouse/issues/20460). [#20479](https://github.com/ClickHouse/ClickHouse/pull/20479) ([flynn](https://github.com/ucasFL)).
* Se soluciona un bucle infinito al propagar aliases de WITH a subconsultas. Esto corrige [#20388](https://github.com/ClickHouse/ClickHouse/issues/20388). [#20476](https://github.com/ClickHouse/ClickHouse/pull/20476) ([Amos Bird](https://github.com/amosbird)).
* Se corrige la finalización anómala del servidor cuando el cliente http se desconecta. [#20464](https://github.com/ClickHouse/ClickHouse/pull/20464) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige `LOGICAL_ERROR` para `join_use_nulls=1` cuando JOIN contiene una constante de SELECT. [#20461](https://github.com/ClickHouse/ClickHouse/pull/20461) ([Azat Khuzhin](https://github.com/azat)).
* Comprobar si se usa la función de tabla `view` en la lista de expresiones y lanzar un error. Esto corrige [#20342](https://github.com/ClickHouse/ClickHouse/issues/20342). [#20350](https://github.com/ClickHouse/ClickHouse/pull/20350) ([Amos Bird](https://github.com/amosbird)).
* Se evita una desreferenciación no válida en el diccionario RANGE\_HASHED(). [#20345](https://github.com/ClickHouse/ClickHouse/pull/20345) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige una desreferenciación de puntero nulo con `join_use_nulls=1`. [#20344](https://github.com/ClickHouse/ClickHouse/pull/20344) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el resultado incorrecto de las operaciones binarias entre dos decimales constantes con distinta escala. Se corrige [#20283](https://github.com/ClickHouse/ClickHouse/issues/20283). [#20339](https://github.com/ClickHouse/ClickHouse/pull/20339) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigen los reintentos demasiado frecuentes de tareas en segundo plano fallidas en la familia de motores de tablas `ReplicatedMergeTree`. Esto podía dar lugar a un logging excesivamente detallado y a un mayor uso de CPU. Corrige [#20203](https://github.com/ClickHouse/ClickHouse/issues/20203). [#20335](https://github.com/ClickHouse/ClickHouse/pull/20335) ([alesapin](https://github.com/alesapin)).
* Limitar `DROP` o `RENAME` de la columna de versión en los motores de tabla `*CollapsingMergeTree` y `ReplacingMergeTree`. [#20300](https://github.com/ClickHouse/ClickHouse/pull/20300) ([alesapin](https://github.com/alesapin)).
* Se corrigió el comportamiento por el que, en caso de JSON dañado, se intentaba leer el archivo completo en memoria, lo que provocaba una excepción del asignador de memoria. Corrige [#19719](https://github.com/ClickHouse/ClickHouse/issues/19719). [#20286](https://github.com/ClickHouse/ClickHouse/pull/20286) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrige una excepción durante la fusión vertical en motores de tabla de la familia `MergeTree` que no permiten realizar fusiones verticales. Corrige [#20259](https://github.com/ClickHouse/ClickHouse/issues/20259). [#20279](https://github.com/ClickHouse/ClickHouse/pull/20279) ([alesapin](https://github.com/alesapin)).
* Se corrige un fallo poco frecuente del servidor al recargar la configuración durante el apagado. Corrige [#19689](https://github.com/ClickHouse/ClickHouse/issues/19689). [#20224](https://github.com/ClickHouse/ClickHouse/pull/20224) ([alesapin](https://github.com/alesapin)).
* Se corrige la CTE al usarla en INSERT SELECT. Esto corrige [#20187](https://github.com/ClickHouse/ClickHouse/issues/20187) y [#20195](https://github.com/ClickHouse/ClickHouse/issues/20195). [#20211](https://github.com/ClickHouse/ClickHouse/pull/20211) ([Amos Bird](https://github.com/amosbird)).
* Soluciona [#19314](https://github.com/ClickHouse/ClickHouse/issues/19314). [#20156](https://github.com/ClickHouse/ClickHouse/pull/20156) ([Ivan](https://github.com/abyss7)).
* corregida la función `toMinute` para que gestione correctamente la timezone especial. [#20149](https://github.com/ClickHouse/ClickHouse/pull/20149) ([keenwolf](https://github.com/keen-wolf)).
* Corrige la caída del servidor después de una consulta con la función `if`, con tipo `Tuple` en el resultado de las ramas then/else. El tipo `Tuple` debe contener `Array` u otro tipo complejo. Corrige [#18356](https://github.com/ClickHouse/ClickHouse/issues/18356). [#20133](https://github.com/ClickHouse/ClickHouse/pull/20133) ([alesapin](https://github.com/alesapin)).
* El motor de tablas `MongoDB` ahora establece la conexión solo cuando va a leer datos. `ATTACH TABLE` ya no intentará conectarse. [#20110](https://github.com/ClickHouse/ClickHouse/pull/20110) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrección de un error en StorageJoin. [#20079](https://github.com/ClickHouse/ClickHouse/pull/20079) ([vdimir](https://github.com/vdimir)).
* Se corrigió el caso en el que, al calcular el módulo de la división de un número negativo entre un divisor pequeño, el tipo de dato resultante no era lo bastante grande para representar el resultado negativo. Esto cierra [#20052](https://github.com/ClickHouse/ClickHouse/issues/20052). [#20067](https://github.com/ClickHouse/ClickHouse/pull/20067) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* MaterializeMySQL: Se corrige la replicación de sentencias que actualizan varias tablas. [#20066](https://github.com/ClickHouse/ClickHouse/pull/20066) ([Håvard Kvålen](https://github.com/havardk)).
* Evitar "Connection refused" en Docker durante la ejecución del script de inicialización. [#20012](https://github.com/ClickHouse/ClickHouse/pull/20012) ([filimonov](https://github.com/filimonov)).
* `EmbeddedRocksDB` es un motor de almacenamiento experimental. Se corrigió el problema de la falta de una verificación de tipos adecuada. Se simplificó el código. Esto cierra [#19967](https://github.com/ClickHouse/ClickHouse/issues/19967). [#19972](https://github.com/ClickHouse/ClickHouse/pull/19972) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige un fallo de segmentación en la función `fromModifiedJulianDay` cuando el argumento es de tipo `Nullable(T)` para cualquier tipo integral distinto de Int32. [#19959](https://github.com/ClickHouse/ClickHouse/pull/19959) ([PHO](https://github.com/depressed-pho)).
* Corrección del fallo del índice BloomFilter. Corrige [#19757](https://github.com/ClickHouse/ClickHouse/issues/19757). [#19884](https://github.com/ClickHouse/ClickHouse/pull/19884) ([Maksim Kita](https://github.com/kitaisreal)).
* Podía producirse un interbloqueo si system.text\_log está habilitado. Esto corrige [#19874](https://github.com/ClickHouse/ClickHouse/issues/19874). [#19875](https://github.com/ClickHouse/ClickHouse/pull/19875) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el inicio del servidor con tablas que tienen expresiones por defecto que contienen dictGet(). Ahora se puede obtener el tipo de retorno de dictGet() sin cargar el diccionario. [#19805](https://github.com/ClickHouse/ClickHouse/pull/19805) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige la excepción de abortado de clickhouse-client al ejecutar solo `select`. [#19790](https://github.com/ClickHouse/ClickHouse/pull/19790) ([taiyang-li](https://github.com/taiyang-li)).
* Corrige un error por el que el movimiento de partes a la tabla de destino podía fallar al iniciar varios `clickhouse-copiers`. [#19743](https://github.com/ClickHouse/ClickHouse/pull/19743) ([madianjun](https://github.com/mdianjun)).
* El hilo en segundo plano que ejecuta consultas `ON CLUSTER` podía quedarse bloqueado al esperar a que una tabla replicada eliminada completara alguna operación. Ya está corregido. [#19684](https://github.com/ClickHouse/ClickHouse/pull/19684) ([yiguolei](https://github.com/yiguolei)).

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

* Permitir compilar ClickHouse con AVX-2 habilitado globalmente. Ofrece ligeras mejoras de rendimiento en CPU modernas. No se recomienda para producción y, por ahora, no será compatible como compilación oficial. [#20180](https://github.com/ClickHouse/ClickHouse/pull/20180) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corregir algunos de los problemas detectados por Coverity. Véase [#19964](https://github.com/ClickHouse/ClickHouse/issues/19964). [#20010](https://github.com/ClickHouse/ClickHouse/pull/20010) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permitir iniciar con un binario modificado en gdb. En la versión anterior, si se establecía un punto de interrupción en gdb antes de iniciar, el servidor se negaba a arrancar debido a un fallo en la comprobación de integridad. [#21258](https://github.com/ClickHouse/ClickHouse/pull/21258) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Añadir una prueba para distintos métodos de compresión en Kafka. [#21111](https://github.com/ClickHouse/ClickHouse/pull/21111) ([filimonov](https://github.com/filimonov)).
* Se corrigió un conflicto de puertos en la prueba test\_storage\_kerberized\_hdfs. [#19974](https://github.com/ClickHouse/ClickHouse/pull/19974) ([Ilya Yatsishin](https://github.com/qoega)).
* Imprimir `stdout` y `stderr` en el registro cuando no se pueda iniciar Docker en las pruebas de integración. Antes de este PR, en este caso aparecía un mensaje de error muy breve que no ayudaba a investigar los problemas. [#20631](https://github.com/ClickHouse/ClickHouse/pull/20631) ([Vitaly Baranov](https://github.com/vitlibar)).

<div id="clickhouse-release-212">
  ## lanzamiento de ClickHouse 21.2
</div>

<div id="clickhouse-release-v21228-stable-2021-02-07">
  ### Lanzamiento de ClickHouse v21.2.2.8-stable, 2021-02-07
</div>

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

* Ya no se permiten las funciones a nivel de bits (`bitAnd`, `bitOr`, etc.) con argumentos de coma flotante. Ahora es necesario realizar una conversión explícita a entero. [#19853](https://github.com/ClickHouse/ClickHouse/pull/19853) ([Azat Khuzhin](https://github.com/azat)).
* Ya no se permiten `lcm`/`gcd` para valores de coma flotante. [#19532](https://github.com/ClickHouse/ClickHouse/pull/19532) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el seguimiento de memoria para `OPTIMIZE TABLE`/merges; ahora se tienen en cuenta los límites de memoria de la consulta y el sampling para `OPTIMIZE TABLE`/merges. [#18772](https://github.com/ClickHouse/ClickHouse/pull/18772) ([Azat Khuzhin](https://github.com/azat)).
* No se permiten columnas de coma flotante como clave de partición; consulte [#18421](https://github.com/ClickHouse/ClickHouse/issues/18421#event-4147046255). [#18464](https://github.com/ClickHouse/ClickHouse/pull/18464) ([hexiaoting](https://github.com/hexiaoting)).
* Los paréntesis excesivos en las definiciones de tipos ya no son compatibles; ejemplo: `Array((UInt8))`.

<div id="new-feature">
  #### Nueva característica
</div>

* Se añadió el motor de tabla `PostgreSQL` (tanto para select como para insert, con compatibilidad con arrays multidimensionales), también como función de tabla. Se añadió la fuente de diccionario `PostgreSQL`. Se añadió el motor de base de datos `PostgreSQL`. [#18554](https://github.com/ClickHouse/ClickHouse/pull/18554) ([Kseniia Sumarokova](https://github.com/kssenii)).
* El tipo de dato `Nested` ahora admite niveles arbitrarios de anidamiento. Se introdujeron subcolumnas de tipos complejos, como `size0` en `Array`, `null` en `Nullable` y los nombres de los elementos de `Tuple`, que pueden leerse sin necesidad de leer la columna completa. [#17310](https://github.com/ClickHouse/ClickHouse/pull/17310) ([Anton Popov](https://github.com/CurtizJ)).
* Se añadió soporte para `Nullable` en `FlatDictionary`, `HashedDictionary`, `ComplexKeyHashedDictionary`, `DirectDictionary`, `ComplexKeyDirectDictionary` y `RangeHashedDictionary`. [#18236](https://github.com/ClickHouse/ClickHouse/pull/18236) ([Maksim Kita](https://github.com/kitaisreal)).
* Agrega una nueva tabla llamada `system.distributed_ddl_queue` que muestra las consultas de la cola del worker de DDL. [#17656](https://github.com/ClickHouse/ClickHouse/pull/17656) ([Bharat Nallan](https://github.com/bharatnc)).
* Se agregó compatibilidad para asignar nombres de grupos LDAP y, en general, valores de atributos a roles locales para usuarios de directorios de usuarios LDAP. [#17211](https://github.com/ClickHouse/ClickHouse/pull/17211) ([Denis Glazachev](https://github.com/traceon)).
* Se admite `insert` en la función de tabla `cluster` y, para las funciones de tabla `remote` y `cluster`, también se admite distribuir los datos entre nodos especificando una clave de sharding. Cierra [#16752](https://github.com/ClickHouse/ClickHouse/issues/16752). [#18264](https://github.com/ClickHouse/ClickHouse/pull/18264) ([flynn](https://github.com/ucasFL)).
* Se agregó la función `decodeXMLComponent` para decodificar caracteres en XML. Ejemplo: `SELECT decodeXMLComponent('Hello,&quot;world&quot;!')` [#17659](https://github.com/ClickHouse/ClickHouse/issues/17659). [#18542](https://github.com/ClickHouse/ClickHouse/pull/18542) ([nauta](https://github.com/nautaa)).
* Se añadieron las funciones `parseDateTimeBestEffortUSOrZero`, `parseDateTimeBestEffortUSOrNull`. [#19712](https://github.com/ClickHouse/ClickHouse/pull/19712) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añade la función matemática `sign`. [#19527](https://github.com/ClickHouse/ClickHouse/pull/19527) ([flynn](https://github.com/ucasFL)).
* Añadir a system.query\_log información sobre las funcionalidades utilizadas (funciones, motores de tablas, etc.). [#18495](https://github.com/ClickHouse/ClickHouse/issues/18495). [#19371](https://github.com/ClickHouse/ClickHouse/pull/19371) ([Kseniia Sumarokova](https://github.com/kssenii)).
* La función `formatDateTime` admite el modificador `%Q` para dar formato a la fecha como trimestre. [#19224](https://github.com/ClickHouse/ClickHouse/pull/19224) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Se admite el atajo de teclado MetaKey+Enter en la UI de play. [#19012](https://github.com/ClickHouse/ClickHouse/pull/19012) ([sundyli](https://github.com/sundy-li)).
* Añade tres funciones para el tipo de dato Map: 1. `mapContains(map, key)` para comprobar si `map.keys` incluye la segunda clave del parámetro `key`. 2. `mapKeys(map)` devuelve todas las claves en formato Array 3. `mapValues(map)` devuelve todos los valores en formato Array. [#18788](https://github.com/ClickHouse/ClickHouse/pull/18788) ([hexiaoting](https://github.com/hexiaoting)).
* Añade la configuración `log_comment` relacionada con [#18494](https://github.com/ClickHouse/ClickHouse/issues/18494). [#18549](https://github.com/ClickHouse/ClickHouse/pull/18549) ([Zijie Lu](https://github.com/TszKitLo40)).
* Se añadió compatibilidad con argumentos de tipo tuple en las funciones `argMin` y `argMax`. [#17359](https://github.com/ClickHouse/ClickHouse/pull/17359) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Soporte para la sintaxis `EXISTS VIEW`. [#18552](https://github.com/ClickHouse/ClickHouse/pull/18552) ([Du Chuan](https://github.com/spongedu)).
* Se añade la sintaxis `SELECT ALL`. Cierra [#18706](https://github.com/ClickHouse/ClickHouse/issues/18706). [#18723](https://github.com/ClickHouse/ClickHouse/pull/18723) ([flynn](https://github.com/ucasFL)).

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

* Eliminación más rápida de partes al reducir el número de llamadas al sistema `stat`. Esto recupera una optimización que existía tiempo atrás. Interfaz más segura para `IDisk`. Esto cierra [#19065](https://github.com/ClickHouse/ClickHouse/issues/19065). [#19086](https://github.com/ClickHouse/ClickHouse/pull/19086) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Los alias declarados en la sentencia `WITH` se usan correctamente en el análisis de índices. Consultas como `WITH column AS alias SELECT ... WHERE alias = ...` ahora pueden usar el índice. [#18896](https://github.com/ClickHouse/ClickHouse/pull/18896) ([Amos Bird](https://github.com/amosbird)).
* Se añade `optimize_alias_column_prediction` (activado de forma predeterminada), que: - tendrá en cuenta las columnas con alias en WHERE durante la poda de particiones y la omisión de datos mediante índices secundarios; - tendrá en cuenta las columnas con alias en WHERE para consultas de conteo triviales de `optimize_trivial_count`; - tendrá en cuenta las columnas con alias en GROUP BY/ORDER BY para `optimize_aggregation_in_order`/`optimize_read_in_order`. [#16995](https://github.com/ClickHouse/ClickHouse/pull/16995) ([sundyli](https://github.com/sundy-li)).
* Acelera la función de agregación `sum`. La mejora solo es visible en benchmarks sintéticos y no resulta muy práctica. [#19216](https://github.com/ClickHouse/ClickHouse/pull/19216) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Actualiza libc++ y usa otro ABI para ofrecer un mejor rendimiento. [#18914](https://github.com/ClickHouse/ClickHouse/pull/18914) ([Danila Kutenin](https://github.com/danlark1)).
* Reescribe las funciones `sumIf()` y `sum(if())` como `countIf()` cuando son lógicamente equivalentes. [#17041](https://github.com/ClickHouse/ClickHouse/pull/17041) ([flynn](https://github.com/ucasFL)).
* Usa un pool de conexiones para S3, controlado por la configuración `s3_max_connections`. [#13405](https://github.com/ClickHouse/ClickHouse/pull/13405) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Añade compatibilidad con la opción long de zstd para mejorar la compresión de las columnas de cadenas y ahorrar espacio. [#17184](https://github.com/ClickHouse/ClickHouse/pull/17184) ([ygrek](https://github.com/ygrek)).
* Mejora ligeramente la latencia del servidor al eliminar el acceso a la configuración en cada conexión. [#19863](https://github.com/ClickHouse/ClickHouse/pull/19863) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Reduce la contención de bloqueos en múltiples capas del engine `Buffer`. [#19379](https://github.com/ClickHouse/ClickHouse/pull/19379) ([Azat Khuzhin](https://github.com/azat)).
* Admite dividir el paso `Filter` del plan de consulta en un par `Expression + Filter`. Junto con la optimización de fusión `Expression + Expression` ([#17458](https://github.com/ClickHouse/ClickHouse/issues/17458)), esto puede retrasar la ejecución de algunas expresiones hasta después del paso `Filter`. [#19253](https://github.com/ClickHouse/ClickHouse/pull/19253) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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

* `SELECT count() FROM table` ahora puede ejecutarse si se puede seleccionar al menos una columna cualquiera de la `table`. Este PR corrige [#10639](https://github.com/ClickHouse/ClickHouse/issues/10639). [#18233](https://github.com/ClickHouse/ClickHouse/pull/18233) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se configura el juego de caracteres como `utf8mb4` al interactuar con servidores MySQL remotos. Corrige [#19795](https://github.com/ClickHouse/ClickHouse/issues/19795). [#19800](https://github.com/ClickHouse/ClickHouse/pull/19800) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* La función de tabla `S3` ahora admite el modo de compresión `auto` (detección automática). Esto resuelve [#18754](https://github.com/ClickHouse/ClickHouse/issues/18754). [#19793](https://github.com/ClickHouse/ClickHouse/pull/19793) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se muestran correctamente los argumentos infinitos para la función `formatReadableTimeDelta`. En versiones anteriores, había una conversión implícita a un valor entero específico de la implementación. [#19791](https://github.com/ClickHouse/ClickHouse/pull/19791) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* La función de tabla `S3` usará la región global si no se puede determinar con exactitud la región. Esto cierra [#10998](https://github.com/ClickHouse/ClickHouse/issues/10998). [#19750](https://github.com/ClickHouse/ClickHouse/pull/19750) ([Vladimir Chebotarev](https://github.com/excitoon)).
* En las consultas distribuidas, si la opción `async_socket_for_remote` está habilitada, era posible provocar un desbordamiento de pila, al menos en la configuración de compilación de depuración, si se utilizaba en una tabla un tipo de dato con un anidamiento muy profundo (p. ej., `Array(Array(Array(...more...)))`). Esto corrige [#19108](https://github.com/ClickHouse/ClickHouse/issues/19108). Este cambio introduce una incompatibilidad menor con versiones anteriores: ya no se admiten paréntesis superfluos en las definiciones de tipos; ejemplo: `Array((UInt8))`. [#19736](https://github.com/ClickHouse/ClickHouse/pull/19736) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Añadir un pool independiente para brókeres de mensajes (RabbitMQ y Kafka). [#19722](https://github.com/ClickHouse/ClickHouse/pull/19722) ([Azat Khuzhin](https://github.com/azat)).
* Corrige un caso poco frecuente en el que se excede el límite `max_number_of_merges_with_ttl_in_pool` (se pueden asignar más fusiones con TTL) en MergeTree no replicado. [#19708](https://github.com/ClickHouse/ClickHouse/pull/19708) ([alesapin](https://github.com/alesapin)).
* Diccionario: mejor mensaje de error al analizar atributos. [#19678](https://github.com/ClickHouse/ClickHouse/pull/19678) ([Maksim Kita](https://github.com/kitaisreal)).
* Añade una opción para desactivar la validación de las sumas de comprobación durante la lectura. Nunca debe usarse en producción. No espere obtener ningún beneficio al desactivarla. Solo puede usarse para experimentos y benchmarks. Esta configuración solo es aplicable a tablas de la familia MergeTree. Las sumas de comprobación siempre se validan en otros motores de tabla y al recibir datos a través de la red. Según mis observaciones, no hay ninguna diferencia de rendimiento o es inferior al 0,5 %. [#19588](https://github.com/ClickHouse/ClickHouse/pull/19588) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite resultados constantes en la función `multiIf`. [#19533](https://github.com/ClickHouse/ClickHouse/pull/19533) ([Maksim Kita](https://github.com/kitaisreal)).
* Habilita las funciones `length`/`empty`/`notEmpty` para el tipo de dato Map; `length` devuelve el número de claves del Map. [#19530](https://github.com/ClickHouse/ClickHouse/pull/19530) ([taiyang-li](https://github.com/taiyang-li)).
* Se añadió la opción `--reconnect` a `clickhouse-benchmark`. Cuando se especifica esta opción, se reconectará antes de cada petición. Esto es necesario para las pruebas. [#19872](https://github.com/ClickHouse/ClickHouse/pull/19872) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Compatibilidad con la nueva ubicación del archivo `.debug`. Esto corrige [#19348](https://github.com/ClickHouse/ClickHouse/issues/19348). [#19520](https://github.com/ClickHouse/ClickHouse/pull/19520) ([Amos Bird](https://github.com/amosbird)).
* La función `toIPv6` interpreta direcciones `IPv4`. [#19518](https://github.com/ClickHouse/ClickHouse/pull/19518) ([Bharat Nallan](https://github.com/bharatnc)).
* Se añade el campo `http_referer` a `system.query_log`, `system.processes`, etc. Esto cierra [#19389](https://github.com/ClickHouse/ClickHouse/issues/19389). [#19390](https://github.com/ClickHouse/ClickHouse/pull/19390) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora la compatibilidad con MySQL al hacer que más funciones no distingan entre mayúsculas y minúsculas y al añadir alias. [#19387](https://github.com/ClickHouse/ClickHouse/pull/19387) ([Daniil Kondratyev](https://github.com/dankondr)).
* Se añaden métricas para los tipos de partes de MergeTree (Wide/Compact/InMemory). [#19381](https://github.com/ClickHouse/ClickHouse/pull/19381) ([Azat Khuzhin](https://github.com/azat)).
* Permitir la ejecución de Docker con un UID arbitrario. [#19374](https://github.com/ClickHouse/ClickHouse/pull/19374) ([filimonov](https://github.com/filimonov)).
* Se corrigió la alineación incorrecta de los valores del tipo de dato `IPv4` en los formatos Pretty. Estaban alineados a la derecha, no a la izquierda. Con esto se cierra [#19184](https://github.com/ClickHouse/ClickHouse/issues/19184). [#19339](https://github.com/ClickHouse/ClickHouse/pull/19339) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite cambiar `max_server_memory_usage` sin reiniciar. Esto soluciona [#18154](https://github.com/ClickHouse/ClickHouse/issues/18154). [#19186](https://github.com/ClickHouse/ClickHouse/pull/19186) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* La excepción que se produce al llamar a la función `bar` con determinado argumento NaN puede resultar algo engañosa en versiones anteriores. Esto corrige [#19088](https://github.com/ClickHouse/ClickHouse/issues/19088). [#19107](https://github.com/ClickHouse/ClickHouse/pull/19107) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se establecen explícitamente los valores fijos (101) para el uid / gid del usuario y el grupo de clickhouse en las imágenes de clickhouse-server. [#19096](https://github.com/ClickHouse/ClickHouse/pull/19096) ([filimonov](https://github.com/filimonov)).
* Se corrigió el error `PeekableReadBuffer: Memory limit exceed` al insertar datos con cadenas muy grandes. Corrige [#18690](https://github.com/ClickHouse/ClickHouse/issues/18690). [#18979](https://github.com/ClickHouse/ClickHouse/pull/18979) ([tavplubix](https://github.com/tavplubix)).
* Imagen de Docker: varias mejoras en el entrypoint de clickhouse-server. [#18954](https://github.com/ClickHouse/ClickHouse/pull/18954) ([filimonov](https://github.com/filimonov)).
* Se añaden `normalizeQueryKeepNames` y `normalizedQueryHashKeepNames` para normalizar consultas sin enmascarar los nombres largos con `?`. Esto ayuda a analizar mejor los registros de consultas complejas. [#18910](https://github.com/ClickHouse/ClickHouse/pull/18910) ([Amos Bird](https://github.com/amosbird)).
* Comprobar la suma de verificación por bloque del lote distribuido en el remitente antes de enviarlo (sin leer el archivo dos veces; las sumas de verificación se comprobarán durante la lectura); esto evitará que el `INSERT` se quede bloqueado en el receiver (si hay un archivo `.bin` truncado en el remitente). Evitar leer los archivos `.bin` dos veces en `INSERT` por lotes (era necesario para calcular filas/bytes y tener en cuenta el squashing; ahora esta información se incluye en el header y se mantiene la compatibilidad con versiones anteriores). [#18853](https://github.com/ClickHouse/ClickHouse/pull/18853) ([Azat Khuzhin](https://github.com/azat)).
* Corrige problemas con RIGHT y FULL JOIN de tablas con estados de funciones de agregación. En versiones anteriores se lanzaba una excepción relacionada con el método `cloneResized`. [#18818](https://github.com/ClickHouse/ClickHouse/pull/18818) ([templarzq](https://github.com/templarzq)).
* Se añadieron configuraciones de endpoints de S3 basadas en prefijos. [#18812](https://github.com/ClickHouse/ClickHouse/pull/18812) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se añade compatibilidad con los tipos de argumento \[UInt8, UInt16, UInt32, UInt64] para las funciones bitmapTransform, bitmapSubsetInRange, bitmapSubsetLimit y bitmapContains. Esto cierra [#18713](https://github.com/ClickHouse/ClickHouse/issues/18713). [#18791](https://github.com/ClickHouse/ClickHouse/pull/18791) ([sundyli](https://github.com/sundy-li)).
* Permitir asignar más alias a las CTE (expresiones de tabla comunes). Propagar la CSE (eliminación de subexpresiones comunes) a las subconsultas del mismo nivel cuando `enable_global_with_statement = 1`. Esto corrige [#17378](https://github.com/ClickHouse/ClickHouse/issues/17378) . Esto corrige [https://github.com/ClickHouse/ClickHouse/pull/16575#issuecomment-753416235](https://github.com/ClickHouse/ClickHouse/pull/16575#issuecomment-753416235) . [#18684](https://github.com/ClickHouse/ClickHouse/pull/18684) ([Amos Bird](https://github.com/amosbird)).
* Actualizar librdkafka a v1.6.0-RC2. Corrige [#18668](https://github.com/ClickHouse/ClickHouse/issues/18668). [#18671](https://github.com/ClickHouse/ClickHouse/pull/18671) ([filimonov](https://github.com/filimonov)).
* En caso de excepciones inesperadas, se reinicia automáticamente el hilo en segundo plano responsable de ejecutar consultas DDL distribuidas. Corrige [#17991](https://github.com/ClickHouse/ClickHouse/issues/17991). [#18285](https://github.com/ClickHouse/ClickHouse/pull/18285) ([徐炘](https://github.com/weeds085490)).
* Se actualizó el SDK de AWS para C++ para utilizar regiones globales en S3. [#17870](https://github.com/ClickHouse/ClickHouse/pull/17870) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se añadió compatibilidad con la cláusula `WITH ... [AND] [PERIODIC] REFRESH [interval_in_sec]` para crear tablas `LIVE VIEW`. [#14822](https://github.com/ClickHouse/ClickHouse/pull/14822) ([vzakaznikov](https://github.com/vzakaznikov)).
* Restringir las consultas `MODIFY TTL` para las tablas `MergeTree` creadas con la sintaxis antigua. Anteriormente, la consulta se ejecutaba correctamente, pero en realidad no tenía ningún efecto. [#19064](https://github.com/ClickHouse/ClickHouse/pull/19064) ([Anton Popov](https://github.com/CurtizJ)).

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

* Se corrige el análisis de índices en funciones binarias con un argumento constante, que provocaba resultados de consulta incorrectos. Esto corrige [#18364](https://github.com/ClickHouse/ClickHouse/issues/18364). [#18373](https://github.com/ClickHouse/ClickHouse/pull/18373) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió el inicio del servidor con tablas que tienen expresiones predeterminadas que contienen `dictGet()`. Ahora se puede obtener el tipo de retorno de `dictGet()` sin cargar el Diccionario. [#19805](https://github.com/ClickHouse/ClickHouse/pull/19805) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige el fallo del servidor después de una consulta con la función `if` cuando el resultado de las ramas then/else es de tipo `Tuple`. El tipo `Tuple` debe contener `Array` u otro tipo complejo. Corrige [#18356](https://github.com/ClickHouse/ClickHouse/issues/18356). [#20133](https://github.com/ClickHouse/ClickHouse/pull/20133) ([alesapin](https://github.com/alesapin)).
* `MaterializeMySQL` (función experimental): Se corrige la replicación de las sentencias que actualizan varias tablas. [#20066](https://github.com/ClickHouse/ClickHouse/pull/20066) ([Håvard Kvålen](https://github.com/havardk)).
* Evita "Connection refused" en Docker durante la ejecución del script de inicialización. [#20012](https://github.com/ClickHouse/ClickHouse/pull/20012) ([filimonov](https://github.com/filimonov)).
* `EmbeddedRocksDB` es un motor de almacenamiento experimental. Se corrigió el problema de la falta de una comprobación de tipos adecuada. Se simplificó el código. Esto resuelve [#19967](https://github.com/ClickHouse/ClickHouse/issues/19967). [#19972](https://github.com/ClickHouse/ClickHouse/pull/19972) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un fallo de segmentación en la función `fromModifiedJulianDay` cuando el tipo de argumento es `Nullable(T)` para cualquier tipo entero distinto de Int32. [#19959](https://github.com/ClickHouse/ClickHouse/pull/19959) ([PHO](https://github.com/depressed-pho)).
* La función `greatCircleAngle` devolvía resultados inexactos en versiones anteriores. Esto soluciona [#19769](https://github.com/ClickHouse/ClickHouse/issues/19769). [#19789](https://github.com/ClickHouse/ClickHouse/pull/19789) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige un error poco frecuente por el cual algunas operaciones replicadas (como `mutation`) no pueden procesar ciertas partes tras una corrupción de datos. Corrige [#19593](https://github.com/ClickHouse/ClickHouse/issues/19593). [#19702](https://github.com/ClickHouse/ClickHouse/pull/19702) ([alesapin](https://github.com/alesapin)).
* El hilo en segundo plano que ejecuta consultas `ON CLUSTER` podía quedarse bloqueado esperando a que una tabla replicada ya eliminada hiciera algo. Se ha corregido. [#19684](https://github.com/ClickHouse/ClickHouse/pull/19684) ([yiguolei](https://github.com/yiguolei)).
* Se corrigió la deserialización incorrecta de la descripción de las columnas. Esto hacía imposible el `INSERT` en una tabla con una columna llamada `\`. [#19479](https://github.com/ClickHouse/ClickHouse/pull/19479) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Marcar como dañado el lote distribuido en caso de que haya un bloque de datos vacío en uno de los archivos. [#19449](https://github.com/ClickHouse/ClickHouse/pull/19449) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigió un error muy poco frecuente que podía hacer que una mutación se quedara bloqueada después de `DROP/DETACH/REPLACE/MOVE PARTITION`. Ya se había corregido parcialmente en [#15537](https://github.com/ClickHouse/ClickHouse/issues/15537) en la mayoría de los casos. [#19443](https://github.com/ClickHouse/ClickHouse/pull/19443) ([tavplubix](https://github.com/tavplubix)).
* Corrige el posible error `Extremes transform was already added to pipeline`. Corrige [#14100](https://github.com/ClickHouse/ClickHouse/issues/14100). [#19430](https://github.com/ClickHouse/ClickHouse/pull/19430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige el valor predeterminado en los tipos de JOIN con un valor predeterminado distinto de cero (p. ej., algunos Enum). Cierra [#18197](https://github.com/ClickHouse/ClickHouse/issues/18197). [#19360](https://github.com/ClickHouse/ClickHouse/pull/19360) ([vdimir](https://github.com/vdimir)).
* No marcar como dañado el archivo de marcas del envío distribuido al llegar a EOF. [#19290](https://github.com/ClickHouse/ClickHouse/pull/19290) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la fuga del descriptor de archivo del pipe para `async_socket_for_remote`. [#19153](https://github.com/ClickHouse/ClickHouse/pull/19153) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la lectura infinita de un archivo en formato `ORC` (introducida en [#10580](https://github.com/ClickHouse/ClickHouse/issues/10580)). Corrige [#19095](https://github.com/ClickHouse/ClickHouse/issues/19095). [#19134](https://github.com/ClickHouse/ClickHouse/pull/19134) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un problema en el escritor de datos de MergeTree que puede dar lugar a `marks` con un tamaño mayor que el de la granularidad fija. Corrige [#18913](https://github.com/ClickHouse/ClickHouse/issues/18913). [#19123](https://github.com/ClickHouse/ClickHouse/pull/19123) ([alesapin](https://github.com/alesapin)).
* Se corrige un error de inicio por el que ClickHouse no podía leer el códec de compresión de `LowCardinality(Nullable(...))` y lanzaba la excepción `Attempt to read after EOF`. Corrige [#18340](https://github.com/ClickHouse/ClickHouse/issues/18340). [#19101](https://github.com/ClickHouse/ClickHouse/pull/19101) ([alesapin](https://github.com/alesapin)).
* Simplifica la implementación de `tupleHammingDistance`. Se añaden compatibilidad con tuplas de cualquier longitud, siempre que sea la misma. Corrige [#19029](https://github.com/ClickHouse/ClickHouse/issues/19029). [#19084](https://github.com/ClickHouse/ClickHouse/pull/19084) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Asegúrese de que `groupUniqArray` devuelva el tipo correcto para un argumento de tipo Enum. Esto cierra [#17875](https://github.com/ClickHouse/ClickHouse/issues/17875). [#19019](https://github.com/ClickHouse/ClickHouse/pull/19019) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige el posible error `Expected single dictionary argument for function` al usar la función `ignore` con el argumento `LowCardinality`. Corrige [#14275](https://github.com/ClickHouse/ClickHouse/issues/14275). [#19016](https://github.com/ClickHouse/ClickHouse/pull/19016) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la inserción de la columna `LowCardinality` en una tabla con el motor `TinyLog`. Se corrige [#18629](https://github.com/ClickHouse/ClickHouse/issues/18629). [#19010](https://github.com/ClickHouse/ClickHouse/pull/19010) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un problema menor en JOIN: Join intenta materializar columnas const, pero en otras partes de nuestro código se espera que lo sean. [#18982](https://github.com/ClickHouse/ClickHouse/pull/18982) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se deshabilita `optimize_move_functions_out_of_any` porque la optimización no siempre es correcta. Esto cierra [#18051](https://github.com/ClickHouse/ClickHouse/issues/18051). Esto cierra [#18973](https://github.com/ClickHouse/ClickHouse/issues/18973). [#18981](https://github.com/ClickHouse/ClickHouse/pull/18981) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige una posible excepción `QueryPipeline stream: different number of columns` debida a la fusión de los pasos `Expression` del plan de consulta. Corrige [#18190](https://github.com/ClickHouse/ClickHouse/issues/18190). [#18980](https://github.com/ClickHouse/ClickHouse/pull/18980) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un interbloqueo muy poco frecuente durante el apagado. [#18977](https://github.com/ClickHouse/ClickHouse/pull/18977) ([tavplubix](https://github.com/tavplubix)).
* Se corrigieron fallos poco frecuentes cuando el servidor se quedaba sin memoria. [#18976](https://github.com/ClickHouse/ClickHouse/pull/18976) ([tavplubix](https://github.com/tavplubix)).
* Soluciona el comportamiento incorrecto por el que la consulta `ALTER TABLE ... DROP PART 'part_name'` elimina todos los bloques de deduplicación de toda la partición. Corrige [#18874](https://github.com/ClickHouse/ClickHouse/issues/18874). [#18969](https://github.com/ClickHouse/ClickHouse/pull/18969) ([alesapin](https://github.com/alesapin)).
* Se corrigió el problema [#18894](https://github.com/ClickHouse/ClickHouse/issues/18894): se añadió una comprobación para evitar una excepción cuando un alias de columna largo (del estilo 'table.column', normalmente generado automáticamente por herramientas de BI como Looker) coincide con un nombre de tabla largo. [#18968](https://github.com/ClickHouse/ClickHouse/pull/18968) ([Daniel Qin](https://github.com/mathfool)).
* Se corrige el error `Task was not found in task queue` (solo posible en consultas remotas, con `async_socket_for_remote = 1`). [#18964](https://github.com/ClickHouse/ClickHouse/pull/18964) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un error por el que una mutation con texto escapado (como `ALTER ... UPDATE e = CAST('foo', 'Enum8(\'foo\' = 1')`) se serializaba incorrectamente. Corrige [#18878](https://github.com/ClickHouse/ClickHouse/issues/18878). [#18944](https://github.com/ClickHouse/ClickHouse/pull/18944) ([alesapin](https://github.com/alesapin)).
* ATTACH PARTITION reiniciará las mutaciones. [#18804](https://github.com/ClickHouse/ClickHouse/issues/18804). [#18935](https://github.com/ClickHouse/ClickHouse/pull/18935) ([fastio](https://github.com/fastio)).
* Se corrige un problema con `bitmapOrCardinality` que puede provocar la desreferenciación de un `nullptr`. Esto cierra [#18911](https://github.com/ClickHouse/ClickHouse/issues/18911). [#18912](https://github.com/ClickHouse/ClickHouse/pull/18912) ([sundyli](https://github.com/sundy-li)).
* Se corrigió el error `Attempt to read after eof` al intentar hacer `CAST` de `NULL` desde `Nullable(String)` a `Nullable(Decimal(P, S))`. Ahora, la función `CAST` devuelve `NULL` cuando no puede analizar un decimal a partir de una cadena anulable. Corrige [#7690](https://github.com/ClickHouse/ClickHouse/issues/7690). [#18718](https://github.com/ClickHouse/ClickHouse/pull/18718) ([Winter Zhang](https://github.com/zhang2014)).
* Se corrige un problema en la conversión de tipos de datos del motor MySQL. [#18124](https://github.com/ClickHouse/ClickHouse/pull/18124) ([bo zeng](https://github.com/mis98zb)).
* Corregida la excepción de `abort()` en clickhouse-client al ejecutar solo `select`. [#19790](https://github.com/ClickHouse/ClickHouse/pull/19790) ([taiyang-li](https://github.com/taiyang-li)).

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

* Ejecutar [SQLancer](https://twitter.com/RiggerManuel/status/1352345625480884228) (fuzzer lógico de SQL) en CI. [#19006](https://github.com/ClickHouse/ClickHouse/pull/19006) ([Ilya Yatsishin](https://github.com/qoega)).
* Query Fuzzer aplicará fuzzing más exhaustivo a las pruebas recién añadidas. Esto cierra [#18916](https://github.com/ClickHouse/ClickHouse/issues/18916). [#19185](https://github.com/ClickHouse/ClickHouse/pull/19185) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Integración con [Big List of Naughty Strings](https://github.com/minimaxir/big-list-of-naughty-strings/) para mejorar el fuzzing. [#19480](https://github.com/ClickHouse/ClickHouse/pull/19480) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añadieron pruebas de integración ejecutadas con MSan. [#18974](https://github.com/ClickHouse/ClickHouse/pull/18974) ([alesapin](https://github.com/alesapin)).
* Se corrigieron errores de MemorySanitizer en cyrus-sasl y musl. [#19821](https://github.com/ClickHouse/ClickHouse/pull/19821) ([Ilya Yatsishin](https://github.com/qoega)).
* La comprobación de argumentos insuficientes en la función `positionCaseInsensitiveUTF8` activaba el sanitizador de direcciones. [#19720](https://github.com/ClickHouse/ClickHouse/pull/19720) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se eliminó `--project-directory` de docker-compose en la prueba de integración. Se corrigió el formato de los logs del contenedor de Docker. [#19706](https://github.com/ClickHouse/ClickHouse/pull/19706) ([Ilya Yatsishin](https://github.com/qoega)).
* Se facilitó la generación de macros.xml para las pruebas de integración. Ya no hay logging excesivo de dicttoxml. El proyecto dicttoxml lleva más de 5 años sin actividad. [#19697](https://github.com/ClickHouse/ClickHouse/pull/19697) ([Ilya Yatsishin](https://github.com/qoega)).
* Se permite habilitar o deshabilitar explícitamente el watchdog mediante la variable de entorno `CLICKHOUSE_WATCHDOG_ENABLE`. De forma predeterminada, está habilitado si el servidor no está conectado a una terminal. [#19522](https://github.com/ClickHouse/ClickHouse/pull/19522) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se permite compilar ClickHouse con soporte para Kafka en arm64. [#19369](https://github.com/ClickHouse/ClickHouse/pull/19369) ([filimonov](https://github.com/filimonov)).
* Se permite compilar librdkafka sin ssl. [#19337](https://github.com/ClickHouse/ClickHouse/pull/19337) ([filimonov](https://github.com/filimonov)).
* Se restauró la entrada de Kafka en las builds de FreeBSD. [#18924](https://github.com/ClickHouse/ClickHouse/pull/18924) ([Alexandre Snarskii](https://github.com/snar)).
* Se corrigió una posible desreferenciación de nullptr en la función de tabla `VALUES`. [#19357](https://github.com/ClickHouse/ClickHouse/pull/19357) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se evitan informes de UBSan en la función `arrayElement`, `substring` y `arraySum`. Corrige [#19305](https://github.com/ClickHouse/ClickHouse/issues/19305). Corrige [#19287](https://github.com/ClickHouse/ClickHouse/issues/19287). Esto cierra [#19336](https://github.com/ClickHouse/ClickHouse/issues/19336). [#19347](https://github.com/ClickHouse/ClickHouse/pull/19347) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-211">
  ## lanzamiento de ClickHouse 21.1
</div>

<div id="clickhouse-release-v211332-stable-2021-02-03">
  ### Lanzamiento de ClickHouse v21.1.3.32-stable, 2021-02-03
</div>

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

* Corrección de un fallo del índice BloomFilter. Corrige [#19757](https://github.com/ClickHouse/ClickHouse/issues/19757). [#19884](https://github.com/ClickHouse/ClickHouse/pull/19884) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige un fallo al aplicar predicados a una subconsulta union distinct. Esto corrige [#19855](https://github.com/ClickHouse/ClickHouse/issues/19855). [#19861](https://github.com/ClickHouse/ClickHouse/pull/19861) ([Amos Bird](https://github.com/amosbird)).
* Se corrige el filtrado para valores UInt8 mayores que 127. [#19799](https://github.com/ClickHouse/ClickHouse/pull/19799) ([Anton Popov](https://github.com/CurtizJ)).
* En versiones anteriores, los argumentos inusuales de la función arrayEnumerateUniq podían provocar un bloqueo o un bucle infinito. Se cierra [#19787](https://github.com/ClickHouse/ClickHouse/issues/19787). [#19788](https://github.com/ClickHouse/ClickHouse/pull/19788) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un desbordamiento de pila al usar una comparación precisa entre un tipo aritmético y el tipo String. [#19773](https://github.com/ClickHouse/ClickHouse/pull/19773) ([tavplubix](https://github.com/tavplubix)).
* Se corrige un fallo que se producía al usar un nombre de columna anidada en `WHERE` o `PREWHERE`. Corrige [#19755](https://github.com/ClickHouse/ClickHouse/issues/19755). [#19763](https://github.com/ClickHouse/ClickHouse/pull/19763) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un fallo de segmentación en la función `bitmapAndnot`. Corrige [#19668](https://github.com/ClickHouse/ClickHouse/issues/19668). [#19713](https://github.com/ClickHouse/ClickHouse/pull/19713) ([Maksim Kita](https://github.com/kitaisreal)).
* Algunas funciones con enteros de gran tamaño pueden causar un fallo de segmentación. Los enteros de gran tamaño son una funcionalidad experimental. Esto cierra [#19667](https://github.com/ClickHouse/ClickHouse/issues/19667). [#19672](https://github.com/ClickHouse/ClickHouse/pull/19672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Soluciona el resultado incorrecto de la función `neighbor` para el argumento `LowCardinality`. Soluciona [#10333](https://github.com/ClickHouse/ClickHouse/issues/10333). [#19617](https://github.com/ClickHouse/ClickHouse/pull/19617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un uso tras la liberación de CompressedWriteBuffer en Connection después de la desconexión. [#19599](https://github.com/ClickHouse/ClickHouse/pull/19599) ([Azat Khuzhin](https://github.com/azat)).
* La consulta `DROP/DETACH TABLE table ON CLUSTER cluster SYNC` podía quedarse bloqueada; ya se ha corregido. Corrige [#19568](https://github.com/ClickHouse/ClickHouse/issues/19568). [#19572](https://github.com/ClickHouse/ClickHouse/pull/19572) ([tavplubix](https://github.com/tavplubix)).
* Corrección de la expresión de id en la consulta CREATE DICTIONARY. [#19571](https://github.com/ClickHouse/ClickHouse/pull/19571) ([Maksim Kita](https://github.com/kitaisreal)).
* Se corrigió SIGSEGV con merge\_tree\_min\_rows\_for\_concurrent\_read/merge\_tree\_min\_bytes\_for\_concurrent\_read=0/UINT64\_MAX. [#19528](https://github.com/ClickHouse/ClickHouse/pull/19528) ([Azat Khuzhin](https://github.com/azat)).
* Era posible un desbordamiento de búfer (al leer memoria) si se llamaba a la función `addMonth` con argumentos especialmente manipulados. Esto corrige [#19441](https://github.com/ClickHouse/ClickHouse/issues/19441). Esto corrige [#19413](https://github.com/ClickHouse/ClickHouse/issues/19413). [#19472](https://github.com/ClickHouse/ClickHouse/pull/19472) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Era posible leer memoria no inicializada en las funciones encrypt/decrypt si se pasaba una cadena vacía como IV. Con esto se cierra [#19391](https://github.com/ClickHouse/ClickHouse/issues/19391). [#19397](https://github.com/ClickHouse/ClickHouse/pull/19397) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Soluciona un posible desbordamiento de búfer en la biblioteca Uber H3. Consulta [https://github.com/uber/h3/issues/392](https://github.com/uber/h3/issues/392). Esto cierra [#19219](https://github.com/ClickHouse/ClickHouse/issues/19219). [#19383](https://github.com/ClickHouse/ClickHouse/pull/19383) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió la columna \_state de system.parts (LOGICAL\_ERROR al consultar esta columna debido a un orden incorrecto). [#19346](https://github.com/ClickHouse/ClickHouse/pull/19346) ([Azat Khuzhin](https://github.com/azat)).
* Se corrigieron un posible resultado erróneo o un fallo de segmentación en la agregación cuando una vista materializada y su tabla de destino tienen estructuras diferentes. Corrige [#18063](https://github.com/ClickHouse/ClickHouse/issues/18063). [#19322](https://github.com/ClickHouse/ClickHouse/pull/19322) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió el error `Cannot convert column now64() because it is constant but values of constants are different in source and result`. Continuación de [#7156](https://github.com/ClickHouse/ClickHouse/issues/7156). [#19316](https://github.com/ClickHouse/ClickHouse/pull/19316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un error por el que las consultas `ALTER` y `DROP` concurrentes podían quedar bloqueadas al procesar una tabla ReplicatedMergeTree. [#19237](https://github.com/ClickHouse/ClickHouse/pull/19237) ([alesapin](https://github.com/alesapin)).
* Se corrigió el error `There is no checkpoint` al insertar datos mediante la interfaz HTTP con el formato `Template` o `CustomSeparated`. Corrige [#19021](https://github.com/ClickHouse/ClickHouse/issues/19021). [#19072](https://github.com/ClickHouse/ClickHouse/pull/19072) ([tavplubix](https://github.com/tavplubix)).
* Deshabilitar el plegado de constantes para las subconsultas en la fase de análisis cuando no se pueda calcular el resultado. [#18446](https://github.com/ClickHouse/ClickHouse/pull/18446) ([Azat Khuzhin](https://github.com/azat)).
* La mutación podía quedarse bloqueada esperando alguna parte inexistente después de `MOVE` o `REPLACE PARTITION` o, en casos raros, después de `DETACH` o `DROP PARTITION`. Ya se corrigió. [#15537](https://github.com/ClickHouse/ClickHouse/pull/15537) ([tavplubix](https://github.com/tavplubix)).

<div id="clickhouse-release-v211215-stable-2021-01-18">
  ### Lanzamiento de ClickHouse v21.1.2.15-stable 2021-01-18
</div>

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

* La configuración `input_format_null_as_default` está habilitada de forma predeterminada. [#17525](https://github.com/ClickHouse/ClickHouse/pull/17525) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se comprueban las restricciones de configuración para los ajustes de perfil definidos en la configuración. El servidor no arrancará si users.xml contiene ajustes que no cumplan las restricciones correspondientes. [#18486](https://github.com/ClickHouse/ClickHouse/pull/18486) ([tavplubix](https://github.com/tavplubix)).
* Se restringe `ALTER MODIFY SETTING` para impedir que cambie configuraciones de almacenamiento que afectan a las partes de datos (`write_final_mark` y `enable_mixed_granularity_parts`). [#18306](https://github.com/ClickHouse/ClickHouse/pull/18306) ([Amos Bird](https://github.com/amosbird)).
* `insert_quorum_parallel` se establece en 1 de forma predeterminada. Es bastante más cómodo de usar que las inserciones con quórum "sequential". Pero si depende de la consistencia secuencial, debe volver a establecer esta configuración en cero. [#17567](https://github.com/ClickHouse/ClickHouse/pull/17567) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se elimina la función `sumburConsistentHash`. Esto cierra [#18120](https://github.com/ClickHouse/ClickHouse/issues/18120). [#18656](https://github.com/ClickHouse/ClickHouse/pull/18656) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se eliminaron las funciones de agregación `timeSeriesGroupSum`, `timeSeriesGroupRateSum` porque un amigo mío dijo que nunca funcionaron. Esto corrige [#16869](https://github.com/ClickHouse/ClickHouse/issues/16869). Si ha tenido suerte usando estas funciones, envíe un correo electrónico a [feedback@clickhouse.com](mailto:feedback@clickhouse.com). [#17423](https://github.com/ClickHouse/ClickHouse/pull/17423) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se prohíbe `toUnixTimestamp(Date())` (antes simplemente devolvía la representación UInt16 de Date). [#17376](https://github.com/ClickHouse/ClickHouse/pull/17376) ([Azat Khuzhin](https://github.com/azat)).
* Se permite usar tipos enteros extendidos (`Int128`, `Int256`, `UInt256`) en las funciones `avg` y `avgWeighted`. También se permite usar distintos tipos (entero, decimal, punto flotante) para el valor y el peso en la función `avgWeighted`. Este es un cambio incompatible con versiones anteriores: ahora las funciones `avg` y `avgWeighted` siempre devuelven `Float64` (como está documentado). Antes de este cambio, el tipo de retorno para argumentos `Decimal` también era `Decimal`. [#15419](https://github.com/ClickHouse/ClickHouse/pull/15419) ([Mike](https://github.com/myrrc)).
* La expresión `toUUID(N)` ya no funciona. Sustitúyala por `toUUID('00000000-0000-0000-0000-000000000000')`. Este cambio se debe a los resultados poco evidentes de `toUUID(N)` cuando N es distinto de cero.
* Se rechazan los certificados SSL con "key usage" incorrecto. En versiones anteriores solían funcionar. Véase [#19262](https://github.com/ClickHouse/ClickHouse/issues/19262).
* Se eliminaron de la configuración predeterminada las referencias `incl` al archivo de sustituciones (`/etc/metrika.xml`) (`<remote_servers>`, `<zookeeper>`, `<macros>`, `<compression>`, `<networks>`). Si estaba usando el archivo de sustituciones y dependía de esas referencias implícitas, debe volver a añadirlas manualmente y de forma explícita agregando las secciones correspondientes con atributos `incl="..."` antes de la actualización. Véase [#18740](https://github.com/ClickHouse/ClickHouse/pull/18740) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Nueva característica
</div>

* Se implementó el protocolo gRPC en ClickHouse. [#15111](https://github.com/ClickHouse/ClickHouse/pull/15111) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permite usar varios clusters de ZooKeeper. [#17070](https://github.com/ClickHouse/ClickHouse/pull/17070) ([fastio](https://github.com/fastio)).
* Se implementaron las consultas `REPLACE TABLE` y `CREATE OR REPLACE TABLE`. [#18521](https://github.com/ClickHouse/ClickHouse/pull/18521) ([tavplubix](https://github.com/tavplubix)).
* Implementa `UNION DISTINCT` y trata la cláusula `UNION` sin especificar como `UNION DISTINCT` de forma predeterminada. Añade una configuración `union_default_mode` que permite tratarla como `UNION ALL` o exigir que el modo se especifique explícitamente. [#16338](https://github.com/ClickHouse/ClickHouse/pull/16338) ([flynn](https://github.com/ucasFL)).
* Se añadió la función `accurateCastOrNull`. Esto resuelve [#10290](https://github.com/ClickHouse/ClickHouse/issues/10290). Se añadieron conversiones de tipo en las expresiones `x IN (subquery)`. Esto resuelve [#10266](https://github.com/ClickHouse/ClickHouse/issues/10266). [#16724](https://github.com/ClickHouse/ClickHouse/pull/16724) ([Maksim Kita](https://github.com/kitaisreal)).
* El Diccionario IP admite directamente los tipos `IPv4` / `IPv6`. [#17571](https://github.com/ClickHouse/ClickHouse/pull/17571) ([vdimir](https://github.com/vdimir)).
* El Diccionario IP admite la recuperación por clave. Resuelve [#18241](https://github.com/ClickHouse/ClickHouse/issues/18241). [#18480](https://github.com/ClickHouse/ClickHouse/pull/18480) ([vdimir](https://github.com/vdimir)).
* Añade compatibilidad con compresión y descompresión `*.zst` para importar y exportar datos. Permite usar `*.zst` en la función `file()` y `Content-encoding: zstd` en el cliente HTTP. Esto cierra [#16791 ](https://github.com/ClickHouse/ClickHouse/issues/16791). [#17144](https://github.com/ClickHouse/ClickHouse/pull/17144) ([Abi Palagashvili](https://github.com/fibersel)).
* Se añadieron las funciones de agregación `mannWitneyUTest`, `studentTTest` y `welchTTest`. Se refactorizó un poco `rankCorr`. [#16883](https://github.com/ClickHouse/ClickHouse/pull/16883) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añadieron las funciones `countMatches`/`countMatchesCaseInsensitive`. [#17459](https://github.com/ClickHouse/ClickHouse/pull/17459) ([Azat Khuzhin](https://github.com/azat)).
* Se implementan `countSubstrings()`/`countSubstringsCaseInsensitive()`/`countSubstringsCaseInsensitiveUTF8()` (Cuenta el número de apariciones de subcadenas). [#17347](https://github.com/ClickHouse/ClickHouse/pull/17347) ([Azat Khuzhin](https://github.com/azat)).
* Se añade información sobre las bases de datos, tablas y columnas utilizadas en system.query\_log. Se añaden los campos `query_kind` y `normalized_query_hash`. [#17726](https://github.com/ClickHouse/ClickHouse/pull/17726) ([Amos Bird](https://github.com/amosbird)).
* Agrega una opción de configuración `optimize_on_insert`. Cuando está habilitada, realiza la misma transformación en el bloque de datos INSERTado que si se hubiera hecho un merge de este bloque (p. ej., Replacing, Collapsing, Aggregating...). Esta configuración está habilitada de forma predeterminada. Esto puede influir en el comportamiento de la vista materializada y de MaterializeMySQL (consulta la descripción detallada). Esto cierra [#10683](https://github.com/ClickHouse/ClickHouse/issues/10683). [#16954](https://github.com/ClickHouse/ClickHouse/pull/16954) ([Kruglov Pavel](https://github.com/Avogar)).
* Autenticación Kerberos para HDFS. [#16621](https://github.com/ClickHouse/ClickHouse/pull/16621) ([Ilya Golshtein](https://github.com/ilejn)).
* Se admite la sentencia `SHOW SETTINGS` para mostrar parámetros de system.settings. También se admiten la sentencia `SHOW CHANGED SETTINGS` y la cláusula `LIKE/ILIKE`. [#18056](https://github.com/ClickHouse/ClickHouse/pull/18056) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* La función `position` ahora admite la sintaxis `POSITION(needle IN haystack)` para garantizar la compatibilidad con SQL. Esto cierra [#18701](https://github.com/ClickHouse/ClickHouse/issues/18701). ... [#18779](https://github.com/ClickHouse/ClickHouse/pull/18779) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Ahora hay una nueva configuración de almacenamiento, `max_partitions_to_read`, para las tablas de la familia MergeTree. Limita el número máximo de particiones a las que se puede acceder en una sola consulta. También se ha añadido una configuración de usuario, `force_max_partition_limit`, para imponer esta restricción. [#18712](https://github.com/ClickHouse/ClickHouse/pull/18712) ([Amos Bird](https://github.com/amosbird)).
* Añade la columna `query_id` a `system.part_log` para las partes insertadas. Cierra [#10097](https://github.com/ClickHouse/ClickHouse/issues/10097). [#18644](https://github.com/ClickHouse/ClickHouse/pull/18644) ([flynn](https://github.com/ucasFL)).
* Permite CREATE TABLE AS SELECT con especificación de columnas. Ejemplo `CREATE TABLE t1 (x String) ENGINE = Memory AS SELECT 1;`. [#18060](https://github.com/ClickHouse/ClickHouse/pull/18060) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadieron las funciones de agregación `arrayMin`, `arrayMax` y `arrayAvg`. [#18032](https://github.com/ClickHouse/ClickHouse/pull/18032) ([Maksim Kita](https://github.com/kitaisreal)).
* Se implementó la consulta `ATTACH TABLE name FROM 'path/to/data/' (col1 Type1, ...`. Crea una tabla nueva con la estructura proporcionada y adjunta los datos de la tabla desde el directorio especificado en `user_files`. [#17903](https://github.com/ClickHouse/ClickHouse/pull/17903) ([tavplubix](https://github.com/tavplubix)).
* Se añade compatibilidad con mutaciones en StorageMemory. Esto cierra [#9117](https://github.com/ClickHouse/ClickHouse/issues/9117). [#15127](https://github.com/ClickHouse/ClickHouse/pull/15127) ([flynn](https://github.com/ucasFL)).
* Se añadió compatibilidad con la sintaxis `EXISTS DATABASE name`. [#18458](https://github.com/ClickHouse/ClickHouse/pull/18458) ([Du Chuan](https://github.com/spongedu)).
* Se añade compatibilidad con las funciones integradas `isIPv4String` && `isIPv6String`, como en [MySQL](https://github.com/ClickHouse/ClickHouse/compare/master...spongedu:support_is_ipv4?expand=1). [#18349](https://github.com/ClickHouse/ClickHouse/pull/18349) ([Du Chuan](https://github.com/spongedu)).
* Se añade una nueva configuración `insert_distributed_one_random_shard = 1` para permitir la inserción en una tabla distribuida con varios segmentos sin clave de distribución. [#18294](https://github.com/ClickHouse/ClickHouse/pull/18294) ([Amos Bird](https://github.com/amosbird)).
* Se agregan los ajustes `min_compress_block_size` y `max_compress_block_size` a MergeTreeSettings, que tienen mayor prioridad que los ajustes globales y entran en vigor cuando se establecen. cierra [13890](https://github.com/ClickHouse/ClickHouse/issues/13890). [#17867](https://github.com/ClickHouse/ClickHouse/pull/17867) ([flynn](https://github.com/ucasFL)).
* Se añade soporte para bitmaps roaring de 64 bits. [#17858](https://github.com/ClickHouse/ClickHouse/pull/17858) ([Andy Yang](https://github.com/andyyzh)).
* Se amplió la sintaxis de `OPTIMIZE ... DEDUPLICATE` para permitir una lista explícita (o implícita, con asterisco/transformadores de columnas) de columnas en las que comprobar si hay duplicados. ... [#17846](https://github.com/ClickHouse/ClickHouse/pull/17846) ([Vasily Nemkov](https://github.com/Enmk)).
* Se añadieron las funciones `toModifiedJulianDay`, `fromModifiedJulianDay`, `toModifiedJulianDayOrNull` y `fromModifiedJulianDayOrNull`. Estas funciones convierten entre una fecha del calendario gregoriano proléptico y un número de día juliano modificado. [#17750](https://github.com/ClickHouse/ClickHouse/pull/17750) ([PHO](https://github.com/depressed-pho)).
* Se agregó la posibilidad de usar una lista personalizada de TLD: se agregaron las funciones `firstSignificantSubdomainCustom`, `cutToFirstSignificantSubdomainCustom`. [#17748](https://github.com/ClickHouse/ClickHouse/pull/17748) ([Azat Khuzhin](https://github.com/azat)).
* Se añade compatibilidad con el protocolo `PROXYv1` para encapsular la interfaz TCP nativa. Permite asociar las cuotas a la dirección IP reenviada por el proxy (se aplica a la dirección `PROXYv1` y a `X-Forwarded-For` de la interfaz HTTP). Esto resulta útil cuando se proporciona acceso a ClickHouse solo a través de un proxy de confianza (p. ej., CloudFlare), pero se desea contabilizar los recursos de los usuarios por sus direcciones IP originales. Esto corrige [#17268](https://github.com/ClickHouse/ClickHouse/issues/17268). [#17707](https://github.com/ClickHouse/ClickHouse/pull/17707) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ahora, clickhouse-client permite abrir `EDITOR` para editar comandos. `Alt-Shift-E`. [#17665](https://github.com/ClickHouse/ClickHouse/pull/17665) ([Amos Bird](https://github.com/amosbird)).
* Se añade la función `encodeXMLComponent` para escapar caracteres y colocar una cadena en un nodo de texto o atributo XML. [#17659](https://github.com/ClickHouse/ClickHouse/pull/17659) ([nauta](https://github.com/nautaa)).
* Se introduce la sintaxis `DETACH TABLE/VIEW ... PERMANENTLY` para que, después de reiniciar, la tabla no vuelva a aparecer automáticamente (solo si se solicita explícitamente). La tabla aún puede volver a adjuntarse usando la sintaxis corta ATTACH TABLE. Implementa [#5555](https://github.com/ClickHouse/ClickHouse/issues/5555). Corrige [#13850](https://github.com/ClickHouse/ClickHouse/issues/13850). [#17642](https://github.com/ClickHouse/ClickHouse/pull/17642) ([filimonov](https://github.com/filimonov)).
* Añade métricas asíncronas sobre la cantidad total de filas, bytes y partes en las tablas MergeTree. Esto corrige [#11714](https://github.com/ClickHouse/ClickHouse/issues/11714). [#17639](https://github.com/ClickHouse/ClickHouse/pull/17639) ([flynn](https://github.com/ucasFL)).
* Se añaden las opciones de configuración `limit` y `offset` para la paginación fuera de SQL: [#16176](https://github.com/ClickHouse/ClickHouse/issues/16176) Son útiles para crear API. Estas dos opciones de configuración afectarán a la consulta SELECT como si se añadieran así: `select * from (your_original_select_query) t limit xxx offset xxx;`. [#17633](https://github.com/ClickHouse/ClickHouse/pull/17633) ([hexiaoting](https://github.com/hexiaoting)).
* Se incorpora un nuevo combinador de agregación: `-SimpleState` para crear tipos `SimpleAggregateFunction` mediante una consulta. Es útil para definir una MaterializedView con el motor AggregatingMergeTree, y también beneficiará a las proyecciones. [#16853](https://github.com/ClickHouse/ClickHouse/pull/16853) ([Amos Bird](https://github.com/amosbird)).
* Se añadió el parámetro `queries-file` a `clickhouse-client` y `clickhouse-local`. [#15930](https://github.com/ClickHouse/ClickHouse/pull/15930) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió el parámetro `query` a `clickhouse-benchmark`. [#17832](https://github.com/ClickHouse/ClickHouse/pull/17832) ([Maksim Kita](https://github.com/kitaisreal)).
* `EXPLAIN AST` ahora admite consultas que no sean `SELECT`. [#18136](https://github.com/ClickHouse/ClickHouse/pull/18136) ([taiyang-li](https://github.com/taiyang-li)).

<div id="experimental-feature-3">
  #### Característica experimental
</div>

* Se añadieron funciones para calcular minHash y simHash de n-gramas de texto y shingles. Están pensadas para buscar casi duplicados. También se añadieron las funciones `bitHammingDistance` y `tupleHammingDistance`. [#7649](https://github.com/ClickHouse/ClickHouse/pull/7649) ([flynn](https://github.com/ucasFL)).
* Se añadió el nuevo tipo de dato `Map`. Consulte [#1841](https://github.com/ClickHouse/ClickHouse/issues/1841). La primera versión de `Map` solo admite el tipo `String` para la clave y el valor. [#15806](https://github.com/ClickHouse/ClickHouse/pull/15806) ([hexiaoting](https://github.com/hexiaoting)).
* Se implementó un analizador sintáctico SQL alternativo basado en el runtime de ANTLR4 y generado a partir de una gramática EBNF. [#11298](https://github.com/ClickHouse/ClickHouse/pull/11298) ([Ivan](https://github.com/abyss7)).

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

* Nueva implementación del Diccionario IP, con menor consumo de memoria, mejor rendimiento en algunos casos y errores corregidos. [#16804](https://github.com/ClickHouse/ClickHouse/pull/16804) ([vdimir](https://github.com/vdimir)).
* Formateo paralelo para la exportación de datos. [#11617](https://github.com/ClickHouse/ClickHouse/pull/11617) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Integración de LDAP: Se añadió el parámetro `verification_cooldown` en la configuración de conexión del servidor LDAP para permitir almacenar en caché los intentos de "bind" correctos durante un período configurable. [#15988](https://github.com/ClickHouse/ClickHouse/pull/15988) ([Denis Glazachev](https://github.com/traceon)).
* Se añade la opción `--no-system-table` para que `clickhouse-local` se ejecute sin tablas del sistema. Esto evita la inicialización de `DateLUT`, que al arrancar puede llevar un tiempo apreciable (decenas de milisegundos). [#18899](https://github.com/ClickHouse/ClickHouse/pull/18899) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se reemplaza `PODArray` por `PODArrayWithStackMemory` en `AggregateFunctionWindowFunnelData` para mejorar el rendimiento de la función `windowFunnel`. [#18817](https://github.com/ClickHouse/ClickHouse/pull/18817) ([flynn](https://github.com/ucasFL)).
* No enviar bloques vacíos a los segmentos al realizar un INSERT síncrono en una tabla distribuida. Se cierra [#14571](https://github.com/ClickHouse/ClickHouse/issues/14571). [#18775](https://github.com/ClickHouse/ClickHouse/pull/18775) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Lectura optimizada para StorageMemory. [#18052](https://github.com/ClickHouse/ClickHouse/pull/18052) ([Maksim Kita](https://github.com/kitaisreal)).
* Uso del algoritmo Dragonbox para convertir float a cadena en lugar de ryu. Esto mejora significativamente el rendimiento de la conversión de float a cadena. [#17831](https://github.com/ClickHouse/ClickHouse/pull/17831) ([Maksim Kita](https://github.com/kitaisreal)).
* Se aceleró la implementación de `IPv6CIDRToRange`. [#17569](https://github.com/ClickHouse/ClickHouse/pull/17569) ([vdimir](https://github.com/vdimir)).
* Se añadió la configuración `remerge_sort_lowered_memory_bytes_ratio` (si el uso de memoria tras la remezcla no se reduce en esta proporción, se deshabilitará la remezcla). [#17539](https://github.com/ClickHouse/ClickHouse/pull/17539) ([Azat Khuzhin](https://github.com/azat)).
* Mejora del rendimiento de AggregatingMergeTree con SimpleAggregateFunction(String) en PK. [#17109](https://github.com/ClickHouse/ClickHouse/pull/17109) ([Azat Khuzhin](https://github.com/azat)).
* Ahora, el combinador `-If` se ha desvirtualizado y `count` está correctamente vectorizado. Corresponde a [este PR](https://github.com/ClickHouse/ClickHouse/pull/17041). [#17043](https://github.com/ClickHouse/ClickHouse/pull/17043) ([Amos Bird](https://github.com/amosbird)).
* Mejora el rendimiento de lectura de las tablas `Merge` sobre un gran número de tablas `MergeTree`. Corrige [#7748](https://github.com/ClickHouse/ClickHouse/issues/7748). [#16988](https://github.com/ClickHouse/ClickHouse/pull/16988) ([Anton Popov](https://github.com/CurtizJ)).
* Se mejoró el rendimiento de la función `repeat`. [#16937](https://github.com/ClickHouse/ClickHouse/pull/16937) ([satanson](https://github.com/satanson)).
* Se mejoró ligeramente el rendimiento del análisis de números de coma flotante. [#16809](https://github.com/ClickHouse/ClickHouse/pull/16809) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió la posibilidad de omitir las particiones ya fusionadas para `OPTIMIZE TABLE ... FINAL`. [#15939](https://github.com/ClickHouse/ClickHouse/pull/15939) ([Kruglov Pavel](https://github.com/Avogar)).
* Integración de [fast\_float de Daniel Lemire](https://github.com/lemire/fast_float) para procesar números de coma flotante. [#16787](https://github.com/ClickHouse/ClickHouse/pull/16787) ([Maksim Kita](https://github.com/kitaisreal)). No está habilitado, porque su rendimiento sigue siendo inferior al del analizador aproximado de números de coma flotante de ClickHouse.
* Se corrigió max\_distributed\_connections (afecta a `prefer_localhost_replica = 1` y `max_threads != max_distributed_connections`). [#17848](https://github.com/ClickHouse/ClickHouse/pull/17848) ([Azat Khuzhin](https://github.com/azat)).
* Elección adaptativa de subida de una sola parte o multiparte al enviar datos a S3. La subida de una sola parte se controla mediante una nueva configuración `max_single_part_upload_size`. [#17934](https://github.com/ClickHouse/ClickHouse/pull/17934) ([Pavel Kovalenko](https://github.com/Jokser)).
* Soporte para tareas asíncronas en `PipelineExecutor`. Soporte inicial para sockets asíncronos en consultas remotas. [#17868](https://github.com/ClickHouse/ClickHouse/pull/17868) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se permite usar la optimización `optimize_move_to_prewhere` con partes compactas cuando se desconoce el tamaño de las columnas. [#17330](https://github.com/ClickHouse/ClickHouse/pull/17330) ([Anton Popov](https://github.com/CurtizJ)).

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

* Se evita el interbloqueo al ejecutar INSERT SELECT en la misma tabla con motores de tabla `TinyLog` o `Log`. Esto cierra [#6802](https://github.com/ClickHouse/ClickHouse/issues/6802). Esto cierra [#18691](https://github.com/ClickHouse/ClickHouse/issues/18691). Esto cierra [#16812](https://github.com/ClickHouse/ClickHouse/issues/16812). Esto cierra [#14570](https://github.com/ClickHouse/ClickHouse/issues/14570). [#15260](https://github.com/ClickHouse/ClickHouse/pull/15260) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se admite la sintaxis `SHOW CREATE VIEW name`, como en [MySQL](https://dev.mysql.com/doc/refman/5.7/en/show-create-view.html). [#18095](https://github.com/ClickHouse/ClickHouse/pull/18095) ([Du Chuan](https://github.com/spongedu)).
* Se permiten todas las consultas del tipo `Decimal * Float` o viceversa, incluidas las de agregación (p. ej., `SELECT sum(decimal_field * 1.1)` o `SELECT dec_col * float_col`); el tipo de resultado es Float32 o Float64. [#18145](https://github.com/ClickHouse/ClickHouse/pull/18145) ([Mike](https://github.com/myrrc)).
* Se mejoró la UI web mínima: se añadió el historial; se añadió soporte para compartir; se evitó una condición de carrera entre distintas solicitudes; se añadieron indicadores de solicitud en curso y de disponibilidad; se añadió un favicon; se detecta Ctrl+Enter si el área de texto no tiene el foco. [#17293](https://github.com/ClickHouse/ClickHouse/pull/17293) [#17770](https://github.com/ClickHouse/ClickHouse/pull/17770) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* clickhouse-server no envió la petición `close` al servidor de ZooKeeper. [#16837](https://github.com/ClickHouse/ClickHouse/pull/16837) ([alesapin](https://github.com/alesapin)).
* Evita que el servidor finalice de forma anómala cuando los límites de memoria son demasiado bajos (`max_memory_usage = 1` / `max_untracked_memory = 1`). [#17453](https://github.com/ClickHouse/ClickHouse/pull/17453) ([Azat Khuzhin](https://github.com/azat)).
* Corregido el resultado no determinista de la función `windowFunnel` cuando distintos eventos tienen la misma marca de tiempo. [#18884](https://github.com/ClickHouse/ClickHouse/pull/18884) ([Fuwang Hu](https://github.com/fuwhu)).
* Docker: Se establecen explícitamente el uid y el gid del usuario y el grupo de clickhouse en los valores fijos (101) en las imágenes Docker de clickhouse-server. [#19096](https://github.com/ClickHouse/ClickHouse/pull/19096) ([filimonov](https://github.com/filimonov)).
* INSERTs asíncronos en tablas `Distributed`: se han añadido dos nuevos ajustes (por analogía con la familia MergeTree): - `fsync_after_insert` - Ejecuta fsync tras cada inserción. Disminuirá el rendimiento de las inserciones. - `fsync_directories` - Ejecuta fsync para el directorio temporal (que se usa solo para los INSERTs asíncronos) después de todas las operaciones (escrituras, cambios de nombre, etc.). [#18864](https://github.com/ClickHouse/ClickHouse/pull/18864) ([Azat Khuzhin](https://github.com/azat)).
* El comando `SYSTEM KILL` comenzó a funcionar en Docker. Esto cierra [#18847](https://github.com/ClickHouse/ClickHouse/issues/18847). [#18848](https://github.com/ClickHouse/ClickHouse/pull/18848) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Expande las macros en la ruta de zk al ejecutar `FETCH PARTITION`. [#18839](https://github.com/ClickHouse/ClickHouse/pull/18839) ([fastio](https://github.com/fastio)).
* Aplique `ALTER TABLE <replicated_table> ON CLUSTER MODIFY SETTING ...` en todas las réplicas. Esto se debe a que no replicamos este tipo de comandos `ALTER`. [#18789](https://github.com/ClickHouse/ClickHouse/pull/18789) ([Amos Bird](https://github.com/amosbird)).
* Permitir que el transformador de columnas `EXCEPT` acepte una cadena como patrón de expresión regular. Esto resuelve [#18685](https://github.com/ClickHouse/ClickHouse/issues/18685) . [#18699](https://github.com/ClickHouse/ClickHouse/pull/18699) ([Amos Bird](https://github.com/amosbird)).
* Se corrige `SimpleAggregateFunction` en `SummingMergeTree`. Ahora funciona como `AggregateFunction`. En versiones anteriores, los valores se sumaban independientemente de la función de agregado. Esto corrige [#18564](https://github.com/ClickHouse/ClickHouse/issues/18564) . [#8052](https://github.com/ClickHouse/ClickHouse/issues/8052). [#18637](https://github.com/ClickHouse/ClickHouse/pull/18637) ([Amos Bird](https://github.com/amosbird)). Otra corrección del uso de `SimpleAggregateFunction` en `SummingMergeTree`. Esto corrige [#18676](https://github.com/ClickHouse/ClickHouse/issues/18676) . [#18677](https://github.com/ClickHouse/ClickHouse/pull/18677) ([Amos Bird](https://github.com/amosbird)).
* Se corrigió un error de aserción en el asignador de memoria cuando el último argumento de la función bar era NaN. Ahora se lanza una excepción normal de ClickHouse. Esto corrige [#17876](https://github.com/ClickHouse/ClickHouse/issues/17876). [#18520](https://github.com/ClickHouse/ClickHouse/pull/18520) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige un problema de usabilidad: falta un salto de línea después del mensaje de excepción en algunas herramientas. [#18444](https://github.com/ClickHouse/ClickHouse/pull/18444) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se añade la posibilidad de modificar el tipo de columna de la clave primaria y de partición de `LowCardinality(Type)` a `Type` y viceversa. También se añade la posibilidad de modificar el tipo de columna de la clave primaria del tipo `EnumX ` al tipo `IntX`. Corrige [#5604](https://github.com/ClickHouse/ClickHouse/issues/5604). [#18362](https://github.com/ClickHouse/ClickHouse/pull/18362) ([alesapin](https://github.com/alesapin)).
* Implementar el acceso a campos de `untuple`. [#18133](https://github.com/ClickHouse/ClickHouse/issues/18133). [#18309](https://github.com/ClickHouse/ClickHouse/pull/18309) ([hexiaoting](https://github.com/hexiaoting)).
* Permite analizar campos Array desde CSV si se representan como una cadena que contiene un array serializado como CSV anidado. Ejemplo: `"[""Hello"", ""world"", ""42"""" TV""]"` se analizará como `['Hello', 'world', '42" TV']`. Permite analizar un array en CSV dentro de una cadena sin llaves de cierre. Ejemplo: `"'Hello', 'world', '42"" TV'"` se analizará como `['Hello', 'world', '42" TV']`. [#18271](https://github.com/ClickHouse/ClickHouse/pull/18271) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora del cálculo de la granularidad adaptativa para las partes wide de MergeTree. [#18223](https://github.com/ClickHouse/ClickHouse/pull/18223) ([alesapin](https://github.com/alesapin)).
* Ahora `clickhouse install` podría funcionar en Mac. El problema era que en esta plataforma no hay procfs. [#18201](https://github.com/ClickHouse/ClickHouse/pull/18201) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Mejores indicaciones sobre la sintaxis de las consultas `SHOW ...`. [#18183](https://github.com/ClickHouse/ClickHouse/pull/18183) ([Du Chuan](https://github.com/spongedu)).
* Soporte para las agregaciones de Array `arrayMin`, `arrayMax`, `arraySum`, `arrayAvg` con `Int128`, `Int256`, `UInt256`. [#18147](https://github.com/ClickHouse/ClickHouse/pull/18147) ([Maksim Kita](https://github.com/kitaisreal)).
* Se añadió `disk` a la configuración de almacenamiento de Set y Join. [#18112](https://github.com/ClickHouse/ClickHouse/pull/18112) ([Grigory Pervakov](https://github.com/GrigoryPervakov)).
* Control de acceso: Ahora la función de tabla `merge()` requiere que el usuario actual tenga el privilegio `SELECT` sobre cada tabla de la que recibe datos. Este PR corrige [#16964](https://github.com/ClickHouse/ClickHouse/issues/16964). [#18104](https://github.com/ClickHouse/ClickHouse/pull/18104) [#17983](https://github.com/ClickHouse/ClickHouse/pull/17983) ([Vitaly Baranov](https://github.com/vitlibar)).
* Las tablas temporales ahora solo son visibles en las tablas del sistema `system.tables` y `system.columns` dentro de la sesión en la que se han creado. La base de datos interna `_temporary_and_external_tables` ahora está oculta en esas tablas del sistema; en su lugar, las tablas temporales se muestran como tablas con la base de datos vacía y la marca `is_temporary` activada. [#18014](https://github.com/ClickHouse/ClickHouse/pull/18014) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrige un problema de renderizado de clickhouse-client cuando cambia el tamaño de la ventana del terminal. [#18009](https://github.com/ClickHouse/ClickHouse/pull/18009) ([Amos Bird](https://github.com/amosbird)).
* Reducir la verbosidad de los eventos registrados cuando el cliente cierra la conexión, de Warning a Information. [#18005](https://github.com/ClickHouse/ClickHouse/pull/18005) ([filimonov](https://github.com/filimonov)).
* Eliminación forzada de archivos de metadatos vacíos o dañados del sistema de archivos para DiskS3. S3 es una funcionalidad experimental. [#17935](https://github.com/ClickHouse/ClickHouse/pull/17935) ([Pavel Kovalenko](https://github.com/Jokser)).
* Control de acceso: `allow_introspection_functions=0` prohíbe el uso de las funciones de introspección, pero ya no impide conceder grants sobre ellas (quien reciba el grant tendrá que establecer `allow_introspection_functions=1` por su cuenta para poder usarlo). Del mismo modo, `allow_ddl=0` prohíbe el uso de comandos DDL, pero ya no impide conceder grants sobre ellos. [#17908](https://github.com/ClickHouse/ClickHouse/pull/17908) ([Vitaly Baranov](https://github.com/vitlibar)).
* Mejora de usabilidad: sugerencias para nombres de columnas. [#17112](https://github.com/ClickHouse/ClickHouse/issues/17112). [#17857](https://github.com/ClickHouse/ClickHouse/pull/17857) ([fastio](https://github.com/fastio)).
* Añade información de diagnóstico cuando dos tablas Merge intentan leer los datos de la otra. [#17854](https://github.com/ClickHouse/ClickHouse/pull/17854) ([徐炘](https://github.com/weeds085490)).
* Se permite sobrescribir el valor de timeout al ejecutar scripts con la imagen de Docker de ClickHouse. [#17818](https://github.com/ClickHouse/ClickHouse/pull/17818) ([Guillaume Tassery](https://github.com/YiuRULE)).
* Compruebe la gramática de la definición del motor de las tablas de registro del sistema para evitar algunos errores de configuración. Tenga en cuenta que esta comprobación gramatical no es semántica; esto significa que errores como columnas inexistentes o funciones en expresiones no se detectarán hasta que se cree la tabla. [#17739](https://github.com/ClickHouse/ClickHouse/pull/17739) ([Du Chuan](https://github.com/spongedu)).
* Se eliminó el lanzamiento de excepciones al inicializar la tabla `RabbitMQ` si no había conexión (se volverá a conectar en segundo plano). [#17709](https://github.com/ClickHouse/ClickHouse/pull/17709) ([Kseniia Sumarokova](https://github.com/kssenii)).
* No se ignoran los límites de memoria del servidor durante el vaciado de Buffer. [#17646](https://github.com/ClickHouse/ClickHouse/pull/17646) ([Azat Khuzhin](https://github.com/azat)).
* Cambiar a la versión parcheada de RocksDB (de ClickHouse-Extras) para corregir el error use-after-free. [#17643](https://github.com/ClickHouse/ClickHouse/pull/17643) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añadió un desplazamiento al mensaje de excepción del análisis en paralelo. Esto corrige [#17457](https://github.com/ClickHouse/ClickHouse/issues/17457). [#17641](https://github.com/ClickHouse/ClickHouse/pull/17641) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* No lanzar el error "Too many parts" en medio de la consulta INSERT. [#17566](https://github.com/ClickHouse/ClickHouse/pull/17566) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se permiten parámetros de consulta en la instrucción UPDATE de ALTER. Corrige [#10976](https://github.com/ClickHouse/ClickHouse/issues/10976). [#17563](https://github.com/ClickHouse/ClickHouse/pull/17563) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ofuscador de consultas: evitar el uso de algunas palabras clave de SQL como nombres de identificador. [#17526](https://github.com/ClickHouse/ClickHouse/pull/17526) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Exportar la entrada máxima actual de DDL ejecutada por DDLWorker mediante una métrica del servidor. Es útil para comprobar si DDLWorker se queda bloqueado en algún punto. [#17464](https://github.com/ClickHouse/ClickHouse/pull/17464) ([Amos Bird](https://github.com/amosbird)).
* Exporta métricas asíncronas de los hilos actuales en todos los servidores. Es útil para detectar problemas como [este](https://github.com/ClickHouse-Extras/poco/pull/28). [#17463](https://github.com/ClickHouse/ClickHouse/pull/17463) ([Amos Bird](https://github.com/amosbird)).
* Incluir columnas dinámicas como MATERIALIZED / ALIAS en consultas con comodines cuando las opciones `asterisk_include_materialized_columns` y `asterisk_include_alias_columns` estén activadas. [#17462](https://github.com/ClickHouse/ClickHouse/pull/17462) ([Ken Chen](https://github.com/chenziliang)).
* Permite especificar [TTL](/es/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) para eliminar registros antiguos de las [tablas de registro del sistema](/es/reference/system-tables/index), mediante el atributo `<ttl>` en `config.xml`. [#17438](https://github.com/ClickHouse/ClickHouse/pull/17438) ([Du Chuan](https://github.com/spongedu)).
* Ahora, las consultas que llegan al servidor a través de los protocolos MySQL y PostgreSQL tienen tipos de interfaz distintos (que pueden verse en la columna `interface` de la tabla `system.query_log`): `4` para MySQL y `5` para PostgreSQL, en lugar del `1` que se usaba antes y que ahora se usa solo para el protocolo nativo. [#17437](https://github.com/ClickHouse/ClickHouse/pull/17437) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigió el análisis sintáctico de la cláusula SETTINGS de la consulta `INSERT ... SELECT ... SETTINGS`. [#17414](https://github.com/ClickHouse/ClickHouse/pull/17414) ([Azat Khuzhin](https://github.com/azat)).
* Contabilización correcta de la memoria en RadixSort. [#17412](https://github.com/ClickHouse/ClickHouse/pull/17412) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se añadió una comprobación de eof en `receiveHello` del server para evitar la excepción `Attempt to read after eof`. [#17365](https://github.com/ClickHouse/ClickHouse/pull/17365) ([Kruglov Pavel](https://github.com/Avogar)).
* Se evita un posible desbordamiento de pila al convertir bigint. Los enteros grandes son experimentales. [#17269](https://github.com/ClickHouse/ClickHouse/pull/17269) ([flynn](https://github.com/ucasFL)).
* A partir de ahora, los índices `set` funcionan con `GLOBAL IN`. Esto corrige [#17232](https://github.com/ClickHouse/ClickHouse/issues/17232), [#5576](https://github.com/ClickHouse/ClickHouse/issues/5576). [#17253](https://github.com/ClickHouse/ClickHouse/pull/17253) ([Amos Bird](https://github.com/amosbird)).
* Se agregó un límite para las redirecciones HTTP en las solicitudes al almacenamiento S3 (`s3_max_redirects`). [#17220](https://github.com/ClickHouse/ClickHouse/pull/17220) ([ianton-ru](https://github.com/ianton-ru)).
* Al combinar el combinador `-OrNull` con los combinadores `-If`, `-Merge`, `-MergeState` y `-State`, debemos colocar `-OrNull` delante. [#16935](https://github.com/ClickHouse/ClickHouse/pull/16935) ([flynn](https://github.com/ucasFL)).
* Se admite la configuración de proxy HTTP y de endpoint HTTPS de S3. [#16861](https://github.com/ClickHouse/ClickHouse/pull/16861) ([Pavel Kovalenko](https://github.com/Jokser)).
* Se añadió la autenticación adecuada mediante variables de entorno, `~/.aws` y `AssumeRole` para el cliente de S3. [#16856](https://github.com/ClickHouse/ClickHouse/pull/16856) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se añaden más spans de OpenTelemetry. Se añade un ejemplo de cómo exportar los datos de los spans a Zipkin. [#16535](https://github.com/ClickHouse/ClickHouse/pull/16535) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Diccionarios de caché: Se eliminaron por completo los callbacks y los bloqueos necesarios para obtenerlos. Las claves no se dividen entre "no encontradas" y "caducadas", sino que se almacenan en el mismo mapa durante la consulta. [#14958](https://github.com/ClickHouse/ClickHouse/pull/14958) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió el hecho de que `fsync_part_directory`/`fsync_after_insert`/`in_memory_parts_insert_sync` nunca funcionaran (funcionalidad experimental). [#18845](https://github.com/ClickHouse/ClickHouse/pull/18845) ([Azat Khuzhin](https://github.com/azat)).
* Permitir el uso del motor `Atomic` para la base de datos anidada del motor `MaterializeMySQL`. [#14849](https://github.com/ClickHouse/ClickHouse/pull/14849) ([tavplubix](https://github.com/tavplubix)).

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

* Se corrigió el problema por el que el servidor podía dejar de aceptar conexiones en casos muy raros. [#17542](https://github.com/ClickHouse/ClickHouse/pull/17542) (Amos Bird, [alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige el análisis de índices de funciones binarias con un argumento constante, que daba lugar a resultados de consulta incorrectos. Esto corrige [#18364](https://github.com/ClickHouse/ClickHouse/issues/18364). [#18373](https://github.com/ClickHouse/ClickHouse/pull/18373) ([Amos Bird](https://github.com/amosbird)).
* Corrige un posible análisis incorrecto del índice cuando los tipos de la comparación del índice son distintos. Esto corrige [#17122](https://github.com/ClickHouse/ClickHouse/issues/17122). [#17145](https://github.com/ClickHouse/ClickHouse/pull/17145) ([Amos Bird](https://github.com/amosbird)).
* Se deshabilita la escritura con AIO durante las fusiones, ya que puede provocar, en casos extremadamente raros, corrupción de datos en las columnas de la clave primaria durante la fusión. [#18481](https://github.com/ClickHouse/ClickHouse/pull/18481) ([alesapin](https://github.com/alesapin)).
* Restringir las fusiones de partes wide a partes compact. En caso de fusión vertical, esto provocaba una parte de resultado corrupta. [#18381](https://github.com/ClickHouse/ClickHouse/pull/18381) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige un posible resultado de consulta incompleto al leer desde `MergeTree*` en caso de `read backoff` (mensaje `<Debug> MergeTreeReadPool: Will lower number of threads` en los registros). Se introdujo en [#16423](https://github.com/ClickHouse/ClickHouse/issues/16423). Corrige [#18137](https://github.com/ClickHouse/ClickHouse/issues/18137). [#18216](https://github.com/ClickHouse/ClickHouse/pull/18216) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un error de tipo use-after-free en la biblioteca `rocksdb`. [#18862](https://github.com/ClickHouse/ClickHouse/pull/18862) ([sundyli](https://github.com/sundy-li)).
* Se corrige la lectura infinita de un archivo en formato `ORC` (se introdujo en [#10580](https://github.com/ClickHouse/ClickHouse/issues/10580)). Corrige [#19095](https://github.com/ClickHouse/ClickHouse/issues/19095). [#19134](https://github.com/ClickHouse/ClickHouse/pull/19134) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige un error en el escritor de datos de MergeTree que puede generar marks de mayor tamaño que el de la granularidad fija. Corrige [#18913](https://github.com/ClickHouse/ClickHouse/issues/18913). [#19123](https://github.com/ClickHouse/ClickHouse/pull/19123) ([alesapin](https://github.com/alesapin)).
* Se corrigió un error de inicio cuando ClickHouse no podía leer el códec de compresión de `LowCardinality(Nullable(...))` y lanzaba la excepción `Attempt to read after EOF`. Corrige [#18340](https://github.com/ClickHouse/ClickHouse/issues/18340). [#19101](https://github.com/ClickHouse/ClickHouse/pull/19101) ([alesapin](https://github.com/alesapin)).
* Restringir las consultas `MODIFY TTL` para las tablas `MergeTree` creadas con la sintaxis antigua. Antes, la consulta se aceptaba, pero en realidad no surtía efecto. [#19064](https://github.com/ClickHouse/ClickHouse/pull/19064) ([Anton Popov](https://github.com/CurtizJ)).
* Asegúrese de que `groupUniqArray` devuelva el tipo correcto para un argumento de tipo enum. Esto cierra [#17875](https://github.com/ClickHouse/ClickHouse/issues/17875). [#19019](https://github.com/ClickHouse/ClickHouse/pull/19019) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige un posible error `Expected single dictionary argument for function` al usar la función `ignore` con el argumento `LowCardinality`. Soluciona [#14275](https://github.com/ClickHouse/ClickHouse/issues/14275). [#19016](https://github.com/ClickHouse/ClickHouse/pull/19016) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrige la inserción de una columna `LowCardinality` en una tabla con el motor `TinyLog`. Corrige [#18629](https://github.com/ClickHouse/ClickHouse/issues/18629). [#19010](https://github.com/ClickHouse/ClickHouse/pull/19010) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Join intenta materializar las columnas const, pero nuestro código las necesita en otros lugares. [#18982](https://github.com/ClickHouse/ClickHouse/pull/18982) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Desactive `optimize_move_functions_out_of_any` porque la optimización no siempre es correcta. Esto cierra [#18051](https://github.com/ClickHouse/ClickHouse/issues/18051). Esto cierra [#18973](https://github.com/ClickHouse/ClickHouse/issues/18973). [#18981](https://github.com/ClickHouse/ClickHouse/pull/18981) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige una posible excepción `QueryPipeline stream: different number of columns` causada por la combinación de los pasos `Expression` del plan de consulta. Corrige [#18190](https://github.com/ClickHouse/ClickHouse/issues/18190). [#18980](https://github.com/ClickHouse/ClickHouse/pull/18980) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió un interbloqueo muy poco frecuente durante el apagado. [#18977](https://github.com/ClickHouse/ClickHouse/pull/18977) ([tavplubix](https://github.com/tavplubix)).
* Soluciona el comportamiento incorrecto cuando la consulta `ALTER TABLE ... DROP PART 'part_name'` elimina todos los bloques de deduplicación de la partición completa. Soluciona [#18874](https://github.com/ClickHouse/ClickHouse/issues/18874). [#18969](https://github.com/ClickHouse/ClickHouse/pull/18969) ([alesapin](https://github.com/alesapin)).
* ATTACH PARTITION debería restablecer la mutación. [#18804](https://github.com/ClickHouse/ClickHouse/issues/18804). [#18935](https://github.com/ClickHouse/ClickHouse/pull/18935) ([fastio](https://github.com/fastio)).
* Se corrige un problema con `bitmapOrCardinality` que puede provocar la desreferenciación de un puntero nulo. Esto cierra [#18911](https://github.com/ClickHouse/ClickHouse/issues/18911). [#18912](https://github.com/ClickHouse/ClickHouse/pull/18912) ([sundyli](https://github.com/sundy-li)).
* Corrige un posible bloqueo al cerrar `clickhouse-local`. Esto soluciona [#18891](https://github.com/ClickHouse/ClickHouse/issues/18891). [#18893](https://github.com/ClickHouse/ClickHouse/pull/18893) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Las consultas para bases de datos externas (MySQL, ODBC, JDBC) se reescribían de forma incorrecta si había una expresión de la forma `x IN table`. Esto corrige [#9756](https://github.com/ClickHouse/ClickHouse/issues/9756). [#18876](https://github.com/ClickHouse/ClickHouse/pull/18876) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige el combinador \*If con función unaria y tipos Nullable. [#18806](https://github.com/ClickHouse/ClickHouse/pull/18806) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige el problema por el que los `INSERT` distribuidos asíncronos pueden ser rechazados por el servidor si la configuración `network_compression_method` se establece globalmente con un valor distinto del predeterminado. Esto corrige [#18741](https://github.com/ClickHouse/ClickHouse/issues/18741). [#18776](https://github.com/ClickHouse/ClickHouse/pull/18776) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió el error `Attempt to read after eof` al intentar hacer `CAST` de `NULL` desde `Nullable(String)` a `Nullable(Decimal(P, S))`. Ahora la función `CAST` devuelve `NULL` cuando no puede interpretar un decimal a partir de una cadena Nullable. Corrige [#7690](https://github.com/ClickHouse/ClickHouse/issues/7690). [#18718](https://github.com/ClickHouse/ClickHouse/pull/18718) ([Winter Zhang](https://github.com/zhang2014)).
* Se corrigió un problema menor con el logging. [#18717](https://github.com/ClickHouse/ClickHouse/pull/18717) ([sundyli](https://github.com/sundy-li)).
* Se corrige la eliminación de partes vacías en tablas `ReplicatedMergeTree` creadas con la sintaxis antigua. Corrige [#18582](https://github.com/ClickHouse/ClickHouse/issues/18582). [#18614](https://github.com/ClickHouse/ClickHouse/pull/18614) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrige el error anterior cuando se producía un desbordamiento de fecha con distintos valores. El límite estricto del valor Date es "2106-02-07"; la fecha > "2106-02-07" se convierte al valor 0. [#18565](https://github.com/ClickHouse/ClickHouse/pull/18565) ([hexiaoting](https://github.com/hexiaoting)).
* Se añade compatibilidad con el tipo de dato FixedString para la replicación desde MySQL. La replicación desde MySQL es una funcionalidad experimental. Este parche corrige [#18450](https://github.com/ClickHouse/ClickHouse/issues/18450). También corrige [#6556](https://github.com/ClickHouse/ClickHouse/issues/6556). [#18553](https://github.com/ClickHouse/ClickHouse/pull/18553) ([awesomeleo](https://github.com/awesomeleo)).
* Corrige un posible error `Pipeline stuck` al usar `ORDER BY` después de una subconsulta con `RIGHT` o `FULL` JOIN. [#18550](https://github.com/ClickHouse/ClickHouse/pull/18550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corregido un error que podía hacer que las consultas `ALTER` quedaran bloqueadas después de cancelar la mutación correspondiente. Descubierto por thread fuzzer. [#18518](https://github.com/ClickHouse/ClickHouse/pull/18518) ([alesapin](https://github.com/alesapin)).
* Soporte correcto para 12AM en la función `parseDateTimeBestEffort`. Esto corrige [#18402](https://github.com/ClickHouse/ClickHouse/issues/18402). [#18449](https://github.com/ClickHouse/ClickHouse/pull/18449) ([vladimir-golovchenko](https://github.com/vladimir-golovchenko)).
* Se corrigió el error `value is too short` al ejecutar las funciones `toType(...)` (`toDate`, `toUInt32`, etc.) con un argumento de tipo `Nullable(String)`. Ahora, estas funciones devuelven `NULL` en caso de errores de análisis en lugar de lanzar una excepción. Corrige [#7673](https://github.com/ClickHouse/ClickHouse/issues/7673). [#18445](https://github.com/ClickHouse/ClickHouse/pull/18445) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió el comportamiento inesperado de `SHOW TABLES`. [#18431](https://github.com/ClickHouse/ClickHouse/pull/18431) ([fastio](https://github.com/fastio)).
* Corrección: el combinador -SimpleState genera tipos de argumento y de retorno incompatibles. [#18404](https://github.com/ClickHouse/ClickHouse/pull/18404) ([Amos Bird](https://github.com/amosbird)).
* Corrige una posible condición de carrera en el uso concurrente de tablas `Set` o `Join` y en las consultas a `system.tables`. [#18385](https://github.com/ClickHouse/ClickHouse/pull/18385) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige el llenado de la tabla `system.settings_profile_elements`. Este PR corrige [#18231](https://github.com/ClickHouse/ClickHouse/issues/18231). [#18379](https://github.com/ClickHouse/ClickHouse/pull/18379) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se corrigen posibles fallos en las funciones de agregación con el combinador `Distinct` al usar la agregación de dos niveles. Corrige [#17682](https://github.com/ClickHouse/ClickHouse/issues/17682). [#18365](https://github.com/ClickHouse/ClickHouse/pull/18365) ([Anton Popov](https://github.com/CurtizJ)).
* Se corrigió un problema por el que el proceso `clickhouse-odbc-bridge` no era accesible desde el servidor en máquinas con pila dual IPv4/IPv6; se corrigió un problema por el que las actualizaciones del diccionario ODBC se realizaban mediante consultas malformadas y/o provocaban fallos del proceso odbc-bridge; posiblemente cierra [#14489](https://github.com/ClickHouse/ClickHouse/issues/14489). [#18278](https://github.com/ClickHouse/ClickHouse/pull/18278) ([Denis Glazachev](https://github.com/traceon)).
* Control de acceso: `SELECT count() FROM table` ahora puede ejecutarse si el usuario tiene acceso al menos a una columna de la tabla. Este PR corrige [#10639](https://github.com/ClickHouse/ClickHouse/issues/10639). [#18233](https://github.com/ClickHouse/ClickHouse/pull/18233) ([Vitaly Baranov](https://github.com/vitlibar)).
* Control de acceso: `SELECT JOIN` ahora requiere el privilegio `SELECT` en cada una de las tablas del join. Este PR corrige [#17654](https://github.com/ClickHouse/ClickHouse/issues/17654). [#18232](https://github.com/ClickHouse/ClickHouse/pull/18232) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige la comparación de claves entre tipos Enum e Int. Esto corrige [#17989](https://github.com/ClickHouse/ClickHouse/issues/17989). [#18214](https://github.com/ClickHouse/ClickHouse/pull/18214) ([Amos Bird](https://github.com/amosbird)).
* Replicación desde MySQL (funcionalidad experimental). Soluciona [#18186](https://github.com/ClickHouse/ClickHouse/issues/18186) Soluciona [#16372](https://github.com/ClickHouse/ClickHouse/issues/16372) Corrige el problema de conversión de claves únicas en el motor de base de datos MaterializeMySQL. [#18211](https://github.com/ClickHouse/ClickHouse/pull/18211) ([Winter Zhang](https://github.com/zhang2014)).
* Se corrigió la inconsistencia en las consultas con `WITH FILL` y `WITH TIES` [#17466](https://github.com/ClickHouse/ClickHouse/issues/17466). [#18188](https://github.com/ClickHouse/ClickHouse/pull/18188) ([hexiaoting](https://github.com/hexiaoting)).
* Se corrige la inserción de una fila con valor predeterminado si se produce un error de análisis en la última columna. Corrige [#17712](https://github.com/ClickHouse/ClickHouse/issues/17712). [#18182](https://github.com/ClickHouse/ClickHouse/pull/18182) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Se corrige el error `Unknown setting profile` al intentar establecer un perfil de configuración. [#18167](https://github.com/ClickHouse/ClickHouse/pull/18167) ([tavplubix](https://github.com/tavplubix)).
* Se corrige un error por el que la consulta `MODIFY COLUMN ... REMOVE TTL` en realidad no eliminaba el TTL de la columna. [#18130](https://github.com/ClickHouse/ClickHouse/pull/18130) ([alesapin](https://github.com/alesapin)).
* Se corrigió `std::out_of_range: basic_string` al analizar URL de S3. [#18059](https://github.com/ClickHouse/ClickHouse/pull/18059) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Se corrige la comparación entre `DateTime64` y `Date`. Corrige [#13804](https://github.com/ClickHouse/ClickHouse/issues/13804) y [#11222](https://github.com/ClickHouse/ClickHouse/issues/11222). ... [#18050](https://github.com/ClickHouse/ClickHouse/pull/18050) ([Vasily Nemkov](https://github.com/Enmk)).
* Replicación desde MySQL (función experimental): Corrige [#15187](https://github.com/ClickHouse/ClickHouse/issues/15187) Corrige [#17912](https://github.com/ClickHouse/ClickHouse/issues/17912) se admite la conversión de índices de prefijo de MySQL para MaterializeMySQL. [#17944](https://github.com/ClickHouse/ClickHouse/pull/17944) ([Winter Zhang](https://github.com/zhang2014)).
* Cuando la rotación de logs del servidor se configuraba mediante el parámetro `logger.size` con un valor numérico superior a 2^32, los logs no rotaban correctamente. Esto se ha corregido. [#17905](https://github.com/ClickHouse/ClickHouse/pull/17905) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* La optimización trivial de consultas producía un resultado incorrecto si la consulta contenía ARRAY JOIN (por lo que en realidad la consulta no era trivial). [#17887](https://github.com/ClickHouse/ClickHouse/pull/17887) ([sundyli](https://github.com/sundy-li)).
* Corrige un posible fallo de segmentación en la función de agregación `topK`. Esto cierra [#17404](https://github.com/ClickHouse/ClickHouse/issues/17404). [#17845](https://github.com/ClickHouse/ClickHouse/pull/17845) ([Maksim Kita](https://github.com/kitaisreal)).
* WAL (función experimental): No restaurar las partes desde WAL si `in_memory_parts_enable_wal` está deshabilitado. [#17802](https://github.com/ClickHouse/ClickHouse/pull/17802) ([detailyang](https://github.com/detailyang)).
* El mensaje de excepción sobre el tamaño máximo de tabla para eliminar se mostraba incorrectamente. [#17764](https://github.com/ClickHouse/ClickHouse/pull/17764) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigió un posible error de segmentación cuando no había suficiente espacio al insertar en la tabla `Distributed`. [#17737](https://github.com/ClickHouse/ClickHouse/pull/17737) ([tavplubix](https://github.com/tavplubix)).
* Se solucionó un problema por el que ClickHouse no podía restablecer la conexión con servidores MySQL. [#17681](https://github.com/ClickHouse/ClickHouse/pull/17681) ([Alexander Kazakov](https://github.com/Akazz)).
* Windows: Se corrigió el error `Function not implemented` al ejecutar la consulta `RENAME` en la base de datos `Atomic` con ClickHouse ejecutándose en Windows Subsystem for Linux. Se corrige en [#17661](https://github.com/ClickHouse/ClickHouse/issues/17661). [#17664](https://github.com/ClickHouse/ClickHouse/pull/17664) ([tavplubix](https://github.com/tavplubix)).
* Podía determinarse incorrectamente si el clúster tenía replicación circular (cruzada) o no al ejecutar una consulta `ON CLUSTER`, debido a una condición de carrera cuando `pool_size` > 1. Se ha corregido. [#17640](https://github.com/ClickHouse/ClickHouse/pull/17640) ([tavplubix](https://github.com/tavplubix)).
* Se corrige el problema de la tabla `system.stack_trace` vacía cuando el servidor se ejecuta en modo daemon. [#17630](https://github.com/ClickHouse/ClickHouse/pull/17630) ([Amos Bird](https://github.com/amosbird)).
* La excepción `fmt::v7::format_error` puede quedar registrada en segundo plano para las tablas MergeTree. Esto corrige [#17613](https://github.com/ClickHouse/ClickHouse/issues/17613). [#17615](https://github.com/ClickHouse/ClickHouse/pull/17615) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Cuando `clickhouse-client` se utilizaba en modo interactivo con consultas multilínea, el comentario de una sola línea se prolongaba por error hasta el final de la consulta. Esto corrige [#13654](https://github.com/ClickHouse/ClickHouse/issues/13654). [#17565](https://github.com/ClickHouse/ClickHouse/pull/17565) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrige el bloqueo de la consulta ALTER cuando la mutación correspondiente se canceló en una réplica diferente. Corrige [#16953](https://github.com/ClickHouse/ClickHouse/issues/16953). [#17499](https://github.com/ClickHouse/ClickHouse/pull/17499) ([alesapin](https://github.com/alesapin)).
* Se corrigió un problema en la contabilización de la memoria cuando ClickHouse subestimaba el tamaño de la caché de marcas. Esto puede ocurrir cuando hay muchos archivos muy pequeños con marcas. [#17496](https://github.com/ClickHouse/ClickHouse/pull/17496) ([alesapin](https://github.com/alesapin)).
* Se corrigió `ORDER BY` con la configuración `optimize_redundant_functions_in_order_by` habilitada. [#17471](https://github.com/ClickHouse/ClickHouse/pull/17471) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige los duplicados después de `DISTINCT`, que podían producirse debido a una optimización incorrecta. Corrige [#17294](https://github.com/ClickHouse/ClickHouse/issues/17294). [#17296](https://github.com/ClickHouse/ClickHouse/pull/17296) ([li chengxiang](https://github.com/chengxianglibra)). [#17439](https://github.com/ClickHouse/ClickHouse/pull/17439) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Se corrigió el elevado uso de CPU en las tareas en segundo plano de las tablas \*MergeTree. [#17416](https://github.com/ClickHouse/ClickHouse/pull/17416) ([tavplubix](https://github.com/tavplubix)).
* Corrige un posible bloqueo al leer de la tabla `JOIN` con tipos `LowCardinality`. Corrige [#17228](https://github.com/ClickHouse/ClickHouse/issues/17228). [#17397](https://github.com/ClickHouse/ClickHouse/pull/17397) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Replicación desde MySQL (funcionalidad experimental): Corrige [#16835](https://github.com/ClickHouse/ClickHouse/issues/16835), intenta solucionar la discrepancia del encabezado en la sentencia SHOW de MySQL. [#17366](https://github.com/ClickHouse/ClickHouse/pull/17366) ([Winter Zhang](https://github.com/zhang2014)).
* Soluciona las funciones no deterministas con el optimizador de predicados. Esto soluciona [#17244](https://github.com/ClickHouse/ClickHouse/issues/17244). [#17273](https://github.com/ClickHouse/ClickHouse/pull/17273) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige un posible error `Unexpected packet Data received from client` en consultas distribuidas con `LIMIT`. [#17254](https://github.com/ClickHouse/ClickHouse/pull/17254) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la invalidación del índice set cuando hay columnas const en la subconsulta. Esto corrige [#17246](https://github.com/ClickHouse/ClickHouse/issues/17246). [#17249](https://github.com/ClickHouse/ClickHouse/pull/17249) ([Amos Bird](https://github.com/amosbird)).
* clickhouse-copier: Corrección para las tablas sin particiones [#15235](https://github.com/ClickHouse/ClickHouse/issues/15235). [#17248](https://github.com/ClickHouse/ClickHouse/pull/17248) ([Qi Chen](https://github.com/kaka11chen)).
* Se corrigieron posibles mutaciones que no funcionaban para partes almacenadas en un disco S3 (funcionalidad experimental). [#17227](https://github.com/ClickHouse/ClickHouse/pull/17227) ([Pavel Kovalenko](https://github.com/Jokser)).
* Corrección de un error en la función `fuzzBits`, problema relacionado: [#16980](https://github.com/ClickHouse/ClickHouse/issues/16980). [#17051](https://github.com/ClickHouse/ClickHouse/pull/17051) ([hexiaoting](https://github.com/hexiaoting)).
* Se corrige `optimize_distributed_group_by_sharding_key` para consultas con solo OFFSET. [#16996](https://github.com/ClickHouse/ClickHouse/pull/16996) ([Azat Khuzhin](https://github.com/azat)).
* Corrige las consultas de tablas `Merge` sobre tablas `Distributed` con JOINs. [#16993](https://github.com/ClickHouse/ClickHouse/pull/16993) ([Azat Khuzhin](https://github.com/azat)).
* Se corrige la optimización de ORDER BY con funciones monótonas. Corrige [#16107](https://github.com/ClickHouse/ClickHouse/issues/16107). [#16956](https://github.com/ClickHouse/ClickHouse/pull/16956) ([Anton Popov](https://github.com/CurtizJ)).
* Soluciona la comparación incorrecta de tipos `DateTime64` con distintas escalas. Soluciona [#16655](https://github.com/ClickHouse/ClickHouse/issues/16655) ... [#16952](https://github.com/ClickHouse/ClickHouse/pull/16952) ([Vasily Nemkov](https://github.com/Enmk)).
* Se corrige la optimización de `group by` cuando está habilitada la configuración `optimize_aggregators_of_group_by_keys` y se usan joins. Corrige [#12604](https://github.com/ClickHouse/ClickHouse/issues/12604). [#16951](https://github.com/ClickHouse/ClickHouse/pull/16951) ([Anton Popov](https://github.com/CurtizJ)).
* Pequeña corrección en la consulta SHOW ACCESS. [#16866](https://github.com/ClickHouse/ClickHouse/pull/16866) ([tavplubix](https://github.com/tavplubix)).
* Se corrigió el comportamiento al tener habilitada la opción `optimize_trivial_count_query` con un predicado de partición. [#16767](https://github.com/ClickHouse/ClickHouse/pull/16767) ([Azat Khuzhin](https://github.com/azat)).
* Devuelve el número de filas afectadas para las consultas INSERT mediante el protocolo MySQL wire. Anteriormente, ClickHouse siempre devolvía 0; se ha corregido. Corrige [#16605](https://github.com/ClickHouse/ClickHouse/issues/16605). [#16715](https://github.com/ClickHouse/ClickHouse/pull/16715) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige el comportamiento inconsistente causado por `select_sequential_consistency` en la consulta optimizada de recuento trivial y en las tablas del sistema. [#16309](https://github.com/ClickHouse/ClickHouse/pull/16309) ([Hao Chen](https://github.com/haoch)).
* Genera un error cuando el transformador de columnas `REPLACE` se aplica a una columna que no existe. [#16183](https://github.com/ClickHouse/ClickHouse/pull/16183) ([hexiaoting](https://github.com/hexiaoting)).
* Lanzar una excepción en caso de una expresión ON de join no equi en RIGH|FULL JOIN. [#15162](https://github.com/ClickHouse/ClickHouse/pull/15162) ([Artem Zuikov](https://github.com/4ertus2)).

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

* Se añade una comprobación sencilla de integridad para el binario de ClickHouse. Permite detectar corrupción causada por fallos de hardware (degradación de bits en los medios de almacenamiento o cambios de bits en la RAM). [#18811](https://github.com/ClickHouse/ClickHouse/pull/18811) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Cambiar `OpenSSL` por `BoringSSL`. Esto permite evitar problemas con los sanitizadores. Esto corrige [#12490](https://github.com/ClickHouse/ClickHouse/issues/12490). Esto corrige [#17502](https://github.com/ClickHouse/ClickHouse/issues/17502). Esto corrige [#12952](https://github.com/ClickHouse/ClickHouse/issues/12952). [#18129](https://github.com/ClickHouse/ClickHouse/pull/18129) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Simplificar el script de inicio `Sys/V`. No funcionaba en Ubuntu 12.04 ni en versiones anteriores. [#17428](https://github.com/ClickHouse/ClickHouse/pull/17428) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Varias mejoras en el script `./clickhouse install`. [#17421](https://github.com/ClickHouse/ClickHouse/pull/17421) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ahora ClickHouse puede hacerse pasar por un ZooKeeper falso. Actualmente, la implementación del almacenamiento consiste simplemente en una tabla hash en memoria, y el servidor admite parcialmente el protocolo de ZooKeeper. [#16877](https://github.com/ClickHouse/ClickHouse/pull/16877) ([alesapin](https://github.com/alesapin)).
* Corrige la eliminación de watches de la lista de inactivos para TestKeeperStorage (un mock de ZooKeeper). [#18065](https://github.com/ClickHouse/ClickHouse/pull/18065) ([alesapin](https://github.com/alesapin)).
* Se añade el comando `SYSTEM SUSPEND` para la inyección de fallos. Puede usarse para facilitar las pruebas de failover. Esto cierra [#15979](https://github.com/ClickHouse/ClickHouse/issues/15979). [#18850](https://github.com/ClickHouse/ClickHouse/pull/18850) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Generar el identificador de compilación cuando ClickHouse se enlaza con `lld`. Se descubrió que `lld` no lo genera de forma predeterminada en mi máquina. El identificador de compilación se utiliza para los informes de fallos y la introspección. [#18808](https://github.com/ClickHouse/ClickHouse/pull/18808) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se corrigieron errores de shellcheck en la comprobación de estilo. [#18566](https://github.com/ClickHouse/ClickHouse/pull/18566) ([Ilya Yatsishin](https://github.com/qoega)).
* Actualización de la información sobre zonas horarias a 2020e. [#18531](https://github.com/ClickHouse/ClickHouse/pull/18531) ([alesapin](https://github.com/alesapin)).
* Corrige las advertencias de codespell. Divide las comprobaciones de estilo en partes independientes. Actualiza la imagen de Docker de las comprobaciones de estilo. [#18463](https://github.com/ClickHouse/ClickHouse/pull/18463) ([Ilya Yatsishin](https://github.com/qoega)).
* Comprobación automatizada de restos de marcadores de conflicto en la documentación. [#18332](https://github.com/ClickHouse/ClickHouse/pull/18332) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Se habilitó Thread Fuzzer para la comprobación con fallos intermitentes de las pruebas sin estado. [#18299](https://github.com/ClickHouse/ClickHouse/pull/18299) ([alesapin](https://github.com/alesapin)).
* No use la función `strerror`, que no es segura para hilos. [#18204](https://github.com/ClickHouse/ClickHouse/pull/18204) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Actualizada la acción del flujo de trabajo `anchore/scan-action@main` (se movió de `master` a `main`). [#18192](https://github.com/ClickHouse/ClickHouse/pull/18192) ([Stig Bakken](https://github.com/stigsb)).
* Ahora `clickhouse-test` realiza operaciones DROP/CREATE de bases de datos con tiempo de espera. [#18098](https://github.com/ClickHouse/ClickHouse/pull/18098) ([alesapin](https://github.com/alesapin)).
* Se habilita la compatibilidad experimental con el framework Pytest para las pruebas sin estado. [#17902](https://github.com/ClickHouse/ClickHouse/pull/17902) ([Ivan](https://github.com/abyss7)).
* Ahora usamos la versión más reciente del daemon de Docker en las pruebas de integración. [#17671](https://github.com/ClickHouse/ClickHouse/pull/17671) ([alesapin](https://github.com/alesapin)).
* Enviar información sobre la compilación oficial, la memoria, la CPU y el espacio libre en disco a Sentry si esta opción está habilitada. Sentry es una función opcional para ayudar a los desarrolladores de ClickHouse. Esto cierra [#17279](https://github.com/ClickHouse/ClickHouse/issues/17279). [#17543](https://github.com/ClickHouse/ClickHouse/pull/17543) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Había una variable no inicializada en el código de clickhouse-copier. [#17363](https://github.com/ClickHouse/ClickHouse/pull/17363) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Se corrigió [un informe de MSan](https://clickhouse-test-reports.s3.yandex.net/17309/065cd002578f2e8228f12a2744bd40c970065e0c/stress_test_\(memory\)/stderr.log) de [#17309](https://github.com/ClickHouse/ClickHouse/issues/17309). [#17344](https://github.com/ClickHouse/ClickHouse/pull/17344) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrección de un problema con IPv6 en la biblioteca Arrow Flight. Consulta [los comentarios](https://github.com/ClickHouse/ClickHouse/pull/16243#issuecomment-720830294) para más detalles. [#16664](https://github.com/ClickHouse/ClickHouse/pull/16664) ([Zhanna](https://github.com/FawnD2)).
* Se añade una biblioteca que sustituye algunas funciones de `libc` por trampas que finalizarán el proceso. [#16366](https://github.com/ClickHouse/ClickHouse/pull/16366) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Proporciona información de diagnóstico en los logs del servidor en caso de desbordamiento de pila y envía un mensaje de error a clickhouse-client. Esto cierra [#14840](https://github.com/ClickHouse/ClickHouse/issues/14840). [#16346](https://github.com/ClickHouse/ClickHouse/pull/16346) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ahora ya podemos ejecutar en paralelo casi todas las pruebas funcionales sin estado. [#15236](https://github.com/ClickHouse/ClickHouse/pull/15236) ([alesapin](https://github.com/alesapin)).
* Corrige la corrupción en la descompresión con snappy de `librdkafka` (era un problema solo en las compilaciones con gcc10, pero las compilaciones oficiales ya usan clang, por lo que al menos las versiones oficiales recientes no se ven afectadas). [#18053](https://github.com/ClickHouse/ClickHouse/pull/18053) ([Azat Khuzhin](https://github.com/azat)).
* Si el servidor finaliza por acción del OOM killer, se imprime un mensaje en el log. [#13516](https://github.com/ClickHouse/ClickHouse/pull/13516) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* PODArray: Evita llamar a memcpy con los argumentos `(nullptr, 0)` (corrige un informe de UBSan). Esto corrige [#18525](https://github.com/ClickHouse/ClickHouse/issues/18525). [#18526](https://github.com/ClickHouse/ClickHouse/pull/18526) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mejora menor en la concatenación de rutas de ZooKeeper en DDLWorker. [#17767](https://github.com/ClickHouse/ClickHouse/pull/17767) ([Bharat Nallan](https://github.com/bharatnc)).
* Permite recargar los símbolos desde el archivo de depuración. Este PR también corrige un problema con el build-id. [#17637](https://github.com/ClickHouse/ClickHouse/pull/17637) ([Amos Bird](https://github.com/amosbird)).

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