ClickHouse/docs/zh/whats_new/changelog/2019.md
2020-04-08 17:22:25 +03:00

281 KiB
Raw Blame History

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 查询没有使用 TABLEDICTIONARY 预选赛,就像 EXISTS t. #8213 (阿列克谢-米洛维多夫)
  • 函数的固定返回类型 randrandConstant 在可为空的参数的情况下。 现在函数总是返回 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 (阿利沙平)
  • 用于读取的流数 StorageFileStorageHDFS 现在是有限的,以避免超过内存限制。 #7981 (阿利沙平)
  • 固定 CHECK TABLE 查询为 *MergeTree 表没有关键. #7979 (阿利沙平)
  • 如果没有突变,则从部件名称中删除突变编号。 这种删除提高了与旧版本的兼容性。 #8250 (阿利沙平)
  • 修复了某些附加部分因data_version大于表突变版本而跳过突变的问题。 #7812 (余志昌)
  • 允许在将部件移动到其他设备后使用冗余副本启动服务器。 #7810 (Vladimir Chebotarev)
  • 修正了错误 “Sizes of columns doesnt 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 支持的索引类型 LowCardinalityNullable #7363 #7561 (尼古拉*科切托夫)
  • 添加功能 isValidJSON 要检查传递的字符串是否是有效的json。 #5910 #7293 (Vdimir)
  • 执行 arrayCompact 功能 #7328 (备忘录)
  • 创建函数 hex 对于十进制数。 它的工作原理如下 hex(reinterpretAsString()),但不会删除最后的零字节。 #7355 (米哈伊尔*科罗托夫)
  • 添加 arrayFillarrayReverseFill 函数,用数组中其他元素替换它们前面/后面的元素。 #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_TINYINTSQL_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 (阿利沙平)
  • 在定义S3URL和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)

性能改进

构建/测试/包装改进

其他

碌莽禄.拢.0755-88888888

ClickHouse版本v19.16.14.65,2020-03-25

  • 修复了多个参数超过10的三元逻辑运算批量计算中的错误。 #8718 (亚历山大*卡扎科夫这个错误修正是由Altinity的特殊要求回移到版本19.16的。

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

向后不兼容的更改

新功能

错误修复

  • 修复错误的查询结果,如果它有 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_mssystem.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)

改进

性能改进

构建/测试/包装改进

代码清理

ClickHouse释放19.15

ClickHouse释放19.15.4.10,2019-10-31

错误修复

ClickHouse释放19.15.3.6,2019-10-09

错误修复

碌莽禄,拢,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 (余志昌)
  • 添加 bitmapMinbitmapMax 功能。 #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)
  • 添加自动转换类型 TLowCardinality(T) 在类型的列中插入数据 LowCardinality(T) 在本机格式通过HTTP。 #6891 (尼古拉*科切托夫)
  • 添加使用功能的能力 hex 不使用 reinterpretAsStringFloat32, Float64. #7024 (米哈伊尔*科罗托夫)

构建/测试/包装改进

错误修复

向后不兼容的更改

  • 更改了位图*聚合函数状态的序列化格式,以提高性能。 无法读取以前版本的位图*的序列化状态。 #6908 (余志昌)

ClickHouse释放19.14

ClickHouse释放19.14.7.15,2019-10-02

错误修复

ClickHouse释放19.14.6.12,2019-09-19

错误修复

  • 修复功能 АrrayEnumerateUniqRanked 在参数中使用空数组。 #6928 (proller)
  • 修复了查询中的子查询名称 ARRAY JOINGLOBAL 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)
  • 支持表函数路径中的通配符 filehdfs. 如果路径包含通配符,则表将为只读。 使用示例: 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.eventssystem.metrics 具有指定的时间间隔。 #6363 #6467 (尼基塔*米哈伊洛夫) #6530 (阿列克谢-米洛维多夫)
  • 允许将ClickHouse文本日志写入 system.text_log 桌子 #6037 #6103 (尼基塔*米哈伊洛夫) #6164 (阿列克谢-米洛维多夫)
  • 在堆栈跟踪中显示私有符号这是通过解析ELF文件的符号表来完成的。 如果存在调试信息,则在堆栈跟踪中添加有关文件和行号的信息。 使用程序中存在的索引符号加速符号名称查找。 增加了新的SQL函数的反省: demangleaddressToLine. 重命名函数 symbolizeAddressaddressToSymbol 为了一致性。 功能 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)
  • 增加了两个新功能: sigmoidtanh (这对于机器学习应用程序非常有用)。 #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)
  • 新的聚合函数 quantilesExactInclusivequantilesExactExclusive 这是在提出 #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)

实验特点

错误修复

  • 此版本还包含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 TABLESELECTsystem.partssystem.parts_columns. 在准备突变查询时修复了竞争条件。 修复了由于 OPTIMIZE 复制的表和并发修改操作,如改变。 #6514 (阿列克谢-米洛维多夫)
  • 在MySQL界面中删除了额外的详细日志记录 #6389 (阿列克谢-米洛维多夫)
  • 返回解析布尔设置的能力 truefalse 在配置文件中。 #6278 (阿利沙平)
  • 修复崩溃 quantilemedian 功能结束 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 (尼古拉*科切托夫)
  • 修复错误的行为和可能的段错误 topKtopKWeighted 聚合函数。 #6404 (安东*波波夫)
  • 固定周围的不安全代码 getIdentifier 功能。 #6401 #6409 (阿列克谢-米洛维多夫)
  • 在MySQL线协议连接到ClickHouse的形式MySQL客户端时使用修正了错误。 引起的堆缓冲区溢出 PacketPayloadWriteBuffer. #6212 (尤里*巴拉诺夫)
  • 固定内存泄漏 bitmapSubsetInRange 功能。 #6819 (余志昌)
  • 修复粒度变化后执行突变时的罕见错误。 #6816 (阿利沙平)
  • 默认情况下允许包含所有字段的protobuf消息。 #6132 (维塔利*巴拉诺夫)
  • 解决错误 nullIf 功能,当我们发送 NULL 第二个参数的参数。 #6446 (纪尧姆*塔瑟里)
  • 修正了错误的内存分配/解除分配在复杂的键高速缓存字典与字符串字段,导致无限的内存消耗罕见的错误(看起来像内存泄漏)。 当字符串大小为881632等开始的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 ROLLUPWITH 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 like SELECT 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_speedmax_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. after ALTER ... MODIFY TTL 查询。 添加查询 SYSTEM STOP/START TTL MERGES 要禁止/允许使用TTL分配合并并在所有合并中过滤过期值。 #6274 (安东*波波夫)
  • 可以更改ClickHouse历史文件的位置为客户端使用 CLICKHOUSE_HISTORY_FILE env #6840 (filimonov)
  • 删除 dry_run 从标志 InterpreterSelectQuery. … #6375 (尼古拉*科切托夫)
  • 碌莽禄Support: ASOF JOINON 科。 #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 =1ClickHouse现在从两个检查条件 prewherewhere 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 参数in windowFunnel(). 当 strict 设置,该 windowFunnel() 仅对唯一值应用条件。 #6548 (achimbab)
  • 更安全的界面 mysqlxx::Pool. #6150 (avasiliev)
  • 执行时选项行大小 --help 选项现在与终端大小对应。 #6590 (dimarub2000)
  • 禁用 “read in order” 优化无键的聚合。 #6599 (安东*波波夫)
  • Http状态代码 INCORRECT_DATATYPE_MISMATCH 错误代码已从默认值更改 500 Internal Server Error400 Bad Request. #6271 (亚历山大*罗丹)
  • 从移动连接对象 ExpressionActionAnalyzedJoin. ExpressionAnalyzerExpressionAction 不知道 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/ExpressionAnalyzerAnalyzedJoin. #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(). 准备一个地方 ExpressionAnalyzerMergeJoin. #6524 (Artem Zuikov)
  • 已添加 mysql_native_password mysql兼容性服务器的身份验证插件。 #6194 (尤里*巴拉诺夫)
  • 更少的数量 clock_gettime 调用;调试/发布之间的固定ABI兼容性 Allocator (微不足道的问题)。 #6197 (阿列克谢-米洛维多夫)
  • 移动 collectUsedColumnsExpressionAnalyzerSyntaxAnalyzer. 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.processessystem.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_msconnection_pool_max_wait_ms 用于消除歧义。 #6692 (阿列克谢-米洛维多夫)
  • 提取物 SelectQueryExpressionAnalyzerExpressionAnalyzer. 保留最后一个用于非select查询。 #6499 (Artem Zuikov)
  • 删除重复输入和输出格式。 #6239 (尼古拉*科切托夫)
  • 允许用户复盖 poll_intervalidle_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的首席技术官的快速矢量数学库。 改进的性能 explog 功能超过6倍。 功能 explogFloat32 参数将返回 Float32 (在以前的版本中,他们总是返回 Float64). 现在 exp(nan) 可能会回来 inf. 的结果 explog 函数可能不是最接近机器可代表的数字到真正的答案。 #6254 (阿列克谢-米洛维多夫使用Danila Kutenin变体使fastops工作 #6317 (阿列克谢-米洛维多夫)
  • 禁用连续密钥优化 UInt8/16. #6298 #6701 (akuzm)
  • 改进的性能 simdjson 库通过摆脱动态分配 ParsedJson::Iterator. #6479 (维塔利*巴拉诺夫)
  • 预故障页分配内存时 mmap(). #6667 (akuzm)
  • 修复性能错误 Decimal 比较。 #6380 (Artem Zuikov)

构建/测试/包装改进

向后不兼容的更改

  • 删除很少使用的表函数 catBoostPool 和存储 CatBoostPool. 如果您使用了此表功能,请写电子邮件至 clickhouse-feedback@yandex-team.com. 请注意CatBoost集成仍然存在并将受到支持。 #6279 (阿列克谢-米洛维多夫)
  • 禁用 ANY RIGHT JOINANY 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

错误修复

ClickHouse释放19.13.4.32,2019-09-10

错误修复

安全修复

  • 修复解压缩阶段编解码器中的两个漏洞(恶意用户可以制造压缩数据,导致解压缩中的缓冲区溢出)。 #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 TABLESELECTsystem.partssystem.parts_columns. 在准备突变查询时修复了竞争条件。 修复了由于 OPTIMIZE 复制的表和并发修改操作,如改变。 #6514 (阿列克谢-米洛维多夫)
  • 修复后可能的数据丢失 ALTER DELETE 查询表跳过索引。 #6224 #6282 (尼基塔*瓦西列夫)

安全修复

  • 如果攻击者具有对ZooKeeper的写入访问权限并且能够从ClickHouse运行的网络中运行可用的自定义服务器则可以创建自定义构建的恶意服务器该服务器将充当ClickHouse副本并将其注册到ZooKeeper中。 当另一个副本从恶意副本中获取数据部分时它可以强制clickhouse-server写入文件系统上的任意路径。 由Yandex的信息安全团队Eldar Zaitov发现。 #6247 (阿列克谢-米洛维多夫)

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

新功能

向后不兼容的更改

  • 设置 input_format_defaults_for_omitted_fields 默认情况下启用。 分布式表中的插入需要此设置在集群上相同(您需要在滚动更新之前设置它)。 它允许计算复杂的默认表达式的省略字段 JSONEachRowCSV* 格式。 它应该是预期的行为,但可能导致可忽略不计的性能差异。 #6043 (Artem Zuikov), #5625 (akuzm)

实验特点

  • 新的查询处理管道。 使用 experimental_use_processors=1 选项来启用它。 用你自己的麻烦。 #4914 (尼古拉*科切托夫)

错误修复

  • Kafka集成已在此版本中修复。
  • 固定 DoubleDelta 编码 Int64 对于大 DoubleDelta 值,改进 DoubleDelta 编码为随机数据 Int32. #5998 (瓦西里*内姆科夫)
  • 固定的高估 max_rows_to_read 如果设置 merge_tree_uniform_read_distribution 置为0。 #6019 (阿列克谢-米洛维多夫)

改进

  • 如果抛出异常 config.d 文件没有相应的根元素作为配置文件 #6123 (dimarub2000)

性能改进

  • 优化 count(). 现在它使用最小的列(如果可能的话)。 #6028 (阿莫斯鸟)

构建/测试/包装改进

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

错误修复

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

  • 修复从Kafka空主题中选择时导致段错误的逻辑错误。 #6902 #6909 (伊万)
  • 修复功能 АrrayEnumerateUniqRanked 在参数中使用空数组。 #6928 (proller)

ClickHouse释放19.11.10.54,2019-09-10

错误修复

  • 手动存储Kafka消息的偏移量以便能够一次性为所有分区提交它们。 修复潜在的重复 “one consumer - many partitions” 场景。 #6872 (伊万)

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682

安全修复

  • 如果攻击者具有对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 TABLESELECTsystem.partssystem.parts_columns. 在准备突变查询时修复了竞争条件。 修复了由于 OPTIMIZE 复制的表和并发修改操作,如改变。 #6514 (阿列克谢-米洛维多夫)

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

错误修复

改进

碌莽禄,拢,010-68520682<url>戮漏鹿芦,酶,虏卤赂拢,110102003042

错误修复

向后不兼容的更改

  • Kafka 还是坏了

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

错误修复

  • 修复编写具有自适应粒度的二级索引标记的错误。 #6126 (阿利沙平)
  • 修复 WITH ROLLUPWITH CUBE 修饰符 GROUP BY 具有两级聚合。 #6225 (安东*波波夫)
  • 固定挂起 JSONExtractRaw 功能。 固定 #6195 #6198 (阿列克谢-米洛维多夫)
  • 修复ExternalLoader::reloadOutdated()中的段错误。 #6082 (维塔利*巴拉诺夫)
  • 修复了服务器可能关闭侦听套接字但不关闭并继续提供剩余查询的情况。 您最终可能会有两个正在运行的clickhouse服务器进程。 有时,服务器可能会返回错误 bad_function_call 对于剩余的查询。 #6231 (阿列克谢-米洛维多夫)
  • 修复了通过ODBCMySQLClickHouse和HTTP初始加载外部字典的更新字段无用和不正确的条件。 这修复 #6069 #6083 (阿列克谢-米洛维多夫)
  • 在固定不相关的异常转换 LowCardinality(Nullable) to not-Nullable column in case if it doesn't contain Nulls (e.g. in query like SELECT 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 (伊万)

构建/测试/包装改进

向后不兼容的更改

  • Kafka 在这个版本中被打破。

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

新功能

错误修复

  • 使用异步更新实现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 (阿利沙平)
  • 修复 coalesceColumnConstColumnNullable +相关变化. #5755 (Artem Zuikov)
  • 修复 ReadBufferFromKafkaConsumer 所以它不断阅读新的消息后 commit() 即使它之前停滞不前 #5852 (伊万)
  • 修复 FULLRIGHT 加入时加入结果 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 (维塔利*巴拉诺夫)

改进

性能改进

构建/测试/包装改进

向后不兼容的更改

  • 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. 为UIntX/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 (新东鹏)

改进

性能改进

  • 添加在MergeTree列末尾写最后标记的可能性。 它允许避免对超出表数据范围的键进行无用的读取。 仅当使用自适应索引粒度时才启用此功能。 #5624 (阿利沙平)
  • 通过减少非常慢的文件系统上的MergeTree表的性能 stat syscalls #5648 (阿列克谢-米洛维多夫)
  • 修复了从版本19.6中引入的MergeTree表读取时的性能下降。 修复5631。 #5633 (阿列克谢-米洛维多夫)

构建/测试/包装改进

ClickHouse释放19.9

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

错误修复

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

新功能

  • 打印有关冷冻部件的信息 system.parts 桌子 #5471 (proller)
  • 在clickhouse上询问客户端密码-如果未在参数中设置则在tty上启动客户端 #5092 (proller)
  • 执行 dictGetdictGetOrDefault 十进制类型的函数。 #5394 (Artem Zuikov)

改进

错误修复

  • 修复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_formatlow_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)

构建/测试/包装改进

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 BYLIMIT m OFFSET n BY 为LIMIT BY子句设置n偏移量的语法。 #5138 (安东*波波夫)
  • 增加了新的数据类型 SimpleAggregateFunction,它允许在一个具有光聚集的列 AggregatingMergeTree. 这只能用于简单的功能,如 any, anyLast, sum, min, max. #4629 (Boris Granveaud)
  • 增加了对函数中非常量参数的支持 ngramDistance #5198 (Danila Kutenin)
  • 新增功能 skewPop, skewSamp, kurtPopkurtSamp 分别计算序列偏度、样本偏度、峰度和样本峰度。 #5200 (hcz)
  • 支持重命名操作 MaterializeView 存储。 #5209 (纪尧姆*塔瑟里)
  • 添加了允许使用MySQL客户端连接到ClickHouse的服务器。 #4715 (尤里*巴拉诺夫)
  • 添加 toDecimal*OrZerotoDecimal*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)
  • 执行 geohashEncodegeohashDecode 功能。 #5003 (瓦西里*内姆科夫)
  • 添加聚合功能 timeSeriesGroupSum,从而可以聚合不同的时间序列,即采样时间戳不对齐。 它将在两个采样时间戳之间使用线性插值,然后将时间序列和在一起。 添加聚合功能 timeSeriesGroupRateSum,它计算时间序列的速率,然后将速率总和在一起。 #4542 (刘杨宽)
  • 新增功能 IPv4CIDRtoIPv4RangeIPv6CIDRtoIPv6Range 使用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 (维塔利*巴拉诺夫)
  • 现在 ifmultiIf 功能不依赖于条件的 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)
  • 重命名函数 leastSqrsimpleLinearRegression, LinearRegressionlinearRegression, LogisticRegressionlogisticRegression. #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)
  • 修复错误 DecimalNullable(Decimal) 转换中。 支持其他十进制到十进制转换(包括不同的比例)。 #5350 (Artem Zuikov)
  • 修正了simdjson库中导致错误计算的FPU clobbering uniqHLLuniqCombined 聚合函数和数学函数,如 log. #5354 (阿列克谢-米洛维多夫)
  • 固定处理JSON函数中的混合常量/非常量情况。 #5435 (维塔利*巴拉诺夫)
  • 修复 retention 功能。 现在所有满足一行数据的条件都被添加到数据状态。 #5119 (小路)
  • 修复结果类型 quantileExact 用小数。 #5304 (Artem Zuikov)

文件

构建/测试/打包改进

ClickHouse释放19.7

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

错误修复

  • 使用JOIN修复某些查询中的性能回归。 #5192 (张冬)

碌莽禄,拢,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 (阿列克谢-米洛维多夫)

性能改进

文件

构建/测试/打包改进

ClickHouse释放19.6

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

错误修复

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

新功能

  • 列和表的TTL表达式。 #4212 (安东*波波夫)
  • 增加了对 brotli http响应的压缩接受编码br) #4388 (米哈伊尔)
  • 增加了新功能 isValidUTF8 用于检查一组字节是否被正确地utf-8编码。 #4934 (Danila Kutenin)
  • 添加新的负载平衡策略 first_or_random 它将查询发送到第一个指定的主机,如果无法访问,则向分片的随机主机发送查询。 对于跨复制拓扑设置非常有用。 #5012 (纳瓦托洛梅)

实验特点

  • 添加设置 index_granularity_bytes (自适应索引粒度)对于MergeTree*表族. #4826 (阿利沙平)

改进

  • 增加了对函数的非常量和负大小和长度参数的支持 substringUTF8. #4989 (阿列克谢-米洛维多夫)
  • 在左联接中禁用向下推到右表,在右联接中禁用左表,并在完全联接中禁用两个表。 在某些情况下,这可以修复错误的连接结果。 #4846 (伊万)
  • clickhouse-copier:从自动上传任务配置 --task-file 备选案文 #4876 (proller)
  • 为存储工厂和表函数工厂添加了错别字处理程序。 #4891 (Danila Kutenin)
  • 支持不带子查询的多个联接的星号和限定星号 #4898 (Artem Zuikov)
  • 使缺少列错误消息更加用户友好。 #4915 (Artem Zuikov)

性能改进

向后不兼容的更改

  • HTTP头 Query-Id 改名为 X-ClickHouse-Query-Id 为了一致性。 #4972 (米哈伊尔)

错误修复

  • 修正了潜在的空指针取消引用 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 DISTINCTJOIN #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>

错误修复

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

新功能

改进

  • topKtopKWeighted 现在支持自定义 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 并添加更多的功能 CaseInsensitiveUTF. #4602 (Danila Kutenin)
  • 改进的数据跳过指数计算。 #4640 (尼基塔*瓦西列夫)
  • 保持平凡, DEFAULT, MATERIALIZEDALIAS 在一个列表中的列(修复问题 #2867). #4707 (Alex Zatelepin)

错误修复

向后不兼容的更改

  • 重命名设置 insert_sample_with_metadata 到设置 input_format_defaults_for_omitted_fields. #4771 (Artem Zuikov)
  • 添加设置 max_partitions_per_insert_block 默认值为100。 如果插入的块包含较大数量的分区,则会引发异常。 如果要删除限制不推荐请将其设置为0。 #4845 (阿列克谢-米洛维多夫)
  • 多搜索功能被重命名 (multiPositionmultiSearchAllPositions, multiSearchmultiSearchAny, firstMatchmultiSearchFirstIndex). #4780 (Danila Kutenin)

性能改进

  • 通过内联优化Volnitsky搜索器为许多针或许多类似bigrams的查询提供约5-10的搜索改进。 #4862 (Danila Kutenin)
  • 修复设置时的性能问题 use_uncompressed_cache 大于零时,即出现在所有读取缓存中包含的数据时。 #4913 (阿利沙平)

构建/测试/包装改进

  • 强化调试构建更精细的内存映射和ASLR;为标记缓存和索引添加内存保护。 这允许在ASan和MSan无法做到这一点的情况下找到更多的内存st脚错误。 #4632 (阿列克谢-米洛维多夫)
  • 添加对cmake变量的支持 ENABLE_PROTOBUF, ENABLE_PARQUETENABLE_BROTLI 它允许启用/禁用上述功能与我们对librdkafkamysql等所做的相同#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>

错误修复

改进

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

错误修复

  • 修复崩溃 FULL/RIGHT JOIN 当我们加入可为空vs不可为空时。 #4855 (Artem Zuikov)
  • 修复分段故障 clickhouse-copier. #4835 (proller)

构建/测试/包装改进

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

错误修复

  • 固定读取 Array(LowCardinality) column在极少数情况下当column包含一个长序列的空数组时。 #4850 (尼古拉*科切托夫)

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

错误修复

  • 包含两个固定的远程查询 LIMIT BYLIMIT. 以前,如果 LIMIT BYLIMIT 用于远程查询, LIMIT 可能发生之前 LIMIT BY,这导致过滤的结果。 #4708 (康斯坦丁*潘)

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

新功能

错误修复

  • 此版本还包含19.3和19.1中的所有错误修复。
  • 修正了数据跳过索引的错误:插入后颗粒顺序不正确。 #4407 (尼基塔*瓦西列夫)
  • 固定 set ツ环板forョ NullableLowCardinality 列。 在它之前, set 索引与 NullableLowCardinality 列导致错误 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并且可以测试它 clangasan. #4579 (阿利沙平)
  • 预防 std::terminateinvalidate_queryclickhouse 外部字典源返回了错误的结果集(空或一行以上或一列以上)。 固定的问题,当 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 (伊万)

性能改进

构建/测试/包装改进

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 (尼古拉*科切托夫)

构建/测试/包装改进

碌莽禄,拢,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>

错误修复

构建/测试/打包改进

  • 固定构建与启用AVX。 #4527 (阿列克谢-米洛维多夫)
  • 基于已知版本而不是编译它的内核启用扩展记帐和IO记帐。 #4541 (纳瓦托洛梅)
  • 允许跳过core_dump的设置。size_limit如果限制设置失败则警告而不是throw。 #4473 (proller)
  • 删除了 inline 标签 void readBinary(...)Field.cpp. 也合并冗余 namespace DB 块。 #4530 (hcz)

碌莽禄,拢,010-68520682<url>

错误修复

碌莽禄,拢,010-68520682<url>

改进

错误修复

构建/测试/打包改进

碌莽禄,拢,010-68520682<url>

新功能

实验特点

错误修复

构建/测试/打包改进

向后不兼容的更改

  • 已删除 allow_experimental_low_cardinality_type 设置。 LowCardinality 数据类型已准备就绪。 #4323 (阿列克谢-米洛维多夫)
  • 根据可用内存量减少标记高速缓存大小和未压缩高速缓存大小。 #4240 (Lopatin Konstantin
  • 添加关键字 INDEXCREATE TABLE 查询。 具有名称的列 index 必须使用反引号或双引号引用: `index`. #4143 (尼基塔*瓦西列夫)
  • sumMap 现在提升结果类型而不是溢出。 老 sumMap 行为可以通过使用获得 sumMapWithOverflow 功能。 #4151 (Léo Ercolanelli)

性能改进

改进

ClickHouse释放19.1

碌莽禄,拢,010-68520682<url>

  • 修正错误 Column ... queried more than once 这可能发生,如果设置 asterisk_left_columns_only 在使用的情况下设置为1 GLOBAL JOINSELECT * (罕见的情况)。 该问题在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>

错误修复

碌莽禄,拢,010-68520682<url>

错误修复

  • 修复缺少/etc/clickhouse-server/config的安装包。xml #4343 (proller)

ClickHouse释放19.1

碌莽禄,拢,010-68520682<url>

错误修复

碌莽禄,拢,010-68520682<url>

新功能

实验特点

  • 添加了多个联接仿真 (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 EXISTSALTER TABLE ADD COLUMN 发言以及 IF EXISTSDROP/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)
  • 允许使用 Enums为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的实现 sequenceMatchsequenceCount 以防模式不包含时间。 #4004 (Léo Ercolanelli)
  • 整数序列化的性能改进。 #3968 (阿莫斯鸟)
  • 零左填充PODArray使-1元素始终有效并归零。 它用于无分支计算偏移量。 #3920 (阿莫斯鸟)
  • 还原 jemalloc 版本导致性能下降。 #4018 (阿列克谢-米洛维多夫)

向后不兼容的更改

构建/测试/打包改进

2018年的更新日志