Hi,

Looks like the problem has been fixed in ignite-2.1.

Please take a look at the ticket IGNITE-5190. [1]

[1] https://issues.apache.org/jira/browse/IGNITE-5190

On 24.08.2017 19:23, igor.tanackovic wrote:
I have a query which can be executed in H2 console but fails on Ignite's
.query(sql).getAll():

SELECT i.* FROM "cache".CACHEDITEM  AS i inner JOIN (
     SELECT ci.position, MAX(ci.lastModifiedTime) AS modifiedTime FROM
"cache".CACHEDITEM AS ci
       WHERE ci.startTime<=NOW()
       AND ci.endTime>NOW()
       AND ci.stripeId = 301
       GROUP BY ci.position ORDER BY ci.position) i2
     WHERE i.position=i2.position
     AND i.lastModifiedTime=i2.modifiedTime
     AND i.startTime<=NOW()
     AND i.endTime>NOW()
     AND i.stripeId=301
     GROUP BY i.position ORDER BY i.position


Caused by: org.apache.ignite.IgniteCheckedException: Failed to execute SQL
query.
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:1226)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1278)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1253)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:813)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$8.iterator(IgniteH2Indexing.java:1493)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:94)
~[ignite-core-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$9.iterator(IgniteH2Indexing.java:1534)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:94)
~[ignite-core-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:113)
~[ignite-core-2.0.0.jar:2.0.0]
        at
org.springframework.data.ignite.IgniteAdapter.execute(IgniteAdapter.java:135)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        at
org.springframework.data.ignite.repository.query.IgniteQueryEngine.execute(IgniteQueryEngine.java:74)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        at
org.springframework.data.keyvalue.core.AbstractKeyValueAdapter.find(AbstractKeyValueAdapter.java:84)
~[spring-data-keyvalue-1.2.3.RELEASE.jar:?]
        at
org.springframework.data.ignite.IgniteTemplate$2.doInKeyValue(IgniteTemplate.java:307)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        at
org.springframework.data.ignite.IgniteTemplate$2.doInKeyValue(IgniteTemplate.java:302)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        at
org.springframework.data.ignite.IgniteTemplate.execute(IgniteTemplate.java:273)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        ... 181 more
Caused by: org.h2.jdbc.JdbcSQLException: General error:
"java.lang.ArrayIndexOutOfBoundsException: 1"; SQL statement:
SELECT
I__Z0___KEY _KEY,
I__Z0___VAL _VAL
FROM (SELECT
__C0_0 POSITION,
MAX(__C0_1) AS MODIFIEDTIME
FROM PUBLIC.__T0
GROUP BY __C0_0
ORDER BY 1, 1, 2) I2__Z2
  INNER JOIN (SELECT
__C1_0 I__Z0__LASTMODIFIEDTIME,
__C1_1 I__Z0___VAL,
__C1_2 I__Z0___KEY,
__C1_3 I__Z0__POSITION
FROM PUBLIC.__T1
ORDER BY 4, 1) __Z3
  ON TRUE
WHERE TRUE AND (TRUE AND (TRUE AND ((I__Z0__POSITION = I2__Z2.POSITION) AND
(I__Z0__LASTMODIFIEDTIME = I2__Z2.MODIFIEDTIME))))
GROUP BY I__Z0__POSITION
ORDER BY =I__Z0__POSITION [50000-195]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.message.DbException.get(DbException.java:168)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.message.DbException.convert(DbException.java:295)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.Command.executeQuery(Command.java:215)
~[h2-1.4.195.jar:1.4.195]
        at
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:111)
~[h2-1.4.195.jar:1.4.195]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:1219)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1278)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1253)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:813)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$8.iterator(IgniteH2Indexing.java:1493)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:94)
~[ignite-core-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$9.iterator(IgniteH2Indexing.java:1534)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:94)
~[ignite-core-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:113)
~[ignite-core-2.0.0.jar:2.0.0]
        at
org.springframework.data.ignite.IgniteAdapter.execute(IgniteAdapter.java:135)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        at
org.springframework.data.ignite.repository.query.IgniteQueryEngine.execute(IgniteQueryEngine.java:74)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        at
org.springframework.data.keyvalue.core.AbstractKeyValueAdapter.find(AbstractKeyValueAdapter.java:84)
~[spring-data-keyvalue-1.2.3.RELEASE.jar:?]
        at
org.springframework.data.ignite.IgniteTemplate$2.doInKeyValue(IgniteTemplate.java:307)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        at
org.springframework.data.ignite.IgniteTemplate$2.doInKeyValue(IgniteTemplate.java:302)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        at
org.springframework.data.ignite.IgniteTemplate.execute(IgniteTemplate.java:273)
~[spring-data-ignite-1.0.9-BETA-SNAPSHOT.jar:1.0.9-BETA-SNAPSHOT]
        ... 181 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at
org.apache.ignite.internal.processors.query.h2.twostep.GridMergeIndexSorted$MergeStreamIterator.goNext(GridMergeIndexSorted.java:255)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.twostep.GridMergeIndexSorted$MergeStreamIterator.hasNext(GridMergeIndexSorted.java:269)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.twostep.GridMergeIndex$FetchingCursor.fetchRows(GridMergeIndex.java:614)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.twostep.GridMergeIndex$FetchingCursor.next(GridMergeIndex.java:658)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at org.h2.index.IndexCursor.next(IndexCursor.java:305)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.table.TableFilter.next(TableFilter.java:499)
~[h2-1.4.195.jar:1.4.195]
        at
org.h2.command.dml.Select$LazyResultQueryFlat.fetchNextRow(Select.java:1452)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.result.LazyResult.hasNext(LazyResult.java:79)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.result.LazyResult.next(LazyResult.java:59)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Select.queryFlat(Select.java:519)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Select.queryWithoutCache(Select.java:625)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Query.queryWithoutCacheLazyCheck(Query.java:114)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Query.query(Query.java:352) 
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Query.query(Query.java:333) 
~[h2-1.4.195.jar:1.4.195]
        at org.h2.index.ViewIndex.find(ViewIndex.java:291)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.index.ViewIndex.find(ViewIndex.java:161)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.index.BaseIndex.find(BaseIndex.java:128)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.index.IndexCursor.find(IndexCursor.java:169)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.table.TableFilter.next(TableFilter.java:468)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.table.TableFilter.next(TableFilter.java:538)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Select.queryGroup(Select.java:311)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Select.queryWithoutCache(Select.java:620)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Query.queryWithoutCacheLazyCheck(Query.java:114)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Query.query(Query.java:352) 
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.dml.Query.query(Query.java:333) 
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.CommandContainer.query(CommandContainer.java:113)
~[h2-1.4.195.jar:1.4.195]
        at org.h2.command.Command.executeQuery(Command.java:201)
~[h2-1.4.195.jar:1.4.195]
        at
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:111)
~[h2-1.4.195.jar:1.4.195]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:1219)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1278)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1253)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:813)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$8.iterator(IgniteH2Indexing.java:1493)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:94)
~[ignite-core-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$9.iterator(IgniteH2Indexing.java:1534)
~[ignite-indexing-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:94)
~[ignite-core-2.0.0.jar:2.0.0]
        at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:113)
~[ignite-core-2.0.0.jar:2.0.0]
        ... 181 more


It's very strange the query fails only when exactly one record is returned
in result set



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/Failed-to-run-reduce-query-locally-tp16403.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

--
Taras Ledkov
Mail-To: tled...@gridgain.com

Reply via email to