Ignite:无法 运行 在本地减少查询

Ignite: Failed to run reduce query locally

点燃version:2.7.0

以下是我使用的表达方式:

SELECT
    CASE WHEN YEAR(A1) = 2016 THEN SUM(A2) END 
FROM 
    table1

我犯了这样一个错误:

org.jkiss.dbeaver.model.sql.DBSQLException: SQL 错误 [1] [50000]: javax.cache.CacheException: Failed to run reduce query locally.
    at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:134)
    at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeStatement(SQLQueryJob.java:467)
    at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.lambda[=12=](SQLQueryJob.java:407)
    at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:146)
    at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:405)
    at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.extractData(SQLQueryJob.java:849)
    at org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:2776)
    at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda[=12=](ResultSetJobDataRead.java:98)
    at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:146)
    at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:96)
    at org.jkiss.dbeaver.ui.controls.resultset.ResultSetViewer.run(ResultSetViewer.java:3271)
    at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:102)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.sql.SQLException: javax.cache.CacheException: Failed to run reduce query locally.
    at org.apache.ignite.internal.jdbc.thin.JdbcThinConnection.sendRequest(JdbcThinConnection.java:750)
    at org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute0(JdbcThinStatement.java:212)
    at org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute(JdbcThinStatement.java:475)
    at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.execute(JDBCStatementImpl.java:338)
    at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:131)
    ... 12 more

我在其他数据库中尝试了相同的 SQL,例如 MySQL,它成功了。

在 Oracle 中,我必须在 GROUP BY 子句中添加 A1。

然后,我尝试添加GROUP BY子句SQL.Oracle可以执行,但是Ignite还是returns同样的错误。

其实我也不知道哪里出错了

好像不喜欢CASE语句里面的SUM。不过,这有效:

select sum(case when a1 = 2016 then a2 end) from table1;

我不熟悉 SQL 规范,所以我不确定这是否是一个错误,但显然它可以处理更好的错误消息。