index
碌莽禄release拢.0755-88888888
ClickHouse版本v20.3.4.10,2020-03-20
错误修复
- 此版本还包含20.1.8.41的所有错误修复
- 修复丢失
rows_before_limit_at_least
用于通过http进行查询(使用处理器管道)。 这修复 #9730. #9757 (尼古拉*科切托夫)
ClickHouse释放v20.3.3.6,2020-03-17
错误修复
- 此版本还包含20.1.7.38的所有错误修复
- 修复复制中的错误,如果用户在以前的版本上执行了突变,则不允许复制工作。 这修复 #9645. #9652 (阿利沙平). 它使版本20.3再次向后兼容。
- 添加设置
use_compact_format_in_distributed_parts_names
它允许写文件INSERT
查询到Distributed
表格格式更紧凑。 这修复 #9647. #9653 (阿利沙平). 它使版本20.3再次向后兼容。
ClickHouse版本v20.3.2.1,2020-03-12
向后不兼容的更改
- 修正了这个问题
file name too long
当发送数据Distributed
大量副本的表。 修复了服务器日志中显示副本凭据的问题。 磁盘上的目录名格式已更改为[shard{shard_index}[_replica{replica_index}]]
. #8911 (米哈伊尔*科罗托夫)升级到新版本后,您将无法在没有人工干预的情况下降级,因为旧的服务器版本无法识别新的目录格式。 如果要降级,则必须手动将相应的目录重命名为旧格式。 仅当您使用了异步时,此更改才相关INSERT
s到Distributed
桌子 在版本20.3.3中,我们将介绍一个设置,让您逐渐启用新格式。 - 更改了mutation命令的复制日志条目的格式。 在安装新版本之前,您必须等待旧的突变处理。
- 实现简单的内存分析器,将堆栈跟踪转储到
system.trace_log
超过软分配限制的每N个字节 #8765 (伊万) #9472 (阿列克谢-米洛维多夫)列system.trace_log
从改名timer_type
到trace_type
. 这将需要改变第三方性能分析和flamegraph处理工具。 - 在任何地方使用操作系统线程id,而不是内部线程编号。 这修复 #7477 老
clickhouse-client
无法接收从服务器发送的日志,当设置send_logs_level
已启用,因为结构化日志消息的名称和类型已更改。 另一方面,不同的服务器版本可以相互发送不同类型的日志。 当你不使用send_logs_level
设置,你不应该关心。 #8954 (阿列克谢-米洛维多夫) - 删除
indexHint
功能 #9542 (阿列克谢-米洛维多夫) - 删除
findClusterIndex
,findClusterValue
功能。 这修复 #8641. 如果您正在使用这些功能,请发送电子邮件至[email protected]
#9543 (阿列克谢-米洛维多夫) - 现在不允许创建列或添加列
SELECT
子查询作为默认表达式。 #9481 (阿利沙平) - 需要联接中的子查询的别名。 #9274 (Artem Zuikov)
- 改进
ALTER MODIFY/ADD
查询逻辑。 现在你不能ADD
不带类型的列,MODIFY
默认表达式不改变列的类型和MODIFY
type不会丢失默认表达式值。 修复 #8669. #9227 (阿利沙平) - 要求重新启动服务器以应用日志记录配置中的更改。 这是一种临时解决方法,可以避免服务器将日志记录到已删除的日志文件中的错误(请参阅 #8696). #8707 (Alexander Kuzmenkov)
- 设置
experimental_use_processors
默认情况下启用。 此设置允许使用新的查询管道。 这是内部重构,我们期望没有明显的变化。 如果您将看到任何问题,请将其设置为返回零。 #8768 (阿列克谢-米洛维多夫)
新功能
- 添加
Avro
和AvroConfluent
输入/输出格式 #8571 (安德鲁Onyshchuk) #8957 (安德鲁Onyshchuk) #8717 (阿列克谢-米洛维多夫) - 过期密钥的多线程和非阻塞更新
cache
字典(可选的权限读取旧的)。 #8303 (尼基塔*米哈伊洛夫) - 添加查询
ALTER ... MATERIALIZE TTL
. 它运行突变,强制通过TTL删除过期的数据,并重新计算所有部分有关ttl的元信息。 #8775 (安东*波波夫) - 如果需要,从HashJoin切换到MergeJoin(在磁盘上 #9082 (Artem Zuikov)
- 已添加
MOVE PARTITION
命令ALTER TABLE
#4729 #6168 (纪尧姆*塔瑟里) - 动态地从配置文件重新加载存储配置。 #8594 (Vladimir Chebotarev)
- 允许更改
storage_policy
为了不那么富有的人。 #8107 (Vladimir Chebotarev) - 增加了对s3存储和表功能的globs/通配符的支持。 #8851 (Vladimir Chebotarev)
- 执行
bitAnd
,bitOr
,bitXor
,bitNot
为FixedString(N)
数据类型。 #9091 (纪尧姆*塔瑟里) - 添加功能
bitCount
. 这修复 #8702. #8708 (阿列克谢-米洛维多夫) #8749 (ikopylov) - 添加
generateRandom
表函数生成具有给定模式的随机行。 允许用数据填充任意测试表。 #8994 (Ilya Yatsishin) JSONEachRowFormat
:当对象包含在顶层数组中时,支持特殊情况。 #8860 (克鲁格洛夫*帕维尔)- 现在可以创建一个列
DEFAULT
取决于默认列的表达式ALIAS
表达。 #9489 (阿利沙平) - 允许指定
--limit
超过源数据大小clickhouse-obfuscator
. 数据将以不同的随机种子重复。 #9155 (阿列克谢-米洛维多夫) - 已添加
groupArraySample
功能(类似于groupArray
)与reservior采样算法。 #8286 (阿莫斯鸟) - 现在,您可以监视更新队列的大小
cache
/complex_key_cache
通过系统指标字典。 #9413 (尼基塔*米哈伊洛夫) - 允许使用CRLF作为CSV输出格式的行分隔符与设置
output_format_csv_crlf_end_of_line
设置为1 #8934 #8935 #8963 (米哈伊尔*科罗托夫) - 实现的更多功能 H3 API:
h3GetBaseCell
,h3HexAreaM2
,h3IndexesAreNeighbors
,h3ToChildren
,h3ToString
和stringToH3
#8938 (Nico Mandery) - 引入新设置:
max_parser_depth
控制最大堆栈大小并允许大型复杂查询。 这修复 #6681 和 #7668. #8647 (马克西姆*斯米尔诺夫) - 添加设置
force_optimize_skip_unused_shards
如果无法跳过未使用的分片,则设置为抛出 #8805 (Azat Khuzhin) - 允许配置多个磁盘/卷用于存储数据发送
Distributed
发动机 #8756 (Azat Khuzhin) - 支持存储策略 (
<tmp_policy>
)用于存储临时数据。 #8750 (Azat Khuzhin) - 已添加
X-ClickHouse-Exception-Code
如果在发送数据之前引发异常,则设置的HTTP头。 这实现了 #4971. #8786 (米哈伊尔*科罗托夫) - 添加功能
ifNotFinite
. 这只是一个句法糖:ifNotFinite(x, y) = isFinite(x) ? x : y
. #8710 (阿列克谢-米洛维多夫) - 已添加
last_successful_update_time
列中system.dictionaries
表 #9394 (尼基塔*米哈伊洛夫) - 添加
blockSerializedSize
功能(磁盘大小不压缩) #8952 (Azat Khuzhin) - 添加功能
moduloOrZero
#9358 (hcz) - 添加系统表
system.zeros
和system.zeros_mt
以及故事功能zeros()
和zeros_mt()
. 表(和表函数)包含具有名称的单列zero
和类型UInt8
. 此列包含零。 为了测试目的,需要它作为生成许多行的最快方法。 这修复 #6604 #9593 (尼古拉*科切托夫)
实验特点
- 添加新的紧凑格式的部件
MergeTree
-家庭表中的所有列都存储在一个文件中。 它有助于提高小型和频繁插入的性能。 旧的格式(每列一个文件)现在被称为wide。 数据存储格式由设置控制min_bytes_for_wide_part
和min_rows_for_wide_part
. #8290 (安东*波波夫) - 支持S3存储
Log
,TinyLog
和StripeLog
桌子 #8862 (帕维尔*科瓦连科)
错误修复
- 修正了日志消息中不一致的空格。 #9322 (阿列克谢-米洛维多夫)
- 修复在创建表时将未命名元组数组展平为嵌套结构的错误。 #8866 (achulkov2)
- 修复了以下问题 “Too many open files” 如果有太多的文件匹配glob模式可能会发生错误
File
表或file
表功能。 现在文件懒洋洋地打开。 这修复 #8857 #8861 (阿列克谢-米洛维多夫) - 删除临时表现在只删除临时表。 #8907 (维塔利*巴拉诺夫)
- 当我们关闭服务器或分离/附加表时删除过时的分区。 #8602 (纪尧姆*塔瑟里)
- 默认磁盘如何计算可用空间
data
子目录。 修复了可用空间量计算不正确的问题,如果data
目录被安装到一个单独的设备(罕见的情况)。 这修复 #7441 #9257 (米哈伊尔*科罗托夫) - 允许逗号(交叉)与IN()内部连接。 #9251 (Artem Zuikov)
- 如果在WHERE部分中有[NOT]LIKE运算符,则允许将CROSS重写为INNER JOIN。 #9229 (Artem Zuikov)
- 修复后可能不正确的结果
GROUP BY
启用设置distributed_aggregation_memory_efficient
. 修复 #9134. #9289 (尼古拉*科切托夫) - 找到的键在缓存字典的指标中被计为错过。 #9411 (尼基塔*米哈伊洛夫)
- 修复引入的复制协议不兼容 #8598. #9412 (阿利沙平)
- 在固定的竞争条件
queue_task_handle
在启动ReplicatedMergeTree
桌子 #9552 (阿列克谢-米洛维多夫) - 令牌
NOT
没有工作SHOW TABLES NOT LIKE
查询 #8727 #8940 (阿列克谢-米洛维多夫) - 添加范围检查功能
h3EdgeLengthM
. 如果没有这个检查,缓冲区溢出是可能的。 #8945 (阿列克谢-米洛维多夫) - 修复了多个参数(超过10)的三元逻辑运算批量计算中的错误。 #8718 (亚历山大*卡扎科夫)
- 修复PREWHERE优化的错误,这可能导致段错误或
Inconsistent number of columns got from MergeTreeRangeReader
例外。 #9024 (安东*波波夫) - 修复意外
Timeout exceeded while reading from socket
异常,在实际超时之前以及启用查询探查器时,在安全连接上随机发生。 还添加connect_timeout_with_failover_secure_ms
设置(默认100ms),这是类似于connect_timeout_with_failover_ms
,但用于安全连接(因为SSL握手比普通TCP连接慢) #9026 (tavplubix) - 修复突变最终确定的错误,当突变可能处于以下状态时
parts_to_do=0
和is_done=0
. #9022 (阿利沙平) - 使用新的任何连接逻辑
partial_merge_join
设置。 有可能使ANY|ALL|SEMI LEFT
和ALL INNER
加入与partial_merge_join=1
现在 #8932 (Artem Zuikov) - Shard现在将从发起者获得的设置夹到shard的constaints,而不是抛出异常。 此修补程序允许将查询发送到具有另一个约束的分片。 #9447 (维塔利*巴拉诺夫)
- 修正了内存管理问题
MergeTreeReadPool
. #8791 (Vladimir Chebotarev) - 修复
toDecimal*OrNull()
使用字符串调用时的函数系列e
. 修复 #8312 #8764 (Artem Zuikov) - 请确保
FORMAT Null
不向客户端发送数据。 #8767 (Alexander Kuzmenkov) - 修复时间戳中的错误
LiveViewBlockInputStream
不会更新。LIVE VIEW
是一个实验特征。 #8644 (vxider) #8625 (vxider) - 固定
ALTER MODIFY TTL
不允许删除旧ttl表达式的错误行为。 #8422 (Vladimir Chebotarev) - 修复了MergeTreeIndexSet中的UBSan报告。 这修复 #9250 #9365 (阿列克谢-米洛维多夫)
- 固定的行为
match
和extract
当干草堆有零字节的函数。 当干草堆不变时,这种行为是错误的。 这修复 #9160 #9163 (阿列克谢-米洛维多夫) #9345 (阿列克谢-米洛维多夫) - 避免从apache Avro第三方库中的析构函数抛出。 #9066 (安德鲁Onyshchuk)
- 不要提交从轮询的批次
Kafka
部分,因为它可能会导致数据漏洞。 #8876 (filimonov) - 修复
joinGet
使用可为空的返回类型。 https://github.com/ClickHouse/ClickHouse/issues/8919 #9014 (阿莫斯鸟) - 修复压缩时的数据不兼容
T64
编解ec #9016 (Artem Zuikov)修复数据类型idT64
在受影响的版本中导致错误(de)压缩的压缩编解ec。 #9033 (Artem Zuikov) - 添加设置
enable_early_constant_folding
并禁用它在某些情况下,导致错误。 #9010 (Artem Zuikov) - 使用VIEW修复下推谓词优化器并启用测试 #9011 (张冬)
- 修复段错误
Merge
表,从读取时可能发生File
储存 #9387 (tavplubix) - 添加了对存储策略的检查
ATTACH PARTITION FROM
,REPLACE PARTITION
,MOVE TO TABLE
. 否则,它可以使部分数据重新启动后无法访问,并阻止ClickHouse启动。 #9383 (Vladimir Chebotarev) - 修复改变,如果有TTL设置表。 #8800 (安东*波波夫)
- 修复在以下情况下可能发生的竞争条件
SYSTEM RELOAD ALL DICTIONARIES
在某些字典被修改/添加/删除时执行。 #8801 (维塔利*巴拉诺夫) - 在以前的版本
Memory
数据库引擎使用空数据路径,因此在以下位置创建表path
directory (e.g./var/lib/clickhouse/
), not in data directory of database (e.g./var/lib/clickhouse/db_name
). #8753 (tavplubix) - 修复了关于缺少默认磁盘或策略的错误日志消息。 #9530 (Vladimir Chebotarev)
- 修复数组类型的bloom_filter索引的not(has())。 #9407 (achimbab)
- 允许表中的第一列
Log
引擎是别名 #9231 (伊万) - 从读取时修复范围的顺序
MergeTree
表中的一个线程。 它可能会导致例外MergeTreeRangeReader
或错误的查询结果。 #9050 (安东*波波夫) - 赂眉露>>
reinterpretAsFixedString
返回FixedString
而不是String
. #9052 (安德鲁Onyshchuk) - 避免极少数情况下,当用户可以得到错误的错误消息 (
Success
而不是详细的错误描述)。 #9457 (阿列克谢-米洛维多夫) - 使用时不要崩溃
Template
使用空行模板格式化。 #8785 (Alexander Kuzmenkov) - 系统表的元数据文件可能在错误的位置创建 #8653 (tavplubix)修复 #8581.
- 修复缓存字典中exception_ptr上的数据竞赛 #8303. #9379 (尼基塔*米哈伊洛夫)
- 不要为查询引发异常
ATTACH TABLE IF NOT EXISTS
. 以前它是抛出,如果表已经存在,尽管IF NOT EXISTS
条款 #8967 (安东*波波夫) - 修复了异常消息中丢失的关闭paren。 #8811 (阿列克谢-米洛维多夫)
- 避免消息
Possible deadlock avoided
在clickhouse客户端在交互模式下启动。 #9455 (阿列克谢-米洛维多夫) - 修复了base64编码值末尾填充格式错误的问题。 更新base64库。 这修复 #9491,关闭 #9492 #9500 (阿列克谢-米洛维多夫)
- 防止丢失数据
Kafka
在极少数情况下,在读取后缀之后但在提交之前发生异常。 修复 #9378 #9507 (filimonov) - 在固定的异常
DROP TABLE IF EXISTS
#8663 (尼基塔*瓦西列夫) - 修复当用户尝试崩溃
ALTER MODIFY SETTING
对于老格式化MergeTree
表引擎家族. #9435 (阿利沙平) - 支持在JSON相关函数中不适合Int64的UInt64号码。 更新SIMDJSON掌握。 这修复 #9209 #9344 (阿列克谢-米洛维多夫)
- 当使用非严格单调函数索引时,固定执行反转谓词。 #9223 (亚历山大*卡扎科夫)
- 不要试图折叠
IN
常量在GROUP BY
#8868 (阿莫斯鸟) - 修复bug
ALTER DELETE
突变导致索引损坏。 这修复 #9019 和 #8982. 另外修复极其罕见的竞争条件ReplicatedMergeTree
ALTER
查询。 #9048 (阿利沙平) - 当设置
compile_expressions
被启用,你可以得到unexpected column
在LLVMExecutableFunction
当我们使用Nullable
类型 #8910 (纪尧姆*塔瑟里) - 多个修复
Kafka
引擎:1)修复在消费者组重新平衡期间出现的重复项。 2)修复罕见 ‘holes’ 当数据从一个轮询的几个分区轮询并部分提交时出现(现在我们总是处理/提交整个轮询的消息块)。 3)通过块大小修复刷新(在此之前,只有超时刷新才能正常工作)。 4)更好的订阅程序(与分配反馈)。 5)使测试工作得更快(默认时间间隔和超时)。 由于数据之前没有被块大小刷新(根据文档),pr可能会导致默认设置的性能下降(由于更频繁和更小的刷新不太理想)。 如果您在更改后遇到性能问题-请增加kafka_max_block_size
在表中的更大的值(例如CREATE TABLE ...Engine=Kafka ... SETTINGS ... kafka_max_block_size=524288
). 修复 #7259 #8917 (filimonov) - 修复
Parameter out of bound
在PREWHERE优化之后的某些查询中出现异常。 #8914 (Baudouin Giard) - 修正了函数参数混合常量的情况
arrayZip
. #8705 (阿列克谢-米洛维多夫) - 执行时
CREATE
查询,在存储引擎参数中折叠常量表达式。 将空数据库名称替换为当前数据库。 修复 #6508, #3492 #9262 (tavplubix) - 现在不可能创建或添加具有简单循环别名的列,如
a DEFAULT b, b DEFAULT a
. #9603 (阿利沙平) - 修正了双重移动可能会损坏原始部分的错误。 这是相关的,如果你使用
ALTER TABLE MOVE
#8680 (Vladimir Chebotarev) - 允许
interval
用于正确解析的标识符,而无需反引号。 当一个查询不能被执行,即使固定的问题interval
标识符用反引号或双引号括起来。 这修复 #9124. #9142 (阿列克谢-米洛维多夫) - 修正了模糊测试和不正确的行为
bitTestAll
/bitTestAny
功能。 #9143 (阿列克谢-米洛维多夫) - 修复可能的崩溃/错误的行数
LIMIT n WITH TIES
当有很多行等于第n行时。 #9464 (tavplubix) - 使用enabled编写的部件修复突变
insert_quorum
. #9463 (阿利沙平) - 修复数据竞赛破坏
Poco::HTTPServer
. 当服务器启动并立即关闭时,可能会发生这种情况。 #9468 (安东*波波夫) - 修复运行时显示误导性错误消息的错误
SHOW CREATE TABLE a_table_that_does_not_exist
. #8899 (achulkov2) - 固定
Parameters are out of bound
例外在一些罕见的情况下,当我们在一个常数SELECT
条款时,我们有一个ORDER BY
和一个LIMIT
条款 #8892 (纪尧姆*塔瑟里) - 修复突变定稿,当已经完成突变可以有状态
is_done=0
. #9217 (阿利沙平) - 防止执行
ALTER ADD INDEX
对于旧语法的MergeTree表,因为它不起作用。 #8822 (米哈伊尔*科罗托夫) - 在服务器启动时不要访问表,这
LIVE VIEW
取决于,所以服务器将能够启动。 也删除LIVE VIEW
分离时的依赖关系LIVE VIEW
.LIVE VIEW
是一个实验特征。 #8824 (tavplubix) - 修复可能的段错误
MergeTreeRangeReader
,同时执行PREWHERE
. #9106 (安东*波波夫) - 修复与列Ttl可能不匹配的校验和。 #9451 (安东*波波夫)
- 修正了一个错误,当部分没有被移动的情况下,只有一个卷的TTL规则在后台。 #8672 (Vladimir Chebotarev)
- 修正了这个问题
Method createColumn() is not implemented for data type Set
. 这修复 #7799. #8674 (阿列克谢-米洛维多夫) - 现在我们将尝试更频繁地完成突变。 #9427 (阿利沙平)
- 修复
intDiv
减一个常数 #9351 (hcz) - 修复可能的竞争条件
BlockIO
. #9356 (尼古拉*科切托夫) - 修复尝试使用/删除时导致服务器终止的错误
Kafka
使用错误的参数创建的表。 #9513 (filimonov) - 增加了解决方法,如果操作系统返回错误的结果
timer_create
功能。 #8837 (阿列克谢-米洛维多夫) - 在使用固定错误
min_marks_for_seek
参数。 修复了分布式表中没有分片键时的错误消息,并且我们尝试跳过未使用的分片。 #8908 (Azat Khuzhin)
改进
- 执行
ALTER MODIFY/DROP
对突变的顶部查询ReplicatedMergeTree*
引擎家族. 现在ALTERS
仅在元数据更新阶段阻止,之后不阻止。 #8701 (阿利沙平) - 添加重写交叉到内部连接的能力
WHERE
包含未编译名称的部分。 #9512 (Artem Zuikov) - 赂眉露>>
SHOW TABLES
和SHOW DATABASES
查询支持WHERE
表达式和FROM
/IN
#9076 (sundyli) - 添加了一个设置
deduplicate_blocks_in_dependent_materialized_views
. #9070 (urykhy) - 在最近的变化之后,MySQL客户端开始以十六进制打印二进制字符串,从而使它们不可读 (#9032). ClickHouse中的解决方法是将字符串列标记为UTF-8,这并不总是如此,但通常是这种情况。 #9079 (尤里*巴拉诺夫)
- 添加对字符串和FixedString键的支持
sumMap
#8903 (Baudouin Giard) - 支持SummingMergeTree地图中的字符串键 #8933 (Baudouin Giard)
- 即使线程已抛出异常,也向线程池发送线程终止信号 #8736 (丁香飞)
- 允许设置
query_id
在clickhouse-benchmark
#9416 (安东*波波夫) - 不要让奇怪的表达
ALTER TABLE ... PARTITION partition
查询。 这个地址 #7192 #8835 (阿列克谢-米洛维多夫) - 表
system.table_engines
现在提供有关功能支持的信息(如supports_ttl
或supports_sort_order
). #8830 (Max Akhmedov) - 启用
system.metric_log
默认情况下。 它将包含具有ProfileEvents值的行,CurrentMetrics收集与 “collect_interval_milliseconds” 间隔(默认情况下为一秒)。 该表非常小(通常以兆字节为单位),默认情况下收集此数据是合理的。 #9225 (阿列克谢-米洛维多夫) - Initialize query profiler for all threads in a group, e.g. it allows to fully profile insert-queries. Fixes #6964 #8874 (伊万)
- 现在是暂时的
LIVE VIEW
创建者CREATE LIVE VIEW name WITH TIMEOUT [42] ...
而不是CREATE TEMPORARY LIVE VIEW ...
,因为以前的语法不符合CREATE TEMPORARY TABLE ...
#9131 (tavplubix) - 添加text_log。级别配置参数,以限制进入
system.text_log
表 #8809 (Azat Khuzhin) - 允许根据TTL规则将下载的部分放入磁盘/卷 #8598 (Vladimir Chebotarev)
- 对于外部MySQL字典,允许将MySQL连接池共同化为 “share” 他们在字典中。 此选项显着减少到MySQL服务器的连接数。 #9409 (Clément Rodriguez)
- 显示分位数的最近查询执行时间
clickhouse-benchmark
输出而不是插值值。 最好显示与某些查询的执行时间相对应的值。 #8712 (阿列克谢-米洛维多夫) - 可以在将数据插入到Kafka时为消息添加密钥和时间戳。 修复 #7198 #8969 (filimonov)
- 如果服务器从终端运行,请按颜色突出显示线程号,查询id和日志优先级。 这是为了提高开发人员相关日志消息的可读性。 #8961 (阿列克谢-米洛维多夫)
- 更好的异常消息,同时加载表
Ordinary
数据库。 #9527 (阿列克谢-米洛维多夫) - 执行
arraySlice
对于具有聚合函数状态的数组。 这修复 #9388 #9391 (阿列克谢-米洛维多夫) - 允许在in运算符的右侧使用常量函数和常量数组。 #8813 (安东*波波夫)
- 如果在获取系统数据时发生了zookeeper异常。副本,将其显示在单独的列中。 这实现了 #9137 #9138 (阿列克谢-米洛维多夫)
- 原子删除destroy上的MergeTree数据部分。 #8402 (Vladimir Chebotarev)
- 支持分布式表的行级安全性。 #8926 (伊万)
- Now we recognize suffix (like KB, KiB...) in settings values. #8072 (米哈伊尔*科罗托夫)
- 在构建大型连接的结果时防止内存不足。 #8637 (Artem Zuikov)
- 在交互模式下为建议添加群集名称
clickhouse-client
. #8709 (阿列克谢-米洛维多夫) - Initialize query profiler for all threads in a group, e.g. it allows to fully profile insert-queries #8820 (伊万)
- 添加列
exception_code
在system.query_log
桌子 #8770 (米哈伊尔*科罗托夫) - 在端口上启用MySQL兼容服务器
9004
在默认服务器配置文件中。 在配置的例子固定密码生成命令。 #8771 (尤里*巴拉诺夫) - 如果文件系统是只读的,请防止在关闭时中止。 这修复 #9094 #9100 (阿列克谢-米洛维多夫)
- 当HTTP POST查询中需要长度时,更好的异常消息。 #9453 (阿列克谢-米洛维多夫)
- 添加
_path
和_file
虚拟列HDFS
和File
发动机和hdfs
和file
表函数 #8489 (Olga Khvostikova) - 修复错误
Cannot find column
同时插入到MATERIALIZED VIEW
在情况下,如果新列被添加到视图的内部表。 #8766 #8788 (vzakaznikov) #8788 #8806 (尼古拉*科切托夫) #8803 (尼古拉*科切托夫) - 通过最终更新后发送进度(如日志)修复本机客户端-服务器协议的进度。 这可能仅与使用本机协议的某些第三方工具相关。 #9495 (Azat Khuzhin)
- 添加系统指标跟踪使用MySQL协议的客户端连接数 (#9013). #9015 (尤金*克里莫夫)
- 从现在开始,HTTP响应将有
X-ClickHouse-Timezone
标题设置为相同的时区值SELECT timezone()
会报告。 #9493 (Denis Glazachev)
性能改进
- 使用IN提高分析指标的性能 #9261 (安东*波波夫)
- 逻辑函数+代码清理更简单,更有效的代码。 跟进到 #8718 #8728 (亚历山大*卡扎科夫)
- 整体性能改善(范围为5%。.通过确保使用C++20功能进行更严格的别名处理,对于受影响的查询来说,这是200%)。 #9304 (阿莫斯鸟)
- 比较函数的内部循环更严格的别名。 #9327 (阿列克谢-米洛维多夫)
- 对于算术函数的内部循环更严格的别名。 #9325 (阿列克谢-米洛维多夫)
- ColumnVector::replicate()的实现速度快约3倍,通过该实现ColumnConst::convertToFullColumn()。 在实现常数时,也将在测试中有用。 #9293 (亚历山大*卡扎科夫)
- 另一个小的性能改进
ColumnVector::replicate()
(这加快了materialize
函数和高阶函数),甚至进一步改进 #9293 #9442 (亚历山大*卡扎科夫) - 改进的性能
stochasticLinearRegression
聚合函数。 此补丁由英特尔贡献。 #8652 (阿列克谢-米洛维多夫) - 提高性能
reinterpretAsFixedString
功能。 #9342 (阿列克谢-米洛维多夫) - 不要向客户端发送块
Null
处理器管道中的格式。 #8797 (尼古拉*科切托夫) #8767 (Alexander Kuzmenkov)
构建/测试/包装改进
- 异常处理现在可以在适用于Linux的Windows子系统上正常工作。 看https://github.com/ClickHouse-Extras/libunwind/pull/3 这修复 #6480 #9564 (sobolevsv)
- 替换
readline
与replxx
对于在交互式线编辑clickhouse-client
#8416 (伊万) - 在FunctionsComparison中更好的构建时间和更少的模板实例化。 #9324 (阿列克谢-米洛维多夫)
- 增加了与集成
clang-tidy
在线人 另请参阅 #6044 #9566 (阿列克谢-米洛维多夫) - 现在我们使用CI链接ClickHouse
lld
即使是gcc
. #9049 (阿利沙平) - 允许随机线程调度和插入毛刺时
THREAD_FUZZER_*
设置环境变量。 这有助于测试。 #9459 (阿列克谢-米洛维多夫) - 在无状态测试中启用安全套接字 #9288 (tavplubix)
- 使SPLIT_SHARED_LIBRARIES=OFF更强大 #9156 (Azat Khuzhin)
- 赂眉露>> “performance_introspection_and_logging” 测试可靠的随机服务器卡住。 这可能发生在CI环境中。 另请参阅 #9515 #9528 (阿列克谢-米洛维多夫)
- 在样式检查中验证XML。 #9550 (阿列克谢-米洛维多夫)
- 修正了测试中的竞争条件
00738_lock_for_inner_table
. 这个测试依赖于睡眠。 #9555 (阿列克谢-米洛维多夫) - 删除类型的性能测试
once
. 这是在统计比较模式下运行所有性能测试(更可靠)所需的。 #9557 (阿列克谢-米洛维多夫) - 增加了算术函数的性能测试。 #9326 (阿列克谢-米洛维多夫)
- 增加了性能测试
sumMap
和sumMapWithOverflow
聚合函数。 后续行动 #8933 #8947 (阿列克谢-米洛维多夫) - 通过样式检查确保错误代码的样式。 #9370 (阿列克谢-米洛维多夫)
- 为测试历史添加脚本。 #8796 (阿利沙平)
- 添加GCC警告
-Wsuggest-override
找到并修复所有地方override
必须使用关键字。 #8760 (kreuzerkrieg) - 在Mac OS X下忽略弱符号,因为它必须被定义 #9538 (已删除用户)
- 规范性能测试中某些查询的运行时间。 这是在准备在比较模式下运行所有性能测试时完成的。 #9565 (阿列克谢-米洛维多夫)
- 修复一些测试,以支持pytest与查询测试 #9062 (伊万)
- 使用MSan在生成中启用SSL,因此在运行无状态测试时,服务器不会在启动时失败 #9531 (tavplubix)
- 修复测试结果中的数据库替换 #9384 (Ilya Yatsishin)
- 针对其他平台构建修复程序 #9381 (proller) #8755 (proller) #8631 (proller)
- 将磁盘部分添加到无状态复盖率测试docker映像 #9213 (帕维尔*科瓦连科)
- 使用GRPC构建时,摆脱源代码树中的文件 #9588 (阿莫斯鸟)
- 通过从上下文中删除SessionCleaner来缩短构建时间。 让SessionCleaner的代码更简单。 #9232 (阿列克谢-米洛维多夫)
- 更新了clickhouse-test脚本中挂起查询的检查 #8858 (亚历山大*卡扎科夫)
- 从存储库中删除了一些无用的文件。 #8843 (阿列克谢-米洛维多夫)
- 更改类型的数学perftests从
once
到loop
. #8783 (尼古拉*科切托夫) - 添加码头镜像,它允许为我们的代码库构建交互式代码浏览器HTML报告。 #8781 (阿利沙平)见 Woboq代码浏览器
- 抑制MSan下的一些测试失败。 #8780 (Alexander Kuzmenkov)
- 加速 “exception while insert” 测试 此测试通常在具有复盖率的调试版本中超时。 #8711 (阿列克谢-米洛维多夫)
- 更新
libcxx
和libcxxabi
为了主人 在准备 #9304 #9308 (阿列克谢-米洛维多夫) - 修复flaky测试
00910_zookeeper_test_alter_compression_codecs
. #9525 (阿列克谢-米洛维多夫) - 清理重复的链接器标志。 确保链接器不会查找意想不到的符号。 #9433 (阿莫斯鸟)
- 添加
clickhouse-odbc
驱动程序进入测试图像。 这允许通过自己的ODBC驱动程序测试ClickHouse与ClickHouse的交互。 #9348 (filimonov) - 修复单元测试中的几个错误。 #9047 (阿利沙平)
- 启用
-Wmissing-include-dirs
GCC警告消除所有不存在的包括-主要是由于CMake脚本错误 #8704 (kreuzerkrieg) - 描述查询探查器无法工作的原因。 这是用于 #9049 #9144 (阿列克谢-米洛维多夫)
- 将OpenSSL更新到上游主机。 修复了TLS连接可能会失败并显示消息的问题
OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
和SSL Exception: error:2400006E:random number generator::error retrieving entropy
. 该问题出现在版本20.1中。 #8956 (阿列克谢-米洛维多夫) - 更新服务器的Dockerfile #8893 (Ilya Mazaev)
- Build-gcc-from-sources脚本中的小修复 #8774 (Michael Nacharov)
- 替换
numbers
到zeros
在perftests其中number
不使用列。 这将导致更干净的测试结果。 #9600 (尼古拉*科切托夫) - 修复列构造函数中使用initializer_list时堆栈溢出问题。 #9367 (已删除用户)
- 将librdkafka升级到v1.3.0。 启用bund绑
rdkafka
和gsasl
mac OS X上的库 #9000 (安德鲁Onyshchuk) - 在GCC9.2.0上构建修复程序 #9306 (vxider)
碌莽禄.拢.0755-88888888
ClickHouse版本v20.1.8.41,2020-03-20
错误修复
- 修复可能的永久性
Cannot schedule a task
错误(由于未处理的异常ParallelAggregatingBlockInputStream::Handler::onFinish/onFinishThread
). 这修复 #6833. #9154 (Azat Khuzhin) - 修复过多的内存消耗
ALTER
查询(突变)。 这修复 #9533 和 #9670. #9754 (阿利沙平) - 修复外部字典DDL中反引用的错误。 这修复 #9619. #9734 (阿利沙平)
ClickHouse释放v20.1.7.38,2020-03-18
错误修复
- 修正了不正确的内部函数名称
sumKahan
和sumWithOverflow
. 在远程查询中使用此函数时,我会导致异常。 #9636 (Azat Khuzhin). 这个问题是在所有ClickHouse版本。 - 允许
ALTER ON CLUSTER
的Distributed
具有内部复制的表。 这修复 #3268. #9617 (shinoi2). 这个问题是在所有ClickHouse版本。 - 修复可能的异常
Size of filter doesn't match size of column
和Invalid number of rows in Chunk
在MergeTreeRangeReader
. 它们可能在执行时出现PREWHERE
在某些情况下。 修复 #9132. #9612 (安东*波波夫) - 修复了这个问题:如果你编写一个简单的算术表达式,则不会保留时区
time + 1
(与像这样的表达形成对比time + INTERVAL 1 SECOND
). 这修复 #5743. #9323 (阿列克谢-米洛维多夫). 这个问题是在所有ClickHouse版本。 - 现在不可能创建或添加具有简单循环别名的列,如
a DEFAULT b, b DEFAULT a
. #9603 (阿利沙平) - 修复了base64编码值末尾填充格式错误的问题。 更新base64库。 这修复 #9491,关闭 #9492 #9500 (阿列克谢-米洛维多夫)
- 修复数据竞赛破坏
Poco::HTTPServer
. 当服务器启动并立即关闭时,可能会发生这种情况。 #9468 (安东*波波夫) - 修复可能的崩溃/错误的行数
LIMIT n WITH TIES
当有很多行等于第n行时。 #9464 (tavplubix) - 修复与列Ttl可能不匹配的校验和。 #9451 (安东*波波夫)
- 修复当用户尝试崩溃
ALTER MODIFY SETTING
对于老格式化MergeTree
表引擎家族. #9435 (阿利沙平) - 现在我们将尝试更频繁地完成突变。 #9427 (阿利沙平)
- 修复引入的复制协议不兼容 #8598. #9412 (阿利沙平)
- 修复数组类型的bloom_filter索引的not(has())。 #9407 (achimbab)
- 固定的行为
match
和extract
当干草堆有零字节的函数。 当干草堆不变时,这种行为是错误的。 这修复 #9160 #9163 (阿列克谢-米洛维多夫) #9345 (阿列克谢-米洛维多夫)
构建/测试/包装改进
- 异常处理现在可以在适用于Linux的Windows子系统上正常工作。 看https://github.com/ClickHouse-Extras/libunwind/pull/3 这修复 #6480 #9564 (sobolevsv)
ClickHouse释放v20.1.6.30,2020-03-05
错误修复
- 修复压缩时的数据不兼容
T64
编解ec #9039 (abyss7) - 在一个线程中从MergeTree表中读取时修复范围顺序。 修复 #8964. #9050 (CurtizJ))
- 修复可能的段错误
MergeTreeRangeReader
,同时执行PREWHERE
. 修复 #9064. #9106 (CurtizJ)) - 修复
reinterpretAsFixedString
返回FixedString
而不是String
. #9052 (oandrew) - 修复
joinGet
使用可为空的返回类型。 修复 #8919#9014 (amosbird) - 修复bittestall/bitTestAny函数的模糊测试和不正确的行为。 #9143 (阿列克谢-米洛维多夫)
- 修复当干草堆有零字节时匹配和提取函数的行为。 当干草堆不变时,这种行为是错误的。 修复 #9160#9163 (阿列克谢-米洛维多夫)
- 当使用非严格单调函数索引时,固定执行反转谓词。 修复 #9034#9223 (Akazz)
- 允许重写
CROSS
到INNER JOIN
如果有[NOT] LIKE
操作员在WHERE
科。 修复 #9191#9229 (4ertus2) - 允许使用日志引擎的表中的第一列成为别名。 #9231 (abyss7)
- 允许逗号加入
IN()
进去 修复 #7314. #9251 (4ertus2) - 改进
ALTER MODIFY/ADD
查询逻辑。 现在你不能ADD
不带类型的列,MODIFY
默认表达式不改变列的类型和MODIFY
type不会丢失默认表达式值。 修复 #8669. #9227 (alesapin) - 修复突变最终确定,当已经完成突变时可以具有状态is_done=0。 #9217 (alesapin)
- 碌莽禄Support: “Processors” 管道系统.数字和系统.numbers_mt 这也修复了错误时
max_execution_time
不被尊重。 #7796 (KochetovNicolai) - 修复错误的计数
DictCacheKeysRequestedFound
公制。 #9411 (nikitamikhaylov) - 添加了对存储策略的检查
ATTACH PARTITION FROM
,REPLACE PARTITION
,MOVE TO TABLE
否则可能使部分数据在重新启动后无法访问,并阻止ClickHouse启动。 #9383 (excitoon) - 在固定的瑞银报告
MergeTreeIndexSet
. 这修复 #9250#9365 (阿列克谢-米洛维多夫) - 在BlockIO中修复可能的数据集。 #9356 (KochetovNicolai)
- 支持
UInt64
在JSON相关函数中不适合Int64的数字。 更新SIMDJSON
为了主人 这修复 #9209#9344 (阿列克谢-米洛维多夫) - 如果将数据目录挂载到单独的设备,则修复可用空间量计算不正确时的问题。 对于默认磁盘,计算数据子目录的可用空间。 这修复 #7441#9257 (米尔布)
- 修复TLS连接可能会失败并显示消息时的问题
OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error and SSL Exception: error:2400006E:random number generator::error retrieving entropy.
将OpenSSL更新到上游主机。 #8956 (阿列克谢-米洛维多夫) - 执行时
CREATE
查询,在存储引擎参数中折叠常量表达式。 将空数据库名称替换为当前数据库。 修复 #6508, #3492. 还修复了ClickHouseDictionarySource中检查本地地址。 #9262 (tabplubix) - 修复段错误
StorageMerge
,从StorageFile读取时可能发生。 #9387 (tabplubix) - 防止丢失数据
Kafka
在极少数情况下,在读取后缀之后但在提交之前发生异常。 修复 #9378. 相关: #7175#9507 (菲利蒙诺夫) - 修复尝试使用/删除时导致服务器终止的错误
Kafka
使用错误的参数创建的表。 修复 #9494. 结合 #9507. #9513 (菲利蒙诺夫)
新功能
ClickHouse版本v20.1.2.4,2020-01-22
向后不兼容的更改
- 使设置
merge_tree_uniform_read_distribution
过时了 服务器仍可识别此设置,但无效。 #8308 (阿列克谢-米洛维多夫) - 更改函数的返回类型
greatCircleDistance
到Float32
因为现在计算的结果是Float32
. #7993 (阿列克谢-米洛维多夫) - 现在预计查询参数表示为 “escaped” 格式。 例如,要传递字符串
a<tab>b
你必须写a\tb
或a\<tab>b
并分别,a%5Ctb
或a%5C%09b
在URL中。 这是需要添加传递NULL作为的可能性\N
. 这修复 #7488. #8517 (阿列克谢-米洛维多夫) - 启用
use_minimalistic_part_header_in_zookeeper
设置ReplicatedMergeTree
默认情况下。 这将显着减少存储在ZooKeeper中的数据量。 自19.1版本以来支持此设置,我们已经在多个服务的生产中使用它,半年以上没有任何问题。 如果您有机会降级到19.1以前的版本,请禁用此设置。 #6850 (阿列克谢-米洛维多夫) - 数据跳过索引已准备就绪并默认启用。 设置
allow_experimental_data_skipping_indices
,allow_experimental_cross_to_join_conversion
和allow_experimental_multiple_joins_emulation
现在已经过时,什么也不做。 #7974 (阿列克谢-米洛维多夫) - 添加新建
ANY JOIN
逻辑StorageJoin
符合JOIN
操作。 要在不改变行为的情况下进行升级,您需要添加SETTINGS any_join_distinct_right_table_keys = 1
引擎联接表元数据或在升级后重新创建这些表。 #8400 (Artem Zuikov) - 要求重新启动服务器以应用日志记录配置中的更改。 这是一种临时解决方法,可以避免服务器将日志记录到已删除的日志文件中的错误(请参阅 #8696). #8707 (Alexander Kuzmenkov)
新功能
- 添加了有关部件路径的信息
system.merges
. #8043 (Vladimir Chebotarev) - 添加执行能力
SYSTEM RELOAD DICTIONARY
查询中ON CLUSTER
模式 #8288 (纪尧姆*塔瑟里) - 添加执行能力
CREATE DICTIONARY
查询中ON CLUSTER
模式 #8163 (阿利沙平) - 现在用户的个人资料
users.xml
可以继承多个配置文件。 #8343 (Mikhail f. Shiryaev) - 已添加
system.stack_trace
允许查看所有服务器线程的堆栈跟踪的表。 这对于开发人员反省服务器状态非常有用。 这修复 #7576. #8344 (阿列克谢-米洛维多夫) - 添加
DateTime64
具有可配置子秒精度的数据类型。 #7170 (瓦西里*内姆科夫) - 添加表函数
clusterAllReplicas
这允许查询集群中的所有节点。 #8493 (kiran sunkari) - 添加聚合函数
categoricalInformationValue
其计算出离散特征的信息值。 #8117 (hcz) - 加快数据文件的解析
CSV
,TSV
和JSONEachRow
通过并行进行格式化。 #7780 (Alexander Kuzmenkov) - 添加功能
bankerRound
它执行银行家的四舍五入。 #8112 (hcz) - 支持区域名称的嵌入式字典中的更多语言: ‘ru’, ‘en’, ‘ua’, ‘uk’, ‘by’, ‘kz’, ‘tr’, ‘de’, ‘uz’, ‘lv’, ‘lt’, ‘et’, ‘pt’, ‘he’, ‘vi’. #8189 (阿列克谢-米洛维多夫)
- 改进的一致性
ANY JOIN
逻辑 现在t1 ANY LEFT JOIN t2
等于t2 ANY RIGHT JOIN t1
. #7665 (Artem Zuikov) - 添加设置
any_join_distinct_right_table_keys
这使旧的行为ANY INNER JOIN
. #7665 (Artem Zuikov) - 添加新建
SEMI
和ANTI JOIN
. 老ANY INNER JOIN
行为现在可作为SEMI LEFT JOIN
. #7665 (Artem Zuikov) - 已添加
Distributed
格式File
发动机和file
表函数,它允许从读.bin
通过异步插入生成的文件Distributed
桌子 #8535 (尼古拉*科切托夫) - 添加可选的重置列参数
runningAccumulate
这允许为每个新的键值重置聚合结果。 #8326 (谢尔盖*科诺年科) - 添加使用ClickHouse作为普罗米修斯端点的能力。 #7900 (vdimir)
- 添加部分
<remote_url_allow_hosts>
在config.xml
这将限制允许的主机用于远程表引擎和表函数URL
,S3
,HDFS
. #7154 (米哈伊尔*科罗托夫) - 添加功能
greatCircleAngle
它计算球体上的距离(以度为单位)。 #8105 (阿列克谢-米洛维多夫) - 改变地球半径与h3库一致。 #8105 (阿列克谢-米洛维多夫)
- 已添加
JSONCompactEachRow
和JSONCompactEachRowWithNamesAndTypes
输入和输出格式。 #7841 (米哈伊尔*科罗托夫) - 增加了与文件相关的表引擎和表函数的功能 (
File
,S3
,URL
,HDFS
)它允许读取和写入gzip
基于附加引擎参数或文件扩展名的文件。 #7840 (安德烈*博德罗夫) - 添加了
randomASCII(length)
函数,生成一个字符串与一个随机集 ASCII 可打印字符。 #8401 (刺刀) - 添加功能
JSONExtractArrayRaw
它返回从未解析的json数组元素上的数组JSON
字符串。 #8081 (Oleg Matrokhin) - 添加
arrayZip
函数允许将多个长度相等的数组合成一个元组数组。 #8149 (张冬) - 添加根据配置的磁盘之间移动数据的能力
TTL
-表达式为*MergeTree
表引擎家族. #8140 (Vladimir Chebotarev) - 增加了新的聚合功能
avgWeighted
其允许计算加权平均值。 #7898 (安德烈*博德罗夫) - 现在并行解析默认启用
TSV
,TSKV
,CSV
和JSONEachRow
格式。 #7894 (尼基塔*米哈伊洛夫) - 从添加几个地理功能
H3
图书馆:h3GetResolution
,h3EdgeAngle
,h3EdgeLength
,h3IsValid
和h3kRing
. #8034 (Konstantin Malanchev) - 增加了对brotli的支持 (
br
)压缩文件相关的存储和表函数。 这修复 #8156. #8526 (阿列克谢-米洛维多夫) - 添加
groupBit*
功能的SimpleAggregationFunction
类型。 #8485 (纪尧姆*塔瑟里)
错误修复
- 修复重命名表
Distributed
引擎 修复问题 #7868. #8306 (tavplubix) - 现在字典支持
EXPRESSION
对于非ClickHouse SQL方言中任意字符串中的属性。 #8098 (阿利沙平) - 修复损坏
INSERT SELECT FROM mysql(...)
查询。 这修复 #8070 和 #7960. #8234 (tavplubix) - 修复错误 “Mismatch column sizes” 插入默认值时
Tuple
从JSONEachRow
. 这修复 #5653. #8606 (tavplubix) - 现在将在使用的情况下抛出一个异常
WITH TIES
旁边的LIMIT BY
. 还增加了使用能力TOP
与LIMIT BY
. 这修复 #7472. #7637 (尼基塔*米哈伊洛夫) - 从新鲜的glibc版本中修复unintendent依赖关系
clickhouse-odbc-bridge
二进制 #8046 (阿莫斯鸟) - 修正错误的检查功能
*MergeTree
引擎家族. 现在,当我们在最后一个颗粒和最后一个标记(非最终)中有相同数量的行时,它不会失败。 #8047 (阿利沙平) - 修复插入
Enum*
列后ALTER
查询,当基础数值类型等于表指定类型时。 这修复 #7836. #7908 (安东*波波夫) - 允许非常数负 “size” 函数的参数
substring
. 这是不允许的错误。 这修复 #4832. #7703 (阿列克谢-米洛维多夫) - 修复当错误数量的参数传递到解析错误
(O|J)DBC
表引擎。 #7709 (阿利沙平) - 将日志发送到syslog时使用正在运行的clickhouse进程的命令名。 在以前的版本中,使用空字符串而不是命令名称。 #8460 (Michael Nacharov)
- 修复检查允许的主机
localhost
. 这个公关修复了在提供的解决方案 #8241. #8342 (维塔利*巴拉诺夫) - 修复罕见的崩溃
argMin
和argMax
长字符串参数的函数,当结果被用于runningAccumulate
功能。 这修复 #8325 #8341 (恐龙) - 修复表的内存过度使用
Buffer
引擎 #8345 (Azat Khuzhin) - 修正了可以采取的功能中的潜在错误
NULL
作为参数之一,并返回非NULL。 #8196 (阿列克谢-米洛维多夫) - 在线程池中更好地计算后台进程的指标
MergeTree
表引擎. #8194 (Vladimir Chebotarev) - 修复功能
IN
里面WHERE
存在行级表筛选器时的语句。 修复 #6687 #8357 (伊万) - 现在,如果整数值没有完全解析设置值,则会引发异常。 #7678 (米哈伊尔*科罗托夫)
- 修复当聚合函数用于查询具有两个以上本地分片的分布式表时出现的异常。 #8164 (小路)
- 现在,bloom filter可以处理零长度数组,并且不执行冗余计算。 #8242 (achimbab)
- 修正了通过匹配客户端主机来检查客户端主机是否允许
host_regexp
在指定users.xml
. #8241 (维塔利*巴拉诺夫) - 放松不明确的列检查,导致多个误报
JOIN ON
科。 #8385 (Artem Zuikov) - 修正了可能的服务器崩溃 (
std::terminate
)当服务器不能发送或写入数据JSON
或XML
格式与值String
数据类型(需要UTF-8
验证)或使用Brotli算法或其他一些罕见情况下压缩结果数据时。 这修复 #7603 #8384 (阿列克谢-米洛维多夫) - 修复竞争条件
StorageDistributedDirectoryMonitor
被线人发现 这修复 #8364. #8383 (尼古拉*科切托夫) - 现在背景合并
*MergeTree
表引擎家族更准确地保留存储策略卷顺序。 #8549 (Vladimir Chebotarev) - 现在表引擎
Kafka
与正常工作Native
格式。 这修复 #6731 #7337 #8003. #8016 (filimonov) - 固定格式与标题(如
CSVWithNames
)这是抛出关于EOF表引擎的异常Kafka
. #8016 (filimonov) - 修复了从子查询右侧部分制作set的错误
IN
科。 这修复 #5767 和 #2542. #7755 (尼基塔*米哈伊洛夫) - 从存储读取时修复可能的崩溃
File
. #7756 (尼古拉*科切托夫) - 在固定的文件读取
Parquet
包含类型列的格式list
. #8334 (马苏兰) - 修复错误
Not found column
对于分布式查询PREWHERE
条件取决于采样键ifmax_parallel_replicas > 1
. #7913 (尼古拉*科切托夫) - 修复错误
Not found column
如果使用查询PREWHERE
依赖于表的别名,结果集由于主键条件而为空。 #7911 (尼古拉*科切托夫) - 函数的固定返回类型
rand
和randConstant
在情况下Nullable
争论。 现在函数总是返回UInt32
而且从来没有Nullable(UInt32)
. #8204 (尼古拉*科切托夫) - 禁用谓词下推
WITH FILL
表达。 这修复 #7784. #7789 (张冬) - 修正错误
count()
结果SummingMergeTree
当FINAL
部分被使用。 #3280 #7786 (尼基塔*米哈伊洛夫) - 修复来自远程服务器的常量函数可能不正确的结果。 它发生在具有以下功能的查询中
version()
,uptime()
等。 它为不同的服务器返回不同的常量值。 这修复 #7666. #7689 (尼古拉*科切托夫) - 修复下推谓词优化中导致错误结果的复杂错误。 这解决了下推谓词优化的很多问题。 #8503 (张冬)
- 修复崩溃
CREATE TABLE .. AS dictionary
查询。 #8508 (Azat Khuzhin) - 一些改进ClickHouse语法
.g4
文件 #8294 (太阳里) - 修复导致崩溃的错误
JOIN
s与表与发动机Join
. 这修复 #7556 #8254 #7915 #8100. #8298 (Artem Zuikov) - 修复冗余字典重新加载
CREATE DATABASE
. #7916 (Azat Khuzhin) - 限制从读取流的最大数量
StorageFile
和StorageHDFS
. 修复https://github.com/ClickHouse/ClickHouse/issues/7650. #7981 (阿利沙平) - 修复bug
ALTER ... MODIFY ... CODEC
查询,当用户同时指定默认表达式和编解ec。 修复 8593. #8614 (阿利沙平) - 修复列的后台合并错误
SimpleAggregateFunction(LowCardinality)
类型。 #8613 (尼古拉*科切托夫) - 固定类型签入功能
toDateTime64
. #8375 (瓦西里*内姆科夫) - 现在服务器不崩溃
LEFT
或FULL JOIN
与和加入引擎和不支持join_use_nulls
设置。 #8479 (Artem Zuikov) - 现在
DROP DICTIONARY IF EXISTS db.dict
查询不会抛出异常,如果db
根本不存在 #8185 (维塔利*巴拉诺夫) - 修复表函数中可能出现的崩溃 (
file
,mysql
,remote
)引用删除引起的IStorage
对象。 修复插入表函数时指定的列的不正确解析。 #7762 (tavplubix) - 确保网络启动前
clickhouse-server
. 这修复 #7507. #8570 (余志昌) - 修复安全连接的超时处理,因此查询不会无限挂起。 这修复 #8126. #8128 (阿列克谢-米洛维多夫)
- 修复
clickhouse-copier
并发工人之间的冗余争用。 #7816 (丁香飞) - 现在突变不会跳过附加的部分,即使它们的突变版本比当前的突变版本大。 #7812 (余志昌) #8250 (阿利沙平)
- 忽略冗余副本
*MergeTree
数据部分移动到另一个磁盘和服务器重新启动后。 #7810 (Vladimir Chebotarev) - 修复崩溃
FULL JOIN
与LowCardinality
在JOIN
钥匙 #8252 (Artem Zuikov) - 禁止在插入查询中多次使用列名,如
INSERT INTO tbl (x, y, x)
. 这修复 #5465, #7681. #7685 (阿利沙平) - 增加了回退,用于检测未知Cpu的物理CPU内核数量(使用逻辑CPU内核数量)。 这修复 #5239. #7726 (阿列克谢-米洛维多夫)
- 修复
There's no column
实例化列和别名列出错。 #8210 (Artem Zuikov) - 固定切断崩溃时
EXISTS
查询没有使用TABLE
或DICTIONARY
预选赛 就像EXISTS t
. 这修复 #8172. 此错误在版本19.17中引入。 #8213 (阿列克谢-米洛维多夫) - 修复罕见错误
"Sizes of columns doesn't match"
使用时可能会出现SimpleAggregateFunction
列。 #7790 (Boris Granveaud) - 修正错误,其中用户空
allow_databases
可以访问所有数据库(和相同的allow_dictionaries
). #7793 (DeifyTheGod) - 修复客户端崩溃时,服务器已经从客户端断开连接。 #8071 (Azat Khuzhin)
- 修复
ORDER BY
在按主键前缀和非主键后缀排序的情况下的行为。 #7759 (安东*波波夫) - 检查表中是否存在合格列。 这修复 #6836. #7758 (Artem Zuikov)
- 固定行为
ALTER MOVE
合并完成后立即运行移动指定的超部分。 修复 #8103. #8104 (Vladimir Chebotarev) - 使用时修复可能的服务器崩溃
UNION
具有不同数量的列。 修复 #7279. #7929 (尼古拉*科切托夫) - 修复函数结果子字符串的大小
substr
负大小。 #8589 (尼古拉*科切托夫) - 现在服务器不执行部分突变
MergeTree
如果后台池中没有足够的可用线程。 #8588 (tavplubix) - 修复格式化时的小错字
UNION ALL
AST. #7999 (litao91) - 修正了负数不正确的布隆过滤结果。 这修复 #8317. #8566 (张冬)
- 在解压缩固定潜在的缓冲区溢出。 恶意用户可以传递捏造的压缩数据,这将导致缓冲区后读取。 这个问题是由Yandex信息安全团队的Eldar Zaitov发现的。 #8404 (阿列克谢-米洛维多夫)
- 修复因整数溢出而导致的错误结果
arrayIntersect
. #7777 (尼古拉*科切托夫) - 现在
OPTIMIZE TABLE
query不会等待脱机副本执行该操作。 #8314 (javi santana) - 固定
ALTER TTL
解析器Replicated*MergeTree
桌子 #8318 (Vladimir Chebotarev) - 修复服务器和客户端之间的通信,以便服务器在查询失败后读取临时表信息。 #8084 (Azat Khuzhin)
- 修复
bitmapAnd
在聚合位图和标量位图相交时出现函数错误。 #8082 (黄月) - 完善的定义
ZXid
根据动物园管理员的程序员指南,它修复了错误clickhouse-cluster-copier
. #8088 (丁香飞) odbc
表函数现在尊重external_table_functions_use_nulls
设置。 #7506 (瓦西里*内姆科夫)- 修正了导致罕见的数据竞赛的错误。 #8143 (亚历山大*卡扎科夫)
- 现在
SYSTEM RELOAD DICTIONARY
完全重新加载字典,忽略update_field
. 这修复 #7440. #8037 (维塔利*巴拉诺夫) - 添加检查字典是否存在于创建查询的能力。 #8032 (阿利沙平)
- 修复
Float*
解析中Values
格式。 这修复 #7817. #7870 (tavplubix) - 修复崩溃时,我们不能在一些后台操作保留空间
*MergeTree
表引擎家族. #7873 (Vladimir Chebotarev) - 修复表包含合并操作时的崩溃
SimpleAggregateFunction(LowCardinality)
列。 这修复 #8515. #8522 (Azat Khuzhin) - 恢复对所有ICU区域设置的支持,并添加对常量表达式应用排序规则的功能。 还添加语言名称
system.collations
桌子 #8051 (阿利沙平) - 修正错误时,外部字典与零最小寿命 (
LIFETIME(MIN 0 MAX N)
,LIFETIME(N)
)不要在后台更新。 #7983 (阿利沙平) - 修复当clickhouse源外部字典在查询中有子查询时崩溃。 #8351 (尼古拉*科切托夫)
- 修复文件扩展名不正确的解析表与引擎
URL
. 这修复 #8157. #8419 (安德烈*博德罗夫) - 修复
CHECK TABLE
查询为*MergeTree
表没有关键. 修复 #7543. #7979 (阿利沙平) - 固定转换
Float64
到MySQL类型。 #8079 (尤里*巴拉诺夫) - 现在,如果表没有完全删除,因为服务器崩溃,服务器将尝试恢复并加载它。 #8176 (tavplubix)
- 修复了表函数中的崩溃
file
同时插入到不存在的文件。 现在在这种情况下,文件将被创建,然后插入将被处理。 #8177 (Olga Khvostikova) - 修复罕见的死锁时,可能发生
trace_log
处于启用状态。 #7838 (filimonov) - 添加能力与不同类型的工作,除了
Date
在RangeHashed
从DDL查询创建的外部字典。 修复 7899. #8275 (阿利沙平) - 修复崩溃时
now64()
用另一个函数的结果调用。 #8270 (瓦西里*内姆科夫) - 修正了通过mysql有线协议检测客户端IP连接的错误。 #7743 (Dmitry Muzyka)
- 修复空阵列处理
arraySplit
功能。 这修复 #7708. #7747 (hcz) - 修复了以下问题
pid-file
另一个运行clickhouse-server
可能会被删除。 #8487 (徐伟清) - 修复字典重新加载,如果它有
invalidate_query
,停止更新,并在以前的更新尝试一些异常。 #8029 (阿利沙平) - 修正了功能错误
arrayReduce
这可能会导致 “double free” 和聚合函数组合器中的错误Resample
这可能会导致内存泄漏。 添加聚合功能aggThrow
. 此功能可用于测试目的。 #8446 (阿列克谢-米洛维多夫)
改进
- 改进了使用时的日志记录
S3
表引擎。 #8251 (Grigory Pervakov) - 在调用时未传递任何参数时打印帮助消息
clickhouse-local
. 这修复 #5335. #8230 (安德烈*纳戈尔尼) - 添加设置
mutations_sync
这允许等待ALTER UPDATE/DELETE
同步查询。 #8237 (阿利沙平) - 允许设置相对
user_files_path
在config.xml
(在类似的方式format_schema_path
). #7632 (hcz) - 为转换函数添加非法类型的异常
-OrZero
后缀 #7880 (安德烈*科尼亚耶夫) - 简化在分布式查询中发送到分片的数据头的格式。 #8044 (维塔利*巴拉诺夫)
Live View
表引擎重构。 #8519 (vzakaznikov)- 为从DDL查询创建的外部字典添加额外的检查。 #8127 (阿利沙平)
- 修复错误
Column ... already exists
使用时FINAL
和SAMPLE
together, e.g.select count() from table final sample 1/2
. 修复 #5186. #7907 (尼古拉*科切托夫) - 现在表的第一个参数
joinGet
函数可以是表标识符。 #7707 (阿莫斯鸟) - 允许使用
MaterializedView
与上面的子查询Kafka
桌子 #8197 (filimonov) - 现在后台在磁盘之间移动,运行它的seprate线程池。 #7670 (Vladimir Chebotarev)
SYSTEM RELOAD DICTIONARY
现在同步执行。 #8240 (维塔利*巴拉诺夫)- 堆栈跟踪现在显示物理地址(对象文件中的偏移量),而不是虚拟内存地址(加载对象文件的位置)。 这允许使用
addr2line
当二进制独立于位置并且ASLR处于活动状态时。 这修复 #8360. #8387 (阿列克谢-米洛维多夫) - 支持行级安全筛选器的新语法:
<table name='table_name'>...</table>
. 修复 #5779. #8381 (伊万) - 现在
cityHash
功能可以与工作Decimal
和UUID
类型。 修复 #5184. #7693 (米哈伊尔*科罗托夫) - 从系统日志中删除了固定的索引粒度(它是1024),因为它在实现自适应粒度之后已经过时。 #7698 (阿列克谢-米洛维多夫)
- 当ClickHouse在没有SSL的情况下编译时,启用MySQL兼容服务器。 #7852 (尤里*巴拉诺夫)
- 现在服务器校验和分布式批处理,这在批处理中损坏数据的情况下提供了更多详细的错误。 #7914 (Azat Khuzhin)
- 碌莽禄Support:
DROP DATABASE
,DETACH TABLE
,DROP TABLE
和ATTACH TABLE
为MySQL
数据库引擎。 #8202 (张冬) - 在S3表功能和表引擎中添加身份验证。 #7623 (Vladimir Chebotarev)
- 增加了检查额外的部分
MergeTree
在不同的磁盘上,为了不允许错过未定义磁盘上的数据部分。 #8118 (Vladimir Chebotarev) - 启用Mac客户端和服务器的SSL支持。 #8297 (伊万)
- 现在ClickHouse可以作为MySQL联合服务器(参见https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html)。 #7717 (Maxim Fedotov)
clickhouse-client
现在只能启用bracketed-paste
当多查询处于打开状态且多行处于关闭状态时。 这修复(#7757)[https://github.com/ClickHouse/ClickHouse/issues/7757。 #7761 (阿莫斯鸟)- 碌莽禄Support:
Array(Decimal)
在if
功能。 #7721 (Artem Zuikov) - 支持小数
arrayDifference
,arrayCumSum
和arrayCumSumNegative
功能。 #7724 (Artem Zuikov) - 已添加
lifetime
列到system.dictionaries
桌子 #6820 #7727 (kekekekule) - 改进了检查不同磁盘上的现有部件
*MergeTree
表引擎. 地址 #7660. #8440 (Vladimir Chebotarev) - 集成与
AWS SDK
为S3
交互允许使用开箱即用的所有S3功能。 #8011 (帕维尔*科瓦连科) - 增加了对子查询的支持
Live View
桌子 #7792 (vzakaznikov) - 检查使用
Date
或DateTime
从列TTL
表达式已删除。 #7920 (Vladimir Chebotarev) - 有关磁盘的信息已添加到
system.detached_parts
桌子 #7833 (Vladimir Chebotarev) - 现在设置
max_(table|partition)_size_to_drop
无需重新启动即可更改。 #7779 (Grigory Pervakov) - 错误消息的可用性略好。 要求用户不要删除下面的行
Stack trace:
. #7897 (阿列克谢-米洛维多夫) - 更好地阅读消息
Kafka
引擎在各种格式后 #7935. #8035 (伊万) - 与不支持MySQL客户端更好的兼容性
sha2_password
验证插件。 #8036 (尤里*巴拉诺夫) - 支持MySQL兼容性服务器中的更多列类型。 #7975 (尤里*巴拉诺夫)
- 执行
ORDER BY
优化Merge
,Buffer
和Materilized View
存储与底层MergeTree
桌子 #8130 (安东*波波夫) - 现在我们总是使用POSIX实现
getrandom
与旧内核更好的兼容性(\<3.17)。 #7940 (阿莫斯鸟) - 更好地检查移动ttl规则中的有效目标。 #8410 (Vladimir Chebotarev)
- 更好地检查损坏的刀片批次
Distributed
表引擎。 #7933 (Azat Khuzhin) - 添加带有部件名称数组的列,这些部件将来必须处理突变
system.mutations
桌子 #8179 (阿利沙平) - 处理器的并行合并排序优化。 #8552 (尼古拉*科切托夫)
- 设置
mark_cache_min_lifetime
现在已经过时了,什么也不做。 在以前的版本中,标记缓存可以在内存中增长大于mark_cache_size
以容纳内的数据mark_cache_min_lifetime
秒。 这导致了混乱和比预期更高的内存使用率,这在内存受限的系统上尤其糟糕。 如果您在安装此版本后会看到性能下降,则应增加mark_cache_size
. #8484 (阿列克谢-米洛维多夫) - 准备使用
tid
到处都是 这是必要的 #7477. #8276 (阿列克谢-米洛维多夫)
性能改进
- 处理器管道中的性能优化。 #7988 (尼古拉*科切托夫)
- 缓存字典中过期密钥的非阻塞更新(具有读取旧密钥的权限)。 #8303 (尼基塔*米哈伊洛夫)
- 没有编译ClickHouse
-fno-omit-frame-pointer
在全球范围内多余一个寄存器。 #8097 (阿莫斯鸟) - 加速
greatCircleDistance
功能,并为它添加性能测试。 #7307 (Olga Khvostikova) - 改进的功能性能
roundDown
. #8465 (阿列克谢-米洛维多夫) - 改进的性能
max
,min
,argMin
,argMax
为DateTime64
数据类型。 #8199 (瓦西里*内姆科夫) - 改进了无限制或大限制和外部排序的排序性能。 #8545 (阿列克谢-米洛维多夫)
- 改进的性能格式化浮点数高达6倍。 #8542 (阿列克谢-米洛维多夫)
- 改进的性能
modulo
功能。 #7750 (阿莫斯鸟) - 优化
ORDER BY
并与单列键合并。 #8335 (阿列克谢-米洛维多夫) - 更好地实施
arrayReduce
,-Array
和-State
组合子 #7710 (阿莫斯鸟) - 现在
PREWHERE
应优化为至少一样高效WHERE
. #7769 (阿莫斯鸟) - 改进方式
round
和roundBankers
处理负数。 #8229 (hcz) - 改进的解码性能
DoubleDelta
和Gorilla
编解码器大约30-40%。 这修复 #7082. #8019 (瓦西里*内姆科夫) - 改进的性能
base64
相关功能。 #8444 (阿列克谢-米洛维多夫) - 增加了一个功能
geoDistance
. 它类似于greatCircleDistance
但使用近似于WGS-84椭球模型。 两个功能的性能几乎相同。 #8086 (阿列克谢-米洛维多夫) - 更快
min
和max
聚合函数Decimal
数据类型。 #8144 (Artem Zuikov) - 矢量化处理
arrayReduce
. #7608 (阿莫斯鸟) if
链现在优化为multiIf
. #8355 (kamalov-ruslan)- 修复性能回归
Kafka
表引擎在19.15中引入。 这修复 #7261. #7935 (filimonov) - 已删除 “pie” 代码生成
gcc
从Debian软件包偶尔带来默认情况下。 #8483 (阿列克谢-米洛维多夫) - 并行解析数据格式 #6553 (尼基塔*米哈伊洛夫)
- 启用优化的解析器
Values
默认使用表达式 (input_format_values_deduce_templates_of_expressions=1
). #8231 (tavplubix)
构建/测试/包装改进
- 构建修复
ARM
而在最小模式。 #8304 (proller) - 添加复盖文件刷新
clickhouse-server
当不调用std::atexit时。 还略微改进了无状态测试的复盖率日志记录。 #8267 (阿利沙平) - 更新contrib中的LLVM库。 避免从操作系统包中使用LLVM。 #8258 (阿列克谢-米洛维多夫)
- 使bund绑
curl
建立完全安静。 #8232 #8203 (帕维尔*科瓦连科) - 修复一些
MemorySanitizer
警告。 #8235 (Alexander Kuzmenkov) - 使用
add_warning
和no_warning
宏CMakeLists.txt
. #8604 (伊万) - 添加对Minio S3兼容对象的支持(https://min.io/)为了更好的集成测试。 #7863 #7875 (帕维尔*科瓦连科)
- 导入
libc
标题到contrib。 它允许在各种系统中使构建更加一致(仅适用于x86_64-linux-gnu
). #5773 (阿列克谢-米洛维多夫) - 删除
-fPIC
从一些图书馆。 #8464 (阿列克谢-米洛维多夫) - 清洁
CMakeLists.txt
对于卷曲。 看https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910 #8459 (阿列克谢-米洛维多夫) - 无声警告
CapNProto
图书馆. #8220 (阿列克谢-米洛维多夫) - 为短字符串优化哈希表添加性能测试。 #7679 (阿莫斯鸟)
- 现在ClickHouse将建立在
AArch64
即使MADV_FREE
不可用。 这修复 #8027. #8243 (阿莫斯鸟) - 更新
zlib-ng
来解决记忆消毒的问题 #7182 #8206 (Alexander Kuzmenkov) - 在非Linux系统上启用内部MySQL库,因为操作系统包的使用非常脆弱,通常根本不起作用。 这修复 #5765. #8426 (阿列克谢-米洛维多夫)
- 修复了启用后在某些系统上构建的问题
libc++
. 这取代了 #8374. #8380 (阿列克谢-米洛维多夫) - 赂眉露>>
Field
方法更类型安全,以找到更多的错误。 #7386 #8209 (Alexander Kuzmenkov) - 添加丢失的文件到
libc-headers
子模块。 #8507 (阿列克谢-米洛维多夫) - 修复错误
JSON
引用性能测试输出。 #8497 (尼古拉*科切托夫) - 现在堆栈跟踪显示
std::exception
和Poco::Exception
. 在以前的版本中,它仅适用于DB::Exception
. 这改进了诊断。 #8501 (阿列克谢-米洛维多夫) - 移植
clock_gettime
和clock_nanosleep
对于新鲜的glibc版本。 #8054 (阿莫斯鸟) - 启用
part_log
在示例配置开发人员。 #8609 (阿列克谢-米洛维多夫) - 修复重新加载的异步性质
01036_no_superfluous_dict_reload_on_create_database*
. #8111 (Azat Khuzhin) - 固定编解码器性能测试。 #8615 (瓦西里*内姆科夫)
- 添加安装脚本
.tgz
为他们构建和文档。 #8612 #8591 (阿利沙平) - 删除旧
ZSTD
测试(它是在2016年创建的,以重现zstd1.0版本之前的错误)。 这修复 #8618. #8619 (阿列克谢-米洛维多夫) - 固定构建在Mac OS卡特琳娜。 #8600 (meo)
- 增加编解码器性能测试中的行数,以使结果显着。 #8574 (瓦西里*内姆科夫)
- 在调试版本中,处理
LOGICAL_ERROR
异常作为断言失败,使得它们更容易被注意到。 #8475 (Alexander Kuzmenkov) - 使与格式相关的性能测试更具确定性。 #8477 (阿列克谢-米洛维多夫)
- 更新
lz4
来修复记忆消毒器的故障 #8181 (Alexander Kuzmenkov) - 在异常处理中抑制已知MemorySanitizer误报。 #8182 (Alexander Kuzmenkov)
- 更新
gcc
和g++
到版本9在build/docker/build.sh
#7766 (TLightSky) - 添加性能测试用例来测试
PREWHERE
比WHERE
. #7768 (阿莫斯鸟) - 在修复一个笨拙的测试方面取得了进展。 #8621 (阿列克谢-米洛维多夫)
- 避免从MemorySanitizer报告数据
libunwind
. #8539 (阿列克谢-米洛维多夫) - 更新
libc++
到最新版本。 #8324 (阿列克谢-米洛维多夫) - 从源头构建ICU库。 这修复 #6460. #8219 (阿列克谢-米洛维多夫)
- 从切换
libressl
到openssl
. ClickHouse应在此更改后支持TLS1.3和SNI。 这修复 #8171. #8218 (阿列克谢-米洛维多夫) - 使用时固定的UBSan报告
chacha20_poly1305
从SSL(发生在连接到https://yandex.ru/)。 #8214 (阿列克谢-米洛维多夫) - 修复默认密码文件的模式
.deb
linux发行版。 #8075 (proller) - 改进的表达式获取
clickhouse-server
PID输入clickhouse-test
. #8063 (亚历山大*卡扎科夫) - 更新contrib/googletest到v1.10.0。 #8587 (Alexander Burmak)
- 修复了ThreadSaninitizer报告
base64
图书馆. 还将此库更新到最新版本,但无关紧要。 这修复 #8397. #8403 (阿列克谢-米洛维多夫) - 修复
00600_replace_running_query
对于处理器。 #8272 (尼古拉*科切托夫) - 删除支持
tcmalloc
为了使CMakeLists.txt
更简单 #8310 (阿列克谢-米洛维多夫) - 发布海湾合作委员会构建现在使用
libc++
而不是libstdc++
. 最近libc++
只与叮当一起使用。 这将提高构建配置的一致性和可移植性。 #8311 (阿列克谢-米洛维多夫) - 使用MemorySanitizer启用ICU库进行构建。 #8222 (阿列克谢-米洛维多夫)
- 禁止从警告
CapNProto
图书馆. #8224 (阿列克谢-米洛维多夫) - 删除代码的特殊情况
tcmalloc
,因为它不再受支持。 #8225 (阿列克谢-米洛维多夫) - 在CI coverage任务中,优雅地终止服务器以允许它保存coverage报告。 这修复了我们最近看到的不完整的复盖率报告。 #8142 (阿利沙平)
- 针对所有编解码器的性能测试
Float64
和UInt64
值。 #8349 (瓦西里*内姆科夫) termcap
非常不推荐使用,并导致各种问题(f.g.missing “up” 帽和呼应^J
而不是多行)。 帮个忙terminfo
或bund绑ncurses
. #7737 (阿莫斯鸟)- 修复
test_storage_s3
集成测试。 #7734 (尼古拉*科切托夫) - 碌莽禄Support:
StorageFile(<format>, null)
将块插入给定格式的文件而不实际写入磁盘。 这是性能测试所必需的。 #8455 (阿莫斯鸟) - 添加参数
--print-time
功能测试打印每个测试的执行时间。 #8001 (尼古拉*科切托夫) - 添加断言
KeyCondition
同时评估RPN。 这将修复来自gcc-9的警告。 #8279 (阿列克谢-米洛维多夫) - 在CI构建中转储cmake选项。 #8273 (Alexander Kuzmenkov)
- 不要为某些fat库生成调试信息。 #8271 (阿列克谢-米洛维多夫)
- 赂眉露>>
log_to_console.xml
始终登录到stderr,无论它是否交互。 #8395 (Alexander Kuzmenkov) - 删除了一些未使用的功能
clickhouse-performance-test
工具 #8555 (阿列克谢-米洛维多夫) - 现在我们也将搜索
lld-X
与相应的clang-X
版本。 #8092 (阿利沙平) - 实木复合地板建设改善。 #8421 (马苏兰)
- 更多海湾合作委员会警告 #8221 (kreuzerkrieg)
- Arch Linux的软件包现在允许运行ClickHouse服务器,而不仅仅是客户端。 #8534 (Vladimir Chebotarev)
- 修复与处理器的测试。 微小的性能修复。 #7672 (尼古拉*科切托夫)
- 更新contrib/protobuf。 #8256 (Matwey V.Kornilov)
- 在准备切换到c++20作为新年庆祝活动。 “May the C++ force be with ClickHouse.” #8447 (阿莫斯鸟)
实验特点
- 增加了实验设置
min_bytes_to_use_mmap_io
. 它允许读取大文件,而无需将数据从内核复制到用户空间。 默认情况下禁用该设置。 建议的阈值大约是64MB,因为mmap/munmap很慢。 #8520 (阿列克谢-米洛维多夫) - 返工配额作为访问控制系统的一部分。 增加了新表
system.quotas
,新功能currentQuota
,currentQuotaKey
,新的SQL语法CREATE QUOTA
,ALTER QUOTA
,DROP QUOTA
,SHOW QUOTA
. #7257 (维塔利*巴拉诺夫) - 允许跳过带有警告的未知设置,而不是引发异常。 #7653 (维塔利*巴拉诺夫)
- 重新设计的行策略作为访问控制系统的一部分。 增加了新表
system.row_policies
,新功能currentRowPolicies()
,新的SQL语法CREATE POLICY
,ALTER POLICY
,DROP POLICY
,SHOW CREATE POLICY
,SHOW POLICIES
. #7808 (维塔利*巴拉诺夫)
安全修复
- 修正了读取目录结构中的表的可能性
File
表引擎。 这修复 #8536. #8537 (阿列克谢-米洛维多夫)