You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Sergey Kalashnikov (JIRA)" <ji...@apache.org> on 2016/12/21 12:03:58 UTC

[jira] [Commented] (IGNITE-2793) ODBC: Add support for Arrays.

    [ https://issues.apache.org/jira/browse/IGNITE-2793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15766883#comment-15766883 ] 

Sergey Kalashnikov commented on IGNITE-2793:
--------------------------------------------

There is a deserialization error on server side when trying to use query parameter with SQL_C_BINARY type.
The exception happens with both insert and select types of query.

{code}
[11:45:12,154][SEVERE][odbc-#35%null%][OdbcRequestHandler] Failed to execute SQL query [reqId=2, req=OdbcQueryExecuteRequest [cacheName=cache, sqlQry=INSERT INTO TestType(_key, i8ArrayField) VALUES(?, ?), args=[1, [B@166e447a]]]
javax.cache.CacheException: class org.apache.ignite.IgniteException: Failed to execute SQL query.
	at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:761)
	at org.apache.ignite.internal.processors.odbc.OdbcRequestHandler.executeQuery(OdbcRequestHandler.java:207)
	at org.apache.ignite.internal.processors.odbc.OdbcRequestHandler.handle(OdbcRequestHandler.java:108)
	at org.apache.ignite.internal.processors.odbc.OdbcNioListener.onMessage(OdbcNioListener.java:124)
	at org.apache.ignite.internal.processors.odbc.OdbcNioListener.onMessage(OdbcNioListener.java:33)
	at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:274)
	at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
	at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:95)
	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.IgniteException: Failed to execute SQL query.
	at org.apache.ignite.internal.processors.query.GridQueryProcessor.queryTwoStep(GridQueryProcessor.java:817)
	at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:749)
	... 12 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute SQL query.
	at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:1800)
	at org.apache.ignite.internal.processors.query.GridQueryProcessor.queryTwoStep(GridQueryProcessor.java:810)
	... 13 more
Caused by: class org.apache.ignite.IgniteException: Failed to execute SQL query.
	at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor$1.iterator(DmlStatementsProcessor.java:271)
	at org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:98)
	at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor.doInsert(DmlStatementsProcessor.java:745)
	at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor.executeUpdateStatement(DmlStatementsProcessor.java:286)
	at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor.updateSqlFields(DmlStatementsProcessor.java:159)
	at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor.updateSqlFieldsTwoStep(DmlStatementsProcessor.java:189)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryTwoStep(IgniteH2Indexing.java:1266)
	at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:812)
	at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:810)
	at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
	at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:1777)
	... 14 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute SQL query.
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:958)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1010)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.access$1000(IgniteH2Indexing.java:200)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$3.iterator(IgniteH2Indexing.java:831)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$3.iterator(IgniteH2Indexing.java:829)
	at org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor$1.iterator(DmlStatementsProcessor.java:268)
	... 24 more
Caused by: org.h2.jdbc.JdbcSQLException: Ошибка деѿериализации, причина: "class org.apache.ignite.IgniteCheckedException: Invalid flag value: 65"
Deserialization failed, cause: "class org.apache.ignite.IgniteCheckedException: Invalid flag value: 65"; SQL statement:
SELECT
TABLE._KEY,
TABLE.I8ARRAYFIELD
FROM TABLE(_KEY BIGINT=(?1,), I8ARRAYFIELD OTHER=(?2,)) [90027-191]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
	at org.h2.message.DbException.get(DbException.java:168)
	at org.h2.util.JdbcUtils.deserialize(JdbcUtils.java:406)
	at org.h2.value.ValueJavaObject$NotSerialized.getObject(ValueJavaObject.java:166)
	at org.h2.expression.TableFunction.getSimpleResultSet(TableFunction.java:150)
	at org.h2.expression.TableFunction.getTable(TableFunction.java:129)
	at org.h2.expression.TableFunction.getValue(TableFunction.java:42)
	at org.h2.table.FunctionTable.getValueResultSet(FunctionTable.java:219)
	at org.h2.table.FunctionTable.getResult(FunctionTable.java:190)
	at org.h2.index.FunctionIndex.find(FunctionIndex.java:48)
	at org.h2.index.BaseIndex.find(BaseIndex.java:132)
	at org.h2.index.IndexCursor.find(IndexCursor.java:169)
	at org.h2.table.TableFilter.next(TableFilter.java:460)
	at org.h2.command.dml.Select.queryFlat(Select.java:541)
	at org.h2.command.dml.Select.queryWithoutCache(Select.java:654)
	at org.h2.command.dml.Query.query(Query.java:322)
	at org.h2.command.dml.Query.query(Query.java:309)
	at org.h2.command.dml.Query.query(Query.java:36)
	at org.h2.command.CommandContainer.query(CommandContainer.java:110)
	at org.h2.command.Command.executeQuery(Command.java:201)
	at org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:110)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:951)
	... 29 more
Caused by: class org.apache.ignite.IgniteCheckedException: Invalid flag value: 65
	at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9813)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$10.deserialize(IgniteH2Indexing.java:1904)
	at org.h2.util.JdbcUtils.deserialize(JdbcUtils.java:384)
	... 48 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Invalid flag value: 65
	at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1685)
	at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1450)
	at org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:298)
	at org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:100)
	at org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82)
	at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9807)
	... 50 more
{code}

> ODBC: Add support for Arrays.
> -----------------------------
>
>                 Key: IGNITE-2793
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2793
>             Project: Ignite
>          Issue Type: Task
>          Components: odbc
>    Affects Versions: 1.5.0.final
>            Reporter: Igor Sapego
>            Assignee: Sergey Kalashnikov
>              Labels: roadmap
>
> Support for arrays should be added. We need to at least support byte arrays to match {{SQL_C_BINARY}} type.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)