ignite-sql-tests - replicated
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/18fd914e Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/18fd914e Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/18fd914e Branch: refs/heads/ignite-sql-tests Commit: 18fd914e73564cf967799513042b90331e0c0adf Parents: c4ed31f Author: S.Vladykin <[email protected]> Authored: Mon Feb 9 02:52:02 2015 +0300 Committer: S.Vladykin <[email protected]> Committed: Mon Feb 9 02:52:02 2015 +0300 ---------------------------------------------------------------------- .../processors/cache/IgniteCacheProxy.java | 61 +++++++++++++------- .../cache/IgniteCacheAbstractQuerySelfTest.java | 6 +- 2 files changed, 44 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/18fd914e/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 1730627..f386902 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 @@ -317,19 +317,22 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V } /** {@inheritDoc} */ - @Override public QueryCursor<Entry<K,V>> query(Query filter) { - A.notNull(filter, "filter"); + @Override public QueryCursor<Entry<K,V>> query(Query qry) { + A.notNull(qry, "qry"); GridCacheProjectionImpl<K, V> prev = gate.enter(prj); try { - if (filter instanceof SqlQuery) { - SqlQuery p = (SqlQuery)filter; + if (qry instanceof SqlQuery) { + SqlQuery p = (SqlQuery)qry; + + if (ctx.isReplicated()) + return doLocalQuery(p); return ctx.kernalContext().query().queryTwoStep(ctx.name(), p.getType(), p.getSql(), p.getArgs()); } - return query(filter, null); + return query(qry, null); } catch (Exception e) { if (e instanceof CacheException) @@ -343,13 +346,16 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V } /** {@inheritDoc} */ - @Override public QueryCursor<List<?>> queryFields(SqlFieldsQuery filter) { - A.notNull(filter, "filter"); + @Override public QueryCursor<List<?>> queryFields(SqlFieldsQuery qry) { + A.notNull(qry, "qry"); GridCacheProjectionImpl<K, V> prev = gate.enter(prj); try { - return ctx.kernalContext().query().queryTwoStep(ctx.name(), filter.getSql(), filter.getArgs()); + if (ctx.isReplicated()) + return doLocalFieldsQuery(qry); + + return ctx.kernalContext().query().queryTwoStep(ctx.name(), qry.getSql(), qry.getArgs()); } catch (Exception e) { if (e instanceof CacheException) @@ -362,21 +368,35 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V } } + /** + * @param p Query. + * @return Cursor. + */ + private QueryCursor<Entry<K,V>> doLocalQuery(SqlQuery p) { + return new QueryCursorImpl<>(ctx.kernalContext().query().<K,V>queryLocal( + ctx.name(), p.getType(), p.getSql(), p.getArgs())); + } + + /** + * @param q Query. + * @return Cursor. + */ + private QueryCursor<List<?>> doLocalFieldsQuery(SqlFieldsQuery q) { + return new QueryCursorImpl<>(ctx.kernalContext().query().queryLocalFields( + ctx.name(), q.getSql(), q.getArgs())); + } + /** {@inheritDoc} */ - @Override public QueryCursor<Entry<K,V>> localQuery(Query filter) { - A.notNull(filter, "filter"); + @Override public QueryCursor<Entry<K,V>> localQuery(Query qry) { + A.notNull(qry, "qry"); GridCacheProjectionImpl<K, V> prev = gate.enter(prj); try { - if (filter instanceof SqlQuery) { - SqlQuery p = (SqlQuery)filter; - - return new QueryCursorImpl<>(ctx.kernalContext().query().<K,V>queryLocal( - ctx.name(), p.getType(), p.getSql(), p.getArgs())); - } + if (qry instanceof SqlQuery) + return doLocalQuery((SqlQuery)qry); - return query(filter, ctx.kernalContext().grid().forLocal()); + return query(qry, ctx.kernalContext().grid().forLocal()); } catch (Exception e) { if (e instanceof CacheException) @@ -390,14 +410,13 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V } /** {@inheritDoc} */ - @Override public QueryCursor<List<?>> localQueryFields(SqlFieldsQuery filter) { - A.notNull(filter, "filter"); + @Override public QueryCursor<List<?>> localQueryFields(SqlFieldsQuery qry) { + A.notNull(qry, "qry"); GridCacheProjectionImpl<K, V> prev = gate.enter(prj); try { - return new QueryCursorImpl<>(ctx.kernalContext().query().queryLocalFields( - ctx.name(), filter.getSql(), filter.getArgs())); + return doLocalFieldsQuery(qry); } catch (Exception e) { if (e instanceof CacheException) http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/18fd914e/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 cd2a9ac..4cd7d45 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 @@ -525,7 +525,9 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac set.clear(); - while ((next = iter.next()) != null) { + while (iter.hasNext()) { + next = iter.next(); + ObjectValue v = next.getValue(); assert !set.contains(v.intValue()); @@ -1022,7 +1024,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac cache.put(2, new ArrayObject(new Long[] {4L, 5L, 6L})); QueryCursor<Cache.Entry<Integer, ArrayObject>> q = - cache.query(sql(ArrayObject.class, "array_contains(arr, cast(4 as long))")); + cache.query(sql(ArrayObject.class, "array_contains(arr, cast(? as long))").setArgs(4)); Collection<Cache.Entry<Integer, ArrayObject>> res = q.getAll();
