HSQLDB 在使用嵌套查询且数据库处于只读模式时触发 OutOfMemoryError

HSQLDB triggers OutOfMemoryError when using nested queries and the DB is in read-only mode

对于具有大约 300000 个查询的复杂用例,我们在只读模式下使用 HSQLDB。过了一会儿,我们运行变成了OutOfMemoryError.

问题是子select 查询和只读的组合,所有其他组合工作得很好而且很快:

               simple select   nested select
DB read only   works           OOM
DB read/write  works           works

Here 是一个简单的复制器,包括用于复制器的(只读)数据库。

要切换到 read/write 数据库,只需删除 repo.properties 中的行 "readonly=true" 并再次 运行 测试。

我怀疑 RowStoreAVLHybridclass 是问题的一部分,因为 class 仅用于 subselect+只读情况。

知道除了将数据库切换到 read/write 之外我还能做什么吗?我想不惜一切代价避免什么?

此错误没有解决方法。它已被解决,并提交了 HSQLDB 版本 2.5.0 版本的 dev-three 代码分支的修复程序。