mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-19 22:22:00 +00:00
d91c97d15d
* Replace underscores with hyphens * remove temporary code * fix style check * fix collapse
281 KiB
281 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | b111334d66 |
77 | 2019 |
碌莽禄.拢.0755-88888888
ClickHouse释放v19.17.6.36,2019-12-27
错误修复
- 在解压缩固定潜在的缓冲区溢出。 恶意用户可以传递制造的压缩数据,可能导致缓冲区后读取。 这个问题是由Yandex信息安全团队的Eldar Zaitov发现的。 #8404 (阿列克谢-米洛维多夫)
- 修正了可能的服务器崩溃 (
std::terminate
)当服务器不能发送或写入JSON或XML格式的数据与字符串数据类型的值(需要UTF-8验证),或者当压缩结果数据与Brotli算法或在其他一些罕见的情况下。 #8384 (阿列克谢-米洛维多夫) - 从clickhouse源固定字典
VIEW
,现在阅读这样的字典不会导致错误There is no query
. #8351 (尼古拉*科切托夫) - 修复了用户中指定的host_regexp是否允许客户端主机的检查。xml #8241, #8342 (维塔利*巴拉诺夫)
RENAME TABLE
对于分布式表,现在在发送到分片之前重命名包含插入数据的文件夹。 这解决了连续重命名的问题tableA->tableB
,tableC->tableA
. #8306 (tavplubix)range_hashed
DDL查询创建的外部字典现在允许任意数字类型的范围。 #8275 (阿利沙平)- 固定
INSERT INTO table SELECT ... FROM mysql(...)
表功能。 #8234 (tavplubix) - 修复段错误
INSERT INTO TABLE FUNCTION file()
同时插入到一个不存在的文件。 现在在这种情况下,文件将被创建,然后插入将被处理。 #8177 (Olga Khvostikova) - 修正了聚合位图和标量位图相交时的位图和错误。 #8082 (黄月)
- 修复段错误时
EXISTS
查询没有使用TABLE
或DICTIONARY
预选赛,就像EXISTS t
. #8213 (阿列克谢-米洛维多夫) - 函数的固定返回类型
rand
和randConstant
在可为空的参数的情况下。 现在函数总是返回UInt32
而且从来没有Nullable(UInt32)
. #8204 (尼古拉*科切托夫) - 固定
DROP DICTIONARY IF EXISTS db.dict
,现在它不会抛出异常,如果db
根本不存在 #8185 (维塔利*巴拉诺夫) - 如果由于服务器崩溃而未完全删除表,服务器将尝试恢复并加载它 #8176 (tavplubix)
- 修正了一个简单的计数查询分布式表,如果有两个以上的分片本地表。 #8164 (小路)
- 修正了导致DB::BlockStreamProfileInfo::calculateRowsBeforeLimit数据竞赛的错误() #8143 (亚历山大*卡扎科夫)
- 固定
ALTER table MOVE part
在合并指定部件后立即执行,这可能导致移动指定部件合并到的部件。 现在它正确地移动指定的部分。 #8104 (Vladimir Chebotarev) - 字典的表达式现在可以指定为字符串。 这对于从非ClickHouse源中提取数据时计算属性非常有用,因为它允许对这些表达式使用非ClickHouse语法。 #8098 (阿利沙平)
- 修正了一个非常罕见的比赛
clickhouse-copier
由于ZXid的溢出。 #8088 (丁香飞) - 修复了查询失败后的错误(由于 “Too many simultaneous queries” 例如)它不会读取外部表信息,并且
下一个请求会将此信息解释为下一个查询的开始,导致如下错误
Unknown packet from client
. #8084 (Azat Khuzhin) - 避免空取消引用后 “Unknown packet X from server” #8071 (Azat Khuzhin)
- 恢复对所有ICU区域设置的支持,添加对常量表达式应用排序规则的能力,并将语言名称添加到系统。排序规则表。 #8051 (阿利沙平)
- 用于读取的流数
StorageFile
和StorageHDFS
现在是有限的,以避免超过内存限制。 #7981 (阿利沙平) - 固定
CHECK TABLE
查询为*MergeTree
表没有关键. #7979 (阿利沙平) - 如果没有突变,则从部件名称中删除突变编号。 这种删除提高了与旧版本的兼容性。 #8250 (阿利沙平)
- 修复了某些附加部分因data_version大于表突变版本而跳过突变的问题。 #7812 (余志昌)
- 允许在将部件移动到其他设备后使用冗余副本启动服务器。 #7810 (Vladimir Chebotarev)
- 修正了错误 “Sizes of columns doesn’t match” 使用聚合函数列时可能会出现。 #7790 (Boris Granveaud)
- 现在在使用WITH TIES和LIMIT BY的情况下,将抛出一个异常。 现在可以使用TOP with LIMIT BY。 #7637 (尼基塔*米哈伊洛夫)
- 修复字典重新加载,如果它有
invalidate_query
,停止更新,并在以前的更新尝试一些异常。 #8029 (阿利沙平)
ClickHouse释放v19.17.4.11时,2019-11-22
向后不兼容的更改
- 使用列而不是AST来存储标量子查询结果以获得更好的性能。 设置
enable_scalar_subquery_optimization
在19.17中添加,默认情况下启用。 它会导致以下错误 这 在从以前的版本升级到19.17.2或19.17.3期间。 默认情况下,19.17.4中禁用此设置,以便可以从19.16及更早版本升级而不会出现错误。 #7392 (阿莫斯鸟)
新功能
- 添加使用DDL查询创建字典的功能。 #7360 (阿利沙平)
- 赂眉露>>
bloom_filter
支持的索引类型LowCardinality
和Nullable
#7363 #7561 (尼古拉*科切托夫) - 添加功能
isValidJSON
要检查传递的字符串是否是有效的json。 #5910 #7293 (Vdimir) - 执行
arrayCompact
功能 #7328 (备忘录) - 创建函数
hex
对于十进制数。 它的工作原理如下hex(reinterpretAsString())
,但不会删除最后的零字节。 #7355 (米哈伊尔*科罗托夫) - 添加
arrayFill
和arrayReverseFill
函数,用数组中其他元素替换它们前面/后面的元素。 #7380 (hcz) - 添加
CRC32IEEE()
/CRC64()
碌莽禄support: #7480 (Azat Khuzhin) - 执行
char
功能类似于一个 mysql #7486 (sundyli) - 添加
bitmapTransform
功能。 它将位图中的值数组转换为另一个值数组,结果是一个新的位图 #7598 (余志昌) - 已实施
javaHashUTF16LE()
功能 #7651 (achimbab) - 添加
_shard_num
分布式引擎的虚拟列 #7624 (Azat Khuzhin)
实验特点
错误修复
- 修复不正确的浮点解析
Values
#7817 #7870 (tavplubix) - 修复启用trace_log时可能发生的罕见死锁。 #7838 (filimonov)
- 当生成Kafka表时有任何从中选择的Mv时,防止消息重复 #7265 (伊万)
- 支持
Array(LowCardinality(Nullable(String)))
在IN
. 决定 #7364 #7366 (achimbab) - 添加处理
SQL_TINYINT
和SQL_BIGINT
,并修复处理SQL_FLOAT
ODBC桥中的数据源类型。 #7491 (Denis Glazachev) - 修复聚合 (
avg
和分位数)在空的十进制列 #7431 (安德烈*科尼亚耶夫) - 修复
INSERT
变成分布式MATERIALIZED
列 #7377 (Azat Khuzhin) - 赂眉露>>
MOVE PARTITION
如果分区的某些部分已经在目标磁盘或卷上,则可以工作 #7434 (Vladimir Chebotarev) - 修正了在突变过程中无法创建硬链接的错误
ReplicatedMergeTree
在多磁盘配置。 #7558 (Vladimir Chebotarev) - 修复了当整个部分保持不变并且在另一个磁盘上找到最佳空间时,MergeTree上出现突变的错误 #7602 (Vladimir Chebotarev)
- 修正错误
keep_free_space_ratio
未从磁盘读取配置 #7645 (Vladimir Chebotarev) - 修正错误与表只包含
Tuple
列或具有复杂路径的列。 修复 7541. #7545 (阿利沙平) - 在max_memory_usage限制中不考虑缓冲区引擎的内存 #7552 (Azat Khuzhin)
- 修复最终标记用法
MergeTree
表排序tuple()
. 在极少数情况下,它可能会导致Can't adjust last granule
选择时出错。 #7639 (安东*波波夫) - 修复了需要上下文操作(例如json函数)的谓词突变中的错误,这可能会导致崩溃或奇怪的异常。 #7664 (阿利沙平)
- 修复转义的数据库和表名称不匹配
data/
和shadow/
目录 #7575 (Alexander Burmak) - Support duplicated keys in RIGHT|FULL JOINs, e.g.
ON t.x = u.x AND t.x = u.y
. 在这种情况下修复崩溃。 #7586 (Artem Zuikov) - 修复
Not found column <expression> in block
当加入表达式与权利或完全连接。 #7641 (Artem Zuikov) - 再次尝试修复无限循环
PrettySpace
格式 #7591 (Olga Khvostikova) - 修复bug
concat
函数时,所有的参数FixedString
同样大小的 #7635 (阿利沙平) - 在定义S3,URL和HDFS存储时使用1个参数的情况下修复了异常。 #7618 (Vladimir Chebotarev)
- 修复查询视图的InterpreterSelectQuery的范围 #7601 (Azat Khuzhin)
改进
Nullable
ODBC-bridge可识别的列和正确处理的NULL值 #7402 (瓦西里*内姆科夫)- 以原子方式写入分布式发送的当前批次 #7600 (Azat Khuzhin)
- 如果我们无法在查询中检测到列名称的表,则引发异常。 #7358 (Artem Zuikov)
- 添加
merge_max_block_size
设置为MergeTreeSettings
#7412 (Artem Zuikov) - 查询与
HAVING
而没有GROUP BY
假设按常量分组。 所以,SELECT 1 HAVING 1
现在返回一个结果。 #7496 (阿莫斯鸟) - 支持解析
(X,)
作为类似python的元组。 #7501, #7562 (阿莫斯鸟) - 赂眉露>>
range
函数行为几乎像pythonic。 #7518 (sundyli) - 添加
constraints
列到表system.settings
#7553 (维塔利*巴拉诺夫) - Tcp处理程序的更好的Null格式,以便可以使用
select ignore(<expression>) from table format Null
通过clickhouse-client进行性能测量 #7606 (阿莫斯鸟) - 查询如
CREATE TABLE ... AS (SELECT (1, 2))
正确解析 #7542 (hcz)
性能改进
- 改进了对短字符串键的聚合性能。 #6243 (Alexander Kuzmenkov, 阿莫斯鸟)
- 运行另一次语法/表达式分析以在常量谓词折叠后获得潜在的优化。 #7497 (阿莫斯鸟)
- 使用存储元信息来评估琐碎
SELECT count() FROM table;
#7510 (阿莫斯鸟, 阿列克谢-米洛维多夫) - 矢量化处理
arrayReduce
与聚合器类似addBatch
. #7608 (阿莫斯鸟) - 在性能的小改进
Kafka
消费 #7475 (伊万)
构建/测试/包装改进
- 添加对交叉编译的支持到CPU架构AARCH64。 重构打包器脚本。 #7370 #7539 (伊万)
- 在构建软件包时,将darwin-x86_64和linux-aarch64工具链解压缩到已挂载的Docker卷中 #7534 (伊万)
- 更新二进制打包器的Docker映像 #7474 (伊万)
- 修复了MacOS Catalina上的编译错误 #7585 (欧内斯特*波列塔耶夫)
- 查询分析逻辑中的一些重构:将复杂的类拆分为几个简单的类。 #7454 (Artem Zuikov)
- 修复没有子模块的构建 #7295 (proller)
- 更好
add_globs
在CMake文件中 #7418 (阿莫斯鸟) - 删除硬编码路径
unwind
目标 #7460 (Konstantin Podshumok) - 允许在没有ssl的情况下使用mysql格式 #7524 (proller)
其他
- 为ClickHouse SQL方言添加了ANTLR4语法 #7595 #7596 (阿列克谢-米洛维多夫)
碌莽禄.拢.0755-88888888
ClickHouse版本v19.16.14.65,2020-03-25
ClickHouse释放v19.16.14.65,2020-03-05
- 修复分布式子查询与旧版本的CH不兼容。 修复 #7851 (tabplubix)
- 执行时
CREATE
查询,在存储引擎参数中折叠常量表达式。 将空数据库名称替换为当前数据库。 修复 #6508, #3492. 还修复检查本地地址ClickHouseDictionarySource
. #9262 (tabplubix) - 现在背景合并
*MergeTree
表引擎家族更准确地保留存储策略卷顺序。 #8549 (Vladimir Chebotarev) - 防止丢失数据
Kafka
在极少数情况下,在读取后缀之后但在提交之前发生异常。 修复 #9378. 相关: #7175 #9507 (菲利蒙诺夫) - 修复尝试使用/删除时导致服务器终止的错误
Kafka
使用错误的参数创建的表。 修复 #9494. 结合 #9507. #9513 (菲利蒙诺夫) - 允许使用
MaterializedView
与上面的子查询Kafka
桌子 #8197 (filimonov)
新功能
- 添加
deduplicate_blocks_in_dependent_materialized_views
用于控制具有实例化视图的表中幂等插入的行为的选项。 这个新功能是由Altinity的特殊要求添加到错误修正版本中的。 #9070 (urykhy)
ClickHouse发布版本v19.16.2.2,2019-10-30
向后不兼容的更改
- 为count/counIf添加缺失的验证。 #7095 #7298 (Vdimir)
- 删除旧版
asterisk_left_columns_only
设置(默认情况下禁用)。 #7335 (阿尔乔姆 Zuikov) - 模板数据格式的格式字符串现在在文件中指定。 #7118 (tavplubix)
新功能
- 引入uniqCombined64()来计算大于UINT_MAX的基数。 #7213, #7222 (Azat Khuzhin)
- 支持数组列上的Bloom filter索引。 #6984 (achimbab)
- 添加函数
getMacro(name)
返回与相应值的字符串<macros>
从服务器配置. #7240 (阿列克谢-米洛维多夫) - 为基于HTTP源的字典设置两个配置选项:
credentials
和http-headers
. #7092 (纪尧姆 Tassery) - 添加新的ProfileEvent
Merge
这计算启动的背景合并的数量。 #7093 (米哈伊尔 科罗托夫) - 添加返回完全限定域名的fullHostName函数。 #7263 #7291 (sundyli)
- 添加功能
arraySplit
和arrayReverseSplit
通过拆分数组 “cut off” 条件。 它们在时间序列处理中非常有用。 #7294 (hcz) - 添加返回multiMatch函数系列中所有匹配索引的数组的新函数。 #7299 (Danila 库特宁)
- 添加新的数据库引擎
Lazy
即针对存储大量小日志进行了优化 桌子 #7171 (尼基塔 Vasilev) - 为位图列添加聚合函数groupBitmapAnd,-或-Xor。 #7109 (知昌 阿优)
- 添加聚合函数组合器-OrNull和-OrDefault,它们返回null 或默认值时没有任何聚合。 #7331 (hcz)
- 引入支持自定义转义的CustomSeparated数据格式 分隔符规则。 #7118 (tavplubix)
- 支持Redis作为外部字典的来源。 #4361 #6962 (comunodi, 安东 波波夫)
错误修复
- 修复错误的查询结果,如果它有
WHERE IN (SELECT ...)
部分和optimize_read_in_order
是 使用。 #7371 (安东 波波夫) - 禁用MariaDB身份验证插件,这取决于项目之外的文件。 #7140 (尤里 巴拉诺夫)
- 修复异常
Cannot convert column ... because it is constant but values of constants are different in source and result
这可能很少发生,当功能now()
,today()
,yesterday()
,randConstant()
被使用。 #7156 (尼古拉 Kochetov) - 修复了使用HTTP保持活动超时而不是TCP保持活动超时的问题。 #7351 (瓦西里 Nemkov)
- 修复了groupBitmapOr中的分段错误(问题 #7109). #7289 (知昌 阿优)
- 对于实例化视图,在写入所有数据之后调用kafka的提交。 #7175 (伊万)
- 修复错误
duration_ms
值system.part_log
桌子 这是十次关闭。 #7172 (弗拉基米尔 Chebotarev) - 快速修复解决实时查看表中的崩溃并重新启用所有实时查看测试。 #7201 (vzakaznikov)
- 在MergeTree部件的最小/最大索引中正确序列化NULL值。 #7234 (亚历山大 库兹门科夫)
- 不要把虚拟列。创建表时的sql元数据
CREATE TABLE AS
. #7183 (伊万) - 修复分段故障
ATTACH PART
查询。 #7185 (阿利沙平) - 修复了子查询中empty和empty优化给出的某些查询的错误结果 INNER/RIGHT JOIN. #7284 (尼古拉 Kochetov)
- 修复LIVE VIEW getHeader()方法中的AddressSanitizer错误。 #7271 (vzakaznikov)
改进
- 在queue_wait_max_ms等待发生的情况下添加消息。 #7390 (Azat Khuzhin)
- 制作设置
s3_min_upload_part_size
表级别。 #7059 (弗拉基米尔 Chebotarev) - 检查Ttl在StorageFactory。 #7304 (sundyli)
- 在部分合并连接(优化)中压缩左侧块。 #7122 (阿尔乔姆 Zuikov)
- 不允许在复制表引擎的突变中使用非确定性函数,因为这 可能会在副本之间引入不一致。 #7247 (亚历山大 卡扎科夫)
- 将异常堆栈跟踪转换为字符串时禁用内存跟踪器。 它可以防止损失
类型的错误消息
Memory limit exceeded
在服务器上,这导致了Attempt to read after eof
客户端上的例外。 #7264 (尼古拉*科切托夫) - 其他格式改进。 决定 #6033, #2633, #6611, #6742 #7215 (tavplubix)
- ClickHouse将忽略IN运算符右侧不可转换为左侧的值 side type. Make it work properly for compound types – Array and Tuple. #7283 (亚历山大 库兹门科夫)
- 支持ASOF加入缺失的不平等。 它可以加入小于或等于变体和严格 在语法上,ASOF列的变体越来越多。 #7282 (阿尔乔姆 Zuikov)
- 优化部分合并连接。 #7070 (Artem Zuikov)
- 不要在uniqCombined函数中使用超过98K的内存。 #7236, #7270 (Azat Khuzhin)
- 在PartialMergeJoin中刷新磁盘上右连接表的部分(如果没有足够的 记忆)。 需要时加载数据。 #7186 (Artem Zuikov)
性能改进
- 通过避免数据重复加快使用const参数的joinGet。 #7359 (阿莫斯 鸟)
- 如果子查询为空,请提前返回。 #7007 (小路)
- 优化值中SQL表达式的解析。 #6781 (tavplubix)
构建/测试/包装改进
- 禁用交叉编译到Mac OS的一些贡献。 #7101 (伊万)
- 为clickhouse_common_io添加与PocoXML缺少的链接。 #7200 (Azat Khuzhin)
- 在clickhouse-test中接受多个测试过滤器参数。 #7226 (亚历山大 库兹门科夫)
- 为ARM启用musl和jemalloc。 #7300 (阿莫斯鸟)
- 已添加
--client-option
参数clickhouse-test
将其他参数传递给客户端。 #7277 (尼古拉 Kochetov) - 在rpm软件包升级时保留现有配置。 #7103 (filimonov)
- 修复PVS检测到的错误。 #7153 (阿尔乔姆 Zuikov)
- 修复达尔文的构建。 #7149 (伊万)
- glibc2.29兼容性. #7142 (阿莫斯 鸟)
- 确保dh_clean不会触及潜在的源文件。 #7205 (阿莫斯 鸟)
- 尝试避免从altinity rpm更新时发生冲突-它有单独打包的配置文件 在clickhouse服务器-常见. #7073 (filimonov)
- 优化一些头文件,以便更快地重建。 #7212, #7231 (亚历山大 库兹门科夫)
- 添加日期和日期时间的性能测试。 #7332 (瓦西里 Nemkov)
- 修复一些包含非确定性突变的测试。 #7132 (亚历山大 卡扎科夫)
- 添加构建与MemorySanitizer CI。 #7066 (Alexander Kuzmenkov)
- 避免在MetricsTransmitter中使用未初始化的值。 #7158 (Azat Khuzhin)
- 修复MemorySanitizer发现的字段中的一些问题。 #7135, #7179 (亚历山大 库兹门科夫), #7376 (阿莫斯鸟)
- 修复murmurhash32中未定义的行为。 #7388 (阿莫斯 鸟)
- 修复StoragesInfoStream中未定义的行为。 #7384 (tavplubix)
- 固定常量表达式折叠外部数据库引擎(MySQL,ODBC,JDBC)。 在上一页 版本它不适用于多个常量表达式,并且根本不适用于日期, 日期时间和UUID。 这修复 #7245 #7252 (阿列克谢-米洛维多夫)
- 在访问no_users_thread变量时修复实时查看中的ThreadSanitizer数据竞争错误。 #7353 (vzakaznikov)
- 在libcommon中摆脱malloc符号 #7134, #7065 (阿莫斯 鸟)
- 添加全局标志ENABLE_LIBRARY以禁用所有库。 #7063 (proller)
代码清理
- 概括配置存储库以准备字典的DDL。 #7155 (阿利沙平)
- 解析器字典DDL没有任何语义。 #7209 (阿利沙平)
- 将ParserCreateQuery拆分为不同的较小的解析器。 #7253 (阿利沙平)
- 在外部字典附近进行小型重构和重命名。 #7111 (阿利沙平)
- 重构一些代码以准备基于角色的访问控制。 #7235 (维塔利 巴拉诺夫)
- DatabaseOrdinary代码中的一些改进。 #7086 (尼基塔 Vasilev)
- 不要在哈希表的find()和emplace()方法中使用迭代器。 #7026 (亚历山大 库兹门科夫)
- 修正getMultipleValuesFromConfig的情况下,当参数根不为空。 #7374 (米哈伊尔*科罗托夫)
- 删除一些复制粘贴(TemporaryFile和TemporaryFileStream) #7166 (阿尔乔姆 Zuikov)
- 改进了代码的可读性一点点 (
MergeTreeData::getActiveContainingPart
). #7361 (弗拉基米尔 Chebotarev) - 等待使用本地对象的所有计划作业,如果
ThreadPool::schedule(...)
投掷 一个例外 重命名ThreadPool::schedule(...)
到ThreadPool::scheduleOrThrowOnError(...)
和 修复注释,使明显的,它可能会抛出。 #7350 (tavplubix)
ClickHouse释放19.15
ClickHouse释放19.15.4.10,2019-10-31
错误修复
- 增加了sql_tinyint和SQL_BIGINT的处理,并修复了ODBC桥中SQL_FLOAT数据源类型的处理。 #7491 (Denis Glazachev)
- 允许在移动分区中的目标磁盘或卷上有一些部分。 #7434 (Vladimir Chebotarev)
- 通过ODBC桥固定可空列中的NULL值。 #7402 (瓦西里*内姆科夫)
- 固定插入到具体化列的分布式非本地节点。 #7377 (Azat Khuzhin)
- 固定函数getMultipleValuesFromConfig。 #7374 (米哈伊尔*科罗托夫)
- 修复了使用HTTP保持活动超时而不是TCP保持活动超时的问题。 #7351 (瓦西里*内姆科夫)
- 等待所有作业在异常时完成(修复罕见的段错误)。 #7350 (tavplubix)
- 在插入Kafka表时不要推送MVs。 #7265 (伊万)
- 禁用异常堆栈的内存跟踪器。 #7264 (尼古拉*科切托夫)
- 修复了外部数据库转换查询中的错误代码。 #7252 (阿列克谢-米洛维多夫)
- 避免在MetricsTransmitter中使用未初始化的值。 #7158 (Azat Khuzhin)
- 添加了用于测试的宏的示例配置 (阿列克谢-米洛维多夫)
ClickHouse释放19.15.3.6,2019-10-09
错误修复
- 修正了哈希字典中的bad_variant。 (阿利沙平)
- 修复了附加部件查询中分段故障的错误。 (阿利沙平)
- 固定时间计算
MergeTreeData
. (Vladimir Chebotarev) - 写作完成后明确提交给Kafka。 #7175 (伊万)
- 在MergeTree部件的最小/最大索引中正确序列化NULL值。 #7234 (Alexander Kuzmenkov)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 分层存储:支持使用MergeTree引擎对表使用多个存储卷。 可以将新数据存储在SSD上,并自动将旧数据移动到HDD。 (示例). #4918 (Igr) #6489 (阿利沙平)
- 添加表函数
input
用于读取传入的数据INSERT SELECT
查询。 #5450 (palasonic1) #6832 (安东*波波夫) - 添加一个
sparse_hashed
字典布局,即在功能上等同于hashed
布局,但更高效的内存。 它使用的内存减少了大约两倍,代价是较慢的值检索。 #6894 (Azat Khuzhin) - 实现定义用户列表以访问字典的能力。 仅使用当前连接的数据库。 #6907 (纪尧姆*塔瑟里)
- 添加
LIMIT
选项SHOW
查询。 #6944 (Philipp Malkovsky) - 添加
bitmapSubsetLimit(bitmap, range_start, limit)
函数,返回最小的子集limit
设置中的值不小于range_start
. #6957 (余志昌) - 添加
bitmapMin
和bitmapMax
功能。 #6970 (余志昌) - 添加功能
repeat
有关 问题-6648 #6999 (弗林)
实验特点
- 实现(在内存中)不更改当前管道的合并联接变体。 结果按合并键进行部分排序。 设置
partial_merge_join = 1
要使用此功能。 合并联接仍在开发中。 #6940 (Artem Zuikov) - 添加
S3
发动机和表功能. 它仍在开发中(还没有身份验证支持)。 #5596 (Vladimir Chebotarev)
改进
- 从Kafka读取的每条消息都是以原子方式插入的。 这解决了Kafka引擎的几乎所有已知问题。 #6950 (伊万)
- 对分布式查询故障转移的改进。 缩短恢复时间,也是现在可配置的,可以看出
system.clusters
. #6399 (瓦西里*内姆科夫) - 直接支持枚举的数值
IN
科。 #6766 #6941 (dimarub2000) - 支持(可选,默认情况下禁用)对URL存储进行重定向。 #6914 (maqroll)
- 当具有较旧版本的客户端连接到服务器时添加信息消息。 #6893 (Philipp Malkovsky)
- 删除在分布式表中发送数据的最大退避睡眠时间限制 #6895 (Azat Khuzhin)
- 添加将配置文件事件(计数器)与累积值发送到graphite的能力。 它可以在启用
<events_cumulative>
在服务器config.xml
. #6969 (Azat Khuzhin) - 添加自动转换类型
T
到LowCardinality(T)
在类型的列中插入数据LowCardinality(T)
在本机格式通过HTTP。 #6891 (尼古拉*科切托夫) - 添加使用功能的能力
hex
不使用reinterpretAsString
为Float32
,Float64
. #7024 (米哈伊尔*科罗托夫)
构建/测试/包装改进
- 将gdb-index添加到带有调试信息的clickhouse二进制文件。 这将加快启动时间
gdb
. #6947 (阿利沙平) - 加速deb包装与补丁dpkg-deb它使用
pigz
. #6960 (阿利沙平) - 设置
enable_fuzzing = 1
启用所有项目代码的libfuzzer检测功能。 #7042 (kyprizel) - 在CI中添加拆分构建烟雾测试。 #7061 (阿利沙平)
- 添加构建与MemorySanitizer CI。 #7066 (Alexander Kuzmenkov)
- 替换
libsparsehash
与sparsehash-c11
#6965 (Azat Khuzhin)
错误修复
- 修复了大型表上复杂键的索引分析的性能下降。 这修复了#6924。 #7075 (阿列克谢-米洛维多夫)
- 修复从Kafka空主题中选择时导致段错误的逻辑错误。 #6909 (伊万)
- 修复过早的MySQL连接关闭
MySQLBlockInputStream.cpp
. #6882 (Clément Rodriguez) - 返回对非常旧的Linux内核的支持(修复 #6841) #6853 (阿列克谢-米洛维多夫)
- 修复可能的数据丢失
insert select
在输入流中的空块的情况下进行查询。 #6834 #6862 #6911 (尼古拉*科切托夫) - 修复功能
АrrayEnumerateUniqRanked
在参数中使用空数组 #6928 (proller) - 使用数组联接和全局子查询修复复杂的查询。 #6934 (伊万)
- 修复
Unknown identifier
按顺序排列和按多个联接分组的错误 #7022 (Artem Zuikov) - 固定
MSan
执行函数时发出警告LowCardinality
争论。 #7062 (尼古拉*科切托夫)
向后不兼容的更改
ClickHouse释放19.14
ClickHouse释放19.14.7.15,2019-10-02
错误修复
- 此版本还包含19.11.12.69的所有错误修复。
- 修复了19.14和早期版本之间分布式查询的兼容性。 这修复 #7068. #7069 (阿列克谢-米洛维多夫)
ClickHouse释放19.14.6.12,2019-09-19
错误修复
- 修复功能
АrrayEnumerateUniqRanked
在参数中使用空数组。 #6928 (proller) - 修复了查询中的子查询名称
ARRAY JOIN
和GLOBAL IN subquery
用化名。 如果指定了外部表名,请使用子查询别名。 #6934 (伊万)
构建/测试/包装改进
- 修复 拍打 测试
00715_fetch_merged_or_mutated_part_zookeeper
通过将其重写为shell脚本,因为它需要等待突变应用。 #6977 (亚历山大*卡扎科夫) - 修正了UBSan和MemSan功能失败
groupUniqArray
使用emtpy数组参数。 这是由于放置空PaddedPODArray
因为没有调用零单元格值的构造函数,所以将其转换为哈希表零单元格。 #6937 (阿莫斯鸟)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
WITH FILL
修饰符ORDER BY
. (继续 #5069) #6610 (安东*波波夫)WITH TIES
修饰符LIMIT
. (继续 #5069) #6610 (安东*波波夫)- 解析无引号
NULL
文字为NULL(如果设置format_csv_unquoted_null_literal_as_null=1
). 如果此字段的数据类型不可为空,则使用默认值初始化null字段(如果设置input_format_null_as_default=1
). #5990 #6055 (tavplubix) - 支持表函数路径中的通配符
file
和hdfs
. 如果路径包含通配符,则表将为只读。 使用示例:select * from hdfs('hdfs://hdfs1:9000/some_dir/another_dir/*/file{0..9}{0..9}')
和select * from file('some_dir/{some_file,another_file,yet_another}.tsv', 'TSV', 'value UInt32')
. #6092 (Olga Khvostikova) - 新
system.metric_log
表存储的值system.events
和system.metrics
具有指定的时间间隔。 #6363 #6467 (尼基塔*米哈伊洛夫) #6530 (阿列克谢-米洛维多夫) - 允许将ClickHouse文本日志写入
system.text_log
桌子 #6037 #6103 (尼基塔*米哈伊洛夫) #6164 (阿列克谢-米洛维多夫) - 在堆栈跟踪中显示私有符号(这是通过解析ELF文件的符号表来完成的)。 如果存在调试信息,则在堆栈跟踪中添加有关文件和行号的信息。 使用程序中存在的索引符号加速符号名称查找。 增加了新的SQL函数的反省:
demangle
和addressToLine
. 重命名函数symbolizeAddress
到addressToSymbol
为了一致性。 功能addressToSymbol
将返回错位的名称出于性能原因,你必须申请demangle
. 添加设置allow_introspection_functions
默认情况下,这是关闭的。 #6201 (阿列克谢-米洛维多夫) - 表函数
values
(名称不区分大小写)。 它允许从读取VALUES
建议的名单 #5984. 示例:SELECT * FROM VALUES('a UInt64, s String', (1, 'one'), (2, 'two'), (3, 'three'))
. #6217. #6209 (dimarub2000) - 增加了改变存储设置的功能。 语法:
ALTER TABLE <table> MODIFY SETTING <setting> = <value>
. #6366 #6669 #6685 (阿利沙平) - 用于拆卸分离部件的支撑。 语法:
ALTER TABLE <table_name> DROP DETACHED PART '<part_id>'
. #6158 (tavplubix) - 表约束。 允许将约束添加到将在插入时检查的表定义。 #5273 (格列布*诺维科夫) #6652 (阿列克谢-米洛维多夫)
- 支持级联实例化视图。 #6324 (阿莫斯鸟)
- 默认情况下,打开查询探查器以每秒对每个查询执行线程进行一次采样。 #6283 (阿列克谢-米洛维多夫)
- 输入格式
ORC
. #6454 #6703 (akonyaev90) - 增加了两个新功能:
sigmoid
和tanh
(这对于机器学习应用程序非常有用)。 #6254 (阿列克谢-米洛维多夫) - 功能
hasToken(haystack, token)
,hasTokenCaseInsensitive(haystack, token)
检查给定的令牌是否在干草堆中。 Token是两个非字母数字ASCII字符(或干草堆的边界)之间的最大长度子串。 Token必须是常量字符串。 由tokenbf_v1索引专业化支持。 #6596, #6662 (瓦西里*内姆科夫) - 新功能
neighbor(value, offset[, default_value])
. 允许在一个数据块中的列中达到上一个/下一个值。 #5925 (Alex Krash) 6685365ab8c5b74f9650492c88a012596eb1b0c6 341e2e4587a18065c2da1ca888c73389f48ce36c Alexey Milovidov - 创建了一个函数
currentUser()
,返回授权用户的登录。 添加别名user()
对于与MySQL的兼容性。 #6470 (Alex Krash) - 新的聚合函数
quantilesExactInclusive
和quantilesExactExclusive
这是在提出 #5885. #6477 (dimarub2000) - 功能
bitmapRange(bitmap, range_begin, range_end)
返回具有指定范围的新集(不包括range_end
). #6314 (余志昌) - 功能
geohashesInBox(longitude_min, latitude_min, longitude_max, latitude_max, precision)
它创建了一系列精确的长串geohash盒复盖提供的区域。 #6127 (瓦西里*内姆科夫) - 实现对插入查询的支持
Kafka
桌子 #6012 (伊万) - 增加了对
_partition
和_timestamp
虚拟列到Kafka引擎。 #6400 (伊万) - 可以从中删除敏感数据
query_log
,服务器日志,基于正则表达式的规则的进程列表。 #5710 (filimonov)
实验特点
- 输入和输出数据格式
Template
. 它允许为输入和输出指定自定义格式字符串。 #4354 #6727 (tavplubix) - 执行
LIVE VIEW
最初提出的表 #2898,准备 #3925,然后更新 #5541. 看 #5541 详细描述。 #5541 (vzakaznikov) #6425 (尼古拉*科切托夫) #6656 (vzakaznikov)请注意LIVE VIEW
功能可能会在下一个版本中删除。
错误修复
- 此版本还包含19.13和19.11的所有错误修复。
- 修复表有跳过索引和垂直合并发生时的分段错误。 #6723 (阿利沙平)
- 使用非平凡的列默认值修复每列TTL。 以前在强制TTL合并的情况下
OPTIMIZE ... FINAL
查询,过期的值被替换为类型默认值,而不是用户指定的列默认值。 #6796 (安东*波波夫) - 修复kafka服务器正常重启时的消息重复问题。 #6597 (伊万)
- 修正了读取Kafka消息时的无限循环。 根本不要暂停/恢复订阅消费者-否则在某些情况下可能会无限期暂停。 #6354 (伊万)
- 修复
Key expression contains comparison between inconvertible types
例外bitmapContains
功能。 #6136 #6146 #6156 (dimarub2000) - 修复已启用的段错误
optimize_skip_unused_shards
还丢失了分片钥匙 #6384 (安东*波波夫) - 修复了可能导致内存损坏的突变中的错误代码。 修复了读取地址的段错误
0x14c0
这可能发生由于并发DROP TABLE
和SELECT
从system.parts
或system.parts_columns
. 在准备突变查询时修复了竞争条件。 修复了由于OPTIMIZE
复制的表和并发修改操作,如改变。 #6514 (阿列克谢-米洛维多夫) - 在MySQL界面中删除了额外的详细日志记录 #6389 (阿列克谢-米洛维多夫)
- 返回解析布尔设置的能力 ‘true’ 和 ‘false’ 在配置文件中。 #6278 (阿利沙平)
- 修复崩溃
quantile
和median
功能结束Nullable(Decimal128)
. #6378 (Artem Zuikov) - 修正了可能不完整的结果返回
SELECT
查询与WHERE
主键上的条件包含转换为浮点类型。 它是由不正确的单调性检查引起的toFloat
功能。 #6248 #6374 (dimarub2000) - 检查
max_expanded_ast_elements
设置为突变。 明确突变后TRUNCATE TABLE
. #6205 (张冬) - 修复使用键列时的联接结果
join_use_nulls
. 附加空值而不是列默认值。 #6249 (Artem Zuikov) - 修正了跳过索引与垂直合并和改变。 修复
Bad size of marks file
例外。 #6594 #6713 (阿利沙平) - 修复罕见的崩溃
ALTER MODIFY COLUMN
和垂直合并,当合并/改变的部分之一是空的(0行) #6746 #6780 (阿利沙平) - 修正错误的转换
LowCardinality
类型AggregateFunctionFactory
. 这修复 #6257. #6281 (尼古拉*科切托夫) - 修复错误的行为和可能的段错误
topK
和topKWeighted
聚合函数。 #6404 (安东*波波夫) - 固定周围的不安全代码
getIdentifier
功能。 #6401 #6409 (阿列克谢-米洛维多夫) - 在MySQL线协议(连接到ClickHouse的形式MySQL客户端时使用)修正了错误。 引起的堆缓冲区溢出
PacketPayloadWriteBuffer
. #6212 (尤里*巴拉诺夫) - 固定内存泄漏
bitmapSubsetInRange
功能。 #6819 (余志昌) - 修复粒度变化后执行突变时的罕见错误。 #6816 (阿利沙平)
- 默认情况下允许包含所有字段的protobuf消息。 #6132 (维塔利*巴拉诺夫)
- 解决错误
nullIf
功能,当我们发送NULL
第二个参数的参数。 #6446 (纪尧姆*塔瑟里) - 修正了错误的内存分配/解除分配在复杂的键高速缓存字典与字符串字段,导致无限的内存消耗罕见的错误(看起来像内存泄漏)。 当字符串大小为8(8,16,32等)开始的2的幂时,错误会重现。 #6447 (阿利沙平)
- 修复了导致异常的小序列上的大猩猩编码
Cannot write after end of buffer
. #6398 #6444 (瓦西里*内姆科夫) - 允许在连接中使用不可为空的类型
join_use_nulls
已启用。 #6705 (Artem Zuikov) - 禁用
Poco::AbstractConfiguration
查询中的替换clickhouse-client
. #6706 (阿列克谢-米洛维多夫) - 避免死锁
REPLACE PARTITION
. #6677 (阿列克谢-米洛维多夫) - 使用
arrayReduce
对于不变的参数可能会导致段错误。 #6242 #6326 (阿列克谢-米洛维多夫) - 修复可能出现的不一致的部分,如果副本恢复后
DROP PARTITION
. #6522 #6523 (tavplubix) - 固定挂起
JSONExtractRaw
功能。 #6195 #6198 (阿列克谢-米洛维多夫) - 修正错误跳过索引序列化和聚合与自适应粒度。 #6594. #6748 (阿利沙平)
- 修复
WITH ROLLUP
和WITH CUBE
修饰符GROUP BY
具有两级聚合。 #6225 (安东*波波夫) - 修复编写具有自适应粒度的二级索引标记的错误。 #6126 (阿利沙平)
- 修复服务器启动时的初始化顺序。 由于
StorageMergeTree::background_task_handle
在初始化startup()
该MergeTreeBlockOutputStream::write()
可以尝试在初始化之前使用它。 只需检查它是否被初始化。 #6080 (伊万) - 从以前的读取操作中清除数据缓冲区,该操作完成时出现错误。 #6026 (尼古拉)
- 修复为复制*MergeTree表创建新副本时启用自适应粒度的错误。 #6394 #6452 (阿利沙平)
- 修复了在服务器启动过程中发生异常的情况下可能发生的崩溃
libunwind
在异常访问未初始化ThreadStatus
结构。 #6456 (尼基塔*米哈伊洛夫) - 修复崩溃
yandexConsistentHash
功能。 通过模糊测试发现。 #6304 #6305 (阿列克谢-米洛维多夫) - 修复了服务器过载和全局线程池接近满时挂起查询的可能性。 这在具有大量分片(数百个)的集群上发生的机会更高,因为分布式查询为每个分片分配每个连接的线程。 例如,如果集群330分片正在处理30个并发分布式查询,则此问题可能再现。 此问题会影响从19.2开始的所有版本。 #6301 (阿列克谢-米洛维多夫)
- 的固定逻辑
arrayEnumerateUniqRanked
功能。 #6423 (阿列克谢-米洛维多夫) - 解码符号表时修复段错误。 #6603 (阿莫斯鸟)
- 在固定不相关的异常转换
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 (尼古拉*科切托夫) - 删除描述中的额外引用
system.settings
桌子 #6696 #6699 (阿列克谢-米洛维多夫) - 避免可能的死锁
TRUNCATE
复制的表。 #6695 (阿列克谢-米洛维多夫) - 修复读取排序键的顺序。 #6189 (安东*波波夫)
- 修复
ALTER TABLE ... UPDATE
查询表enable_mixed_granularity_parts=1
. #6543 (阿利沙平) - 修复错误打开 #4405 (自19.4.0)。 当我们不查询任何列时,在对MergeTree表的分布式表的查询中复制 (
SELECT 1
). #6236 (阿利沙平) - 在有符号类型的整数划分为无符号类型的固定溢出。 这种行为与C或C++语言(整数升级规则)完全相同,这可能令人惊讶。 请注意,当将大型有符号数字划分为大型无符号数字或反之亦然时,溢出仍然是可能的(但这种情况不太常见)。 所有服务器版本都存在此问题。 #6214 #6233 (阿列克谢-米洛维多夫)
- 限制最大睡眠时间限制时
max_execution_speed
或max_execution_speed_bytes
已设置。 修正错误,如Estimated query execution time (inf seconds) is too long
. #5547 #6232 (阿列克谢-米洛维多夫) - 关于使用固定的问题
MATERIALIZED
列和别名MaterializedView
. #448 #3484 #3450 #2878 #2285 #3796 (阿莫斯鸟) #6316 (阿列克谢-米洛维多夫) - 修复
FormatFactory
未实现为处理器的输入流的行为。 #6495 (尼古拉*科切托夫) - 固定错字。 #6631 (Alex Ryndin)
- 错字在错误消息(是->是)。 #6839 (Denis Zhuravlev)
- 修复了从字符串中解析列列表时的错误,如果类型包含逗号(这个问题与
File
,URL
,HDFS
储存) #6217. #6209 (dimarub2000)
安全修复
- 此版本还包含19.13和19.11的所有错误安全修复。
- 修复了由于SQL解析器中的堆栈溢出而导致服务器崩溃的制造查询的可能性。 修复了合并和分布式表,实例化视图和涉及子查询的行级安全性条件中堆栈溢出的可能性。 #6433 (阿列克谢-米洛维多夫)
改进
- 三元逻辑的正确实现
AND/OR
. #6048 (亚历山大*卡扎科夫) - 现在,值和行与过期的TTL将被删除后
OPTIMIZE ... FINAL
query from old parts without TTL infos or with outdated TTL infos, e.g. afterALTER ... MODIFY TTL
查询。 添加查询SYSTEM STOP/START TTL MERGES
要禁止/允许使用TTL分配合并,并在所有合并中过滤过期值。 #6274 (安东*波波夫) - 可以更改ClickHouse历史文件的位置为客户端使用
CLICKHOUSE_HISTORY_FILE
env #6840 (filimonov) - 删除
dry_run
从标志InterpreterSelectQuery
. … #6375 (尼古拉*科切托夫) - 碌莽禄Support:
ASOF JOIN
与ON
科。 #6211 (Artem Zuikov) - 更好地支持用于突变和复制的跳过索引。 支持
MATERIALIZE/CLEAR INDEX ... IN PARTITION
查询。UPDATE x = x
重新计算使用列的所有索引x
. #5053 (尼基塔*瓦西列夫) - 允许
ATTACH
实时视图(例如,在服务器启动时),无论allow_experimental_live_view
设置。 #6754 (阿列克谢-米洛维多夫) - 对于由查询探查器收集的堆栈跟踪,不包括由查询探查器本身生成的堆栈帧。 #6250 (阿列克谢-米洛维多夫)
- 现在表函数
values
,file
,url
,hdfs
支持别名列。 #6255 (阿列克谢-米洛维多夫) - 如果抛出异常
config.d
文件没有相应的根元素作为配置文件。 #6123 (dimarub2000) - 在异常消息中打印额外的信息
no space left on device
. #6182, #6252 #6352 (tavplubix) - 当确定一个碎片
Distributed
要被读取查询复盖的表(用于optimize_skip_unused_shards
=1)ClickHouse现在从两个检查条件prewhere
和where
select语句的子句。 #6521 (亚历山大*卡扎科夫) - 已启用
SIMDJSON
对于没有AVX2,但与SSE4.2和PCLMUL指令集的机器。 #6285 #6320 (阿列克谢-米洛维多夫) - ClickHouse可以在文件系统上工作,而无需
O_DIRECT
支持(如ZFS和BtrFS),无需额外的调整。 #4449 #6730 (阿列克谢-米洛维多夫) - 支持最终子查询的下推谓词。 #6120 (TCeason) #6162 (阿列克谢-米洛维多夫)
- 更好
JOIN ON
密钥提取 #6131 (Artem Zuikov) - Upated
SIMDJSON
. #6285. #6306 (阿列克谢-米洛维多夫) - 优化最小列的选择
SELECT count()
查询。 #6344 (阿莫斯鸟) - 已添加
strict
参数inwindowFunnel()
. 当strict
设置,该windowFunnel()
仅对唯一值应用条件。 #6548 (achimbab) - 更安全的界面
mysqlxx::Pool
. #6150 (avasiliev) - 执行时选项行大小
--help
选项现在与终端大小对应。 #6590 (dimarub2000) - 禁用 “read in order” 优化无键的聚合。 #6599 (安东*波波夫)
- Http状态代码
INCORRECT_DATA
和TYPE_MISMATCH
错误代码已从默认值更改500 Internal Server Error
到400 Bad Request
. #6271 (亚历山大*罗丹) - 从移动连接对象
ExpressionAction
成AnalyzedJoin
.ExpressionAnalyzer
和ExpressionAction
不知道Join
不再上课了 它的逻辑被隐藏AnalyzedJoin
伊菲斯 #6801 (Artem Zuikov) - 修复了当其中一个分片是localhost但查询通过网络连接发送时可能出现的分布式查询死锁。 #6759 (阿列克谢-米洛维多夫)
- 更改多个表的语义
RENAME
为了避免可能的死锁。 #6757. #6756 (阿列克谢-米洛维多夫) - 重写MySQL兼容性服务器以防止在内存中加载完整的数据包有效负载。 每个连接的内存消耗减少到大约
2 * DBMS_DEFAULT_BUFFER_SIZE
(读/写缓冲区)。 #5811 (尤里*巴拉诺夫) - 将AST别名解释逻辑移出不必了解查询语义的解析器。 #6108 (Artem Zuikov)
- 稍微更安全的解析
NamesAndTypesList
. #6408. #6410 (阿列克谢-米洛维多夫) clickhouse-copier
:允许使用where_condition
从配置partition_key
查询中用于检查分区存在的别名(以前它仅用于读取数据查询)。 #6577 (proller)- 在添加可选的消息参数
throwIf
. (#5772) #6329 (Vdimir) - 在发送插入数据时,服务器异常也正在客户端中处理。 #5891 #6711 (dimarub2000)
- 添加了指标
DistributedFilesToInsert
这显示了文件系统中选择通过分布式表发送到远程服务器的文件总数。 该数字在所有分片之间相加。 #6600 (阿列克谢-米洛维多夫) - 将大部分连接准备逻辑从
ExpressionAction/ExpressionAnalyzer
到AnalyzedJoin
. #6785 (Artem Zuikov) - 修复曾 警告 ‘lock-order-inversion’. #6740 (瓦西里*内姆科夫)
- 关于缺乏Linux功能的更好的信息消息。 记录致命错误 “fatal” 水平,这将使它更容易找到
system.text_log
. #6441 (阿列克谢-米洛维多夫) - 当启用转储临时数据到磁盘,以限制内存使用期间
GROUP BY
,ORDER BY
,它没有检查可用磁盘空间。 修复程序添加新设置min_free_disk_space
,当可用磁盘空间小于阈值时,查询将停止并抛出ErrorCodes::NOT_ENOUGH_SPACE
. #6678 (徐伟清) #6691 (阿列克谢-米洛维多夫) - 通过线程删除递归rwlock。 这是没有意义的,因为线程在查询之间重用。
SELECT
查询可以在一个线程中获取锁,从另一个线程持有锁并从第一个线程退出。 在同一时间,第一个线程可以通过重复使用DROP
查询。 这将导致虚假 “Attempt to acquire exclusive lock recursively” 消息 #6771 (阿列克谢-米洛维多夫) - 斯普利特
ExpressionAnalyzer.appendJoin()
. 准备一个地方ExpressionAnalyzer
为MergeJoin
. #6524 (Artem Zuikov) - 已添加
mysql_native_password
mysql兼容性服务器的身份验证插件。 #6194 (尤里*巴拉诺夫) - 更少的数量
clock_gettime
调用;调试/发布之间的固定ABI兼容性Allocator
(微不足道的问题)。 #6197 (阿列克谢-米洛维多夫) - 移动
collectUsedColumns
从ExpressionAnalyzer
到SyntaxAnalyzer
.SyntaxAnalyzer
赂眉露>>required_source_columns
现在本身。 #6416 (Artem Zuikov) - 添加设置
joined_subquery_requires_alias
要求子选择和表函数的别名FROM
that more than one table is present (i.e. queries with JOINs). #6733 (Artem Zuikov) - 提取物
GetAggregatesVisitor
从类ExpressionAnalyzer
. #6458 (Artem Zuikov) system.query_log
:更改数据类型type
列到Enum
. #6265 (尼基塔*米哈伊洛夫)- 静态链接
sha256_password
身份验证插件。 #6512 (尤里*巴拉诺夫) - 避免对设置的额外依赖
compile
去工作 在以前的版本中,用户可能会得到如下错误cannot open crti.o
,unable to find library -lc
等。 #6309 (阿列克谢-米洛维多夫) - 对可能来自恶意副本的输入进行更多验证。 #6303 (阿列克谢-米洛维多夫)
- 现在
clickhouse-obfuscator
文件是可用的clickhouse-client
包。 在以前的版本中,它可以作为clickhouse obfuscator
(带空格)。 #5816 #6609 (dimarub2000) - 当我们至少有两个查询以不同的顺序读取至少两个表,另一个查询对其中一个表执行DDL操作时,修复了死锁。 修复了另一个非常罕见的死锁。 #6764 (阿列克谢-米洛维多夫)
- 已添加
os_thread_ids
列到system.processes
和system.query_log
为了更好的调试可能性。 #6763 (阿列克谢-米洛维多夫) - 当发生PHP mysqlnd扩展错误的解决方法
sha256_password
用作默认身份验证插件(在描述 #6031). #6113 (尤里*巴拉诺夫) - 删除不需要的地方与更改为空列。 #6693 (Artem Zuikov)
- 设置默认值
queue_max_wait_ms
为零,因为当前值(五秒)是没有意义的。 在极少数情况下,此设置有任何用途。 添加设置replace_running_query_max_wait_ms
,kafka_max_wait_ms
和connection_pool_max_wait_ms
用于消除歧义。 #6692 (阿列克谢-米洛维多夫) - 提取物
SelectQueryExpressionAnalyzer
从ExpressionAnalyzer
. 保留最后一个用于非select查询。 #6499 (Artem Zuikov) - 删除重复输入和输出格式。 #6239 (尼古拉*科切托夫)
- 允许用户复盖
poll_interval
和idle_connection_timeout
连接设置。 #6230 (阿列克谢-米洛维多夫) MergeTree
现在有一个额外的选项ttl_only_drop_parts
(默认情况下禁用),以避免部分的部分修剪,以便在部分中的所有行都过期时完全删除它们。 #6191 (塞尔吉*弗拉季金)- 类型检查set索引函数。 如果函数类型错误,则引发异常。 这修复了模糊测试与UBSan。 #6511 (尼基塔*瓦西列夫)
性能改进
- 优化查询
ORDER BY expressions
条款,其中expressions
有重合前缀与排序键MergeTree
桌子 此优化由以下方式控制optimize_read_in_order
设置。 #6054 #6629 (安东*波波夫) - 允许在零件装载和拆卸期间使用多个螺纹。 #6372 #6074 #6438 (阿列克谢-米洛维多夫)
- 实现了更新聚合函数状态的批处理变体。 这可能导致性能优势。 #6435 (阿列克谢-米洛维多夫)
- 使用
FastOps
函数库exp
,log
,sigmoid
,tanh
. FastOps是迈克尔*帕拉欣(Yandex的首席技术官)的快速矢量数学库。 改进的性能exp
和log
功能超过6倍。 功能exp
和log
从Float32
参数将返回Float32
(在以前的版本中,他们总是返回Float64
). 现在exp(nan)
可能会回来inf
. 的结果exp
和log
函数可能不是最接近机器可代表的数字到真正的答案。 #6254 (阿列克谢-米洛维多夫)使用Danila Kutenin变体使fastops工作 #6317 (阿列克谢-米洛维多夫) - 禁用连续密钥优化
UInt8/16
. #6298 #6701 (akuzm) - 改进的性能
simdjson
库通过摆脱动态分配ParsedJson::Iterator
. #6479 (维塔利*巴拉诺夫) - 预故障页分配内存时
mmap()
. #6667 (akuzm) - 修复性能错误
Decimal
比较。 #6380 (Artem Zuikov)
构建/测试/包装改进
- 删除编译器(运行时模板实例化),因为我们已经赢得了它的性能。 #6646 (阿列克谢-米洛维多夫)
- 增加了性能测试,以显示gcc-9以更隔离的方式性能下降。 #6302 (阿列克谢-米洛维多夫)
- 添加表功能
numbers_mt
,这是多线程版本numbers
. 使用哈希函数更新性能测试。 #6554 (尼古拉*科切托夫) - 比较模式
clickhouse-benchmark
#6220 #6343 (dimarub2000) - 尽最大努力打印堆栈痕迹。 还添加了
SIGPROF
作为调试信号,打印正在运行的线程的堆栈跟踪。 #6529 (阿列克谢-米洛维多夫) - 每个函数都在自己的文件中,第10部分。 #6321 (阿列克谢-米洛维多夫)
- 删除两倍常量
TABLE_IS_READ_ONLY
. #6566 (filimonov) - 格式化更改
StringHashMap
PR #5417. #6700 (akuzm) - 更好的联接创建子查询
ExpressionAnalyzer
. #6824 (Artem Zuikov) - 删除冗余条件(由PVS Studio找到)。 #6775 (akuzm)
- 分隔散列表接口
ReverseIndex
. #6672 (akuzm) - 重构设置。 #6689 (阿利沙平)
- 添加注释
set
索引函数。 #6319 (尼基塔*瓦西列夫) - 在Linux上的调试版本中增加OOM分数。 #6152 (akuzm)
- HDFS HA现在在调试版本中工作。 #6650 (徐伟清)
- 添加了一个测试
transform_query_for_external_database
. #6388 (阿列克谢-米洛维多夫) - 为Kafka表添加多个实例化视图的测试。 #6509 (伊万)
- 制定一个更好的构建计划。 #6500 (伊万)
- 固定
test_external_dictionaries
集成的情况下,它是在非root用户下执行。 #6507 (尼古拉*科切托夫) - 当写入的数据包的总大小超过
DBMS_DEFAULT_BUFFER_SIZE
. #6204 (尤里*巴拉诺夫) - 增加了一个测试
RENAME
表竞争条件 #6752 (阿列克谢-米洛维多夫) - 避免在设置数据竞赛
KILL QUERY
. #6753 (阿列克谢-米洛维多夫) - 通过缓存字典添加处理错误的集成测试。 #6755 (维塔利*巴拉诺夫)
- 在Mac OS上禁用ELF对象文件的解析,因为这是没有意义的。 #6578 (阿列克谢-米洛维多夫)
- 尝试使更新日志生成器更好。 #6327 (阿列克谢-米洛维多夫)
- 添加
-Wshadow
切换到海湾合作委员会。 #6325 (kreuzerkrieg) - 删除过时的代码
mimalloc
支持。 #6715 (阿列克谢-米洛维多夫) zlib-ng
确定x86功能并将此信息保存到全局变量。 这是在defalteInit调用中完成的,它可以由不同的线程同时进行。 为了避免多线程写入,请在库启动时执行此操作。 #6141 (akuzm)- 回归测试一个错误,在连接这是固定的 #5192. #6147 (Bakhtiyor Ruziev)
- 修正MSan报告。 #6144 (阿列克谢-米洛维多夫)
- 修复扑ttl测试。 #6782 (安东*波波夫)
- 修正了虚假数据竞赛
MergeTreeDataPart::is_frozen
场。 #6583 (阿列克谢-米洛维多夫) - 修正了模糊测试中的超时。 在以前的版本中,它设法在查询中找到虚假挂断
SELECT * FROM numbers_mt(gccMurmurHash(''))
. #6582 (阿列克谢-米洛维多夫) - 添加了调试检查
static_cast
列。 #6581 (阿列克谢-米洛维多夫) - 在官方RPM软件包中支持Oracle Linux。 #6356 #6585 (阿列克谢-米洛维多夫)
- 从更改json perftests
once
到loop
类型。 #6536 (尼古拉*科切托夫) odbc-bridge.cpp
定义main()
所以它不应该被包括在clickhouse-lib
. #6538 (Origej Desh)- 测试碰撞
FULL|RIGHT JOIN
右表的键中有空值。 #6362 (Artem Zuikov) - 为了以防万一,增加了对别名扩展限制的测试。 #6442 (阿列克谢-米洛维多夫)
- 从切换
boost::filesystem
到std::filesystem
在适当的情况下。 #6253 #6385 (阿列克谢-米洛维多夫) - 将RPM包添加到网站。 #6251 (阿列克谢-米洛维多夫)
- 为固定添加测试
Unknown identifier
例外IN
科。 #6708 (Artem Zuikov) - 简化操作
shared_ptr_helper
因为人们面临困难理解它。 #6675 (阿列克谢-米洛维多夫) - 增加了固定大猩猩和DoubleDelta编解码器的性能测试。 #6179 (瓦西里*内姆科夫)
- 拆分集成测试
test_dictionaries
分成四个单独的测试。 #6776 (维塔利*巴拉诺夫) - 修复PVS-Studio中的警告
PipelineExecutor
. #6777 (尼古拉*科切托夫) - 允许使用
library
与ASan字典源. #6482 (阿列克谢-米洛维多夫) - 增加了从Pr列表生成更新日志的选项。 #6350 (阿列克谢-米洛维多夫)
- 锁定
TinyLog
读取时存储。 #6226 (akuzm) - 检查CI中损坏的符号链接。 #6634 (阿列克谢-米洛维多夫)
- 增加超时时间 “stack overflow” 测试,因为它可能需要很长的时间在调试构建。 #6637 (阿列克谢-米洛维多夫)
- 添加了双空格检查。 #6643 (阿列克谢-米洛维多夫)
- 修复
new/delete
使用消毒剂构建时的内存跟踪。 跟踪不清楚。 它只防止测试中的内存限制异常。 #6450 (Artem Zuikov) - 启用链接时对未定义符号的检查。 #6453 (伊万)
- 避免重建
hyperscan
每天 #6307 (阿列克谢-米洛维多夫) - 在固定的瑞银报告
ProtobufWriter
. #6163 (阿列克谢-米洛维多夫) - 不要允许将查询探查器与消毒器一起使用,因为它不兼容。 #6769 (阿列克谢-米洛维多夫)
- 添加测试计时器失败后重新加载字典。 #6114 (维塔利*巴拉诺夫)
- 修复不一致
PipelineExecutor::prepareProcessor
参数类型。 #6494 (尼古拉*科切托夫) - 添加了对坏Uri的测试。 #6493 (阿列克谢-米洛维多夫)
- 增加了更多的检查
CAST
功能。 这应该获得更多关于模糊测试中分割故障的信息。 #6346 (尼古拉*科切托夫) - 已添加
gcc-9
支持docker/builder
本地生成映像的容器。 #6333 (格列布*诺维科夫) - 测试主键
LowCardinality(String)
. #5044 #6219 (dimarub2000) - 修复了缓慢堆栈跟踪打印影响的测试。 #6315 (阿列克谢-米洛维多夫)
- 添加崩溃的测试用例
groupUniqArray
固定在 #6029. #4402 #6129 (akuzm) - 固定指数突变测试。 #6645 (尼基塔*瓦西列夫)
- 在性能测试中,不要读取我们没有运行的查询的查询日志。 #6427 (akuzm)
- 现在可以使用任何低基数类型创建实例化视图,而不考虑关于可疑低基数类型的设置。 #6428 (Olga Khvostikova)
- 更新的测试
send_logs_level
设置。 #6207 (尼古拉*科切托夫) - 修复gcc-8.2下的构建。 #6196 (Max Akhmedov)
- 修复构建与内部libc++。 #6724 (伊万)
- 修复共享构建
rdkafka
图书馆 #6101 (伊万) - 修复Mac OS构建(不完整)。 #6390 (阿列克谢-米洛维多夫) #6429 (alex-zaitsev)
- 修复 “splitted” 碌莽禄.拢. #6618 (阿列克谢-米洛维多夫)
- 其他构建修复: #6186 (阿莫斯鸟) #6486 #6348 (vxider) #6744 (伊万) #6016 #6421 #6491 (proller)
向后不兼容的更改
- 删除很少使用的表函数
catBoostPool
和存储CatBoostPool
. 如果您使用了此表功能,请写电子邮件至clickhouse-feedback@yandex-team.com
. 请注意,CatBoost集成仍然存在,并将受到支持。 #6279 (阿列克谢-米洛维多夫) - 禁用
ANY RIGHT JOIN
和ANY FULL JOIN
默认情况下。 设置any_join_distinct_right_table_keys
设置启用它们。 #5126 #6351 (Artem Zuikov)
ClickHouse释放19.13
ClickHouse释放19.13.6.51,2019-10-02
错误修复
- 此版本还包含19.11.12.69的所有错误修复。
ClickHouse释放19.13.5.44,2019-09-20
错误修复
- 此版本还包含19.14.6.12的所有错误修复。
- 修复了在执行时表的可能不一致的状态
DROP
在zookeeper无法访问时查询复制的表。 #6045 #6413 (尼基塔*米哈伊洛夫) - 修复了StorageMerge中的数据竞赛 #6717 (阿列克谢-米洛维多夫)
- 修复查询分析器中引入的错误,从而导致套接字无休止的recv。 #6386 (阿利沙平)
- 修复执行时过多的CPU使用率
JSONExtractRaw
函数在一个布尔值。 #6208 (维塔利*巴拉诺夫) - 在推送到实例化视图时修复回归。 #6415 (伊万)
- 表函数
url
该漏洞是否允许攻击者在请求中注入任意HTTP头。 这个问题被发现 尼基塔*季霍米罗夫. #6466 (阿列克谢-米洛维多夫) - 修复无用
AST
检查设置索引。 #6510 #6651 (尼基塔*瓦西列夫) - 修正了解析
AggregateFunction
查询中嵌入的值。 #6575 #6773 (余志昌) - 修正了错误的行为
trim
功能家庭。 #6647 (阿列克谢-米洛维多夫)
ClickHouse释放19.13.4.32,2019-09-10
错误修复
- 此版本还包含19.11.9.52和19.11.10.54的所有错误安全修复。
- 固定数据竞赛
system.parts
表和ALTER
查询。 #6245 #6513 (阿列克谢-米洛维多夫) - 修复了从带有sample和prewhere的空分布式表中读取流中发生的不匹配标题。 #6167 (钱丽祥) #6823 (尼古拉*科切托夫)
- 修复使用时的崩溃
IN
子句带有一个元组的子查询。 #6125 #6550 (tavplubix) - 修复具有相同列名的大小写
GLOBAL JOIN ON
科。 #6181 (Artem Zuikov) - 修复强制转换类型时的崩溃
Decimal
这不支持它。 抛出异常代替。 #6297 (Artem Zuikov) - 修复了崩溃
extractAll()
功能。 #6644 (Artem Zuikov) - 查询转换
MySQL
,ODBC
,JDBC
表函数现在正常工作SELECT WHERE
具有多个查询AND
表达式。 #6381 #6676 (dimarub2000) - 添加了以前的声明检查MySQL8集成。 #6569 (拉斐尔*大卫*蒂诺科)
安全修复
- 修复解压缩阶段编解码器中的两个漏洞(恶意用户可以制造压缩数据,导致解压缩中的缓冲区溢出)。 #6670 (Artem Zuikov)
碌莽禄,拢,010-68520682<url>戮漏鹿芦,酶,虏卤赂拢,110102005602
错误修复
- 修复
ALTER TABLE ... UPDATE
查询表enable_mixed_granularity_parts=1
. #6543 (阿利沙平) - 在使用IN子句时修复带有元组的子查询。 #6125 #6550 (tavplubix)
- 修复了一个问题,即如果一个陈旧的副本变为活动的,它可能仍然有被删除分区的数据部分。 #6522 #6523 (tavplubix)
- 修正了解析CSV的问题 #6426 #6559 (tavplubix)
- 修正了系统中的数据竞赛。部件表和ALTER查询。 这修复 #6245. #6513 (阿列克谢-米洛维多夫)
- 修复了可能导致内存损坏的突变中的错误代码。 修复了读取地址的段错误
0x14c0
这可能发生由于并发DROP TABLE
和SELECT
从system.parts
或system.parts_columns
. 在准备突变查询时修复了竞争条件。 修复了由于OPTIMIZE
复制的表和并发修改操作,如改变。 #6514 (阿列克谢-米洛维多夫) - 修复后可能的数据丢失
ALTER DELETE
查询表跳过索引。 #6224 #6282 (尼基塔*瓦西列夫)
安全修复
- 如果攻击者具有对ZooKeeper的写入访问权限,并且能够从ClickHouse运行的网络中运行可用的自定义服务器,则可以创建自定义构建的恶意服务器,该服务器将充当ClickHouse副本并将其注册到ZooKeeper中。 当另一个副本从恶意副本中获取数据部分时,它可以强制clickhouse-server写入文件系统上的任意路径。 由Yandex的信息安全团队Eldar Zaitov发现。 #6247 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 查询级别上的采样探查器。 示例. #4247 (laplab) #6124 (阿列克谢-米洛维多夫) #6250 #6283 #6386
- 允许指定列的列表
COLUMNS('regexp')
表达的工作原理就像一个更复杂的变体*
星号 #5951 (mfridental), (阿列克谢-米洛维多夫) CREATE TABLE AS table_function()
现在是可能的 #6057 (dimarub2000)- 亚当优化随机梯度下降默认情况下使用
stochasticLinearRegression()
和stochasticLogisticRegression()
聚合函数,因为它显示了良好的质量,几乎没有任何调整。 #6000 (Quid37) - Added functions for working with the сustom week number #5212 (杨小姐)
RENAME
查询现在适用于所有存储。 #5953 (伊万)- 现在客户端通过设置从服务器接收任何所需级别的日志
send_logs_level
无论服务器设置中指定的日志级别如何。 #5964 (尼基塔*米哈伊洛夫)
向后不兼容的更改
- 设置
input_format_defaults_for_omitted_fields
默认情况下启用。 分布式表中的插入需要此设置在集群上相同(您需要在滚动更新之前设置它)。 它允许计算复杂的默认表达式的省略字段JSONEachRow
和CSV*
格式。 它应该是预期的行为,但可能导致可忽略不计的性能差异。 #6043 (Artem Zuikov), #5625 (akuzm)
实验特点
错误修复
- Kafka集成已在此版本中修复。
- 固定
DoubleDelta
编码Int64
对于大DoubleDelta
值,改进DoubleDelta
编码为随机数据Int32
. #5998 (瓦西里*内姆科夫) - 固定的高估
max_rows_to_read
如果设置merge_tree_uniform_read_distribution
置为0。 #6019 (阿列克谢-米洛维多夫)
改进
- 如果抛出异常
config.d
文件没有相应的根元素作为配置文件 #6123 (dimarub2000)
性能改进
构建/测试/包装改进
ClickHouse释放19.11
ClickHouse释放19.11.13.74,2019-11-01
错误修复
- 修复了罕见的崩溃
ALTER MODIFY COLUMN
当合并/更改部分之一为空(0行)时,垂直合并。 #6780 (阿利沙平) - 手动更新
SIMDJSON
. 这修复了stderr文件可能泛滥的错误json诊断消息。 #7548 (亚历山大*卡扎科夫) - 修正错误
mrk
突变的文件扩展名 (阿利沙平)
ClickHouse释放19.11.12.69,2019-10-02
错误修复
- 修复了大型表上复杂键的索引分析的性能下降。 这修复 #6924. #7075 (阿列克谢-米洛维多夫)
- 使用分布式引擎在表中发送数据时避免罕见的SIGSEGV (
Failed to send batch: file with index XXXXX is absent
). #7032 (Azat Khuzhin) - 修复
Unknown identifier
有多个连接。 这修复 #5254. #7022 (Artem Zuikov)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
- 修复从Kafka空主题中选择时导致段错误的逻辑错误。 #6902 #6909 (伊万)
- 修复功能
АrrayEnumerateUniqRanked
在参数中使用空数组。 #6928 (proller)
ClickHouse释放19.11.10.54,2019-09-10
错误修复
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682
- 改进缓存字典中的错误处理。 #6737 (维塔利*巴拉诺夫)
- 在功能固定错误
arrayEnumerateUniqRanked
. #6779 (proller) - 修复
JSONExtract
功能,同时提取Tuple
从JSON。 #6718 (维塔利*巴拉诺夫) - 修复后可能的数据丢失
ALTER DELETE
查询表跳过索引。 #6224 #6282 (尼基塔*瓦西列夫) - 固定性能测试。 #6392 (阿列克谢-米洛维多夫)
- 实木复合地板:修复读取布尔列。 #6579 (阿列克谢-米洛维多夫)
- 修正了错误的行为
nullIf
常量参数的函数。 #6518 (纪尧姆*塔瑟里) #6580 (阿列克谢-米洛维多夫) - 修复kafka服务器正常重启时的消息重复问题。 #6597 (伊万)
- 修正了一个问题,当长
ALTER UPDATE
或ALTER DELETE
可能会阻止常规合并运行。 如果没有足够的可用线程,则防止突变执行。 #6502 #6617 (tavplubix) - 修正了处理错误 “timezone” 在服务器配置文件中。 #6709 (阿列克谢-米洛维多夫)
- 修复卡夫卡测试。 #6805 (伊万)
安全修复
- 如果攻击者具有对ZooKeeper的写入访问权限,并且能够从运行ClickHouse的网络中运行可用的自定义服务器,则可以创建自定义构建的恶意服务器,该服务器将充当ClickHouse副本并将其注册到ZooKeeper中。 当另一个副本从恶意副本中获取数据部分时,它可以强制clickhouse-server写入文件系统上的任意路径。 由Yandex的信息安全团队Eldar Zaitov发现。 #6247 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 修复
ALTER TABLE ... UPDATE
查询表enable_mixed_granularity_parts=1
. #6543 (阿利沙平) - 在使用IN子句时修复带有元组的子查询。 #6125 #6550 (tavplubix)
- 修复了一个问题,即如果一个陈旧的副本变为活动的,它可能仍然有被删除分区的数据部分。 #6522 #6523 (tavplubix)
- 修正了解析CSV的问题 #6426 #6559 (tavplubix)
- 修正了系统中的数据竞赛。部件表和ALTER查询。 这修复 #6245. #6513 (阿列克谢-米洛维多夫)
- 修复了可能导致内存损坏的突变中的错误代码。 修复了读取地址的段错误
0x14c0
这可能发生由于并发DROP TABLE
和SELECT
从system.parts
或system.parts_columns
. 在准备突变查询时修复了竞争条件。 修复了由于OPTIMIZE
复制的表和并发修改操作,如改变。 #6514 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- Kafka集成已在此版本中修复。
- 使用时修复段错误
arrayReduce
对于不断的参数。 #6326 (阿列克谢-米洛维多夫) - 固定
toFloat()
单调性。 #6374 (dimarub2000) - 修复已启用的段错误
optimize_skip_unused_shards
还丢失了分片钥匙 #6384 (CurtizJ) - 的固定逻辑
arrayEnumerateUniqRanked
功能。 #6423 (阿列克谢-米洛维多夫) - 从MySQL处理程序中删除了额外的详细日志记录。 #6389 (阿列克谢-米洛维多夫)
- 修复错误的行为和可能的段错误
topK
和topKWeighted
聚合函数。 #6404 (CurtizJ) - 不要公开虚拟列
system.columns
桌子 这是向后兼容所必需的。 #6406 (阿列克谢-米洛维多夫) - 修复复杂键缓存字典中字符串字段的内存分配错误。 #6447 (阿利沙平)
- 修复创建新副本时启用自适应粒度的错误
Replicated*MergeTree
桌子 #6452 (阿利沙平) - 阅读Kafka消息时修复无限循环。 #6354 (abyss7)
- 修复了由于SQL解析器中的堆栈溢出和堆栈溢出的可能性而导致服务器崩溃的编造查询的可能性
Merge
和Distributed
表 #6433 (阿列克谢-米洛维多夫) - 在小序列固定大猩猩编码错误。 #6444 (Enmk)
改进
- 允许用户复盖
poll_interval
和idle_connection_timeout
连接设置。 #6230 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>戮漏鹿芦,酶,虏卤赂拢,110102003042
错误修复
- 修复了服务器超载时挂起查询的可能性。 #6301 (阿列克谢-米洛维多夫)
- 修复yandexConsistentHash函数中的FPE。 这修复 #6304. #6126 (阿列克谢-米洛维多夫)
- 修正错误的转换
LowCardinality
类型AggregateFunctionFactory
. 这修复 #6257. #6281 (尼古拉*科切托夫) - 修复解析
bool
从设置true
和false
配置文件中的字符串。 #6278 (阿利沙平) - 修复查询中不兼容的流头的罕见错误
Distributed
桌子结束MergeTree
表时的一部分WHERE
移动到PREWHERE
. #6236 (阿利沙平) - 在有符号类型的整数划分为无符号类型的固定溢出。 这修复 #6214. #6233 (阿列克谢-米洛维多夫)
向后不兼容的更改
Kafka
还是坏了
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 修复编写具有自适应粒度的二级索引标记的错误。 #6126 (阿利沙平)
- 修复
WITH ROLLUP
和WITH CUBE
修饰符GROUP BY
具有两级聚合。 #6225 (安东*波波夫) - 固定挂起
JSONExtractRaw
功能。 固定 #6195 #6198 (阿列克谢-米洛维多夫) - 修复ExternalLoader::reloadOutdated()中的段错误。 #6082 (维塔利*巴拉诺夫)
- 修复了服务器可能关闭侦听套接字但不关闭并继续提供剩余查询的情况。 您最终可能会有两个正在运行的clickhouse服务器进程。 有时,服务器可能会返回错误
bad_function_call
对于剩余的查询。 #6231 (阿列克谢-米洛维多夫) - 修复了通过ODBC,MySQL,ClickHouse和HTTP初始加载外部字典的更新字段无用和不正确的条件。 这修复 #6069 #6083 (阿列克谢-米洛维多夫)
- 在固定不相关的异常转换
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 (尼古拉*科切托夫) - 修复非确定性结果 “uniq” 在极少数情况下聚合函数。 该错误存在于所有ClickHouse版本。 #6058 (阿列克谢-米洛维多夫)
- Segfault当我们在函数上设置了一点点太高的CIDR
IPv6CIDRToRange
. #6068 (纪尧姆*塔瑟里) - 修复了服务器从许多不同上下文中抛出许多异常时的小内存泄漏。 #6144 (阿列克谢-米洛维多夫)
- 修复消费者在订阅之前暂停而之后未恢复的情况。 #6075 (伊万)请注意,卡夫卡在这个版本中被打破。
- 从以前的读取操作中清除Kafka数据缓冲区,并且完成了错误操作 #6026 (尼古拉)请注意,卡夫卡在这个版本中被打破。
- 由于
StorageMergeTree::background_task_handle
在初始化startup()
该MergeTreeBlockOutputStream::write()
可以尝试在初始化之前使用它。 只需检查它是否被初始化。 #6080 (伊万)
构建/测试/包装改进
- 新增官方
rpm
包. #5740 (proller) (阿利沙平) - 添加构建能力
.rpm
和.tgz
包packager
脚本 #5769 (阿利沙平) - 修复了 “Arcadia” 构建系统。 #6223 (proller)
向后不兼容的更改
Kafka
在这个版本中被打破。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 增加了对准备好的语句的支持。 #5331 (亚历山大) #5630 (阿列克谢-米洛维多夫)
DoubleDelta
和Gorilla
列编解ecs #5600 (瓦西里*内姆科夫)- 已添加
os_thread_priority
设置,允许控制 “nice” 操作系统用于调整动态调度优先级的查询处理线程的值。 它需要CAP_SYS_NICE
能力的工作。 这实现了 #5858 #5909 (阿列克谢-米洛维多夫) - 执行
_topic
,_offset
,_key
kafka引擎的列 #5382 (伊万)请注意,卡夫卡在这个版本中被打破。 - 添加聚合函数组合
-Resample
#5590 (hcz) - 聚合函数
groupArrayMovingSum(win_size)(x)
和groupArrayMovingAvg(win_size)(x)
,计算移动和/平均有或没有窗口大小限制。 #5595 (inv2004) - 添加synonim
arrayFlatten
<->flatten
#5764 (hcz) - Intergate H3功能
geoToH3
从尤伯杯. #4724 (Remen Ivan) #5805 (阿列克谢-米洛维多夫)
错误修复
- 使用异步更新实现DNS缓存。 单独的线程解析所有主机并更新dns缓存(设置
dns_cache_update_period
). 当主机的ip频繁更改时,它应该有所帮助。 #5857 (安东*波波夫) - 修复段错误
Delta
影响值小于32位大小的列的编解ec。 该错误导致随机内存损坏。 #5786 (阿利沙平) - 修复ttl合并中的段错误与块中的非物理列。 #5819 (安东*波波夫)
- 修复在检查部分罕见的错误
LowCardinality
列。 前情提要checkDataPart
总是失败的一部分LowCardinality
列。 #5832 (阿利沙平) - 避免在服务器线程池已满时挂起连接。 它是从连接重要
remote
当连接超时时,表函数或连接到没有副本的分片。 这修复 #5878 #5881 (阿列克谢-米洛维多夫) - 支持常量参数
evalMLModel
功能。 这修复 #5817 #5820 (阿列克谢-米洛维多夫) - 修复了ClickHouse将默认时区确定为
UCT
而不是UTC
. 这修复 #5804. #5828 (阿列克谢-米洛维多夫) - 固定缓冲区下溢
visitParamExtractRaw
. 这修复 #5901 #5902 (阿列克谢-米洛维多夫) - 现在分发
DROP/ALTER/TRUNCATE/OPTIMIZE ON CLUSTER
查询将直接在leader副本上执行。 #5757 (阿利沙平) - 修复
coalesce
为ColumnConst
与ColumnNullable
+相关变化. #5755 (Artem Zuikov) - 修复
ReadBufferFromKafkaConsumer
所以它不断阅读新的消息后commit()
即使它之前停滞不前 #5852 (伊万) - 修复
FULL
和RIGHT
加入时加入结果Nullable
键在右表. #5859 (Artem Zuikov) - 可能修复低优先级查询的无限休眠。 #5842 (阿列克谢-米洛维多夫)
- 修复争用条件,这导致某些查询可能不会出现在query_log后
SYSTEM FLUSH LOGS
查询。 #5456 #5685 (安东*波波夫) - 固定
heap-use-after-free
由手表引起的ClusterCopier中的警告尝试使用已经删除的复印机对象。 #5871 (尼古拉*科切托夫) - 修复错误
StringRef
由一些实现返回的指针IColumn::deserializeAndInsertFromArena
. 这个错误只影响单元测试。 #5973 (尼古拉*科切托夫) - 防止源数组和中间数组连接掩蔽相同名称列的列。 #5941 (Artem Zuikov)
- 修复插入并选择查询MySQL引擎与MySQL样式标识符引用。 #5704 (张冬)
- 现在
CHECK TABLE
查询可以与MergeTree引擎系列一起使用。 它返回检查状态和消息,如果任何为每个部分(或文件在simplier引擎的情况下)。 此外,修复获取损坏部分的错误。 #5865 (阿利沙平) - 修复SPLIT_SHARED_LIBRARY运行时 #5793 (Danila Kutenin)
- 固定时区初始化时
/etc/localtime
是一个相对的符号链接,如../usr/share/zoneinfo/Europe/Moscow
#5922 (阿列克谢-米洛维多夫) - clickhouse复印机:修复使用-关机后免费 #5752 (proller)
- 更新
simdjson
. 修复了一些无效的零字节Json成功解析的问题。 #5938 (阿列克谢-米洛维多夫) - 修复系统日志的关机 #5802 (安东*波波夫)
- 修复当invalidate_query中的条件取决于字典时挂起。 #6011 (维塔利*巴拉诺夫)
改进
- 允许群集配置中的无法解析的地址。 它们将被视为不可用,并尝试在每次连接尝试时解决。 这对Kubernetes特别有用。 这修复 #5714 #5924 (阿列克谢-米洛维多夫)
- 关闭空闲TCP连接(默认情况下为一小时超时)。 这对于每台服务器上具有多个分布式表的大型集群尤其重要,因为每台服务器都可能保留与其他服务器的连接池,并且在高峰查询并发之后,连接将停 这修复 #5879 #5880 (阿列克谢-米洛维多夫)
- 更好的质量
topK
功能。 如果新元素具有更大的权重,则更改了SavingSpace set行为以删除最后一个元素。 #5833 #5850 (纪尧姆*塔瑟里) - 与域一起使用的URL函数现在可以在没有方案的情况下适用于不完整的Url #5725 (阿利沙平)
- 校验和添加到
system.parts_columns
桌子 #5874 (尼基塔*米哈伊洛夫) - 已添加
Enum
数据类型作为synonimEnum8
或Enum16
. #5886 (dimarub2000) - 全位转置变种
T64
编解ec 可能会导致更好的压缩zstd
. #5742 (Artem Zuikov) - 条件
startsWith
函数现在可以使用主键。 这修复 #5310 和 #5882 #5919 (dimarub2000) - 允许使用
clickhouse-copier
通过允许空数据库名称来实现具有交叉复制的群集拓扑。 #5745 (纳瓦托洛梅) - 使用
UTC
作为系统上的默认时区,而不tzdata
(e.g. bare Docker container). Before this patch, error messageCould not determine local time zone
被打印并且服务器或客户机拒绝启动。 #5827 (阿列克谢-米洛维多夫) - 返回对函数中浮点参数的支持
quantileTiming
为了向后兼容性。 #5911 (阿列克谢-米洛维多夫) - 在错误消息中显示哪个表缺少列。 #5768 (伊万)
- 不允许不同用户使用相同的query_id运行查询 #5430 (proller)
- 用于向Graphite发送指标的更强大的代码。 它甚至可以在长时间的多重工作
RENAME TABLE
操作。 #5875 (阿列克谢-米洛维多夫) - 当ThreadPool无法计划执行任务时,将显示更多信息错误消息。 这修复 #5305 #5801 (阿列克谢-米洛维多夫)
- 反转ngramSearch更直观 #5807 (Danila Kutenin)
- 在HDFS引擎生成器中添加用户解析 #5946 (akonyaev90)
- 更新默认值
max_ast_elements parameter
#5933 (Artem Konovalov) - 增加了过时设置的概念。 过时的设置
allow_experimental_low_cardinality_type
可以没有效果使用。 0f15c01c6802f7ce1a1494c12c846be8c98944cd Alexey Milovidov
性能改进
- 增加从合并表中选择的流数量,以便更均匀地分布线程。 添加设置
max_streams_multiplier_for_merge_tables
. 这修复 #5797 #5915 (阿列克谢-米洛维多夫)
构建/测试/包装改进
- 为与不同版本的clickhouse的客户端-服务器交互添加向后兼容性测试。 #5868 (阿利沙平)
- 每个提交和拉取请求中的测试复盖率信息。 #5896 (阿利沙平)
- 与address sanitizer合作,支持我们的自定义分alloc (
Arena
和ArenaWithFreeLists
)为了更好地调试 “use-after-free” 错误。 #5728 (akuzm) - 切换到 LLVM libunwind实现 用于C++异常处理和堆栈跟踪打印 #4828 (尼基塔*拉普科夫)
- 添加来自-Weverything的两个警告 #5923 (阿列克谢-米洛维多夫)
- 允许用内存消毒剂建立ClickHouse。 #3949 (阿列克谢-米洛维多夫)
- 关于固定的ubsan报告
bitTest
在模糊测试功能。 #5943 (阿列克谢-米洛维多夫) - Docker:增加了初始化需要身份验证的ClickHouse实例的可能性。 #5727 (科尔维亚科夫*安德烈)
- 将librdkafka更新到版本1.1.0 #5872 (伊万)
- 为集成测试添加全局超时,并在测试代码中禁用其中一些。 #5741 (阿利沙平)
- 修复一些ThreadSanitizer故障。 #5854 (akuzm)
- 该
--no-undefined
选项强制链接器在链接时检查所有外部名称是否存在。 在拆分构建模式下跟踪库之间的真实依赖关系非常有用。 #5855 (伊万) - 增加了性能测试 #5797 #5914 (阿列克谢-米洛维多夫)
- 与gcc-7固定兼容性。 #5840 (阿列克谢-米洛维多夫)
- 增加了对gcc-9的支持。 这修复 #5717 #5774 (阿列克谢-米洛维多夫)
- 修复了libunwind链接不正确时的错误。 #5948 (阿列克谢-米洛维多夫)
- 修复了PVS-Studio发现的一些警告。 #5921 (阿列克谢-米洛维多夫)
- 增加了初始支持
clang-tidy
静态分析仪。 #5806 (阿列克谢-米洛维多夫) - 转换BSD/Linux endian宏( ‘be64toh’ 和 ‘htobe64’)到Mac OS x当量 #5785 (傅辰)
- 改进的集成测试指南. #5796 (Vladimir Chebotarev)
- 在macosx+gcc9修复构建 #5822 (filimonov)
- 修复难以识别的错字:aggreAGte->aggregate。 #5753 (akuzm)
- 修复freebsd构建 #5760 (proller)
- 添加链接到实验YouTube频道的网站 #5845 (伊万*布林科夫)
- CMake:为复盖率标志添加选项:WITH_COVERAGE #5776 (proller)
- 修复一些内联PODArray的初始大小。 #5787 (akuzm)
- clickhouse服务器.postinst:修复centos6的操作系统检测 #5788 (proller)
- 添加Arch linux软件包生成。 #5719 (Vladimir Chebotarev)
- 拆分常见/配置.h by libs(dbms) #5715 (proller)
- 修复了 “Arcadia” 构建平台 #5795 (proller)
- 修复了非常规构建(gcc9,没有子模块) #5792 (proller)
- 在unalignedStore中需要显式类型,因为它被证明容易出现错误 #5791 (akuzm)
- 修复MacOS构建 #5830 (filimonov)
- 关于具有更大数据集的新JIT功能的性能测试,请参阅此处 #5263 #5887 (纪尧姆*塔瑟里)
- 在压力测试中运行有状态测试 12693e568722f11e19859742f56428455501fd2a (阿利沙平)
向后不兼容的更改
Kafka
在这个版本中被打破。- 启用
adaptive_index_granularity
=10mb默认为新MergeTree
桌子 如果您在19.11+版本上创建了新的MergeTree表,则不可能降级到19.6之前的版本。 #5628 (阿利沙平) - 删除了Yandex使用的过时无证嵌入式字典。梅特里卡 功能
OSIn
,SEIn
,OSToRoot
,SEToRoot
,OSHierarchy
,SEHierarchy
不再可用。 如果您正在使用这些功能,请写电子邮件至clickhouse-feedback@yandex-team.com注:在最后时刻,我们决定保持这些功能一段时间。 #5780 (阿列克谢-米洛维多夫)
ClickHouse释放19.10
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 添加新列编解ec:
T64
. 为(U)IntX/EnumX/Data(时间)/DecimalX列制作。 它应该适用于具有常量或小范围值的列。 编解码器本身允许放大或缩小数据类型而无需重新压缩。 #5557 (Artem Zuikov) - 添加数据库引擎
MySQL
允许查看远程MySQL服务器中的所有表 #5599 (张冬) bitmapContains
执行。 这是2倍的速度比bitmapHasAny
如果第二个位图包含一个元素。 #5535 (余志昌)- 支持
crc32
功能(与MySQL或PHP中的行为完全相同)。 如果您需要散列函数,请不要使用它。 #5661 (Remen Ivan) - 已实施
SYSTEM START/STOP DISTRIBUTED SENDS
查询控制异步插入到Distributed
桌子 #4935 (张冬)
错误修复
- 在执行突变时忽略查询执行限制和合并限制的最大部件大小。 #5659 (安东*波波夫)
- 修复可能导致重复数据删除正常块(极其罕见)和插入重复块(更常见)的错误。 #5549 (阿利沙平)
- 功能修复
arrayEnumerateUniqRanked
对于具有空数组的参数 #5559 (proller) - 不要在没有轮询任何消息的情况下订阅Kafka主题。 #5698 (伊万)
- 使设置
join_use_nulls
对于不能在Nullable内的类型不起作用 #5700 (Olga Khvostikova) - 固定
Incorrect size of index granularity
错误 #5720 (coraxster) - 修正浮动到十进制转换溢出 #5607 (coraxster)
- 冲洗缓冲区时
WriteBufferFromHDFS
的析构函数被调用。 这修复了写入HDFS
. #5684 (新东鹏)
改进
- 对待空单元格
CSV
作为默认值时的设置input_format_defaults_for_omitted_fields
被启用。 #5625 (akuzm) - 外部字典的非阻塞加载。 #5567 (维塔利*巴拉诺夫)
- 可以根据设置动态更改已建立的连接的网络超时。 #4558 (Konstantin Podshumok)
- 使用 “public_suffix_list” 对于功能
firstSignificantSubdomain
,cutToFirstSignificantSubdomain
. 它使用一个完美的哈希表生成gperf
从文件生成的列表:https://publicsuffix.org/list/public_suffix_list.dat(例如,现在我们认识到域ac.uk
作为非显着)。 #5030 (纪尧姆*塔瑟里) - 通过
IPv6
系统表中的数据类型;统一客户端信息列system.processes
和system.query_log
#5640 (阿列克谢-米洛维多夫) - 使用会话与MySQL兼容性协议的连接。 #5476 #5646 (尤里*巴拉诺夫)
- 支持更多
ALTER
查询ON CLUSTER
. #5593 #5613 (sundyli) - 碌莽禄Support:
<logger>
第1节clickhouse-local
配置文件。 #5540 (proller) - 允许运行查询
remote
表函数clickhouse-local
#5627 (proller)
性能改进
- 添加在MergeTree列末尾写最后标记的可能性。 它允许避免对超出表数据范围的键进行无用的读取。 仅当使用自适应索引粒度时才启用此功能。 #5624 (阿利沙平)
- 通过减少非常慢的文件系统上的MergeTree表的性能
stat
syscalls #5648 (阿列克谢-米洛维多夫) - 修复了从版本19.6中引入的MergeTree表读取时的性能下降。 修复#5631。 #5633 (阿列克谢-米洛维多夫)
构建/测试/包装改进
- 已实施
TestKeeper
作为用于测试的ZooKeeper接口的实现 #5643 (阿列克谢-米洛维多夫) (levushkin aleksej) - 从现在起
.sql
测试可以通过服务器隔离,并行运行,并使用随机数据库。 它允许更快地运行它们,使用自定义服务器配置添加新的测试,并确保不同的测试不会相互影响。 #5554 (伊万) - 删除
<name>
和<metrics>
从性能测试 #5672 (Olga Khvostikova) - 固定 “select_format” 性能测试
Pretty
格式 #5642 (阿列克谢-米洛维多夫)
ClickHouse释放19.9
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 修复增量编解码器中的段错误,这会影响值小于32位大小的列。 该错误导致随机内存损坏。 #5786 (阿利沙平)
- 修复在检查部分低心率列中罕见的错误。 #5832 (阿利沙平)
- 修复ttl合并中的段错误与块中的非物理列。 #5819 (安东*波波夫)
- 修复低优先级查询的潜在无限休眠。 #5842 (阿列克谢-米洛维多夫)
- 修复ClickHouse如何将默认时区确定为UCT而不是UTC。 #5828 (阿列克谢-米洛维多夫)
- 修复在领导者副本之前的跟随者副本上执行分布式删除/更改/截断/优化集群查询的错误。 现在他们将直接在领导者副本上执行。 #5757 (阿利沙平)
- 修复了系统刷新日志查询后某些查询可能不会立即出现在query_log中的竞争条件。 #5685 (安东*波波夫)
- 增加了对常量参数的缺失支持
evalMLModel
功能。 #5820 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 打印有关冷冻部件的信息
system.parts
桌子 #5471 (proller) - 在clickhouse上询问客户端密码-如果未在参数中设置,则在tty上启动客户端 #5092 (proller)
- 执行
dictGet
和dictGetOrDefault
十进制类型的函数。 #5394 (Artem Zuikov)
改进
- Debian的初始化:添加服务停止超时 #5522 (proller)
- 默认情况下添加禁止设置,以创建具有可疑类型的表格 #5448 (Olga Khvostikova)
- 当不用作函数中的状态时,回归函数返回模型权重
evalMLMethod
. #5411 (Quid37) - 重命名和改进回归方法。 #5492 (Quid37)
- 更清晰的字符串搜索界面。 #5586 (Danila Kutenin)
错误修复
- 修复Kafka中潜在的数据丢失 #5445 (伊万)
- 修复潜在的无限循环
PrettySpace
使用零列调用时的格式 #5560 (Olga Khvostikova) - 修正了线性模型中的UInt32溢出错误。 允许对非常量模型参数的eval ML模型。 #5516 (尼古拉*科切托夫)
ALTER TABLE ... DROP INDEX IF EXISTS ...
如果提供的索引不存在,则不应引发异常 #5524 (格列布*诺维科夫)- 修复段错误
bitmapHasAny
在标量子查询中 #5528 (余志昌) - 修复了复制连接池不重试解析主机时的错误,即使删除了DNS缓存。 #5534 (阿利沙平)
- 固定
ALTER ... MODIFY TTL
在ReplicatedMergeTree上。 #5539 (安东*波波夫) - 修复插入到具体化列的分布式表中 #5429 (Azat Khuzhin)
- 修复截断联接存储时的错误alloc #5437 (TCeason)
- 在最近版本的包tzdata中,现在有些文件是符号链接。 当前用于检测默认时区的机制被打破,并为某些时区提供错误的名称。 现在至少我们强制时区名称到TZ的内容,如果提供。 #5443 (伊万)
- 修复一些极为罕见的情况下,MultiVolnitsky搜索器时,在总和恒定针至少16KB长。 该算法错过或复盖以前的结果,这可能导致错误的结果
multiSearchAny
. #5588 (Danila Kutenin) - 修复ExternalData请求的设置无法使用ClickHouse设置时的问题。 此外,现在,设置
date_time_input_format
和low_cardinality_allow_in_native_format
由于名称的歧义,无法使用(在外部数据中,它可以解释为表格式,在查询中它可以是一个设置)。 #5455 (Danila Kutenin) - 修复只从FS中删除部件而不从Zookeeper中删除部件时的错误。 #5520 (阿利沙平)
- 从MySQL协议中删除调试日志记录 #5478 (阿列克谢-米洛维多夫)
- 在DDL查询处理过程中跳过ZNONODE #5489 (Azat Khuzhin)
- 修复混合
UNION ALL
结果列类型。 有些情况下,结果列的数据和列类型不一致。 #5503 (Artem Zuikov) - 在错误的整数上抛出异常
dictGetT
功能,而不是崩溃。 #5446 (Artem Zuikov) - 修复散列字典中错误的element_count和load_factor
system.dictionaries
桌子 #5440 (Azat Khuzhin)
构建/测试/包装改进
- 固定构建没有
Brotli
HTTP压缩支持 (ENABLE_BROTLI=OFF
cmake变量)。 #5521 (Anton Yuzhaninov) - 包括ro哮。h为ro哮/咆哮。h #5523 (Origej Desh)
- 修复超扫描中的gcc9警告(#行指令是邪恶的!) #5546 (Danila Kutenin)
- 使用gcc-9编译时修复所有警告。 修复一些contrib问题。 修复gcc9ICE并将其提交给bugzilla。 #5498 (Danila Kutenin)
- 与lld固定链接 #5477 (阿列克谢-米洛维多夫)
- 删除字典中未使用的专业化 #5452 (Artem Zuikov)
- 针对不同类型的文件进行格式化和解析表的改进性能测试 #5497 (Olga Khvostikova)
- 修复并行测试运行 #5506 (proller)
- Docker:使用clickhouse-test中的configs #5531 (proller)
- 修复编译为FreeBSD #5447 (proller)
- 升级提升到1.70 #5570 (proller)
- 修复构建clickhouse作为子模块 #5574 (proller)
- 改进JSONExtract性能测试 #5444 (维塔利*巴拉诺夫)
ClickHouse释放19.8
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 添加了与JSON一起使用的函数 #4686 (hcz) #5124. (维塔利*巴拉诺夫)
- 添加一个函数basename,具有类似于basename函数的行为,它存在于许多语言中 (
os.path.basename
在python中,basename
in PHP, etc…). Work with both an UNIX-like path or a Windows path. #5136 (纪尧姆*塔瑟里) - 已添加
LIMIT n, m BY
或LIMIT m OFFSET n BY
为LIMIT BY子句设置n偏移量的语法。 #5138 (安东*波波夫) - 增加了新的数据类型
SimpleAggregateFunction
,它允许在一个具有光聚集的列AggregatingMergeTree
. 这只能用于简单的功能,如any
,anyLast
,sum
,min
,max
. #4629 (Boris Granveaud) - 增加了对函数中非常量参数的支持
ngramDistance
#5198 (Danila Kutenin) - 新增功能
skewPop
,skewSamp
,kurtPop
和kurtSamp
分别计算序列偏度、样本偏度、峰度和样本峰度。 #5200 (hcz) - 支持重命名操作
MaterializeView
存储。 #5209 (纪尧姆*塔瑟里) - 添加了允许使用MySQL客户端连接到ClickHouse的服务器。 #4715 (尤里*巴拉诺夫)
- 添加
toDecimal*OrZero
和toDecimal*OrNull
功能。 #5291 (Artem Zuikov) - 支持函数中的十进制类型:
quantile
,quantiles
,median
,quantileExactWeighted
,quantilesExactWeighted
媒体加权。 #5304 (Artem Zuikov) - 已添加
toValidUTF8
function, which replaces all invalid UTF-8 characters by replacement character <20> (U+FFFD). #5322 (Danila Kutenin) - 已添加
format
功能。 使用参数中列出的字符串格式化常量模式(简化的Python格式模式)。 #5330 (Danila Kutenin) - 已添加
system.detached_parts
表包含有关分离部分的信息MergeTree
桌子 #5353 (akuzm) - 已添加
ngramSearch
函数来计算针和大海捞针之间的非对称差异。 #5418#5422 (Danila Kutenin) - 使用聚合函数接口实现基本的机器学习方法(随机线性回归和逻辑回归)。 有不同的策略,用于更新模型权重(简单梯度下降,动量法,涅斯捷罗夫法)。 还支持自定义大小的小批次。 #4943 (Quid37)
- 执行
geohashEncode
和geohashDecode
功能。 #5003 (瓦西里*内姆科夫) - 添加聚合功能
timeSeriesGroupSum
,从而可以聚合不同的时间序列,即采样时间戳不对齐。 它将在两个采样时间戳之间使用线性插值,然后将时间序列和在一起。 添加聚合功能timeSeriesGroupRateSum
,它计算时间序列的速率,然后将速率总和在一起。 #4542 (刘杨宽) - 新增功能
IPv4CIDRtoIPv4Range
和IPv6CIDRtoIPv6Range
使用CIDR计算子网中IP的下限和上限。 #5095 (纪尧姆*塔瑟里) - 添加一个X-ClickHouse-Summary头,当我们发送查询使用HTTP启用设置
send_progress_in_http_headers
. 返回X-ClickHouse-Progress的常用信息,以及其他信息,例如在查询中插入了多少行和字节。 #5116 (纪尧姆*塔瑟里)
改进
- 已添加
max_parts_in_total
设置表的MergeTree家族(默认:100 000)防止分区键的不安全规范#5166. #5171 (阿列克谢-米洛维多夫) clickhouse-obfuscator
:通过将初始种子与列名(而不是列位置)组合来派生单个列的种子。 这用于转换具有多个相关表的数据集,以便在转换后表将保持可联接。 #5178 (阿列克谢-米洛维多夫)- 新增功能
JSONExtractRaw
,JSONExtractKeyAndValues
. 重命名函数jsonExtract<type>
到JSONExtract<type>
. 当出现问题时,这些函数返回对应的值,而不是NULL
. 修改功能JSONExtract
,现在它从最后一个参数中获取返回类型,并且不会注入nullables。 在AVX2指令不可用的情况下实现了回退到RapidJSON。 Simdjson库更新到新版本。 #5235 (维塔利*巴拉诺夫) - 现在
if
和multiIf
功能不依赖于条件的Nullable
,但依靠分支来实现sql兼容性。 #5238 (吴健) In
谓词现在生成Null
结果来自Null
输入像Equal
功能。 #5152 (吴健)- 检查来自Kafka的每个(flush_interval/poll_timeout)行数的时间限制。 这允许更频繁地中断Kafka consumer的读取,并检查顶级流的时间限制 #5249 (伊万)
- 链接rdkafka捆绑的SASL。 它应该允许使用SASL SCRAM身份验证 #5253 (伊万)
- 所有联接的RowRefList的批处理版本。 #5267 (Artem Zuikov)
- clickhouse服务器:更多信息侦听错误消息。 #5268 (proller)
- 在clickhouse-复印机的功能支持字典
<sharding_key>
#5270 (proller) - 添加新设置
kafka_commit_every_batch
来规范卡夫卡的承诺政策。 它允许设置提交模式:在处理每批消息之后,或者在整个块写入存储之后。 这是在某些极端情况下丢失一些消息或阅读两次之间的权衡。 #5308 (伊万) - 赂眉露>>
windowFunnel
支持其他无符号整数类型。 #5320 (sundyli) - 允许对虚拟列进行阴影
_table
在合并引擎。 #5325 (伊万) - 赂眉露>>
sequenceMatch
聚合函数支持其他无符号整数类型 #5339 (sundyli) - 如果校验和不匹配很可能是由硬件故障引起的,则更好的错误消息。 #5355 (阿列克谢-米洛维多夫)
- 检查基础表是否支持以下内容的采样
StorageMerge
#5366 (伊万) - Сlose MySQL connections after their usage in external dictionaries. It is related to issue #893. #5395 (Clément Rodriguez)
- MySQL线协议的改进。 将格式名称更改为MySQLWire。 使用RAII调用RSA_free。 如果无法创建上下文,则禁用SSL。 #5419 (尤里*巴拉诺夫)
- clickhouse-client: allow to run with unaccessable history file (read-only, no disk space, file is directory, …). #5431 (proller)
- 尊重异步插入到分布式表中的查询设置。 #4936 (TCeason)
- 重命名函数
leastSqr
到simpleLinearRegression
,LinearRegression
到linearRegression
,LogisticRegression
到logisticRegression
. #5391 (尼古拉*科切托夫)
性能改进
- 在ALTER MODIFY查询中并行处理非复制MergeTree表的部分。 #4639 (伊万库什)
- Regular达式提取中的优化。 #5193 #5191 (Danila Kutenin)
- 如果仅在join on部分中使用,则不要将右连接键列添加到join result。 #5260 (Artem Zuikov)
- 在第一个空响应之后冻结Kafka缓冲区。 它避免了多次调用
ReadBuffer::next()
对于一些行解析流的空结果。 #5283 (伊万) concat
多个参数的函数优化。 #5357 (Danila Kutenin)- Query optimisation. Allow push down IN statement while rewriting commа/cross join into inner one. #5396 (Artem Zuikov)
- 使用reference one升级我们的LZ4实现以获得更快的解压缩。 #5070 (Danila Kutenin)
- 实现了MSD基数排序(基于kxsort)和部分排序。 #5129 (Evgenii Pravda)
错误修复
- 修复推送需要列与联接 #5192 (张冬)
- 修正了当ClickHouse由systemd运行时,命令
sudo service clickhouse-server forcerestart
没有按预期工作。 #5204 (proller) - 修复DataPartsExchange中的http错误代码(9009端口上的服务器间http服务器始终返回代码200,即使是错误)。 #5216 (proller)
- 修复SimpleAggregateFunction字符串长于MAX_SMALL_STRING_SIZE #5311 (Azat Khuzhin)
- 修复错误
Decimal
到Nullable(Decimal)
转换中。 支持其他十进制到十进制转换(包括不同的比例)。 #5350 (Artem Zuikov) - 修正了simdjson库中导致错误计算的FPU clobbering
uniqHLL
和uniqCombined
聚合函数和数学函数,如log
. #5354 (阿列克谢-米洛维多夫) - 固定处理JSON函数中的混合常量/非常量情况。 #5435 (维塔利*巴拉诺夫)
- 修复
retention
功能。 现在所有满足一行数据的条件都被添加到数据状态。 #5119 (小路) - 修复结果类型
quantileExact
用小数。 #5304 (Artem Zuikov)
文件
构建/测试/打包改进
- 修复一些显示可能使用后免费的消毒剂报告。#5139 #5143 #5393 (伊万)
- 为了方便起见,将性能测试从单独的目录中移出。 #5158 (阿列克谢-米洛维多夫)
- 修复不正确的性能测试。 #5255 (阿利沙平)
- 增加了一个工具来计算由位翻转引起的校验和,以调试硬件问题。 #5334 (阿列克谢-米洛维多夫)
- 使亚军脚本更有用。 #5340#5360 (filimonov)
- 添加如何编写性能测试的小指令。 #5408 (阿利沙平)
- 添加在性能测试中创建,填写和删除查询中进行替换的功能 #5367 (Olga Khvostikova)
ClickHouse释放19.7
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
碌莽禄,拢,010-68520682<url>戮漏鹿芦,酶,虏卤赂拢,110102003042
新功能
错误修复
- 修复段错误
minmax
具有空值的索引。 #5246 (尼基塔*瓦西列夫) - 根据需要输出标记“LIMIT BY”中的所有输入列。 它修复 ‘Not found column’ 某些分布式查询中出错。 #5407 (康斯坦丁*潘)
- 修复 “Column ‘0’ already exists” 错误
SELECT .. PREWHERE
在具有默认值的列上 #5397 (proller) - 修复
ALTER MODIFY TTL
查询开ReplicatedMergeTree
. #5539 (安东*波波夫) - 当Kafka消费者无法启动时,不要使服务器崩溃。 #5285 (伊万)
- 固定位图函数产生错误的结果。 #5359 (杨小姐)
- 修复散列字典的element_count(不包括重复项) #5440 (Azat Khuzhin)
- 使用环境变量TZ的内容作为时区的名称。 在某些情况下,它有助于正确检测默认时区。#5443 (伊万)
- 不要试图将整数转换为
dictGetT
功能,因为它不能正常工作。 而是抛出一个异常。 #5446 (Artem Zuikov) - 在ExternalData HTTP请求修复设置。 #5455 (Danila 库特宁)
- 修复只从FS中删除部件而不从Zookeeper中删除部件时的错误。 #5520 (阿利沙平)
- 修复分段故障
bitmapHasAny
功能。 #5528 (余志昌) - 修复了复制连接池不重试解析主机时的错误,即使删除了DNS缓存。 #5534 (阿利沙平)
- 固定
DROP INDEX IF EXISTS
查询。 现在ALTER TABLE ... DROP INDEX IF EXISTS ...
如果提供的索引不存在,查询不会引发异常。 #5524 (格列布*诺维科夫) - 修复联合所有超类型列。 有些情况下,结果列的数据和列类型不一致。 #5503 (Artem Zuikov)
- 在DDL查询处理过程中跳过ZNONODE。 之前,如果另一个节点删除znode在任务队列中,那一个 没有处理它,但已经得到子列表,将终止DDLWorker线程。 #5489 (Azat Khuzhin)
- 修复插入到具体化列的分布式()表中。 #5429 (Azat Khuzhin)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 允许限制用户可以指定的设置的范围。 这些约束可以在用户设置配置文件中设置。 #4931 (维塔利 巴拉诺夫)
- 添加该函数的第二个版本
groupUniqArray
用一个可选的max_size
限制结果数组大小的参数。 这 行为类似于groupArray(max_size)(x)
功能。 #5026 (纪尧姆 Tassery) - 对于TSVWithNames/CSVWithNames输入文件格式,列顺序现在可以是
从文件头确定。 这是由控制
input_format_with_names_use_header
参数。 #5081 (亚历山大)
错误修复
- 在合并过程中uncompressed_cache+JOIN崩溃(#5197) #5133 (Danila 库特宁)
- Clickhouse客户端查询到系统表上的分段错误。 #5066 #5127 (伊万)
- 通过KafkaEngine重负载数据丢失(#4736) #5080 (伊万)
- 修复了在执行UNION查询时可能发生的非常罕见的数据争用条件,所有查询都涉及至少两个来自系统的选择。列,系统。表,系统。部件,系统。parts_tables或Merge系列的表,并同时执行相关表的列的更改。 #5189 (阿列克谢-米洛维多夫)
性能改进
- 使用基数排序按单个数字列进行排序
ORDER BY
没有LIMIT
. #5106, #4439 (Evgenii Pravda, 阿列克谢-米洛维多夫)
文件
构建/测试/打包改进
- 正确打印UTF-8字符
clickhouse-test
. #5084 (阿列克谢-米洛维多夫) - 为clickhouse-client添加命令行参数以始终加载建议 戴达 #5102 (阿列克谢-米洛维多夫)
- 解决一些PVS-Studio警告。 #5082 (阿列克谢-米洛维多夫)
- 更新LZ4 #5040 (Danila 库特宁)
- 添加gperf以构建即将到来的拉取请求#5030的requirements。 #5110 (proller)
ClickHouse释放19.6
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 修复了来自表函数的查询的条件下推
mysql
和odbc
和相应的表引擎。 这修复了#3540和#2384。 #5313 (阿列克谢-米洛维多夫) - 修复动物园管理员的死锁。 #5297 (github1youlc)
- 允许在CSV中引用小数。 #5284 (Artem Zuikov
- 禁止从float Inf/NaN转换为小数(抛出异常)。 #5282 (Artem Zuikov)
- 修复重命名查询中的数据竞赛。 #5247 (张冬)
- 暂时禁用LFAlloc。 使用LFAlloc可能会导致大量MAP_FAILED在分配UncompressedCache时,并导致高负载服务器上的查询崩溃。 cfdba93(Danila Kutenin)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 列和表的TTL表达式。 #4212 (安东*波波夫)
- 增加了对
brotli
http响应的压缩(接受编码:br) #4388 (米哈伊尔) - 增加了新功能
isValidUTF8
用于检查一组字节是否被正确地utf-8编码。 #4934 (Danila Kutenin) - 添加新的负载平衡策略
first_or_random
它将查询发送到第一个指定的主机,如果无法访问,则向分片的随机主机发送查询。 对于跨复制拓扑设置非常有用。 #5012 (纳瓦托洛梅)
实验特点
改进
- 增加了对函数的非常量和负大小和长度参数的支持
substringUTF8
. #4989 (阿列克谢-米洛维多夫) - 在左联接中禁用向下推到右表,在右联接中禁用左表,并在完全联接中禁用两个表。 在某些情况下,这可以修复错误的连接结果。 #4846 (伊万)
clickhouse-copier
:从自动上传任务配置--task-file
备选案文 #4876 (proller)- 为存储工厂和表函数工厂添加了错别字处理程序。 #4891 (Danila Kutenin)
- 支持不带子查询的多个联接的星号和限定星号 #4898 (Artem Zuikov)
- 使缺少列错误消息更加用户友好。 #4915 (Artem Zuikov)
性能改进
- ASOF加速显着 #4924 (Martijn Bakker)
向后不兼容的更改
错误修复
- 修正了潜在的空指针取消引用
clickhouse-copier
. #4900 (proller) - 修复了使用JOIN+ARRAY JOIN查询的错误 #4938 (Artem Zuikov)
- 固定挂在服务器的启动时,字典依赖于另一个字典通过引擎数据库=字典。 #4962 (维塔利*巴拉诺夫)
- 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)
- 修复潜在的错误结果
SELECT DISTINCT
与JOIN
#5001 (Artem Zuikov) - 修复了在执行UNION查询时可能发生的非常罕见的数据争用条件,所有查询都涉及至少两个来自系统的选择。列,系统。表,系统。部件,系统。parts_tables或Merge系列的表,并同时执行相关表的列的更改。 #5189 (阿列克谢-米洛维多夫)
构建/测试/打包改进
- 在不同的主机上运行clickhouse服务器时修复测试失败 #4713 (瓦西里*内姆科夫)
- clickhouse-test:在非tty环境中禁用颜色控制序列。 #4937 (阿利沙平)
- clickhouse-test:允许使用任何测试数据库(删除
test.
在可能的情况下获得资格) #5008 (proller) - 修复ubsan错误 #5037 (维塔利*巴拉诺夫)
- Yandex LFAlloc被添加到ClickHouse中,以不同的方式分配MarkCache和UncompressedCache数据,以更可靠地捕获段错误 #4995 (Danila Kutenin)
- Python util帮助反向移植和更改日志。 #4949 (伊万)
ClickHouse释放19.5
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 修正了位图*功能中可能出现的崩溃 #5220 #5228 (杨小姐)
- 修复了在执行UNION查询时可能发生的非常罕见的数据争用条件,所有查询都涉及至少两个来自系统的选择。列,系统。表,系统。部件,系统。parts_tables或Merge系列的表,并同时执行相关表的列的更改。 #5189 (阿列克谢-米洛维多夫)
- 修正错误
Set for IN is not created yet in case of using single LowCardinality column in the left part of IN
. 如果lowcardinality列是主键的一部分,则会发生此错误。 #5031 #5154 (尼古拉*科切托夫) - 修改保留函数:如果一行同时满足第一个和第N个条件,则只有第一个满足的条件被添加到数据状态。 现在所有满足一行数据的条件都被添加到数据状态。 #5119 (小路)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 固定设置类型
max_partitions_per_insert_block
从布尔到UInt64。 #5028 (2.Mohammad Hossein Sekhavat)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 超扫描 添加了多个正则表达式匹配(函数
multiMatchAny
,multiMatchAnyIndex
,multiFuzzyMatchAny
,multiFuzzyMatchAnyIndex
). #4780, #4841 (Danila Kutenin) multiSearchFirstPosition
添加了功能。 #4780 (Danila Kutenin)- 为表实现每行的预定义表达式筛选器。 #4792 (伊万)
- 一种基于bloom过滤器的新型数据跳过索引(可用于
equal
,in
和like
功能)。 #4499 (尼基塔*瓦西列夫) - 已添加
ASOF JOIN
它允许运行连接到最新已知值的查询。 #4774 #4867 #4863 #4875 (Martijn Bakker, Artem Zuikov) - 重写多个
COMMA JOIN
到CROSS JOIN
. 然后将它们重写为INNER JOIN
如果可能的话 #4661 (Artem Zuikov)
改进
topK
和topKWeighted
现在支持自定义loadFactor
(修复问题 #4252). #4634 (基里尔丹信)- 允许使用
parallel_replicas_count > 1
即使对于没有采样的表(设置简单地忽略它们)。 在以前的版本中,它导致异常。 #4637 (Alexey Elymanov) - 支持
CREATE OR REPLACE VIEW
. 允许在单个语句中创建视图或设置新定义。 #4654 (Boris Granveaud) Buffer
表引擎现在支持PREWHERE
. #4671 (刘杨宽)- 添加在zookeeper中启动没有元数据的复制表的能力
readonly
模式 #4691 (阿利沙平) - 在clickhouse客户端固定进度条闪烁。 使用时,这个问题最明显
FORMAT Null
随着流查询。 #4811 (阿列克谢-米洛维多夫) - 允许禁用功能
hyperscan
基于每个用户的库,以限制潜在的过度和不受控制的资源使用。 #4816 (阿列克谢-米洛维多夫) - 添加版本号记录所有错误。 #4824 (proller)
- 增加了限制
multiMatch
需要字符串大小以适应的函数unsigned int
. 还增加了参数的数量限制multiSearch
功能。 #4834 (Danila Kutenin) - 改进了超扫描暂存空间的使用和错误处理。 #4866 (Danila Kutenin)
- 填充
system.graphite_detentions
从表配置*GraphiteMergeTree
发动机表. #4584 (Mikhail f. Shiryaev) - 重命名
trigramDistance
功能ngramDistance
并添加更多的功能CaseInsensitive
和UTF
. #4602 (Danila Kutenin) - 改进的数据跳过指数计算。 #4640 (尼基塔*瓦西列夫)
- 保持平凡,
DEFAULT
,MATERIALIZED
和ALIAS
在一个列表中的列(修复问题 #2867). #4707 (Alex Zatelepin)
错误修复
- 避免
std::terminate
在内存分配失败的情况下。 现在std::bad_alloc
按预期引发异常。 #4665 (阿列克谢-米洛维多夫) - 修复capnproto从缓冲区读取。 有时文件没有通过HTTP成功加载。 #4674 (弗拉季斯拉夫)
- 修复错误
Unknown log entry type: 0
后OPTIMIZE TABLE FINAL
查询。 #4683 (阿莫斯鸟) - 错误的参数
hasAny
或hasAll
函数可能会导致段错误。 #4698 (阿列克谢-米洛维多夫) - 执行时可能会发生死锁
DROP DATABASE dictionary
查询。 #4701 (阿列克谢-米洛维多夫) - 修复未定义的行为
median
和quantile
功能。 #4702 (hcz) - 修复压缩级别检测时
network_compression_method
小写。 在19.1节中被打破。 #4706 (proller) - 固定的无知
<timezone>UTC</timezone>
设置(修复问题 #4658). #4718 (proller) - 修复
histogram
函数行为Distributed
桌子 #4741 (olegkv) - 固定tsan报告
destroy of a locked mutex
. #4742 (阿列克谢-米洛维多夫) - 修复了由于系统日志使用中的争用条件而关闭的TSan报告。 修复了当part_log启用时关机后的潜在使用。 #4758 (阿列克谢-米洛维多夫)
- 修复重新检查零件
ReplicatedMergeTreeAlterThread
在错误的情况下。 #4772 (尼古拉*科切托夫) - 对中间聚合函数状态的算术运算不适用于常量参数(如子查询结果)。 #4776 (阿列克谢-米洛维多夫)
- 始终在元数据中反引用列名。 否则,不可能创建一个名为列的表
index
(由于格式错误,服务器无法重新启动ATTACH
元数据中的查询)。 #4782 (阿列克谢-米洛维多夫) - 修复崩溃
ALTER ... MODIFY ORDER BY
上Distributed
桌子 #4790 (TCeason) - 修复段错误
JOIN ON
已启用enable_optimize_predicate_expression
. #4794 (张冬) - 修复kafka使用protobuf消息后添加无关行的错误。 #4808 (维塔利*巴拉诺夫)
- 修复崩溃
JOIN
在不可为空的vs可为空的列上。 修复NULLs
在右键ANY JOIN
+join_use_nulls
. #4815 (Artem Zuikov) - 修复分段故障
clickhouse-copier
. #4835 (proller) - 在固定的竞争条件
SELECT
从system.tables
如果同时重命名或更改表。 #4836 (阿列克谢-米洛维多夫) - 获取已经过时的数据部分时修复了数据竞赛。 #4839 (阿列克谢-米洛维多夫)
- 固定罕见的数据竞赛,可以在发生
RENAME
MergeTree家族的表. #4844 (阿列克谢-米洛维多夫) - 修正功能中的分段故障
arrayIntersect
. 如果函数使用常量和普通参数混合调用,则可能会发生分段错误。 #4847 (钱丽祥) - 固定读取
Array(LowCardinality)
column在极少数情况下,当column包含一个长序列的空数组时。 #4850 (尼古拉*科切托夫) - 修复崩溃
FULL/RIGHT JOIN
当我们加入可为空vs不可为空时。 #4855 (Artem Zuikov) - 修复
No message received
在副本之间获取部件时出现异常。 #4856 (阿利沙平) - 固定
arrayIntersect
函数错误导致在单个数组中的几个重复值的情况下。 #4871 (尼古拉*科切托夫) - 在并发期间修复争用条件
ALTER COLUMN
可能导致服务器崩溃的查询(修复问题 #3421). #4592 (Alex Zatelepin) - 修复不正确的结果
FULL/RIGHT JOIN
与常量列。 #4723 (Artem Zuikov) - 修复重复
GLOBAL JOIN
用星号。 #4705 (Artem Zuikov) - 修复参数扣除
ALTER MODIFY
列CODEC
未指定列类型时。 #4883 (阿利沙平) - 功能
cutQueryStringAndFragment()
和queryStringAndFragment()
现在正常工作时URL
包含一个片段,没有查询。 #4894 (维塔利*巴拉诺夫) - 修复设置时罕见的错误
min_bytes_to_use_direct_io
大于零,这发生在线程必须在列文件中向后寻找时。 #4897 (阿利沙平) - 修复聚合函数的错误参数类型
LowCardinality
参数(修复问题 #4919). #4922 (尼古拉*科切托夫) - 修复错误的名称资格
GLOBAL JOIN
. #4969 (Artem Zuikov) - 修复功能
toISOWeek
1970年的结果。 #4988 (阿列克谢-米洛维多夫) - 修复
DROP
,TRUNCATE
和OPTIMIZE
查询重复,在执行时ON CLUSTER
为ReplicatedMergeTree*
表家庭. #4991 (阿利沙平)
向后不兼容的更改
- 重命名设置
insert_sample_with_metadata
到设置input_format_defaults_for_omitted_fields
. #4771 (Artem Zuikov) - 添加设置
max_partitions_per_insert_block
(默认值为100)。 如果插入的块包含较大数量的分区,则会引发异常。 如果要删除限制(不推荐),请将其设置为0。 #4845 (阿列克谢-米洛维多夫) - 多搜索功能被重命名 (
multiPosition
到multiSearchAllPositions
,multiSearch
到multiSearchAny
,firstMatch
到multiSearchFirstIndex
). #4780 (Danila Kutenin)
性能改进
- 通过内联优化Volnitsky搜索器,为许多针或许多类似bigrams的查询提供约5-10%的搜索改进。 #4862 (Danila Kutenin)
- 修复设置时的性能问题
use_uncompressed_cache
大于零时,即出现在所有读取缓存中包含的数据时。 #4913 (阿利沙平)
构建/测试/包装改进
- 强化调试构建:更精细的内存映射和ASLR;为标记缓存和索引添加内存保护。 这允许在ASan和MSan无法做到这一点的情况下找到更多的内存st脚错误。 #4632 (阿列克谢-米洛维多夫)
- 添加对cmake变量的支持
ENABLE_PROTOBUF
,ENABLE_PARQUET
和ENABLE_BROTLI
它允许启用/禁用上述功能(与我们对librdkafka,mysql等所做的相同)。 #4669 (Silviu Caragea) - 添加打印进程列表和堆栈跟踪的所有线程的能力,如果一些查询测试运行后挂起。 #4675 (阿利沙平)
- 添加重试
Connection loss
错误clickhouse-test
. #4682 (阿利沙平) - 在打包程序脚本中添加使用vagrant的freebsd build和使用thread sanitizer的build。 #4712 #4748 (阿利沙平)
- 现在用户要求用户密码
'default'
在安装过程中。 #4725 (proller) - 禁止在警告
rdkafka
图书馆. #4740 (阿列克谢-米洛维多夫) - 允许在没有ssl的情况下构建。 #4750 (proller)
- 添加从自定义用户启动clickhouse服务器映像的方法。 #4753 (Mikhail f. Shiryaev)
- 升级contrib升压到1.69. #4793 (proller)
- 禁用使用
mremap
使用线程消毒剂编译时。 令人惊讶的是,TSan并没有拦截mremap
(虽然它确实拦截mmap
,munmap
这会导致误报。 修复了有状态测试中的TSan报告。 #4859 (阿列克谢-米洛维多夫) - 通过HTTP接口使用格式模式添加测试检查。 #4864 (维塔利*巴拉诺夫)
ClickHouse释放19.4
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 避免
std::terminate
在内存分配失败的情况下。 现在std::bad_alloc
按预期引发异常。 #4665 (阿列克谢-米洛维多夫) - 修复capnproto从缓冲区读取。 有时文件没有通过HTTP成功加载。 #4674 (弗拉季斯拉夫)
- 修复错误
Unknown log entry type: 0
后OPTIMIZE TABLE FINAL
查询。 #4683 (阿莫斯鸟) - 错误的参数
hasAny
或hasAll
函数可能会导致段错误。 #4698 (阿列克谢-米洛维多夫) - 执行时可能会发生死锁
DROP DATABASE dictionary
查询。 #4701 (阿列克谢-米洛维多夫) - 修复未定义的行为
median
和quantile
功能。 #4702 (hcz) - 修复压缩级别检测时
network_compression_method
小写。 在19.1节中被打破。 #4706 (proller) - 固定的无知
<timezone>UTC</timezone>
设置(修复问题 #4658). #4718 (proller) - 修复
histogram
函数行为Distributed
桌子 #4741 (olegkv) - 固定tsan报告
destroy of a locked mutex
. #4742 (阿列克谢-米洛维多夫) - 修复了由于系统日志使用中的争用条件而关闭的TSan报告。 修复了当part_log启用时关机后的潜在使用。 #4758 (阿列克谢-米洛维多夫)
- 修复重新检查零件
ReplicatedMergeTreeAlterThread
在错误的情况下。 #4772 (尼古拉*科切托夫) - 对中间聚合函数状态的算术运算不适用于常量参数(如子查询结果)。 #4776 (阿列克谢-米洛维多夫)
- 始终在元数据中反引用列名。 否则,不可能创建一个名为列的表
index
(由于格式错误,服务器无法重新启动ATTACH
元数据中的查询)。 #4782 (阿列克谢-米洛维多夫) - 修复崩溃
ALTER ... MODIFY ORDER BY
上Distributed
桌子 #4790 (TCeason) - 修复段错误
JOIN ON
已启用enable_optimize_predicate_expression
. #4794 (张冬) - 修复kafka使用protobuf消息后添加无关行的错误。 #4808 (维塔利*巴拉诺夫)
- 修复分段故障
clickhouse-copier
. #4835 (proller) - 在固定的竞争条件
SELECT
从system.tables
如果同时重命名或更改表。 #4836 (阿列克谢-米洛维多夫) - 获取已经过时的数据部分时修复了数据竞赛。 #4839 (阿列克谢-米洛维多夫)
- 固定罕见的数据竞赛,可以在发生
RENAME
MergeTree家族的表. #4844 (阿列克谢-米洛维多夫) - 修正功能中的分段故障
arrayIntersect
. 如果函数使用常量和普通参数混合调用,则可能会发生分段错误。 #4847 (钱丽祥) - 固定读取
Array(LowCardinality)
column在极少数情况下,当column包含一个长序列的空数组时。 #4850 (尼古拉*科切托夫) - 修复
No message received
在副本之间获取部件时出现异常。 #4856 (阿利沙平) - 固定
arrayIntersect
函数错误导致在单个数组中的几个重复值的情况下。 #4871 (尼古拉*科切托夫) - 在并发期间修复争用条件
ALTER COLUMN
可能导致服务器崩溃的查询(修复问题 #3421). #4592 (Alex Zatelepin) - 修复参数扣除
ALTER MODIFY
列CODEC
未指定列类型时。 #4883 (阿利沙平) - 功能
cutQueryStringAndFragment()
和queryStringAndFragment()
现在正常工作时URL
包含一个片段,没有查询。 #4894 (维塔利*巴拉诺夫) - 修复设置时罕见的错误
min_bytes_to_use_direct_io
大于零,这发生在线程必须在列文件中向后寻找时。 #4897 (阿利沙平) - 修复聚合函数的错误参数类型
LowCardinality
参数(修复问题 #4919). #4922 (尼古拉*科切托夫) - 修复功能
toISOWeek
1970年的结果。 #4988 (阿列克谢-米洛维多夫) - 修复
DROP
,TRUNCATE
和OPTIMIZE
查询重复,在执行时ON CLUSTER
为ReplicatedMergeTree*
表家庭. #4991 (阿利沙平)
改进
- 保持平凡,
DEFAULT
,MATERIALIZED
和ALIAS
在一个列表中的列(修复问题 #2867). #4707 (Alex Zatelepin)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 修复崩溃
FULL/RIGHT JOIN
当我们加入可为空vs不可为空时。 #4855 (Artem Zuikov) - 修复分段故障
clickhouse-copier
. #4835 (proller)
构建/测试/包装改进
- 添加从自定义用户启动clickhouse服务器映像的方法。 #4753 (Mikhail f. Shiryaev)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 包含两个固定的远程查询
LIMIT BY
和LIMIT
. 以前,如果LIMIT BY
和LIMIT
用于远程查询,LIMIT
可能发生之前LIMIT BY
,这导致过滤的结果。 #4708 (康斯坦丁*潘)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能
- 增加了全面支持
Protobuf
格式(输入和输出,嵌套数据结构)。 #4174 #4493 (维塔利*巴拉诺夫) - 添加位图功能与Ro哮的位图。 #4207 (杨小姐) #4568 (维塔利*巴拉诺夫)
- 实木复合地板格式支持。 #4448 (proller)
- 为模糊字符串比较添加了N-gram距离。 它类似于R语言中的q-gram指标。 #4466 (Danila Kutenin)
- 结合专用聚合和保留模式中的石墨汇总规则。 #4426 (Mikhail f. Shiryaev)
- 已添加
max_execution_speed
和max_execution_speed_bytes
限制资源使用。 已添加min_execution_speed_bytes
设置以补充min_execution_speed
. #4430 (张冬) - 实现功能
flatten
. #4555 #4409 (阿列克谢-米洛维多夫, kzon) - 新增功能
arrayEnumerateDenseRanked
和arrayEnumerateUniqRanked
(这就像arrayEnumerateUniq
但是允许微调数组深度以查看多维数组内部)。 #4475 (proller) #4601 (阿列克谢-米洛维多夫) - Multiple JOINS with some restrictions: no asterisks, no complex aliases in ON/WHERE/GROUP BY/… #4462 (Artem Zuikov)
错误修复
- 此版本还包含19.3和19.1中的所有错误修复。
- 修正了数据跳过索引的错误:插入后颗粒顺序不正确。 #4407 (尼基塔*瓦西列夫)
- 固定
set
ツ环板forョNullable
和LowCardinality
列。 在它之前,set
索引与Nullable
或LowCardinality
列导致错误Data type must be deserialized with multiple streams
同时选择。 #4594 (尼古拉*科切托夫) - 正确设置完整的update_time
executable
字典更新. #4551 (Tema Novikov) - 修复19.3中损坏的进度条。 #4627 (filimonov)
- 在某些情况下,修复了内存区域收缩时MemoryTracker的不一致值。 #4619 (阿列克谢-米洛维多夫)
- 修复了ThreadPool中未定义的行为。 #4612 (阿列克谢-米洛维多夫)
- 修正了一个非常罕见的崩溃的消息
mutex lock failed: Invalid argument
当MergeTree表与SELECT同时删除时,可能会发生这种情况。 #4608 (Alex Zatelepin) - ODBC驱动程序兼容
LowCardinality
数据类型。 #4381 (proller) - FreeBSD:修复程序
AIOcontextPool: Found io_event with unknown id 0
错误 #4438 (urgordeadbeef) system.part_log
无论配置如何,都会创建表。 #4483 (阿列克谢-米洛维多夫)- 修复未定义的行为
dictIsIn
缓存字典功能。 #4515 (阿利沙平) - 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 (Alex Zatelepin)
- 默认情况下禁用compile_expressions,直到我们得到自己
llvm
contrib并且可以测试它clang
和asan
. #4579 (阿利沙平) - 预防
std::terminate
当invalidate_query
为clickhouse
外部字典源返回了错误的结果集(空或一行以上或一列以上)。 固定的问题,当invalidate_query
执行每五秒钟,无论到lifetime
. #4583 (阿列克谢-米洛维多夫) - 避免死锁时
invalidate_query
对于与字典clickhouse
资料来源涉及system.dictionaries
表或Dictionaries
数据库(罕见的情况)。 #4599 (阿列克谢-米洛维多夫) - 修复了交叉连接与空在哪里。 #4598 (Artem Zuikov)
- 在功能固定段错误 “replicate” 传递常量参数时。 #4603 (阿列克谢-米洛维多夫)
- 使用谓词优化器修复lambda函数。 #4408 (张冬)
- 多个联接多个修复。 #4595 (Artem Zuikov)
改进
- 在右表列的连接上部分支持别名。 #4412 (Artem Zuikov)
- 结果多加入了需要正确的结果,名称为使用中子选择. 替换平的别名来源中的名称结果。 #4474 (Artem Zuikov)
- 改进连接语句的下推逻辑。 #4387 (伊万)
性能改进
- 改进的启发式 “move to PREWHERE” 优化。 #4405 (阿列克谢-米洛维多夫)
- 使用适当的查找表,使用HashTable的api用于8位和16位密钥。 #4536 (阿莫斯鸟)
- 改进字符串比较的性能。 #4564 (阿列克谢-米洛维多夫)
- 在单独的线程中清理分布式DDL队列,以便它不会减慢处理分布式DDL任务的主循环。 #4502 (Alex Zatelepin)
- 当
min_bytes_to_use_direct_io
如果设置为1,则不是每个文件都使用O_DIRECT模式打开,因为要读取的数据大小有时被一个压缩块的大小所低估。 #4526 (阿列克谢-米洛维多夫)
构建/测试/包装改进
- 增加了对clang-9的支持 #4604 (阿列克谢-米洛维多夫)
- 修复错误
__asm__
说明(再次) #4621 (Konstantin Podshumok) - 添加指定设置的能力
clickhouse-performance-test
从命令行。 #4437 (阿利沙平) - 将字典测试添加到集成测试。 #4477 (阿利沙平)
- 在网站上添加了来自基准测试的查询,以自动化性能测试。 #4496 (阿列克谢-米洛维多夫)
xxhash.h
在外部lz4中不存在,因为它是一个实现细节,并且它的符号是命名空间的XXH_NAMESPACE
麦克罗 当lz4是外部的,xxHash也必须是外部的,并且依赖者必须链接到它。 #4495 (Origej Desh)- 固定的情况下,当
quantileTiming
聚合函数可以用负或浮点参数调用(这修复了使用未定义的行为消毒器的模糊测试)。 #4506 (阿列克谢-米洛维多夫) - 拼写错误更正。 #4531 (sdk2)
- 在Mac上修复编译。 #4371 (维塔利*巴拉诺夫)
- Freebsd和各种不寻常的构建配置的构建修复程序。 #4444 (proller)
ClickHouse释放19.3
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 修复崩溃
FULL/RIGHT JOIN
当我们加入可为空vs不可为空时。 #4855 (Artem Zuikov) - 修复分段故障
clickhouse-copier
. #4835 (proller) - 固定读取
Array(LowCardinality)
column在极少数情况下,当column包含一个长序列的空数组时。 #4850 (尼古拉*科切托夫)
构建/测试/包装改进
- 添加从自定义用户启动clickhouse服务器映像的方法 #4753 (Mikhail f. Shiryaev)
碌莽禄,拢,010-68520682<url>
错误修复
- 修正了#3920中的错误。 此错误表现为随机缓存损坏(消息
Unknown codec family code
,Cannot seek through file
)和段错误。 这个错误最早出现在19.1版本中,并且存在于19.1.10和19.3.6之前的版本中。 #4623 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复
- 当线程池中有超过1000个线程时,
std::terminate
线程退出时可能发生。 Azat Khuzhin #4485 #4505 (阿列克谢-米洛维多夫) - 现在可以创建
ReplicatedMergeTree*
对没有默认值的列进行注释的表和对没有注释和默认值的列进行编解码的表。 还修复编解码器的比较。 #4523 (阿利沙平) - 修复了与数组或元组联接时的崩溃。 #4552 (Artem Zuikov)
- 修复了clickhouse-复印机中的消息崩溃
ThreadStatus not created
. #4540 (Artem Zuikov) - 如果使用分布式Ddl,则在服务器关闭时修复了挂机问题。 #4472 (Alex Zatelepin)
- 错误的列编号打印在有关文本格式分析的列数大于10的错误消息中。 #4484 (阿列克谢-米洛维多夫)
构建/测试/打包改进
- 固定构建与启用AVX。 #4527 (阿列克谢-米洛维多夫)
- 基于已知版本而不是编译它的内核启用扩展记帐和IO记帐。 #4541 (纳瓦托洛梅)
- 允许跳过core_dump的设置。size_limit,如果限制设置失败,则警告而不是throw。 #4473 (proller)
- 删除了
inline
标签void readBinary(...)
在Field.cpp
. 也合并冗余namespace DB
块。 #4530 (hcz)
碌莽禄,拢,010-68520682<url>
错误修复
- 修正了大型http插入查询处理的错误。 #4454 (阿利沙平)
- 修正了向后不兼容的旧版本,由于错误的实现
send_logs_level
设置。 #4445 (阿列克谢-米洛维多夫) - 修正了表函数的向后不兼容性
remote
与列注释介绍. #4446 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>
改进
- 执行以下操作时,表索引大小不考虑内存限制
ATTACH TABLE
查询。 避免了分离后无法连接表的可能性。 #4396 (阿列克谢-米洛维多夫) - 稍微提高了从ZooKeeper接收的最大字符串和数组大小的限制。 它允许继续与增加的尺寸工作
CLIENT_JVMFLAGS=-Djute.maxbuffer=...
在动物园管理员。 #4398 (阿列克谢-米洛维多夫) - 允许修复被遗弃的副本,即使它已经在其队列中拥有大量的节点。 #4399 (阿列克谢-米洛维多夫)
- 添加一个必需的参数
SET
索引(最大存储行数)。 #4386 (尼基塔*瓦西列夫)
错误修复
- 固定
WITH ROLLUP
单组结果LowCardinality
钥匙 #4384 (尼古拉*科切托夫) - 在设置索引固定错误(删除颗粒,如果它包含超过
max_rows
行)。 #4386 (尼基塔*瓦西列夫) - 很多的FreeBSD构建修复。 #4397 (proller)
- 固定别名替换查询与子查询包含相同的别名(问题 #4110). #4351 (Artem Zuikov)
构建/测试/打包改进
碌莽禄,拢,010-68520682<url>
新功能
- 添加了
KILL MUTATION
允许删除由于某些原因卡住的突变的声明。 已添加latest_failed_part
,latest_fail_time
,latest_fail_reason
字段到system.mutations
表更容易排除故障。 #4287 (Alex Zatelepin) - 添加聚合功能
entropy
计算香农熵 #4238 (Quid37) - 添加发送查询的功能
INSERT INTO tbl VALUES (....
到服务器而不拆分query
和data
零件。 #4301 (阿利沙平) - 通用实现
arrayWithConstant
添加了功能。 #4322 (阿列克谢-米洛维多夫) - 已实施
NOT BETWEEN
比较运算符。 #4228 (Dmitry Naumov) - 执行
sumMapFiltered
为了能够限制其值将被求和的键的数量sumMap
. #4129 (Léo Ercolanelli) - 增加了支持
Nullable
类型mysql
表功能。 #4198 (Emmanuel Donin de Rosière) - 支持任意常量表达式
LIMIT
条款 #4246 (k3box) - 已添加
topKWeighted
采用带有(无符号整数)权重的附加参数的聚合函数。 #4245 (安德鲁*戈尔曼) StorageJoin
现在支持join_any_take_last_row
允许复盖同一键的现有值的设置。 #3973 (阿莫斯鸟- 添加功能
toStartOfInterval
. #4304 (维塔利*巴拉诺夫) - 已添加
RowBinaryWithNamesAndTypes
格式。 #4200 (Oleg V.Kozlyuk) - 已添加
IPv4
和IPv6
数据类型。 更有效的实现IPv*
功能。 #3669 (瓦西里*内姆科夫) - 添加功能
toStartOfTenMinutes()
. #4298 (维塔利*巴拉诺夫) - 已添加
Protobuf
输出格式。 #4005 #4158 (维塔利*巴拉诺夫) - 增加了对数据导入(插入)HTTP接口的brotli支持。 #4235 (米哈伊尔)
- 增加了提示,而用户做出错字的函数名称或键入命令行客户端。 #4239 (Danila Kutenin)
- 已添加
Query-Id
到服务器的HTTP响应头。 #4231 (米哈伊尔)
实验特点
- 已添加
minmax
和set
MergeTree表引擎系列的数据跳过索引。 #4143 (尼基塔*瓦西列夫) - 增加了转换
CROSS JOIN
到INNER JOIN
如果可能的话 #4221 #4266 (Artem Zuikov)
错误修复
- 固定
Not found column
对于重复的列JOIN ON
科。 #4279 (Artem Zuikov) - 赂眉露>>
START REPLICATED SENDS
命令开始复制发送。 #4229 (纳瓦托洛梅) - 固定聚合函数执行
Array(LowCardinality)
争论。 #4055 (KochetovNicolai) - 修正了错误的行为,当做
INSERT ... SELECT ... FROM file(...)
查询和文件有CSVWithNames
或TSVWIthNames
格式和第一个数据行丢失。 #4297 (阿列克谢-米洛维多夫) - 如果字典不可用,则修复了字典重新加载时的崩溃。 此错误出现在19.1.6中。 #4188 (proller)
- 固定
ALL JOIN
右表中有重复项。 #4184 (Artem Zuikov) - 修正了分段故障
use_uncompressed_cache=1
和异常与错误的未压缩大小。 此错误出现在19.1.6中。 #4186 (阿利沙平) - 固定
compile_expressions
错误与大(超过int16)日期的比较。 #4341 (阿利沙平) - 从表函数选择时固定无限循环
numbers(0)
. #4280 (阿列克谢-米洛维多夫) - 暂时禁用谓词优化
ORDER BY
. #3890 (张冬) - 固定
Illegal instruction
在旧Cpu上使用base64函数时出错。 仅当ClickHouse使用gcc-8编译时,才会重现此错误。 #4275 (阿列克谢-米洛维多夫) - 固定
No message received
通过TLS连接与PostgreSQL ODBC驱动程序交互时出错。 还修复了使用MySQL ODBC驱动程序时的段错误。 #4170 (阿列克谢-米洛维多夫) - 修正错误的结果时
Date
和DateTime
参数用于条件运算符(函数)的分支if
). 增加了函数的通用案例if
. #4243 (阿列克谢-米洛维多夫) - ClickHouse字典现在加载内
clickhouse
过程。 #4166 (阿列克谢-米洛维多夫) - 修复死锁时
SELECT
从一个表File
引擎被重试后No such file or directory
错误 #4161 (阿列克谢-米洛维多夫) - 从选择时固定的竞争条件
system.tables
可能会给table doesn't exist
错误 #4313 (阿列克谢-米洛维多夫) clickhouse-client
如果在交互模式下运行,则在加载命令行建议的数据时可以在退出时段错误。 #4317 (阿列克谢-米洛维多夫)- 修正了一个错误,当包含突变的执行
IN
操作员产生了不正确的结果。 #4099 (Alex Zatelepin) - 修正错误:如果有一个数据库
Dictionary
引擎中,所有字典在服务器启动时强制加载,如果有来自localhost的ClickHouse源字典,则字典无法加载。 #4255 (阿列克谢-米洛维多夫) - 修复了在服务器关闭时尝试再次创建系统日志时的错误。 #4254 (阿列克谢-米洛维多夫)
- 正确返回正确的类型和正确处理锁
joinGet
功能。 #4153 (阿莫斯鸟) - 已添加
sumMapWithOverflow
功能。 #4151 (Léo Ercolanelli) - 固定段错误
allow_experimental_multiple_joins_emulation
. 52de2c (Artem Zuikov) - 修正错误与不正确
Date
和DateTime
比较。 #4237 (valexey) - 在未定义的行为消毒固定模糊测试:增加了参数类型检查
quantile*Weighted
家庭的功能。 #4145 (阿列克谢-米洛维多夫) - 修复了在删除旧数据部分时罕见的争用条件可能会失败
File not found
错误 #4378 (阿列克谢-米洛维多夫) - 修复缺少/etc/clickhouse-server/config的安装包。xml #4343 (proller)
构建/测试/打包改进
- Debian软件包:根据配置正确的/etc/clickhouse-server/预处理链接。 #4205 (proller)
- Freebsd的各种构建修复程序。 #4225 (proller)
- 增加了在perftest中创建,填充和删除表的能力。 #4220 (阿利沙平)
- 添加了一个脚本来检查重复的包括。 #4326 (阿列克谢-米洛维多夫)
- 增加了在性能测试中通过索引运行查询的能力。 #4264 (阿利沙平)
- 建议安装带有调试符号的软件包。 #4274 (阿列克谢-米洛维多夫)
- 重构性能测试。 更好的记录和信号处理。 #4171 (阿利沙平)
- 将文档添加到匿名Yandex。Metrika数据集. #4164 (阿利沙平)
- Аdded tool for converting an old month-partitioned part to the custom-partitioned format. #4195 (Alex Zatelepin)
- 添加了有关s3中两个数据集的文档。 #4144 (阿利沙平)
- 增加了从拉请求描述创建更新日志的脚本。 #4169 #4173 (KochetovNicolai) (KochetovNicolai)
- 为ClickHouse添加了木偶模块。 #4182 (Maxim Fedotov)
- 添加了一组无证函数的文档。 #4168 (张冬)
- ARM构建修复。 #4210#4306 #4291 (proller) (proller)
- 字典测试现在能够从运行
ctest
. #4189 (proller) - 现在
/etc/ssl
用作带有SSL证书的默认目录。 #4167 (阿列克谢-米洛维多夫) - 在开始时添加了检查SSE和AVX指令。 #4234 (Igr)
- 初始化脚本将等待服务器,直到启动。 #4281 (proller)
向后不兼容的更改
- 已删除
allow_experimental_low_cardinality_type
设置。LowCardinality
数据类型已准备就绪。 #4323 (阿列克谢-米洛维多夫) - 根据可用内存量减少标记高速缓存大小和未压缩高速缓存大小。 #4240 (Lopatin Konstantin
- 添加关键字
INDEX
在CREATE TABLE
查询。 具有名称的列index
必须使用反引号或双引号引用:`index`
. #4143 (尼基塔*瓦西列夫) sumMap
现在提升结果类型而不是溢出。 老sumMap
行为可以通过使用获得sumMapWithOverflow
功能。 #4151 (Léo Ercolanelli)
性能改进
std::sort
改为pdqsort
对于没有LIMIT
. #4236 (Evgenii Pravda)- 现在服务器重用全局线程池中的线程。 这会影响某些角落情况下的性能。 #4150 (阿列克谢-米洛维多夫)
改进
- 实现了对FreeBSD的AIO支持。 #4305 (urgordeadbeef)
SELECT * FROM a JOIN b USING a, b
现在回来a
和b
列仅从左表。 #4141 (Artem Zuikov)- 允许
-C
客户端的选项作为工作-c
选项。 #4232 (syominsergey) - 现在选项
--password
无值使用需要从标准输入的密码。 #4230 (BSD_Conqueror) - 在包含字符串文字中添加了非转义元字符的突出显示
LIKE
表达式或正则表达式。 #4327 (阿列克谢-米洛维多夫) - 添加取消HTTP只读查询,如果客户端套接字消失。 #4213 (纳瓦托洛梅)
- 现在,服务器报告进度,以保持客户端连接活跃。 #4215 (伊万)
- 稍微好一点的消息与优化查询的原因
optimize_throw_if_noop
设置已启用。 #4294 (阿列克谢-米洛维多夫) - 增加了支持
--version
clickhouse服务器的选项。 #4251 (Lopatin Konstantin) - 已添加
--help/-h
选项clickhouse-server
. #4233 (尤里*巴拉诺夫) - 增加了对具有聚合函数状态结果的标量子查询的支持。 #4348 (尼古拉*科切托夫)
- 改进服务器关闭时间并改变等待时间。 #4372 (阿列克谢-米洛维多夫)
- 添加了有关replicated_can_become_leader设置到系统的信息。如果副本不会尝试成为领导者,则添加日志记录。 #4379 (Alex Zatelepin)
ClickHouse释放19.1
碌莽禄,拢,010-68520682<url>
- 修正错误
Column ... queried more than once
这可能发生,如果设置asterisk_left_columns_only
在使用的情况下设置为1GLOBAL JOIN
与SELECT *
(罕见的情况)。 该问题在19.3及更新版本中不存在。 6bac7d8d (Artem Zuikov)
碌莽禄,拢,010-68520682<url>
此版本包含与19.3.7完全相同的补丁集。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
此版本包含与19.3.6完全相同的补丁集。
ClickHouse释放19.1
碌莽禄,拢,010-68520682<url>
错误修复
- 修正了向后不兼容的旧版本,由于错误的实现
send_logs_level
设置。 #4445 (阿列克谢-米洛维多夫) - 修正了表函数的向后不兼容性
remote
与列注释介绍. #4446 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>
错误修复
ClickHouse释放19.1
碌莽禄,拢,010-68520682<url>
错误修复
- 正确返回正确的类型和正确处理锁
joinGet
功能。 #4153 (阿莫斯鸟) - 修复了在服务器关闭时尝试再次创建系统日志时的错误。 #4254 (阿列克谢-米洛维多夫)
- 修正错误:如果有一个数据库
Dictionary
引擎中,所有字典在服务器启动时强制加载,如果有来自localhost的ClickHouse源字典,则字典无法加载。 #4255 (阿列克谢-米洛维多夫) - 修正了一个错误,当包含突变的执行
IN
操作员产生了不正确的结果。 #4099 (Alex Zatelepin) clickhouse-client
如果在交互模式下运行,则在加载命令行建议的数据时可以在退出时段错误。 #4317 (阿列克谢-米洛维多夫)- 从选择时固定的竞争条件
system.tables
可能会给table doesn't exist
错误 #4313 (阿列克谢-米洛维多夫) - 修复死锁时
SELECT
从一个表File
引擎被重试后No such file or directory
错误 #4161 (阿列克谢-米洛维多夫) - 修复了一个问题:本地ClickHouse字典通过TCP加载,但应该在进程中加载。 #4166 (阿列克谢-米洛维多夫)
- 固定
No message received
通过TLS连接与PostgreSQL ODBC驱动程序交互时出错。 还修复了使用MySQL ODBC驱动程序时的段错误。 #4170 (阿列克谢-米洛维多夫) - 暂时禁用谓词优化
ORDER BY
. #3890 (张冬) - 从表函数选择时固定无限循环
numbers(0)
. #4280 (阿列克谢-米洛维多夫) - 固定
compile_expressions
错误与大(超过int16)日期的比较。 #4341 (阿利沙平) - 修正了分段故障
uncompressed_cache=1
和异常与错误的未压缩大小。 #4186 (阿利沙平) - 固定
ALL JOIN
右表中有重复项。 #4184 (Artem Zuikov) - 修正了错误的行为,当做
INSERT ... SELECT ... FROM file(...)
查询和文件有CSVWithNames
或TSVWIthNames
格式和第一个数据行丢失。 #4297 (阿列克谢-米洛维多夫) - 固定聚合函数执行
Array(LowCardinality)
争论。 #4055 (KochetovNicolai) - Debian软件包:根据配置正确的/etc/clickhouse-server/预处理链接。 #4205 (proller)
- 在未定义的行为消毒固定模糊测试:增加了参数类型检查
quantile*Weighted
家庭的功能。 #4145 (阿列克谢-米洛维多夫) - 赂眉露>>
START REPLICATED SENDS
命令开始复制发送。 #4229 (纳瓦托洛梅) - 固定
Not found column
对于联接部分中的重复列。 #4279 (Artem Zuikov) - 现在
/etc/ssl
用作带有SSL证书的默认目录。 #4167 (阿列克谢-米洛维多夫) - 如果字典不可用,则修复了字典重新加载时的崩溃。 #4188 (proller)
- 修正错误与不正确
Date
和DateTime
比较。 #4237 (valexey) - 修正错误的结果时
Date
和DateTime
参数用于条件运算符(函数)的分支if
). 增加了函数的通用案例if
. #4243 (阿列克谢-米洛维多夫)
碌莽禄,拢,010-68520682<url>
新功能
- 自定义每列压缩编解码器的表。 #3899 #4111 (阿利沙平, 张冬, 阿纳托利)
- 添加压缩编解ec
Delta
. #4052 (阿利沙平) - 允许
ALTER
压缩编解ecs。 #4054 (阿利沙平) - 新增功能
left
,right
,trim
,ltrim
,rtrim
,timestampadd
,timestampsub
对于SQL标准的兼容性。 #3826 (伊万*布林科夫) - 支持写入
HDFS
表和hdfs
表功能。 #4084 (阿利沙平) - 增加了从big haystack中搜索多个常量字符串的功能:
multiPosition
,multiSearch
,firstMatch
也与-UTF8
,-CaseInsensitive
,和-CaseInsensitiveUTF8
变体。 #4053 (Danila Kutenin) - 修剪未使用的碎片,如果
SELECT
通过分片键查询过滤器(设置optimize_skip_unused_shards
). #3851 (Gleb Kanterov, 伊万) - 允许
Kafka
引擎忽略每个块的解析错误数。 #4094 (伊万) - 增加了对
CatBoost
多类模型评估。 功能modelEvaluate
返回带有多类模型的每类原始预测的元组。libcatboostmodel.so
应建立与 #607. #3959 (KochetovNicolai) - 新增功能
filesystemAvailable
,filesystemFree
,filesystemCapacity
. #4097 (Boris Granveaud) - 添加了哈希函数
xxHash64
和xxHash32
. #3905 (filimonov) - 已添加
gccMurmurHash
散列函数(GCC风味杂音散列),它使用相同的散列种子 海湾合作委员会 #4000 (sundyli) - 添加了哈希函数
javaHash
,hiveHash
. #3811 (上书结365) - 添加表功能
remoteSecure
. 函数的工作原理为remote
,但使用安全连接。 #4088 (proller)
实验特点
- 添加了多个联接仿真 (
allow_experimental_multiple_joins_emulation
设置)。 #3946 (Artem Zuikov)
错误修复
- 赂眉露>>
compiled_expression_cache_size
默认情况下设置有限,以降低内存消耗。 #4041 (阿利沙平) - 修复导致执行更改复制表的线程和从ZooKeeper更新配置的线程中挂断的错误。 #2947 #3891 #3934 (Alex Zatelepin)
- 修复了执行分布式ALTER任务时的争用条件。 争用条件导致多个副本试图执行任务和所有副本,除了一个失败与ZooKeeper错误。 #3904 (Alex Zatelepin)
- 修复错误时
from_zk
在对ZooKeeper的请求超时后,配置元素没有刷新。 #2947 #3947 (Alex Zatelepin) - 修复IPv4子网掩码错误前缀的错误。 #3945 (阿利沙平)
- 固定崩溃 (
std::terminate
)在极少数情况下,由于资源耗尽而无法创建新线程。 #3956 (阿列克谢-米洛维多夫) - 修正错误时
remote
表函数执行时,错误的限制被用于getStructureOfRemoteTable
. #4009 (阿利沙平) - 修复netlink套接字的泄漏。 它们被放置在一个池中,在那里它们永远不会被删除,并且当所有当前套接字都在使用时,在新线程开始时创建了新的套接字。 #4017 (Alex Zatelepin)
- 修复关闭错误
/proc/self/fd
目录早于所有fds被读取/proc
分叉后odbc-bridge
子进程。 #4120 (阿利沙平) - 在主键中使用字符串的情况下,固定字符串到UInt单调转换。 #3870 (张冬)
- 整数转换函数单调性计算中的固定误差。 #3921 (阿列克谢-米洛维多夫)
- 修复段错误
arrayEnumerateUniq
,arrayEnumerateDense
函数在一些无效的参数的情况下。 #3909 (阿列克谢-米洛维多夫) - 在StorageMerge修复UB。 #3910 (阿莫斯鸟)
- 修正函数中的段错误
addDays
,subtractDays
. #3913 (阿列克谢-米洛维多夫) - 修正错误:功能
round
,floor
,trunc
,ceil
在整数参数和大负比例执行时可能会返回虚假结果。 #3914 (阿列克谢-米洛维多夫) - 修正了一个错误引起的 ‘kill query sync’ 从而导致核心转储。 #3916 (muVulDeePecker)
- 修复空复制队列后延迟较长的bug。 #3928 #3932 (阿利沙平)
- 修复了插入到表中的过多内存使用情况
LowCardinality
主键。 #3955 (KochetovNicolai) - 固定
LowCardinality
序列化Native
在空数组的情况下格式化。 #3907 #4011 (KochetovNicolai) - 固定不正确的结果,而使用distinct通过单LowCardinality数字列。 #3895 #4012 (KochetovNicolai)
- 固定专门的聚合与LowCardinality键(以防万一
compile
设置已启用)。 #3886 (KochetovNicolai) - 修复复制表查询的用户和密码转发。 #3957 (阿利沙平) (小路)
- 修复了在重新加载字典时在字典数据库中列出表时可能发生的非常罕见的争用条件。 #3970 (阿列克谢-米洛维多夫)
- 修正了与ROLLUP或CUBE一起使用时的错误结果。 #3756 #3837 (周三)
- 用于查询的固定列别名
JOIN ON
语法和分布式表。 #3980 (张冬) - 在内部实现固定的错误
quantileTDigest
(由阿尔乔姆Vakhrushev发现)。 这个错误从来没有发生在ClickHouse中,只有那些直接使用ClickHouse代码库作为库的人才有关。 #3935 (阿列克谢-米洛维多夫)
改进
- 支持
IF NOT EXISTS
在ALTER TABLE ADD COLUMN
发言以及IF EXISTS
在DROP/MODIFY/CLEAR/COMMENT COLUMN
. #3900 (Boris Granveaud) - 功能
parseDateTimeBestEffort
:支持格式DD.MM.YYYY
,DD.MM.YY
,DD-MM-YYYY
,DD-Mon-YYYY
,DD/Month/YYYY
和相似。 #3922 (阿列克谢-米洛维多夫) CapnProtoInputStream
现在支持锯齿结构。 #4063 (Odin Hultgren Van Der Horst)- 可用性改进:增加了从数据目录的所有者启动服务器进程的检查。 如果数据属于非root用户,则不允许从root用户启动服务器。 #3785 (谢尔盖-v-加尔采夫)
- 在分析具有联接的查询期间检查所需列的更好的逻辑。 #3930 (Artem Zuikov)
- 减少在单个服务器中有大量分布式表的情况下的连接数。 #3726 (张冬)
- 支持的总计行
WITH TOTALS
查询ODBC驱动程序。 #3836 (Maksim Koritckiy) - 允许使用
Enum
s为if函数内的整数。 #3875 (伊万) - 已添加
low_cardinality_allow_in_native_format
设置。 如果禁用,请不要使用LowCadrinality
输入Native
格式。 #3879 (KochetovNicolai) - 从编译表达式缓存中删除了一些冗余对象以降低内存使用率。 #4042 (阿利沙平)
- 添加检查
SET send_logs_level = 'value'
查询接受适当的值。 #3873 (Sabyanin马克西姆) - 固定数据类型检查类型转换功能。 #3896 (张冬)
性能改进
- 添加MergeTree设置
use_minimalistic_part_header_in_zookeeper
. 如果启用,复制的表将在单个零件znode中存储紧凑零件元数据。 这可以显着减少ZooKeeper快照大小(特别是如果表有很多列)。 请注意,启用此设置后,您将无法降级到不支持它的版本。 #3960 (Alex Zatelepin) - 为函数添加基于DFA的实现
sequenceMatch
和sequenceCount
以防模式不包含时间。 #4004 (Léo Ercolanelli) - 整数序列化的性能改进。 #3968 (阿莫斯鸟)
- 零左填充PODArray,使-1元素始终有效并归零。 它用于无分支计算偏移量。 #3920 (阿莫斯鸟)
- 还原
jemalloc
版本导致性能下降。 #4018 (阿列克谢-米洛维多夫)
向后不兼容的更改
- 删除无证功能
ALTER MODIFY PRIMARY KEY
因为它被ALTER MODIFY ORDER BY
指挥部 #3887 (Alex Zatelepin) - 删除功能
shardByHash
. #3833 (阿列克谢-米洛维多夫) - 禁止使用具有结果类型的标量子查询
AggregateFunction
. #3865 (伊万)
构建/测试/打包改进
- 增加了对PowerPC的支持 (
ppc64le
)建设。 #4132 (Danila Kutenin) - 有状态功能测试在公共可用数据集上运行。 #3969 (阿列克谢-米洛维多夫)
- 修复了服务器无法启动时的错误
bash: /usr/bin/clickhouse-extract-from-config: Operation not permitted
Docker或systemd-nspawn中的消息。 #4136 (阿列克谢-米洛维多夫) - 更新
rdkafka
库v1.0.0-RC5。 使用cppkafka而不是原始的C接口。 #4025 (伊万) - 更新
mariadb-client
图书馆. 修复了UBSan发现的问题之一。 #3924 (阿列克谢-米洛维多夫) - UBSan版本的一些修复。 #3926 #3021 #3948 (阿列克谢-米洛维多夫)
- 增加了使用UBSan构建的每次提交运行的测试。
- 增加了PVS-Studio静态分析器的每次提交运行。
- 修复了PVS-Studio发现的错误。 #4013 (阿列克谢-米洛维多夫)
- 修正了glibc兼容性问题。 #4100 (阿列克谢-米洛维多夫)
- 将Docker映像移动到18.10并为glibc>=2.28添加兼容性文件 #3965 (阿利沙平)
- 如果用户不想在服务器码头镜像中播放目录,请添加env变量。 #3967 (阿利沙平)
- 启用了大多数来自警告
-Weverything
在叮当声。 已启用-Wpedantic
. #3986 (阿列克谢-米洛维多夫) - 增加了一些只在clang8中可用的警告。 #3993 (阿列克谢-米洛维多夫)
- 链接到
libLLVM
在使用共享链接时,而不是单独的LLVM库。 #3989 (Origej Desh) - 为测试图像添加了消毒变量。 #4072 (阿利沙平)
clickhouse-server
debian软件包会推荐libcap2-bin
使用包setcap
设置功能的工具。 这是可选的。 #4093 (阿列克谢-米洛维多夫)- 改进的编译时间,固定包括。 #3898 (proller)
- 添加了哈希函数的性能测试。 #3918 (filimonov)
- 固定循环库依赖。 #3958 (proller)
- 改进的编译与低可用内存。 #4030 (proller)
- 添加了测试脚本,以重现性能下降
jemalloc
. #4036 (阿列克谢-米洛维多夫) - 修正了在下面的注释和字符串文字拼写错误
dbms
. #4122 (maiha) - 修正了错别字的评论。 #4089 (Evgenii Pravda)