#ignite-sql-tests - test fix x
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/684b1a74 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/684b1a74 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/684b1a74 Branch: refs/heads/ignite-sql-tests Commit: 684b1a74aa6d76c083d0096d2b1a2adb01b38700 Parents: 202f90f Author: S.Vladykin <svlady...@gridgain.com> Authored: Thu Feb 5 15:32:14 2015 +0300 Committer: S.Vladykin <svlady...@gridgain.com> Committed: Thu Feb 5 15:32:14 2015 +0300 ---------------------------------------------------------------------- .../ignite/cache/query/QuerySqlPredicate.java | 17 ++++- .../ignite/cache/query/QueryTextPredicate.java | 4 +- .../processors/cache/IgniteCacheProxy.java | 24 +++++++ .../query/h2/sql/GridSqlQueryParser.java | 23 ++++++ .../cache/IgniteCacheAbstractQuerySelfTest.java | 74 +++++++++----------- .../cache/IgniteCacheQueryLoadSelfTest.java | 6 +- 6 files changed, 104 insertions(+), 44 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/684b1a74/modules/core/src/main/java/org/apache/ignite/cache/query/QuerySqlPredicate.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/query/QuerySqlPredicate.java b/modules/core/src/main/java/org/apache/ignite/cache/query/QuerySqlPredicate.java index 061b2a0..a235985 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/query/QuerySqlPredicate.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/query/QuerySqlPredicate.java @@ -134,7 +134,22 @@ public final class QuerySqlPredicate extends QueryPredicate { * @param type Type. */ public void setType(Class<?> type) { - this.type = type == null ? null : type.getSimpleName(); + setType(name(type)); + } + + /** + * @param type Type class. + * @return Type name. + */ + static String name(Class<?> type) { + if (type == null) + return null; + + String name = type.getName(); + + int dot = name.lastIndexOf('.'); + + return dot == -1 ? name : name.substring(dot + 1); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/684b1a74/modules/core/src/main/java/org/apache/ignite/cache/query/QueryTextPredicate.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/query/QueryTextPredicate.java b/modules/core/src/main/java/org/apache/ignite/cache/query/QueryTextPredicate.java index 4064f64..c3765cc 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/query/QueryTextPredicate.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/query/QueryTextPredicate.java @@ -19,6 +19,8 @@ package org.apache.ignite.cache.query; import org.apache.ignite.internal.util.typedef.internal.*; +import static org.apache.ignite.cache.query.QuerySqlPredicate.name; + /** * Predicate for Lucene based fulltext search. */ @@ -62,7 +64,7 @@ public final class QueryTextPredicate extends QueryPredicate { * @param type Type. */ public void setType(Class<?> type) { - setType(type == null ? null : type.getSimpleName()); + setType(name(type)); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/684b1a74/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java index 87fe0b7..0665ca8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java @@ -321,6 +321,12 @@ public class IgniteCacheProxy<K, V> extends IgniteAsyncSupportAdapter<IgniteCach return query(filter, null); } + catch (Exception e) { + if (e instanceof CacheException) + throw e; + + throw new CacheException(e); + } finally { gate.leave(prev); } @@ -335,6 +341,12 @@ public class IgniteCacheProxy<K, V> extends IgniteAsyncSupportAdapter<IgniteCach try { return ctx.kernalContext().query().queryTwoStep(ctx.name(), filter.getSql(), filter.getArgs()); } + catch (Exception e) { + if (e instanceof CacheException) + throw e; + + throw new CacheException(e); + } finally { gate.leave(prev); } @@ -356,6 +368,12 @@ public class IgniteCacheProxy<K, V> extends IgniteAsyncSupportAdapter<IgniteCach return query(filter, ctx.kernalContext().grid().forLocal()); } + catch (Exception e) { + if (e instanceof CacheException) + throw e; + + throw new CacheException(e); + } finally { gate.leave(prev); } @@ -371,6 +389,12 @@ public class IgniteCacheProxy<K, V> extends IgniteAsyncSupportAdapter<IgniteCach return new QueryCursorImpl<>(ctx.kernalContext().query().queryLocalFields( ctx.name(), filter.getSql(), filter.getArgs())); } + catch (Exception e) { + if (e instanceof CacheException) + throw e; + + throw new CacheException(e); + } finally { gate.leave(prev); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/684b1a74/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java index 2865db9..7b2cd49 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java @@ -130,6 +130,12 @@ public class GridSqlQueryParser { private static final Getter<Aggregate, Expression> ON = getter(Aggregate.class, "on"); /** */ + private static final Getter<RangeTable, Expression> RANGE_MIN = getter(RangeTable.class, "min"); + + /** */ + private static final Getter<RangeTable, Expression> RANGE_MAX = getter(RangeTable.class, "max"); + + /** */ private final IdentityHashMap<Object, Object> h2ObjToGridObj = new IdentityHashMap<>(); /** @@ -161,6 +167,12 @@ public class GridSqlQueryParser { res = new GridSqlSubquery(parse((Select)qry)); } + else if (tbl instanceof RangeTable) { + res = new GridSqlFunction("SYSTEM_RANGE"); + + res.addChild(parseExpression(RANGE_MIN.get((RangeTable)tbl))); + res.addChild(parseExpression(RANGE_MAX.get((RangeTable)tbl))); + } else throw new IgniteException("Unsupported query: " + filter); @@ -428,6 +440,17 @@ public class GridSqlQueryParser { return res; } + if (expression instanceof JavaFunction) { + JavaFunction f = (JavaFunction)expression; + + GridSqlFunction res = new GridSqlFunction(f.getName()); + + for (Expression arg : f.getArgs()) + res.addChild(parseExpression(arg)); + + return res; + } + if (expression instanceof Parameter) return new GridSqlParameter(((Parameter)expression).getIndex()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/684b1a74/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java index 212514e..e1fd827 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java @@ -234,7 +234,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac cache.put(key, val); QueryCursor<Cache.Entry<String, Integer>> qry = - cache.query(new QuerySqlPredicate(Integer.class, "where _key = 'k' and _val > 1")); + cache.query(new QuerySqlPredicate(Integer.class, "_key = 'k' and _val > 1")); Cache.Entry<String, Integer> entry = F.first(qry.getAll()); @@ -250,7 +250,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac */ public void testUserDefinedFunction() throws IgniteCheckedException { // Without alias. - IgniteCache<Object, Object> cache = ignite.jcache(null); + final IgniteCache<Object, Object> cache = ignite.jcache(null); QueryCursor<List<?>> qry = cache.queryFields(new QuerySqlPredicate("select square(1), square(2)")); @@ -276,13 +276,11 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac assertEquals(8, row.get(1)); // Not registered. - final QueryCursor<List<?>> qry3 = cache.queryFields(new QuerySqlPredicate("select no()")); - GridTestUtils.assertThrows( log, new Callable<Object>() { @Override public Object call() throws Exception { - qry3.getAll(); + cache.queryFields(new QuerySqlPredicate("select no()")); return null; } @@ -303,15 +301,15 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac IgniteCache<String, Integer> cache = ignite.jcache(null); - QueryCursor<Cache.Entry<String, Integer>> qry = cache.query(new QuerySqlPredicate(Integer.class, "1=1")); + List<Cache.Entry<String, Integer>> qry = cache.query(new QuerySqlPredicate(Integer.class, "1=1")).getAll(); - Cache.Entry<String, Integer> res = F.first(qry.getAll()); + Cache.Entry<String, Integer> res = F.first(qry); assertEquals(1, res.getValue().intValue()); U.sleep(1020); - res = F.first(qry.getAll()); + res = F.first(qry); assertNull(res); } @@ -325,7 +323,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac cache.put(1, 1); cache.put(2, 2); - QueryCursor<List<?>> qry = cache.queryFields(new QuerySqlPredicate(Integer.class, "_key between 2 and 1")); + QueryCursor<Cache.Entry<Integer,Integer>> qry = cache.query(new QuerySqlPredicate(Integer.class, "_key between 2 and 1")); assertTrue(qry.getAll().isEmpty()); } @@ -442,7 +440,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac for (int i = 0; i < expCnt; i++) assert iter.next() != null; - assert iter.next() == null; + assert !iter.hasNext(); qry = cache.query(new QueryTextPredicate(ObjectValue.class, "test")); @@ -453,7 +451,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac for (int i = 0; i < expCnt; i++) assert iter.next() != null; - assert iter.next() == null; + assert !iter.hasNext(); } /** @@ -501,7 +499,9 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac Cache.Entry<Integer, ObjectValue> next; - while ((next = iter.next()) != null) { + while (iter.hasNext()) { + next = iter.next(); + ObjectValue v = next.getValue(); assert !set.contains(v.intValue()); @@ -509,7 +509,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac set.add(v.intValue()); } - assert iter.next() == null; + assert !iter.hasNext(); assertEquals(cnt, set.size()); @@ -532,7 +532,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac set.add(v.intValue()); } - assert iter.next() == null; + assert !iter.hasNext(); assertEquals(cnt / 2, set.size()); @@ -553,11 +553,11 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac // Try to execute on empty cache first. QueryCursor<Cache.Entry<Integer, ObjectValue>> qry = - cache.query(new QuerySqlPredicate(ObjectValue.class, "full")); + cache.query(new QueryTextPredicate(ObjectValue.class, "full")); assert qry.getAll().isEmpty(); - qry = cache.query(new QuerySqlPredicate(ObjectValue.class, "full")); + qry = cache.query(new QueryTextPredicate(ObjectValue.class, "full")); assert qry.getAll().isEmpty(); @@ -574,7 +574,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac cache.put(key2, val2); - qry = cache.query(new QuerySqlPredicate(ObjectValue.class, "full")); + qry = cache.query(new QueryTextPredicate(ObjectValue.class, "full")); Collection<Cache.Entry<Integer, ObjectValue>> res = qry.getAll(); @@ -582,7 +582,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac assert res.size() == 2; - qry = cache.query(new QuerySqlPredicate(ObjectValue.class, "full")); + qry = cache.query(new QueryTextPredicate(ObjectValue.class, "full")); res = qry.getAll(); @@ -652,7 +652,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac assertEquals("value", e1.getValue()); } - assert iter.next() == null; + assert !iter.hasNext(); } /** @@ -851,7 +851,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac cache.put(key, val); QueryCursor<Cache.Entry<String, Integer>> qry = cache.query(new QuerySqlPredicate(Integer.class, - "where _key = 'k' and _val > 1")); + "_key = 'k' and _val > 1")); Cache.Entry<String, Integer> entry = F.first(qry.getAll()); @@ -904,22 +904,22 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac } }; - assertTrue(val.getClass().getName().endsWith("GridCacheAbstractQuerySelfTest$16")); + assertTrue(val.getClass().getName(), val.getClass().getName().endsWith("IgniteCacheAbstractQuerySelfTest$5")); cache.put(1, val); - QueryCursor<Cache.Entry<Integer, Object>> q = cache.query(new QuerySqlPredicate(Object.class, "_key >= 0")); + QueryCursor<Cache.Entry<Integer, Object>> q = cache.query(new QuerySqlPredicate(val.getClass(), "_key >= 0")); Collection<Cache.Entry<Integer, Object>> res = q.getAll(); assertEquals(1, res.size()); - QueryCursor<List<?>> fieldsRes = cache.queryFields(new QuerySqlPredicate( - "select field1 from GridCacheAbstractQuerySelfTest_16")); + List<List<?>> fieldsRes = cache.queryFields(new QuerySqlPredicate( + "select field1 from IgniteCacheAbstractQuerySelfTest_5")).getAll(); - assertEquals(1, fieldsRes.getAll()); + assertEquals(1, fieldsRes.size()); - List<?> fields = F.first(fieldsRes.getAll()); + List<?> fields = F.first(fieldsRes); assertEquals(1, fields.size()); assertEquals(10, fields.get(0)); @@ -946,7 +946,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac cache.put(1, val1); cache.put(2, val2); - QueryCursor<Cache.Entry<Integer, Object>> q = cache.query(new QuerySqlPredicate(Object.class, "_key >= 0")); + QueryCursor<Cache.Entry<Integer, Object>> q = cache.query(new QuerySqlPredicate(val1.getClass(), "_key >= 0")); Collection<Cache.Entry<Integer, Object>> res = q.getAll(); @@ -993,25 +993,21 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac cache.put(i, i); QueryCursor<Cache.Entry<Integer, Integer>> q = - cache.query(new QuerySqlPredicate(Integer.class, "_key >= 0")); + cache.query(new QuerySqlPredicate(Integer.class, "limit 5")); Collection<Cache.Entry<Integer, Integer>> res = q.getAll(); - assertEquals(10, res.size()); + assertEquals(5, res.size()); - if (cacheMode() != PARTITIONED) { - assertEquals(5, res.size()); + Iterator<Cache.Entry<Integer, Integer>> it = res.iterator(); - Iterator<Cache.Entry<Integer, Integer>> it = res.iterator(); + for (Integer i = 0; i < 5; i++) { + assertTrue(it.hasNext()); - for (Integer i = 0; i < 5; i++) { - assertTrue(it.hasNext()); + Cache.Entry<Integer, Integer> e = it.next(); - Cache.Entry<Integer, Integer> e = it.next(); - - assertEquals(i, e.getKey()); - assertEquals(i, e.getValue()); - } + assertEquals(i, e.getKey()); + assertEquals(i, e.getValue()); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/684b1a74/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryLoadSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryLoadSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryLoadSelfTest.java index 9c6dd18..b0e286b 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryLoadSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryLoadSelfTest.java @@ -113,7 +113,7 @@ public class IgniteCacheQueryLoadSelfTest extends GridCommonAbstractTest { * @throws Exception If failed. */ public void testLoadCache() throws Exception { - IgniteCache<Integer, ValueObject> cache = grid(0).jcache(null); + IgniteCache<Integer, ValueObject> cache = grid().jcache(null); cache.loadCache(null, 0); @@ -151,7 +151,7 @@ public class IgniteCacheQueryLoadSelfTest extends GridCommonAbstractTest { * @throws Exception If failed. */ public void testLoadCacheFiltered() throws Exception { - IgniteCache<Integer, ValueObject> cache = grid(0).jcache(null); + IgniteCache<Integer, ValueObject> cache = grid().jcache(null); cache.loadCache(new P2<Integer, ValueObject>() { @Override public boolean apply(Integer key, ValueObject val) { @@ -173,7 +173,7 @@ public class IgniteCacheQueryLoadSelfTest extends GridCommonAbstractTest { * @throws Exception If failed. */ public void testLoadCacheAsyncFiltered() throws Exception { - IgniteCache<Integer, ValueObject> cache = grid(0).jcache(null); + IgniteCache<Integer, ValueObject> cache = grid().jcache(null); cache.withAsync().loadCache(new P2<Integer, ValueObject>() { @Override public boolean apply(Integer key, ValueObject val) {