CrateDB 是一个分布式的 SQL 数据库,使得实时存储和分析大量的机器数据变得简单。CrateDB 提供了通常与 NoSQL 数据库相关的可扩展性和灵活性,最小的 CrateDB 集群可以轻松地每秒摄取数万条记录。这些数据可以在整个集群中实时地、临时地、并行地进行查询。
CrateDB 5.1.1 正式发布,该版本更新内容如下:
注意事项:如果你正在升级一个集群,你必须在升级到 5.1.1 之前运行 CrateDB 4.0.2 或更高版本。官方建议你在升级到 5.1.1 之前,先升级到最新的 5.0 版本。支持从 5.0.x 滚动升级到 5.1.1。在升级之前,应该备份你的数据。
警告:在 CrateDB 4.x 之前创建的表在 5.x 版本中无法使用,在迁移到 5.x.x 之前必须重新创建。
修复
- 修复了阻止
_id IN (SELECT ...)
匹配记录的问题。 - 修复了在TEXT或VARCHAR类型的列上使用ORDER BY时可能导致class_cast_exception错误的问题。
- 更改了解析函数的逻辑。以前,在查找用户定义的函数之前,它会首先在搜索路径中查找所有模式的内置函数。现在它将搜索每个模式的内置和 UDF,以将搜索路径中较早的 UDF 优先于搜索路径中稍后的内置。
- 修复了可能导致作为
object
列的一部分的bit
列返回编码值的问题。 - 修复了当使用 array(subquery) 时,当子查询在与返回的列不同的列上使用ORDER BY时,会导致返回不正确结果的问题,即:
SELECT array(SELECT country FROM sys.summits ORDER BY height DESC LIMIT 3)
- 修复了阻止定义与表中的 parent object 同名的
bit
列的问题。IE:
CREATE TABLE tbl (x OBJECT AS (x bit(1)))
^^
- 修复了使用
percentile
aggregation 可能导致内存不足错误的问题 。 - 修复了在对象中使用
bit
类型时可能导致序列化错误的问题。 - 修复了在分区表上运行
SELECT count(*) FROM tbl
时可能导致IllegalIndexShardStateException
错误的问题。 - 修复了导致插入时需要
PRIMARY KEY
列的问题,即使它们已生成并且它们的源列默认为非空,即:
CREATE TABLE test (
id INT NOT NULL PRIMARY KEY,
created TIMESTAMP WITH TIME ZONE DEFAULT current_timestamp NOT NULL,
month TIMESTAMP GENERATED ALWAYS AS date_trunc('month', created) PRIMARY KEY
);
INSERT INTO test(id) VALUES(1);
- 修复了可能导致在内存压力下,COPY FROM、INSERT INTO、UPDATE和DELETE操作会被卡住。
- 修复了不允许成功执行OFFSET大于0但没有LIMIT的查询的问题,即:
SELECT * FROM test OFFSET 10
SELECT * FROM test LIMIT null OFFSET 10
SELECT * FROM test LIMIT ALL OFFSET 10
- 修复了导致
col IS NULL
匹配空对象的问题。 - 修复了导致ARRAY_COL = []在OBJECT、GEO_SHAPE、IP或BIT数组元素类型上抛出一个异常的问题。
- 修复了如果查询包含 WHERE clause k_col = ? 条件,会导致读取BIT类型值的查询返回错误结果的问题。
- 修复了使GEO_SHAPE列上的NOT NULL约束无法在SHOW CREATE TABLE语句中显示出来的问题。
详情可查看更新说明。