Repository: incubator-ignite Updated Branches: refs/heads/ignite-sprint-4 b359a7d21 -> fa2088893
#ignite-758: Fix query portable. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b8fd9627 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b8fd9627 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b8fd9627 Branch: refs/heads/ignite-sprint-4 Commit: b8fd962728368637874499567b9f3c05f03a9cd0 Parents: b550b88 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Thu Apr 16 15:00:25 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Thu Apr 16 15:00:25 2015 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheAdapter.java | 7 ++++++- .../processors/cache/GridCacheProxyImpl.java | 7 ++++++- .../processors/cache/IgniteCacheProxy.java | 3 +++ .../internal/processors/cache/InternalCache.java | 5 +++++ .../processors/cache/query/CacheQueriesImpl.java | 18 +++++++++--------- 5 files changed, 29 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8fd9627/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java index 3e8928b..e38e83b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java @@ -274,10 +274,15 @@ public abstract class GridCacheAdapter<K, V> implements InternalCache<K, V>, Ext init(); - qry = new CacheQueriesImpl<>(ctx, null); + qry = new CacheQueriesImpl<>(ctx, false); aff = new GridCacheAffinityImpl<>(ctx); } + /** {@inheritDoc} */ + @Override public void setQueryKeepPortable() { + qry = new CacheQueriesImpl<>(ctx, true); + } + /** * Prints memory stats. */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8fd9627/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java index dca773c..310bf6e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java @@ -95,7 +95,7 @@ public class GridCacheProxyImpl<K, V> implements InternalCache<K, V>, Externaliz gate = ctx.gate(); cache = ctx.cache(); - qry = new CacheQueriesProxy<>(ctx, prj, delegate.queries()); + qry = new CacheQueriesProxy<>(ctx, prj, new CacheQueriesImpl<>(ctx, prj != null ? prj.isKeepPortable() : false)); aff = new GridCacheAffinityProxy<>(ctx, ctx.cache().affinity()); } @@ -143,6 +143,11 @@ public class GridCacheProxyImpl<K, V> implements InternalCache<K, V>, Externaliz } /** {@inheritDoc} */ + @Override public void setQueryKeepPortable() { + qry = new CacheQueriesProxy<>(ctx, prj, new CacheQueriesImpl<>(ctx, true)); + } + + /** {@inheritDoc} */ @Override public CacheQueries<K, V> queries() { return qry; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8fd9627/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 65bcc62..eb027c0 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 @@ -110,6 +110,9 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V this.delegate = delegate; this.prjCtx = prjCtx; + if (prjCtx != null && prjCtx.isKeepPortable()) + delegate.setQueryKeepPortable(); + gate = ctx.gate(); legacyProxy = new GridCacheProxyImpl<>(ctx, delegate, prjCtx); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8fd9627/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/InternalCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/InternalCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/InternalCache.java index fa9ed04..35bf61c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/InternalCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/InternalCache.java @@ -208,6 +208,11 @@ public interface InternalCache<K, V> extends Iterable<Cache.Entry<K, V>> { public boolean skipStore(); /** + * Set keep portable flag for queries. + */ + public void setQueryKeepPortable(); + + /** * Returns queries facade responsible for creating various SQL, TEXT, or SCAN queries. * @return Queries facade responsible for creating various SQL, TEXT, or SCAN queries. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b8fd9627/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/CacheQueriesImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/CacheQueriesImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/CacheQueriesImpl.java index 565a079..0bc26ea 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/CacheQueriesImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/CacheQueriesImpl.java @@ -40,17 +40,17 @@ public class CacheQueriesImpl<K, V> implements CacheQueries<K, V> { private GridCacheContext<K, V> ctx; /** */ - private CacheProjectionContext prj; + private boolean keepPortable; /** * @param ctx Context. - * @param prj Projection. + * @param keepPortable Projection. */ - public CacheQueriesImpl(GridCacheContext<K, V> ctx, @Nullable CacheProjectionContext prj) { + public CacheQueriesImpl(GridCacheContext<K, V> ctx, boolean keepPortable) { assert ctx != null; this.ctx = ctx; - this.prj = prj; + this.keepPortable = keepPortable; } /** {@inheritDoc} */ @@ -63,7 +63,7 @@ public class CacheQueriesImpl<K, V> implements CacheQueries<K, V> { qry, null, false, - prj != null && prj.isKeepPortable()); + keepPortable); } /** {@inheritDoc} */ @@ -77,7 +77,7 @@ public class CacheQueriesImpl<K, V> implements CacheQueries<K, V> { search, null, false, - prj != null && prj.isKeepPortable()); + keepPortable); } /** {@inheritDoc} */ @@ -89,7 +89,7 @@ public class CacheQueriesImpl<K, V> implements CacheQueries<K, V> { null, (IgniteBiPredicate<Object, Object>)filter, false, - prj != null && prj.isKeepPortable()); + keepPortable); } /** @@ -104,7 +104,7 @@ public class CacheQueriesImpl<K, V> implements CacheQueries<K, V> { null, null, false, - prj != null && prj.isKeepPortable()); + keepPortable); } /** {@inheritDoc} */ @@ -137,6 +137,6 @@ public class CacheQueriesImpl<K, V> implements CacheQueries<K, V> { qry, null, incMeta, - prj != null && prj.isKeepPortable()); + keepPortable); } }