ignite-950: fixed fields queiries
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6e413729 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6e413729 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6e413729 Branch: refs/heads/ignite-950 Commit: 6e413729d3e7ca292173fd6e3491eb79664eb12b Parents: 41a821f Author: Denis Magda <dma...@gridgain.com> Authored: Fri Jun 19 13:10:36 2015 +0300 Committer: Denis Magda <dma...@gridgain.com> Committed: Fri Jun 19 13:10:36 2015 +0300 ---------------------------------------------------------------------- .../cache/CacheOptimizedObjectImpl.java | 2 +- ...acheOptimizedMarshallerExtQuerySelfTest.java | 25 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6e413729/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheOptimizedObjectImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheOptimizedObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheOptimizedObjectImpl.java index fe5a644..f07344c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheOptimizedObjectImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheOptimizedObjectImpl.java @@ -130,7 +130,7 @@ public class CacheOptimizedObjectImpl extends CacheObjectAdapter { assert val != null || valBytes != null; if (val == null && ctx.storeValue()) - val = ctx.processor().unmarshal(ctx, valBytes, ldr); + val = ctx.processor().unmarshal(ctx, valBytes, start, len, ldr); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6e413729/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOptimizedMarshallerExtQuerySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOptimizedMarshallerExtQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOptimizedMarshallerExtQuerySelfTest.java index d9f85aa..010f3e6 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOptimizedMarshallerExtQuerySelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOptimizedMarshallerExtQuerySelfTest.java @@ -21,6 +21,8 @@ import org.apache.ignite.*; import org.apache.ignite.cache.*; import org.apache.ignite.cache.query.*; import org.apache.ignite.configuration.*; +import org.apache.ignite.internal.processors.cache.query.*; +import org.apache.ignite.internal.processors.query.*; import org.apache.ignite.marshaller.optimized.ext.*; import javax.cache.*; @@ -127,6 +129,29 @@ public class IgniteCacheOptimizedMarshallerExtQuerySelfTest extends GridCacheAbs } /** + * @throws Exception In case of error. + */ + public void testFieldsQuery() throws Exception { + IgniteCache<Integer, Person> cache = grid(0).cache(null); + + QueryCursor<List<?>> cur = cache.query(new SqlFieldsQuery("select name, address, zip" + + " from Person where zip IN (1,2)")); + + List<?> result = cur.getAll(); + + assertTrue(result.size() == 2); + + for (Object row : result) { + ArrayList<Object> list = (ArrayList<Object>)row; + + Address addr = (Address)list.get(1); + int zip = (int)list.get(2); + + assertEquals(addr.zip, zip); + } + } + + /** * @return Cache type metadata. */ private Collection<CacheTypeMetadata> cacheTypeMetadata() {