mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 19:42:00 +00:00
cd14f9ebcb
* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
309 KiB
309 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
77 | 2019 |
Lanzamiento de ClickHouse 19.17
Lanzamiento de ClickHouse 19.17.6.36, 2019-12-27
Corrección de errores
- Desbordamiento de búfer potencial fijo en descomprimir. El usuario malintencionado puede pasar datos comprimidos fabricados que podrían causar 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)
- Se corrigió un posible bloqueo del servidor (
std::terminate
) cuando el servidor no puede enviar o escribir datos en formato JSON o XML con valores de tipo de datos String (que requieren validación UTF-8) o al comprimir datos de resultados con el algoritmo Brotli o en algunos otros casos raros. #8384 (alexey-milovidov) - Diccionarios fijos con fuente de un clickhouse
VIEW
, ahora leer tales diccionarios no causa el errorThere is no query
. #8351 (Nikolai Kochetov) - Se corrigió la comprobación de si un host cliente está permitido por host_regexp especificado en los usuarios.XML. #8241, #8342 (Vitaly Baranov)
RENAME TABLE
para una tabla distribuida ahora cambia el nombre de la carpeta que contiene los datos insertados antes de enviarlos a los fragmentos. Esto soluciona un problema con los cambios de nombre sucesivostableA->tableB
,tableC->tableA
. #8306 (Tavplubix)range_hashed
Los diccionarios externos creados por consultas DDL ahora permiten rangos de tipos numéricos arbitrarios. #8275 (alesapin)- Fijo
INSERT INTO table SELECT ... FROM mysql(...)
función de la tabla. #8234 (Tavplubix) - Segfault fijo en
INSERT INTO TABLE FUNCTION file()
mientras se inserta en un archivo que no existe. Ahora, en este caso, se crearía un archivo y luego se procesaría la inserción. #8177 (Olga Khvostikova) - Se corrigió el error bitmapAnd al intersecar un mapa de bits agregado y un mapa de bits escalar. #8082 (Yue Huang)
- Segfault fijo cuando
EXISTS
consulta se utilizó sinTABLE
oDICTIONARY
calificador, al igual queEXISTS t
. #8213 (alexey-milovidov) - Tipo de retorno fijo para funciones
rand
yrandConstant
en caso de argumento anulable. Ahora las funciones siempre regresanUInt32
y nuncaNullable(UInt32)
. #8204 (Nikolai Kochetov) - Fijo
DROP DICTIONARY IF EXISTS db.dict
, ahora no lanza la excepción sidb
no existe. #8185 (Vitaly Baranov) - Si una tabla no se eliminó por completo debido a un bloqueo del servidor, el servidor intentará restaurarla y cargarla #8176 (Tavplubix)
- Se corrigió una consulta de recuento trivial para una tabla distribuida si hay más de dos tablas locales de fragmentos. #8164 (小路)
- Se corrigió un error que conducía a una carrera de datos en DB :: BlockStreamProfileInfo :: calculateRowsBeforeLimit() #8143 (Alejandro Kazakov)
- Fijo
ALTER table MOVE part
se ejecuta inmediatamente después de fusionar la parte especificada, lo que podría provocar el movimiento de una parte en la que la parte especificada se fusionó. Ahora mueve correctamente la parte especificada. #8104 (Vladimir Chebotarev) - Las expresiones para los diccionarios se pueden especificar como cadenas ahora. Esto es útil para el cálculo de atributos al extraer datos de fuentes que no son de ClickHouse porque permite usar la sintaxis que no son de ClickHouse para esas expresiones. #8098 (alesapin)
- Se corrigió una carrera muy rara en
clickhouse-copier
debido a un desbordamiento en ZXid. #8088 (Más información) - Se corrigió el error cuando después de la consulta falló (debido a “Too many simultaneous queries” por ejemplo) no leería información de tablas externas, y el
La siguiente solicitud interpretaría esta información como el comienzo de la siguiente consulta causando un error como
Unknown packet from client
. #8084 (Azat Khuzhin) - Evite la desreferencia nula después de “Unknown packet X from server” #8071 (Azat Khuzhin)
- Restaure el soporte de todas las configuraciones regionales de la UCI, agregue la capacidad de aplicar intercalaciones para expresiones constantes y agregue el nombre del idioma al sistema.mesa de colaciones. #8051 (alesapin)
- Número de secuencias para leer desde
StorageFile
yStorageHDFS
ahora está limitado, para evitar exceder el límite de memoria. #7981 (alesapin) - Fijo
CHECK TABLE
consulta para*MergeTree
mesas sin llave. #7979 (alesapin) - Eliminado el número de mutación de un nombre de pieza en caso de que no hubiera mutaciones. Esta eliminación mejoró la compatibilidad con versiones anteriores. #8250 (alesapin)
- Se corrigió el error de que las mutaciones se omiten para algunas partes adjuntas debido a que su versión de datos son más grandes que la versión de mutación de la tabla. #7812 (Zhichang Yu)
- Permita iniciar el servidor con copias redundantes de piezas después de moverlas a otro dispositivo. #7810 (Vladimir Chebotarev)
- Corregido el error “Sizes of columns doesn’t match” que pueden aparecer al usar columnas de función agregadas. #7790 (Boris Granveaud)
- Ahora se lanzará una excepción en caso de usar WITH TIES junto con LIMIT BY. Y ahora es posible usar TOP con LIMIT BY. #7637 (Nikita Mikhaylov)
- 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)
Lanzamiento de ClickHouse 19.17.4.11, 2019-11-22
Cambio incompatible hacia atrás
- Usar column en lugar de AST para almacenar resultados de subconsultas escalares para un mejor rendimiento. Configuración
enable_scalar_subquery_optimization
se agregó en 19.17 y se habilitó de forma predeterminada. Conduce a errores como este durante la actualización a 19.17.2 o 19.17.3 de versiones anteriores. Esta configuración estaba deshabilitada de forma predeterminada en 19.17.4, para hacer posible la actualización desde 19.16 y versiones anteriores sin errores. #7392 (Amos pájaro)
Novedad
- Agregue la capacidad de crear diccionarios con consultas DDL. #7360 (alesapin)
- Hacer
bloom_filter
tipo de índice de apoyoLowCardinality
yNullable
#7363 #7561 (Nikolai Kochetov) - Añadir función
isValidJSON
para verificar que la cadena pasada sea un json válido. #5910 #7293 (Vdimir) - Implementar
arrayCompact
función #7328 (Memo) - Función creada
hex
para números decimales. Funciona comohex(reinterpretAsString())
, pero no elimina los últimos cero bytes. #7355 (Mikhail Korotov) - Añadir
arrayFill
yarrayReverseFill
funciones, que reemplazan elementos por otros elementos delante / detrás de ellos en la matriz. #7380 (Hcz) - Añadir
CRC32IEEE()
/CRC64()
apoyo #7480 (Azat Khuzhin) - Implementar
char
función similar a uno en mysql #7486 (Sundyli) - Añadir
bitmapTransform
función. Transforma una matriz de valores en un mapa de bits a otra matriz de valores, el resultado es un nuevo mapa de bits #7598 (Zhichang Yu) - Aplicado
javaHashUTF16LE()
función #7651 (chimbab) - Añadir
_shard_num
columna virtual para el motor distribuido #7624 (Azat Khuzhin)
Característica Experimental
- Soporte para procesadores (nueva canalización de ejecución de consultas) en
MergeTree
. #7181 (Nikolai Kochetov)
Corrección de errores
- Corregir el análisis flotante incorrecto en
Values
#7817 #7870 (Tavplubix) - Soluciona un punto muerto raro que puede ocurrir cuando trace_log está habilitado. #7838 (filimonov)
- Evitar la duplicación de mensajes al producir la tabla Kafka tiene cualquier MV seleccionando de ella #7265 (Ivan)
- Soporte para
Array(LowCardinality(Nullable(String)))
enIN
. Resolver #7364 #7366 (chimbab) - Añadir manejo de
SQL_TINYINT
ySQL_BIGINT
, y fijar el manejo deSQL_FLOAT
tipos de origen de datos en ODBC Bridge. #7491 (Denis Glazachev) - Corregir la agregación (
avg
y quantiles) sobre columnas decimales vacías #7431 (Andrey Konyaev) - Fijar
INSERT
en Distribuido conMATERIALIZED
columna #7377 (Azat Khuzhin) - Hacer
MOVE PARTITION
funciona si algunas partes de la partición ya están en el disco o volumen de destino #7434 (Vladimir Chebotarev) - Se corrigió un error con los enlaces duros que no se creaban durante las mutaciones en
ReplicatedMergeTree
en configuraciones de varios discos. #7558 (Vladimir Chebotarev) - Se corrigió un error con una mutación en un MergeTree cuando toda la parte permanece sin cambios y el mejor espacio se encuentra en otro disco #7602 (Vladimir Chebotarev)
- Corregido error con
keep_free_space_ratio
no se lee desde la configuración de discos #7645 (Vladimir Chebotarev) - Corregir error con la tabla solo contiene
Tuple
columnas o columnas con rutas complejas. Fijar 7541. #7545 (alesapin) - No tener en cuenta la memoria para el motor de búfer en el límite de max_memory_usage #7552 (Azat Khuzhin)
- Corregir el uso de marcas final en
MergeTree
ordenadas portuple()
. En casos raros podría conducir aCan't adjust last granule
error mientras selecciona. #7639 (Anton Popov) - Corregir errores en mutaciones que tienen predicados con acciones que requieren contexto (por ejemplo, funciones para json), lo que puede provocar bloqueos o excepciones extrañas. #7664 (alesapin)
- Corregir la falta de coincidencia de los nombres de bases de datos y tablas que se escapan en
data/
yshadow/
Directory #7575 (Alejandro Burmak) - Support duplicated keys in RIGHT|FULL JOINs, e.g.
ON t.x = u.x AND t.x = u.y
. Corregir el bloqueo en este caso. #7586 (Artem Zuikov) - Fijar
Not found column <expression> in block
al unirse en la expresión con RIGHT o FULL JOIN. #7641 (Artem Zuikov) - Un intento más de arreglar bucle infinito en
PrettySpace
formato #7591 (Olga Khvostikova) - Corregir error en
concat
función cuando todos los argumentos fueronFixedString
del mismo tamaño. #7635 (alesapin) - Se corrigió la excepción en caso de usar 1 argumento al definir almacenes S3, URL y HDFS. #7618 (Vladimir Chebotarev)
- Corregir el alcance de InterpreterSelectQuery para vistas con consulta #7601 (Azat Khuzhin)
Mejora
Nullable
columnas reconocidas y valores NULL manejados correctamente por ODBC-bridge #7402 (Vasily Nemkov)- Escribir el lote actual para el envío distribuido atómicamente #7600 (Azat Khuzhin)
- Lance una excepción si no podemos detectar la tabla para el nombre de la columna en la consulta. #7358 (Artem Zuikov)
- Añadir
merge_max_block_size
ajuste aMergeTreeSettings
#7412 (Artem Zuikov) - Consultas con
HAVING
y sinGROUP BY
asumir grupo por constante. Tan,SELECT 1 HAVING 1
ahora devuelve un resultado. #7496 (Amos pájaro) - Soporte de análisis
(X,)
como tupla similar a python. #7501, #7562 (Amos pájaro) - Hacer
range
comportamientos de función casi como uno pitónico. #7518 (Sundyli) - Añadir
constraints
columnas a la mesasystem.settings
#7553 (Vitaly Baranov) - Mejor formato nulo para el controlador tcp, por lo que es posible usar
select ignore(<expression>) from table format Null
para la medida de perf a través de clickhouse-client #7606 (Amos pájaro) - Consultas como
CREATE TABLE ... AS (SELECT (1, 2))
se analizan correctamente #7542 (Hcz)
Mejora del rendimiento
- Se mejora el rendimiento de la agregación sobre claves de cadena cortas. #6243 (Alejandro Kuzmenkov, Amos pájaro)
- Ejecute otra pasada de análisis de sintaxis / expresión para obtener optimizaciones potenciales después de que se plieguen los predicados constantes. #7497 (Amos pájaro)
- Use metainformación de almacenamiento para evaluar trivial
SELECT count() FROM table;
#7510 (Amos pájaro, alexey-milovidov) - Vectorizar el procesamiento
arrayReduce
similar a AggregatoraddBatch
. #7608 (Amos pájaro) - Mejoras menores en el rendimiento de
Kafka
consumo #7475 (Ivan)
Mejora de la construcción/prueba/empaquetado
- Agregue soporte para la compilación cruzada a la arquitectura de CPU AARCH64. Refactorizar la secuencia de comandos del empaquetador. #7370 #7539 (Ivan)
- Desempaquete las cadenas de herramientas darwin-x86_64 y linux-aarch64 en el volumen Docker montado al crear paquetes #7534 (Ivan)
- Actualizar la imagen de Docker para Binary Packager #7474 (Ivan)
- Se corrigieron errores de compilación en MacOS Catalina #7585 (Ernest Poletaev)
- Algunas refactorizaciones en la lógica de análisis de consultas: dividir la clase compleja en varias simples. #7454 (Artem Zuikov)
- Reparar la compilación sin submódulos #7295 (propulsor)
- Mejor
add_globs
en archivos CMake #7418 (Amos pájaro) - Eliminar rutas codificadas en
unwind
objetivo #7460 (Konstantin Podshumok) - Permitir usar el formato mysql sin ssl #7524 (propulsor)
Otro
- Añadido gramática ANTLR4 para ClickHouse SQL dialecto #7595 #7596 (alexey-milovidov)
Lanzamiento de ClickHouse 19.16
Lanzamiento de ClickHouse 19.16.14.65, 2020-03-25
- 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) Esta corrección de errores fue portada a la versión 19.16 por una solicitud especial de Altinity.
Lanzamiento de ClickHouse 19.16.14.65, 2020-03-05
- Corregir la incompatibilidad de subconsultas distribuidas con versiones anteriores de CH. Fijar #7851 (tabplubix)
- 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 corrige la verificación de la dirección local enClickHouseDictionarySource
. #9262 (tabplubix) - 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) - 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) - Permitir usar
MaterializedView
con subconsultas anterioresKafka
tabla. #8197 (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)
Lanzamiento de ClickHouse 19.16.2.2, 2019-10-30
Cambio incompatible hacia atrás
- Agregue la validación de arity faltante para count/counIf . #7095 #7298 (Vdimir)
- Eliminar heredado
asterisk_left_columns_only
configuración (que estaba deshabilitado por defecto). #7335 (Artem Zuikov) - Las cadenas de formato para el formato de datos de la plantilla ahora se especifican en los archivos. #7118 (Tavplubix)
Novedad
- Introduzca uniqCombined64() para calcular la cardinalidad mayor que UINT_MAX. #7213, #7222 (Azat Khuzhin)
- Admite índices de filtro Bloom en columnas de matriz. #6984 (chimbab)
- Agregar una función
getMacro(name)
que devuelve String con el valor de<macros>
desde la configuración del servidor. #7240 (alexey-milovidov) - Establezca dos opciones de configuración para un diccionario basado en un origen HTTP:
credentials
yhttp-headers
. #7092 (Guillaume Tassery) - Agregar un nuevo ProfileEvent
Merge
que cuenta el número de fusiones de fondo lanzadas. #7093 (Mijaíl Korotov) - Agregue la función fullHostName que devuelve un nombre de dominio completo. #7263 #7291 (Sundyli)
- Añadir función
arraySplit
yarrayReverseSplit
que dividió una matriz por “cut off” condición. Son útiles en el manejo de secuencias de tiempo. #7294 (Hcz) - Agregue nuevas funciones que devuelvan la matriz de todos los índices coincidentes en la familia de funciones multiMatch. #7299 (Danila Kutenin)
- Agregar un nuevo motor de base de datos
Lazy
que está optimizado para almacenar un gran número de pequeños -Log tabla. #7171 (Nosotros Vasilev) - Agregue funciones agregadas groupBitmapAnd, -Or, -Xor para columnas de mapa de bits. #7109 (Zhichang Yu)
- Agregue los combinadores de funciones agregadas -OrNull y -OrDefault , que devuelven null o valores predeterminados cuando no hay nada que agregar. #7331 (Hcz)
- Introduzca el formato de datos CustomSeparated que admite el escape personalizado y reglas delimitador. #7118 (Tavplubix)
- Soporte Redis como fuente de diccionario externo. #4361 #6962 (comunodi, Anton Popov)
Corrección de errores
- Repara el resultado de la consulta incorrecta si tiene
WHERE IN (SELECT ...)
sección yoptimize_read_in_order
ser utilizar. #7371 (Anton Popov) - Complemento de autenticación MariaDB deshabilitado, que depende de archivos fuera del proyecto. #7140 (Yuriy Baranov)
- Solucionar excepción
Cannot convert column ... because it is constant but values of constants are different in source and result
que rara vez podría suceder cuando funcionesnow()
,today()
,yesterday()
,randConstant()
se utilizan. #7156 (Nikolai Kochetov) - Solucionado el problema de usar HTTP keep alive timeout en lugar de TCP keep alive timeout. #7351 (Vasily Nemkov)
- Se corrigió un error de segmentación en groupBitmapOr (problema #7109). #7289 (Zhichang Yu)
- Para las vistas materializadas, se llama a la confirmación para Kafka después de que se escribieron todos los datos. #7175 (Ivan)
- Corregido mal
duration_ms
valor ensystem.part_log
tabla. Fue diez veces fuera. #7172 (Vladimir Chebotarev) - Una solución rápida para resolver el bloqueo en la tabla LIVE VIEW y volver a habilitar todas las pruebas LIVE VIEW. #7201 (vzakaznikov)
- Serialice los valores NULL correctamente en los índices mínimos / máximos de las partes MergeTree. #7234 (Alejandro Kuzmenkov)
- No coloque columnas virtuales en .sql cuando la tabla se crea como
CREATE TABLE AS
. #7183 (Ivan) - Fijar falla de segmentación en
ATTACH PART
consulta. #7185 (alesapin) - Corrija el resultado incorrecto para algunas consultas dadas por la optimización de las subconsultas IN vacías y vacías INNER/RIGHT JOIN. #7284 (Nikolai Kochetov)
- Reparación del error AddressSanitizer en el método LIVE VIEW getHeader (). #7271 (vzakaznikov)
Mejora
- Añadir un mensaje en caso de queue_wait_max_ms espera se lleva a cabo. #7390 (Azat Khuzhin)
- Ajuste hecho
s3_min_upload_part_size
a nivel de mesa. #7059 (Vladimir Chebotarev) - Compruebe TTL en StorageFactory. #7304 (Sundyli)
- Squash bloques de la izquierda en combinación de fusión parcial (optimización). #7122 (Artem Zuikov)
- No permita funciones no deterministas en mutaciones de motores de tabla replicados, porque esto puede introducir inconsistencias entre réplicas. #7247 (Alejandro Kazakov)
- Deshabilite el rastreador de memoria mientras convierte el seguimiento de la pila de excepciones en cadena. Puede prevenir la pérdida
de mensajes de error de tipo
Memory limit exceeded
en el servidor, lo queAttempt to read after eof
excepción en el cliente. #7264 (Nikolai Kochetov) - Mejoras de formato varios. Resolver #6033, #2633, #6611, #6742 #7215 (Tavplubix)
- ClickHouse ignora los valores en el lado derecho del operador IN que no son convertibles a la izquierda side type. Make it work properly for compound types – Array and Tuple. #7283 (Alejandro Kuzmenkov)
- Apoyar las desigualdades que faltan para ASOF JOIN. Es posible unir una variante menor o igual y estricta mayores y menos variantes para la columna ASOF en la sintaxis ON. #7282 (Artem Zuikov)
- Optimizar la combinación de fusión parcial. #7070 (Artem Zuikov)
- No utilice más de 98K de memoria en funciones uniqCombined. #7236, #7270 (Azat Khuzhin)
- Enjuague las partes de la tabla de unión de la derecha en el disco en PartialMergeJoin (si no hay suficiente memoria). Cargue los datos cuando sea necesario. #7186 (Artem Zuikov)
Mejora del rendimiento
- Acelere joinGet con argumentos const evitando la duplicación de datos. #7359 (Amos Ave)
- Regrese temprano si la subconsulta está vacía. #7007 (小路)
- Optimizar el análisis de la expresión SQL en Valores. #6781 (Tavplubix)
Mejora de la construcción/prueba/empaquetado
- Deshabilite algunas contribuciones para la compilación cruzada en Mac OS. #7101 (Ivan)
- Agregue enlaces faltantes con PocoXML para clickhouse_common_io. #7200 (Azat Khuzhin)
- Acepte varios argumentos de filtro de prueba en clickhouse-test. #7226 (Alejandro Kuzmenkov)
- Habilitar musl y jemalloc para ARM. #7300 (Amos pájaro)
- Añadir
--client-option
parámetro paraclickhouse-test
para pasar parámetros adicionales al cliente. #7277 (Nikolai Kochetov) - Conservar las configuraciones existentes en la actualización del paquete rpm. #7103 (filimonov)
- Corregir errores detectados por PVS. #7153 (Artem Zuikov)
- Corregir la compilación para Darwin. #7149 (Ivan)
- glibc 2.29 compatibilidad. #7142 (Amos Ave)
- Asegúrese de que dh_clean no toque los archivos fuente potenciales. #7205 (Amos Ave)
- Intente evitar conflictos al actualizar desde rpm de altinidad: tiene un archivo de configuración empaquetado por separado en clickhouse-server-common. #7073 (filimonov)
- Optimice algunos archivos de encabezado para reconstrucciones más rápidas. #7212, #7231 (Alejandro Kuzmenkov)
- Agregue pruebas de rendimiento para Date y DateTime. #7332 (Vasily Nemkov)
- Corregir algunas pruebas que contenían mutaciones no deterministas. #7132 (Alejandro Kazakov)
- Agregue compilación con MemorySanitizer a CI. #7066 (Alejandro Kuzmenkov)
- Evite el uso de valores no inicializados en MetricsTransmitter. #7158 (Azat Khuzhin)
- Solucionar algunos problemas en los campos encontrados por MemorySanitizer. #7135, #7179 (Alejandro Kuzmenkov), #7376 (Amos pájaro)
- Corrige el comportamiento indefinido en murmurhash32. #7388 (Amos Ave)
- Corrige el comportamiento indefinido en StoragesInfoStream. #7384 (Tavplubix)
- Se corrigieron expresiones constantes plegables para motores de bases de datos externas (MySQL, ODBC, JDBC). En anteriores versiones no funcionaba para múltiples expresiones constantes y no funcionaba en absoluto para Date, DateTime y UUID. Esto corrige #7245 #7252 (alexey-milovidov)
- Reparación del error de carrera de datos ThreadSanitizer en LIVE VIEW al acceder a la variable no_users_thread. #7353 (vzakaznikov)
- Deshacerse de los símbolos malloc en libcommon #7134, #7065 (Amos Ave)
- Agregue el indicador global ENABLE_LIBRARIES para deshabilitar todas las bibliotecas. #7063 (propulsor)
Limpieza de código
- Generalice el repositorio de configuración para prepararse para DDL para diccionarios. #7155 (alesapin)
- Analizador de diccionarios DDL sin ninguna semántica. #7209 (alesapin)
- Divida ParserCreateQuery en diferentes analizadores más pequeños. #7253 (alesapin)
- Pequeña refactorización y cambio de nombre cerca de diccionarios externos. #7111 (alesapin)
- Refactorizar el código para prepararse para el papel de control de acceso basado. #7235 (Vitaly Baranov)
- Algunas mejoras en el código DatabaseOrdinary. #7086 (Nosotros Vasilev)
- No use iteradores en los métodos find() y emplace() de tablas hash. #7026 (Alejandro Kuzmenkov)
- Repare getMultipleValuesFromConfig en caso de que la raíz del parámetro no esté vacía. #7374 (Mikhail Korotov)
- Eliminar algunos copiar y pegar (TemporaryFile y TemporaryFileStream) #7166 (Artem Zuikov)
- Mejora de la legibilidad del código un poco (
MergeTreeData::getActiveContainingPart
). #7361 (Vladimir Chebotarev) - Espere a que todos los trabajos programados, que utilizan objetos locales, si
ThreadPool::schedule(...)
lanzar salvedad. Cambiar nombreThreadPool::schedule(...)
aThreadPool::scheduleOrThrowOnError(...)
y corregir los comentarios para hacer obvio que puede lanzar. #7350 (Tavplubix)
Lanzamiento de ClickHouse 19.15
Lanzamiento de ClickHouse 19.15.4.10, 31-10-2019
Corrección de errores
- Se agregó el manejo de SQL_TINYINT y SQL_BIGINT, y el manejo de correcciones de los tipos de origen de datos SQL_FLOAT en ODBC Bridge. #7491 (Denis Glazachev)
- Se permite tener algunas partes en el disco de destino o el volumen en MOVE PARTITION. #7434 (Vladimir Chebotarev)
- Se corrigieron valores NULL en columnas anulables a través del puente ODBC. #7402 (Vasily Nemkov)
- Se corrigió INSERT en el nodo distribuido no local con columnas MATERIALIZED. #7377 (Azat Khuzhin)
- Función fija getMultipleValuesFromConfig. #7374 (Mikhail Korotov)
- Solucionado el problema de usar HTTP keep alive timeout en lugar de TCP keep alive timeout. #7351 (Vasily Nemkov)
- Espere a que todos los trabajos finalicen con excepción (corrige fallas raras). #7350 (Tavplubix)
- No presione a MVs cuando inserte en la tabla Kafka. #7265 (Ivan)
- Deshabilitar el rastreador de memoria para la pila de excepciones. #7264 (Nikolai Kochetov)
- Se corrigió el código incorrecto en la transformación de la consulta para la base de datos externa. #7252 (alexey-milovidov)
- Evite el uso de valores no inicializados en MetricsTransmitter. #7158 (Azat Khuzhin)
- Se agregó configuración de ejemplo con macros para pruebas (alexey-milovidov)
Lanzamiento de ClickHouse 19.15.3.6, 2019-10-09
Corrección de errores
- Se corrigió bad_variant en el diccionario hash. (alesapin)
- Se corrigió un error con un error de segmentación en la consulta ATTACH PART. (alesapin)
- Cálculo de tiempo fijo en
MergeTreeData
. (Vladimir Chebotarev) - Comprometerse con Kafka explícitamente después de finalizar la escritura. #7175 (Ivan)
- Serialice los valores NULL correctamente en los índices mínimos / máximos de las partes MergeTree. #7234 (Alejandro Kuzmenkov)
Lanzamiento de ClickHouse 19.15.2.2, 2019-10-01
Novedad
- Almacenamiento por niveles: admite el uso de múltiples volúmenes de almacenamiento para tablas con el motor MergeTree. Es posible almacenar datos nuevos en SSD y mover automáticamente datos antiguos a HDD. (ejemplo). #4918 (Igr) #6489 (alesapin)
- Agregar función de tabla
input
para leer los datos entrantes enINSERT SELECT
consulta. #5450 (Palasonic1) #6832 (Anton Popov) - Añadir un
sparse_hashed
diccionario, que es funcionalmente equivalente alhashed
diseño, pero es más eficiente en la memoria. Utiliza aproximadamente el doble de menos memoria a costa de una recuperación de valor más lenta. #6894 (Azat Khuzhin) - Implementar la capacidad de definir la lista de usuarios para el acceso a los diccionarios. Sólo la base de datos conectada actual utilizando. #6907 (Guillaume Tassery)
- Añadir
LIMIT
opción paraSHOW
consulta. #6944 (Filipina Malkovsky) - Añadir
bitmapSubsetLimit(bitmap, range_start, limit)
función, que devuelve subconjunto de la más pequeñalimit
valores en el conjunto que no es menor querange_start
. #6957 (Zhichang Yu) - Añadir
bitmapMin
ybitmapMax
función. #6970 (Zhichang Yu) - Añadir función
repeat
relacionado con Información detallada #6999 (Más información)
Característica Experimental
- Implementar (en memoria) Combinar unir variante que no cambia la canalización actual. El resultado está parcialmente ordenado por clave de combinación. Establecer
partial_merge_join = 1
para usar esta función. La combinación de combinación todavía está en desarrollo. #6940 (Artem Zuikov) - Añadir
S3
función del motor y de la tabla. Todavía está en desarrollo (todavía no hay soporte de autenticación). #5596 (Vladimir Chebotarev)
Mejora
- Cada mensaje leído de Kafka se inserta atómicamente. Esto resuelve casi todos los problemas conocidos con el motor Kafka. #6950 (Ivan)
- Mejoras para la conmutación por error de consultas distribuidas. Acortar el tiempo de recuperación, también ahora es configurable y se puede ver en
system.clusters
. #6399 (Vasily Nemkov) - Soporta valores numéricos para enumeraciones directamente en
IN
apartado. #6766 #6941 (Dimarub2000) - El soporte (opcional, deshabilitado de forma predeterminada) redirige el almacenamiento de URL. #6914 (Más información)
- Agregue un mensaje de información cuando el cliente con una versión anterior se conecte a un servidor. #6893 (Filipina Malkovsky)
- Eliminar el límite máximo de tiempo de suspensión de interrupción para el envío de datos en tablas distribuidas #6895 (Azat Khuzhin)
- Agregue la capacidad de enviar eventos de perfil (contadores) con valores acumulativos al grafito. Se puede habilitar bajo
<events_cumulative>
en el servidorconfig.xml
. #6969 (Azat Khuzhin) - Añadir tipo de fundición automática
T
aLowCardinality(T)
mientras inserta datos en la columna de tipoLowCardinality(T)
en formato nativo a través de HTTP. #6891 (Nikolai Kochetov) - Añadir la capacidad de utilizar la función
hex
sin usarreinterpretAsString
paraFloat32
,Float64
. #7024 (Mikhail Korotov)
Mejora de la construcción/prueba/empaquetado
- Agregue gdb-index al binario de clickhouse con información de depuración. Acelerará el tiempo de inicio de
gdb
. #6947 (alesapin) - Acelerar el embalaje deb con parcheado dpkg-deb que utiliza
pigz
. #6960 (alesapin) - Establecer
enable_fuzzing = 1
para habilitar la instrumentación libfuzzer de todo el código del proyecto. #7042 (kyprizel) - Añadir prueba de humo de construcción dividida en CI. #7061 (alesapin)
- Agregue compilación con MemorySanitizer a CI. #7066 (Alejandro Kuzmenkov)
- Reemplazar
libsparsehash
consparsehash-c11
#6965 (Azat Khuzhin)
Corrección de errores
- Se corrigió la degradación del rendimiento del análisis de índices en claves complejas en tablas grandes. Esto corrige #6924. #7075 (alexey-milovidov)
- Corregir el error lógico que causa segfaults al seleccionar el tema vacío de Kafka. #6909 (Ivan)
- Arreglar la conexión MySQL demasiado pronto cerca
MySQLBlockInputStream.cpp
. #6882 (Clément Rodriguez) - Soporte devuelto para núcleos Linux muy antiguos (solución #6841) #6853 (alexey-milovidov)
- Solucionar la posible pérdida de datos en
insert select
consulta en caso de bloque vacío en el flujo de entrada. #6834 #6862 #6911 (Nikolai Kochetov) - Solución para la función
АrrayEnumerateUniqRanked
con matrices vacías en params #6928 (propulsor) - Solucione consultas complejas con combinaciones de matriz y subconsultas globales. #6934 (Ivan)
- Fijar
Unknown identifier
error en ORDER BY y GROUP BY con múltiples JOINs #7022 (Artem Zuikov) - Fijo
MSan
advertencia al ejecutar la función conLowCardinality
argumento. #7062 (Nikolai Kochetov)
Cambio incompatible hacia atrás
- Se ha cambiado el formato de serialización de los estados de la función agregada de mapa de bits * para mejorar el rendimiento. No se pueden leer los estados serializados de bitmap* de versiones anteriores. #6908 (Zhichang Yu)
Lanzamiento de ClickHouse 19.14
Lanzamiento de ClickHouse 19.14.7.15, 2019-10-02
Corrección de errores
- Esta versión también contiene todas las correcciones de errores de 19.11.12.69.
- Compatibilidad fija para consultas distribuidas entre 19.14 y versiones anteriores. Esto corrige #7068. #7069 (alexey-milovidov)
Lanzamiento de ClickHouse 19.14.6.12, 2019-09-19
Corrección de errores
- Solución para la función
АrrayEnumerateUniqRanked
con matrices vacías en params. #6928 (propulsor) - Nombre de subconsulta fijo en consultas con
ARRAY JOIN
yGLOBAL IN subquery
con alias. Utilice el alias de subconsulta para el nombre de tabla externo si se especifica. #6934 (Ivan)
Mejora de la construcción/prueba/empaquetado
- Fijar aleteo prueba
00715_fetch_merged_or_mutated_part_zookeeper
reescribiéndolo en scripts de shell porque necesita esperar a que se apliquen las mutaciones. #6977 (Alejandro Kazakov) - Fijo UBSan y MemSan fallo en la función
groupUniqArray
con el argumento de matriz emtpy. Fue causado por la colocación de vacíoPaddedPODArray
en la celda cero de la tabla hash porque no se llamó al constructor para el valor de la celda cero. #6937 (Amos pájaro)
Lanzamiento de ClickHouse 19.14.3.3, 2019-09-10
Novedad
WITH FILL
modificador paraORDER BY
. (continuación de #5069) #6610 (Anton Popov)WITH TIES
modificador paraLIMIT
. (continuación de #5069) #6610 (Anton Popov)- Analizar unquoted
NULL
literal como NULL (si estableceformat_csv_unquoted_null_literal_as_null=1
). Inicialice los campos nulos con valores predeterminados si el tipo de datos de este campo no se puede anular (siinput_format_null_as_default=1
). #5990 #6055 (Tavplubix) - Soporte para comodines en rutas de funciones de tabla
file
yhdfs
. Si la ruta contiene comodines, la tabla será de solo lectura. Ejemplo de uso:select * from hdfs('hdfs://hdfs1:9000/some_dir/another_dir/*/file{0..9}{0..9}')
yselect * from file('some_dir/{some_file,another_file,yet_another}.tsv', 'TSV', 'value UInt32')
. #6092 (Olga Khvostikova) - Nuevo
system.metric_log
tabla que almacena los valores desystem.events
ysystem.metrics
con el intervalo de tiempo especificado. #6363 #6467 (Nikita Mikhaylov) #6530 (alexey-milovidov) - Permitir escribir registros de texto de ClickHouse en
system.text_log
tabla. #6037 #6103 (Nikita Mikhaylov) #6164 (alexey-milovidov) - Mostrar símbolos privados en trazas de pila (esto se hace mediante el análisis de tablas de símbolos de archivos ELF). Se agregó información sobre el archivo y el número de línea en los seguimientos de la pila si la información de depuración está presente. Búsqueda de nombre de símbolo de aceleración con símbolos de indexación presentes en el programa. Se agregaron nuevas funciones SQL para la introspección:
demangle
yaddressToLine
. Función renombradasymbolizeAddress
aaddressToSymbol
para la consistencia. FunciónaddressToSymbol
devolverá el nombre destrozado por razones de rendimiento y debe aplicardemangle
. Añadidoallow_introspection_functions
que está desactivado por defecto. #6201 (alexey-milovidov) - Función de la tabla
values
(el nombre no distingue entre mayúsculas y minúsculas). Permite leer deVALUES
lista propuesta en #5984. Ejemplo:SELECT * FROM VALUES('a UInt64, s String', (1, 'one'), (2, 'two'), (3, 'three'))
. #6217. #6209 (Dimarub2000) - Se agregó la capacidad de alterar la configuración de almacenamiento. Sintaxis:
ALTER TABLE <table> MODIFY SETTING <setting> = <value>
. #6366 #6669 #6685 (alesapin) - Soporte para la eliminación de piezas separadas. Sintaxis:
ALTER TABLE <table_name> DROP DETACHED PART '<part_id>'
. #6158 (Tavplubix) - Restricciones de tabla. Permite agregar restricciones a la definición de la tabla que se verificará en la inserción. #5273 (Gleb Novikov) #6652 (alexey-milovidov)
- Soporte para vistas materializadas en cascada. #6324 (Amos pájaro)
- Active el generador de perfiles de consulta de forma predeterminada para muestrear cada subproceso de ejecución de consultas una vez por segundo. #6283 (alexey-milovidov)
- Formato de entrada
ORC
. #6454 #6703 (akonyaev90) - Se agregaron dos nuevas funciones:
sigmoid
ytanh
(que son útiles para aplicaciones de aprendizaje automático). #6254 (alexey-milovidov) - Función
hasToken(haystack, token)
,hasTokenCaseInsensitive(haystack, token)
para verificar si el token dado está en pajar. Token es una subcadena de longitud máxima entre dos caracteres ASCII no alfanuméricos (o límites de pajar). Token debe ser una cadena constante. Apoyado por la especialización de índice tokenbf_v1. #6596, #6662 (Vasily Nemkov) - Nueva función
neighbor(value, offset[, default_value])
. Permite alcanzar el valor prev / next dentro de la columna en un bloque de datos. #5925 (Acerca de Nosotros) 6685365ab8c5b74f9650492c88a012596eb1b0c6 341e2e4587a18065c2da1ca888c73389f48ce36c Alexey Milovidov - Creó una función
currentUser()
, devolver el inicio de sesión del usuario autorizado. Alias agregadouser()
por compatibilidad con MySQL. #6470 (Acerca de Nosotros) - Nuevas funciones agregadas
quantilesExactInclusive
yquantilesExactExclusive
que fueron propuestos en #5885. #6477 (Dimarub2000) - Función
bitmapRange(bitmap, range_begin, range_end)
que devuelve un nuevo conjunto con el rango especificado (no incluye elrange_end
). #6314 (Zhichang Yu) - Función
geohashesInBox(longitude_min, latitude_min, longitude_max, latitude_max, precision)
que crea una matriz de cadenas de precisión de cajas geohash que cubren el área proporcionada. #6127 (Vasily Nemkov) - Implementar soporte para la consulta INSERT con
Kafka
tabla. #6012 (Ivan) - Añadido soporte para
_partition
y_timestamp
columnas virtuales al motor Kafka. #6400 (Ivan) - Posibilidad de eliminar datos confidenciales de
query_log
, registros del servidor, lista de procesos con reglas basadas en expresiones regulares. #5710 (filimonov)
Característica Experimental
- Formato de datos de entrada y salida
Template
. Permite especificar cadena de formato personalizado para entrada y salida. #4354 #6727 (Tavplubix) - Implementación de
LIVE VIEW
tablas que se propusieron originalmente en #2898 elaborado en #3925, y luego actualizado en #5541. Ver #5541 para una descripción detallada. #5541 (vzakaznikov) #6425 (Nikolai Kochetov) #6656 (vzakaznikov) Tenga en cuenta queLIVE VIEW
característica puede ser eliminado en las próximas versiones.
Corrección de errores
- Esta versión también contiene todas las correcciones de errores de 19.13 y 19.11.
- Corregir la falla de segmentación cuando la tabla tiene índices de omisión y se produce una fusión vertical. #6723 (alesapin)
- Corregir TTL por columna con valores predeterminados de columna no triviales. Anteriormente en caso de fuerza TTL se fusionan con
OPTIMIZE ... FINAL
consulta, los valores caducados se reemplazaron por valores predeterminados de tipo en lugar de valores predeterminados de columna especificados por el usuario. #6796 (Anton Popov) - Solucione el problema de duplicación de mensajes de Kafka en el reinicio normal del servidor. #6597 (Ivan)
- Se corrigió un bucle infinito al leer mensajes de Kafka. No pausar / reanudar el consumidor en la suscripción en absoluto; de lo contrario, puede pausarse indefinidamente en algunos escenarios. #6354 (Ivan)
- Fijar
Key expression contains comparison between inconvertible types
excepción enbitmapContains
función. #6136 #6146 #6156 (Dimarub2000) - Reparar segfault con habilitado
optimize_skip_unused_shards
y falta la clave de fragmentación. #6384 (Anton Popov) - Se corrigió el código incorrecto en las mutaciones que pueden conducir a la corrupción de la memoria. segfault fijo con lectura de la dirección
0x14c0
que puede happed debido a concurrenteDROP TABLE
ySELECT
desystem.parts
osystem.parts_columns
. Condición de carrera fija en la preparación de consultas de mutación. Estancamiento fijo causado porOPTIMIZE
de tablas replicadas y operaciones de modificación simultáneas como ALTERs. #6514 (alexey-milovidov) - Se eliminó el registro detallado adicional en la interfaz MySQL #6389 (alexey-milovidov)
- Devuelve la capacidad de analizar la configuración booleana de ‘true’ y ‘false’ en el archivo de configuración. #6278 (alesapin)
- Fix crash en
quantile
ymedian
función sobreNullable(Decimal128)
. #6378 (Artem Zuikov) - Se corrigió el posible resultado incompleto devuelto por
SELECT
consulta conWHERE
condición en la clave principal contenía conversión a tipo flotante. Fue causado por una comprobación incorrecta de la monotonía entoFloat
función. #6248 #6374 (Dimarub2000) - Comprobar
max_expanded_ast_elements
establecimiento de mutaciones. Mutaciones claras después deTRUNCATE TABLE
. #6205 (Invierno Zhang) - Repare los resultados de JOIN para las columnas clave cuando se usa con
join_use_nulls
. Adjunte valores nulos en lugar de valores predeterminados de columnas. #6249 (Artem Zuikov) - Solución para índices de salto con combinación vertical y alteración. Solución para
Bad size of marks file
salvedad. #6594 #6713 (alesapin) - Arreglar accidente raro en
ALTER MODIFY COLUMN
y fusión vertical cuando una de las partes fusionadas / alteradas está vacía (0 filas) #6746 #6780 (alesapin) - Corregido error en la conversión de
LowCardinality
tipos enAggregateFunctionFactory
. Esto corrige #6257. #6281 (Nikolai Kochetov) - Corregir el comportamiento incorrecto y posibles fallas en
topK
ytopKWeighted
funciones agregadas. #6404 (Anton Popov) - Código inseguro fijo alrededor
getIdentifier
función. #6401 #6409 (alexey-milovidov) - Se corrigió un error en el protocolo de cable MySQL (se usa mientras se conecta al cliente MySQL de ClickHouse). Causado por el desbordamiento del búfer de pila en
PacketPayloadWriteBuffer
. #6212 (Yuriy Baranov) - Pérdida de memoria fija en
bitmapSubsetInRange
función. #6819 (Zhichang Yu) - Corregir un error raro cuando la mutación se ejecuta después del cambio de granularidad. #6816 (alesapin)
- Permitir mensaje protobuf con todos los campos de forma predeterminada. #6132 (Vitaly Baranov)
- Resolver un error con
nullIf
función cuando enviamos unNULL
en el segundo argumento. #6446 (Guillaume Tassery) - Corregir un error raro con la asignación / desasignación de memoria incorrecta en diccionarios complejos de caché de claves con campos de cadena que conduce a un consumo infinito de memoria (parece una pérdida de memoria). El error se reproduce cuando el tamaño de la cadena era una potencia de dos a partir de ocho (8, 16, 32, etc.). #6447 (alesapin)
- Se corrigió la codificación Gorilla en pequeñas secuencias que causaron una excepción
Cannot write after end of buffer
. #6398 #6444 (Vasily Nemkov) - Permitir el uso de tipos no anulables en JOINs con
join_use_nulls
permitir. #6705 (Artem Zuikov) - Desactivar
Poco::AbstractConfiguration
sustituciones en consulta enclickhouse-client
. #6706 (alexey-milovidov) - Evitar el punto muerto en
REPLACE PARTITION
. #6677 (alexey-milovidov) - Utilizar
arrayReduce
para argumentos constantes puede conducir a segfault. #6242 #6326 (alexey-milovidov) - Corregir partes inconsistentes que pueden aparecer si la réplica se restauró después de
DROP PARTITION
. #6522 #6523 (Tavplubix) - Cuelgue fijo adentro
JSONExtractRaw
función. #6195 #6198 (alexey-milovidov) - Corregir un error con la serialización y agregación de índices de omisión incorrectos con granularidad adaptativa. #6594. #6748 (alesapin)
- Fijar
WITH ROLLUP
yWITH CUBE
modificadores deGROUP BY
con agregación de dos niveles. #6225 (Anton Popov) - Corregir un error al escribir marcas de índices secundarios con granularidad adaptativa. #6126 (alesapin)
- Corregir el orden de inicialización durante el inicio del servidor. Ya
StorageMergeTree::background_task_handle
se inicializa enstartup()
elMergeTreeBlockOutputStream::write()
puede intentar usarlo antes de la inicialización. Solo verifique si está inicializado. #6080 (Ivan) - Borrar el búfer de datos de la operación de lectura anterior que se completó con un error. #6026 (Nikolay)
- Se corrigió un error al habilitar la granularidad adaptativa al crear una nueva réplica para la tabla Replicated*MergeTree. #6394 #6452 (alesapin)
- Se corrigió un posible bloqueo durante el inicio del servidor en caso de que ocurriera una excepción en
libunwind
durante la excepción en el acceso aThreadStatus
estructura. #6456 (Nikita Mikhaylov) - Fix crash en
yandexConsistentHash
función. Encontrado por prueba de fuzz. #6304 #6305 (alexey-milovidov) - Se corrigió la posibilidad de colgar consultas cuando el servidor está sobrecargado y el grupo de subprocesos global está casi lleno. Esto tiene una mayor probabilidad de ocurrir en clústeres con una gran cantidad de fragmentos (cientos), porque las consultas distribuidas asignan un hilo por conexión a cada fragmento. Por ejemplo, este problema puede reproducirse si un clúster de 330 fragmentos está procesando 30 consultas distribuidas simultáneas. Este problema afecta a todas las versiones a partir de 19.2. #6301 (alexey-milovidov)
- Lógica fija de
arrayEnumerateUniqRanked
función. #6423 (alexey-milovidov) - Corregir segfault al decodificar la tabla de símbolos. #6603 (Amos pájaro)
- Se corrigió una excepción irrelevante en el elenco de
LowCardinality(Nullable)
to not-Nullable column in case if it doesn't contain Nulls (e.g. in query likeSELECT CAST(CAST('Hello' AS LowCardinality(Nullable(String))) AS String)
. #6094 #6119 (Nikolai Kochetov) - Se eliminó la cita adicional de la descripción en
system.settings
tabla. #6696 #6699 (alexey-milovidov) - Evite un posible punto muerto en
TRUNCATE
de la tabla replicada. #6695 (alexey-milovidov) - Corregir la lectura en orden de clave de clasificación. #6189 (Anton Popov)
- Fijar
ALTER TABLE ... UPDATE
consulta para tablas conenable_mixed_granularity_parts=1
. #6543 (alesapin) - Corregir error abierto por #4405 (desde 19.4.0). Se reproduce en consultas a tablas distribuidas sobre tablas MergeTree cuando no consultamos ninguna columnas (
SELECT 1
). #6236 (alesapin) - Se corrigió el desbordamiento en la división de enteros de tipo con signo a tipo sin signo. El comportamiento fue exactamente como en el lenguaje C o C ++ (reglas de promoción enteras) que puede ser sorprendente. Tenga en cuenta que el desbordamiento aún es posible cuando se divide un número firmado grande por un número sin signo grande o viceversa (pero ese caso es menos habitual). El problema existía en todas las versiones del servidor. #6214 #6233 (alexey-milovidov)
- Limite el tiempo máximo de suspensión para el estrangulamiento cuando
max_execution_speed
omax_execution_speed_bytes
se establece. Se corrigieron errores falsos comoEstimated query execution time (inf seconds) is too long
. #5547 #6232 (alexey-milovidov) - Se corrigieron problemas sobre el uso
MATERIALIZED
columnas y alias enMaterializedView
. #448 #3484 #3450 #2878 #2285 #3796 (Amos pájaro) #6316 (alexey-milovidov) - Fijar
FormatFactory
comportamiento para flujos de entrada que no se implementan como procesador. #6495 (Nikolai Kochetov) - Error tipográfico fijo. #6631 (Acerca de Nosotros)
- Typo en el mensaje de error (es -> are ). #6839 (Denis Zhuravlev)
- Se corrigió el error al analizar la lista de columnas de la cadena si el tipo contenía una coma (este problema era relevante para
File
,URL
,HDFS
almacenamiento) #6217. #6209 (Dimarub2000)
Corrección de seguridad
- Esta versión también contiene todas las correcciones de seguridad de errores de 19.13 y 19.11.
- Se corrigió la posibilidad de que una consulta fabricada causara un bloqueo del servidor debido al desbordamiento de la pila en el analizador SQL. Se corrigió la posibilidad de desbordamiento de pila en las tablas Merge y Distributed, las vistas materializadas y las condiciones para la seguridad a nivel de fila que implicaban subconsultas. #6433 (alexey-milovidov)
Mejora
- Correcta implementación de la lógica ternaria para
AND/OR
. #6048 (Alejandro Kazakov) - Ahora los valores y filas con TTL caducado se eliminarán después
OPTIMIZE ... FINAL
query from old parts without TTL infos or with outdated TTL infos, e.g. afterALTER ... MODIFY TTL
consulta. Consultas añadidasSYSTEM STOP/START TTL MERGES
para no permitir / permitir asignar fusiones con TTL y filtrar valores caducados en todas las fusiones. #6274 (Anton Popov) - Posibilidad de cambiar la ubicación del archivo de historial de ClickHouse para el cliente usando
CLICKHOUSE_HISTORY_FILE
envío. #6840 (filimonov) - Quitar
dry_run
bandera deInterpreterSelectQuery
. … #6375 (Nikolai Kochetov) - Apoyo
ASOF JOIN
conON
apartado. #6211 (Artem Zuikov) - Mejor soporte de índices de omisión para mutaciones y replicación. Soporte para
MATERIALIZE/CLEAR INDEX ... IN PARTITION
consulta.UPDATE x = x
vuelve a calcular todos los índices que usan la columnax
. #5053 (Nikita Vasilev) - Permitir a
ATTACH
vistas en vivo (por ejemplo, al iniciar el servidor) independientemente deallow_experimental_live_view
configuración. #6754 (alexey-milovidov) - Para los seguimientos de pila recopilados por el generador de perfiles de consultas, no incluya los marcos de pila generados por el propio generador de perfiles de consultas. #6250 (alexey-milovidov)
- Ahora funciones de tabla
values
,file
,url
,hdfs
tienen soporte para columnas ALIAS. #6255 (alexey-milovidov) - Lance una excepción si
config.d
file no tiene el elemento raíz correspondiente como el archivo de configuración. #6123 (Dimarub2000) - Imprimir información adicional en el mensaje de excepción para
no space left on device
. #6182, #6252 #6352 (Tavplubix) - Al determinar fragmentos de un
Distributed
debe ser cubierto por una consulta de lectura (paraoptimize_skip_unused_shards
= 1) ClickHouse ahora verifica las condiciones de ambosprewhere
ywhere
cláusulas de la instrucción select. #6521 (Alejandro Kazakov) - Permitir
SIMDJSON
para máquinas sin AVX2 pero con sistema de instrucciones SSE 4.2 y PCLMUL. #6285 #6320 (alexey-milovidov) - ClickHouse puede funcionar en sistemas de archivos sin
O_DIRECT
soporte (como ZFS y BtrFS) sin afinación adicional. #4449 #6730 (alexey-milovidov) - Soporte push down predicado para la subconsulta final. #6120 (Método de codificación de datos:) #6162 (alexey-milovidov)
- Mejor
JOIN ON
extracción de llaves #6131 (Artem Zuikov) - Se ha actualizado
SIMDJSON
. #6285. #6306 (alexey-milovidov) - Optimizar la selección de la columna más pequeña para
SELECT count()
consulta. #6344 (Amos pájaro) - Añadir
strict
parámetro enwindowFunnel()
. Cuando elstrict
se establece, elwindowFunnel()
aplica condiciones sólo para los valores únicos. #6548 (chimbab) - Interfaz más segura de
mysqlxx::Pool
. #6150 (avasiliev) - Opciones de tamaño de línea al ejecutar con
--help
opción ahora se corresponde con el tamaño del terminal. #6590 (Dimarub2000) - Desactivar “read in order” optimización para la agregación sin claves. #6599 (Anton Popov)
- Código de estado HTTP para
INCORRECT_DATA
yTYPE_MISMATCH
los códigos de error se cambiaron de forma predeterminada500 Internal Server Error
a400 Bad Request
. #6271 (Alejandro Rodin) - Mover un objeto de unión desde
ExpressionAction
enAnalyzedJoin
.ExpressionAnalyzer
yExpressionAction
no séJoin
clase más. Su lógica está oculta porAnalyzedJoin
iface. #6801 (Artem Zuikov) - Se corrigió un posible interbloqueo de consultas distribuidas cuando uno de los fragmentos es localhost pero la consulta se envía a través de una conexión de red. #6759 (alexey-milovidov)
- Semántica cambiada de varias tablas
RENAME
para evitar posibles interbloqueos. #6757. #6756 (alexey-milovidov) - Servidor de compatibilidad MySQL reescrito para evitar la carga completa de paquetes de carga en la memoria. Disminución del consumo de memoria para cada conexión a aproximadamente
2 * DBMS_DEFAULT_BUFFER_SIZE
(búferes de lectura/escritura). #5811 (Yuriy Baranov) - Mueva la lógica de interpretación de alias AST fuera del analizador que no tiene que saber nada sobre la semántica de consultas. #6108 (Artem Zuikov)
- Análisis ligeramente más seguro de
NamesAndTypesList
. #6408. #6410 (alexey-milovidov) clickhouse-copier
: Permitir el usowhere_condition
de configuración conpartition_key
alias en la consulta para verificar la existencia de la partición (Anteriormente se usaba solo para leer consultas de datos). #6577 (propulsor)- Añadido argumento de mensaje opcional en
throwIf
. (#5772) #6329 (Vdimir) - La excepción del servidor obtenida al enviar datos de inserción ahora también se está procesando en el cliente. #5891 #6711 (Dimarub2000)
- Se agregó una métrica
DistributedFilesToInsert
que muestra el número total de archivos en el sistema de archivos que se seleccionan para enviar a servidores remotos mediante tablas distribuidas. El número se suma en todos los fragmentos. #6600 (alexey-milovidov) - Mover la mayoría de JOINs preparar la lógica de
ExpressionAction/ExpressionAnalyzer
aAnalyzedJoin
. #6785 (Artem Zuikov) - Reparar TSan advertencia ‘lock-order-inversion’. #6740 (Vasily Nemkov)
- Mejores mensajes de información sobre la falta de capacidades de Linux. Registro de errores fatales con “fatal” nivel, que hará que sea más fácil de encontrar en
system.text_log
. #6441 (alexey-milovidov) - Cuando se habilita el volcado de datos temporales en el disco para restringir el uso de memoria durante
GROUP BY
,ORDER BY
, no comprobó el espacio de disco libre. La corrección agrega una nueva configuraciónmin_free_disk_space
, cuando el espacio de disco libre es más pequeño que el umbral, la consulta se detendrá y lanzaráErrorCodes::NOT_ENOUGH_SPACE
. #6678 (Weiqing Xu) #6691 (alexey-milovidov) - Eliminado rwlock recursivo por hilo. No tiene sentido, porque los hilos se reutilizan entre consultas.
SELECT
la consulta puede adquirir un bloqueo en un hilo, mantener un bloqueo de otro hilo y salir del primer hilo. Al mismo tiempo, el primer hilo puede ser reutilizado porDROP
consulta. Esto conducirá a falso “Attempt to acquire exclusive lock recursively” mensaje. #6771 (alexey-milovidov) - Dividir
ExpressionAnalyzer.appendJoin()
. Preparar un lugar enExpressionAnalyzer
paraMergeJoin
. #6524 (Artem Zuikov) - Añadir
mysql_native_password
complemento de autenticación al servidor de compatibilidad MySQL. #6194 (Yuriy Baranov) - Menos número de
clock_gettime
llamadas; compatibilidad ABI fija entre depuración / liberación enAllocator
(problema insignificante). #6197 (alexey-milovidov) - Mover
collectUsedColumns
deExpressionAnalyzer
aSyntaxAnalyzer
.SyntaxAnalyzer
hacerrequired_source_columns
sí mismo ahora. #6416 (Artem Zuikov) - Añadir ajuste
joined_subquery_requires_alias
para requerir alias para subselecciones y funciones de tabla enFROM
that more than one table is present (i.e. queries with JOINs). #6733 (Artem Zuikov) - Extraer
GetAggregatesVisitor
clase deExpressionAnalyzer
. #6458 (Artem Zuikov) system.query_log
: cambiar el tipo de datos detype
columna aEnum
. #6265 (Nikita Mikhaylov)- Enlace estático de
sha256_password
complemento de autenticación. #6512 (Yuriy Baranov) - Evite una dependencia adicional para la configuración
compile
trabajar. En versiones anteriores, el usuario puede obtener un error comocannot open crti.o
,unable to find library -lc
sucesivamente. #6309 (alexey-milovidov) - Más validación de la entrada que puede provenir de réplica maliciosa. #6303 (alexey-milovidov)
- Ahora
clickhouse-obfuscator
el archivo está disponible enclickhouse-client
paquete. En versiones anteriores estaba disponible comoclickhouse obfuscator
(con espacios en blanco). #5816 #6609 (Dimarub2000) - Fijo interbloqueo cuando tenemos al menos dos consultas que leer al menos dos tablas en orden diferente y otra consulta que realiza DDL operación en una de las mesas. Se corrigió otro punto muerto muy raro. #6764 (alexey-milovidov)
- Añadir
os_thread_ids
columna asystem.processes
ysystem.query_log
para mejores posibilidades de depuración. #6763 (alexey-milovidov) - Una solución para los errores de extensión PHP mysqlnd que ocurren cuando
sha256_password
se utiliza como un complemento de autenticación predeterminado (descrito en #6031). #6113 (Yuriy Baranov) - Elimine el lugar innecesario con columnas de nulabilidad modificadas. #6693 (Artem Zuikov)
- Establecer el valor predeterminado de
queue_max_wait_ms
a cero, porque el valor actual (cinco segundos) no tiene sentido. Hay raras circunstancias en las que esta configuración tiene algún uso. Configuración añadidareplace_running_query_max_wait_ms
,kafka_max_wait_ms
yconnection_pool_max_wait_ms
para la desambiguación. #6692 (alexey-milovidov) - Extraer
SelectQueryExpressionAnalyzer
deExpressionAnalyzer
. Mantenga el último para consultas no seleccionadas. #6499 (Artem Zuikov) - Se eliminó la duplicación de formatos de entrada y salida. #6239 (Nikolai Kochetov)
- Permitir al usuario anular
poll_interval
yidle_connection_timeout
configuración en la conexión. #6230 (alexey-milovidov) MergeTree
ahora tiene una opción adicionalttl_only_drop_parts
(deshabilitado por defecto) para evitar la poda parcial de las piezas, de modo que se caigan completamente cuando todas las filas de una pieza hayan caducado. #6191 (Sergi Vladykin)- Comprobaciones de tipo para establecer funciones de índice. Lanzar excepción si la función tiene un tipo incorrecto. Esto corrige la prueba de fuzz con UBSan. #6511 (Nikita Vasilev)
Mejora del rendimiento
- Optimice las consultas con
ORDER BY expressions
cláusula, dondeexpressions
tiene prefijo coincidente con clave de clasificación enMergeTree
tabla. Esta optimización está controlada poroptimize_read_in_order
configuración. #6054 #6629 (Anton Popov) - Permitir el uso de múltiples hilos durante la carga y eliminación de piezas. #6372 #6074 #6438 (alexey-milovidov)
- Variante por lotes implementada de actualizar los estados de funciones agregadas. Puede conducir a beneficios de rendimiento. #6435 (alexey-milovidov)
- Utilizar
FastOps
biblioteca para funcionesexp
,log
,sigmoid
,tanh
. FastOps es una biblioteca matemática vectorial rápido de Michael Parakhin (Yandex CTO). Rendimiento mejorado deexp
ylog
funciona más de 6 veces. Funciónexp
ylog
deFloat32
el argumento volveráFloat32
(en versiones anteriores siempre regresanFloat64
). Ahoraexp(nan)
puede volverinf
. El resultado deexp
ylog
las funciones pueden no ser el número representable de la máquina más cercana a la respuesta verdadera. #6254 (alexey-milovidov) Usando la variante Danila Kutenin para hacer fastops trabajando #6317 (alexey-milovidov) - Deshabilitar la optimización de claves consecutivas para
UInt8/16
. #6298 #6701 (akuzm) - Rendimiento mejorado de
simdjson
biblioteca al deshacerse de la asignación dinámica enParsedJson::Iterator
. #6479 (Vitaly Baranov) - Páginas de error previo al asignar memoria con
mmap()
. #6667 (akuzm) - Corregir un error de rendimiento en
Decimal
comparación. #6380 (Artem Zuikov)
Mejora de la construcción/prueba/empaquetado
- Elimine el compilador (creación de instancias de la plantilla de tiempo de ejecución) porque hemos ganado su rendimiento. #6646 (alexey-milovidov)
- Se agregó una prueba de rendimiento para mostrar la degradación del rendimiento en gcc-9 de una manera más aislada. #6302 (alexey-milovidov)
- Función de tabla añadida
numbers_mt
, que es la versión multiproceso denumbers
. Pruebas de rendimiento actualizadas con funciones hash. #6554 (Nikolai Kochetov) - Modo de comparación en
clickhouse-benchmark
#6220 #6343 (Dimarub2000) - Mejor esfuerzo para imprimir rastros de pila. También añadido
SIGPROF
como una señal de depuración para imprimir el seguimiento de la pila de un hilo en ejecución. #6529 (alexey-milovidov) - Cada función en su propio archivo, parte 10. #6321 (alexey-milovidov)
- Eliminar doble const
TABLE_IS_READ_ONLY
. #6566 (filimonov) - Cambios de formato para
StringHashMap
PR #5417. #6700 (akuzm) - Mejor subconsulta para la creación de unión en
ExpressionAnalyzer
. #6824 (Artem Zuikov) - Elimine una condición redundante (encontrada por PVS Studio). #6775 (akuzm)
- Separe la interfaz de la tabla hash para
ReverseIndex
. #6672 (akuzm) - Refactorización de configuraciones. #6689 (alesapin)
- Añadir comentarios para
set
funciones de índice. #6319 (Nikita Vasilev) - Aumente la puntuación de OOM en la versión de depuración en Linux. #6152 (akuzm)
- HDFS HA ahora funciona en la compilación de depuración. #6650 (Weiqing Xu)
- Se agregó una prueba a
transform_query_for_external_database
. #6388 (alexey-milovidov) - Agregue prueba para múltiples vistas materializadas para la tabla Kafka. #6509 (Ivan)
- Hacer un mejor esquema de construcción. #6500 (Ivan)
- Fijo
test_external_dictionaries
integración en caso de que se haya ejecutado bajo un usuario no root. #6507 (Nikolai Kochetov) - El error se reproduce cuando el tamaño total de los paquetes escritos excede
DBMS_DEFAULT_BUFFER_SIZE
. #6204 (Yuriy Baranov) - Se agregó una prueba para
RENAME
condición de carrera de mesa #6752 (alexey-milovidov) - Evitar la carrera de datos en Configuración en
KILL QUERY
. #6753 (alexey-milovidov) - Añadir prueba de integración para el manejo de errores por un diccionario de caché. #6755 (Vitaly Baranov)
- Deshabilite el análisis de archivos de objetos ELF en Mac OS, porque no tiene sentido. #6578 (alexey-milovidov)
- Intenta mejorar el generador de registro de cambios. #6327 (alexey-milovidov)
- Añadir
-Wshadow
cambiar al GCC. #6325 (Método de codificación de datos:) - Eliminado el código obsoleto para
mimalloc
apoyo. #6715 (alexey-milovidov) zlib-ng
determina las capacidades de x86 y guarda esta información en variables globales. Esto se hace en la llamada defalteInit , que puede ser hecha por diferentes hilos simultáneamente. Para evitar escrituras multiproceso, hágalo al iniciar la biblioteca. #6141 (akuzm)- Prueba de regresión para un error que en join se corrigió en #5192. #6147 (Bakhtiyor Ruziev)
- Informe MSan fijo. #6144 (alexey-milovidov)
- Fijar aleteo prueba TTL. #6782 (Anton Popov)
- Corregido carrera de datos falsos en
MergeTreeDataPart::is_frozen
campo. #6583 (alexey-milovidov) - Se corrigieron los tiempos de espera en la prueba de fuzz. En la versión anterior, se las arregló para encontrar falso bloqueo en la consulta
SELECT * FROM numbers_mt(gccMurmurHash(''))
. #6582 (alexey-milovidov) - Se agregaron comprobaciones de depuración a
static_cast
de columnas. #6581 (alexey-milovidov) - Soporte para Oracle Linux en paquetes RPM oficiales. #6356 #6585 (alexey-milovidov)
- Cambiado json perftests de
once
aloop
tipo. #6536 (Nikolai Kochetov) odbc-bridge.cpp
definirmain()
por lo que no debe ser incluido enclickhouse-lib
. #6538 (Películas De Sexo)- Prueba de accidente en
FULL|RIGHT JOIN
con nulos en las claves de la tabla derecha. #6362 (Artem Zuikov) - Se agregó una prueba para el límite de expansión de alias por si acaso. #6442 (alexey-milovidov)
- Cambiado de
boost::filesystem
astd::filesystem
cuando sea apropiado. #6253 #6385 (alexey-milovidov) - Se agregaron paquetes RPM al sitio web. #6251 (alexey-milovidov)
- Añadir una prueba para fijo
Unknown identifier
excepción enIN
apartado. #6708 (Artem Zuikov) - Simplificar
shared_ptr_helper
porque las personas que enfrentan dificultades para entenderlo. #6675 (alexey-milovidov) - Se agregaron pruebas de rendimiento para el códec Gorilla y DoubleDelta fijo. #6179 (Vasily Nemkov)
- Dividir la prueba de integración
test_dictionaries
en 4 pruebas separadas. #6776 (Vitaly Baranov) - Repara la advertencia de PVS-Studio en
PipelineExecutor
. #6777 (Nikolai Kochetov) - Permitir usar
library
fuente del diccionario con ASan. #6482 (alexey-milovidov) - Se agregó la opción para generar registro de cambios a partir de una lista de relaciones públicas. #6350 (alexey-milovidov)
- Bloquee el
TinyLog
almacenamiento al leer. #6226 (akuzm) - Compruebe si hay enlaces simbólicos rotos en CI. #6634 (alexey-milovidov)
- Aumentar el tiempo de espera para “stack overflow” prueba porque puede llevar mucho tiempo en la compilación de depuración. #6637 (alexey-milovidov)
- Se agregó un cheque para espacios en blanco dobles. #6643 (alexey-milovidov)
- Fijar
new/delete
Seguimiento de memoria cuando se construye con desinfectantes. El seguimiento no está claro. Solo evita las excepciones de límite de memoria en las pruebas. #6450 (Artem Zuikov) - Habilite la comprobación de símbolos indefinidos durante la vinculación. #6453 (Ivan)
- Evitar la reconstrucción
hyperscan
todos los días. #6307 (alexey-milovidov) - Informe UBSan fijo en
ProtobufWriter
. #6163 (alexey-milovidov) - No permita el uso del generador de perfiles de consultas con desinfectantes porque no es compatible. #6769 (alexey-milovidov)
- Agregue prueba para recargar un diccionario después de fallar por temporizador. #6114 (Vitaly Baranov)
- Corregir inconsistencia en
PipelineExecutor::prepareProcessor
tipo de argumento. #6494 (Nikolai Kochetov) - Se agregó una prueba de URI malos. #6493 (alexey-milovidov)
- Se agregaron más cheques a
CAST
función. Esto debería obtener más información sobre la falla de segmentación en la prueba difusa. #6346 (Nikolai Kochetov) - Añadir
gcc-9
apoyo adocker/builder
contenedor que construye la imagen localmente. #6333 (Gleb Novikov) - Prueba de clave primaria con
LowCardinality(String)
. #5044 #6219 (Dimarub2000) - Se corrigieron las pruebas afectadas por la impresión de rastros de pila lenta. #6315 (alexey-milovidov)
- Agregue un caso de prueba para el bloqueo en
groupUniqArray
fijo en #6029. #4402 #6129 (akuzm) - Pruebas de mutaciones de índices fijos. #6645 (Nikita Vasilev)
- En la prueba de rendimiento, no lea el registro de consultas para las consultas que no ejecutamos. #6427 (akuzm)
- La vista materializada ahora se puede crear con cualquier tipo de cardinalidad baja, independientemente de la configuración sobre tipos de cardinalidad baja sospechosos. #6428 (Olga Khvostikova)
- Pruebas actualizadas para
send_logs_level
configuración. #6207 (Nikolai Kochetov) - Fix build bajo gcc-8.2. #6196 (Max Akhmedov)
- Corregir la compilación con libc ++ interno. #6724 (Ivan)
- Reparar compilación compartida con
rdkafka
biblioteca #6101 (Ivan) - Correcciones para la compilación de Mac OS (incompleta). #6390 (alexey-milovidov) #6429 (Más información)
- Fijar “splitted” construir. #6618 (alexey-milovidov)
- Otras correcciones de compilación: #6186 (Amos pájaro) #6486 #6348 (vxider) #6744 (Ivan) #6016 #6421 #6491 (propulsor)
Cambio incompatible hacia atrás
- Se eliminó la función de tabla raramente utilizada
catBoostPool
y almacenamientoCatBoostPool
. Si ha utilizado esta función de tabla, escriba un correo electrónico aclickhouse-feedback@yandex-team.com
. Tenga en cuenta que la integración CatBoost sigue siendo y será compatible. #6279 (alexey-milovidov) - Desactivar
ANY RIGHT JOIN
yANY FULL JOIN
predeterminada. Establecerany_join_distinct_right_table_keys
configuración para permitirles. #5126 #6351 (Artem Zuikov)
Lanzamiento de ClickHouse 19.13
Lanzamiento de ClickHouse 19.13.6.51, 2019-10-02
Corrección de errores
- Esta versión también contiene todas las correcciones de errores de 19.11.12.69.
Lanzamiento de ClickHouse 19.13.5.44, 2019-09-20
Corrección de errores
- Esta versión también contiene todas las correcciones de errores de 19.14.6.12.
- Se corrigió el posible estado inconsistente de la tabla mientras se ejecutaba
DROP
consulta para la tabla replicada mientras que el zookeeper no es accesible. #6045 #6413 (Nikita Mikhaylov) - Solución para la carrera de datos en StorageMerge #6717 (alexey-milovidov)
- Corregir error introducido en el generador de perfiles de consultas que conduce a una recv interminable desde el socket. #6386 (alesapin)
- Corregir el uso excesivo de la CPU mientras se ejecuta
JSONExtractRaw
función sobre un valor booleano. #6208 (Vitaly Baranov) - Corrige la regresión mientras presiona a la vista materializada. #6415 (Ivan)
- Función de la tabla
url
la vulnerabilidad permitió al atacante inyectar encabezados HTTP arbitrarios en la solicitud. Este problema fue encontrado por Nikita Tikhomirov. #6466 (alexey-milovidov) - Arreglar inútil
AST
compruebe en Establecer índice. #6510 #6651 (Nikita Vasilev) - Análisis fijo de
AggregateFunction
valores incrustados en la consulta. #6575 #6773 (Zhichang Yu) - Corregido el comportamiento incorrecto de
trim
funciones familiares. #6647 (alexey-milovidov)
Lanzamiento de ClickHouse 19.13.4.32, 2019-09-10
Corrección de errores
- Esta versión también contiene todas las correcciones de seguridad de errores de 19.11.9.52 y 19.11.10.54.
- Carrera de datos fija en
system.parts
mesa yALTER
consulta. #6245 #6513 (alexey-milovidov) - Se corrigió el encabezado no coincidente en las secuencias en caso de leer desde una tabla distribuida vacía con sample y prewhere. #6167 (Lixiang Qian) #6823 (Nikolai Kochetov)
- Se corrigió el fallo al usar
IN
cláusula con una subconsulta con una tupla. #6125 #6550 (Tavplubix) - Corregir el caso con los mismos nombres de columna en
GLOBAL JOIN ON
apartado. #6181 (Artem Zuikov) - Corregir el bloqueo al lanzar tipos a
Decimal
que no lo soportan. Lanzar excepción en su lugar. #6297 (Artem Zuikov) - Se corrigió el fallo en
extractAll()
función. #6644 (Artem Zuikov) - Transformación de consultas para
MySQL
,ODBC
,JDBC
funciones de la tabla ahora funciona correctamente paraSELECT WHERE
consultas con múltiplesAND
expresiones. #6381 #6676 (Dimarub2000) - Se agregaron verificaciones de declaraciones anteriores para la integración de MySQL 8. #6569 (Rafael David Tinoco)
Corrección de seguridad
- Corrige dos vulnerabilidades en los códecs en fase de descompresión (el usuario malicioso puede fabricar datos comprimidos que provocarán un desbordamiento del búfer en la descompresión). #6670 (Artem Zuikov)
Lanzamiento de ClickHouse 19.13.3.26, 2019-08-22
Corrección de errores
- Fijar
ALTER TABLE ... UPDATE
consulta para tablas conenable_mixed_granularity_parts=1
. #6543 (alesapin) - Repare NPE al usar la cláusula IN con una subconsulta con una tupla. #6125 #6550 (Tavplubix)
- Se ha solucionado un problema por el que si una réplica obsoleta cobra vida, puede que aún tenga partes de datos eliminadas por DROP PARTITION. #6522 #6523 (Tavplubix)
- Solucionado el problema con el análisis CSV #6426 #6559 (Tavplubix)
- Carrera de datos fija en el sistema.tabla de piezas y consulta ALTER. Esto corrige #6245. #6513 (alexey-milovidov)
- Se corrigió el código incorrecto en las mutaciones que pueden conducir a la corrupción de la memoria. segfault fijo con lectura de la dirección
0x14c0
que puede happed debido a concurrenteDROP TABLE
ySELECT
desystem.parts
osystem.parts_columns
. Condición de carrera fija en la preparación de consultas de mutación. Estancamiento fijo causado porOPTIMIZE
de tablas replicadas y operaciones de modificación simultáneas como ALTERs. #6514 (alexey-milovidov) - Se corrigió la posible pérdida de datos después de
ALTER DELETE
consulta en la tabla con índice de omisión. #6224 #6282 (Nikita Vasilev)
Corrección de seguridad
- Si el atacante tiene acceso de escritura a ZooKeeper y es capaz de ejecutar servidor personalizado disponible desde la red donde se ejecuta ClickHouse, puede crear servidor malicioso personalizado que actuará como réplica ClickHouse y registrarlo en ZooKeeper. Cuando otra réplica recuperará la parte de datos de una réplica maliciosa, puede forzar a clickhouse-server a escribir en una ruta arbitraria en el sistema de archivos. Encontrado por Eldar Zaitov, equipo de seguridad de la información en Yandex. #6247 (alexey-milovidov)
Lanzamiento de ClickHouse 19.13.2.19, 2019-08-14
Novedad
- Generador de perfiles de muestreo en el nivel de consulta. Ejemplo. #4247 (laplab) #6124 (alexey-milovidov) #6250 #6283 #6386
- Permite especificar una lista de columnas con
COLUMNS('regexp')
expresión que funciona como una variante más sofisticada de*
asterisco. #5951 (Mfridental), (alexey-milovidov) CREATE TABLE AS table_function()
es posible #6057 (Dimarub2000)- El optimizador de Adam para el descenso de gradiente estocástico se usa de forma predeterminada en
stochasticLinearRegression()
ystochasticLogisticRegression()
funciones agregadas, porque muestra buena calidad sin casi ningún ajuste. #6000 (Quid37) - Added functions for working with the сustom week number #5212 (Cristina Andrés)
RENAME
las consultas ahora funcionan con todos los almacenes. #5953 (Ivan)- Ahora el cliente recibe registros del servidor con cualquier nivel deseado configurando
send_logs_level
independientemente del nivel de registro especificado en la configuración del servidor. #5964 (Nikita Mikhaylov)
Cambio incompatible hacia atrás
- Configuración
input_format_defaults_for_omitted_fields
está habilitado de forma predeterminada. Las inserciones en las tablas distribuidas necesitan que esta configuración sea la misma en el clúster (debe configurarla antes de actualizar). Permite el cálculo de expresiones predeterminadas complejas para campos omitidos enJSONEachRow
yCSV*
formato. Debe ser el comportamiento esperado, pero puede conducir a una diferencia de rendimiento insignificante. #6043 (Artem Zuikov), #5625 (akuzm)
Experimental Características
- Nueva canalización de procesamiento de consultas. Utilizar
experimental_use_processors=1
opción para habilitarlo. Úselo para su propio problema. #4914 (Nikolai Kochetov)
Corrección de errores
- Kafka integración se ha fijado en esta versión.
- Fijo
DoubleDelta
codificación deInt64
para grandesDoubleDelta
valores mejoradosDoubleDelta
codificación de datos aleatorios paraInt32
. #5998 (Vasily Nemkov) - Sobreestimación fija de
max_rows_to_read
si el ajustemerge_tree_uniform_read_distribution
se establece en 0. #6019 (alexey-milovidov)
Mejora
- Lanza una excepción si
config.d
el archivo no tiene el elemento raíz correspondiente como el archivo de configuración #6123 (Dimarub2000)
Mejora del rendimiento
- Optimizar
count()
. Ahora usa la columna más pequeña (si es posible). #6028 (Amos pájaro)
Mejora de la construcción/prueba/empaquetado
- Informe sobre el uso de memoria en las pruebas de rendimiento. #5899 (akuzm)
- Corregir compilación con externo
libcxx
#6010 (Ivan) - Reparar compilación compartida con
rdkafka
biblioteca #6101 (Ivan)
Lanzamiento de ClickHouse 19.11
Lanzamiento de ClickHouse 19.11.13.74, 2019-11-01
Corrección de errores
- Se corrigió un accidente raro en
ALTER MODIFY COLUMN
y fusión vertical cuando una de las partes fusionadas / alteradas está vacía (0 filas). #6780 (alesapin) - Actualización manual de
SIMDJSON
. Esto corrige la posible inundación de archivos stderr con mensajes de diagnóstico json falsos. #7548 (Alejandro Kazakov) - Corregido error con
mrk
extensión de archivo para mutaciones (alesapin)
Lanzamiento de ClickHouse 19.11.12.69, 2019-10-02
Corrección de errores
- Se corrigió la degradación del rendimiento del análisis de índices en claves complejas en tablas grandes. Esto corrige #6924. #7075 (alexey-milovidov)
- Evite SIGSEGV raro al enviar datos en tablas con motor distribuido (
Failed to send batch: file with index XXXXX is absent
). #7032 (Azat Khuzhin) - Fijar
Unknown identifier
con múltiples uniones. Esto corrige #5254. #7022 (Artem Zuikov)
Lanzamiento de ClickHouse 19.11.11.57, 2019-09-13
- Corregir el error lógico que causa segfaults al seleccionar el tema vacío de Kafka. #6902 #6909 (Ivan)
- Solución para la función
АrrayEnumerateUniqRanked
con matrices vacías en params. #6928 (propulsor)
Lanzamiento de ClickHouse 19.11.10.54, 2019-09-10
Corrección de errores
- Almacene los desplazamientos para los mensajes de Kafka manualmente para poder confirmarlos todos a la vez para todas las particiones. Corrige la duplicación potencial en “one consumer - many partitions” escenario. #6872 (Ivan)
Lanzamiento de ClickHouse 19.11.9.52, 2019-09-6
- Mejorar el manejo de errores en los diccionarios de caché. #6737 (Vitaly Baranov)
- Corregido error en la función
arrayEnumerateUniqRanked
. #6779 (propulsor) - Fijar
JSONExtract
función mientras se extrae unTuple
de JSON. #6718 (Vitaly Baranov) - Se corrigió la posible pérdida de datos después de
ALTER DELETE
consulta en la tabla con índice de omisión. #6224 #6282 (Nikita Vasilev) - Prueba de rendimiento fija. #6392 (alexey-milovidov)
- Parquet: Fijar la lectura de columnas booleanos. #6579 (alexey-milovidov)
- Corregido el comportamiento incorrecto de
nullIf
función de argumentos constantes. #6518 (Guillaume Tassery) #6580 (alexey-milovidov) - Solucione el problema de duplicación de mensajes de Kafka en el reinicio normal del servidor. #6597 (Ivan)
- Se ha corregido un problema durante mucho tiempo
ALTER UPDATE
oALTER DELETE
puede evitar que se ejecuten fusiones regulares. Evite que las mutaciones se ejecuten si no hay suficientes subprocesos libres disponibles. #6502 #6617 (Tavplubix) - Corregido el error con el procesamiento “timezone” en el archivo de configuración del servidor. #6709 (alexey-milovidov)
- Repara las pruebas de kafka. #6805 (Ivan)
Corrección de seguridad
- Si el atacante tiene acceso de escritura a ZooKeeper y es capaz de ejecutar servidor personalizado disponible desde la red donde se ejecuta ClickHouse, puede crear servidor malicioso personalizado que actuará como réplica ClickHouse y registrarlo en ZooKeeper. Cuando otra réplica recuperará la parte de datos de una réplica maliciosa, puede forzar a clickhouse-server a escribir en una ruta arbitraria en el sistema de archivos. Encontrado por Eldar Zaitov, equipo de seguridad de la información en Yandex. #6247 (alexey-milovidov)
Lanzamiento de ClickHouse 19.11.8.46, 2019-08-22
Corrección de errores
- Fijar
ALTER TABLE ... UPDATE
consulta para tablas conenable_mixed_granularity_parts=1
. #6543 (alesapin) - Repare NPE al usar la cláusula IN con una subconsulta con una tupla. #6125 #6550 (Tavplubix)
- Se ha solucionado un problema por el que si una réplica obsoleta cobra vida, puede que aún tenga partes de datos eliminadas por DROP PARTITION. #6522 #6523 (Tavplubix)
- Solucionado el problema con el análisis CSV #6426 #6559 (Tavplubix)
- Carrera de datos fija en el sistema.tabla de piezas y consulta ALTER. Esto corrige #6245. #6513 (alexey-milovidov)
- Se corrigió el código incorrecto en las mutaciones que pueden conducir a la corrupción de la memoria. segfault fijo con lectura de la dirección
0x14c0
que puede happed debido a concurrenteDROP TABLE
ySELECT
desystem.parts
osystem.parts_columns
. Condición de carrera fija en la preparación de consultas de mutación. Estancamiento fijo causado porOPTIMIZE
de tablas replicadas y operaciones de modificación simultáneas como ALTERs. #6514 (alexey-milovidov)
Lanzamiento de ClickHouse 19.11.7.40, 2019-08-14
Corrección de errores
- Kafka integración se ha fijado en esta versión.
- Corregir segfault cuando se usa
arrayReduce
para argumentos constantes. #6326 (alexey-milovidov) - Fijo
toFloat()
monotonicidad. #6374 (Dimarub2000) - Reparar segfault con habilitado
optimize_skip_unused_shards
y falta la clave de fragmentación. #6384 (CurtizJ) - Lógica fija de
arrayEnumerateUniqRanked
función. #6423 (alexey-milovidov) - Se eliminó el registro detallado adicional del controlador MySQL. #6389 (alexey-milovidov)
- Corregir el comportamiento incorrecto y posibles fallas en
topK
ytopKWeighted
funciones agregadas. #6404 (CurtizJ) - No exponga columnas virtuales en
system.columns
tabla. Esto es necesario para la compatibilidad con versiones anteriores. #6406 (alexey-milovidov) - Corregir un error con la asignación de memoria para campos de cadena en el diccionario de caché de claves complejas. #6447 (alesapin)
- Corregir un error al habilitar la granularidad adaptativa al crear una nueva réplica para
Replicated*MergeTree
tabla. #6452 (alesapin) - Corregir bucle infinito al leer los mensajes de Kafka. #6354 (abyss7)
- Se corrigió la posibilidad de que una consulta fabricada causara un bloqueo del servidor debido al desbordamiento de la pila en el analizador SQL y la posibilidad de desbordamiento de la pila en
Merge
yDistributed
tabla #6433 (alexey-milovidov) - Corregido el error de codificación Gorilla en pequeñas secuencias. #6444 (Enmk)
Mejora
- Permitir al usuario anular
poll_interval
yidle_connection_timeout
configuración en la conexión. #6230 (alexey-milovidov)
Lanzamiento de ClickHouse 19.11.5.28, 2019-08-05
Corrección de errores
- Se corrigió la posibilidad de colgar consultas cuando el servidor está sobrecargado. #6301 (alexey-milovidov)
- Reparar FPE en la función yandexConsistentHash. Esto corrige #6304. #6126 (alexey-milovidov)
- Corregido error en la conversión de
LowCardinality
tipos enAggregateFunctionFactory
. Esto corrige #6257. #6281 (Nikolai Kochetov) - Corregir el análisis de
bool
ajustes detrue
yfalse
en los archivos de configuración. #6278 (alesapin) - Corrige un error raro con encabezados de flujo incompatibles en consultas para
Distributed
mesa sobreMergeTree
mesa cuando parte deWHERE
se mueve aPREWHERE
. #6236 (alesapin) - Se corrigió el desbordamiento en la división de enteros de tipo con signo a tipo sin signo. Esto corrige #6214. #6233 (alexey-milovidov)
Cambio incompatible hacia atrás
Kafka
todavía roto.
Lanzamiento de ClickHouse 19.11.4.24, 2019-08-01
Corrección de errores
- Corregir un error al escribir marcas de índices secundarios con granularidad adaptativa. #6126 (alesapin)
- Fijar
WITH ROLLUP
yWITH CUBE
modificadores deGROUP BY
con agregación de dos niveles. #6225 (Anton Popov) - Cuelgue fijo adentro
JSONExtractRaw
función. Fijo #6195 #6198 (alexey-milovidov) - Reparar segfault en ExternalLoader :: loadOutdated (). #6082 (Vitaly Baranov)
- Se corrigió el caso en el que el servidor podía cerrar sockets de escucha pero no apagar y continuar sirviendo las consultas restantes. Puede terminar con dos procesos de servidor de clickhouse en ejecución. A veces, el servidor puede devolver un error
bad_function_call
para las consultas restantes. #6231 (alexey-milovidov) - Se corrigió la condición inútil e incorrecta en el campo de actualización para la carga inicial de diccionarios externos a través de ODBC, MySQL, ClickHouse y HTTP. Esto corrige #6069 #6083 (alexey-milovidov)
- Se corrigió una excepción irrelevante en el elenco de
LowCardinality(Nullable)
to not-Nullable column in case if it doesn't contain Nulls (e.g. in query likeSELECT CAST(CAST('Hello' AS LowCardinality(Nullable(String))) AS String)
. #6094 #6119 (Nikolai Kochetov) - Fijar resultado no determinista de “uniq” función agregada en casos extremos raros. El error estaba presente en todas las versiones de ClickHouse. #6058 (alexey-milovidov)
- Segfault cuando establecemos un CIDR demasiado alto en la función
IPv6CIDRToRange
. #6068 (Guillaume Tassery) - Se corrigió una pequeña pérdida de memoria cuando el servidor lanzaba muchas excepciones de muchos contextos diferentes. #6144 (alexey-milovidov)
- Soluciona la situación cuando el consumidor se detuvo antes de la suscripción y no se reanudó después. #6075 (Ivan) Tenga en cuenta que Kafka está roto en esta versión.
- Borrar el búfer de datos Kafka de la operación de lectura anterior que se completó con un error #6026 (Nikolay) Tenga en cuenta que Kafka está roto en esta versión.
- Ya
StorageMergeTree::background_task_handle
se inicializa enstartup()
elMergeTreeBlockOutputStream::write()
puede intentar usarlo antes de la inicialización. Solo verifique si está inicializado. #6080 (Ivan)
Mejora de la construcción/prueba/empaquetado
- Añadido oficial
rpm
paquete. #5740 (propulsor) (alesapin) - Añadir una habilidad para construir
.rpm
y.tgz
paquetes conpackager
script. #5769 (alesapin) - Correcciones para “Arcadia” sistema de construcción. #6223 (propulsor)
Cambio incompatible hacia atrás
Kafka
está roto en esta versión.
Lanzamiento de ClickHouse 19.11.3.11, 2019-07-18
Novedad
- Se agregó soporte para declaraciones preparadas. #5331 (Alejandro) #5630 (alexey-milovidov)
DoubleDelta
yGorilla
codecs de columna #5600 (Vasily Nemkov)- Añadir
os_thread_priority
ajuste que permite controlar el “nice” valor de los subprocesos de procesamiento de consultas que utiliza el sistema operativo para ajustar la prioridad de programación dinámica. RequiereCAP_SYS_NICE
capacidades para trabajar. Esto implementa #5858 #5909 (alexey-milovidov) - Implementar
_topic
,_offset
,_key
columnas para el motor Kafka #5382 (Ivan) Tenga en cuenta que Kafka está roto en esta versión. - Añadir combinador de funciones agregadas
-Resample
#5590 (Hcz) - Funciones agregadas
groupArrayMovingSum(win_size)(x)
ygroupArrayMovingAvg(win_size)(x)
, que calculan la suma / avg en movimiento con o sin limitación de tamaño de ventana. #5595 (Sistema abierto.) - Agregar sinónimo
arrayFlatten
<->flatten
#5764 (Hcz) - Función Intergate H3
geoToH3
de Uber. #4724 (Remen Ivan) #5805 (alexey-milovidov)
Corrección de errores
- Implementar caché DNS con actualización asincrónica. El subproceso separado resuelve todos los hosts y actualiza la caché DNS con el punto (configuración
dns_cache_update_period
). Debería ayudar, cuando la ip de los hosts cambia con frecuencia. #5857 (Anton Popov) - Arreglar segfault en
Delta
codec que afecta a columnas con valores de menos de 32 bits. El error llevó a la corrupción de memoria aleatoria. #5786 (alesapin) - Fix segfault en TTL se fusionan con columnas no físicas en el bloque. #5819 (Anton Popov)
- Corregir un error raro en la comprobación de la parte con
LowCardinality
columna. PreviamentecheckDataPart
siempre falla para parte conLowCardinality
columna. #5832 (alesapin) - Evite colgar conexiones cuando el grupo de subprocesos del servidor esté lleno. Es importante para las conexiones desde
remote
función de tabla o conexiones a un fragmento sin réplicas cuando hay un tiempo de espera de conexión largo. Esto corrige #5878 #5881 (alexey-milovidov) - Soporte para argumentos constantes para
evalMLModel
función. Esto corrige #5817 #5820 (alexey-milovidov) - Se ha solucionado el problema cuando ClickHouse determina la zona horaria predeterminada como
UCT
en lugar deUTC
. Esto corrige #5804. #5828 (alexey-milovidov) - Fijo desbordamiento del búfer en
visitParamExtractRaw
. Esto corrige #5901 #5902 (alexey-milovidov) - Ahora distribuido
DROP/ALTER/TRUNCATE/OPTIMIZE ON CLUSTER
las consultas se ejecutarán directamente en la réplica del líder. #5757 (alesapin) - Fijar
coalesce
paraColumnConst
conColumnNullable
+ cambios relacionados. #5755 (Artem Zuikov) - Fijar el
ReadBufferFromKafkaConsumer
para que siga leyendo nuevos mensajes despuéscommit()
incluso si estaba estancado antes #5852 (Ivan) - Fijar
FULL
yRIGHT
Resultados de JOIN al unirse enNullable
teclas en la mesa derecha. #5859 (Artem Zuikov) - Posible solución de sueño infinito de consultas de baja prioridad. #5842 (alexey-milovidov)
- Corregir la condición de carrera, lo que hace que algunas consultas no aparezcan en query_log después
SYSTEM FLUSH LOGS
consulta. #5456 #5685 (Anton Popov) - Fijo
heap-use-after-free
ASan advertencia en ClusterCopier causada por el reloj que intenta usar el objeto de copiadora ya eliminado. #5871 (Nikolai Kochetov) - Corregido mal
StringRef
puntero devuelto por algunas implementaciones deIColumn::deserializeAndInsertFromArena
. Este error afectó solo a las pruebas unitarias. #5973 (Nikolai Kochetov) - Evite que la matriz de origen y la matriz intermedia se unan a columnas de enmascaramiento de columnas del mismo nombre. #5941 (Artem Zuikov)
- Solucione la inserción y seleccione la consulta al motor MySQL con citas de identificador de estilo MySQL. #5704 (Invierno Zhang)
- Ahora
CHECK TABLE
consulta puede trabajar con la familia del motor MergeTree. Devuelve el estado de verificación y el mensaje si hay alguno para cada parte (o archivo en caso de motores más simples). Además, corrija el error en la búsqueda de una parte rota. #5865 (alesapin) - Reparar el tiempo de ejecución SPLIT_SHARED_LIBRARIES #5793 (Más información)
- Inicialización de zona horaria fija cuando
/etc/localtime
es un enlace simbólico relativo como../usr/share/zoneinfo/Europe/Moscow
#5922 (alexey-milovidov) - clickhouse-copiadora: Solucionar el uso-después de la libertad en el apagado #5752 (propulsor)
- Actualizar
simdjson
. Se corrigió el problema de que algunos JSON no válidos con cero bytes analizaran correctamente. #5938 (alexey-milovidov) - Reparar el cierre de SystemLogs #5802 (Anton Popov)
- Arreglar colgando cuando la condición en invalidate_query depende de un diccionario. #6011 (Vitaly Baranov)
Mejora
- Permitir direcciones no resolubles en la configuración del clúster. Se considerarán no disponibles y se intentarán resolver en cada intento de conexión. Esto es especialmente útil para Kubernetes. Esto corrige #5714 #5924 (alexey-milovidov)
- Cierre las conexiones TCP inactivas (con un tiempo de espera de una hora por defecto). Esto es especialmente importante para clústeres grandes con múltiples tablas distribuidas en cada servidor, ya que cada servidor puede mantener un grupo de conexiones con cualquier otro servidor, y después de la concurrencia de consultas pico, las conexiones se detendrán. Esto corrige #5879 #5880 (alexey-milovidov)
- Mejor calidad de
topK
función. Se ha cambiado el comportamiento del conjunto SavingSpace para eliminar el último elemento si el nuevo elemento tiene un peso mayor. #5833 #5850 (Guillaume Tassery) - Las funciones de URL para trabajar con dominios ahora pueden funcionar para URL incompletas sin esquema #5725 (alesapin)
- Sumas de comprobación añadidas al
system.parts_columns
tabla. #5874 (Nikita Mikhaylov) - Añadir
Enum
tipo de datos como un sinónimo paraEnum8
oEnum16
. #5886 (Dimarub2000) - Variante de transposición de bits completa para
T64
códec. Podría conducir a una mejor compresión conzstd
. #5742 (Artem Zuikov) - Condición en
startsWith
la función ahora puede utilizar la clave principal. Esto corrige #5310 y #5882 #5919 (Dimarub2000) - Permitir usar
clickhouse-copier
con la topología de clúster de replicación cruzada permitiendo el nombre de base de datos vacío. #5745 (Nombre de la red inalámbrica (SSID):) - Utilizar
UTC
como zona horaria predeterminada en un sistema sintzdata
(e.g. bare Docker container). Before this patch, error messageCould not determine local time zone
se imprimió y el servidor o el cliente se negó a iniciar. #5827 (alexey-milovidov) - Soporte devuelto para argumento de coma flotante en función
quantileTiming
para la compatibilidad con versiones anteriores. #5911 (alexey-milovidov) - Mostrar qué tabla falta la columna en los mensajes de error. #5768 (Ivan)
- No permitir la consulta de ejecución con el mismo query_id por varios usuarios #5430 (propulsor)
- Código más robusto para enviar métricas a Graphite. Funcionará incluso durante largos múltiples
RENAME TABLE
operación. #5875 (alexey-milovidov) - Se mostrarán mensajes de error más informativos cuando ThreadPool no pueda programar una tarea para su ejecución. Esto corrige #5305 #5801 (alexey-milovidov)
- Invertir ngramSearch para que sea más intuitivo #5807 (Más información)
- Agregar análisis de usuario en el generador de motor HDFS #5946 (akonyaev90)
- Actualizar el valor predeterminado de
max_ast_elements parameter
#5933 (Artem Konovalov) - Se agregó una noción de configuraciones obsoletas. La configuración obsoleta
allow_experimental_low_cardinality_type
se puede utilizar sin efecto. 0f15c01c6802f7ce1a1494c12c846be8c98944cd Alexey Milovidov
Mejora del rendimiento
- Aumente el número de secuencias a SELECT desde la tabla Merge para una distribución más uniforme de los subprocesos. Añadido
max_streams_multiplier_for_merge_tables
. Esto corrige #5797 #5915 (alexey-milovidov)
Mejora de la construcción/prueba/empaquetado
- Agregue una prueba de compatibilidad con versiones anteriores para la interacción cliente-servidor con diferentes versiones de clickhouse. #5868 (alesapin)
- Pruebe la información de cobertura en cada solicitud de confirmación y extracción. #5896 (alesapin)
- Coopere con el desinfectante de direcciones para respaldar nuestros asignadores personalizados (
Arena
yArenaWithFreeLists
) para una mejor depuración de “use-after-free” error. #5728 (akuzm) - Cambiar a Implementación de LLVM libunwind para el manejo de excepciones de C ++ y para la impresión de rastreos de pila #4828 (Vídeos relacionados con nikita Lapkov)
- Agregue dos advertencias más de -Weverything #5923 (alexey-milovidov)
- Permitir construir ClickHouse con Memory Sanitizer. #3949 (alexey-milovidov)
- Informe ubsan fijo sobre
bitTest
función en la prueba de fuzz. #5943 (alexey-milovidov) - Docker: se agregó la posibilidad de iniciar una instancia de ClickHouse que requiere autenticación. #5727 (Korviakov Andrey)
- Actualizar librdkafka a la versión 1.1.0 #5872 (Ivan)
- Agregue el tiempo de espera global para las pruebas de integración y deshabilite algunas de ellas en el código de pruebas. #5741 (alesapin)
- Solucionar algunas fallas ThreadSanitizer. #5854 (akuzm)
- El
--no-undefined
opción obliga al enlazador a verificar la existencia de todos los nombres externos mientras se vincula. Es muy útil rastrear dependencias reales entre bibliotecas en el modo de compilación dividida. #5855 (Ivan) - Prueba de rendimiento añadida para #5797 #5914 (alexey-milovidov)
- Compatibilidad fija con gcc-7. #5840 (alexey-milovidov)
- Se agregó soporte para gcc-9. Esto corrige #5717 #5774 (alexey-milovidov)
- Se corrigió el error cuando libunwind se puede vincular incorrectamente. #5948 (alexey-milovidov)
- Se corrigieron algunas advertencias encontradas por PVS-Studio. #5921 (alexey-milovidov)
- Se agregó soporte inicial para
clang-tidy
analizador estático. #5806 (alexey-milovidov) - Convertir macros endian BSD/Linux( ‘be64toh’ y ‘htobe64’) a los equivalentes de Mac OS X #5785 (Fuente Chen)
- Guía de pruebas de integración mejorada. #5796 (Vladimir Chebotarev)
- Reparación de compilación en macosx + gcc9 #5822 (filimonov)
- Corrige un error tipográfico difícil de detectar: aggreAGte -> agregado. #5753 (akuzm)
- Arreglar la compilación freebsd #5760 (propulsor)
- Añadir enlace al canal experimental de YouTube al sitio web #5845 (Ivan Blinkov)
- CMake: agregar opción para indicadores de cobertura: WITH_COVERAGE #5776 (propulsor)
- Corrige el tamaño inicial de algunos PODArray en línea. #5787 (akuzm)
- clickhouse-servidor.postinst: arreglar la detección del sistema operativo para centos 6 #5788 (propulsor)
- Se agregó la generación de paquetes Arch Linux. #5719 (Vladimir Chebotarev)
- División Común / config.h por libs (dbms) #5715 (propulsor)
- Correcciones para “Arcadia” plataforma de construcción #5795 (propulsor)
- Correcciones para construcción no convencional (gcc9, sin submódulos) #5792 (propulsor)
- Requerir un tipo explícito en unignmentStore porque se demostró que era propenso a errores #5791 (akuzm)
- Corrige la compilación de MacOS #5830 (filimonov)
- Prueba de rendimiento relativa a la nueva característica JIT con un conjunto de datos más grande, como se solicita aquí #5263 #5887 (Guillaume Tassery)
- Ejecutar pruebas con estado en la prueba de esfuerzo 12693e568722f11e19859742f56428455501fd2a (alesapin)
Cambio incompatible hacia atrás
Kafka
está roto en esta versión.- Permitir
adaptive_index_granularity
= 10MB por defecto para nuevoMergeTree
tabla. Si creó nuevas tablas MergeTree en la versión 19.11+, será imposible degradar a versiones anteriores a la 19.6. #5628 (alesapin) - Eliminado diccionarios incrustados no documentados obsoletos que fueron utilizados por Yandex.Métrica. Función
OSIn
,SEIn
,OSToRoot
,SEToRoot
,OSHierarchy
,SEHierarchy
ya no están disponibles. Si está utilizando estas funciones, escriba un correo electrónico a clickhouse-feedback@yandex-team.com. Nota: en el último momento decidimos mantener estas funciones por un tiempo. #5780 (alexey-milovidov)
Lanzamiento de ClickHouse 19.10
Lanzamiento de ClickHouse 19.10.1.5, 2019-07-12
Novedad
- Agregar nuevo códec de columna:
T64
. Hecho para columnas (U) IntX / EnumX / Data (Time) / DecimalX. Debería ser bueno para columnas con valores de rango constante o pequeño. Codec en sí permite ampliar o reducir el tipo de datos sin volver a comprimir. #5557 (Artem Zuikov) - Agregar motor de base de datos
MySQL
que permiten ver todas las tablas en el servidor MySQL remoto #5599 (Invierno Zhang) bitmapContains
aplicación. Es 2 veces más rápido quebitmapHasAny
si el segundo mapa de bits contiene un elemento. #5535 (Zhichang Yu)- Soporte para
crc32
función (con comportamiento exactamente como en MySQL o PHP). No lo use si necesita una función hash. #5661 (Remen Ivan) - Aplicado
SYSTEM START/STOP DISTRIBUTED SENDS
consultas para controlar inserciones asincrónicas enDistributed
tabla. #4935 (Invierno Zhang)
Corrección de errores
- Ignore los límites de ejecución de consultas y el tamaño máximo de partes para los límites de combinación mientras ejecuta mutaciones. #5659 (Anton Popov)
- Corregir un error que puede conducir a la desduplicación de bloques normales (extremadamente raros) y la inserción de bloques duplicados (más a menudo). #5549 (alesapin)
- Fijación de la función
arrayEnumerateUniqRanked
para argumentos con matrices vacías #5559 (propulsor) - No se suscriba a los temas de Kafka sin la intención de sondear ningún mensaje. #5698 (Ivan)
- Hacer configuración
join_use_nulls
no obtienen ningún efecto para los tipos que no pueden estar dentro de Nullable #5700 (Olga Khvostikova) - Fijo
Incorrect size of index granularity
error #5720 (Coraxster) - Repara el desbordamiento de conversión de flotador a decimal #5607 (Coraxster)
- Búfer de descarga cuando
WriteBufferFromHDFS
se llama destructor. Esto corrige la escritura enHDFS
. #5684 (Xindong Peng)
Mejora
- Trate las celdas vacías en
CSV
como valores predeterminados cuando la configuracióninput_format_defaults_for_omitted_fields
está habilitado. #5625 (akuzm) - Carga sin bloqueo de diccionarios externos. #5567 (Vitaly Baranov)
- Los tiempos de espera de red se pueden cambiar dinámicamente para las conexiones ya establecidas de acuerdo con la configuración. #4558 (Konstantin Podshumok)
- Utilizar “public_suffix_list” para funciones
firstSignificantSubdomain
,cutToFirstSignificantSubdomain
. Está usando una tabla hash perfecta generada porgperf
con una lista generada a partir del archivo: https://publicsuffix.org/list/public_suffix_list.dat. (por ejemplo, ahora reconocemos el dominioac.uk
como no significativo). #5030 (Guillaume Tassery) - Adoptar
IPv6
tipo de datos en las tablas del sistema; columnas de información de cliente unificadas ensystem.processes
ysystem.query_log
#5640 (alexey-milovidov) - Uso de sesiones para conexiones con el protocolo de compatibilidad MySQL. #5476 #5646 (Yuriy Baranov)
- Apoyo más
ALTER
consultaON CLUSTER
. #5593 #5613 (Sundyli) - Apoyo
<logger>
sección enclickhouse-local
archivo de configuración. #5540 (propulsor) - Permitir ejecutar consulta con
remote
función de la tabla enclickhouse-local
#5627 (propulsor)
Mejora del rendimiento
- Agregue la posibilidad de escribir la marca final al final de las columnas MergeTree. Permite evitar lecturas inútiles para las claves que están fuera del rango de datos de la tabla. Está habilitado sólo si se está utilizando granularidad de índice adaptativo. #5624 (alesapin)
- Mejora del rendimiento de las tablas MergeTree en sistemas de archivos muy lentos al reducir el número de
stat
syscalls. #5648 (alexey-milovidov) - Se corrigió la degradación del rendimiento en la lectura de las tablas MergeTree que se introdujo en la versión 19.6. Correcciones #5631. #5633 (alexey-milovidov)
Mejora de la construcción/prueba/empaquetado
- Aplicado
TestKeeper
como una implementación de la interfaz ZooKeeper utilizada para probar #5643 (alexey-milovidov) (levushkin aleksej) - A partir de ahora
.sql
las pruebas se pueden ejecutar aisladas por el servidor, en paralelo, con una base de datos aleatoria. Permite ejecutarlos más rápido, agregar nuevas pruebas con configuraciones de servidor personalizadas y asegurarse de que las diferentes pruebas no se afecten entre sí. #5554 (Ivan) - Quitar
<name>
y<metrics>
de pruebas de rendimiento #5672 (Olga Khvostikova) - Fijo “select_format” prueba de rendimiento para
Pretty
formato #5642 (alexey-milovidov)
Lanzamiento de ClickHouse 19.9
Lanzamiento de ClickHouse 19.9.3.31, 2019-07-05
Corrección de errores
- Corregir segfault en el códec Delta que afecta a las columnas con valores de menos de 32 bits de tamaño. El error llevó a la corrupción de memoria aleatoria. #5786 (alesapin)
- Corregir un error raro en la comprobación de la parte con la columna LowCardinality. #5832 (alesapin)
- Fix segfault en TTL se fusionan con columnas no físicas en el bloque. #5819 (Anton Popov)
- Repara el potencial de sueño infinito de consultas de baja prioridad. #5842 (alexey-milovidov)
- Corrige cómo ClickHouse determina la zona horaria predeterminada como UCT en lugar de UTC. #5828 (alexey-milovidov)
- Corregir un error sobre la ejecución de las consultas distribuidas DROP / ALTER / TRUNCATE / OPTIMIZE ON CLUSTER en la réplica de seguidor antes de la réplica de líder. Ahora se ejecutarán directamente en réplica líder. #5757 (alesapin)
- Corregir la condición de carrera, lo que hace que algunas consultas no aparezcan en query_log instantáneamente después de la consulta SYSTEM FLUSH LOGS. #5685 (Anton Popov)
- Se agregó soporte faltante para argumentos constantes para
evalMLModel
función. #5820 (alexey-milovidov)
Lanzamiento de ClickHouse 19.9.2.4, 2019-06-24
Novedad
- Imprima información sobre piezas congeladas en
system.parts
tabla. #5471 (propulsor) - Pregunte la contraseña del cliente en clickhouse-client start en tty si no se establece en argumentos #5092 (propulsor)
- Implementar
dictGet
ydictGetOrDefault
funciones para los tipos Decimal. #5394 (Artem Zuikov)
Mejora
- Debian init: Agregar tiempo de espera de parada de servicio #5522 (propulsor)
- Agregar configuración prohibida de forma predeterminada para crear tabla con tipos sospechosos para LowCardinality #5448 (Olga Khvostikova)
- Las funciones de regresión devuelven pesos del modelo cuando no se usan como Estado en función
evalMLMethod
. #5411 (Quid37) - Cambiar el nombre y mejorar los métodos de regresión. #5492 (Quid37)
- Interfaces más claras de los buscadores de cadenas. #5586 (Más información)
Corrección de errores
- Corregir la posible pérdida de datos en Kafka #5445 (Ivan)
- Repara el potencial bucle infinito en
PrettySpace
formato cuando se llama con cero columnas #5560 (Olga Khvostikova) - Se corrigió el error de desbordamiento UInt32 en modelos lineales. Permitir modelo ML eval para argumento de modelo no const. #5516 (Nikolai Kochetov)
ALTER TABLE ... DROP INDEX IF EXISTS ...
no debe generar una excepción si el índice proporcionado no existe #5524 (Gleb Novikov)- Reparar segfault con
bitmapHasAny
en subconsulta escalar #5528 (Zhichang Yu) - Se corrigió el error cuando el grupo de conexiones de replicación no vuelve a intentar resolver el host, incluso cuando se eliminó la caché DNS. #5534 (alesapin)
- Fijo
ALTER ... MODIFY TTL
en ReplicatedMergeTree. #5539 (Anton Popov) - Repare INSERT en la tabla distribuida con la columna MATERIALIZED #5429 (Azat Khuzhin)
- Corregir la asignación incorrecta al truncar el almacenamiento de unión #5437 (Método de codificación de datos:)
- En versiones recientes del paquete tzdata algunos de los archivos son enlaces simbólicos ahora. El mecanismo actual para detectar la zona horaria predeterminada se rompe y da nombres incorrectos para algunas zonas horarias. Ahora, al menos, forzamos el nombre de la zona horaria al contenido de TZ si se proporciona. #5443 (Ivan)
- Solucione algunos casos extremadamente raros con el buscador MultiVolnitsky cuando las agujas constantes en suma tienen al menos 16 KB de largo. El algoritmo omitió o sobrescribió los resultados anteriores que pueden conducir al resultado incorrecto de
multiSearchAny
. #5588 (Más información) - Solucione el problema cuando la configuración de las solicitudes de ExternalData no podía usar la configuración de ClickHouse. Además, por ahora, configuración
date_time_input_format
ylow_cardinality_allow_in_native_format
no se puede usar debido a la ambigüedad de los nombres (en datos externos puede interpretarse como formato de tabla y en la consulta puede ser una configuración). #5455 (Más información) - Corregir un error cuando las piezas se eliminaron solo de FS sin dejarlas caer de Zookeeper. #5520 (alesapin)
- Eliminar el registro de depuración del protocolo MySQL #5478 (alexey-milovidov)
- Omitir ZNONODE durante el procesamiento de consultas DDL #5489 (Azat Khuzhin)
- Fijar la mezcla
UNION ALL
tipo de columna de resultado. Hubo casos con datos inconsistentes y tipos de columnas de columnas resultantes. #5503 (Artem Zuikov) - Lanzar una excepción en enteros incorrectos en
dictGetT
funciones en lugar de accidente. #5446 (Artem Zuikov) - Arregle element_count y load_factor incorrectos para el diccionario hash en
system.dictionaries
tabla. #5440 (Azat Khuzhin)
Mejora de la construcción/prueba/empaquetado
- Construcción fija sin
Brotli
Soporte de compresión HTTP (ENABLE_BROTLI=OFF
de la variable cmake). #5521 (Anton Yuzhaninov) - Incluye rugido.h como rugiendo / rugiendo.h #5523 (Películas De Sexo)
- Corregir las advertencias de gcc9 en hyperscan (# ¡la directiva de línea es malvada!) #5546 (Más información)
- Corrige todas las advertencias al compilar con gcc-9. Soluciona algunos problemas de contribución. Repara gcc9 ICE y envíalo a bugzilla. #5498 (Más información)
- Enlace fijo con lld #5477 (alexey-milovidov)
- Eliminar especializaciones no utilizadas en diccionarios #5452 (Artem Zuikov)
- Pruebas de rendimiento de mejora para formatear y analizar tablas para diferentes tipos de archivos #5497 (Olga Khvostikova)
- Correcciones para la ejecución de pruebas en paralelo #5506 (propulsor)
- Docker: use configuraciones de clickhouse-test #5531 (propulsor)
- Solucionar compilación para FreeBSD #5447 (propulsor)
- Impulso de actualización a 1.70 #5570 (propulsor)
- Repara el clickhouse de compilación como submódulo #5574 (propulsor)
- Mejorar las pruebas de rendimiento JSONExtract #5444 (Vitaly Baranov)
Lanzamiento de ClickHouse 19.8
Lanzamiento de ClickHouse 19.8.3.8, 2019-06-11
Novedad
- Funciones añadidas para trabajar con JSON #4686 (Hcz) #5124. (Vitaly Baranov)
- Agregue una función basename, con un comportamiento similar a una función basename, que existe en muchos idiomas (
os.path.basename
en python,basename
in PHP, etc…). Work with both an UNIX-like path or a Windows path. #5136 (Guillaume Tassery) - Añadir
LIMIT n, m BY
oLIMIT m OFFSET n BY
sintaxis para establecer el desplazamiento de n para la cláusula LIMIT BY. #5138 (Anton Popov) - Añadido nuevo tipo de datos
SimpleAggregateFunction
, lo que permite tener columnas con agregación de luz en unAggregatingMergeTree
. Esto solo se puede usar con funciones simples comoany
,anyLast
,sum
,min
,max
. #4629 (Boris Granveaud) - Se agregó soporte para argumentos no constantes en función
ngramDistance
#5198 (Más información) - Funciones añadidas
skewPop
,skewSamp
,kurtPop
ykurtSamp
para calcular la asimetría de la secuencia, la asimetría de la muestra, la curtosis y la curtosis de la muestra, respectivamente. #5200 (Hcz) - La ayuda cambia de nombre la operación para
MaterializeView
almacenamiento. #5209 (Guillaume Tassery) - Se agregó un servidor que permite conectarse a ClickHouse usando el cliente MySQL. #4715 (Yuriy Baranov)
- Añadir
toDecimal*OrZero
ytoDecimal*OrNull
función. #5291 (Artem Zuikov) - Soporte tipos decimales en funciones:
quantile
,quantiles
,median
,quantileExactWeighted
,quantilesExactWeighted
, medianExactWeighted. #5304 (Artem Zuikov) - Añadir
toValidUTF8
function, which replaces all invalid UTF-8 characters by replacement character <20> (U+FFFD). #5322 (Más información) - Añadir
format
función. Formateo del patrón constante (patrón de formato Python simplificado) con las cadenas enumeradas en los argumentos. #5330 (Más información) - Añadir
system.detached_parts
que contiene información sobre las partes separadas deMergeTree
tabla. #5353 (akuzm) - Añadir
ngramSearch
función para calcular la diferencia no simétrica entre la aguja y el pajar. #5418#5422 (Más información) - Implementación de métodos básicos de aprendizaje automático (regresión lineal estocástica y regresión logística) utilizando la interfaz de funciones agregadas. Tiene diferentes estrategias para actualizar los pesos del modelo (descenso de gradiente simple, método de impulso, método Nesterov). También es compatible con mini lotes de tamaño personalizado. #4943 (Quid37)
- Implementación de
geohashEncode
ygeohashDecode
función. #5003 (Vasily Nemkov) - Función agregada agregada
timeSeriesGroupSum
, que puede agregar diferentes series de tiempo que muestran la marca de tiempo no la alineación. Utilizará la interpolación lineal entre dos marcas de tiempo de muestra y luego sumará series temporales juntas. Función agregada agregadatimeSeriesGroupRateSum
, que calcula la tasa de series temporales y luego suma las tasas juntas. #4542 (Información adicional) - Funciones añadidas
IPv4CIDRtoIPv4Range
yIPv6CIDRtoIPv6Range
para calcular los límites inferiores y superiores para una IP en la subred utilizando un CIDR. #5095 (Guillaume Tassery) - Agregue un encabezado X-ClickHouse-Summary cuando enviamos una consulta usando HTTP con la configuración habilitada
send_progress_in_http_headers
. Devuelve la información habitual de X-ClickHouse-Progress, con información adicional como cuántas filas y bytes se insertaron en la consulta. #5116 (Guillaume Tassery)
Mejora
- Añadir
max_parts_in_total
configuración para la familia de tablas MergeTree (predeterminado: 100 000) que evita la especificación insegura de la clave de partición # 5166. #5171 (alexey-milovidov) clickhouse-obfuscator
: derivar la semilla para columnas individuales combinando la semilla inicial con el nombre de la columna, no la posición de la columna. Esto está destinado a transformar conjuntos de datos con varias tablas relacionadas, de modo que las tablas permanezcan JOINable después de la transformación. #5178 (alexey-milovidov)- Funciones añadidas
JSONExtractRaw
,JSONExtractKeyAndValues
. Funciones renombradasjsonExtract<type>
aJSONExtract<type>
. Cuando algo sale mal, estas funciones devuelven los valores correspondientes, noNULL
. Función modificadaJSONExtract
, ahora obtiene el tipo de devolución de su último parámetro y no inyecta nullables. Implementado de respaldo a RapidJSON en caso de que las instrucciones AVX2 no estén disponibles. Biblioteca Simdjson actualizado a una nueva versión. #5235 (Vitaly Baranov) - Ahora
if
ymultiIf
funciones no dependen de la condiciónNullable
, pero confíe en las ramas para la compatibilidad sql. #5238 (Jian Wu) In
predicado ahora generaNull
resultado deNull
entrada como elEqual
función. #5152 (Jian Wu)- Verifique el límite de tiempo cada (flush_interval / poll_timeout) número de filas de Kafka. Esto permite romper la lectura del consumidor de Kafka con más frecuencia y verificar los límites de tiempo para las transmisiones de nivel superior #5249 (Ivan)
- Enlace rdkafka con SASL incluido. Debería permitir el uso de autenticación SASL SCRAM #5253 (Ivan)
- Versión por lotes de RowRefList para TODAS LAS UNIONES. #5267 (Artem Zuikov)
- clickhouse-server: mensajes de error de escucha más informativos. #5268 (propulsor)
- Diccionarios de soporte en clickhouse-copiadora para funciones en
<sharding_key>
#5270 (propulsor) - Añadir nueva configuración
kafka_commit_every_batch
para regular Kafka cometer política. Permite establecer el modo de confirmación: después de que se maneje cada lote de mensajes, o después de que se escriba todo el bloque en el almacenamiento. Es una compensación entre perder algunos mensajes o leerlos dos veces en algunas situaciones extremas. #5308 (Ivan) - Hacer
windowFunnel
soporta otros tipos de enteros sin firmar. #5320 (Sundyli) - Permitir sombrear la columna virtual
_table
en el motor de fusión. #5325 (Ivan) - Hacer
sequenceMatch
Las funciones de agregado admiten otros tipos de enteros sin signo #5339 (Sundyli) - Mejores mensajes de error si la suma de comprobación no coincide probablemente es causada por fallas de hardware. #5355 (alexey-milovidov)
- Compruebe que las tablas subyacentes admiten
StorageMerge
#5366 (Ivan) - Сlose MySQL connections after their usage in external dictionaries. It is related to issue #893. #5395 (Clément Rodriguez)
- Mejoras de MySQL Wire Protocol. Se ha cambiado el nombre del formato a MySQLWire. Usando RAII para llamar a RSA_free. Deshabilitar SSL si no se puede crear contexto. #5419 (Yuriy Baranov)
- clickhouse-client: allow to run with unaccessable history file (read-only, no disk space, file is directory, …). #5431 (propulsor)
- Respete la configuración de consulta en INSERT asincrónicos en tablas distribuidas. #4936 (Método de codificación de datos:)
- Funciones renombradas
leastSqr
asimpleLinearRegression
,LinearRegression
alinearRegression
,LogisticRegression
alogisticRegression
. #5391 (Nikolai Kochetov)
Mejoras de rendimiento
- Paralelice el procesamiento de partes de tablas MergeTree no replicadas en la consulta ALTER MODIFY. #4639 (Ivan Kush)
- Optimizaciones en la extracción de expresiones regulares. #5193 #5191 (Más información)
- No agregue la columna de clave de unión correcta para unir el resultado si solo se usa en la sección join on . #5260 (Artem Zuikov)
- Congele el búfer Kafka después de la primera respuesta vacía. Evita múltiples invocaciones de
ReadBuffer::next()
para el resultado vacío en algunas secuencias de análisis de filas. #5283 (Ivan) concat
optimización de funciones para múltiples argumentos. #5357 (Más información)- Query optimisation. Allow push down IN statement while rewriting commа/cross join into inner one. #5396 (Artem Zuikov)
- Actualice nuestra implementación LZ4 con la referencia uno para tener una descompresión más rápida. #5070 (Más información)
- Implementado MSD radix ordenar (basado en kxsort), y la clasificación parcial. #5129 (Evgenii Pravda)
Corrección de errores
- Fix push requiere columnas con unión #5192 (Invierno Zhang)
- Corregido error, cuando ClickHouse es ejecutado por systemd, el comando
sudo service clickhouse-server forcerestart
no funcionaba como se esperaba. #5204 (propulsor) - Corregir los códigos de error http en DataPartsExchange (el servidor http deinterserver en el puerto 9009 siempre devolvió el código 200, incluso en errores). #5216 (propulsor)
- Repara SimpleAggregateFunction para String más largo que MAX_SMALL_STRING_SIZE #5311 (Azat Khuzhin)
- Corregir error para
Decimal
aNullable(Decimal)
conversión en IN. Admite otras conversiones de decimales a decimales (incluidas diferentes escalas). #5350 (Artem Zuikov) - Se corrigió el clobbering de FPU en la biblioteca simdjson que conducía a un cálculo incorrecto de
uniqHLL
yuniqCombined
función agregada y funciones matemáticas tales comolog
. #5354 (alexey-milovidov) - Se corrigió el manejo de casos mixtos const / nonconst en funciones JSON. #5435 (Vitaly Baranov)
- Fijar
retention
función. Ahora todas las condiciones que cumplen en una fila de datos se agregan al estado de datos. #5119 (小路) - Corregir el tipo de resultado para
quantileExact
con decimales. #5304 (Artem Zuikov)
Documentación
- Traducir documentación para
CollapsingMergeTree
a chino. #5168 (张风啸) - Traduzca alguna documentación sobre motores de mesa al chino. #5134 #5328 (nunca lee)
Mejoras de compilación / prueba / empaquetado
- Corrija algunos informes de desinfectantes que muestran un uso probable después de liberar.#5139 #5143 #5393 (Ivan)
- Mueva las pruebas de rendimiento fuera de directorios separados para mayor comodidad. #5158 (alexey-milovidov)
- Corregir pruebas de rendimiento incorrectas. #5255 (alesapin)
- Se agregó una herramienta para calcular las sumas de comprobación causadas por los saltos de bits para depurar problemas de hardware. #5334 (alexey-milovidov)
- Hacer script corredor más utilizable. #5340#5360 (filimonov)
- Agregue pequeñas instrucciones sobre cómo escribir pruebas de rendimiento. #5408 (alesapin)
- Añadir capacidad para hacer sustituciones en crear, llenar y soltar consulta en las pruebas de rendimiento #5367 (Olga Khvostikova)
Lanzamiento de ClickHouse 19.7
Lanzamiento de ClickHouse 19.7.5.29, 2019-07-05
Corrección de errores
- Corregir la regresión de rendimiento en algunas consultas con JOIN. #5192 (Invierno Zhang)
Lanzamiento de ClickHouse 19.7.5.27, 2019-06-09
Novedad
- Se agregaron funciones relacionadas con el mapa de bits
bitmapHasAny
ybitmapHasAll
análogo ahasAny
yhasAll
funciones para matrices. #5279 (Sergi Vladykin)
Corrección de errores
- Arreglar segfault en
minmax
ÍNDICE con valor nulo. #5246 (Nikita Vasilev) - Marque todas las columnas de entrada en LIMIT BY como salida requerida. Se fija ‘Not found column’ error en algunas consultas distribuidas. #5407 (Constantin S. Pan)
- Fijar “Column ‘0’ already exists” error en
SELECT .. PREWHERE
en la columna con DEFAULT #5397 (propulsor) - Fijar
ALTER MODIFY TTL
consulta sobreReplicatedMergeTree
. #5539 (Anton Popov) - No bloquee el servidor cuando los consumidores de Kafka no se hayan iniciado. #5285 (Ivan)
- Las funciones de mapa de bits fijas producen un resultado incorrecto. #5359 (Cristina Andrés)
- Fix element_count para el diccionario hash (no incluye duplicados) #5440 (Azat Khuzhin)
- Utilice el contenido de la variable de entorno TZ como el nombre de la zona horaria. Ayuda a detectar correctamente la zona horaria predeterminada en algunos casos.#5443 (Ivan)
- No intente convertir enteros en
dictGetT
funciones, porque no funciona correctamente. Lanza una excepción en su lugar. #5446 (Artem Zuikov) - Corregir la configuración en la solicitud HTTP ExternalData. #5455 (Danila Kutenin)
- Corregir un error cuando las piezas se eliminaron solo de FS sin dejarlas caer de Zookeeper. #5520 (alesapin)
- Fijar falla de segmentación en
bitmapHasAny
función. #5528 (Zhichang Yu) - Se corrigió el error cuando el grupo de conexiones de replicación no vuelve a intentar resolver el host, incluso cuando se eliminó la caché DNS. #5534 (alesapin)
- Fijo
DROP INDEX IF EXISTS
consulta. AhoraALTER TABLE ... DROP INDEX IF EXISTS ...
query no genera una excepción si el índice proporcionado no existe. #5524 (Gleb Novikov) - Corregir unión toda la columna de supertipo. Hubo casos con datos inconsistentes y tipos de columnas de columnas resultantes. #5503 (Artem Zuikov)
- Omita ZNONODE durante el procesamiento de consultas DDL. Antes, si otro nodo elimina el znode en la cola de tareas, el que no lo procesó, pero ya obtuvo la lista de hijos, terminará el hilo DDLWorker. #5489 (Azat Khuzhin)
- Fije INSERT en la tabla Distributed () con la columna MATERIALIZED. #5429 (Azat Khuzhin)
Lanzamiento de ClickHouse 19.7.3.9, 2019-05-30
Novedad
- Permite limitar el rango de una configuración que puede especificar el usuario. Estas restricciones se pueden configurar en el perfil de configuración del usuario. #4931 (Vitaly Baranov)
- Añadir una segunda versión de la función
groupUniqArray
con una opciónmax_size
parámetro que limita el tamaño de la matriz resultante. Este comportamiento es similar agroupArray(max_size)(x)
función. #5026 (Guillaume Tassery) - Para los formatos de archivo de entrada TSVWithNames/CSVWithNames, el orden de columnas ahora puede ser
determinado a partir del encabezado del archivo. Esto es controlado por
input_format_with_names_use_header
parámetro. #5081 (Alejandro)
Corrección de errores
- Bloqueo con sin comprimir_cache + JOIN durante la fusión (# 5197) #5133 (Danila Kutenin)
- Error de segmentación en una consulta de clickhouse-cliente a tablas del sistema. #5066 #5127 (Ivan)
- Pérdida de datos en carga pesada a través de KafkaEngine (#4736) #5080 (Ivan)
- Se corrigió una condición de carrera de datos muy rara que podría ocurrir al ejecutar una consulta con UNION ALL que involucraba al menos dos SELECT del sistema.columnas, sistema.mesas, sistema.partes, sistema.parts_tables o tablas de la familia Merge y realizar ALTER de columnas de las tablas relacionadas simultáneamente. #5189 (alexey-milovidov)
Mejoras de rendimiento
- Utilice la clasificación de radix para ordenar por una sola columna numérica en
ORDER BY
sinLIMIT
. #5106, #4439 (Evgenii Pravda, alexey-milovidov)
Documentación
- Traduzca la documentación de algunos motores de tabla al chino. #5107, #5094, #5087 (张风啸), #5068 (nunca Sotavento)
Mejoras de compilación / prueba / empaquetado
- Imprima los caracteres UTF-8 correctamente en
clickhouse-test
. #5084 (alexey-milovidov) - Agregar parámetro de línea de comandos para clickhouse-cliente para cargar siempre la sugerencia datos. #5102 (alexey-milovidov)
- Resuelva algunas de las advertencias de PVS-Studio. #5082 (alexey-milovidov)
- Actualizar LZ4 #5040 (Danila Kutenin)
- Agregue gperf a los requisitos de compilación para la próxima solicitud de extracción # 5030. #5110 (propulsor)
Lanzamiento de ClickHouse 19.6
Lanzamiento de ClickHouse 19.6.3.18, 2019-06-13
Corrección de errores
- Fijo IN condición pushdown para consultas de funciones de tabla
mysql
yodbc
y los correspondientes motores de mesa. Esto corrige # 3540 y # 2384. #5313 (alexey-milovidov) - Corregir el punto muerto en Zookeeper. #5297 (github1youlc)
- Permitir decimales citados en CSV. #5284 (Artem Zuikov
- No permitir la conversión de float Inf / NaN en Decimales (excepción de lanzamiento). #5282 (Artem Zuikov)
- Corregir la carrera de datos en la consulta de cambio de nombre. #5247 (Invierno Zhang)
- Deshabilitar temporalmente LFAlloc. El uso de LFAlloc puede conducir a una gran cantidad de MAP_FAILED en la asignación de UncompressedCache y, como resultado, a bloqueos de consultas en servidores de alta carga. cfdba93(Más información)
Lanzamiento de ClickHouse 19.6.2.11, 2019-05-13
Novedad
- Expresiones TTL para columnas y tablas. #4212 (Anton Popov)
- Añadido soporte para
brotli
compresión para respuestas HTTP (Accept-Encoding: br) #4388 (Mijaíl) - Se agregó una nueva función
isValidUTF8
para verificar si un conjunto de bytes está codificado correctamente en utf-8. #4934 (Más información) - Agregar nueva directiva de equilibrio de carga
first_or_random
que envía consultas al primer host especificado y, si es inaccesible, envía consultas a hosts aleatorios de fragmento. Útil para configuraciones de topología de replicación cruzada. #5012 (Nombre de la red inalámbrica (SSID):)
Experimental Características
- Añadir ajuste
index_granularity_bytes
(granularidad de índice adaptativo) para la familia de tablas MergeTree*. #4826 (alesapin)
Mejora
- Se agregó soporte para argumentos de tamaño y longitud no constantes y negativos para la función
substringUTF8
. #4989 (alexey-milovidov) - Deshabilite el push-down a la tabla derecha en la unión izquierda, la tabla izquierda en la unión derecha y ambas tablas en unión completa. Esto corrige los resultados JOIN incorrectos en algunos casos. #4846 (Ivan)
clickhouse-copier
: configuración de tareas de carga automática desde--task-file
opcion #4876 (propulsor)- Se agregó el controlador de errores tipográficos para la fábrica de almacenamiento y la fábrica de funciones de tabla. #4891 (Más información)
- Admite asteriscos y asteriscos calificados para combinaciones múltiples sin subconsultas #4898 (Artem Zuikov)
- Haga que el mensaje de error de columna faltante sea más fácil de usar. #4915 (Artem Zuikov)
Mejoras de rendimiento
- Aceleración significativa de ASOF JOIN #4924 (Martijn Bakker)
Cambios incompatibles hacia atrás
- Encabezado HTTP
Query-Id
fue renombrado aX-ClickHouse-Query-Id
para la consistencia. #4972 (Mijaíl)
Corrección de errores
- Se corrigió la desreferencia del puntero nulo potencial en
clickhouse-copier
. #4900 (propulsor) - Se corrigió el error en la consulta con JOIN + ARRAY JOIN #4938 (Artem Zuikov)
- Se corrigió el inicio del servidor cuando un diccionario depende de otro diccionario a través de una base de datos con motor = Diccionario. #4962 (Vitaly Baranov)
- Partially fix distributed_product_mode = local. It's possible to allow columns of local tables in where/having/order by/… via table aliases. Throw exception if table does not have alias. There's not possible to access to the columns without table aliases yet. #4986 (Artem Zuikov)
- Repara el resultado potencialmente incorrecto para
SELECT DISTINCT
conJOIN
#5001 (Artem Zuikov) - Se corrigió una condición de carrera de datos muy rara que podría ocurrir al ejecutar una consulta con UNION ALL que involucraba al menos dos SELECT del sistema.columnas, sistema.mesas, sistema.partes, sistema.parts_tables o tablas de la familia Merge y realizar ALTER de columnas de las tablas relacionadas simultáneamente. #5189 (alexey-milovidov)
Mejoras de compilación / prueba / empaquetado
- Se corrigieron errores de prueba al ejecutar clickhouse-server en un host diferente #4713 (Vasily Nemkov)
- clickhouse-test: deshabilita las secuencias de control de color en un entorno no tty. #4937 (alesapin)
- clickhouse-test: Permitir el uso de cualquier base de datos de prueba (eliminar
test.
calificación donde sea posible) #5008 (propulsor) - Corregir errores de ubsan #5037 (Vitaly Baranov)
- Yandex LFAlloc se agregó a ClickHouse para asignar datos de MarkCache y UncompressedCache de diferentes maneras para detectar segfaults más confiables #4995 (Más información)
- Python utiliza para ayudar con backports y registros de cambios. #4949 (Ivan)
Lanzamiento de ClickHouse 19.5
Lanzamiento de ClickHouse 19.5.4.22, 2019-05-13
Corrección de errores
- Se corrigió un posible bloqueo en las funciones de mapa de bits * #5220 #5228 (Cristina Andrés)
- Se corrigió una condición de carrera de datos muy rara que podría ocurrir al ejecutar una consulta con UNION ALL que involucraba al menos dos SELECT del sistema.columnas, sistema.mesas, sistema.partes, sistema.parts_tables o tablas de la familia Merge y realizar ALTER de columnas de las tablas relacionadas simultáneamente. #5189 (alexey-milovidov)
- Error fijo
Set for IN is not created yet in case of using single LowCardinality column in the left part of IN
. Este error ocurrió si la columna LowCardinality era la parte de la clave principal. #5031 #5154 (Nikolai Kochetov) - Modificación de la función de retención: si una fila satisface la primera condición y la NTH, solo se agrega la primera condición satisfecha al estado de datos. Ahora todas las condiciones que cumplen en una fila de datos se agregan al estado de datos. #5119 (小路)
Lanzamiento de ClickHouse 19.5.3.8, 2019-04-18
Corrección de errores
- Tipo fijo de ajuste
max_partitions_per_insert_block
de booleano a UInt64. #5028 (Más información)
Lanzamiento de ClickHouse 19.5.2.6, 2019-04-15
Novedad
- Hyperscan Se agregó múltiples coincidencias de expresiones regulares (funciones
multiMatchAny
,multiMatchAnyIndex
,multiFuzzyMatchAny
,multiFuzzyMatchAnyIndex
). #4780, #4841 (Más información) multiSearchFirstPosition
se añadió la función. #4780 (Más información)- Implemente el filtro de expresión predefinido por fila para las tablas. #4792 (Ivan)
- Un nuevo tipo de índices de omisión de datos basados en filtros de floración (se puede usar para
equal
,in
ylike
función). #4499 (Nikita Vasilev) - Añadir
ASOF JOIN
que permite ejecutar consultas que se unen al valor más reciente conocido. #4774 #4867 #4863 #4875 (Martijn Bakker, Artem Zuikov) - Reescribir múltiples
COMMA JOIN
aCROSS JOIN
. Luego reescribirlos paraINNER JOIN
si es posible. #4661 (Artem Zuikov)
Mejora
topK
ytopKWeighted
ahora soporta personalizadoloadFactor
(soluciona el problema #4252). #4634 (Kirill Danshin)- Permitir usar
parallel_replicas_count > 1
incluso para tablas sin muestreo (la configuración simplemente se ignora para ellas). En versiones anteriores fue conducido a la excepción. #4637 (Alexey Elymanov) - Soporte para
CREATE OR REPLACE VIEW
. Permite crear una vista o establecer una nueva definición en una sola instrucción. #4654 (Boris Granveaud) Buffer
motor de mesa ahora soportaPREWHERE
. #4671 (Información adicional)- Agregue la capacidad de iniciar una tabla replicada sin metadatos en zookeeper en
readonly
modo. #4691 (alesapin) - Parpadeo fijo de la barra de progreso en clickhouse-cliente. El problema fue más notable al usar
FORMAT Null
con consultas de streaming. #4811 (alexey-milovidov) - Permitir deshabilitar funciones con
hyperscan
biblioteca por usuario para limitar el uso de recursos potencialmente excesivo e incontrolado. #4816 (alexey-milovidov) - Agregue el registro del número de versión en todos los errores. #4824 (propulsor)
- Se agregó restricción a la
multiMatch
funciones que requieren tamaño de cadena para encajar enunsigned int
. También se agregó el número de límite de argumentos almultiSearch
función. #4834 (Más información) - Uso mejorado del espacio de arañazos y manejo de errores en Hyperscan. #4866 (Más información)
- Llenar
system.graphite_detentions
de una configuración de tabla de*GraphiteMergeTree
mesas de motores. #4584 (Mikhail f. Shiryaev) - Cambiar nombre
trigramDistance
función parangramDistance
y añadir más funciones conCaseInsensitive
yUTF
. #4602 (Más información) - Cálculo de índices de saltos de datos mejorado. #4640 (Nikita Vasilev)
- Mantener ordinario,
DEFAULT
,MATERIALIZED
yALIAS
columnas en una sola lista (soluciona el problema #2867). #4707 (Método de codificación de datos:)
Corrección de errores
- Evitar
std::terminate
en caso de error de asignación de memoria. Ahorastd::bad_alloc
excepción se lanza como se esperaba. #4665 (alexey-milovidov) - Corrige la lectura de capnproto desde el búfer. A veces, los archivos no se cargaron correctamente por HTTP. #4674 (Vladislav)
- Corregir error
Unknown log entry type: 0
despuesOPTIMIZE TABLE FINAL
consulta. #4683 (Amos pájaro) - Argumentos erróneos para
hasAny
ohasAll
funciones pueden conducir a segfault. #4698 (alexey-milovidov) - Puede producirse un punto muerto durante la ejecución
DROP DATABASE dictionary
consulta. #4701 (alexey-milovidov) - Repara el comportamiento indefinido en
median
yquantile
función. #4702 (Hcz) - Corregir la detección de nivel de compresión cuando
network_compression_method
en minúsculas. Roto en v19.1. #4706 (propulsor) - Se corrigió la ignorancia de
<timezone>UTC</timezone>
ajuste (soluciona el problema #4658). #4718 (propulsor) - Fijar
histogram
comportamiento de la función conDistributed
tabla. #4741 (Olegkv) - Informe tsan fijo
destroy of a locked mutex
. #4742 (alexey-milovidov) - Se corrigió el informe de TSan sobre el cierre debido a la condición de carrera en el uso de registros del sistema. Se corrigió el uso potencial después de liberar al apagar cuando part_log está habilitado. #4758 (alexey-milovidov)
- Fijar las piezas de nuevo control en
ReplicatedMergeTreeAlterThread
en caso de error. #4772 (Nikolai Kochetov) - Las operaciones aritméticas en estados de función de agregado intermedios no funcionaban para argumentos constantes (como los resultados de subconsulta). #4776 (alexey-milovidov)
- Siempre retroceda los nombres de las columnas en los metadatos. De lo contrario, es imposible crear una tabla con una columna llamada
index
(el servidor no se reiniciará debido aATTACH
consulta en metadatos). #4782 (alexey-milovidov) - Fix crash en
ALTER ... MODIFY ORDER BY
enDistributed
tabla. #4790 (Método de codificación de datos:) - Arreglar segfault en
JOIN ON
con habilitadoenable_optimize_predicate_expression
. #4794 (Invierno Zhang) - Corregir un error al agregar una fila extraña después de consumir un mensaje protobuf de Kafka. #4808 (Vitaly Baranov)
- Corregir el bloqueo de
JOIN
no aceptan vs columna que acepta valores null. FijarNULLs
en las teclas de la derecha enANY JOIN
+join_use_nulls
. #4815 (Artem Zuikov) - Fijar falla de segmentación en
clickhouse-copier
. #4835 (propulsor) - Condición de carrera fija en
SELECT
desystem.tables
si la tabla se cambia de nombre o se modifica simultáneamente. #4836 (alexey-milovidov) - Se corrigió la carrera de datos al obtener una parte de datos que ya está obsoleta. #4839 (alexey-milovidov)
- Se corrigió la carrera de datos raros que puede ocurrir durante
RENAME
tabla de la familia MergeTree. #4844 (alexey-milovidov) - Fallo de segmentación fijo en la función
arrayIntersect
. La falla de segmentación podría ocurrir si se llamara a la función con argumentos constantes y ordinarios mixtos. #4847 (Lixiang Qian) - Lectura fija de
Array(LowCardinality)
columna en caso raro cuando la columna contenía una larga secuencia de matrices vacías. #4850 (Nikolai Kochetov) - Fix crash en
FULL/RIGHT JOIN
cuando nos unimos en nullable vs no nullable. #4855 (Artem Zuikov) - Fijar
No message received
excepción al recuperar partes entre réplicas. #4856 (alesapin) - Fijo
arrayIntersect
resultado incorrecto de la función en caso de varios valores repetidos en una sola matriz. #4871 (Nikolai Kochetov) - Corregir una condición de carrera durante
ALTER COLUMN
consultas que podrían provocar un bloqueo del servidor (soluciona el problema #3421). #4592 (Método de codificación de datos:) - Corregir el resultado incorrecto en
FULL/RIGHT JOIN
con la columna const. #4723 (Artem Zuikov) - Reparar duplicados en
GLOBAL JOIN
con asterisk. #4705 (Artem Zuikov) - Corregir la deducción de parámetros en
ALTER MODIFY
de la columnaCODEC
cuando no se especifica el tipo de columna. #4883 (alesapin) - Función
cutQueryStringAndFragment()
yqueryStringAndFragment()
ahora funciona correctamente cuandoURL
contiene un fragmento y ninguna consulta. #4894 (Vitaly Baranov) - Corregir un error raro al configurar
min_bytes_to_use_direct_io
es mayor que cero, lo que ocurre cuando el hilo tiene que buscar hacia atrás en el archivo de columna. #4897 (alesapin) - Corregir tipos de argumentos incorrectos para funciones agregadas con
LowCardinality
argumentos (soluciona el problema #4919). #4922 (Nikolai Kochetov) - Corregir la calificación de nombre incorrecto en
GLOBAL JOIN
. #4969 (Artem Zuikov) - Fijar la función
toISOWeek
resultado para el año 1970. #4988 (alexey-milovidov) - Fijar
DROP
,TRUNCATE
yOPTIMIZE
duplicación de consultas, cuando se ejecuta enON CLUSTER
paraReplicatedMergeTree*
tablas de la familia. #4991 (alesapin)
Cambio incompatible hacia atrás
- Cambiar el nombre de la configuración
insert_sample_with_metadata
establecerinput_format_defaults_for_omitted_fields
. #4771 (Artem Zuikov) - Añadido
max_partitions_per_insert_block
(con valor 100 por defecto). Si el bloque insertado contiene un mayor número de particiones, se lanza una excepción. Establezca en 0 si desea eliminar el límite (no recomendado). #4845 (alexey-milovidov) - Se renombraron las funciones de búsqueda múltiple (
multiPosition
amultiSearchAllPositions
,multiSearch
amultiSearchAny
,firstMatch
amultiSearchFirstIndex
). #4780 (Más información)
Mejora del rendimiento
- Optimice el buscador Volnitsky al alinear, dando aproximadamente un 5-10% de mejora de búsqueda para consultas con muchas agujas o muchos bigrams similares. #4862 (Más información)
- Solucionar problema de rendimiento al configurar
use_uncompressed_cache
es mayor que cero, que apareció cuando todos los datos leídos contenidos en la memoria caché. #4913 (alesapin)
Mejora de la construcción/prueba/empaquetado
- Endurecimiento de la compilación de depuración: más asignaciones de memoria granulares y ASLR; agregue protección de memoria para caché de marcas e índice. Esto permite encontrar más errores de memoria en caso de que ASan y MSan no puedan hacerlo. #4632 (alexey-milovidov)
- Añadir soporte para variables cmake
ENABLE_PROTOBUF
,ENABLE_PARQUET
yENABLE_BROTLI
que permite habilitar / deshabilitar las características anteriores (lo mismo que podemos hacer para librdkafka, mysql, etc.). #4669 (Silviu Caragea) - Agregue la capacidad de imprimir la lista de procesos y los rastros de pila de todos los hilos si algunas consultas se cuelgan después de la ejecución de la prueba. #4675 (alesapin)
- Agregar reintentos en
Connection loss
error enclickhouse-test
. #4682 (alesapin) - Agregue freebsd build con vagrant y compile con desinfectante de hilos al script del empaquetador. #4712 #4748 (alesapin)
- Ahora el usuario pidió contraseña para el usuario
'default'
durante la instalación. #4725 (propulsor) - Suprimir advertencia en
rdkafka
biblioteca. #4740 (alexey-milovidov) - Permitir la capacidad de construir sin ssl. #4750 (propulsor)
- Agregue una forma de iniciar una imagen de clickhouse-server desde un usuario personalizado. #4753 (Mikhail f. Shiryaev)
- Actualice el impulso de contrib a 1.69. #4793 (propulsor)
- Deshabilitar el uso de
mremap
cuando se compila con Thread Sanitizer. Sorprendentemente, TSan no interceptamremap
(aunque interceptammap
,munmap
) que conduce a falsos positivos. Informe TSan fijo en pruebas con estado. #4859 (alexey-milovidov) - Agregue comprobación de prueba usando el esquema de formato a través de la interfaz HTTP. #4864 (Vitaly Baranov)
Lanzamiento de ClickHouse 19.4
Lanzamiento de ClickHouse 19.4.4.33, 2019-04-17
Corrección de errores
- Evitar
std::terminate
en caso de error de asignación de memoria. Ahorastd::bad_alloc
excepción se lanza como se esperaba. #4665 (alexey-milovidov) - Corrige la lectura de capnproto desde el búfer. A veces, los archivos no se cargaron correctamente por HTTP. #4674 (Vladislav)
- Corregir error
Unknown log entry type: 0
despuesOPTIMIZE TABLE FINAL
consulta. #4683 (Amos pájaro) - Argumentos erróneos para
hasAny
ohasAll
funciones pueden conducir a segfault. #4698 (alexey-milovidov) - Puede producirse un punto muerto durante la ejecución
DROP DATABASE dictionary
consulta. #4701 (alexey-milovidov) - Repara el comportamiento indefinido en
median
yquantile
función. #4702 (Hcz) - Corregir la detección de nivel de compresión cuando
network_compression_method
en minúsculas. Roto en v19.1. #4706 (propulsor) - Se corrigió la ignorancia de
<timezone>UTC</timezone>
ajuste (soluciona el problema #4658). #4718 (propulsor) - Fijar
histogram
comportamiento de la función conDistributed
tabla. #4741 (Olegkv) - Informe tsan fijo
destroy of a locked mutex
. #4742 (alexey-milovidov) - Se corrigió el informe de TSan sobre el cierre debido a la condición de carrera en el uso de registros del sistema. Se corrigió el uso potencial después de liberar al apagar cuando part_log está habilitado. #4758 (alexey-milovidov)
- Fijar las piezas de nuevo control en
ReplicatedMergeTreeAlterThread
en caso de error. #4772 (Nikolai Kochetov) - Las operaciones aritméticas en estados de función de agregado intermedios no funcionaban para argumentos constantes (como los resultados de subconsulta). #4776 (alexey-milovidov)
- Siempre retroceda los nombres de las columnas en los metadatos. De lo contrario, es imposible crear una tabla con una columna llamada
index
(el servidor no se reiniciará debido aATTACH
consulta en metadatos). #4782 (alexey-milovidov) - Fix crash en
ALTER ... MODIFY ORDER BY
enDistributed
tabla. #4790 (Método de codificación de datos:) - Arreglar segfault en
JOIN ON
con habilitadoenable_optimize_predicate_expression
. #4794 (Invierno Zhang) - Corregir un error al agregar una fila extraña después de consumir un mensaje protobuf de Kafka. #4808 (Vitaly Baranov)
- Fijar falla de segmentación en
clickhouse-copier
. #4835 (propulsor) - Condición de carrera fija en
SELECT
desystem.tables
si la tabla se cambia de nombre o se modifica simultáneamente. #4836 (alexey-milovidov) - Se corrigió la carrera de datos al obtener una parte de datos que ya está obsoleta. #4839 (alexey-milovidov)
- Se corrigió la carrera de datos raros que puede ocurrir durante
RENAME
tabla de la familia MergeTree. #4844 (alexey-milovidov) - Fallo de segmentación fijo en la función
arrayIntersect
. La falla de segmentación podría ocurrir si se llamara a la función con argumentos constantes y ordinarios mixtos. #4847 (Lixiang Qian) - Lectura fija de
Array(LowCardinality)
columna en caso raro cuando la columna contenía una larga secuencia de matrices vacías. #4850 (Nikolai Kochetov) - Fijar
No message received
excepción al recuperar partes entre réplicas. #4856 (alesapin) - Fijo
arrayIntersect
resultado incorrecto de la función en caso de varios valores repetidos en una sola matriz. #4871 (Nikolai Kochetov) - Corregir una condición de carrera durante
ALTER COLUMN
consultas que podrían provocar un bloqueo del servidor (soluciona el problema #3421). #4592 (Método de codificación de datos:) - Corregir la deducción de parámetros en
ALTER MODIFY
de la columnaCODEC
cuando no se especifica el tipo de columna. #4883 (alesapin) - Función
cutQueryStringAndFragment()
yqueryStringAndFragment()
ahora funciona correctamente cuandoURL
contiene un fragmento y ninguna consulta. #4894 (Vitaly Baranov) - Corregir un error raro al configurar
min_bytes_to_use_direct_io
es mayor que cero, lo que ocurre cuando el hilo tiene que buscar hacia atrás en el archivo de columna. #4897 (alesapin) - Corregir tipos de argumentos incorrectos para funciones agregadas con
LowCardinality
argumentos (soluciona el problema #4919). #4922 (Nikolai Kochetov) - Fijar la función
toISOWeek
resultado para el año 1970. #4988 (alexey-milovidov) - Fijar
DROP
,TRUNCATE
yOPTIMIZE
duplicación de consultas, cuando se ejecuta enON CLUSTER
paraReplicatedMergeTree*
tablas de la familia. #4991 (alesapin)
Mejora
- Mantener ordinario,
DEFAULT
,MATERIALIZED
yALIAS
columnas en una sola lista (soluciona el problema #2867). #4707 (Método de codificación de datos:)
Lanzamiento de ClickHouse 19.4.3.11, 2019-04-02
Corrección de errores
- Fix crash en
FULL/RIGHT JOIN
cuando nos unimos en nullable vs no nullable. #4855 (Artem Zuikov) - Fijar falla de segmentación en
clickhouse-copier
. #4835 (propulsor)
Mejora de la construcción/prueba/empaquetado
- Agregue una forma de iniciar una imagen de clickhouse-server desde un usuario personalizado. #4753 (Mikhail f. Shiryaev)
Lanzamiento de ClickHouse 19.4.2.7, 2019-03-30
Corrección de errores
- Lectura fija de
Array(LowCardinality)
columna en caso raro cuando la columna contenía una larga secuencia de matrices vacías. #4850 (Nikolai Kochetov)
Lanzamiento de ClickHouse 19.4.1.3, 2019-03-19
Corrección de errores
- Consultas remotas fijas que contienen ambos
LIMIT BY
yLIMIT
. Anteriormente, siLIMIT BY
yLIMIT
se utilizaron para la consulta remota,LIMIT
podría pasar antesLIMIT BY
, cuál llevó al resultado demasiado filtrado. #4708 (Constantin S. Pan)
Lanzamiento de ClickHouse 19.4.0.49, 2019-03-09
Novedad
- Se agregó soporte completo para
Protobuf
formato (entrada y salida, estructuras de datos anidadas). #4174 #4493 (Vitaly Baranov) - Se agregaron funciones de mapa de bits con mapas de bits rugientes. #4207 (Cristina Andrés) #4568 (Vitaly Baranov)
- Soporte de formato de parquet. #4448 (propulsor)
- Se agregó una distancia de N-gramo para la comparación de cadenas difusas. Es similar a las métricas de q-gram en el lenguaje R. #4466 (Más información)
- Combine reglas para el paquete acumulativo de grafito a partir de patrones de agregación y retención dedicados. #4426 (Mikhail f. Shiryaev)
- Añadir
max_execution_speed
ymax_execution_speed_bytes
para limitar el uso de recursos. Añadirmin_execution_speed_bytes
para complementar elmin_execution_speed
. #4430 (Invierno Zhang) - Función implementada
flatten
. #4555 #4409 (alexey-milovidov, Kzon) - Funciones añadidas
arrayEnumerateDenseRanked
yarrayEnumerateUniqRanked
(es comoarrayEnumerateUniq
pero permite ajustar la profundidad de la matriz para mirar dentro de las matrices multidimensionales). #4475 (propulsor) #4601 (alexey-milovidov) - Multiple JOINS with some restrictions: no asterisks, no complex aliases in ON/WHERE/GROUP BY/… #4462 (Artem Zuikov)
Corrección de errores
- Esta versión también contiene todas las correcciones de errores de 19.3 y 19.1.
- Se corrigió un error en los índices de omisión de datos: el orden de los gránulos después de INSERTAR era incorrecto. #4407 (Nikita Vasilev)
- Fijo
set
índice deNullable
yLowCardinality
columna. Antes de eso,set
índice conNullable
oLowCardinality
columna llevó a errorData type must be deserialized with multiple streams
mientras se selecciona. #4594 (Nikolai Kochetov) - Establecer correctamente update_time en completo
executable
actualización del diccionario. #4551 (Tema Novikov) - Arreglar la barra de progreso rota en 19.3. #4627 (filimonov)
- Se corrigieron los valores inconsistentes de MemoryTracker cuando se redujo la región de la memoria, en ciertos casos. #4619 (alexey-milovidov)
- Comportamiento indefinido fijo en ThreadPool. #4612 (alexey-milovidov)
- Se corrigió un accidente muy raro con el mensaje
mutex lock failed: Invalid argument
eso podría suceder cuando una tabla MergeTree se eliminó simultáneamente con un SELECT. #4608 (Método de codificación de datos:) - Compatibilidad del controlador ODBC con
LowCardinality
tipo de datos. #4381 (propulsor) - FreeBSD: Arreglo para
AIOcontextPool: Found io_event with unknown id 0
error. #4438 (urgordeadbeef) system.part_log
se creó independientemente de la configuración. #4483 (alexey-milovidov)- Repara el comportamiento indefinido en
dictIsIn
función para los diccionarios de caché. #4515 (alesapin) - Fixed a deadlock when a SELECT query locks the same table multiple times (e.g. from different threads or when executing multiple subqueries) and there is a concurrent DDL query. #4535 (Método de codificación de datos:)
- Deshabilite compile_expressions de forma predeterminada hasta que obtengamos el propio
llvm
contrib y puede probarlo conclang
yasan
. #4579 (alesapin) - Prevenir
std::terminate
cuandoinvalidate_query
paraclickhouse
fuente de diccionario externo ha devuelto un conjunto de resultados incorrecto (vacío o más de una fila o más de una columna). Solucionado el problema cuandoinvalidate_query
se realizó cada cinco segundos independientemente de lalifetime
. #4583 (alexey-milovidov) - Evite el punto muerto cuando
invalidate_query
para un diccionario conclickhouse
fuente estaba involucrandosystem.dictionaries
mesa oDictionaries
base de datos (caso raro). #4599 (alexey-milovidov) - Correcciones para CROSS JOIN con WHERE vacío. #4598 (Artem Zuikov)
- Segfault fijo en la función “replicate” cuando se pasa el argumento constante. #4603 (alexey-milovidov)
- Repara la función lambda con el optimizador de predicados. #4408 (Invierno Zhang)
- Múltiples JOINs múltiples correcciones. #4595 (Artem Zuikov)
Mejora
- Soporte alias en la sección JOIN ON para columnas de la tabla derecha. #4412 (Artem Zuikov)
- El resultado de múltiples JOIN necesita nombres de resultados correctos para ser utilizados en subselecciones. Reemplace los alias planos con nombres de origen en el resultado. #4474 (Artem Zuikov)
- Mejorar la lógica push-down para sentencias unidas. #4387 (Ivan)
Mejoras de rendimiento
- Heurística mejorada de “move to PREWHERE” optimización. #4405 (alexey-milovidov)
- Use tablas de búsqueda adecuadas que usen la API de HashTable para claves de 8 bits y 16 bits. #4536 (Amos pájaro)
- Mejora del rendimiento de la comparación de cadenas. #4564 (alexey-milovidov)
- Limpie la cola DDL distribuida en un subproceso separado para que no ralentice el bucle principal que procesa las tareas DDL distribuidas. #4502 (Método de codificación de datos:)
- Cuando
min_bytes_to_use_direct_io
se establece en 1, no todos los archivos se abrieron con el modo O_DIRECT porque el tamaño de los datos a leer a veces se subestimó por el tamaño de un bloque comprimido. #4526 (alexey-milovidov)
Mejora de la construcción/prueba/empaquetado
- Se agregó soporte para clang-9 #4604 (alexey-milovidov)
- Arreglar mal
__asm__
instrucciones (de nuevo) #4621 (Konstantin Podshumok) - Añadir capacidad para especificar la configuración para
clickhouse-performance-test
desde la línea de comandos. #4437 (alesapin) - Agregue pruebas de diccionarios a las pruebas de integración. #4477 (alesapin)
- Se agregaron consultas desde el punto de referencia en el sitio web a pruebas de rendimiento automatizadas. #4496 (alexey-milovidov)
xxhash.h
no existe en lz4 externo porque es un detalle de implementación y sus símbolos tienen un espacio de nombres conXXH_NAMESPACE
macro. Cuando lz4 es externo, xxHash también tiene que ser externo, y los dependientes tienen que vincularlo. #4495 (Películas De Sexo)- Se corrigió un caso cuando
quantileTiming
se puede llamar a la función de agregado con argumento de punto negativo o flotante (esto corrige la prueba de fuzz con un desinfectante de comportamiento indefinido). #4506 (alexey-milovidov) - Corrección de errores de ortografía. #4531 (sdk2)
- Corregir la compilación en Mac. #4371 (Vitaly Baranov)
- Construir correcciones para FreeBSD y varias configuraciones de compilación inusuales. #4444 (propulsor)
Lanzamiento de ClickHouse 19.3
Lanzamiento de ClickHouse 19.3.9.1, 2019-04-02
Corrección de errores
- Fix crash en
FULL/RIGHT JOIN
cuando nos unimos en nullable vs no nullable. #4855 (Artem Zuikov) - Fijar falla de segmentación en
clickhouse-copier
. #4835 (propulsor) - Lectura fija de
Array(LowCardinality)
columna en caso raro cuando la columna contenía una larga secuencia de matrices vacías. #4850 (Nikolai Kochetov)
Mejora de la construcción/prueba/empaquetado
- Agregue una forma de iniciar una imagen de clickhouse-server desde un usuario personalizado #4753 (Mikhail f. Shiryaev)
Lanzamiento de ClickHouse 19.3.7, 2019-03-12
Corrección de errores
- Corregido el error en # 3920. Este error se manifiesta como corrupción de caché aleatoria (mensajes
Unknown codec family code
,Cannot seek through file
) y segfaults. Este error apareció por primera vez en la versión 19.1 y está presente en las versiones hasta 19.1.10 y 19.3.6. #4623 (alexey-milovidov)
Lanzamiento de ClickHouse 19.3.6, 2019-03-02
Corrección de errores
- Cuando hay más de 1000 subprocesos en un grupo de subprocesos,
std::terminate
puede suceder en la salida del hilo. Azat Khuzhin #4485 #4505 (alexey-milovidov) - Ahora es posible crear
ReplicatedMergeTree*
tablas con comentarios sobre columnas sin valores predeterminados y tablas con códecs de columnas sin comentarios y valores predeterminados. También corrige la comparación de códecs. #4523 (alesapin) - Se corrigió el fallo en JOIN con matriz o tupla. #4552 (Artem Zuikov)
- Se corrigió el fallo en el clickhouse-copiadora con el mensaje
ThreadStatus not created
. #4540 (Artem Zuikov) - Se corrigió el bloqueo en el cierre del servidor si se usaban DDL distribuidos. #4472 (Método de codificación de datos:)
- Se imprimieron números de columna incorrectos en un mensaje de error sobre el análisis de formato de texto para columnas con un número mayor que 10. #4484 (alexey-milovidov)
Mejoras de compilación / prueba / empaquetado
- Compilación fija con AVX habilitado. #4527 (alexey-milovidov)
- Habilite la contabilidad extendida y la contabilidad IO basada en una versión buena conocida en lugar del kernel bajo el cual se compila. #4541 (Nombre de la red inalámbrica (SSID):)
- Permitir omitir la configuración de core_dump.size_limit, advertencia en lugar de lanzar si el conjunto de límites falla. #4473 (propulsor)
- Eliminado el
inline
etiquetas devoid readBinary(...)
enField.cpp
. También se fusionó redundantenamespace DB
bloque. #4530 (Hcz)
Lanzamiento de ClickHouse 19.3.5, 2019-02-21
Corrección de errores
- Se corrigió un error con el procesamiento de grandes consultas de inserción http. #4454 (alesapin)
- Se corrigió la incompatibilidad hacia atrás con versiones antiguas debido a una implementación incorrecta de
send_logs_level
configuración. #4445 (alexey-milovidov) - Incompatibilidad hacia atrás fija de la función de la tabla
remote
introducido con comentarios de columna. #4446 (alexey-milovidov)
Lanzamiento de ClickHouse 19.3.4, 2019-02-16
Mejora
- El tamaño del índice de tabla no se tiene en cuenta los límites de memoria al hacer
ATTACH TABLE
consulta. Evitó la posibilidad de que una tabla no se pueda adjuntar después de haber sido separada. #4396 (alexey-milovidov) - Levantó ligeramente el límite en el tamaño máximo de cadena y matriz recibido de ZooKeeper. Permite continuar trabajando con un mayor tamaño de
CLIENT_JVMFLAGS=-Djute.maxbuffer=...
en ZooKeeper. #4398 (alexey-milovidov) - Permitir reparar réplicas abandonadas incluso si ya tiene una gran cantidad de nodos en su cola. #4399 (alexey-milovidov)
- Agregue un argumento requerido a
SET
índice (número máximo de filas almacenadas). #4386 (Nikita Vasilev)
Corrección de errores
- Fijo
WITH ROLLUP
resultado para grupo por soloLowCardinality
clave. #4384 (Nikolai Kochetov) - Se corrigió un error en el índice establecido (dejando caer un gránulo si contiene más de
max_rows
filas). #4386 (Nikita Vasilev) - Muchas correcciones de compilación de FreeBSD. #4397 (propulsor)
- Se corrigió la sustitución de alias en consultas con subconsulta que contenía el mismo alias (problema #4110). #4351 (Artem Zuikov)
Mejoras de compilación / prueba / empaquetado
- Añadir capacidad de ejecutar
clickhouse-server
para pruebas sin estado en la imagen de la ventana acoplable. #4347 (Vasily Nemkov)
Lanzamiento de ClickHouse 19.3.3, 2019-02-13
Novedad
- Se agregó el
KILL MUTATION
declaración que permite eliminar mutaciones que por alguna razón están atascadas. Añadirlatest_failed_part
,latest_fail_time
,latest_fail_reason
campos a lasystem.mutations
mesa para una solución de problemas más fácil. #4287 (Método de codificación de datos:) - Función agregada agregada
entropy
que calcula la entropía de Shannon. #4238 (Quid37) - Añadida la capacidad de enviar consultas
INSERT INTO tbl VALUES (....
al servidor sin dividir enquery
ydata
parte. #4301 (alesapin) - Implementación genérica de
arrayWithConstant
se añadió la función. #4322 (alexey-milovidov) - Aplicado
NOT BETWEEN
operador de comparación. #4228 (Dmitry Naumov) - Implementar
sumMapFiltered
para poder limitar el número de claves para las cuales los valores se sumarán porsumMap
. #4129 (Léo Ercolanelli) - Se agregó soporte de
Nullable
tipos enmysql
función de la tabla. #4198 (Emmanuel Donin de Rosière) - Soporte para expresiones constantes arbitrarias en
LIMIT
clausula. #4246 (K3box) - Añadir
topKWeighted
función de agregado que toma argumentos adicionales con peso (entero sin signo). #4245 (Córdoba) StorageJoin
ahora soportajoin_any_take_last_row
configuración que permite sobrescribir los valores existentes de la misma clave. #3973 (Amos pájaro- Función añadida
toStartOfInterval
. #4304 (Vitaly Baranov) - Añadir
RowBinaryWithNamesAndTypes
formato. #4200 (Oleg V. Kozlyuk) - Añadir
IPv4
yIPv6
tipos de datos. Implementaciones más efectivas deIPv*
función. #3669 (Vasily Nemkov) - Función añadida
toStartOfTenMinutes()
. #4298 (Vitaly Baranov) - Añadir
Protobuf
formato de salida. #4005 #4158 (Vitaly Baranov) - Añadido soporte brotli para la interfaz HTTP para la importación de datos (INSERTs). #4235 (Mijaíl)
- Se agregaron consejos mientras el usuario hace un error tipográfico en el nombre de la función o escribe el cliente de línea de comandos. #4239 (Más información)
- Añadir
Query-Id
al encabezado de respuesta HTTP del servidor. #4231 (Mijaíl)
Experimental Características
- Añadir
minmax
yset
Índices de saltos de datos para la familia de motores de tablas MergeTree. #4143 (Nikita Vasilev) - Añadido conversión de
CROSS JOIN
aINNER JOIN
si es posible. #4221 #4266 (Artem Zuikov)
Corrección de errores
- Fijo
Not found column
para columnas duplicadas enJOIN ON
apartado. #4279 (Artem Zuikov) - Hacer
START REPLICATED SENDS
comando iniciar envíos replicados. #4229 (Nombre de la red inalámbrica (SSID):) - Ejecución de funciones agregadas fijas con
Array(LowCardinality)
argumento. #4055 (KochetovNicolai) - Corregido el comportamiento incorrecto al hacer
INSERT ... SELECT ... FROM file(...)
consulta y archivoCSVWithNames
oTSVWIthNames
formato y falta la primera fila de datos. #4297 (alexey-milovidov) - Se corrigió el fallo en la recarga del diccionario si el diccionario no está disponible. Este error apareció en 19.1.6. #4188 (propulsor)
- Fijo
ALL JOIN
con duplicados en la tabla derecha. #4184 (Artem Zuikov) - Fallo de segmentación fijo con
use_uncompressed_cache=1
y excepción con un tamaño incorrecto sin comprimir. Este error apareció en 19.1.6. #4186 (alesapin) - Fijo
compile_expressions
error con la comparación de fechas grandes (más que int16). #4341 (alesapin) - Bucle infinito fijo al seleccionar de la función de la tabla
numbers(0)
. #4280 (alexey-milovidov) - Deshabilitar temporalmente la optimización de predicados para
ORDER BY
. #3890 (Invierno Zhang) - Fijo
Illegal instruction
error al usar funciones base64 en CPU antiguas. Este error se ha reproducido solo cuando ClickHouse se compiló con gcc-8. #4275 (alexey-milovidov) - Fijo
No message received
error al interactuar con PostgreSQL ODBC Driver a través de la conexión TLS. También corrige segfault cuando se utiliza MySQL ODBC Driver. #4170 (alexey-milovidov) - Se corrigió el resultado incorrecto cuando
Date
yDateTime
los argumentos se usan en ramas del operador condicional (funciónif
). Añadido caso genérico para la funciónif
. #4243 (alexey-milovidov) - Los diccionarios de ClickHouse ahora se cargan dentro
clickhouse
proceso. #4166 (alexey-milovidov) - Se corrigió el punto muerto cuando
SELECT
de una mesa conFile
el motor fue reintentado despuésNo such file or directory
error. #4161 (alexey-milovidov) - Condición de carrera fija al seleccionar entre
system.tables
puede dartable doesn't exist
error. #4313 (alexey-milovidov) clickhouse-client
puede segfault al salir mientras carga datos para sugerencias de línea de comandos si se ejecutó en modo interactivo. #4317 (alexey-milovidov)- Se ha corregido un error cuando la ejecución de mutaciones que contienen
IN
Los operadores estaban produciendo resultados incorrectos. #4099 (Método de codificación de datos:) - Error corregido: si hay una base de datos con
Dictionary
motor, todos los diccionarios obligados a cargar en el inicio del servidor, y si hay un diccionario con fuente ClickHouse de localhost, el diccionario no se puede cargar. #4255 (alexey-milovidov) - Se corrigió el error cuando los registros del sistema se intentaban crear de nuevo al apagar el servidor. #4254 (alexey-milovidov)
- Devuelva correctamente el tipo correcto y maneje adecuadamente las cerraduras en
joinGet
función. #4153 (Amos pájaro) - Añadir
sumMapWithOverflow
función. #4151 (Léo Ercolanelli) - Segfault fijo con
allow_experimental_multiple_joins_emulation
. 52de2c (Artem Zuikov) - Corregido error con incorrecto
Date
yDateTime
comparación. #4237 (Valexey) - Prueba de fuzz fija bajo desinfectante de comportamiento indefinido: verificación de tipo de parámetro agregada para
quantile*Weighted
familia de funciones. #4145 (alexey-milovidov) - Se corrigió la condición de carrera rara al eliminar las piezas de datos antiguas que pueden fallar con
File not found
error. #4378 (alexey-milovidov) - Arregle el paquete de instalación con /etc/clickhouse-server/config que falta.XML. #4343 (propulsor)
Mejoras de compilación / prueba / empaquetado
- Paquete de Debian: correcto /etc/clickhouse-server/preprocessed link según config. #4205 (propulsor)
- Varias correcciones de compilación para FreeBSD. #4225 (propulsor)
- Se agregó la capacidad de crear, rellenar y soltar tablas en perftest. #4220 (alesapin)
- Se ha añadido un script para comprobar si hay duplicados incluye. #4326 (alexey-milovidov)
- Se agregó la capacidad de ejecutar consultas por índice en la prueba de rendimiento. #4264 (alesapin)
- Se sugiere instalar un paquete con símbolos de depuración. #4274 (alexey-milovidov)
- Refactorización de pruebas de rendimiento. Mejor registro y manejo de señales. #4171 (alesapin)
- Se agregaron documentos a Yandex anónimo.Conjuntos de datos Metrika. #4164 (alesapin)
- Аdded tool for converting an old month-partitioned part to the custom-partitioned format. #4195 (Método de codificación de datos:)
- Se agregaron documentos sobre dos conjuntos de datos en s3. #4144 (alesapin)
- Se agregó un script que crea un registro de cambios a partir de la descripción de las solicitudes de extracción. #4169 #4173 (KochetovNicolai) (KochetovNicolai)
- Se agregó un módulo de marionetas para ClickHouse. #4182 (Maxim Fedotov)
- Se agregaron documentos para un grupo de funciones no documentadas. #4168 (Invierno Zhang)
- ARM correcciones de construcción. #4210#4306 #4291 (propulsor) (propulsor)
- Las pruebas de diccionario ahora pueden ejecutarse desde
ctest
. #4189 (propulsor) - Ahora
/etc/ssl
se utiliza como directorio predeterminado con certificados SSL. #4167 (alexey-milovidov) - Se agregó la comprobación de las instrucciones SSE y AVX al inicio. #4234 (Igr)
- La secuencia de comandos Init esperará el servidor hasta el inicio. #4281 (propulsor)
Cambios incompatibles hacia atrás
- Quitar
allow_experimental_low_cardinality_type
configuración.LowCardinality
los tipos de datos están listos para la producción. #4323 (alexey-milovidov) - Reduzca el tamaño de la caché de marca y el tamaño de la caché sin comprimir según la cantidad de memoria disponible. #4240 (Lopatin Konstantin
- Palabra clave añadida
INDEX
enCREATE TABLE
consulta. Una columna con nombreindex
debe citarse con retrocesos o comillas dobles:`index`
. #4143 (Nikita Vasilev) sumMap
ahora promueve el tipo de resultado en lugar de desbordamiento. AntiguosumMap
se puede obtener mediante el uso desumMapWithOverflow
función. #4151 (Léo Ercolanelli)
Mejoras de rendimiento
std::sort
sustituido porpdqsort
para consultas sinLIMIT
. #4236 (Evgenii Pravda)- Ahora el servidor reutiliza subprocesos del grupo de subprocesos global. Esto afecta el rendimiento en algunos casos de esquina. #4150 (alexey-milovidov)
Mejora
- Implementado soporte AIO para FreeBSD. #4305 (urgordeadbeef)
SELECT * FROM a JOIN b USING a, b
ahora volvera
yb
solo de la tabla de la izquierda. #4141 (Artem Zuikov)- Permitir
-C
opción del cliente para trabajar como-c
opcion. #4232 (syominsergey) - Ahora opción
--password
utilizado sin valor requiere contraseña de stdin. #4230 (BSD_Conqueror) - Se agregó resaltado de metacaracteres no escapados en literales de cadena que contienen
LIKE
expresiones o regex. #4327 (alexey-milovidov) - Se agregó la cancelación de las consultas de solo lectura HTTP si el socket del cliente desaparece. #4213 (Nombre de la red inalámbrica (SSID):)
- Ahora los informes del servidor progresan para mantener vivas las conexiones del cliente. #4215 (Ivan)
- Mensaje ligeramente mejor con motivo para OPTIMIZE consulta con
optimize_throw_if_noop
configuración activada. #4294 (alexey-milovidov) - Se agregó soporte de
--version
opción para el servidor de clickhouse. #4251 (Lopatin Konstantin) - Añadir
--help/-h
opción paraclickhouse-server
. #4233 (Yuriy Baranov) - Se agregó soporte para subconsultas escalares con el resultado del estado de la función agregada. #4348 (Nikolai Kochetov)
- Mejora del tiempo de apagado del servidor y ALTERa el tiempo de espera. #4372 (alexey-milovidov)
- Se ha añadido información sobre la configuración de la línea de replicado_can_become_leader en el sistema.réplicas y agregue registro si la réplica no intenta convertirse en líder. #4379 (Método de codificación de datos:)
Lanzamiento de ClickHouse 19.1
Lanzamiento de ClickHouse 19.1.14, 2019-03-14
- Error fijo
Column ... queried more than once
que puede suceder si la configuraciónasterisk_left_columns_only
se establece en 1 en caso de usarGLOBAL JOIN
conSELECT *
(caso raro). El problema no existe en 19.3 y posteriores. 6bac7d8d (Artem Zuikov)
Lanzamiento de ClickHouse 19.1.13, 2019-03-12
Esta versión contiene exactamente el mismo conjunto de parches que 19.3.7.
Lanzamiento de ClickHouse 19.1.10, 2019-03-03
Esta versión contiene exactamente el mismo conjunto de parches que 19.3.6.
Lanzamiento de ClickHouse 19.1
Lanzamiento de ClickHouse 19.1.9, 2019-02-21
Corrección de errores
- Se corrigió la incompatibilidad hacia atrás con versiones antiguas debido a una implementación incorrecta de
send_logs_level
configuración. #4445 (alexey-milovidov) - Incompatibilidad hacia atrás fija de la función de la tabla
remote
introducido con comentarios de columna. #4446 (alexey-milovidov)
Lanzamiento de ClickHouse 19.1.8, 2019-02-16
Corrección de errores
- Arregle el paquete de instalación con /etc/clickhouse-server/config que falta.XML. #4343 (propulsor)
Lanzamiento de ClickHouse 19.1
Lanzamiento de ClickHouse 19.1.7, 2019-02-15
Corrección de errores
- Devuelva correctamente el tipo correcto y maneje adecuadamente las cerraduras en
joinGet
función. #4153 (Amos pájaro) - Se corrigió el error cuando los registros del sistema se intentaban crear de nuevo al apagar el servidor. #4254 (alexey-milovidov)
- Error corregido: si hay una base de datos con
Dictionary
motor, todos los diccionarios obligados a cargar en el inicio del servidor, y si hay un diccionario con fuente ClickHouse de localhost, el diccionario no se puede cargar. #4255 (alexey-milovidov) - Se ha corregido un error cuando la ejecución de mutaciones que contienen
IN
Los operadores estaban produciendo resultados incorrectos. #4099 (Método de codificación de datos:) clickhouse-client
puede segfault al salir mientras carga datos para sugerencias de línea de comandos si se ejecutó en modo interactivo. #4317 (alexey-milovidov)- Condición de carrera fija al seleccionar entre
system.tables
puede dartable doesn't exist
error. #4313 (alexey-milovidov) - Se corrigió el punto muerto cuando
SELECT
de una mesa conFile
el motor fue reintentado despuésNo such file or directory
error. #4161 (alexey-milovidov) - Se ha solucionado un problema: los diccionarios locales de ClickHouse se cargan a través de TCP, pero deberían cargarse dentro del proceso. #4166 (alexey-milovidov)
- Fijo
No message received
error al interactuar con PostgreSQL ODBC Driver a través de la conexión TLS. También corrige segfault cuando se utiliza MySQL ODBC Driver. #4170 (alexey-milovidov) - Deshabilitar temporalmente la optimización de predicados para
ORDER BY
. #3890 (Invierno Zhang) - Bucle infinito fijo al seleccionar de la función de la tabla
numbers(0)
. #4280 (alexey-milovidov) - Fijo
compile_expressions
error con la comparación de fechas grandes (más que int16). #4341 (alesapin) - Fallo de segmentación fijo con
uncompressed_cache=1
y excepción con un tamaño incorrecto sin comprimir. #4186 (alesapin) - Fijo
ALL JOIN
con duplicados en la tabla derecha. #4184 (Artem Zuikov) - Corregido el comportamiento incorrecto al hacer
INSERT ... SELECT ... FROM file(...)
consulta y archivoCSVWithNames
oTSVWIthNames
formato y falta la primera fila de datos. #4297 (alexey-milovidov) - Ejecución de funciones agregadas fijas con
Array(LowCardinality)
argumento. #4055 (KochetovNicolai) - Paquete de Debian: correcto /etc/clickhouse-server/preprocessed link según config. #4205 (propulsor)
- Prueba de fuzz fija bajo desinfectante de comportamiento indefinido: verificación de tipo de parámetro agregada para
quantile*Weighted
familia de funciones. #4145 (alexey-milovidov) - Hacer
START REPLICATED SENDS
comando iniciar envíos replicados. #4229 (Nombre de la red inalámbrica (SSID):) - Fijo
Not found column
para columnas duplicadas en la sección JOIN ON. #4279 (Artem Zuikov) - Ahora
/etc/ssl
se utiliza como directorio predeterminado con certificados SSL. #4167 (alexey-milovidov) - Se corrigió el fallo en la recarga del diccionario si el diccionario no está disponible. #4188 (propulsor)
- Corregido error con incorrecto
Date
yDateTime
comparación. #4237 (Valexey) - Se corrigió el resultado incorrecto cuando
Date
yDateTime
los argumentos se usan en ramas del operador condicional (funciónif
). Añadido caso genérico para la funciónif
. #4243 (alexey-milovidov)
Lanzamiento de ClickHouse 19.1.6, 2019-01-24
Novedad
- Códecs de compresión personalizados por columna para tablas. #3899 #4111 (alesapin, Invierno Zhang, Anatoly)
- Añadido codec de compresión
Delta
. #4052 (alesapin) - Permitir a
ALTER
códecs de compresión. #4054 (alesapin) - Funciones añadidas
left
,right
,trim
,ltrim
,rtrim
,timestampadd
,timestampsub
para la compatibilidad estándar SQL. #3826 (Ivan Blinkov) - Soporte para escribir en
HDFS
mesas yhdfs
función de la tabla. #4084 (alesapin) - Funciones añadidas para buscar múltiples cadenas constantes de gran pajar:
multiPosition
,multiSearch
,firstMatch
también con-UTF8
,-CaseInsensitive
, y-CaseInsensitiveUTF8
variante. #4053 (Más información) - Poda de fragmentos no utilizados si
SELECT
filtros de consulta por clave sharding (configuraciónoptimize_skip_unused_shards
). #3851 (Gleb Kanterov, Ivan) - Permitir
Kafka
para ignorar cierta cantidad de errores de análisis por bloque. #4094 (Ivan) - Añadido soporte para
CatBoost
evaluación de modelos multiclase. FunciónmodelEvaluate
devuelve tupla con predicciones sin procesar por clase para modelos multiclase.libcatboostmodel.so
debe ser construido con #607. #3959 (KochetovNicolai) - Funciones añadidas
filesystemAvailable
,filesystemFree
,filesystemCapacity
. #4097 (Boris Granveaud) - Funciones hash añadidas
xxHash64
yxxHash32
. #3905 (filimonov) - Añadir
gccMurmurHash
función de hash (hash de Murmur con sabor a GCC) que usa la misma semilla de hash que Gcc #4000 (Sundyli) - Funciones hash añadidas
javaHash
,hiveHash
. #3811 (shangshujie365) - Función de tabla añadida
remoteSecure
. Funciona comoremote
, pero usa una conexión segura. #4088 (propulsor)
Experimental Características
- Se agregaron múltiples emulaciones JOINs (
allow_experimental_multiple_joins_emulation
configuración). #3946 (Artem Zuikov)
Corrección de errores
- Hacer
compiled_expression_cache_size
ajuste limitado por defecto para reducir el consumo de memoria. #4041 (alesapin) - Se corrigió un error que provocaba bloqueos en los subprocesos que realizaban ALTERs de tablas replicadas y en el subproceso que actualizaba la configuración de ZooKeeper. #2947 #3891 #3934 (Método de codificación de datos:)
- Se corrigió una condición de carrera al ejecutar una tarea ALTER distribuida. La condición de carrera provocó que más de una réplica intentara ejecutar la tarea y todas las réplicas, excepto una que fallara con un error de ZooKeeper. #3904 (Método de codificación de datos:)
- Corregir un error cuando
from_zk
Los elementos de configuración no se actualizaron después de que se agotó el tiempo de espera de una solicitud a ZooKeeper. #2947 #3947 (Método de codificación de datos:) - Corregir un error con el prefijo incorrecto para las máscaras de subred IPv4. #3945 (alesapin)
- Se corrigió el fallo (
std::terminate
) en casos excepcionales cuando no se puede crear un nuevo subproceso debido a recursos agotados. #3956 (alexey-milovidov) - Corregir error cuando está en
remote
ejecución de la función de tabla cuando se usaron restricciones incorrectas paragetStructureOfRemoteTable
. #4009 (alesapin) - Corregir una fuga de enchufes netlink. Se colocaron en un grupo donde nunca se eliminaron y se crearon nuevos sockets al comienzo de un nuevo subproceso cuando todos los sockets actuales estaban en uso. #4017 (Método de codificación de datos:)
- Corregir un error con el cierre
/proc/self/fd
directorio antes de todos los fds fueron leídos de/proc
después de bifurcarodbc-bridge
subproceso. #4120 (alesapin) - Conversión monótona de cadena a UInt fija en caso de uso de cadena en clave primaria. #3870 (Invierno Zhang)
- Se corrigió el error en el cálculo de la monotonía de la función de conversión de enteros. #3921 (alexey-milovidov)
- Segfault fijo en
arrayEnumerateUniq
,arrayEnumerateDense
funciones en caso de algunos argumentos no válidos. #3909 (alexey-milovidov) - Reparar UB en StorageMerge. #3910 (Amos pájaro)
- Segfault fijo en funciones
addDays
,subtractDays
. #3913 (alexey-milovidov) - Corregido el error: funciones
round
,floor
,trunc
,ceil
puede devolver un resultado falso cuando se ejecuta en un argumento entero y una gran escala negativa. #3914 (alexey-milovidov) - Se corrigió un error inducido por ‘kill query sync’ lo que conduce a un volcado central. #3916 (muVulDeePecker)
- Corregir un error con un largo retraso después de la cola de replicación vacía. #3928 #3932 (alesapin)
- Se corrigió el uso excesivo de memoria en caso de insertar en la tabla con
LowCardinality
clave primaria. #3955 (KochetovNicolai) - Fijo
LowCardinality
serialización paraNative
formato en caso de matrices vacías. #3907 #4011 (KochetovNicolai) - Se corrigió el resultado incorrecto al usar distinta por una sola columna numérica LowCardinality. #3895 #4012 (KochetovNicolai)
- Se corrigió la agregación especializada con la clave LowCardinality (en caso de
compile
está habilitada la configuración). #3886 (KochetovNicolai) - Corregir el reenvío de usuarios y contraseñas para consultas de tablas replicadas. #3957 (alesapin) (小路)
- Se corrigió una condición de carrera muy rara que puede ocurrir al enumerar tablas en la base de datos de diccionarios mientras recargaba diccionarios. #3970 (alexey-milovidov)
- Se corrigió el resultado incorrecto cuando se usaba HAVING con ROLLUP o CUBE. #3756 #3837 (Más información)
- Se corrigieron alias de columna para consultas con
JOIN ON
sintaxis y tablas distribuidas. #3980 (Invierno Zhang) - Se corrigió un error en la implementación interna de
quantileTDigest
(encontrado por Artem Vakhrushev). Este error nunca ocurre en ClickHouse y fue relevante solo para aquellos que usan la base de código ClickHouse como una biblioteca directamente. #3935 (alexey-milovidov)
Mejora
- Soporte para
IF NOT EXISTS
enALTER TABLE ADD COLUMN
declaraciones junto conIF EXISTS
enDROP/MODIFY/CLEAR/COMMENT COLUMN
. #3900 (Boris Granveaud) - Función
parseDateTimeBestEffort
: soporte para formatosDD.MM.YYYY
,DD.MM.YY
,DD-MM-YYYY
,DD-Mon-YYYY
,DD/Month/YYYY
y similares. #3922 (alexey-milovidov) CapnProtoInputStream
ahora soportan estructuras dentadas. #4063 (Odin Hultgren Van Der Horst)- Mejora de la usabilidad: se agregó una verificación de que el proceso del servidor se inicia desde el propietario del directorio de datos. No permita iniciar el servidor desde la raíz si los datos pertenecen a un usuario no root. #3785 (Más información)
- Mejor lógica de verificación de columnas requeridas durante el análisis de consultas con JOINs. #3930 (Artem Zuikov)
- Disminución del número de conexiones en caso de un gran número de tablas distribuidas en un único servidor. #3726 (Invierno Zhang)
- Fila de totales admitidos para
WITH TOTALS
consulta para el controlador ODBC. #3836 (Maksim Koritckiy) - Permitido utilizar
Enum
s como enteros dentro de la función if. #3875 (Ivan) - Añadir
low_cardinality_allow_in_native_format
configuración. Si está desactivado, no utiliceLowCadrinality
escriba enNative
formato. #3879 (KochetovNicolai) - Se eliminaron algunos objetos redundantes de la caché de expresiones compiladas para reducir el uso de memoria. #4042 (alesapin)
- Añadir comprobar que
SET send_logs_level = 'value'
consulta acepta el valor apropiado. #3873 (Sabyanin Maxim) - Verificación de tipo de datos fijos en las funciones de conversión de tipo. #3896 (Invierno Zhang)
Mejoras de rendimiento
- Agregar una configuración MergeTree
use_minimalistic_part_header_in_zookeeper
. Si está habilitada, las tablas replicadas almacenarán metadatos de piezas compactas en un único znode de piezas. Esto puede reducir drásticamente el tamaño de la instantánea ZooKeeper (especialmente si las tablas tienen muchas columnas). Tenga en cuenta que después de habilitar esta configuración, no podrá degradar a una versión que no la admita. #3960 (Método de codificación de datos:) - Agregar una implementación basada en DFA para funciones
sequenceMatch
ysequenceCount
en caso de que el patrón no contenga tiempo. #4004 (Léo Ercolanelli) - Mejora del rendimiento para la serialización de números enteros. #3968 (Amos pájaro)
- Cero a la izquierda relleno PODArray de modo que -1 elemento es siempre válido y puesto a cero. Se utiliza para el cálculo sin ramas de compensaciones. #3920 (Amos pájaro)
- Revertir
jemalloc
versión que conducen a la degradación del rendimiento. #4018 (alexey-milovidov)
Cambios incompatibles hacia atrás
- Se eliminó la función no documentada
ALTER MODIFY PRIMARY KEY
porque fue reemplazado por elALTER MODIFY ORDER BY
comando. #3887 (Método de codificación de datos:) - Función eliminada
shardByHash
. #3833 (alexey-milovidov) - Prohibir el uso de subconsultas escalares con el resultado del tipo
AggregateFunction
. #3865 (Ivan)
Mejoras de compilación / prueba / empaquetado
- Añadido soporte para PowerPC (
ppc64le
) construir. #4132 (Más información) - Las pruebas funcionales con estado se ejecutan en el conjunto de datos público disponible. #3969 (alexey-milovidov)
- Se corrigió el error cuando el servidor no puede comenzar con el
bash: /usr/bin/clickhouse-extract-from-config: Operation not permitted
mensaje dentro de Docker o systemd-nspawn. #4136 (alexey-milovidov) - Actualizar
rdkafka
Biblioteca a v1.0.0-RC5. Usado cppkafka en lugar de la interfaz C sin procesar. #4025 (Ivan) - Actualizar
mariadb-client
biblioteca. Se corrigió uno de los problemas encontrados por UBSan. #3924 (alexey-milovidov) - Algunas correcciones para compilaciones de UBSan. #3926 #3021 #3948 (alexey-milovidov)
- Se agregaron ejecuciones de pruebas por compromiso con la compilación de UBSan.
- Se agregaron ejecuciones por compromiso del analizador estático PVS-Studio.
- Corregidos errores encontrados por PVS-Studio. #4013 (alexey-milovidov)
- Se corrigieron problemas de compatibilidad con glibc. #4100 (alexey-milovidov)
- Mueva las imágenes de Docker a 18.10 y agregue el archivo de compatibilidad para glibc> = 2.28 #3965 (alesapin)
- Agregue la variable env si el usuario no desea chown directorios en la imagen Docker del servidor. #3967 (alesapin)
- Habilitado la mayoría de las advertencias de
-Weverything
en clang. Permitir-Wpedantic
. #3986 (alexey-milovidov) - Se agregaron algunas advertencias más que están disponibles solo en clang 8. #3993 (alexey-milovidov)
- Enlace a
libLLVM
en lugar de a las librerías LLVM individuales cuando se usan enlaces compartidos. #3989 (Películas De Sexo) - Se agregaron variables de desinfectante para imágenes de prueba. #4072 (alesapin)
clickhouse-server
paquete debian recomendarálibcap2-bin
paquete a utilizarsetcap
herramienta para el establecimiento de capacidades. Esto es opcional. #4093 (alexey-milovidov)- Mejora del tiempo de compilación, fijo incluye. #3898 (propulsor)
- Se agregaron pruebas de rendimiento para funciones hash. #3918 (filimonov)
- Se corrigieron las dependencias de la biblioteca cíclica. #3958 (propulsor)
- Compilación mejorada con poca memoria disponible. #4030 (propulsor)
- Se agregó script de prueba para reproducir la degradación del rendimiento en
jemalloc
. #4036 (alexey-milovidov) - Se corrigieron errores ortográficos en comentarios y literales de cadena bajo
dbms
. #4122 (maiha) - Se corrigieron errores tipográficos en los comentarios. #4089 (Evgenii Pravda)