Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-6046

Multiple SQL statements in one JDBC command do not work

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.3
    • jdbc, sql

    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

          Activity

            People

              tledkov-gridgain Taras Ledkov
              dsetrakyan Dmitriy Setrakyan
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: