ClickHouse/docs/es/changelog/index.md
Ivan 97f2a2213e
Move all folders inside /dbms one level up (#9974)
* Move some code outside dbms/src folder
* Fix paths
2020-04-02 02:51:21 +03:00

135 KiB
Raw Blame History

machine_translated
true

Lanzamiento de ClickHouse v20.3

Todos los derechos reservados.

Corrección de errores

  • Añadir ajuste use_compact_format_in_distributed_parts_names que permite escribir archivos para INSERT consultas en Distributed mesa con un formato más compacto. Esto corrige #9647. #9653 (alesapin). Hace que la versión 20.3 sea compatible con versiones anteriores de nuevo.
  • Corregir un error en una replicación que no permite que la replicación funcione si el usuario ha ejecutado mutaciones en la versión anterior. Esto corrige #9645. #9652 (alesapin). Hace que la versión 20.3 sea compatible con versiones anteriores de nuevo.
  • Se corrigieron los nombres de funciones internas incorrectos para sumKahan y sumWithOverflow. Conduzco a una excepción mientras uso estas funciones en consultas remotas. #9636 (Azat Khuzhin). Este problema estaba en todas las versiones de ClickHouse.
  • Se solucionó el problema: la zona horaria no se conservaba si escribía una expresión aritmética simple como time + 1 (en contraste con una expresión como time + INTERVAL 1 SECOND). Esto corrige #5743. #9323 (alexey-milovidov). Este problema estaba en todas las versiones de ClickHouse.
  • Corregir posibles excepciones Size of filter doesn't match size of column y Invalid number of rows in Chunk en MergeTreeRangeReader. Podrían aparecer mientras se ejecuta PREWHERE en algunos casos. Fijar #9132. #9612 (Anton Popov)
  • Permitir ALTER ON CLUSTER de Distributed tablas con replicación interna. Esto corrige #3268. #9617 (shinoi2). Este problema estaba en todas las versiones de ClickHouse.

Todos los derechos reservados.

Cambio incompatible hacia atrás

  • Se ha solucionado el problema file name too long al enviar datos para Distributed para un gran número de réplicas. Se corrigió el problema de que las credenciales de réplica se expusieran en el registro del servidor. El formato del nombre del directorio en el disco se cambió a [shard{shard_index}[_replica{replica_index}]]. #8911 (Mikhail Korotov) Después de actualizar a la nueva versión, no podrá degradar sin intervención manual, porque la versión anterior del servidor no reconoce el nuevo formato de directorio. Si desea degradar, debe cambiar el nombre manualmente de los directorios correspondientes al formato anterior. Este cambio sólo es relevante si ha utilizado INSERTs a Distributed tabla. En la versión 20.3.3 introduciremos una configuración que le permitirá habilitar el nuevo formato gradualmente.
  • Se ha cambiado el formato de las entradas de registro de replicación para los comandos de mutación. Tienes que esperar a que las mutaciones antiguas se procesen antes de instalar la nueva versión.
  • Implemente un generador de perfiles de memoria simple que vuelca stacktraces a system.trace_log cada N bytes sobre el límite de asignación suave #8765 (Ivan) #9472 (alexey-milovidov) La columna de system.trace_log fue renombrado desde timer_type a trace_type. Esto requerirá cambios en el análisis de rendimiento de terceros y herramientas de procesamiento de flamegraph.
  • Use la identificación de subproceso del sistema operativo en todas partes en lugar del número de subproceso interno. Esto corrige #7477 Antiguo clickhouse-client no puede recibir registros que se envían desde el servidor cuando send_logs_level está habilitado, porque se han cambiado los nombres y tipos de los mensajes de registro estructurados. Por otro lado, diferentes versiones de servidor pueden enviar registros con diferentes tipos entre sí. Cuando usted no utiliza el send_logs_level ajuste, no debería importarle. #8954 (alexey-milovidov)
  • Quitar indexHint función #9542 (alexey-milovidov)
  • Quitar findClusterIndex, findClusterValue función. Esto corrige #8641. Si estaba utilizando estas funciones, envíe un correo electrónico a clickhouse-feedback@yandex-team.com #9543 (alexey-milovidov)
  • Ahora no está permitido crear columnas o agregar columnas con SELECT subconsulta como expresión predeterminada. #9481 (alesapin)
  • Requiere alias para subconsultas en JOIN. #9274 (Artem Zuikov)
  • Mejorar ALTER MODIFY/ADD consultas lógica. Ahora no puedes ADD sin tipo, MODIFY expresión predeterminada no cambia el tipo de columna y MODIFY type no pierde el valor de expresión predeterminado. Fijar #8669. #9227 (alesapin)
  • Requiere que el servidor se reinicie para aplicar los cambios en la configuración de registro. Esta es una solución temporal para evitar el error en el que el servidor inicia sesión en un archivo de registro eliminado (consulte #8696). #8707 (Alejandro Kuzmenkov)
  • Configuración experimental_use_processors está habilitado de forma predeterminada. Esta configuración permite el uso de la nueva canalización de consultas. Esto es refactorización interna y no esperamos cambios visibles. Si ves algún problema, configúralo en cero. #8768 (alexey-milovidov)

Novedad

  • Añadir Avro y AvroConfluent Formatos de entrada/salida #8571 (Andrés Onyshchuk) #8957 (Andrés Onyshchuk) #8717 (alexey-milovidov)
  • Actualizaciones de subprocesos múltiples y sin bloqueo de claves caducadas en cache diccionarios (con permiso opcional para leer los antiguos). #8303 (Nikita Mikhaylov)
  • Agregar consulta ALTER ... MATERIALIZE TTL. Ejecuta la mutación que obliga a eliminar los datos caducados por TTL y recalcula la metainformación sobre TTL en todas las partes. #8775 (Anton Popov)
  • Cambie de HashJoin a MergeJoin (en el disco) si es necesario #9082 (Artem Zuikov)
  • Añadir MOVE PARTITION comando para ALTER TABLE #4729 #6168 (Guillaume Tassery)
  • Recarga de la configuración de almacenamiento desde el archivo de configuración sobre la marcha. #8594 (Vladimir Chebotarev)
  • Permitido cambiar storage_policy a uno no menos rico. #8107 (Vladimir Chebotarev)
  • Se agregó soporte para globs / wildcards para el almacenamiento S3 y la función de mesa. #8851 (Vladimir Chebotarev)
  • Implementar bitAnd, bitOr, bitXor, bitNot para FixedString(N) Tipo de datos. #9091 (Guillaume Tassery)
  • Función añadida bitCount. Esto corrige #8702. #8708 (alexey-milovidov) #8749 (kopylov)
  • Añadir generateRandom función de tabla para generar filas aleatorias con un esquema dado. Permite rellenar la tabla de prueba arbitraria con datos. #8994 (Ilya Yatsishin)
  • JSONEachRowFormat: apoyar caso especial cuando los objetos encerrados en la matriz de nivel superior. #8860 (Kruglov Pavel)
  • Ahora es posible crear una columna con DEFAULT expresión que depende de una columna con el valor predeterminado ALIAS expresion. #9489 (alesapin)
  • Permitir especificar --limit más que el tamaño de los datos de origen en clickhouse-obfuscator. Los datos se repetirán con diferentes semillas aleatorias. #9155 (alexey-milovidov)
  • Añadir groupArraySample función (similar a groupArray) con algoritmo de muestreo de reservorio. #8286 (Amos pájaro)
  • Ahora puede controlar el tamaño de la cola de actualización en cache/complex_key_cache diccionarios a través de métricas del sistema. #9413 (Nikita Mikhaylov)
  • Permitir usar CRLF como separador de línea en formato de salida CSV con configuración output_format_csv_crlf_end_of_line se establece en 1 #8934 #8935 #8963 (Mikhail Korotov)
  • Implementar más funciones del H3 API: h3GetBaseCell, h3HexAreaM2, h3IndexesAreNeighbors, h3ToChildren, h3ToString y stringToH3 #8938 (Nico Mandery)
  • Nueva configuración introducida: max_parser_depth para controlar el tamaño máximo de la pila y permitir grandes consultas complejas. Esto corrige #6681 y #7668. #8647 (Maxim Smirnov)
  • Añadir una configuración force_optimize_skip_unused_shards configuración para lanzar si no es posible omitir fragmentos no utilizados #8805 (Azat Khuzhin)
  • Permitir configurar varios discos / volúmenes para almacenar datos para enviar Distributed motor #8756 (Azat Khuzhin)
  • Política de almacenamiento de soporte (<tmp_policy>) para almacenar datos temporales. #8750 (Azat Khuzhin)
  • Añadir X-ClickHouse-Exception-Code Encabezado HTTP que se establece si se lanzó una excepción antes de enviar datos. Esto implementa #4971. #8786 (Mikhail Korotov)
  • Función añadida ifNotFinite. Es solo un azúcar sintáctico: ifNotFinite(x, y) = isFinite(x) ? x : y. #8710 (alexey-milovidov)
  • Añadir last_successful_update_time columna en system.dictionaries tabla #9394 (Nikita Mikhaylov)
  • Añadir blockSerializedSize función (tamaño en disco sin compresión) #8952 (Azat Khuzhin)
  • Añadir función moduloOrZero #9358 (Hcz)
  • Tablas de sistema añadidas system.zeros y system.zeros_mt así como funciones de cuento zeros() y zeros_mt(). Las tablas (y funciones de tabla) contienen una sola columna con nombre zero y tipo UInt8. Esta columna contiene ceros. Es necesario para fines de prueba como el método más rápido para generar muchas filas. Esto corrige #6604 #9593 (Nikolai Kochetov)

Característica Experimental

  • Añadir nuevo formato compacto de piezas en MergeTree-family tablas en las que todas las columnas se almacenan en un archivo. Esto ayuda a aumentar el rendimiento de las inserciones pequeñas y frecuentes. El formato antiguo (un archivo por columna) ahora se llama ancho. El formato de almacenamiento de datos se controla mediante la configuración min_bytes_for_wide_part y min_rows_for_wide_part. #8290 (Anton Popov)
  • Soporte para almacenamiento S3 para Log, TinyLog y StripeLog tabla. #8862 (Pavel Kovalenko)

Corrección de errores

  • Se corrigieron espacios en blanco inconsistentes en los mensajes de registro. #9322 (alexey-milovidov)
  • Corregir un error en el que las matrices de tuplas sin nombre se aplanaban como estructuras anidadas en la creación de la tabla. #8866 (achulkov2)
  • Se corrigió el problema cuando “Too many open files” puede ocurrir un error si hay demasiados archivos que coincidan con el patrón glob en File mesa o file función de la tabla. Ahora los archivos se abren perezosamente. Esto corrige #8857 #8861 (alexey-milovidov)
  • DROP TEMPORARY TABLE ahora solo deja caer la tabla temporal. #8907 (Vitaly Baranov)
  • Elimine la partición obsoleta cuando apagamos el servidor o DETACH / ATTACH una tabla. #8602 (Guillaume Tassery)
  • Para saber cómo el disco predeterminado calcula el espacio libre de data subdirectorio. Se ha solucionado el problema cuando la cantidad de espacio libre no se calcula correctamente si el data el directorio está montado en un dispositivo separado (caso raro). Esto corrige #7441 #9257 (Mikhail Korotov)
  • Permitir coma (cruz) unirse con IN () dentro. #9251 (Artem Zuikov)
  • Permita reescribir CROSS a INNER JOIN si hay un operador [NOT] LIKE en la sección WHERE. #9229 (Artem Zuikov)
  • Corregir posible resultado incorrecto después GROUP BY con configuración habilitada distributed_aggregation_memory_efficient. Fijar #9134. #9289 (Nikolai Kochetov)
  • Las claves encontradas se contaron como perdidas en las métricas de los diccionarios de caché. #9411 (Nikita Mikhaylov)
  • Corregir la incompatibilidad del protocolo de replicación introducida en #8598. #9412 (alesapin)
  • Condición de carrera fija en queue_task_handle en el inicio de ReplicatedMergeTree tabla. #9552 (alexey-milovidov)
  • Token NOT no funcionó en SHOW TABLES NOT LIKE consulta #8727 #8940 (alexey-milovidov)
  • Comprobación de rango añadida para funcionar h3EdgeLengthM. Sin esta comprobación, el desbordamiento del búfer es posible. #8945 (alexey-milovidov)
  • Se corrigió un error en los cálculos por lotes de OP lógicos ternarios en múltiples argumentos (más de 10). #8718 (Alejandro Kazakov)
  • Corregir el error de optimización PREWHERE, que podría conducir a fallas según segfaults o Inconsistent number of columns got from MergeTreeRangeReader salvedad. #9024 (Anton Popov)
  • Arreglar inesperado Timeout exceeded while reading from socket excepción, que ocurre aleatoriamente en la conexión segura antes de que se exceda el tiempo de espera y cuando se habilita el generador de perfiles de consultas. También añadir connect_timeout_with_failover_secure_ms configuración (por defecto 100 ms), que es similar a connect_timeout_with_failover_ms, pero se usa para conexiones seguras (porque el protocolo de enlace SSL es más lento que la conexión TCP ordinaria) #9026 (Tavplubix)
  • Corregir error con finalización de mutaciones, cuando la mutación puede colgarse en estado con parts_to_do=0 y is_done=0. #9022 (alesapin)
  • Use la nueva lógica ANY JOIN con partial_merge_join configuración. Es posible hacer ANY|ALL|SEMI LEFT y ALL INNER se une con partial_merge_join=1 ahora. #8932 (Artem Zuikov)
  • Shard ahora sujeta la configuración obtenida del iniciador a los restos del fragmento en lugar de lanzar una excepción. Esta corrección permite enviar consultas a un fragmento con otras restricciones. #9447 (Vitaly Baranov)
  • Se corrigió el problema de administración de memoria en MergeTreeReadPool. #8791 (Vladimir Chebotarev)
  • Fijar toDecimal*OrNull() familia de funciones cuando se llama con cadena e. Fijar #8312 #8764 (Artem Zuikov)
  • Asegúrese de que FORMAT Null no envía datos al cliente. #8767 (Alejandro Kuzmenkov)
  • Corregir error en la marca de tiempo LiveViewBlockInputStream no se actualizará. LIVE VIEW es una característica experimental. #8644 (vxider) #8625 (vxider)
  • Fijo ALTER MODIFY TTL comportamiento incorrecto que no permitía eliminar expresiones TTL antiguas. #8422 (Vladimir Chebotarev)
  • Informe UBSan fijo en MergeTreeIndexSet. Esto corrige #9250 #9365 (alexey-milovidov)
  • Se corrigió el comportamiento de match y extract funciona cuando haystack tiene cero bytes. El comportamiento era incorrecto cuando el pajar era constante. Esto corrige #9160 #9163 (alexey-milovidov) #9345 (alexey-milovidov)
  • Evite lanzar desde el destructor en la biblioteca Apache Avro de terceros. #9066 (Andrés Onyshchuk)
  • No confirmar un lote encuestado desde Kafka parcialmente, ya que puede conducir a agujeros en los datos. #8876 (filimonov)
  • Fijar joinGet con tipos de devolución anulables. https://github.com/ClickHouse/ClickHouse/issues/8919 #9014 (Amos pájaro)
  • Corregir la incompatibilidad de datos cuando se comprime con T64 códec. #9016 (Artem Zuikov) Fijar identificadores de tipo de datos en T64 códec de compresión que conduce a una compresión incorrecta (de) en las versiones afectadas. #9033 (Artem Zuikov)
  • Añadir ajuste enable_early_constant_folding y desactivarlo en algunos casos que conduce a errores. #9010 (Artem Zuikov)
  • Repare el optimizador de predicados pushdown con VIEW y habilite la prueba #9011 (Invierno Zhang)
  • Arreglar segfault en Merge tablas, que pueden suceder al leer de File almacenamiento #9387 (Tavplubix)
  • Se agregó una verificación de la política de almacenamiento en ATTACH PARTITION FROM, REPLACE PARTITION, MOVE TO TABLE. De lo contrario, podría hacer que los datos de la parte sean inaccesibles después del reinicio y evitar que se inicie ClickHouse. #9383 (Vladimir Chebotarev)
  • Fix altera si hay TTL establecido para la tabla. #8800 (Anton Popov)
  • Corregir la condición de carrera que puede ocurrir cuando SYSTEM RELOAD ALL DICTIONARIES se ejecuta mientras se modifica / agrega / elimina algún diccionario. #8801 (Vitaly Baranov)
  • En versiones anteriores Memory el motor de base de datos utiliza una ruta de datos vacía, por lo que las tablas se crean en path directory (e.g. /var/lib/clickhouse/), not in data directory of database (e.g. /var/lib/clickhouse/db_name). #8753 (Tavplubix)
  • Se corrigieron los mensajes de registro incorrectos sobre la falta de disco o política predeterminada. #9530 (Vladimir Chebotarev)
  • Fix not(has()) para el índice bloom_filter de los tipos de matriz. #9407 (chimbab)
  • Permitir las primeras columnas en una tabla con Log motor ser un alias #9231 (Ivan)
  • Corregir el orden de los rangos mientras se lee desde MergeTree mesa en un hilo. Podría dar lugar a excepciones de MergeTreeRangeReader o resultados de consultas incorrectos. #9050 (Anton Popov)
  • Hacer reinterpretAsFixedString devolver FixedString en lugar de String. #9052 (Andrés Onyshchuk)
  • Evite casos extremadamente raros cuando el usuario puede obtener un mensaje de error incorrecto (Success en lugar de una descripción detallada del error). #9457 (alexey-milovidov)
  • No se bloquee al usar Template formato con plantilla de fila vacía. #8785 (Alejandro Kuzmenkov)
  • Los archivos de metadatos para las tablas del sistema se pueden crear en un lugar incorrecto #8653 (Tavplubix) Fijar #8581.
  • Corregir la carrera de datos en exception_ptr en el diccionario de caché #8303. #9379 (Nikita Mikhaylov)
  • No lanzar una excepción para la consulta ATTACH TABLE IF NOT EXISTS. Anteriormente se lanzaba si la tabla ya existe, a pesar de la IF NOT EXISTS clausula. #8967 (Anton Popov)
  • Se corrigió la falta de cierre de paren en el mensaje de excepción. #8811 (alexey-milovidov)
  • Evitar el mensaje Possible deadlock avoided en el inicio de clickhouse-client en modo interactivo. #9455 (alexey-milovidov)
  • Se solucionó el problema cuando el relleno al final del valor codificado en base64 puede estar mal formado. Actualización de la biblioteca base64. Esto corrige #9491, cerca #9492 #9500 (alexey-milovidov)
  • Evitar la pérdida de datos en Kafka en casos raros cuando la excepción ocurre después de leer el sufijo pero antes de confirmar. Fijar #9378 #9507 (filimonov)
  • Excepción fija en DROP TABLE IF EXISTS #8663 (Nikita Vasilev)
  • Corregir el bloqueo cuando un usuario intenta ALTER MODIFY SETTING para viejos MergeTree familia de motores de mesa. #9435 (alesapin)
  • Compatibilidad con números UInt64 que no caben en Int64 en funciones relacionadas con JSON. Actualizar SIMDJSON a maestro. Esto corrige #9209 #9344 (alexey-milovidov)
  • Se corrigió la ejecución de predicados invertidos cuando se usa un índice funcional no estrictamente monotínico. #9223 (Alejandro Kazakov)
  • No trate de doblar IN constante en GROUP BY #8868 (Amos pájaro)
  • Corregir error en ALTER DELETE mutaciones que conduce a la corrupción del índice. Esto corrige #9019 y #8982. Además arreglar condiciones de carrera extremadamente raras en ReplicatedMergeTree ALTER consulta. #9048 (alesapin)
  • Cuando el ajuste compile_expressions está habilitado, puede obtener unexpected column en LLVMExecutableFunction cuando usamos Nullable tipo #8910 (Guillaume Tassery)
  • Múltiples correcciones para Kafka engine: 1) corrige los duplicados que aparecían durante el reequilibrio del grupo de consumidores. 2) Arreglar raro holes apareció cuando los datos se sondearon de varias particiones con una encuesta y se confirmaron parcialmente (ahora siempre procesamos / confirmamos todo el bloque de mensajes sondeados). 3) Arregle los lavados por tamaño de bloque (antes de eso, solo el lavado por tiempo de espera funcionaba correctamente). 4) mejor procedimiento de suscripción (con retroalimentación de la asignación). 5) Haga que las pruebas funcionen más rápido (con intervalos y tiempos de espera predeterminados). Debido al hecho de que los datos no se enjuagaron por el tamaño del bloque antes (como debería según la documentación), ese PR puede conducir a una cierta degradación del rendimiento con la configuración predeterminada (debido a los sofocos más a menudo y más pequeños que son menos óptimos). Si encuentra el problema de rendimiento después de ese cambio, aumente kafka_max_block_size en la tabla al valor más grande (por ejemplo CREATE TABLE ...Engine=Kafka ... SETTINGS ... kafka_max_block_size=524288). Fijar #7259 #8917 (filimonov)
  • Fijar Parameter out of bound excepción en algunas consultas después de las optimizaciones PREWHERE. #8914 (Fallecimiento)
  • Se corrigió el caso de la constancia mixta de los argumentos de la función arrayZip. #8705 (alexey-milovidov)
  • Al ejecutar CREATE consulta, doblar expresiones constantes en argumentos del motor de almacenamiento. Reemplace el nombre de la base de datos vacía con la base de datos actual. Fijar #6508, #3492 #9262 (Tavplubix)
  • Ahora no es posible crear o agregar columnas con alias cíclicos simples como a DEFAULT b, b DEFAULT a. #9603 (alesapin)
  • Se ha corregido un error con doble movimiento que puede corromper parte original. Esto es relevante si usa ALTER TABLE MOVE #8680 (Vladimir Chebotarev)
  • Permitir interval identificador para analizar correctamente sin retrocesos. Solucionado el problema cuando una consulta no se puede ejecutar incluso si el interval identifier está encerrado en backticks o comillas dobles. Esto corrige #9124. #9142 (alexey-milovidov)
  • Prueba de fuzz fija y comportamiento incorrecto de bitTestAll/bitTestAny función. #9143 (alexey-milovidov)
  • Corregir un posible bloqueo / número incorrecto de filas en LIMIT n WITH TIES cuando hay muchas filas iguales a n'th row. #9464 (Tavplubix)
  • Corregir mutaciones con partes escritas con habilitado insert_quorum. #9463 (alesapin)
  • Corregir la carrera de datos en la destrucción de Poco::HTTPServer. Podría suceder cuando el servidor se inicia y se apaga inmediatamente. #9468 (Anton Popov)
  • Corregir un error en el que se mostraba un mensaje de error engañoso cuando se ejecutaba SHOW CREATE TABLE a_table_that_does_not_exist. #8899 (achulkov2)
  • Fijo Parameters are out of bound excepción en algunos casos raros cuando tenemos una constante en el SELECT cláusula cuando tenemos una ORDER BY y una LIMIT clausula. #8892 (Guillaume Tassery)
  • Fijar mutaciones finalización, cuando ya hecho mutación puede tener estado is_done=0. #9217 (alesapin)
  • Evitar la ejecución ALTER ADD INDEX para tablas MergeTree con sintaxis antigua, porque no funciona. #8822 (Mikhail Korotov)
  • Durante el inicio del servidor, no acceda a la tabla, que LIVE VIEW depende de, por lo que el servidor podrá comenzar. También eliminar LIVE VIEW dependencias al separar LIVE VIEW. LIVE VIEW es una característica experimental. #8824 (Tavplubix)
  • Arreglar posible segfault en MergeTreeRangeReader, mientras se ejecuta PREWHERE. #9106 (Anton Popov)
  • Corregir posibles sumas de comprobación no coincidentes con TTL de columna. #9451 (Anton Popov)
  • Se corrigió un error cuando las partes no se movían en segundo plano por las reglas TTL en caso de que solo haya un volumen. #8672 (Vladimir Chebotarev)
  • Se ha solucionado el problema Method createColumn() is not implemented for data type Set. Esto corrige #7799. #8674 (alexey-milovidov)
  • Ahora intentaremos finalizar las mutaciones con más frecuencia. #9427 (alesapin)
  • Fijar intDiv por menos una constante #9351 (Hcz)
  • Corregir la posible condición de carrera en BlockIO. #9356 (Nikolai Kochetov)
  • Corregir un error que conduce a la terminación del servidor al intentar usar / soltar Kafka tabla creada con parámetros incorrectos. #9513 (filimonov)
  • Solución alternativa agregada si el sistema operativo devuelve un resultado incorrecto para timer_create función. #8837 (alexey-milovidov)
  • Corregido el error en el uso de min_marks_for_seek parámetro. Se corrigió el mensaje de error cuando no hay una clave de fragmentación en la tabla distribuida e intentamos omitir fragmentos no utilizados. #8908 (Azat Khuzhin)

Mejora

  • Implementar ALTER MODIFY/DROP encima de mutaciones para ReplicatedMergeTree* familia de motores. Ahora ALTERS bloquea solo en la etapa de actualización de metadatos, y no bloquea después de eso. #8701 (alesapin)
  • Agregue la capacidad de reescribir CROSS a INNER JOINs con WHERE sección que contiene nombres unqialified. #9512 (Artem Zuikov)
  • Hacer SHOW TABLES y SHOW DATABASES las consultas apoyan el WHERE expresiones y FROM/IN #9076 (Sundyli)
  • Añadido un ajuste deduplicate_blocks_in_dependent_materialized_views. #9070 (urykhy)
  • Después de los cambios recientes, el cliente MySQL comenzó a imprimir cadenas binarias en hexadecimal, lo que las hizo no legibles (#9032). La solución en ClickHouse es marcar las columnas de cadena como UTF-8, lo que no siempre es, pero generalmente el caso. #9079 (Yuriy Baranov)
  • Agregue soporte de las claves String y FixedString para sumMap #8903 (Fallecimiento)
  • Teclas de cadena de soporte en los mapas SummingMergeTree #8933 (Fallecimiento)
  • Terminación de la señal del subproceso al grupo de subprocesos incluso si el subproceso ha lanzado una excepción #8736 (Más información)
  • Permitir establecer query_id en clickhouse-benchmark #9416 (Anton Popov)
  • No permita expresiones extrañas en ALTER TABLE ... PARTITION partition consulta. Esto aborda #7192 #8835 (alexey-milovidov)
  • Tabla system.table_engines ahora proporciona información sobre el soporte de características (como supports_ttl o supports_sort_order). #8830 (Max Akhmedov)
  • Permitir system.metric_log predeterminada. Contendrá filas con valores de ProfileEvents, CurrentMetrics recopilados con “collect_interval_milliseconds” intervalo (un segundo por defecto). La tabla es muy pequeña (generalmente en orden de megabytes) y la recopilación de estos datos por defecto es razonable. #9225 (alexey-milovidov)
  • Initialize query profiler for all threads in a group, e.g. it allows to fully profile insert-queries. Fixes #6964 #8874 (Ivan)
  • Ahora temporal LIVE VIEW es creado por CREATE LIVE VIEW name WITH TIMEOUT [42] ... en lugar de CREATE TEMPORARY LIVE VIEW ..., porque la sintaxis anterior no era consistente con CREATE TEMPORARY TABLE ... #9131 (Tavplubix)
  • Agregar text_log.parámetro de configuración de nivel para limitar las entradas system.text_log tabla #8809 (Azat Khuzhin)
  • Permitir colocar la parte descargada en discos / volúmenes de acuerdo con las reglas TTL #8598 (Vladimir Chebotarev)
  • Para diccionarios MySQL externos, permita mutualizar el grupo de conexiones MySQL para “share” entre los diccionarios. Esta opción reduce significativamente el número de conexiones a los servidores MySQL. #9409 (Clément Rodriguez)
  • Mostrar el tiempo de ejecución de consultas más cercano para los cuantiles en clickhouse-benchmark salida en lugar de valores interpolados. Es mejor mostrar valores que correspondan al tiempo de ejecución de algunas consultas. #8712 (alexey-milovidov)
  • Posibilidad de agregar clave y marca de tiempo para el mensaje al insertar datos en Kafka. Fijar #7198 #8969 (filimonov)
  • Si el servidor se ejecuta desde el terminal, resalte el número de hilo, el id de consulta y la prioridad de registro por colores. Esto es para mejorar la legibilidad de los mensajes de registro correlacionados para los desarrolladores. #8961 (alexey-milovidov)
  • Mejor mensaje de excepción al cargar tablas para Ordinary base. #9527 (alexey-milovidov)
  • Implementar arraySlice para matrices con estados de función agregados. Esto corrige #9388 #9391 (alexey-milovidov)
  • Permita que las funciones constantes y las matrices constantes se utilicen en el lado derecho del operador IN. #8813 (Anton Popov)
  • Si la excepción del zookeeper ha ocurrido al obtener datos para el sistema.réplicas, mostrarlo en una columna separada. Esto implementa #9137 #9138 (alexey-milovidov)
  • Elimine atómicamente las partes de datos de MergeTree en destroy. #8402 (Vladimir Chebotarev)
  • Soporte de seguridad a nivel de fila para tablas distribuidas. #8926 (Ivan)
  • Now we recognize suffix (like KB, KiB…) in settings values. #8072 (Mikhail Korotov)
  • Evitar la falta de memoria mientras se construye el resultado de una gran UNIÓN. #8637 (Artem Zuikov)
  • Se agregaron nombres de clústeres a sugerencias en modo interactivo en clickhouse-client. #8709 (alexey-milovidov)
  • Initialize query profiler for all threads in a group, e.g. it allows to fully profile insert-queries #8820 (Ivan)
  • Columna añadida exception_code en system.query_log tabla. #8770 (Mikhail Korotov)
  • Servidor de compatibilidad MySQL habilitado en el puerto 9004 en el archivo de configuración del servidor predeterminado. Se corrigió el comando de generación de contraseñas en el ejemplo de configuración. #8771 (Yuriy Baranov)
  • Evite abortar al apagar si el sistema de archivos es de solo lectura. Esto corrige #9094 #9100 (alexey-milovidov)
  • Mejor mensaje de excepción cuando se requiere longitud en la consulta HTTP POST. #9453 (alexey-milovidov)
  • Añadir _path y _file columnas virtuales para HDFS y File motores y hdfs y file funciones de la tabla #8489 (Olga Khvostikova)
  • Corregir error Cannot find column mientras se inserta en MATERIALIZED VIEW en caso de que se agregara una nueva columna a la tabla interna de la vista. #8766 #8788 (vzakaznikov) #8788 #8806 (Nikolai Kochetov) #8803 (Nikolai Kochetov)
  • Corrige el progreso sobre el protocolo cliente-servidor nativo, al enviar el progreso después de la actualización final (como los registros). Esto puede ser relevante solo para algunas herramientas de terceros que usan protocolo nativo. #9495 (Azat Khuzhin)
  • Agregue una métrica del sistema que rastree el número de conexiones de cliente utilizando el protocolo MySQL (#9013). #9015 (Eugene Klimov)
  • A partir de ahora, las respuestas HTTP tendrán X-ClickHouse-Timezone encabezado establecido en el mismo valor de zona horaria que SELECT timezone() informaría. #9493 (Denis Glazachev)

Mejora del rendimiento

  • Mejorar el rendimiento del índice de análisis con IN #9261 (Anton Popov)
  • Código más simple y eficiente en funciones lógicas + limpiezas de código. Un seguimiento de #8718 #8728 (Alejandro Kazakov)
  • Mejora general del rendimiento (en el rango del 5%..200% para consultas afectadas) garantizando aliasing aún más estricto con las características de C ++ 20. #9304 (Amos pájaro)
  • Aliasing más estricto para bucles internos de funciones de comparación. #9327 (alexey-milovidov)
  • Aliasing más estricto para bucles internos de funciones aritméticas. #9325 (alexey-milovidov)
  • Una implementación ~ 3 veces más rápida para ColumnVector::replicate() , a través de la cual se implementa ColumnConst::convertToFullColumn() . También será útil en pruebas al materializar constantes. #9293 (Alejandro Kazakov)
  • Otra mejora de rendimiento menor a ColumnVector::replicate() (esto acelera el materialize función y funciones de orden superior) una mejora aún más a #9293 #9442 (Alejandro Kazakov)
  • Rendimiento mejorado de stochasticLinearRegression función de agregado. Este parche es aportado por Intel. #8652 (alexey-milovidov)
  • Mejorar el rendimiento de reinterpretAsFixedString función. #9342 (alexey-milovidov)
  • No envíe bloques al cliente para Null formato en la tubería de procesadores. #8797 (Nikolai Kochetov) #8767 (Alejandro Kuzmenkov)

Mejora de la construcción/prueba/empaquetado

  • El manejo de excepciones ahora funciona correctamente en el subsistema Windows para Linux. Consulte https://github.com/ClickHouse-Extras/libunwind/pull/3 Esto corrige #6480 #9564 (sobolevsv)
  • Reemplazar readline con replxx para la edición de línea interactiva en clickhouse-client #8416 (Ivan)
  • Mejor tiempo de compilación y menos instancias de plantillas en FunctionsComparison. #9324 (alexey-milovidov)
  • Integración añadida con clang-tidy en CI. Ver también #6044 #9566 (alexey-milovidov)
  • Ahora vinculamos ClickHouse en CI usando lld incluso para gcc. #9049 (alesapin)
  • Permitir aleatorizar la programación de subprocesos e insertar fallas cuando THREAD_FUZZER_* se establecen variables de entorno. Esto ayuda a las pruebas. #9459 (alexey-milovidov)
  • Habilitar sockets seguros en pruebas sin estado #9288 (Tavplubix)
  • Hacer SPLIT_SHARED_LIBRARIES=OFF más robusto #9156 (Azat Khuzhin)
  • Hacer “performance_introspection_and_logging” prueba confiable al servidor aleatorio atascado. Esto puede suceder en el entorno de CI. Ver también #9515 #9528 (alexey-milovidov)
  • Validar XML en la comprobación de estilo. #9550 (alexey-milovidov)
  • Condición de carrera fija en la prueba 00738_lock_for_inner_table. Esta prueba se basó en el sueño. #9555 (alexey-milovidov)
  • Eliminar pruebas de rendimiento de tipo once. Esto es necesario para ejecutar todas las pruebas de rendimiento en modo de comparación estadística (más confiable). #9557 (alexey-milovidov)
  • Prueba de rendimiento agregada para funciones aritméticas. #9326 (alexey-milovidov)
  • Prueba de rendimiento añadida para sumMap y sumMapWithOverflow funciones agregadas. Seguimiento de #8933 #8947 (alexey-milovidov)
  • Asegúrese de estilo de ErrorCodes por comprobación de estilo. #9370 (alexey-milovidov)
  • Agregar script para el historial de pruebas. #8796 (alesapin)
  • Añadir advertencia GCC -Wsuggest-override para localizar y arreglar todos los lugares donde override palabra clave debe ser utilizado. #8760 (Método de codificación de datos:)
  • Ignore el símbolo débil en Mac OS X porque debe definirse #9538 (Usuario eliminado)
  • Normalice el tiempo de ejecución de algunas consultas en las pruebas de rendimiento. Esto se hace en preparación para ejecutar todas las pruebas de rendimiento en modo de comparación. #9565 (alexey-milovidov)
  • Arregle algunas pruebas para admitir pytest con pruebas de consulta #9062 (Ivan)
  • Habilite SSL en compilación con MSan, por lo que el servidor no fallará al iniciarse al ejecutar pruebas sin estado #9531 (Tavplubix)
  • Corregir la sustitución de la base de datos en los resultados de las pruebas #9384 (Ilya Yatsishin)
  • Crear correcciones para plataformas diversas #9381 (propulsor) #8755 (propulsor) #8631 (propulsor)
  • Sección de discos agregada a la imagen de la ventana acoplable de prueba sin estado con cobertura #9213 (Pavel Kovalenko)
  • Deshágase de los archivos en el árbol de origen al compilar con GRPC #9588 (Amos pájaro)
  • Un tiempo de compilación ligeramente más rápido al eliminar SessionCleaner del contexto. Haga que el código de SessionCleaner sea más simple. #9232 (alexey-milovidov)
  • Comprobación actualizada de consultas colgadas en el script de prueba de clickhouse #8858 (Alejandro Kazakov)
  • Se eliminaron algunos archivos inútiles del repositorio. #8843 (alexey-milovidov)
  • Tipo cambiado de perftests matemáticos de once a loop. #8783 (Nikolai Kochetov)
  • Agregue una imagen acoplable que permite construir un informe HTML del navegador de código interactivo para nuestra base de código. #8781 (alesapin) Ver Navegador de código Woboq
  • Suprima algunas fallas de prueba bajo MSan. #8780 (Alejandro Kuzmenkov)
  • Aceleración “exception while insert” prueba. Esta prueba a menudo se agota en la compilación de depuración con cobertura. #8711 (alexey-milovidov)
  • Actualizar libcxx y libcxxabi dominar. En preparación para #9304 #9308 (alexey-milovidov)
  • Reparar la prueba de flacky 00910_zookeeper_test_alter_compression_codecs. #9525 (alexey-milovidov)
  • Limpie las banderas duplicadas del vinculador. Asegúrese de que el enlazador no busque un símbolo inesperado. #9433 (Amos pájaro)
  • Añadir clickhouse-odbc conductor en imágenes de prueba. Esto permite probar la interacción de ClickHouse con ClickHouse a través de su propio controlador ODBC. #9348 (filimonov)
  • Corregir varios errores en las pruebas unitarias. #9047 (alesapin)
  • Permitir -Wmissing-include-dirs Advertencia de GCC para eliminar todas las incluidas no existentes, principalmente como resultado de errores de scripting de CMake #8704 (Método de codificación de datos:)
  • Describa las razones si el generador de perfiles de consultas no puede funcionar. Esto está destinado a #9049 #9144 (alexey-milovidov)
  • Actualice OpenSSL al maestro ascendente. Se ha solucionado el problema cuando las conexiones TLS pueden fallar con el mensaje OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error y SSL Exception: error:2400006E:random number generator::error retrieving entropy. El problema estaba presente en la versión 20.1. #8956 (alexey-milovidov)
  • Actualizar Dockerfile para el servidor #8893 (Ilya Mazaev)
  • Correcciones menores en el script build-gcc-from-sources #8774 (Michael Nacharov)
  • Reemplazar numbers a zeros en perftests donde number no se utiliza la columna. Esto conducirá a resultados de pruebas más limpios. #9600 (Nikolai Kochetov)
  • Solucione el problema de desbordamiento de pila al usar initializer_list en los constructores de columnas. #9367 (Usuario eliminado)
  • Actualizar librdkafka a v1.3.0. Habilitar incluido rdkafka y gsasl bibliotecas en Mac OS X. #9000 (Andrés Onyshchuk)
  • corrección de compilación en GCC 9.2.0 #9306 (vxider)

Lanzamiento de ClickHouse v20.1

Todos los derechos reservados.

Corrección de errores

  • Corregir la incompatibilidad de datos cuando se comprime con T64 códec. #9039 (abyss7)
  • Corregir el orden de los rangos mientras se lee de la tabla MergeTree en un hilo. Fijar #8964. #9050 (CurtizJ)
  • Arreglar posible segfault en MergeTreeRangeReader, mientras se ejecuta PREWHERE. Fijar #9064. #9106 (CurtizJ)
  • Fijar reinterpretAsFixedString devolver FixedString en lugar de String. #9052 (oandrew)
  • Fijar joinGet con tipos de devolución anulables. Fijar #8919 #9014 (amosbird)
  • Repare la prueba de fuzz y el comportamiento incorrecto de las funciones bitTestAll / bitTestAny. #9143 (alexey-milovidov)
  • Corrige el comportamiento de las funciones de coincidencia y extracción cuando haystack tiene cero bytes. El comportamiento era incorrecto cuando el pajar era constante. Fijar #9160 #9163 (alexey-milovidov)
  • Se corrigió la ejecución de predicados invertidos cuando se usa un índice funcional no estrictamente monotínico. Fijar #9034 #9223 (Akazz))
  • Permitir reescribir CROSS a INNER JOIN si hay [NOT] LIKE operador en WHERE apartado. Fijar #9191 #9229 (4ertus2)
  • Permitir que las primeras columnas de una tabla con Log engine sean un alias. #9231 (abyss7)
  • Permitir la combinación de coma con IN() dentro. Fijar #7314. #9251 (4ertus2)
  • Mejorar ALTER MODIFY/ADD consultas lógica. Ahora no puedes ADD sin tipo, MODIFY expresión predeterminada no cambia el tipo de columna y MODIFY type no pierde el valor de expresión predeterminado. Fijar #8669. #9227 (alesapin)
  • Fijar la finalización de las mutaciones, cuando la mutación ya hecha puede tener el estado is_done = 0. #9217 (alesapin)
  • Apoyo “Processors” tubería para el sistema.números y sistema.numbers_mt. Esto también corrige el error cuando max_execution_time no se respeta. #7796 (KochetovNicolai)
  • Corregir el conteo incorrecto de DictCacheKeysRequestedFound métrica. #9411 (nikitamikhaylov)
  • Se agregó una verificación de la política de almacenamiento en ATTACH PARTITION FROM, REPLACE PARTITION, MOVE TO TABLE que de lo contrario podría hacer que los datos de la parte sean inaccesibles después del reinicio y evitar que se inicie ClickHouse. #9383 (excitoon)
  • Informe UBSan fijo en MergeTreeIndexSet. Esto corrige #9250 #9365 (alexey-milovidov)
  • Corrige un posible registro de datos en BlockIO. #9356 (KochetovNicolai)
  • Soporte para UInt64 números que no caben en Int64 en funciones relacionadas con JSON. Actualizar SIMDJSON dominar. Esto corrige #9209 #9344 (alexey-milovidov)
  • Solucione el problema cuando la cantidad de espacio libre no se calcula correctamente si el directorio de datos está montado en un dispositivo separado. Para el disco predeterminado, calcule el espacio libre del subdirectorio de datos. Esto corrige #7441 #9257 (millb)
  • Solucione el problema cuando las conexiones TLS pueden fallar con el mensaje OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error and SSL Exception: error:2400006E:random number generator::error retrieving entropy. Actualice OpenSSL al maestro ascendente. #8956 (alexey-milovidov)
  • Al ejecutar CREATE consulta, doblar expresiones constantes en argumentos del motor de almacenamiento. Reemplace el nombre de la base de datos vacía con la base de datos actual. Fijar #6508, #3492. También corrija la comprobación de la dirección local en ClickHouseDictionarySource. #9262 (tabplubix)
  • Arreglar segfault en StorageMerge, que puede suceder al leer de StorageFile. #9387 (tabplubix)
  • Evitar la pérdida de datos en Kafka en casos raros cuando la excepción ocurre después de leer el sufijo pero antes de confirmar. Fijar #9378. Relacionados: #7175 #9507 (filimonov)
  • Corregir un error que conduce a la terminación del servidor al intentar usar / soltar Kafka tabla creada con parámetros incorrectos. Fijar #9494. Incorporar #9507. #9513 (filimonov)

Novedad

  • Añadir deduplicate_blocks_in_dependent_materialized_views opción para controlar el comportamiento de las inserciones idempotentes en tablas con vistas materializadas. Esta nueva característica se agregó a la versión de corrección de errores mediante una solicitud especial de Altinity. #9070 (urykhy)

Todos los derechos reservados.

Cambio incompatible hacia atrás

  • Haga el ajuste merge_tree_uniform_read_distribution obsoleto. El servidor aún reconoce esta configuración, pero no tiene ningún efecto. #8308 (alexey-milovidov)
  • Tipo de retorno cambiado de la función greatCircleDistance a Float32 porque ahora el resultado del cálculo es Float32. #7993 (alexey-milovidov)
  • Ahora se espera que los parámetros de consulta estén representados en “escaped” formato. Por ejemplo, para pasar una cadena a<tab>b tienes que escribir a\tb o a\<tab>b y respectivamente, a%5Ctb o a%5C%09b en URL. Esto es necesario para agregar la posibilidad de pasar NULL como \N. Esto corrige #7488. #8517 (alexey-milovidov)
  • Permitir use_minimalistic_part_header_in_zookeeper establecimiento de ReplicatedMergeTree predeterminada. Esto reducirá significativamente la cantidad de datos almacenados en ZooKeeper. Esta configuración es compatible desde la versión 19.1 y ya la usamos en producción en múltiples servicios sin problemas durante más de medio año. Deshabilite esta configuración si tiene la posibilidad de cambiar a versiones anteriores a 19.1. #6850 (alexey-milovidov)
  • Los índices de omisión de datos están listos para producción y están habilitados de forma predeterminada. Configuración allow_experimental_data_skipping_indices, allow_experimental_cross_to_join_conversion y allow_experimental_multiple_joins_emulation ahora están obsoletos y no hacen nada. #7974 (alexey-milovidov)
  • Añadir nuevo ANY JOIN lógica para StorageJoin consistente con JOIN operación. Para actualizar sin cambios en el comportamiento, necesita agregar SETTINGS any_join_distinct_right_table_keys = 1 a Engine Unir metadatos de tablas o volver a crear estas tablas después de la actualización. #8400 (Artem Zuikov)
  • Requiere que el servidor se reinicie para aplicar los cambios en la configuración de registro. Esta es una solución temporal para evitar el error en el que el servidor inicia sesión en un archivo de registro eliminado (consulte #8696). #8707 (Alejandro Kuzmenkov)

Novedad

  • Se agregó información sobre las rutas de acceso de piezas a system.merges. #8043 (Vladimir Chebotarev)
  • Añadir capacidad de ejecutar SYSTEM RELOAD DICTIONARY consulta en ON CLUSTER modo. #8288 (Guillaume Tassery)
  • Añadir capacidad de ejecutar CREATE DICTIONARY consultas en ON CLUSTER modo. #8163 (alesapin)
  • Ahora el perfil del usuario en users.xml puede heredar varios perfiles. #8343 (Mikhail f. Shiryaev)
  • Añadir system.stack_trace tabla que permite ver los rastros de pila de todos los hilos del servidor. Esto es útil para los desarrolladores para examinar el estado del servidor. Esto corrige #7576. #8344 (alexey-milovidov)
  • Añadir DateTime64 tipo de datos con una precisión de subsegundo configurable. #7170 (Vasily Nemkov)
  • Agregar función de tabla clusterAllReplicas que permite consultar todos los nodos en el clúster. #8493 (mujer madura)
  • Agregar función agregada categoricalInformationValue que calcula el valor de información de una entidad discreta. #8117 (Hcz)
  • Acelerar el análisis de archivos de datos en CSV, TSV y JSONEachRow formato haciéndolo en paralelo. #7780 (Alejandro Kuzmenkov)
  • Añadir función bankerRound que realiza el redondeo del banquero. #8112 (Hcz)
  • Soporta más idiomas en el diccionario incrustado para nombres de región: ru, en, ua, uk, by, kz, tr, de, uz, lv, lt, et, pt, he, vi. #8189 (alexey-milovidov)
  • Mejoras en la consistencia de ANY JOIN lógica. Ahora t1 ANY LEFT JOIN t2 igual t2 ANY RIGHT JOIN t1. #7665 (Artem Zuikov)
  • Añadir ajuste any_join_distinct_right_table_keys que permite un comportamiento antiguo para ANY INNER JOIN. #7665 (Artem Zuikov)
  • Añadir nuevo SEMI y ANTI JOIN. Antiguo ANY INNER JOIN comportamiento ahora disponible como SEMI LEFT JOIN. #7665 (Artem Zuikov)
  • Añadir Distributed formato para File motor y file función de mesa que permite leer desde .bin archivos generados por inserciones asincrónicas en Distributed tabla. #8535 (Nikolai Kochetov)
  • Agregar argumento de columna de reinicio opcional para runningAccumulate que permite restablecer los resultados de agregación para cada nuevo valor clave. #8326 (Sergey Kononenko)
  • Agregue la capacidad de usar ClickHouse como punto final Prometheus. #7900 (vdimir)
  • Añadir sección <remote_url_allow_hosts> en config.xml que restringe los hosts permitidos para motores de tabla remotos y funciones de tabla URL, S3, HDFS. #7154 (Mikhail Korotov)
  • Función añadida greatCircleAngle que calcula la distancia en una esfera en grados. #8105 (alexey-milovidov)
  • Se ha cambiado el radio de la Tierra para que sea consistente con la biblioteca H3. #8105 (alexey-milovidov)
  • Añadir JSONCompactEachRow y JSONCompactEachRowWithNamesAndTypes Formatos de entrada y salida. #7841 (Mikhail Korotov)
  • Característica agregada para motores de tablas relacionados con archivos y funciones de tabla (File, S3, URL, HDFS) que permite leer y escribir gzip archivos basados en el parámetro del motor adicional o extensión de archivo. #7840 (Andrey Bodrov)
  • Se agregó el randomASCII(length) función, generando una cadena con un conjunto aleatorio de ASCII caracteres imprimibles. #8401 (Bayoneta)
  • Función añadida JSONExtractArrayRaw que devuelve una matriz en elementos de matriz json no analizados de JSON cadena. #8081 (Oleg Matrokhin)
  • Añadir arrayZip función que permite combinar múltiples matrices de longitudes iguales en una matriz de tuplas. #8149 (Invierno Zhang)
  • Agregue la capacidad de mover datos entre discos de acuerdo con la configuración TTL-expresiones para *MergeTree familia de motores de mesa. #8140 (Vladimir Chebotarev)
  • Se agregó una nueva función de agregado avgWeighted que permite calcular el promedio ponderado. #7898 (Andrey Bodrov)
  • Ahora el análisis paralelo está habilitado de forma predeterminada para TSV, TSKV, CSV y JSONEachRow formato. #7894 (Nikita Mikhaylov)
  • Añadir varias funciones geográficas de H3 biblioteca: h3GetResolution, h3EdgeAngle, h3EdgeLength, h3IsValid y h3kRing. #8034 (Konstantin Malanchev)
  • Añadido soporte para brotli (br) compresión en almacenes relacionados con archivos y funciones de tabla. Esto corrige #8156. #8526 (alexey-milovidov)
  • Añadir groupBit* funciones para el SimpleAggregationFunction tipo. #8485 (Guillaume Tassery)

Corrección de errores

  • Corregir el cambio de nombre de las tablas con Distributed motor. Soluciona el problema #7868. #8306 (Tavplubix)
  • Ahora diccionarios de apoyo EXPRESSION para atributos en cadena arbitraria en dialecto SQL no ClickHouse. #8098 (alesapin)
  • Arreglar roto INSERT SELECT FROM mysql(...) consulta. Esto corrige #8070 y #7960. #8234 (Tavplubix)
  • Corregir error “Mismatch column sizes” al insertar el valor predeterminado Tuple de JSONEachRow. Esto corrige #5653. #8606 (Tavplubix)
  • Ahora se lanzará una excepción en caso de usar WITH TIES junto LIMIT BY. También agregue la capacidad de usar TOP con LIMIT BY. Esto corrige #7472. #7637 (Nikita Mikhaylov)
  • Repara la dependencia del superintendente de la nueva versión de glibc en clickhouse-odbc-bridge binario. #8046 (Amos pájaro)
  • Corregir error en la función de verificación de *MergeTree familia de motores. Ahora no falla en caso de que tengamos la misma cantidad de filas en el último gránulo y la última marca (no final). #8047 (alesapin)
  • Fijar el inserto en Enum* columnas después ALTER consulta, cuando el tipo numérico subyacente es igual al tipo especificado en la tabla. Esto corrige #7836. #7908 (Anton Popov)
  • Negativo no constante permitido “size” argumento para la función substring. No fue permitido por error. Esto corrige #4832. #7703 (alexey-milovidov)
  • Corregir el error de análisis cuando se pasa un número incorrecto de argumentos a (O|J)DBC motor de mesa. #7709 (alesapin)
  • Usar el nombre de comando del proceso de clickhouse en ejecución al enviar registros a syslog. En versiones anteriores, se usaba una cadena vacía en lugar del nombre del comando. #8460 (Michael Nacharov)
  • Corregir la comprobación de hosts permitidos para localhost. Este PR corrige la solución proporcionada en #8241. #8342 (Vitaly Baranov)
  • Arreglar accidente raro en argMin y argMax funciones para argumentos de cadena larga, cuando el resultado se usa en runningAccumulate función. Esto corrige #8325 #8341 (dinosaurio)
  • Repara el sobrecompromiso de memoria para tablas con Buffer motor. #8345 (Azat Khuzhin)
  • Se corrigió un error potencial en las funciones que pueden tomar NULL como uno de los argumentos y devuelve no NULL. #8196 (alexey-milovidov)
  • Mejores cálculos de métricas en el grupo de subprocesos para procesos en segundo plano para MergeTree motores de mesa. #8194 (Vladimir Chebotarev)
  • Fijar la función IN dentro WHERE declaración cuando el filtro de tabla de nivel de fila está presente. Fijar #6687 #8357 (Ivan)
  • Ahora se lanza una excepción si el valor integral no se analiza completamente para los valores de configuración. #7678 (Mikhail Korotov)
  • Solucionar la excepción cuando se utiliza la función de agregado en la consulta a la tabla distribuida con más de dos fragmentos locales. #8164 (小路)
  • Ahora el filtro bloom puede manejar matrices de longitud cero y no realiza cálculos redundantes. #8242 (chimbab)
  • Se corrigió la comprobación de si se permite un host cliente al hacer coincidir el host cliente con host_regexp especificado en users.xml. #8241 (Vitaly Baranov)
  • Relax comprobación de columna ambigua que conduce a falsos positivos en múltiples JOIN ON apartado. #8385 (Artem Zuikov)
  • Se corrigió un posible bloqueo del servidor (std::terminate) cuando el servidor no puede enviar o escribir datos en JSON o XML formato con valores de String (tipo de datos que requieren UTF-8 validación) o al comprimir datos de resultados con el algoritmo Brotli o en algunos otros casos raros. Esto corrige #7603 #8384 (alexey-milovidov)
  • Corregir la condición de carrera en StorageDistributedDirectoryMonitor encontrado por CI. Esto corrige #8364. #8383 (Nikolai Kochetov)
  • Ahora el fondo se fusiona en *MergeTree familia de motores de mesa preservar el orden de volumen de políticas de almacenamiento con mayor precisión. #8549 (Vladimir Chebotarev)
  • Ahora motor de mesa Kafka funciona correctamente con Native formato. Esto corrige #6731 #7337 #8003. #8016 (filimonov)
  • Formatos fijos con encabezados (como CSVWithNames) que lanzaban una excepción sobre EOF para el motor de tabla Kafka. #8016 (filimonov)
  • Se corrigió un error con la creación de conjunto de subconsulta en la parte derecha de IN apartado. Esto corrige #5767 y #2542. #7755 (Nikita Mikhaylov)
  • Solucionar un posible bloqueo al leer desde el almacenamiento File. #7756 (Nikolai Kochetov)
  • Lectura fija de los archivos en Parquet formato que contiene columnas de tipo list. #8334 (Más información)
  • Corregir error Not found column para consultas distribuidas con PREWHERE condición depende de la clave de muestreo si max_parallel_replicas > 1. #7913 (Nikolai Kochetov)
  • Corregir error Not found column si se utiliza la consulta PREWHERE depende del alias de la tabla y el conjunto de resultados estaba vacío debido a la condición de la clave principal. #7911 (Nikolai Kochetov)
  • Tipo de retorno fijo para funciones rand y randConstant en caso de Nullable argumento. Ahora las funciones siempre regresan UInt32 y nunca Nullable(UInt32). #8204 (Nikolai Kochetov)
  • Inversión de predicado deshabilitada para WITH FILL expresion. Esto corrige #7784. #7789 (Invierno Zhang)
  • Corregido incorrecto count() resultado para SummingMergeTree cuando FINAL se utiliza la sección. #3280 #7786 (Nikita Mikhaylov)
  • Corregir posible resultado incorrecto para funciones constantes de servidores remotos. Sucedió para consultas con funciones como version(), uptime(), sucesivamente. que devuelve diferentes valores constantes para diferentes servidores. Esto corrige #7666. #7689 (Nikolai Kochetov)
  • Corregir un error complicado en la optimización de predicados push-down que conduce a resultados incorrectos. Esto soluciona muchos problemas en la optimización de predicados push-down. #8503 (Invierno Zhang)
  • Fix crash en CREATE TABLE .. AS dictionary consulta. #8508 (Azat Khuzhin)
  • Varias mejoras en la gramática ClickHouse .g4 file. #8294 (taiyang-li)
  • Corregir un error que conduce a bloqueos en JOINs con mesas con motor Join. Esto corrige #7556 #8254 #7915 #8100. #8298 (Artem Zuikov)
  • Repara la recarga de diccionarios redundantes en CREATE DATABASE. #7916 (Azat Khuzhin)
  • Limitar el número máximo de secuencias para leer desde StorageFile y StorageHDFS. Correcciones https://github.com/ClickHouse/ClickHouse/issues/7650. #7981 (alesapin)
  • Corregir error en ALTER ... MODIFY ... CODEC consulta, cuando el usuario especifica tanto la expresión predeterminada como el códec. Fijar 8593. #8614 (alesapin)
  • Corregir error en la fusión de fondo de columnas con SimpleAggregateFunction(LowCardinality) tipo. #8613 (Nikolai Kochetov)
  • Tipo fijo comprobar en función toDateTime64. #8375 (Vasily Nemkov)
  • Ahora el servidor no se bloquea LEFT o FULL JOIN con y Unirse al motor y no soportado join_use_nulls configuración. #8479 (Artem Zuikov)
  • Ahora DROP DICTIONARY IF EXISTS db.dict la consulta no arroja una excepción si db no existe. #8185 (Vitaly Baranov)
  • Corregir posibles bloqueos en las funciones de la tabla (file, mysql, remote) causado por el uso de la referencia a eliminado IStorage objeto. Corregir el análisis incorrecto de las columnas especificadas en la inserción en la función de la tabla. #7762 (Tavplubix)
  • Asegúrese de que la red esté activa antes de comenzar clickhouse-server. Esto corrige #7507. #8570 (Zhichang Yu)
  • Corregir el manejo de los tiempos de espera para conexiones seguras, por lo que las consultas no se cuelgan indefenitamente. Esto corrige #8126. #8128 (alexey-milovidov)
  • Fijar clickhouse-copiercontención despedida entre trabajadores concurrentes. #7816 (Más información)
  • Ahora las mutaciones no omiten las partes adjuntas, incluso si su versión de mutación fuera más grande que la versión de mutación actual. #7812 (Zhichang Yu) #8250 (alesapin)
  • Ignore copias redundantes de *MergeTree partes de datos después de pasar a otro disco y reiniciar el servidor. #7810 (Vladimir Chebotarev)
  • Fix crash en FULL JOIN con LowCardinality en JOIN clave. #8252 (Artem Zuikov)
  • Prohibido usar el nombre de columna más de una vez en la consulta de inserción como INSERT INTO tbl (x, y, x). Esto corrige #5465, #7681. #7685 (alesapin)
  • Se agregó respaldo para detectar el número de núcleos de CPU físicos para CPU desconocidas (usando el número de núcleos de CPU lógicos). Esto corrige #5239. #7726 (alexey-milovidov)
  • Fijar There's no column error para columnas materializadas y alias. #8210 (Artem Zuikov)
  • Se corrigió el bloqueo de corte cuando EXISTS consulta se utilizó sin TABLE o DICTIONARY calificador. Como EXISTS t. Esto corrige #8172. Este error se introdujo en la versión 19.17. #8213 (alexey-milovidov)
  • Corregir error raro con error "Sizes of columns doesn't match" que podrían aparecer al usar SimpleAggregateFunction columna. #7790 (Boris Granveaud)
  • Corregir error donde el usuario con vacío allow_databases obtuvo acceso a todas las bases de datos (y lo mismo para allow_dictionaries). #7793 (DeifyTheGod)
  • Solucionar el bloqueo del cliente cuando el servidor ya está desconectado del cliente. #8071 (Azat Khuzhin)
  • Fijar ORDER BY comportamiento en caso de ordenar por prefijo de clave primaria y sufijo de clave no primaria. #7759 (Anton Popov)
  • Compruebe si la columna calificada está presente en la tabla. Esto corrige #6836. #7758 (Artem Zuikov)
  • Comportamiento fijo con ALTER MOVE se ejecuta inmediatamente después de la fusión de acabado se mueve superparte de especificado. Fijar #8103. #8104 (Vladimir Chebotarev)
  • Solucionar un posible bloqueo del servidor mientras se usa UNION con diferente número de columnas. Fijar #7279. #7929 (Nikolai Kochetov)
  • Corregir el tamaño de la subcadena de resultados para la función substr con tamaño negativo. #8589 (Nikolai Kochetov)
  • Ahora el servidor no ejecuta la mutación de parte en MergeTree si no hay suficientes hilos libres en el grupo de fondo. #8588 (Tavplubix)
  • Corregir un error tipográfico menor en el formato UNION ALL AST. #7999 (Litao91)
  • Se corrigieron los resultados incorrectos del filtro de floración para los números negativos. Esto corrige #8317. #8566 (Invierno Zhang)
  • Desbordamiento de búfer potencial fijo en descomprimir. El usuario malicioso puede pasar datos comprimidos fabricados que causarán lectura después del búfer. Este problema fue encontrado por Eldar Zaitov del equipo de seguridad de la información de Yandex. #8404 (alexey-milovidov)
  • Corregir el resultado incorrecto debido al desbordamiento de enteros en arrayIntersect. #7777 (Nikolai Kochetov)
  • Ahora OPTIMIZE TABLE La consulta no esperará a que las réplicas sin conexión realicen la operación. #8314 (javi santana)
  • Fijo ALTER TTL analizador para Replicated*MergeTree tabla. #8318 (Vladimir Chebotarev)
  • Corrige la comunicación entre el servidor y el cliente, por lo que el servidor lee la información de las tablas temporales después de un error de consulta. #8084 (Azat Khuzhin)
  • Fijar bitmapAnd error de función al intersecar un mapa de bits agregado y un mapa de bits escalar. #8082 (Yue Huang)
  • Refinar la definición de ZXid de acuerdo con la Guía del Programador ZooKeeper que corrige errores en clickhouse-cluster-copier. #8088 (Más información)
  • odbc la función de la tabla ahora respeta external_table_functions_use_nulls configuración. #7506 (Vasily Nemkov)
  • Se corrigió un error que conducía a una rara carrera de datos. #8143 (Alejandro Kazakov)
  • Ahora SYSTEM RELOAD DICTIONARY recarga un diccionario completamente, ignorando update_field. Esto corrige #7440. #8037 (Vitaly Baranov)
  • Agregue la capacidad de verificar si el diccionario existe en la consulta de creación. #8032 (alesapin)
  • Fijar Float* análisis en Values formato. Esto corrige #7817. #7870 (Tavplubix)
  • Solucionar el bloqueo cuando no podemos reservar espacio en algunas operaciones en segundo plano de *MergeTree familia de motores de mesa. #7873 (Vladimir Chebotarev)
  • Corregir el bloqueo de la operación de fusión cuando la tabla contiene SimpleAggregateFunction(LowCardinality) columna. Esto corrige #8515. #8522 (Azat Khuzhin)
  • Restaure el soporte de todas las configuraciones regionales de la UCI y agregue la capacidad de aplicar intercalaciones para expresiones constantes. También agregue el nombre del idioma a system.collations tabla. #8051 (alesapin)
  • Corregir un error cuando los diccionarios externos con una vida útil mínima cero (LIFETIME(MIN 0 MAX N), LIFETIME(N)) no actualizar en segundo plano. #7983 (alesapin)
  • Solucionar el bloqueo cuando el diccionario externo con la fuente ClickHouse tiene una subconsulta en la consulta. #8351 (Nikolai Kochetov)
  • Corregir el análisis incorrecto de la extensión de archivo en la tabla con el motor URL. Esto corrige #8157. #8419 (Andrey Bodrov)
  • Fijar CHECK TABLE consulta para *MergeTree mesas sin llave. Fijar #7543. #7979 (alesapin)
  • Conversión fija de Float64 al tipo de MySQL. #8079 (Yuriy Baranov)
  • Ahora, si la tabla no se eliminó por completo debido a un bloqueo del servidor, el servidor intentará restaurarla y cargarla. #8176 (Tavplubix)
  • Se corrigió el fallo en la función de la tabla file mientras se inserta en el archivo que no existe. Ahora, en este caso, se crearía un archivo y luego se procesaría la inserción. #8177 (Olga Khvostikova)
  • Repara un punto muerto raro que puede ocurrir cuando trace_log está habilitado. #7838 (filimonov)
  • Añadir capacidad de trabajar con diferentes tipos además Date en RangeHashed diccionario externo creado a partir de consulta DDL. Fijar 7899. #8275 (alesapin)
  • Corrige el bloqueo cuando now64() se llama con el resultado de otra función. #8270 (Vasily Nemkov)
  • Se corrigió un error con la detección de IP del cliente para las conexiones a través del protocolo de cable mysql. #7743 (Dmitry Muzyka)
  • Repara el manejo de matrices vacías en arraySplit función. Esto corrige #7708. #7747 (Hcz)
  • Se corrigió el problema cuando pid-file de otra carrera clickhouse-server puede ser eliminado. #8487 (Weiqing Xu)
  • Repara la recarga del diccionario si tiene invalidate_query, que detuvo las actualizaciones y alguna excepción en los intentos de actualización anteriores. #8029 (alesapin)
  • Corregido el error en la función arrayReduce que puede conducir a “double free” y error en el combinador de funciones agregadas Resample que puede conducir a la pérdida de memoria. Función agregada agregada aggThrow. Esta función se puede utilizar para fines de prueba. #8446 (alexey-milovidov)

Mejora

  • Registro mejorado cuando se trabaja con S3 motor de mesa. #8251 (Grigory Pervakov)
  • Mensaje de ayuda impreso cuando no se pasan argumentos al llamar clickhouse-local. Esto corrige #5335. #8230 (Andrey Nagorny)
  • Añadir ajuste mutations_sync que permite esperar ALTER UPDATE/DELETE consultas sincrónicamente. #8237 (alesapin)
  • Permitir configurar relativo user_files_path en config.xml (en la forma similar a format_schema_path). #7632 (Hcz)
  • Agregue una excepción para tipos ilegales para funciones de conversión con -OrZero postfix. #7880 (Andrey Konyaev)
  • Simplifique el formato del encabezado de los datos que se envían a un fragmento en una consulta distribuida. #8044 (Vitaly Baranov)
  • Live View refactorización del motor de mesa. #8519 (vzakaznikov)
  • Agregue comprobaciones adicionales para diccionarios externos creados a partir de consultas DDL. #8127 (alesapin)
  • Corregir error Column ... already exists mientras usa FINAL y SAMPLE together, e.g. select count() from table final sample 1/2. Fijar #5186. #7907 (Nikolai Kochetov)
  • Ahora tabla el primer argumento de joinGet la función puede ser indentificador de tabla. #7707 (Amos pájaro)
  • Permitir usar MaterializedView con subconsultas anteriores Kafka tabla. #8197 (filimonov)
  • Ahora el fondo se mueve entre discos, ejecuta el grupo de subprocesos seprate. #7670 (Vladimir Chebotarev)
  • SYSTEM RELOAD DICTIONARY ahora se ejecuta sincrónicamente. #8240 (Vitaly Baranov)
  • Los rastros de pila ahora muestran direcciones físicas (desconectados en el archivo de objeto) en lugar de direcciones de memoria virtual (donde se cargó el archivo de objeto). Eso permite el uso de addr2line cuando binary es independiente de la posición y ASLR está activo. Esto corrige #8360. #8387 (alexey-milovidov)
  • Soporte nueva sintaxis para filtros de seguridad de nivel de fila: <table name='table_name'>…</table>. Fijar #5779. #8381 (Ivan)
  • Ahora cityHash función puede trabajar con Decimal y UUID tipo. Fijar #5184. #7693 (Mikhail Korotov)
  • Se eliminó la granularidad de índice fijo (era 1024) de los registros del sistema porque está obsoleto después de la implementación de la granularidad adaptativa. #7698 (alexey-milovidov)
  • Habilitado servidor de compatibilidad MySQL cuando ClickHouse se compila sin SSL. #7852 (Yuriy Baranov)
  • Ahora las sumas de comprobación del servidor distribuyen lotes, lo que da más errores detallados en caso de datos dañados en el lote. #7914 (Azat Khuzhin)
  • Apoyo DROP DATABASE, DETACH TABLE, DROP TABLE y ATTACH TABLE para MySQL motor de base de datos. #8202 (Invierno Zhang)
  • Agregue autenticación en la función de tabla S3 y el motor de tabla. #7623 (Vladimir Chebotarev)
  • Añadido cheque para piezas adicionales de MergeTree en diferentes discos, para no permitir perder partes de datos en discos indefinidos. #8118 (Vladimir Chebotarev)
  • Habilite el soporte SSL para el cliente y el servidor de Mac. #8297 (Ivan)
  • Ahora ClickHouse puede funcionar como servidor federado de MySQL (consulte https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html ). #7717 (Maxim Fedotov)
  • clickhouse-client ahora sólo habilitar bracketed-paste cuando multiquery está encendido y multilínea está apagado. Esto corrige (#7757)[https://github.com/ClickHouse/ClickHouse/issues/7757]. #7761 (Amos pájaro)
  • Apoyo Array(Decimal) en if función. #7721 (Artem Zuikov)
  • Decimales de apoyo en arrayDifference, arrayCumSum y arrayCumSumNegative función. #7724 (Artem Zuikov)
  • Añadir lifetime columna a system.dictionaries tabla. #6820 #7727 (kekekekule)
  • Comprobación mejorada de piezas existentes en diferentes discos para *MergeTree motores de mesa. Dirección #7660. #8440 (Vladimir Chebotarev)
  • Integración con AWS SDK para S3 interacciones que permite utilizar todas las características de S3 fuera de la caja. #8011 (Pavel Kovalenko)
  • Se agregó soporte para subconsultas en Live View tabla. #7792 (vzakaznikov)
  • Compruebe si el uso Date o DateTime columna de TTL expresiones se eliminó. #7920 (Vladimir Chebotarev)
  • Se agregó información sobre el disco a system.detached_parts tabla. #7833 (Vladimir Chebotarev)
  • Ahora configuración max_(table|partition)_size_to_drop se puede cambiar sin reiniciar. #7779 (Grigory Pervakov)
  • Ligeramente mejor usabilidad de los mensajes de error. Pida al usuario que no elimine las siguientes líneas Stack trace:. #7897 (alexey-milovidov)
  • Mejor lectura de mensajes de Kafka motor en varios formatos después de #7935. #8035 (Ivan)
  • Mejor compatibilidad con clientes MySQL que no admiten sha2_password complemento auth. #8036 (Yuriy Baranov)
  • Soporta más tipos de columnas en el servidor de compatibilidad MySQL. #7975 (Yuriy Baranov)
  • Implementar ORDER BY optimización para Merge, Buffer y Materilized View almacenamientos con subyacente MergeTree tabla. #8130 (Anton Popov)
  • Ahora siempre usamos la implementación POSIX de getrandom para tener una mejor compatibilidad con los núcleos antiguos (<3.17). #7940 (Amos pájaro)
  • Es mejor comprobar si hay un destino válido en una regla TTL de movimiento. #8410 (Vladimir Chebotarev)
  • Mejores controles de lotes de inserción rotos para Distributed motor de mesa. #7933 (Azat Khuzhin)
  • Agregue una columna con una matriz de nombres de partes para qué mutaciones deben procesar en el futuro system.mutations tabla. #8179 (alesapin)
  • Optimización de ordenación de combinación paralela para procesadores. #8552 (Nikolai Kochetov)
  • Configuración mark_cache_min_lifetime ahora está obsoleto y no hace nada. En versiones anteriores, la caché de marcas puede crecer en la memoria más grande que mark_cache_size para acomodar datos dentro de mark_cache_min_lifetime segundo. Eso provocó confusión y un mayor uso de memoria de lo esperado, lo que es especialmente malo en los sistemas con restricciones de memoria. Si observa una degradación del rendimiento después de instalar esta versión, debe aumentar la mark_cache_size. #8484 (alexey-milovidov)
  • Preparación para usar tid doquier. Esto es necesario para #7477. #8276 (alexey-milovidov)

Mejora del rendimiento

  • Optimizaciones de rendimiento en la canalización de procesadores. #7988 (Nikolai Kochetov)
  • Actualizaciones sin bloqueo de claves caducadas en diccionarios de caché (con permiso para leer las antiguas). #8303 (Nikita Mikhaylov)
  • Compilar ClickHouse sin -fno-omit-frame-pointer a nivel mundial para ahorrar un registro más. #8097 (Amos pájaro)
  • Aceleración greatCircleDistance función y añadir pruebas de rendimiento para ello. #7307 (Olga Khvostikova)
  • Rendimiento mejorado de la función roundDown. #8465 (alexey-milovidov)
  • Rendimiento mejorado de max, min, argMin, argMax para DateTime64 tipo de datos. #8199 (Vasily Nemkov)
  • Rendimiento mejorado de la clasificación sin límite o con límite grande y clasificación externa. #8545 (alexey-milovidov)
  • Rendimiento mejorado de formatear números de coma flotante hasta 6 veces. #8542 (alexey-milovidov)
  • Rendimiento mejorado de modulo función. #7750 (Amos pájaro)
  • Optimizar ORDER BY y fusionándose con la clave de una sola columna. #8335 (alexey-milovidov)
  • Mejor implementación para arrayReduce, -Array y -State combinadores. #7710 (Amos pájaro)
  • Ahora PREWHERE debe ser optimizado para ser al menos tan eficiente como WHERE. #7769 (Amos pájaro)
  • Mejorar el camino round y roundBankers manejo de números negativos. #8229 (Hcz)
  • Rendimiento de decodificación mejorado de DoubleDelta y Gorilla códecs en aproximadamente un 30-40%. Esto corrige #7082. #8019 (Vasily Nemkov)
  • Rendimiento mejorado de base64 funciones relacionadas. #8444 (alexey-milovidov)
  • Se agregó una función geoDistance. Es similar a greatCircleDistance pero utiliza la aproximación al modelo elipsoide WGS-84. El rendimiento de ambas funciones son casi iguales. #8086 (alexey-milovidov)
  • Más rápido min y max funciones de agregación para Decimal tipo de datos. #8144 (Artem Zuikov)
  • Vectorizar el procesamiento arrayReduce. #7608 (Amos pájaro)
  • if las cadenas ahora están optimizadas como multiIf. #8355 (kamalov-ruslan)
  • Corregir la regresión de rendimiento de Kafka motor de mesa introducido en 19.15. Esto corrige #7261. #7935 (filimonov)
  • Quitar “pie” generación de código que gcc de paquetes Debian trae ocasionalmente por defecto. #8483 (alexey-milovidov)
  • Formatos de datos de análisis paralelo #6553 (Nikita Mikhaylov)
  • Habilitar analizador optimizado de Values con expresiones por defecto (input_format_values_deduce_templates_of_expressions=1). #8231 (Tavplubix)

Mejora de la construcción/prueba/empaquetado

Característica Experimental

  • Añadido ajuste experimental min_bytes_to_use_mmap_io. Permite leer archivos grandes sin copiar datos del kernel al espacio de usuario. La configuración está deshabilitada de forma predeterminada. El umbral recomendado es de aproximadamente 64 MB, porque mmap / munmap es lento. #8520 (alexey-milovidov)
  • Cuotas reanudadas como parte del sistema de control de acceso. Añadido nueva tabla system.quotas, nuevas funciones currentQuota, currentQuotaKey, nueva sintaxis SQL CREATE QUOTA, ALTER QUOTA, DROP QUOTA, SHOW QUOTA. #7257 (Vitaly Baranov)
  • Permitir omitir configuraciones desconocidas con advertencias en lugar de lanzar excepciones. #7653 (Vitaly Baranov)
  • Se reanudaron las políticas de fila como parte del sistema de control de acceso. Añadido nueva tabla system.row_policies, nueva función currentRowPolicies(), nueva sintaxis SQL CREATE POLICY, ALTER POLICY, DROP POLICY, SHOW CREATE POLICY, SHOW POLICIES. #7808 (Vitaly Baranov)

Corrección de seguridad

  • Se corrigió la posibilidad de leer la estructura de directorios en tablas con File motor de mesa. Esto corrige #8536. #8537 (alexey-milovidov)