mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-18 05:32:52 +00:00
97f2a2213e
* Move some code outside dbms/src folder * Fix paths
135 KiB
135 KiB
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 paraINSERT
consultas enDistributed
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
ysumWithOverflow
. 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 comotime + 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
yInvalid number of rows in Chunk
enMergeTreeRangeReader
. Podrían aparecer mientras se ejecutaPREWHERE
en algunos casos. Fijar #9132. #9612 (Anton Popov) - Permitir
ALTER ON CLUSTER
deDistributed
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 paraDistributed
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 utilizadoINSERT
s aDistributed
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 desystem.trace_log
fue renombrado desdetimer_type
atrace_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 cuandosend_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 elsend_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 aclickhouse-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 puedesADD
sin tipo,MODIFY
expresión predeterminada no cambia el tipo de columna yMODIFY
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
yAvroConfluent
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 paraALTER 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
paraFixedString(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 predeterminadoALIAS
expresion. #9489 (alesapin) - Permitir especificar
--limit
más que el tamaño de los datos de origen enclickhouse-obfuscator
. Los datos se repetirán con diferentes semillas aleatorias. #9155 (alexey-milovidov) - Añadir
groupArraySample
función (similar agroupArray
) 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
ystringToH3
#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 ensystem.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
ysystem.zeros_mt
así como funciones de cuentozeros()
yzeros_mt()
. Las tablas (y funciones de tabla) contienen una sola columna con nombrezero
y tipoUInt8
. 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ónmin_bytes_for_wide_part
ymin_rows_for_wide_part
. #8290 (Anton Popov) - Soporte para almacenamiento S3 para
Log
,TinyLog
yStripeLog
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 ofile
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 eldata
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 habilitadadistributed_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 deReplicatedMergeTree
tabla. #9552 (alexey-milovidov) - Token
NOT
no funcionó enSHOW 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ñadirconnect_timeout_with_failover_secure_ms
configuración (por defecto 100 ms), que es similar aconnect_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
yis_done=0
. #9022 (alesapin) - Use la nueva lógica ANY JOIN con
partial_merge_join
configuración. Es posible hacerANY|ALL|SEMI LEFT
yALL INNER
se une conpartial_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 cadenae
. 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
yextract
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 enT64
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 deFile
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 enpath
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 deMergeTreeRangeReader
o resultados de consultas incorrectos. #9050 (Anton Popov) - Hacer
reinterpretAsFixedString
devolverFixedString
en lugar deString
. #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 laIF 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 viejosMergeTree
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 enGROUP 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 enReplicatedMergeTree
ALTER
consulta. #9048 (alesapin) - Cuando el ajuste
compile_expressions
está habilitado, puede obtenerunexpected column
enLLVMExecutableFunction
cuando usamosNullable
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, aumentekafka_max_block_size
en la tabla al valor más grande (por ejemploCREATE 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 elinterval
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 elSELECT
cláusula cuando tenemos unaORDER BY
y unaLIMIT
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 eliminarLIVE VIEW
dependencias al separarLIVE VIEW
.LIVE VIEW
es una característica experimental. #8824 (Tavplubix) - Arreglar posible segfault en
MergeTreeRangeReader
, mientras se ejecutaPREWHERE
. #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 paraReplicatedMergeTree*
familia de motores. AhoraALTERS
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
ySHOW DATABASES
las consultas apoyan elWHERE
expresiones yFROM
/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
enclickhouse-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 (comosupports_ttl
osupports_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 porCREATE LIVE VIEW name WITH TIMEOUT [42] ...
en lugar deCREATE TEMPORARY LIVE VIEW ...
, porque la sintaxis anterior no era consistente conCREATE 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
ensystem.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 paraHDFS
yFile
motores yhdfs
yfile
funciones de la tabla #8489 (Olga Khvostikova) - Corregir error
Cannot find column
mientras se inserta enMATERIALIZED 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 queSELECT 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 elmaterialize
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
conreplxx
para la edición de línea interactiva enclickhouse-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 paragcc
. #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
ysumMapWithOverflow
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 dondeoverride
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
aloop
. #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
ylibcxxabi
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
ySSL 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
azeros
en perftests dondenumber
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
ygsasl
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 ejecutaPREWHERE
. Fijar #9064. #9106 (CurtizJ) - Fijar
reinterpretAsFixedString
devolverFixedString
en lugar deString
. #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
aINNER JOIN
si hay[NOT] LIKE
operador enWHERE
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 puedesADD
sin tipo,MODIFY
expresión predeterminada no cambia el tipo de columna yMODIFY
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. ActualizarSIMDJSON
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
aFloat32
porque ahora el resultado del cálculo esFloat32
. #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 escribira\tb
oa\<tab>b
y respectivamente,a%5Ctb
oa%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 deReplicatedMergeTree
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
yallow_experimental_multiple_joins_emulation
ahora están obsoletos y no hacen nada. #7974 (alexey-milovidov) - Añadir nuevo
ANY JOIN
lógica paraStorageJoin
consistente conJOIN
operación. Para actualizar sin cambios en el comportamiento, necesita agregarSETTINGS 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 enON CLUSTER
modo. #8288 (Guillaume Tassery) - Añadir capacidad de ejecutar
CREATE DICTIONARY
consultas enON 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
yJSONEachRow
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. Ahorat1 ANY LEFT JOIN t2
igualt2 ANY RIGHT JOIN t1
. #7665 (Artem Zuikov) - Añadir ajuste
any_join_distinct_right_table_keys
que permite un comportamiento antiguo paraANY INNER JOIN
. #7665 (Artem Zuikov) - Añadir nuevo
SEMI
yANTI JOIN
. AntiguoANY INNER JOIN
comportamiento ahora disponible comoSEMI LEFT JOIN
. #7665 (Artem Zuikov) - Añadir
Distributed
formato paraFile
motor yfile
función de mesa que permite leer desde.bin
archivos generados por inserciones asincrónicas enDistributed
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>
enconfig.xml
que restringe los hosts permitidos para motores de tabla remotos y funciones de tablaURL
,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
yJSONCompactEachRowWithNamesAndTypes
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 escribirgzip
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 deJSON
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
yJSONEachRow
formato. #7894 (Nikita Mikhaylov) - Añadir varias funciones geográficas de
H3
biblioteca:h3GetResolution
,h3EdgeAngle
,h3EdgeLength
,h3IsValid
yh3kRing
. #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 elSimpleAggregationFunction
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
deJSONEachRow
. Esto corrige #5653. #8606 (Tavplubix) - Ahora se lanzará una excepción en caso de usar
WITH TIES
juntoLIMIT BY
. También agregue la capacidad de usarTOP
conLIMIT 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ésALTER
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
yargMax
funciones para argumentos de cadena larga, cuando el resultado se usa enrunningAccumulate
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
dentroWHERE
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 enusers.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 enJSON
oXML
formato con valores deString
(tipo de datos que requierenUTF-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 conNative
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 tablaKafka
. #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 tipolist
. #8334 (Más información) - Corregir error
Not found column
para consultas distribuidas conPREWHERE
condición depende de la clave de muestreo simax_parallel_replicas > 1
. #7913 (Nikolai Kochetov) - Corregir error
Not found column
si se utiliza la consultaPREWHERE
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
yrandConstant
en caso deNullable
argumento. Ahora las funciones siempre regresanUInt32
y nuncaNullable(UInt32)
. #8204 (Nikolai Kochetov) - Inversión de predicado deshabilitada para
WITH FILL
expresion. Esto corrige #7784. #7789 (Invierno Zhang) - Corregido incorrecto
count()
resultado paraSummingMergeTree
cuandoFINAL
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
JOIN
s con mesas con motorJoin
. 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
yStorageHDFS
. 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
oFULL JOIN
con y Unirse al motor y no soportadojoin_use_nulls
configuración. #8479 (Artem Zuikov) - Ahora
DROP DICTIONARY IF EXISTS db.dict
la consulta no arroja una excepción sidb
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 eliminadoIStorage
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-copier
contenció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
conLowCardinality
enJOIN
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ó sinTABLE
oDICTIONARY
calificador. ComoEXISTS 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 usarSimpleAggregateFunction
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 paraallow_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 paraReplicated*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 enclickhouse-cluster-copier
. #8088 (Más información) odbc
la función de la tabla ahora respetaexternal_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, ignorandoupdate_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 enValues
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
enRangeHashed
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 carreraclickhouse-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 agregadasResample
que puede conducir a la pérdida de memoria. Función agregada agregadaaggThrow
. 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 esperarALTER UPDATE/DELETE
consultas sincrónicamente. #8237 (alesapin) - Permitir configurar relativo
user_files_path
enconfig.xml
(en la forma similar aformat_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 usaFINAL
ySAMPLE
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 anterioresKafka
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 conDecimal
yUUID
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
yATTACH TABLE
paraMySQL
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 habilitarbracketed-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)
enif
función. #7721 (Artem Zuikov) - Decimales de apoyo en
arrayDifference
,arrayCumSum
yarrayCumSumNegative
función. #7724 (Artem Zuikov) - Añadir
lifetime
columna asystem.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
paraS3
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
oDateTime
columna deTTL
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 paraMerge
,Buffer
yMaterilized View
almacenamientos con subyacenteMergeTree
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 quemark_cache_size
para acomodar datos dentro demark_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 lamark_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
paraDateTime64
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 comoWHERE
. #7769 (Amos pájaro) - Mejorar el camino
round
yroundBankers
manejo de números negativos. #8229 (Hcz) - Rendimiento de decodificación mejorado de
DoubleDelta
yGorilla
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 agreatCircleDistance
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
ymax
funciones de agregación paraDecimal
tipo de datos. #8144 (Artem Zuikov) - Vectorizar el procesamiento
arrayReduce
. #7608 (Amos pájaro) if
las cadenas ahora están optimizadas comomultiIf
. #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
- Construir correcciones para
ARM
y en modo mínimo. #8304 (propulsor) - Añadir archivo de cobertura al ras para
clickhouse-server
cuando std::atexit no se llama. También mejoró ligeramente el registro en pruebas sin estado con cobertura. #8267 (alesapin) - Actualizar la biblioteca LLVM en contrib. Evite usar LLVM de paquetes de sistema operativo. #8258 (alexey-milovidov)
- Hacer incluido
curl
construir totalmente tranquilo. #8232 #8203 (Pavel Kovalenko) - Arreglar algunos
MemorySanitizer
advertencia. #8235 (Alejandro Kuzmenkov) - Utilizar
add_warning
yno_warning
macros enCMakeLists.txt
. #8604 (Ivan) - Agregue soporte del objeto Compatible Minio S3 (https://min.io/) para mejores pruebas de integración. #7863 #7875 (Pavel Kovalenko)
- Importar
libc
encabezados a contrib. Permite hacer que las compilaciones sean más consistentes en varios sistemas (solo parax86_64-linux-gnu
). #5773 (alexey-milovidov) - Quitar
-fPIC
de algunas bibliotecas. #8464 (alexey-milovidov) - Limpiar
CMakeLists.txt
para el rizo. Ver https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910 #8459 (alexey-milovidov) - Advertencias silenciosas en
CapNProto
biblioteca. #8220 (alexey-milovidov) - Agregue pruebas de rendimiento para tablas hash optimizadas de cadenas cortas. #7679 (Amos pájaro)
- Ahora ClickHouse se basará en
AArch64
aunqueMADV_FREE
no está disponible. Esto corrige #8027. #8243 (Amos pájaro) - Actualizar
zlib-ng
para solucionar problemas de desinfectante de memoria. #7182 #8206 (Alejandro Kuzmenkov) - Habilite la biblioteca MySQL interna en sistemas que no son Linux, porque el uso de paquetes de sistemas operativos es muy frágil y generalmente no funciona en absoluto. Esto corrige #5765. #8426 (alexey-milovidov)
- Se corrigió la compilación en algunos sistemas después de habilitar
libc++
. Esto reemplaza #8374. #8380 (alexey-milovidov) - Hacer
Field
métodos más seguros para encontrar más errores. #7386 #8209 (Alejandro Kuzmenkov) - Añadido archivos que faltan a la
libc-headers
submódulo. #8507 (alexey-milovidov) - Arreglar mal
JSON
cita en la salida de prueba de rendimiento. #8497 (Nikolai Kochetov) - Ahora se muestra el seguimiento de pila para
std::exception
yPoco::Exception
. En versiones anteriores sólo estaba disponible paraDB::Exception
. Esto mejora el diagnóstico. #8501 (alexey-milovidov) - Portabilidad
clock_gettime
yclock_nanosleep
para versiones glibc frescas. #8054 (Amos pájaro) - Permitir
part_log
en ejemplo config para desarrolladores. #8609 (alexey-milovidov) - Corregir la naturaleza asíncrona de la recarga en
01036_no_superfluous_dict_reload_on_create_database*
. #8111 (Azat Khuzhin) - Se corrigieron las pruebas de rendimiento del códec. #8615 (Vasily Nemkov)
- Agregar scripts de instalación para
.tgz
y documentación para ellos. #8612 #8591 (alesapin) - Eliminado viejo
ZSTD
prueba (fue creado en el año 2016 para reproducir el error que ha tenido la versión pre 1.0 de ZSTD). Esto corrige #8618. #8619 (alexey-milovidov) - Estructura fija en Mac OS Catalina. #8600 (meo)
- Mayor número de filas en las pruebas de rendimiento del códec para que los resultados se noten. #8574 (Vasily Nemkov)
- En compilaciones de depuración, trate
LOGICAL_ERROR
excepciones como fallas de aserción, por lo que son más fáciles de notar. #8475 (Alejandro Kuzmenkov) - Haga que la prueba de rendimiento relacionada con los formatos sea más determinista. #8477 (alexey-milovidov)
- Actualizar
lz4
para solucionar un error de MemorySanitizer. #8181 (Alejandro Kuzmenkov) - Suprima un falso positivo MemorySanitizer conocido en el control de excepciones. #8182 (Alejandro Kuzmenkov)
- Actualizar
gcc
yg++
a la versión 9 enbuild/docker/build.sh
#7766 (TLightSky) - Agregue un caso de prueba de rendimiento para probar eso
PREWHERE
es peor queWHERE
. #7768 (Amos pájaro) - Progreso hacia la fijación de una prueba flacky. #8621 (alexey-milovidov)
- Evite el informe MemorySanitizer para los datos de
libunwind
. #8539 (alexey-milovidov) - Actualizar
libc++
a la última versión. #8324 (alexey-milovidov) - Construir la biblioteca de la UCI a partir de fuentes. Esto corrige #6460. #8219 (alexey-milovidov)
- Cambiado de
libressl
aopenssl
. ClickHouse debe admitir TLS 1.3 y SNI después de este cambio. Esto corrige #8171. #8218 (alexey-milovidov) - Informe UBSan fijo al usar
chacha20_poly1305
de SSL (sucede al conectarse a https://yandex.ru/). #8214 (alexey-milovidov) - Modo de reparación del archivo de contraseña predeterminado para
.deb
distribuciones de linux. #8075 (propulsor) - Expresión mejorada para obtener
clickhouse-server
PID enclickhouse-test
. #8063 (Alejandro Kazakov) - Actualizado contrib / googletest a v1.10.0. #8587 (Alejandro Burmak)
- Informe de ThreadSaninitizer fijo en
base64
biblioteca. También actualizó esta biblioteca a la última versión, pero no importa. Esto corrige #8397. #8403 (alexey-milovidov) - Fijar
00600_replace_running_query
para procesadores. #8272 (Nikolai Kochetov) - Eliminar soporte para
tcmalloc
hacerCMakeLists.txt
más simple. #8310 (alexey-milovidov) - Lanzamiento gcc construye ahora uso
libc++
en lugar delibstdc++
. Recientementelibc++
fue utilizado sólo con clang. Esto mejorará la coherencia de las configuraciones de compilación y la portabilidad. #8311 (alexey-milovidov) - Habilite la biblioteca de ICU para compilar con MemorySanitizer. #8222 (alexey-milovidov)
- Suprimir advertencias de
CapNProto
biblioteca. #8224 (alexey-milovidov) - Se eliminaron casos especiales de código para
tcmalloc
, porque ya no es compatible. #8225 (alexey-milovidov) - En la tarea de cobertura de CI, elimine el servidor con elegancia para permitirle guardar el informe de cobertura. Esto corrige los informes de cobertura incompletos que hemos estado viendo últimamente. #8142 (alesapin)
- Pruebas de rendimiento para todos los códecs contra
Float64
yUInt64
valor. #8349 (Vasily Nemkov) termcap
está muy en desuso y conduce a varios problemas (por ejemplo, falta “up” tapa y eco^J
en lugar de la línea multi). Favorterminfo
o empaquetadoncurses
. #7737 (Amos pájaro)- Fijar
test_storage_s3
prueba de integración. #7734 (Nikolai Kochetov) - Apoyo
StorageFile(<format>, null)
para insertar el bloque en el archivo de formato dado sin realmente escribir en el disco. Esto es necesario para las pruebas de rendimiento. #8455 (Amos pájaro) - Argumento añadido
--print-time
a las pruebas funcionales que imprime el tiempo de ejecución por prueba. #8001 (Nikolai Kochetov) - Se agregaron afirmaciones a
KeyCondition
mientras evalúa RPN. Esto arreglará la advertencia de gcc-9. #8279 (alexey-milovidov) - Opciones de volcado cmake en compilaciones de CI. #8273 (Alejandro Kuzmenkov)
- No genere información de depuración para algunas bibliotecas de grasa. #8271 (alexey-milovidov)
- Hacer
log_to_console.xml
siempre inicie sesión en stderr, independientemente de si es interactivo o no. #8395 (Alejandro Kuzmenkov) - Se eliminaron algunas características no utilizadas de
clickhouse-performance-test
herramienta. #8555 (alexey-milovidov) - Ahora también buscaremos
lld-X
con la correspondienteclang-X
versión. #8092 (alesapin) - Parquet construir mejora. #8421 (Más información)
- Más advertencias de GCC #8221 (Método de codificación de datos:)
- Paquete para Arch Linux ahora permite ejecutar el servidor ClickHouse, y no sólo el cliente. #8534 (Vladimir Chebotarev)
- Prueba de reparación con procesadores. Pequeñas correcciones de rendimiento. #7672 (Nikolai Kochetov)
- Actualizar contrib/protobuf. #8256 (Matwey V. Kornilov)
- En preparación para cambiar a c ++ 20 como una celebración de año nuevo. “May the C++ force be with ClickHouse.” #8447 (Amos pájaro)
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 funcionescurrentQuota
,currentQuotaKey
, nueva sintaxis SQLCREATE 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óncurrentRowPolicies()
, nueva sintaxis SQLCREATE 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)