您的位置:首页 > IT > 正文

视点!CrateDB 5.3.2 发布,分布式 SQL 数据库

来源:OSCHINA     时间:2023-05-31 07:34:23

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


(资料图片)

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

修复了将空分区表排除在 sys.snapshots中列出的问题。

修复了 5.3.0 中引入的回归,如果在INSERTINTO语句中完全缺少对象,则无法对OBJECT列的子句进行DEFAULT条款的评估。

改进为OBJECT类型的列提供DEFAULT 子句时的错误信息。

修复了 5.3.0 中引入的回归,该回归可能导致带有ONCONFLICT子句的INSERTINTO语句混淆值和目标列,从而导致验证错误或将错误的值存储在错误的列中。​​​​​

修复了在模式字符串中使用?时,LIKE 和 ILIKE运算符会产生错误结果的问题,例如:

SELECT * FROM tbl WHERE q ILIKE "%.com?apiPath%"

修复了在尝试还原空分区表时会导致快照中的所有表都被还原的问题 ,例如:

RESTORE SNAPSHOT repo1.snap1 TABLE empty_parted

修复了 Azure 存储库的一个问题,当超过 1 个存储库配置到同一个 CrateDB 集群时,该问题可能会导致对sys.snapshots的查询结果出现错误、创建错误的存储库快照或从错误的存储库中删除快照。

修复了一个问题,如果一个节点处于内存压力之下,可能会导致查询被卡住,而不是以 circuit breaker error 失败。

改进了优化规则以在更多情况下启用索引查找而不是表扫描。这是 5.2.7 中修复的跟进,修复了 5.2.3 中引入的回归。

修复了当在现有模式、一个不存在的表和带有crate目录前缀的情况下调用DROPTABLEIFEXISTS时,会错误地返回受影响的 1 行或SQLParseException(取决于用户权限)的问题,例如:

DROP TABLE IF EXISTS crate.doc.non_existent_table

改进了时间戳减法的输出表示,通过规范化为更大的单位,但不超过天,以与 PostgreSQL 行为一致。例如:

SELECT "2022-12-05T11:22:33.123456789+05:30"::timestamp - "2022-12-03T11:22:33.123456789-02:15"::timestamp

以前会返回:PT40H15M,现在返回:P1DT16H15M

当 INTERVAL 数据类型的第一个参数包含月和/或年单位时,改进了date_bin标量函数的错误消息。

增加了一个问题的解决方法,该问题允许在一个通过插入空数组动态创建的列上插入一个非数组值,最终修改了该列的类型。空数组在被查询时将被转换为nulls。例如:

CREATE TABLE t (o OBJECT);INSERT INTO t VALUES ({x=[]});INSERT INTO t VALUES ({x={}});  /* this isthe culprit statement, inserting an object onto an array typed column */SHOW CREATE TABLE t;+-----------------------------------------------------+| SHOW CREATE TABLE doc.t                             |+-----------------------------------------------------+| CREATE TABLE IF NOT EXISTS "doc"."t" (              ||    "o" OBJECT(DYNAMIC) AS (                         ||       "x" OBJECT(DYNAMIC)  /* an array type modified to an object type */SELECT * FROM t;+-------------+| o           |+-------------+| {"x": {}}   || {"x": null} |  /* an empty array converted to null */+-------------+

修复了在连接条件中引用以前的关系(未明确连接)时导致抛出AssertionError的问题,例如:

SELECT * FROM t1CROSS JOIN t2INNER JOIN t3 ON t3.x = t1.x AND t3.y = t2

修复了导致GEO_SHAPE类型列的默认表达式在写入时被忽略的问题 。

修复了同时访问具有不同设置的 S3 存储库时的 race condition 问题,例如通过对sys.snapshots的查询。

详情可查看更新说明。

相关文章