CrateDB 是一个分布式的 SQL 数据库,使得实时存储和分析大量的机器数据变得简单。CrateDB 提供了通常与 NoSQL 数据库相关的可扩展性和灵活性,最小的 CrateDB 集群可以轻松地每秒摄取数万条记录。这些数据可以在整个集群中实时地、临时地、并行地进行查询。
CrateDB 5.4.5 现已正式发布,该版本更新内容如下:
修复
-
修复了一个问题,在使用 PostgreSQL wire protocol 的客户端中,如果一个查询在另一个查询挂起后被触发且未被使用,则会导致
Received resultset tuples, but no field structure for them
错误。 -
如果在另一个查询挂起且未使用后触发查询,则导致使用 PostgreSQL wire protocol 的客户端出现错误的问题。
-
修复了尝试在带有联接的查询的
WHERE
子句中使用相关联接时,导致Couldn't create execution plan from logical plan ..
错误的问题。例如:SELECT n.nspname AS schema, t.typname AS typename, t.oid::int4 AS typeid FROM pg_type t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace WHERE EXISTS ( SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem);
-
修复了以下问题:如果用户对架构内的表拥有权限,但对架构本身没有权限,则命名空间无法显示在
pg_catalog.pg_namespace
中。 -
修复了当 2 个或更多列被分配相同名称时导致
UNION
抛出SQLParseExceptions
而不是AmbiguousColumnExceptions
的问题。例如:SELECT a FROM (SELECT a, b AS a FROM t UNION SELECT 1, 1) t2; -- selecting 'a' from 't2' is ambiguous since there are 'a' and 'b AS a'
-
修复了 CrateDB 版本 5.3.0 引入的一个回归,该回归可能导致
INSERT INTO ... ON CONFLICT .. ``
查询失败,甚至在``ON CONFLICT
子句中使用子列表达式时更新错误的子列。 -
修正了一个问题,当输出列的名称相同且来自别名表时,
UNION
会返回错误结果或抛出SQLParseException
的问题。例如:SELECT * FROM (SELECT t1.a, t2.a FROM t AS t1, t AS t2) t3 UNION SELECT 1, 1;
其中
t1.a
和t2.a
来自具有相同名称的别名表a
。 -
修复了版本 4.2.0中引入的回归,当创建查询的执行计划期间发生某些内部问题时(例如:查询中涉及的表的分片不可用),该回归会导致返回错误的 HTTP 错误代码。
-
修复了会导致忽略
CREATE TABLE
语句中ARRAY(GEO_SHAPE)
类型定义中INDEX using
子句的属性。
详情可查看更新说明。