CrateDB 5.5.1 发布,分布式 SQL 数据库

来源: OSCHINA
2023-12-02 10:38:17

CrateDB 是一个分布式的 SQL 数据库,使得实时存储和分析大量的机器数据变得简单。CrateDB 提供了通常与 NoSQL 数据库相关的可扩展性和灵活性,最小的 CrateDB 集群可以轻松地每秒摄取数万条记录。这些数据可以在整个集群中实时地、临时地、并行地进行查询。

CrateDB 5.5.1 现已正式发布,该版本更新内容如下:

修复

  • 修复了导致在WHERE子句中使用NOT表达式的查询无法正确评估NULL的问题。
  • 修复了以下问题:在INSERT INTO .. ON CONFLICT语句中,如果列不在目标列列表中,则生成的主键列的值会求值为NULL的问题。
  • 在创建表格时,如果使用表函数作为默认表达式或生成表达式的一部分,现在会在创建表格时出错,而不会因运行时故障而永远不插入记录。
  • 改进了在使用带有wait_for_completion=falseRETURN SUMMARYCOPY FROM时的错误信息。现在它会报告不支持这种组合,而不是出现ClassCastException
  • 修复了导致在WHERE子句中使用NOT (a AND b)表达式的查询无法正确评估NULL值的问题。
  • 修复了一个问题,该问题可导致在包含可空列的CASE表达式中使用NOT!=进行查询时排除NULLentries。
  • 重新添加jcmd到捆绑的 JDK 发行版中。
  • 如果列本身或其子列参与了与其他列的表级约束,则在尝试删除该列时,会返回有意义的错误。例如,不能从以下表中删除列col_to_drop
CREATE TABLE t1 (i int, col_to_drop int,
                 CHECK (col_to_drop + i > 0))
CREATE TABLE t2 (i int, col_to_drop object AS (subcol_a int),
                 CHECK (col_to_drop['subcol_a'] + i > 0))
  • 修复了一个问题,该问题会在尝试删除带有 CHECK 的列时抛出ColumnUnknownExceptio。所有相关约束都会与列一起被删除。
  • 修复了导致 hash-join operator 生成无效 hashes 的问题,从而在涉及两个以上关系时导致连接操作中断例如:
SELECT * FROM t1, t2, t3 WHERE t3.c = t1.a AND t3.c = t2.b AND t1.a = t2.b;

将生成 logical plan:

HashJoin[(t3.c = t2.b AND t1.a = t2.b)]
  ├ HashJoin[(t3.c = t1.a)]
  │  ├ Collect[doc.t3 | [c] | true]
  │  └ Collect[doc.t1 | [a] | true]
  └ Collect[doc.t2 | [b] | true]

连接 t3.c = t2.b AND t1.a = t2.b 的 hash-symbol generation 已损坏,不会连接数据。

  • 修复了 5.5.0 中引入的回归,该回归导致在通过optimizer_move_filter_beneath_join规则优化查询时,嵌套连接中过滤条件丢失 。
  • 修复了 5.5.0 中引入的回归,该回归导致在创建表时空字符串被接受为有效列名。

详情可查看更新说明

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
4 收藏
分享
返回顶部
顶部