Description
I have connected to Ignite from DBeaver using our thin JDBC driver. When I execute more than one statement from the SQL Editor, I get an error.
For example, highlighting and executing these 2 statements gives an error:
INSERT INTO city (id, name) VALUES (2, 'Forest Hill'); INSERT INTO person (id, name, city_id) VALUES (2, 'John Doe', 3);
Here is the error I get:
[15:25:17,265][SEVERE][sql-connector-#150%null%][JdbcRequestHandler] Failed to execute SQL query [reqId=26, req=JdbcQueryExecuteRequest [schemaName=null, pageSize=1024, maxRows=0, sqlQry=INSERT INTO city (id, name) VALUES (2, 'Forest Hill'); INSERT INTO person (id, name, city_id) VALUES (2, 'John Doe', 3), args=[]]] javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: Can not set org.h2.command.Prepared field org.h2.command.CommandContainer.prepared to org.h2.command.CommandList at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFieldsNoCache(GridQueryProcessor.java:1863) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.executeQuery(JdbcRequestHandler.java:188) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.handle(JdbcRequestHandler.java:122) at org.apache.ignite.internal.processors.odbc.SqlListenerNioListener.onMessage(SqlListenerNioListener.java:152) at org.apache.ignite.internal.processors.odbc.SqlListenerNioListener.onMessage(SqlListenerNioListener.java:44) at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279) at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: class org.apache.ignite.IgniteCheckedException: Can not set org.h2.command.Prepared field org.h2.command.CommandContainer.prepared to org.h2.command.CommandList at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2316) at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFieldsNoCache(GridQueryProcessor.java:1860) ... 12 more Caused by: java.lang.IllegalArgumentException: Can not set org.h2.command.Prepared field org.h2.command.CommandContainer.prepared to org.h2.command.CommandList at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:58) at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36) at java.lang.reflect.Field.get(Field.java:393) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQueryParser$Getter.get(GridSqlQueryParser.java:1600) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQueryParser.prepared(GridSqlQueryParser.java:443) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1298) at org.apache.ignite.internal.processors.query.GridQueryProcessor$6.applyx(GridQueryProcessor.java:1856) at org.apache.ignite.internal.processors.query.GridQueryProcessor$6.applyx(GridQueryProcessor.java:1852) at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36) at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2293) ... 13 more
Attachments
Issue Links
- blocks
-
IGNITE-6357 ODBC: support multiple SQL statements
- Resolved
-
IGNITE-6358 JDBC thick: support multiple SQL statements
- Resolved
- is related to
-
IGNITE-5456 JDBC thin driver: the statement produces multiple result sets must be handled correct
- Closed
- links to