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();
 

Reply via email to