verdict-project/verdict

InMemoryAggregate.abort() causes org.h2.jdbc.JdbcSQLException: Method is only allowed for a query.

Closed this issue · 0 comments

org.h2.jdbc.JdbcSQLException: Method is only allowed for a query. Use execute or executeUpdate instead of executeQuery; SQL statement:
SHUTDOWN [90002-197]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.message.DbException.get(DbException.java:144)
at org.h2.command.Prepared.query(Prepared.java:219)
at org.h2.command.CommandContainer.query(CommandContainer.java:114)
at org.h2.command.Command.executeQuery(Command.java:202)
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:85)
at org.verdictdb.connection.InMemoryAggregate.abort(InMemoryAggregate.java:181)
at org.verdictdb.core.querying.ola.SelectAsyncAggExecutionNode.abort(SelectAsyncAggExecutionNode.java:191)
at org.verdictdb.core.execplan.ExecutableNodeRunner.abort(ExecutableNodeRunner.java:138)
at org.verdictdb.core.execplan.ExecutablePlanRunner.abort(ExecutablePlanRunner.java:131)
at org.verdictdb.coordinator.SelectQueryCoordinator.abort(SelectQueryCoordinator.java:174)
at org.verdictdb.coordinator.ExecutionContext.abort(ExecutionContext.java:420)
at org.verdictdb.coordinator.ExecutionContext.sql(ExecutionContext.java:162)
at org.verdictdb.coordinator.ExecutionContext.sql(ExecutionContext.java:123)
at org.verdictdb.jdbc41.VerdictStatement.executeQuery(VerdictStatement.java:135)
at org.verdictdb.core.scramblingquerying.TpchScrambleQueryForAllDatabasesTest.testTpch(TpchScrambleQueryForAllDatabasesTest.java:329)

I think changing it from executeQuery to execute should fix it.