Cambio incompatible con versiones anteriores
- La función
geoToH3()ahora acepta la entrada en el orden (lat, lon,res) (que es el orden estándar de las funciones geométricas). Los usuarios que quieran conservar el orden heredado de resultados (lon, lat,res) pueden establecer la configuracióngeotoh3_lon_lat_input_order = true. #78852 (Pratima Patel). - Los índices de tipo
full_textse renombraron agin. Esto sigue la terminología, más familiar, de PostgreSQL y otras bases de datos. Los índices existentes de tipofull_textsiguen pudiéndose cargar, pero lanzarán una excepción (sugiriendo usar índicesginen su lugar) cuando se intente utilizarlos en búsquedas. #79024 (Robert Schulze). - Se añadió la configuración de caché del sistema de archivos
allow_dynamic_cache_resize, con valor predeterminadofalse, para permitir el redimensionamiento dinámico de la caché del sistema de archivos. Motivo: en ciertos entornos (ClickHouse Cloud), todos los eventos de scaling se producen mediante el reinicio del proceso, y queremos que esta feature esté explícitamente deshabilitada para tener más control sobre el comportamiento, además de servir como medida de seguridad. Este PR está marcado como incompatible con versiones anteriores porque, en versiones antiguas, el redimensionamiento dinámico de la caché funcionaba de forma predeterminada sin ninguna configuración especial. #79148 (Kseniia Sumarokova). - Se eliminó la compatibilidad con los tipos de índice heredados
annoyyusearch. Ambos han sido stubs durante mucho tiempo; es decir, cualquier intento de usar estos índices heredados devolvía un error de todos modos. Si todavía tiene índicesannoyyusearch, elimínelos. #79802 (Robert Schulze). #* Eliminar la configuración del servidorformat_alter_commands_with_parentheses. La configuración se introdujo y estaba deshabilitada de forma predeterminada en la versión 24.2. Se habilitó de forma predeterminada en la versión 25.2. Como no hay versiones LTS que no admitan el nuevo formato, podemos eliminar la configuración. #79970 (János Benjamin Antal). #* Menor: forzar que las configuraciones del servidorbackup_threadsyrestore_threadsno sean cero. #80224 (Raúl Marín). - Se corrige
bitNot()para que String devuelva una cadena terminada en cero. #80791 (Azat Khuzhin).
Nueva funcionalidad
- Añade una nueva opción a MergeTree
SETTINGSque especifica un códec de compresión predeterminado en caso de que la consultaCREATEno defina explícitamente uno para las columnas correspondientes. Esto cierra #42005. #66394 (gvoelfin). - Continuación de https://github.com/ClickHouse/ClickHouse/pull/71943. Este PR implementa los tipos de datos
Time/Time64. Implementa nuevos tipos de datos: Time (HHH:MM:SS) y Time64 (HHH:MM:SS.<fractional>), algunas funciones básicas de conversión de tipo y funciones para interactuar con otros tipos de datos. Además, se cambió el nombre de la función existentetoTimeatoTimeWithFixedDateporque la funcióntoTimees necesaria para la función de conversión de tipo. #75735 (Yarik Briukhovetskyi). - Se admiten subconsultas correlacionadas como argumento de la expresión
EXISTSen la cláusulaWHERE. Cierra #72459. #76078 (Dmitry Novik). - Permitir la escritura en los motores de tabla Merge. #77484 (Anton Ivashkin).
INSERT SELECTdistribuido para tablas MergeTree replicadas ahora aprovecha eficientemente las réplicas paralelas para paralelizar losINSERT, seleccionando datos distintos en diferentes nodos e insertándolos de forma independiente. #78041 (Igor Nikonov).- Se añaden las funciones
mapContainsValuesLike/mapContainsValues/mapExtractValuesLikepara filtrar por valores de map y su compatibilidad con índices basados en bloomfilter. #78171 (UnamedRus). - Se añade la tabla
system.iceberg_history. #78244 (Smita Kulkarni). - Se añadió la programación de slots de consulta para workloads; consulte https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling para obtener más detalles. #78415 (Sergei Trifonov).
- Se añaden las funciones
getServerSettingygetMergeTreeSetting. Cierra https://github.com/clickhouse/clickhouse/issues/78318. #78439 (NamNguyenHoai). - Se admiten valores no permitidos en las restricciones de configuración. #78499 (Bharat Nallan).
- Se añade la nueva opción de configuración
iceberg_enable_version_hintpara aprovechar el archivoversion-hint.text. #78594 (Arnaud Briche). - Permite truncar tablas específicas de una base de datos, filtradas con la palabra clave
LIKE. #78597 (Yarik Briukhovetskyi). clickhouse-local(y su alias abreviado,ch) ahora usan unFROM tableimplícito cuando hay datos de entrada para procesar. Esto resuelve #65023. También se habilitó la inferencia de formato en clickhouse-local si no se especifica--input-formaty procesa un archivo regular. #79085 (Alexey Milovidov).- Se añaden las funciones
icebergHashyicebergBucketTransform. Se admite la poda de archivos de datos en tablasIcebergparticionadas conbucket transfom. #79262 (Daniil Ivanik). - Se añade compatibilidad con Coalescing Merge Tree. Esto cierra #78869. #79344 (Konstantin Vedernikov).
- Añade las funciones
stringBytesUniqystringBytesEntropypara identificar datos posiblemente aleatorios o cifrados. #79350 (Sachin Kumar Singh). - Se admite la columna virtual
_part_starting_offseten las tablas de la familia MergeTree. Esta columna representa el recuento acumulado de filas de todas las partes anteriores, calculado en tiempo de consulta en función de la lista actual de partes. Los valores acumulados se conservan durante toda la ejecución de la consulta y siguen siendo válidos incluso después de la exclusión de partes. Se ha refactorizado la lógica interna relacionada para admitir este comportamiento. #79417 (Amos Bird). - Se añadió una configuración
enable_shared_storage_snapshot_in_querypara permitir usar la misma instantánea de almacenamiento en todas las subconsultas de una sola consulta. Esto garantiza lecturas coherentes de la misma tabla, incluso cuando se hace referencia a ella varias veces dentro de una consulta. #79471 (Amos Bird). - Se admite escribir columnas JSON de CH en Parquet y leer columnas JSON de Parquet directamente como columnas JSON de CH. #79649 (Nihal Z. Miaji).
- Se incluye
chdig, una interfaz TUI para ClickHouse (similar atop), como parte de ClickHouse. #79666 (Azat Khuzhin). - Se añade compatibilidad con
MultiPolygonparapointInPolygon. #79773 (Nihal Z. Miaji). - Soporte para Geo Parquet. Esto cierra #75317. #79777 (Konstantin Vedernikov).
- Se añade compatibilidad para consultar tablas de Delta Lake montadas en el sistema de archivos local mediante la table function
deltaLakeLocal. #79781 (roykim98). - Se añadió la funcionalidad de codificación/decodificación en base32. #79809 (Joanna Hulboj).
- La búsqueda vectorial de ClickHouse ahora admite tanto el prefiltrado como el posfiltrado, y ofrece opciones de configuración relacionadas para un control más preciso. (incidencia #78161). #79854 (Shankar Iyer).
- Se admite el uso de funciones para leer el formato WKB. Esto cierra parcialmente #43941. #80139 (Konstantin Vedernikov).
- Se añade una nueva configuración
cast_string_to_date_time_mode, que permite elegir el modo de análisis de DateTime durante el CAST desde String. #80210 (Pavel Kruglov). - Se añadieron funciones de codificación y decodificación de
Bech32yBech32m(issue #40381). #80239 (George Larionov). - Se añade compatibilidad con la configuración
diskpara los motores de BD Atomic y Ordinary, lo que permite especificar el disco donde se almacenan los archivos de metadatos de las tablas. #80546 (Tuan Pham Anh). - Funciones auxiliares para desempaquetar y comparar partes de MergeTree. #80573 (Mikhail Artemenko).
- Funciones auxiliares
timeSeries*para acelerar algunos casos de uso al trabajar con series temporales: - remuestrear los datos sobre una rejilla temporal con la marca de tiempo inicial, la marca de tiempo final y el paso especificados - calculardelta,rate,ideltaeirate, similares a PromQL. #80590 (Alexander Gololobov). - Permite filtrar las partes seleccionadas para las consultas por el disco en el que residen. #80650 (tanner-bruce).
- Añadir una página de inicio con la lista de herramientas web integradas. Se abrirá cuando la solicite un agente de usuario similar a un navegador. #81129 (Alexey Milovidov).
- Permite filtrar los valores
NULLenarrayFirst,arrayFirstIndex,arrayLastyarrayLastIndex. Corrige #81113. #81197 (Lennard Eijsackers).
Característica experimental
- Catálogo de metastore de Hive para el datalake de Iceberg. #77677 (Konstantin Vedernikov).
- Se admiten parámetros explícitos mediante pares clave-valor. Actualmente, los parámetros admitidos son
tokenizer, que es obligatorio, ymax_rows_per_postings_listyngram_size, que son opcionales. #80262 (Elmi Ahmadov). - Los índices experimentales de tipo
ginpasaron a llamarsetext. Los índices existentes de tipoginsiguen pudiendo cargarse, pero arrojarán una excepción (sugiriendo índicestexten su lugar) al intentar usarlos en búsquedas. #80855 (Robert Schulze).
Mejora del rendimiento
- Acelera los índices secundarios al evaluar sus expresiones en varios gránulos a la vez. #64109 (Alexey Milovidov).
- Se introdujo un umbral (controlado por la configuración
parallel_hash_join_threshold) para recurrir al algoritmohashcuando el tamaño de la tabla de la derecha está por debajo de ese umbral. #76185 (Nikita Taranov). - La implementación actual de
Pipe::resizecrea un único nodoResizeoStrictResizeinsertándolo en la topología de la canalización, que luego actúa como un concentrador central que conecta todos los flujos de entrada (nodos aguas arriba) con un conjunto unificado de flujos de salida (nodos aguas abajo). Este diseño provoca contención en torno alExecutingGraph::Node::status_mutexdurante la ejecución del grafo de la canalización, especialmente en entornos con un gran número de núcleos. Cuando las canalizaciones escalan a decenas o cientos de flujos, esta contención da lugar a:. #77562 (Zhiguo Zhou). - Mejora el rendimiento de
S3Queue/AzureQueueal permitir ejecutar operacionesINSERTde datos en paralelo (se puede habilitar con la configuración de queueparallel_inserts=true). Anteriormente,S3Queue/AzureQueuesolo podían realizar en paralelo la primera parte del pipeline (descarga, análisis);INSERTse ejecutaba en un solo hilo. Y las operacionesINSERTcasi siempre son el cuello de botella. Ahora escalará casi linealmente conprocessing_threads_num. #77671 (Azat Khuzhin). - Se cambia el formato de las partes compactas para guardar marcas de cada subflujo y poder leer subcolumnas individuales. El formato compacto anterior sigue siendo compatible para lecturas y puede habilitarse para escrituras mediante la configuración de MergeTree
write_marks_for_substreams_in_compact_parts. Está deshabilitado de forma predeterminada para que las actualizaciones sean más seguras, ya que modifica el almacenamiento de las partes compactas. Se habilitará de forma predeterminada en una de las próximas versiones. #77940 (Pavel Kruglov). - Se introdujo la nueva configuración
use_skip_indexes_in_final_exact_mode. Si una consulta sobre una tablaReplacingMergeTreeincluye la cláusulaFINAL, leer únicamente los rangos de la tabla basándose en índices de omisión puede producir resultados incorrectos. Esta configuración garantiza que se devuelvan resultados correctos al analizar partes más recientes que se solapan con los rangos de clave primaria devueltos por el índice de omisión. Establézcala en 0 para desactivarla y en 1 para activarla. #78350 (Shankar Iyer). - Ahora usamos el número de réplicas para determinar el tamaño de la tarea de lectura con las réplicas paralelas habilitadas. Esto proporciona una mejor distribución del trabajo entre réplicas cuando la cantidad de datos que se va a leer no es muy grande. #78695 (Nikita Taranov).
- Permite fusionar en paralelo los estados de
uniqExactdurante la etapa final de la agregación distribuida. #78703 (Nikita Taranov). - Corrige una posible degradación del rendimiento en la fusión paralela de estados
uniqExactpara la agregación por clave. #78724 (Nikita Taranov). #* Sustituye las consultasDELETE FROM ... WHERE 1porTRUNCATE. (Revertido). #78739 (Konstantin Vedernikov). - Reduce la cantidad de llamadas a la API List Blobs de Azure Storage. #78860 (Julia Kartseva).
- Incorporar, si es posible, las condiciones de igualdad del paso de filtro del plan de consulta a la condición de
JOINpara poder usarlas como claves de la tabla hash. #78877 (Dmitry Novik). - Mejora el rendimiento del análisis de rutas de Hive usando
extractKeyValuePairsen lugar de expresiones regulares. #79067 (Arthur Passos). - Mejora el rendimiento del
INSERT SELECTdistribuido con réplicas en paralelo. #79441 (Azat Khuzhin). - Permite mover condiciones con subcolumnas a
PREWHERE. #79489 (Pavel Kruglov). - Mejoras de rendimiento en todos los tipos de bloom filter. #79800 (Delyan Kratunov).
- Evita que
LogSeriesLimiterrealice tareas de limpieza en cada instanciación, lo que evita la contención de bloqueos y las regresiones de rendimiento en escenarios de alta concurrencia. #79864 (filimonov). - Se habilita
compile_expressions(compilador JIT para fragmentos de expresiones ordinarias) de forma predeterminada. Esto cierra #51264, #56386 y #66486. #79907 (Alexey Milovidov). - Acelera las consultas con la optimización de conteo trivial. #79945 (Raúl Marín).
- Se añadió una ruta optimizada en
UniqExactSet::mergecuando uno de los conjuntos está vacío. Además, ahora, si el conjunto LHS es de dos niveles y el RHS es de un solo nivel, no se realizará la conversión del RHS a dos niveles. #79971 (Nikita Taranov). - Añada
__attribute__((always_inline))aconvertDecimalsImpl. #79999 (Konstantin Bogdanov). - Se establece
input_format_parquet_bloom_filter_push_downentruede forma predeterminada. Además, se corrige un error en el historial de cambios de la configuración. #80058 (Alexey Milovidov). #* El logging pasa a ser asíncrono de forma predeterminada. Puede desactivarse estableciendo<async>false</async>en<logger>. #80125 (Raúl Marín). - Mejora la eficiencia en la reutilización de memoria y reduce los fallos de página al usar las tablas hash de dos niveles. #80245 (Jiebin Sun).
- Evita actualizaciones innecesarias y reduce la contención por bloqueos en QueryConditionCache. #80247 (Jiebin Sun).
- Pequeña optimización de
concatenateBlocks, que puede ser beneficiosa para el Hash join paralelo. #80328 (李扬). - Al seleccionar rangos de marcas a partir del rango de la clave primaria, no se puede usar la búsqueda binaria si la clave primaria está envuelta en funciones. Este PR corrige esta limitación: la búsqueda binaria aún puede aplicarse cuando la clave primaria está envuelta en una cadena de funciones siempre monótonas, o cuando la RPN contiene un elemento que siempre es verdadero. Este PR cierra #45536. #80597 (zoomxi).
- Mejora la velocidad de apagado del motor Kafka (elimina un retraso adicional de 3 segundos cuando hay varias tablas Kafka). #80796 (Azat Khuzhin).
- Reduce el uso de memoria de las async inserts y mejora el rendimiento de las consultas INSERT. #80972 (Raúl Marín).
- No generar perfiles de los procesadores si la tabla de registros está deshabilitada. #81256 (Raúl Marín).
- Se acelera
toFixedStringcuando el valor de entrada es exactamente el solicitado. #81257 (Raúl Marín). - No procesar los valores de cuota si el usuario no tiene límites. #81549 (Raúl Marín).
- Hacer que ProcfsMetricsProvider sea thread_local para mantener abiertos los archivos entre tareas. #81576 (Raúl Marín).
- Se corrigió una regresión de rendimiento en el seguimiento de la memoria. #81694 (Michael Kolupaev).
Mejora
clickhouse-local conservará sus bases de datos después del reinicio si especifica el argumento de la línea de comandos --path. Esto cierra #50647. Esto cierra #49947. #71722 (Alexey Milovidov).
EXPLAIN SYNTAXahora utiliza un nuevo analizador. Devuelve un árbol de sintaxis abstracta (AST) construido a partir del árbol de consulta. Se añadió la opciónquery_tree_passespara controlar el número de pasadas que se ejecutarán antes de convertir el árbol de consulta en el AST. #74536 (Vladimir Cherkasov). #* Se usa de forma predeterminada la política de caché SLRU en la caché del sistema de archivos. #75072 (Kseniia Sumarokova).- Se refactorizó la lógica de inserción en vistas. #77309 (Sema Checherinda).
- Las funciones de tabla de clúster para almacenamiento de objetos (p. ej.,
s3Cluster) ahora asignarán los archivos a las réplicas para su lectura según un hash consistente, a fin de mejorar la localidad de la caché. #77326 (Andrej Hoos). - Actualiza las credenciales de S3 tras el error
AuthenticationRequired. #77353 (Vitaly Baranov). - Se incorporó la configuración del proxy en algunos búferes HTTP con ayuda de constructores. #77693 (Arthur Passos).
- Se añadieron métricas de diccionarios a
system.asynchronous_metrics-DictionaryMaxUpdateDelay- El retraso máximo (en segundos) en la actualización del diccionario. -DictionaryTotalFailedUpdates- Número de errores desde la última carga correcta en todos los diccionarios. #78175 (Vlad). - Añadir las funciones
divideOrNull,moduloOrNull,intDivOrNull,positiveModuloOrNullpara que devuelvan NULL cuando el argumento de la derecha sea cero. #78276 (kevinyhzou). - Amplía la función
isIPAddressInRangepara admitir los tipos de datos String, IPv4, IPv6, Nullable(String), Nullable(IPv4) y Nullable(IPv6). #78364 (YjyJeff). - Cambiar dinámicamente la configuración del pool de conexiones del motor PostgreSQL. #78414 (Samay Sharma).
- Permite especificar
_part_offseten una proyección normal. Este es el primer paso para crear un índice de proyección. Se puede usar con #58224 y puede contribuir a mejorar https://github.com/ClickHouse/ClickHouse/pull/63207. #78429 (Amos Bird). - Mejora la optimización de la clave de segmentación en las consultas distribuidas. #78452 (fhw12345).
- Añade nuevas columnas (
create_queryysource) asystem.named_collections. Cierra #78179. #78582 (MikhailBurdukov). - Se añadió el campo
conditiona la tabla del sistemasystem.query_condition_cache. Almacena la condición en texto claro cuyo hash se usa como clave en la caché de condiciones de consulta. #78671 (Robert Schulze). - Se implementa una lógica similar al reequilibrio de Kafka para StorageKafka2 usando ClickHouse Keeper. Para cada réplica, admitimos dos tipos de bloqueos de partición: bloqueos permanentes y bloqueos temporales. La réplica intenta mantener los bloqueos permanentes el mayor tiempo posible; en un momento dado, no hay más de
all_topic_partitions / active_replicas_count(dondeall_topic_partitionses el número total de particiones yactive_replicas_countes el número de réplicas activas) bloqueos permanentes en la réplica; si hay más, la réplica libera algunas particiones. Algunas particiones quedan bloqueadas temporalmente por la réplica. El número máximo de bloqueos temporales en una réplica cambia dinámicamente para dar a otras réplicas la oportunidad de tomar algunas particiones como bloqueos permanentes. Al actualizar los bloqueos temporales, la réplica los libera todos e intenta tomar otros de nuevo. #78726 (Daria Fomina). - Añade opciones de configuración de tabla para SASL y credenciales al motor de tabla
Kafka. Esto permite configurar directamente en la sentenciaCREATE TABLEla autenticación basada en SASL para Kafka y sistemas compatibles con Kafka, en lugar de tener que usar archivos de configuración o colecciones con nombre. #78810 (Christoph Wurm). - Añade una advertencia sobre las bases de datos que podrían haberse creado para guardar tablas dañadas. #78841 (János Benjamin Antal).
- Ahora también se pueden crear índices de similitud vectorial sobre columnas
BFloat16. #78850 (Robert Schulze). - Se admiten marcas temporales Unix con parte fraccionaria en el análisis de DateTime64 con mejor esfuerzo. #78908 (Pavel Kruglov).
- En la implementación de delta-kernel de DeltaLake para almacenamiento, se corrige
columnMappingMode.namey se añaden pruebas para la evolución del esquema. #78921 (Kseniia Sumarokova). - Mejora de la inserción en una columna Variant en el formato Values mediante una mejor conversión de valores. #78923 (Pavel Kruglov).
- Se añade la columna virtual
_timeal motorS3Queue. #78926 (Anton Ivashkin). - La función
tokensse amplió para aceptar unargumentoadicional “tokenizer”, además de otros argumentos específicos del tokenizer. #79001 (Elmi Ahmadov). - La sentencia
SHOW CLUSTERahora expande las macros (si las hay) de su argumento. #79006 (arf42). - Las funciones hash ahora admiten
NULLdentro de arrays, tuples y maps. (incidencias #48365 y #48623). #79008 (Michael Kolupaev). - Compatibilidad con la actualización en tablas MergeTree de solo lectura. #79033 (Alexey Milovidov). #* Se actualiza cctz a 2025a. #79043 (Raúl Marín).
- Hacer que la configuración que controla el cierre de la conexión cuando la CPU está sobrecargada pueda recargarse en caliente. #79052 (Alexey Katsman).
- Es mejor en términos de usabilidad. #79066 (Alexey Milovidov).
- Se habilita de forma predeterminada la caché de condiciones de consulta. #79080 (Alexey Milovidov). #* Permite deshacer el cierre de pestañas en la Web UI. Con esto se cierra #71284. #79084 (Alexey Milovidov).
- Eliminar la configuración durante
recoverLostReplica, tal como se hizo en https://github.com/ClickHouse/ClickHouse/pull/78637. #79113 (Nikita Mikhaylov). - Añade los ProfileEvents ParquetReadRowGroups y ParquetPrunedRowGroups para perfilar la poda del índice Parquet. #79180 (flynn).
- Agregar el prefijo del contenedor a las rutas de datos mostradas en system.tables para discos simples en Azure Blob Storage, de modo que la información sea coherente con S3 y GCP. #79241 (Julia Kartseva).
- Soporte para modificar una base de datos en clúster. #79242 (Tuan Pham Anh).
- Omitir explícitamente las ejecuciones perdidas de recopilación de estadísticas para QueryMetricLog; de lo contrario, el registro tardará mucho en alcanzar la hora actual. #79257 (Mikhail Artemenko).
- Se añadió la posibilidad de aplicar eliminaciones ligeras sobre la marcha (con los ajustes
lightweight_deletes_sync = 0,apply_mutations_on_fly = 1. #79281 (Anton Popov). - Se optimizaron las mutaciones
ALTER ... DELETEpara las partes en las que deben eliminarse todas las filas. Ahora, en esos casos se crea una parte vacía en lugar de la parte original, sin ejecutar ninguna mutación. #79307 (Anton Popov). - Pequeñas optimizaciones en
CHColumnToArrowColumn. #79308 (Bharat Nallan). - La configuración
allow_archive_path_syntaxse marcó como experimental por error. Se añadió una prueba para evitar que las configuraciones experimentales estén habilitadas de forma predeterminada. #79320 (Alexey Milovidov). - Ahora es posible ajustar la configuración de la caché de páginas por consulta. Esto es necesario para experimentar más rápido y para poder ajustar con precisión las consultas de alto rendimiento y baja latencia. #79337 (Alexey Milovidov).
- No mostrar sugerencias numéricas en los formatos Pretty para números que se parezcan a la mayoría de los hashes de 64 bits. Esto cierra #79334. #79338 (Alexey Milovidov).
- Si los datos en formato Pretty se muestran en la terminal y un bloque posterior tiene los mismos anchos de columna, puede continuar a partir del bloque anterior, uniéndose a él al mover el cursor hacia arriba. Esto cierra #79333. La función se controla mediante la nueva configuración
output_format_pretty_glue_chunks. #79339 (Alexey Milovidov). - Los colores de los gráficos en los dashboards avanzados se calcularán a partir del hash de la consulta correspondiente. Esto facilita recordar y localizar un gráfico al desplazarse por el dashboard. #79341 (Alexey Milovidov).
- Se añade la métrica asíncrona
FilesystemCacheCapacity: la capacidad total del sistema de archivos virtualcache. Esto es útil para la monitorización global de la infraestructura. #79348 (Alexey Milovidov). - Optimizar el acceso a system.parts (leer el tamaño de columnas/índices solo cuando se solicite). #79352 (Azat Khuzhin).
- Se seleccionan los campos importantes para la consulta
'SHOW CLUSTER <name>'en lugar de todos los campos. #79368 (Tuan Pham Anh). - Permite especificar opciones de almacenamiento para
DatabaseCatalog. #79407 (Kseniia Sumarokova). - Se añadió compatibilidad con almacenamiento local en delta kernel. #79416 (Kseniia Sumarokova).
- Se añade una configuración a nivel de consulta para habilitar delta-kernel-rs:
allow_experimental_delta_kernel_rs. #79418 (Kseniia Sumarokova). - Corrige un posible bucle infinito al listar blobs en el almacenamiento de blobs de Azure/S3. #79425 (Alexander Gololobov).
- Ahora, ClickHouse también acepta parámetros de consulta como
param-<name>(guion) junto conparam_<name>(guion bajo). Con esto se resuelve #63093. #79429 (Engel Danila). #* Se añade el ajuste de la caché del sistema de archivosmax_size_ratio_to_total_space. #79460 (Kseniia Sumarokova). - Mensaje de advertencia detallado sobre la reducción de ancho de banda al copiar datos de un S3 local a un S3 remoto con la suma de comprobación habilitada. #79464 (VicoWu).
- En
clickhouse-benchmark, se reconfiguró la opciónreconnectpara que acepte 0, 1 o N como valores de reconexión, según corresponda. #79465 (Sachin Kumar Singh). - Se agrega la configuración
input_format_max_block_size_bytespara limitar, en bytes, los bloques creados en los formatos de entrada. Esto puede ayudar a evitar un uso elevado de memoria durante la importación de datos cuando las filas contienen valores grandes. #79495 (Pavel Kruglov). - Mejora la velocidad y el uso de memoria de sparseGrams. #79517 (Konstantin Vedernikov).
- Evita la copia adicional del bloque al insertarlo en una parte compacta cuando sea posible. #79536 (Pavel Kruglov).
- Se habilita de forma predeterminada la implementación
delta-kerneldel almacenamientoDeltaLake. #79541 (Kseniia Sumarokova). - Si leer desde una URL implica varias redirecciones, la configuración
enable_url_encodingse aplica correctamente en toda la cadena de redirecciones. #79563 (Shankar Iyer). - Permitir
ALTER TABLE ... MOVE|REPLACE PARTITIONen tablas ubicadas en distintos discos plain_rewritable. #79566 (Julia Kartseva). - Se admiten subconsultas escalares correlacionadas en la cláusula
WHERE. Cierra #6697. #79600 (Dmitry Novik). - Anteriormente, cuando
input_format_parquet_max_block_size = 0, ClickHouse se bloqueaba. Ahora este comportamiento se ha corregido. Esto cierra #79394. #79601 (abashkeev). - Se añade la configuración
throw_on_errorpara startup_scripts: cuandothrow_on_errores true, el servidor no se iniciará a menos que todas las consultas finalicen correctamente. De forma predeterminada,throw_on_errores false, lo que mantiene el comportamiento anterior. #79732 (Aleksandr Musorin). - El índice de similitud vectorial ahora también se usa si el vector de referencia es de tipo
Array(BFloat16). #79745 (Shankar Iyer). - Añade
last_error_message,last_error_traceyquery_ida la tablasystem.error_log. Ticket relacionado #75816. #79836 (Andrei Tinikov). #* Habilita el envío de informes de fallos de forma predeterminada. Esto puede desactivarse en el archivo de configuración del servidor. #79838 (Alexey Milovidov). - La tabla del sistema
system.functionsahora muestra en qué versión de ClickHouse se introdujo por primera vez cada función. #79839 (Robert Schulze). - Se añadió la configuración
access_control_improvements.enable_user_name_access_type. Esta configuración permite habilitar o deshabilitar privilegios precisos para usuarios/roles, introducida en https://github.com/ClickHouse/ClickHouse/pull/72246. Puede que quiera desactivar esta configuración si tiene un clúster con réplicas anteriores a la versión 25.1. #79842 (pufit). - La implementación adecuada del método
ASTSelectWithUnionQuery::clone()ahora también tiene en cuenta el campois_normalized. Esto podría ayudar con #77569. #79909 (Nikita Mikhaylov). - Se admiten subconsultas correlacionadas en la lista de proyección en casos sencillos. #79925 (Dmitry Novik).
- Corrige el formato inconsistente de ciertas consultas con el operador
EXCEPT. Si el lado izquierdo del operadorEXCEPTtermina en*, la consulta formateada pierde los paréntesis y luego se analiza como un*con el modificadorEXCEPT. Estas consultas las detecta el fuzzer y es poco probable que aparezcan en la práctica. Esto cierra #79950. #79952 (Alexey Milovidov). - Se permite añadir
http_response_headersenhttp_handlersde cualquier tipo. #79975 (Andrey Zvonov). - Pequeña mejora en el análisis del tipo JSON al usar una caché para el orden de deserialización de variantes. #79984 (Pavel Kruglov).
- Permitir mover el predicado
GLOBAL [NOT] INa la cláusulaPREWHEREcuando corresponda. #79996 (Eduard Karacharov). - Añade la configuración
s3_slow_all_threads_after_network_error. #80035 (Vitaly Baranov). - El nivel de logging de las partes seleccionadas para fusionar era incorrecto (Information). Cierra #80061. #80062 (Alexey Milovidov).
- La función reverse es compatible con el tipo de datos Tuple. Cierra #80053. #80083 (flynn).
- El valor predeterminado de la configuración
enble_url_encodingahora esFalse. #80088 (Shankar Iyer). - Este pequeño parche resuelve #75817: permite obtener los datos de
auxiliary_zookeepersdesde la tablasystem.zookeeper. #80146 (Nikolay Govorov). - La búsqueda vectorial con el índice de similitud vectorial ahora es beta (antes era experimental). #80164 (Robert Schulze).
- Se añaden métricas asíncronas sobre los sockets TCP del servidor. Esto mejora la observabilidad. Cierra #80187. #80188 (Alexey Milovidov).
- La función
tokensahora admitestringcomo tokenizador. #80195 (Robert Schulze). - Réplicas paralelas: evita esperar a réplicas lentas sin usar si todas las tareas de lectura ya se han asignado a otras réplicas. #80199 (Igor Nikonov).
- Se admite
anylast_respect_nullsyany_respect_nullsensimpleAggregateFunction. #80219 (Diskein). - Elimina la llamada innecesaria a
adjustCreateQueryForBackup()para las bases de datos replicadas. #80282 (Vitaly Baranov). #* Permite opciones adicionales (que van después de--, como-- --config.value='abc') enclickhouse-localsin el signo igual. Cierra #80292. #80293 (Alexey Milovidov). - Resaltar los metacaracteres en las consultas
SHOW ... LIKE. Esto cierra #80275. #80297 (Alexey Milovidov). #* Hacer persistente la UDF SQL enclickhouse-local. La función creada previamente se cargará al iniciar. Esto cierra #80085. #80300 (Alexey Milovidov). - Se admite la comparación entre
Time/Time64. #80327 (Yarik Briukhovetskyi). - Se corrigió la descripción en el plan EXPLAIN de un paso DISTINCT preliminar. #80330 (UnamedRus).
- Permitir el uso de named collections en ODBC/JDBC. #80334 (Andrey Zvonov).
- Se habilita la compatibilidad con el filtrado mediante múltiples proyecciones, lo que permite usar más de una proyección para el filtrado a nivel de parte. Esto soluciona #55525. Este es el segundo paso para implementar el índice de proyección, después de #78429. #80343 (Amos Bird).
- Métricas del número de discos de solo lectura y averiados. Se registra un indicador cuando se inicia DiskLocalCheckThread. #80391 (VicoWu).
- Se añadió compatibilidad para el almacenamiento
s3_plain_rewritablecon proyecciones. En versiones anteriores, los objetos de metadatos en S3 que hacían referencia a proyecciones no se actualizaban cuando se movían. Cierra #70258. #80393 (Sav). - Las réplicas paralelas usan un tiempo de espera de conexión independiente; consulta la configuración
parallel_replicas_connect_timeout_ms. Antes, las configuracionesconnect_timeout_with_failover_ms/connect_timeout_with_failover_secure_msse usaban como valores de tiempo de espera de conexión para las consultas de réplicas paralelas (1 segundo de forma predeterminada). #80421 (Igor Nikonov). - El comando
SYSTEM UNFREEZEno intentará buscar partes en discos de solo lectura ni de escritura única. Esto cierra #80430. #80432 (Alexey Milovidov). - Se cambió el nivel de registro de un mensaje sobre partes fusionadas de INFO a TRACE. #80476 (Hans Krutzer).
- Se implementa la serialización aplanada para Dynamic y JSON en formato Native, que permite serializar y deserializar datos Dynamic y JSON sin estructuras especiales como shared variant para Dynamic y shared data para JSON. Esta serialización se puede habilitar estableciendo
output_format_native_use_flattened_dynamic_and_json_serialization. Esta serialización se puede usar para facilitar la compatibilidad de Dynamic y JSON con el protocolo TCP en clientes en distintos lenguajes. #80499 (Pavel Kruglov). - Cambia el comportamiento predeterminado de la poda de particiones para una tabla Iceberg. #80583 (Melvyn Peignon).
- Añade dos nuevos ProfileEvents para la observabilidad del algoritmo de búsqueda en índices:
IndexBinarySearchAlgorithmyIndexGenericExclusionSearchAlgorithm. #80679 (Pablo Marcos). - No registrar advertencias en los logs sobre
MADV_POPULATE_WRITEno compatible en kernels antiguos (para evitar ensuciar los logs). #80704 (Robert Schulze). - Se añadió compatibilidad para Date32 y DateTime64 en TTL. #80710 (Andrey Zvonov).
- Ajuste de los valores de compatibilidad de
max_merge_delayed_streams_for_parallel_write. #80760 (Azat Khuzhin). - Se corrige un fallo: si se lanza una excepción al intentar eliminar un archivo temporal (se usan para volcar datos temporales al disco) en el destructor, el programa puede terminar. #80776 (Alexey Milovidov).
- Se añade el modificador
IF EXISTSaSYSTEM SYNC REPLICA. #80810 (Raúl Marín). - Se amplía el mensaje de excepción sobre “Having zero bytes, but read range is not finished…” y se añade la columna finished_download_time a system.filesystem_cache’. #80849 (Kseniia Sumarokova).
- Anteriormente, el almacenamiento
packedno era compatible con el índice de texto completo, porque el ID del segmento se actualizaba sobre la marcha al leer y escribir el archivo (.gin_sid) en disco. En el caso del almacenamientopacked, no se admite leer un valor de un archivo sin confirmar, y esto provocaba un problema. #80852 (Elmi Ahmadov). - Añade una sección sobre el algoritmo de búsqueda a la salida de
EXPLAINcuando se usa conindexes = 1. Muestra “binary search” o “generic exclusion search”. #80881 (Pablo Marcos). - A principios de 2024,
prefer_column_name_to_aliasestaba fijado de forma rígida a True para el handler de MySQL porque el nuevo analizador no estaba habilitado de forma predeterminada. Ahora, esa restricción se ha eliminado. #80916 (Yarik Briukhovetskyi). - Ahora
system.iceberg_historymuestra el historial de las bases de datos de catálogo, como glue o iceberg rest. Además, se renombraron las columnastable_nameydatabase_nameatableydatabaseensystem.iceberg_historypara mantener la coherencia. #80975 (alesapin). - Se permite el modo de solo lectura para la función de tabla
merge, por lo que no se requiere el privilegioCREATE TEMPORARY TABLEpara usarla. #80981 (Miсhael Stetsyuk). - Mejor introspección de las cachés en memoria (se expone información sobre las cachés en
system.metricsen lugar de ensystem.asynchronouse_metrics, que está incompleto). Se añade el tamaño de las cachés en memoria (en bytes) adashboard.html.VectorSimilarityIndexCacheSize/IcebergMetadataFilesCacheSizese ha renombrado aVectorSimilarityIndexCacheBytes/IcebergMetadataFilesCacheBytes. #81023 (Azat Khuzhin). - Se ignoran las bases de datos con motores que no pueden contener tablas RocksDB al leer desde system.rocksdb. #81083 (Pervakov Grigorii).
- Se permiten
filesystem_cachesynamed_collectionsen el archivo de configuración declickhouse-local. #81105 (Alexey Milovidov). - Se corrige el resaltado de
PARTITION BYen las consultasINSERT. En versiones anteriores,PARTITION BYno se resaltaba como palabra clave. #81106 (Alexey Milovidov). #* Dos pequeñas mejoras en la Web UI: gestionar correctamente las consultas sin salida, comoCREATEeINSERT(hasta hace poco, estas consultas mostraban un indicador de carga infinito); - al hacer doble clic en una tabla, desplazarse a la parte superior. #81131 (Alexey Milovidov). #* Se actualizac-aresav1.34.5. #81159 (Konstantin Bogdanov). #* Se actualiza curl a 8.14 para corregir CVE-2025-5025 y CVE-2025-4947. #81171 (larryluogit). #* Se actualiza libarchive a 3.7.9 para corregir: CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615. #81174 (larryluogit). #* Se actualiza libxml2 a 2.14.3. #81187 (larryluogit). MemoryResidentWithoutPageCacheproporciona la cantidad de memoria física utilizada por el proceso del servidor, excluida la caché de páginas en espacio de usuario, en bytes. Esto ofrece una visión más precisa del uso real de memoria cuando se utiliza la caché de páginas en espacio de usuario. Cuando la caché de páginas en espacio de usuario está deshabilitada, este valor es igual a MemoryResident. #81233 (Jayme Bird).- Marcar como ya registradas las excepciones registradas manualmente en el cliente, el servidor local, el cliente de Keeper y la aplicación disks, para que no se registren dos veces. #81271 (Miсhael Stetsyuk).
- Los ajustes
use_skip_indexes_if_finalyuse_skip_indexes_if_final_exact_modeahora tienenTruecomo valor predeterminado. Las consultas con la cláusulaFINALahora usarán índices de omisión (si corresponde) para preseleccionar gránulos y también leer los gránulos adicionales que correspondan a rangos de clave primaria coincidentes. Los usuarios que necesiten el comportamiento anterior, con resultados aproximados o imprecisos, pueden estableceruse_skip_indexes_if_final_exact_modeen FALSE tras una evaluación cuidadosa. #81331 (Shankar Iyer). #* Cuando tenga varias consultas en la web UI, se ejecutará la que esté bajo el cursor. Continuación de #80977. #81354 (Alexey Milovidov). - Este PR corrige problemas en la implementación de
is_stricten las verificaciones de monotonicidad de las funciones de conversión. Actualmente, algunas funciones de conversión, como toFloat64(UInt32) y toDate(UInt8), devuelven incorrectamente is_strict como false cuando deberían devolver true. #81359 (zoomxi). #* En un sistema de archivos con journal,mkdirse escribe en el journal del sistema de archivos, que se almacena de forma persistente en disco. Si el disco es lento, esto puede llevar bastante tiempo. Sin duda tiene sentido sacarlo del alcance del bloqueo de reserva. #81371 (Kseniia Sumarokova). - Al comprobar si un
KeyConditioncoincide con un rango continuo, si la clave está envuelta en una cadena no estricta de funciones, es posible que unConstraint::POINTdeba convertirse en unConstraint::RANGE. Por ejemplo,toDate(event_time) = '2025-06-03'implica un rango paraevent_time: [‘2025-06-03 00:00:00’, ‘2025-06-04 00:00:00’). Este PR corrige este comportamiento. #81400 (zoomxi). #* Se usapostgres16.9. #81437 (Konstantin Bogdanov). #* Se usaopenssl3.2.4. #81438 (Konstantin Bogdanov). #* Se usaabseil-cpp2025-01-27. #81440 (Konstantin Bogdanov). #* Se usamongo-c-driver1.30.4. #81449 (Konstantin Bogdanov). #* Se usakrb51.21.3-final. #81453 (Konstantin Bogdanov). #* Se usaorc2.1.2. #81455 (Konstantin Bogdanov). #* Se añade compatibilidad con el argumento--databaseenclickhouse-local. Puede cambiar a una base de datos creada previamente. Esto cierra #44115. #81465 (Alexey Milovidov). #* Los aliasclickhouse/chinvocaránclickhouse-clienten lugar declickhouse-localsi se especifican--hosto--port. Continuación de #79422. Cierra #65252. #81509 (Alexey Milovidov). - Ahora que tenemos la distribución de los tiempos de respuesta de Keeper, podemos ajustar los intervalos del histograma. #81516 (Miсhael Stetsyuk).
- Aplazar la lectura de los archivos de manifiesto de Iceberg hasta la primera lectura durante una consulta. #81619 (Daniil Ivanik).
#* Usar
grpc1.73.0. #81629 (Konstantin Bogdanov). #* Usardelta-kernel-rsv0.12.1. #81707 (Konstantin Bogdanov). - Se añade el evento de perfil
PageCacheReadBytes. #81742 (Kseniia Sumarokova).
Corrección de errores (mal funcionamiento visible para el usuario en una versión estable oficial)
- Corrige la vista con parámetros en la consulta
SELECT EXCEPT. Cierra #49447. #57380 (Nikolay Degterinsky). - Analizador: corrige el nombre de la proyección de la columna tras la promoción del tipo de columna en el join. Cierra #63345. #63519 (Dmitry Novik).
- Una vista materializada puede iniciarse demasiado tarde, p. ej., después de la tabla de Kafka que le envía datos. #72123 (Ilya Golshtein).
- Se corrigió un error lógico en los casos de colisión de nombres de columnas cuando analyzer_compatibility_join_using_top_level_identifier está habilitado. #75676 (Vladimir Cherkasov).
- Se corrigieron fallos poco frecuentes al leer una tabla
MergeTreedespués de múltiples consultas asíncronas (conalter_sync = 0)RENAME COLUMNyADD COLUMN. #76346 (Anton Popov). - Se corrige la reescritura de consultas
SELECTdurante la creación deVIEWcon el analizador activado. Cierra #75956. #76356 (Dmitry Novik). - Corrige el uso de CTE en predicados con pushdown cuando
allow_push_predicate_ast_for_distributed_subqueriesestá habilitado. Corrige #75647. Corrige #79672. #77316 (Dmitry Novik). - Se corrige la aplicación de
async_insertdesde el servidor (medianteapply_settings_from_server) (anteriormente provocaba errores deUnknown packet 11 from serveren el cliente). #77578 (Azat Khuzhin). - Se corrigió un problema por el que la vista materializada actualizable en bases de datos replicadas no funcionaba en las réplicas recién añadidas. #77774 (Michael Kolupaev).
- Se corrigió un problema por el que las vistas materializadas actualizables rompían las copias de seguridad. #77893 (Michael Kolupaev).
- Se corrigió un antiguo error lógico que se producía en
transform. #78247 (Yarik Briukhovetskyi). - Corrige un problema por el que
SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo'informaba correctamente de una ejecución satisfactoria incluso cuando la réplica especificada no existía. Ahora, el comando valida correctamente que la réplica exista en Keeper antes de intentar la sincronización. #78405 (Jayme Bird). - Se corrigen algunos casos en los que el índice secundario no se aplicaba al usar el analizador. Corrige #65607, corrige #69373. #78485 (Nikolai Kochetov).
- Corrige el volcado de eventos de perfil (
NetworkSendElapsedMicroseconds/NetworkSendBytes) para el protocolo HTTP con compresión habilitada (el error no debería superar el tamaño del búfer, normalmente de alrededor de 1 MiB). #78516 (Azat Khuzhin). #* ```sql CREATE TABLE t0 ( key Int32, value Int32 ) ENGINE=MergeTree() PRIMARY KEY key PARTITION BY key % 2;. #78593 (Vlad). - Corrección del analizador que producía
LOGICAL_ERRORcuandoJOIN ... USINGincluye una columnaALIAS; debería generar un error adecuado. #78618 (Yakov Olkhovskiy). - Se corrige el analizador:
CREATE VIEW ... ON CLUSTERfalla si SELECT contiene argumentos posicionales. #78663 (Yakov Olkhovskiy). - Corrige el error
Block structure mismatchen el caso deINSERT SELECTen una función de tabla con inferencia de esquema siSELECTtiene subconsultas escalares. #78677 (Pervakov Grigorii). - Corrección del analizador: con
prefer_global_in_and_join=1, para una tabla Distributed en una consulta SELECT, la funciónindebe sustituirse porglobalIn. #78749 (Yakov Olkhovskiy). - Se corrigieron diversos tipos de consultas
SELECTque leen de tablas con motorMongoDBo la función de tablamongodb: consultas con conversión implícita de un valor constante en la cláusulaWHERE(p. ej.,WHERE datetime = '2025-03-10 00:00:00'); consultas conLIMITyGROUP BY. Anteriormente, podían devolver resultados incorrectos. #78777 (Anton Popov). - Se corrige la conversión entre distintos tipos JSON. Ahora se realiza mediante un cast simple, pasando por la conversión a/de String. Es menos eficaz, pero 100 % precisa. #78807 (Pavel Kruglov).
- Se corrigió un error lógico durante la conversión del tipo Dynamic a Interval. #78813 (Pavel Kruglov).
- Se corrige la reversión de columnas en caso de error de análisis de JSON. #78836 (Pavel Kruglov).
- Corrige el error ‘bad cast’ al hacer join con una columna de alias constante. #78848 (Vladimir Cherkasov).
- No se permite
PREWHEREen vistas materializadas sobre columnas con tipos diferentes en la vista y en la tabla de destino. #78889 (Pavel Kruglov). - Se corrigió un error lógico al analizar datos binarios incorrectos en una columna Variant. #78982 (Pavel Kruglov).
- Lanzar una excepción si el tamaño del lote de Parquet se establece en 0. Anteriormente, cuando
output_format_parquet_batch_size = 0, ClickHouse se bloqueaba. Ahora este comportamiento se ha corregido. #78991 (daryawessely). - Se corrigió la deserialización de los discriminadores de Variant con el formato basic en partes compactas. Se introdujo en https://github.com/ClickHouse/ClickHouse/pull/55518. #79000 (Pavel Kruglov).
- Los diccionarios de tipo
complex_key_ssd_cacheya no aceptan los parámetrosblock_sizeywrite_buffer_sizecon valor cero o negativo (problema #78314). #79028 (Elmi Ahmadov). - Evite usar Field en columnas no agregadas de SummingMergeTree. Esto podría provocar errores inesperados con tipos Dynamic/Variant usados en SummingMergeTree. #79051 (Pavel Kruglov).
- Se corrigió la lectura desde una vista materializada con una tabla de destino Distributed y una cabecera distinta en el analizador. #79059 (Pavel Kruglov).
- Se corrige un fallo en una situación muy específica cuando se utilizaba la función
currentDatabaseen seccionesCONSTRAINTpara consultasON CLUSTER. Cierra #78100. #79070 (pufit). - Corrige un error por el que
arrayUnion()devolvía valores adicionales (incorrectos) en tablas con inserciones en lotes. Corrige #75057. #79079 (Peter Nguyen). #* Corrige un segfault enOpenSSLInitializer. Cierra #79092. #79097 (Konstantin Bogdanov). - Se corrige la transmisión de roles externos en las consultas entre servidores. #79099 (Andrey Zvonov).
- Establezca siempre un prefijo para ListObject de S3. #79114 (Azat Khuzhin).
- Corrige un error por el que
arrayUnion()devolvía valores adicionales (incorrectos) en tablas con inserciones por lotes. Corrige #79157. #79158 (Peter Nguyen). - Se corrigió un error lógico tras el pushdown del filtro. #79164 (Pervakov Grigorii).
- Se pasa a usar IColumn en lugar de Field en SingleValueDataGeneric. Esto corrige los valores de retorno incorrectos de algunas funciones de agregado, como
argMax, para los tiposDynamic/Variant/JSON. #79166 (Pavel Kruglov). - Se corrige el motor de tabla DeltaLake cuando se usa la implementación de delta-kernel con endpoints basados en HTTP; se corrige NOSIGN. Cierra #78124. #79203 (Kseniia Sumarokova).
- Corrección de Keeper: Evita activar watches en solicitudes múltiples fallidas. #79247 (Antonio Andelic).
- Se prohíben los tipos Dynamic y JSON en
IN. Con la implementación actual deIN, pueden producirse resultados incorrectos. El soporte adecuado para estos tipos enINes complejo y podría implementarse en el futuro. #79282 (Pavel Kruglov). - Corrige la comprobación de rutas duplicadas durante el análisis del tipo JSON. #79317 (Pavel Kruglov).
- Corrige problemas de conexión con SecureStreamSocket. #79383 (Konstantin Bogdanov).
- Se corrige la carga de discos plain_rewritable que contienen datos. #79439 (Julia Kartseva).
- Se soluciona un fallo en el descubrimiento dinámico de subcolumnas en partes Wide de MergeTree. #79466 (Pavel Kruglov).
- Verifique la longitud del nombre de la tabla solo para las sentencias CREATE iniciales. No la verifique para las sentencias CREATE secundarias, a fin de evitar problemas de compatibilidad con versiones anteriores. #79488 (Miсhael Stetsyuk).
- Se corrigió el error
Block structure mismatchen varios casos relacionados con tablas con columnas dispersas. #79491 (Anton Popov). - Soluciona dos casos de
Logical Error: Can't set alias of * of Asterisk on alias. #79505 (Raúl Marín). - Se corrige la aplicación de la configuración use_native_copy y allow_azure_native_copy para Azure Blob Storage, y se actualiza el comportamiento para usar la copia nativa solo cuando las credenciales coinciden; esto resuelve #78964. #79561 (Smita Kulkarni).
- Se corrige el uso de rutas incorrectas al renombrar una base de datos Atomic. #79569 (Tuan Pham Anh).
- Se corrige ORDER BY en una columna JSON junto con otras columnas. #79591 (Pavel Kruglov).
- Corrige la duplicación de resultados al leer desde un origen remoto cuando
use_hedged_requestsyallow_experimental_parallel_reading_from_replicasestán deshabilitados. #79599 (Eduard Karacharov). - Se corrigió un fallo en la implementación de delta-kernel al usar Unity Catalog. #79677 (Kseniia Sumarokova).
- Resolver macros en clústeres de autodiscovery. #79696 (Anton Ivashkin).
- Corrige errores lógicos relacionados con el ámbito de origen desconocido de una columna que se producían al comprobar si esta columna estaba correlacionada. Corrige #78183. Corrige #79451. #79727 (Dmitry Novik).
- Se corrigen resultados incorrectos para conjuntos de agrupación con ColumnConst y Analyzer. #79743 (Andrey Zvonov).
- Se corrige la duplicación de resultados del segmento local al leer desde una tabla distribuida cuando la réplica local está desactualizada. #79761 (Eduard Karacharov).
- Gestionar adecuadamente
page_cache_limitscuando esté mal configurado. #79805 (Bharat Nallan). - Corrige el resultado de la función SQL
formatDateTimesi un especificador de formato de tamaño variable (p. ej.,%W, es decir, el día de la semanaMondayTuesday, etc.) va seguido de un especificador de formato compuesto (un especificador de formato que imprime varios componentes a la vez; p. ej.,%D, es decir, la fecha en formato estadounidense05/04/25). #79835 (Robert Schulze). - IcebergS3 admite la optimización de conteo, pero IcebergS3Cluster no. Como resultado, el valor de count() devuelto en modo clúster puede ser un múltiplo del número de réplicas. #79844 (wxybear).
- Corrige el orden de ordenación de los NaN con bit de signo negativo. #79847 (Pervakov Grigorii).
- Ahora
GROUP BY ALLya no tiene en cuenta la parteGROUPING. #79915 (Yarik Briukhovetskyi). - Corrige el error
AMBIGUOUS_COLUMN_NAMEcon materialización diferida cuando no se usa ninguna columna durante la ejecución de la consulta hasta la proyección. Por ejemplo, SELECT * FROM t ORDER BY rand() LIMIT 5. #79926 (Igor Nikonov). - Se corrigió la fusión incorrecta de estados en las funciones
TopK/TopKWeighted, que causaba valores de error excesivos incluso cuando la capacidad no se había agotado. #79939 (Joel Höner). - Ocultar la contraseña en la consulta
CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\'). #79941 (Han Fei). - Permite especificar un alias en
JOIN USING. Especifique este alias si se ha cambiado el nombre de la columna (p. ej., debido a `ARRAY JOIN). Corrige #73707. #79942 (Nikolai Kochetov). - Se respeta la configuración
readonlyen el almacenamiento de objetosazure_blob_storage. #79954 (Julia Kartseva). - Se corrigieron resultados incorrectos en consultas y fallos por falta de memoria al usar
match(column, '^…')con caracteres escapados con barra invertida. #79969 (filimonov). - Se desactiva el particionado de Hive para data lakes. Aborda parcialmente https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937. #80005 (Daniil Ivanik).
- No se podían aplicar los índices de omisión con expresiones lambda. Se corrige el caso en el que las funciones de nivel superior de la definición del índice coinciden exactamente con las de la consulta. #80025 (Nikolai Kochetov).
- Permitir que las vistas materializadas con UNION funcionen correctamente en réplicas nuevas. #80037 (Samay Sharma).
- Corrige la versión de los metadatos durante
attach parten la réplica que ejecuta el comando ATTACH_PART desde el registro de replicación. #80038 (Aleksei Filatov). - El especificador de formato
%een la función SQLparseDateTimeahora reconoce días de un solo dígito (p. ej.,3), mientras que antes requería un espacio de relleno (p. ej.,3). Esto hace que su comportamiento sea compatible con MySQL. Para conservar el comportamiento anterior, establezca la opciónparsedatetime_e_requires_space_padding = 1. (issue #78243). #80057 (Robert Schulze). - Los nombres de las funciones definidas por el usuario ejecutables (eUDF) no se añaden a la columna
used_functionsde la tablasystem.query_log, a diferencia de otras funciones. Este PR implementa la adición del nombre de la eUDF si la eUDF se utilizó en la petición. #80073 (Kyamran). #* Corrige las advertenciasCannot find 'kernel' in '[...]/memory.stat'en el registro de ClickHouse (problema #77410). #80129 (Robert Schulze). - Se corrige un error lógico en el formato Arrow con LowCardinality(FixedString). #80156 (Pavel Kruglov).
- Se corrige la lectura de subcolumnas en el motor Merge. #80158 (Pavel Kruglov).
- Corrige un error en la comparación entre tipos numéricos en
KeyCondition. #80207 (Yarik Briukhovetskyi). - Corrige AMBIGUOUS_COLUMN_NAME al aplicar materialización diferida a una tabla con proyecciones. #80251 (Igor Nikonov).
- Corrige la optimización incorrecta del recuento para filtros de prefijo de cadenas como LIKE ‘ab_c%’ al usar proyecciones implícitas. Esto corrige #80250. #80261 (Amos Bird).
- Corrige la serialización incorrecta de campos numéricos anidados como cadenas en documentos de MongoDB. Se elimina el límite máximo de profundidad de los documentos de MongoDB. #80289 (Kirill Nikiforov).
- Realiza verificaciones de metadatos menos estrictas para RMT en la base de datos Replicated. Cierra #80296. #80298 (Nikolay Degterinsky).
- Se corrige la representación textual de DateTime y DateTime64 para el almacenamiento de PostgreSQL. #80301 (Yakov Olkhovskiy).
- Se permite
DateTimecon zona horaria en las tablasStripeLog. Esto cierra #44120. #80304 (Alexey Milovidov). - Deshabilita el push-down de filtros para un predicado con una función no determinista cuando el paso del plan de consulta cambia el número de filas. Corrige #40273. #80329 (Nikolai Kochetov).
- Se corrigen posibles errores lógicos y bloqueos en las proyecciones con subcolumnas. #80333 (Pavel Kruglov).
- Soluciona el error
NOT_FOUND_COLUMN_IN_BLOCKcausado por la optimización de filter-push-down del sepJOINlógico cuando la expresiónONno es una igualdad trivial. Soluciona #79647 Soluciona #77848. #80360 (Nikolai Kochetov). - Corrige resultados incorrectos al leer claves en orden inverso en tablas particionadas. Esto soluciona #79987. #80448 (Amos Bird).
- Se corrigió la ordenación errónea en tablas con una clave Nullable y optimize_read_in_order habilitado. #80515 (Pervakov Grigorii).
- Se corrigió un problema que hacía que DROP de una vista materializada actualizable quedara bloqueado si la vista se había pausado con SYSTEM STOP REPLICATED VIEW. #80543 (Michael Kolupaev).
- Se corrige ‘Cannot find column’ con Tuple constante en una consulta Distributed. #80596 (Yakov Olkhovskiy).
- Se corrige la función
shardNumen tablas distribuidas conjoin_use_nulls. #80612 (János Benjamin Antal). - Se corrigen resultados incorrectos al leer una columna que existe en un subconjunto de tablas en el motor Merge. #80643 (Pavel Kruglov).
- La marca de tiempo de la tabla iceberg_history ahora debería ser correcta. #80711 (Melvyn Peignon).
- Se corrige el manejo de los globs enum de un solo elemento en las funciones de tabla de almacenamiento de objetos. #80716 (Konstantin Bogdanov).
- Se corrigieron los tipos de resultado incorrectos de las funciones de comparación con Tuple(Dynamic) y String que provocaban un error lógico. #80728 (Pavel Kruglov).
- Añade compatibilidad con el tipo de dato faltante
timestamp_ntzpara Unity Catalog. Corrige #79535, corrige #79875. #80740 (alesapin). - Corrige el error
THERE_IS_NO_COLUMNen consultas distribuidas conIN cte. Soluciona #75032. #80757 (Nikolai Kochetov). - Se corrige el número excesivo de archivos (lo que provoca un uso excesivo de memoria) para
ORDER BYexterno. #80777 (Azat Khuzhin). #* Es posible que este PR cierre #80742. #80783 (zoomxi). #* Se corrige un fallo en Kafka porque get_member_id() estaba creando std::string a partir de NULL (probablemente era un problema que solo se producía cuando había fallado la conexión con el broker). #80793 (Azat Khuzhin). - Esperar correctamente a que finalicen los consumidores antes de detener el motor Kafka (los consumidores activos tras el apagado pueden activar varias aserciones de depuración y también pueden leer datos de los brókers en segundo plano después de que la tabla se haya eliminado/desacoplado). #80795 (Azat Khuzhin).
- Se corrige
NOT_FOUND_COLUMN_IN_BLOCK, causado por la optimizaciónpredicate-push-down. Corrige #80443. #80834 (Nikolai Kochetov). - Corregido un error lógico al resolver el comodín de asterisco (*) en la función de tabla en
JOINconUSING. #80894 (Vladimir Cherkasov). - Corregido el cómputo de memoria de la caché de archivos de metadatos de Iceberg. #80904 (Azat Khuzhin).
- Se corrige el particionamiento erróneo con una clave de partición Nullable. #80913 (Pervakov Grigorii).
- Corrige el error
Table does not existen consultas distribuidas con predicado propagado (push-down) (allow_push_predicate_ast_for_distributed_subqueries=1) cuando la tabla de origen no existe en el nodo iniciador. Corrige #77281. #80915 (Nikolai Kochetov). - Se corrige el error lógico en las funciones anidadas con ventanas con nombre. #80926 (Pervakov Grigorii).
- Se corrigen los extremos en columnas Nullable y de coma flotante. #80970 (Pervakov Grigorii).
- Se corrige un posible cierre inesperado al consultar system.tables (probablemente cuando hay presión de memoria). #80976 (Azat Khuzhin).
- Se corrige el renombrado atómico con TRUNCATE para archivos cuya compresión se infiere por su extensión. #80979 (Pablo Marcos). #* Se corrige ErrorCodes::getName. #81032 (RinChanNOW).
- Se corrige un error por el que el usuario no podía listar tablas en Unity Catalog si no tenía permisos para todas ellas. Ahora todas las tablas se muestran correctamente; si se intenta leer una tabla restringida, se lanzará una excepción. #81044 (alesapin).
- Ahora, ClickHouse ignorará los errores y las respuestas inesperadas de los catálogos de lagos de datos al ejecutar la consulta
SHOW TABLES. Corrige #79725. #81046 (alesapin). - Corrige el parseo de
DateTime64desde enteros enJSONExtracty en el parseo del tipoJSON. #81050 (Pavel Kruglov). - Se refleja la configuración
date_time_input_formaten la caché de inferencia de esquema. #81052 (Pavel Kruglov). - Se corrigió un cierre inesperado en
INSERTsi se hacíaDROPde la tabla después de que comenzara la consulta, pero antes de que se enviaran las columnas. #81053 (Azat Khuzhin). - Se corrige el uso de un valor sin inicializar en quantileDeterministic. #81062 (Azat Khuzhin).
- Se corrige la gestión del recuento de hardlinks en las transacciones de disco de metadatastoragefromdisk. Se añaden pruebas. #81066 (Sema Checherinda).
- Los nombres de las User Defined Functions (UDF) no se añaden a la tabla
system.query_log, a diferencia de otras funciones. Este PR incorpora el nombre de la UDF en una de las dos columnas,used_executable_user_defined_functionsoused_sql_user_defined_functions, si la UDF se utilizó en la consulta. #81101 (Kyamran). - Se corrigieron los errores
Too large size ... passed to allocatoro los posibles bloqueos durante las inserciones a través del protocolo HTTP con formatos de texto (JSON,Values, …) y camposEnumomitidos. #81145 (Anton Popov). - Se corrigió LOGICAL_ERROR en el caso de una columna dispersa en un bloque INSERT enviado a una MV no MT. #81161 (Azat Khuzhin).
- Se corrige
Unknown table expression identifierparadistributed_product_mode_local=localcon replicación cruzada. #81162 (Nikolai Kochetov). - Se corrigió el almacenamiento en caché incorrecto del número de filas en archivos Parquet tras aplicar filtros. #81184 (Michael Kolupaev).
- Se corrige la configuración
max_size_to_total_spacede la caché fs cuando se usa con una ruta relativa de la caché. #81237 (Kseniia Sumarokova). - Se corrigió el fallo de clickhouse-local al generar tuplas o maps constantes en formato Parquet. #81249 (Michael Kolupaev).
- Verificar los offsets de arrays recibidos por la red. #81269 (Azat Khuzhin).
- Corrige un caso límite en una consulta que hace join entre tablas vacías y usa funciones de ventana. El error hace que se dispare el número de streams paralelos, lo que provoca OOM. #81299 (Alexander Gololobov).
- Correcciones para las funciones
Clusterde data lake (deltaLakeCluster,icebergCluster, etc.): (1) corrigen un posible fallo de segmentación enDataLakeConfigurational usar la funciónClustercon el analizador antiguo; (2) eliminan las actualizaciones duplicadas de metadatos del lago de datos (solicitudes adicionales al almacenamiento de objetos); (3) corrigen el listado redundante en el almacenamiento de objetos cuando el formato no se especifica explícitamente (algo que ya se había hecho para los motores de data lake no agrupados en clúster). #81300 (Kseniia Sumarokova). - Permite que el indicador
force_restore_datarecupere los metadatos perdidos de Keeper. #81324 (Raúl Marín). - Corrige un error de región en delta-kernel. Corrige #79914. #81353 (Kseniia Sumarokova).
- Se deshabilita el JIT incorrecto de divideOrNull. #81370 (Raúl Marín).
- Corrige un error de inserción cuando una tabla MergeTree tiene un nombre largo en la columna de partición. #81390 (hy123q).
- No almacene en memoria el contenido de varios archivos de manifiesto. #81470 (Daniil Ivanik).
- Corrige un posible fallo durante el cierre de los pools en segundo plano (
background_.*pool_size). #81473 (Azat Khuzhin). - Se corrigió una lectura fuera de límites en el formato
Npyque ocurría al escribir en una tabla con el motorURL. Esto cierra #81356. #81502 (Alexey Milovidov). - Es posible que la Web UI muestre
NaN%(los típicos problemas de JavaScript). #81507 (Alexey Milovidov). - Se corrige
DatabaseReplicatedparadatabase_replicated_enforce_synchronous_settings=1. #81564 (Azat Khuzhin). - Se corrige el orden de ordenación para los tipos LowCardinality(Nullable(…)). #81583 (Pervakov Grigorii).
- El servidor no debe mantener una conexión HTTP si la solicitud no se ha leído por completo desde el socket. #81595 (Sema Checherinda).
- Hacer que las subconsultas escalares correlacionadas devuelvan un resultado de tipo Nullable para la expresión de proyección. Se corrige el caso en que una subconsulta correlacionada produce un conjunto de resultados vacío. #81632 (Dmitry Novik).
- Se corrigió
Unexpected relative path for a deduplicated partduranteATTACHaReplicatedMergeTree. #81647 (Azat Khuzhin). - La configuración de la consulta
use_iceberg_partition_pruningno surtirá efecto para el almacenamiento Iceberg, porque usa el contexto global en lugar del contexto de la consulta. no es crítico porque su valor predeterminado es true. este PR puede corregirlo. #81673 (Han Fei). - Añadir una validación para la configuración de MergeTree
merge_max_block_sizea fin de garantizar que no sea cero. #81693 (Bharat Nallan). - Soluciona problemas de
clickhouse-localcon consultasDROP VIEWbloqueadas. #81705 (Bharat Nallan). - Se corrige el join de StorageRedis en algunos casos. #81736 (Pervakov Grigorii).
- Se corrige un bloqueo en
ConcurrentHashJoinconUSING ()vacío y con el analizador antiguo habilitado. #81754 (Nikita Taranov). - Corrección de Keeper: bloquear el commit de logs nuevos si hay una entrada no válida en los logs. Anteriormente, si el leader aplicaba algunos logs de forma incorrecta, seguía haciendo commit de logs nuevos, aunque el follower detectara una discrepancia en el digest y abortara. #81780 (Antonio Andelic).