From c4f0895aa71db35e684de210915a7ccd41ef514c Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 11:11:32 +0300 Subject: [PATCH 01/14] Removed unused method. --- .../cache/query/GridCacheQueryManager.java | 13 ++++++----- .../spi/indexing/IndexingQueryFilter.java | 9 -------- .../processors/query/h2/IgniteH2Indexing.java | 6 +---- .../query/h2/opt/GridH2IndexBase.java | 22 ++----------------- 4 files changed, 11 insertions(+), 39 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java index 64e74fb6f1cd9..8174bbab4094e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java @@ -65,6 +65,7 @@ import org.apache.ignite.internal.processors.cache.CacheObjectContext; import org.apache.ignite.internal.processors.cache.CacheObjectUtils; import org.apache.ignite.internal.processors.cache.GridCacheAdapter; +import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager; import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.GridCacheEntryEx; import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException; @@ -1995,6 +1996,8 @@ public Collection sqlMetadataV2() throws IgniteCheckedExce if (includeBackups) return null; + final AffinityTopologyVersion topVer0 = AffinityTopologyVersion.NONE; + return new IndexingQueryFilter() { @Nullable @Override public IgniteBiPredicate forCache(final String cacheName) { final GridKernalContext ctx = cctx.kernalContext(); @@ -2004,16 +2007,16 @@ public Collection sqlMetadataV2() throws IgniteCheckedExce if (cache.context().isReplicated() || cache.configuration().getBackups() == 0) return null; + final GridCacheAffinityManager aff = cache.context().affinity(); + + final ClusterNode locNode = ctx.discovery().localNode(); + return new IgniteBiPredicate() { @Override public boolean apply(K k, V v) { - return cache.context().affinity().primaryByKey(ctx.discovery().localNode(), k, NONE); + return aff.primaryByKey(locNode, k, topVer0); } }; } - - @Override public boolean isValueRequired() { - return false; - } }; } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java index 74d349a459348..e942c714deb0a 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java @@ -31,13 +31,4 @@ public interface IndexingQueryFilter { * @return Predicate or {@code null} if no filtering is needed. */ @Nullable public IgniteBiPredicate forCache(String cacheName); - - /** - * Is the value required for filtering logic? - * If false then null instead of value will be passed - * to IgniteBiPredicate returned by {@link #forCache(String)} method. - * - * @return true if value is required for filtering, false otherwise. - */ - public boolean isValueRequired(); } \ No newline at end of file diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java index 22ed592bc98b3..5bbe128530ca3 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java @@ -2356,7 +2356,7 @@ public void clearCachedQueries() { @Nullable @Override public IgniteBiPredicate forCache(String cacheName) { final GridCacheAdapter cache = ctx.cache().internalCache(cacheName); - if (cache.context().isReplicated()) + if (cache.context().isReplicated() || cache.configuration().getBackups() == 0) return null; final GridCacheAffinityManager aff = cache.context().affinity(); @@ -2398,10 +2398,6 @@ public void clearCachedQueries() { }; } - @Override public boolean isValueRequired() { - return false; - } - @Override public String toString() { return "IndexingQueryFilter [ver=" + topVer + ']'; } diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java index 048192a3407ba..ed408c9a41e3f 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java @@ -1580,9 +1580,6 @@ protected static class FilteringCursor implements GridCursor { /** */ private final long time; - /** Is value required for filtering predicate? */ - private final boolean isValRequired; - /** */ private GridH2Row next; @@ -1595,19 +1592,8 @@ protected static class FilteringCursor implements GridCursor { protected FilteringCursor(GridCursor cursor, long time, IndexingQueryFilter qryFilter, String cacheName) { this.cursor = cursor; - this.time = time; - - if (qryFilter != null) { - this.fltr = qryFilter.forCache(cacheName); - - this.isValRequired = qryFilter.isValueRequired(); - } - else { - this.fltr = null; - - this.isValRequired = false; - } + this.fltr = qryFilter != null ? qryFilter.forCache(cacheName) : null; } /** @@ -1623,12 +1609,8 @@ protected boolean accept(GridH2Row row) { return true; Object key = row.getValue(KEY_COL).getObject(); - Object val = isValRequired ? row.getValue(VAL_COL).getObject() : null; - - assert key != null; - assert !isValRequired || val != null; - return fltr.apply(key, val); + return fltr.apply(key, null); } /** {@inheritDoc} */ From 046ecb254628ee6fe2471b11f2f5da665b802b78 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 12:10:47 +0300 Subject: [PATCH 02/14] WIP. --- .../spi/indexing/IndexingQueryFilterImpl.java | 89 +++++++++++++++++++ .../IndexingQueryFilterPredicate.java | 32 +++++++ .../IndexingQueryFilterPredicateImpl.java | 51 +++++++++++ 3 files changed, 172 insertions(+) create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java new file mode 100644 index 0000000000000..926c534e6ca43 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java @@ -0,0 +1,89 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.spi.indexing; + +import org.apache.ignite.internal.GridKernalContext; +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; +import org.apache.ignite.internal.processors.cache.GridCacheAdapter; +import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager; +import org.apache.ignite.internal.util.typedef.F; +import org.apache.ignite.lang.IgniteBiPredicate; +import org.jetbrains.annotations.Nullable; + +import java.util.HashSet; +import java.util.Set; + +/** + * Indexing query filter. + */ +public class IndexingQueryFilterImpl implements IndexingQueryFilter { + /** Kernal context. */ + private final GridKernalContext ctx; + + /** Topology version. */ + private final AffinityTopologyVersion topVer; + + /** Partitions. */ + private final HashSet parts; + + /** + * Constructor. + * + * @param ctx Kernal context. + * @param topVer Topology version. + * @param partsArr Partitions array. + */ + public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopologyVersion topVer, + @Nullable int[] partsArr) { + this.ctx = ctx; + + this.topVer = topVer != null ? topVer : AffinityTopologyVersion.NONE; + + if (F.isEmpty(partsArr)) + parts = null; + else { + parts = new HashSet<>(); + + for (int part : partsArr) + parts.add(part); + } + } + + /** {@inheritDoc} */ + @Nullable @Override public IgniteBiPredicate forCache(String cacheName) { + final GridCacheAdapter cache = ctx.cache().internalCache(cacheName); + + // REPLICATED -> nothing to filter (explicit partitions are not supported). + if (cache.context().isReplicated()) + return null; + + // No backups and explicit partitions -> nothing to filter. + if (cache.configuration().getBackups() == 0 && parts == null) + return null; + + final GridCacheAffinityManager aff = cache.context().affinity(); + + Set locParts = aff.primaryPartitions(ctx.discovery().localNode().id(), topVer); + + Set parts0 = new HashSet<>(locParts); + + parts0.retainAll(parts); + + return new IndexingQueryFilterPredicateImpl(aff, parts); + } +} diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java new file mode 100644 index 0000000000000..eb89d089c1388 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.spi.indexing; + +/** + * Indexing query filter predicate. + */ +public interface IndexingQueryFilterPredicate { + /** + * Apply predicate. + * + * @param key Key. + * @param val Value. + * @return {@code True} if passed. + */ + public boolean apply(K key, V val); +} diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java new file mode 100644 index 0000000000000..c71b7477440c6 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.spi.indexing; + +import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager; + +import java.util.Set; + +/** + * Indexing query filter predicate. + */ +public class IndexingQueryFilterPredicateImpl implements IndexingQueryFilterPredicate { + /** Affinity manager. */ + private final GridCacheAffinityManager aff; + + /** Partitions. */ + private final Set parts; + + /** + * Constructor. + * + * @param aff Affinity. + * @param parts Partitions. + */ + public IndexingQueryFilterPredicateImpl(GridCacheAffinityManager aff, Set parts) { + this.aff = aff; + this.parts = parts; + } + + /** {@inheritDoc} */ + @Override public boolean apply(K key, V val) { + int part = aff.partition(key); + + return parts.contains(part); + } +} From 35999fffff4fffc433294057b40a925227e3882a Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 12:19:21 +0300 Subject: [PATCH 03/14] Fixed compilation. --- .../cache/query/GridCacheQueryManager.java | 43 ++------------ .../spi/indexing/IndexingQueryFilter.java | 2 +- .../spi/indexing/IndexingQueryFilterImpl.java | 5 +- .../IndexingQueryFilterPredicate.java | 4 +- .../IndexingQueryFilterPredicateImpl.java | 4 +- .../processors/query/h2/H2Cursor.java | 5 +- .../processors/query/h2/IgniteH2Indexing.java | 57 +------------------ .../query/h2/database/H2PkHashIndex.java | 8 +-- .../query/h2/database/H2TreeIndex.java | 3 +- .../query/h2/opt/GridH2IndexBase.java | 35 ++++++++---- .../query/h2/opt/GridLuceneIndex.java | 8 +-- 11 files changed, 50 insertions(+), 124 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java index 8174bbab4094e..392b19f5e3ff4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java @@ -65,7 +65,6 @@ import org.apache.ignite.internal.processors.cache.CacheObjectContext; import org.apache.ignite.internal.processors.cache.CacheObjectUtils; import org.apache.ignite.internal.processors.cache.GridCacheAdapter; -import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager; import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.GridCacheEntryEx; import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException; @@ -120,6 +119,7 @@ import org.apache.ignite.resources.IgniteInstanceResource; import org.apache.ignite.spi.IgniteSpiCloseableIterator; import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilterImpl; import org.apache.ignite.spi.indexing.IndexingSpi; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -131,7 +131,6 @@ import static org.apache.ignite.events.EventType.EVT_NODE_FAILED; import static org.apache.ignite.events.EventType.EVT_NODE_LEFT; import static org.apache.ignite.internal.GridClosureCallMode.BROADCAST; -import static org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion.NONE; import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState.OWNING; import static org.apache.ignite.internal.processors.cache.query.GridCacheQueryType.SCAN; import static org.apache.ignite.internal.processors.cache.query.GridCacheQueryType.SPI; @@ -1985,41 +1984,6 @@ public Collection sqlMetadataV2() throws IgniteCheckedExce } } - /** - * @param Key type. - * @param Value type. - * @param includeBackups Include backups. - * @return Predicate. - */ - @SuppressWarnings("unchecked") - @Nullable public IndexingQueryFilter backupsFilter(boolean includeBackups) { - if (includeBackups) - return null; - - final AffinityTopologyVersion topVer0 = AffinityTopologyVersion.NONE; - - return new IndexingQueryFilter() { - @Nullable @Override public IgniteBiPredicate forCache(final String cacheName) { - final GridKernalContext ctx = cctx.kernalContext(); - - final GridCacheAdapter cache = ctx.cache().internalCache(cacheName); - - if (cache.context().isReplicated() || cache.configuration().getBackups() == 0) - return null; - - final GridCacheAffinityManager aff = cache.context().affinity(); - - final ClusterNode locNode = ctx.discovery().localNode(); - - return new IgniteBiPredicate() { - @Override public boolean apply(K k, V v) { - return aff.primaryByKey(locNode, k, topVer0); - } - }; - } - }; - } - /** * @return Topology version for query requests. */ @@ -2032,7 +1996,10 @@ public AffinityTopologyVersion queryTopologyVersion() { * @return Filter. */ private IndexingQueryFilter filter(GridCacheQueryAdapter qry) { - return backupsFilter(qry.includeBackups()); + if (qry.includeBackups()) + return null; + + return new IndexingQueryFilterImpl(cctx.kernalContext(), AffinityTopologyVersion.NONE, null); } /** diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java index e942c714deb0a..1c428dc723d7c 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java @@ -30,5 +30,5 @@ public interface IndexingQueryFilter { * @param cacheName Cache name. * @return Predicate or {@code null} if no filtering is needed. */ - @Nullable public IgniteBiPredicate forCache(String cacheName); + @Nullable public IndexingQueryFilterPredicate forCache(String cacheName); } \ No newline at end of file diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java index 926c534e6ca43..d4c4c9d94f4f2 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java @@ -22,7 +22,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheAdapter; import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager; import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.lang.IgniteBiPredicate; import org.jetbrains.annotations.Nullable; import java.util.HashSet; @@ -65,7 +64,7 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology } /** {@inheritDoc} */ - @Nullable @Override public IgniteBiPredicate forCache(String cacheName) { + @Nullable @Override public IndexingQueryFilterPredicate forCache(String cacheName) { final GridCacheAdapter cache = ctx.cache().internalCache(cacheName); // REPLICATED -> nothing to filter (explicit partitions are not supported). @@ -84,6 +83,6 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology parts0.retainAll(parts); - return new IndexingQueryFilterPredicateImpl(aff, parts); + return new IndexingQueryFilterPredicateImpl(aff, parts); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java index eb89d089c1388..bfb065efcad1d 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java @@ -20,7 +20,7 @@ /** * Indexing query filter predicate. */ -public interface IndexingQueryFilterPredicate { +public interface IndexingQueryFilterPredicate { /** * Apply predicate. * @@ -28,5 +28,5 @@ public interface IndexingQueryFilterPredicate { * @param val Value. * @return {@code True} if passed. */ - public boolean apply(K key, V val); + public boolean apply(Object key, Object val); } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java index c71b7477440c6..bdcd43d83e4b0 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java @@ -24,7 +24,7 @@ /** * Indexing query filter predicate. */ -public class IndexingQueryFilterPredicateImpl implements IndexingQueryFilterPredicate { +public class IndexingQueryFilterPredicateImpl implements IndexingQueryFilterPredicate { /** Affinity manager. */ private final GridCacheAffinityManager aff; @@ -43,7 +43,7 @@ public IndexingQueryFilterPredicateImpl(GridCacheAffinityManager aff, Set cursor; /** */ - private final IgniteBiPredicate filter; + private final IndexingQueryFilterPredicate filter; /** */ private final long time = U.currentTimeMillis(); @@ -43,7 +44,7 @@ public class H2Cursor implements Cursor { * @param cursor Cursor. * @param filter Filter. */ - public H2Cursor(GridCursor cursor, IgniteBiPredicate filter) { + public H2Cursor(GridCursor cursor, IndexingQueryFilterPredicate filter) { assert cursor != null; this.cursor = cursor; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java index 5bbe128530ca3..ca5958bab953f 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java @@ -65,8 +65,6 @@ import org.apache.ignite.internal.processors.cache.CacheObject; import org.apache.ignite.internal.processors.cache.CacheObjectUtils; import org.apache.ignite.internal.processors.cache.CacheObjectValueContext; -import org.apache.ignite.internal.processors.cache.GridCacheAdapter; -import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager; import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.GridCacheEntryEx; import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException; @@ -130,7 +128,6 @@ import org.apache.ignite.internal.util.typedef.internal.SB; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiClosure; -import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteFuture; import org.apache.ignite.lang.IgniteInClosure; @@ -139,6 +136,7 @@ import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.resources.LoggerResource; import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilterImpl; import org.h2.api.ErrorCode; import org.h2.api.JavaObjectSerializer; import org.h2.command.Prepared; @@ -2350,58 +2348,7 @@ public void clearCachedQueries() { /** {@inheritDoc} */ @Override public IndexingQueryFilter backupFilter(@Nullable final AffinityTopologyVersion topVer, @Nullable final int[] parts) { - final AffinityTopologyVersion topVer0 = topVer != null ? topVer : AffinityTopologyVersion.NONE; - - return new IndexingQueryFilter() { - @Nullable @Override public IgniteBiPredicate forCache(String cacheName) { - final GridCacheAdapter cache = ctx.cache().internalCache(cacheName); - - if (cache.context().isReplicated() || cache.configuration().getBackups() == 0) - return null; - - final GridCacheAffinityManager aff = cache.context().affinity(); - - if (parts != null) { - if (parts.length < 64) { // Fast scan for small arrays. - return new IgniteBiPredicate() { - @Override public boolean apply(K k, V v) { - int p = aff.partition(k); - - for (int p0 : parts) { - if (p0 == p) - return true; - - if (p0 > p) // Array is sorted. - return false; - } - - return false; - } - }; - } - - return new IgniteBiPredicate() { - @Override public boolean apply(K k, V v) { - int p = aff.partition(k); - - return Arrays.binarySearch(parts, p) >= 0; - } - }; - } - - final ClusterNode locNode = ctx.discovery().localNode(); - - return new IgniteBiPredicate() { - @Override public boolean apply(K k, V v) { - return aff.primaryByKey(locNode, k, topVer0); - } - }; - } - - @Override public String toString() { - return "IndexingQueryFilter [ver=" + topVer + ']'; - } - }; + return new IndexingQueryFilterImpl(ctx, topVer, parts); } /** diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java index b32bfb8f8d49e..e55bfa08fab5d 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java @@ -31,8 +31,8 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row; import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table; import org.apache.ignite.internal.util.lang.GridCursor; -import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; import org.h2.engine.Session; import org.h2.index.Cursor; import org.h2.index.IndexType; @@ -85,7 +85,7 @@ public H2PkHashIndex( /** {@inheritDoc} */ @Override public Cursor find(Session ses, final SearchRow lower, final SearchRow upper) { IndexingQueryFilter f = threadLocalFilter(); - IgniteBiPredicate p = null; + IndexingQueryFilterPredicate p = null; if (f != null) { String cacheName = getTable().cacheName(); @@ -179,13 +179,13 @@ private class H2Cursor implements Cursor { final GridCursor cursor; /** */ - final IgniteBiPredicate filter; + final IndexingQueryFilterPredicate filter; /** * @param cursor Cursor. * @param filter Filter. */ - private H2Cursor(GridCursor cursor, IgniteBiPredicate filter) { + private H2Cursor(GridCursor cursor, IndexingQueryFilterPredicate filter) { assert cursor != null; this.cursor = cursor; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java index 5c3e1bd0fcb09..a96b1e9fd1e6f 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java @@ -36,6 +36,7 @@ import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; import org.h2.engine.Session; import org.h2.index.Cursor; import org.h2.index.IndexType; @@ -166,7 +167,7 @@ private List getAvailableInlineColumns(IndexColumn[] cols) { @Override public Cursor find(Session ses, SearchRow lower, SearchRow upper) { try { IndexingQueryFilter f = threadLocalFilter(); - IgniteBiPredicate p = null; + IndexingQueryFilterPredicate p = null; if (f != null) { String cacheName = getTable().cacheName(); diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java index ed408c9a41e3f..071f1a5b11acd 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java @@ -17,12 +17,6 @@ package org.apache.ignite.internal.processors.query.h2.opt; -import java.util.*; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.Future; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; -import javax.cache.CacheException; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.IgniteInterruptedException; import org.apache.ignite.IgniteLogger; @@ -41,17 +35,18 @@ import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2RowRangeBounds; import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessage; import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessageFactory; -import org.apache.ignite.internal.util.*; -import org.apache.ignite.internal.util.lang.*; +import org.apache.ignite.internal.util.GridSpinBusyLock; +import org.apache.ignite.internal.util.IgniteTree; +import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.typedef.CIX2; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.CU; import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.logger.NullLogger; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; import org.h2.engine.Session; import org.h2.index.BaseIndex; import org.h2.index.Cursor; @@ -68,13 +63,29 @@ import org.h2.value.ValueNull; import org.jetbrains.annotations.Nullable; +import javax.cache.CacheException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.UUID; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; + import static java.util.Collections.emptyIterator; import static java.util.Collections.singletonList; import static org.apache.ignite.internal.processors.query.h2.opt.DistributedJoinMode.LOCAL_ONLY; import static org.apache.ignite.internal.processors.query.h2.opt.DistributedJoinMode.OFF; -import static org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap.KEY_COL; -import static org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap.VAL_COL; import static org.apache.ignite.internal.processors.query.h2.opt.GridH2CollocationModel.buildCollocationModel; +import static org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap.KEY_COL; import static org.apache.ignite.internal.processors.query.h2.opt.GridH2QueryType.MAP; import static org.apache.ignite.internal.processors.query.h2.opt.GridH2QueryType.PREPARE; import static org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2IndexRangeResponse.STATUS_ERROR; @@ -1575,7 +1586,7 @@ protected static class FilteringCursor implements GridCursor { /** */ private final GridCursor cursor; /** */ - private final IgniteBiPredicate fltr; + private final IndexingQueryFilterPredicate fltr; /** */ private final long time; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java index f8d3ef2f66a92..c32774581a2d7 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java @@ -32,9 +32,9 @@ import org.apache.ignite.internal.util.lang.GridCloseableIterator; import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory; import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -290,7 +290,7 @@ public GridCloseableIterator> query(String qry, throw new IgniteCheckedException(e); } - IgniteBiPredicate fltr = null; + IndexingQueryFilterPredicate fltr = null; if (filters != null) fltr = filters.forCache(cacheName); @@ -321,7 +321,7 @@ private class It extends GridCloseableIteratorAdapter> private final ScoreDoc[] docs; /** */ - private final IgniteBiPredicate filters; + private final IndexingQueryFilterPredicate filters; /** */ private int idx; @@ -341,7 +341,7 @@ private class It extends GridCloseableIteratorAdapter> * @param filters Filters over result. * @throws IgniteCheckedException if failed. */ - private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, IgniteBiPredicate filters) + private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, IndexingQueryFilterPredicate filters) throws IgniteCheckedException { this.reader = reader; this.searcher = searcher; From cf16a5181c02df8c16d310a8d94310e01d458d09 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 12:21:17 +0300 Subject: [PATCH 04/14] Fix. --- .../apache/ignite/spi/indexing/IndexingQueryFilterImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java index d4c4c9d94f4f2..0b85b59f1cafe 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java @@ -81,8 +81,9 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology Set parts0 = new HashSet<>(locParts); - parts0.retainAll(parts); + if (parts != null) + parts0.retainAll(parts); - return new IndexingQueryFilterPredicateImpl(aff, parts); + return new IndexingQueryFilterPredicateImpl(aff, parts0); } } From 5846dffcb585c8aa010fc278dcec36ba90521d17 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 14:02:38 +0300 Subject: [PATCH 05/14] WIP. --- .../spi/indexing/IndexingQueryFilterImpl.java | 28 +++++++++++++++++-- .../h2/twostep/GridMapQueryExecutor.java | 1 + 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java index 0b85b59f1cafe..a9b9537ff0be0 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java @@ -72,8 +72,8 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology return null; // No backups and explicit partitions -> nothing to filter. - if (cache.configuration().getBackups() == 0 && parts == null) - return null; +// if (cache.configuration().getBackups() == 0 && parts == null) +// return null; final GridCacheAffinityManager aff = cache.context().affinity(); @@ -84,6 +84,28 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology if (parts != null) parts0.retainAll(parts); - return new IndexingQueryFilterPredicateImpl(aff, parts0); + return new IndexingQueryFilterPredicate() { + @Override public boolean apply(Object key, Object val) { + int part = aff.partition(key); + +// boolean primary = aff.primaryByPartition(ctx.discovery().localNode(), part, topVer); +// +// return primary && (parts == null || parts.contains(part)); + + + boolean primary = aff.primaryByPartition(ctx.discovery().localNode(), part, topVer); + + return primary; + + +// return aff.primaryByKey(ctx.discovery().localNode(), key, topVer); + + + +// int part = aff.partition(key); +// +// return parts0.contains(part); + } + }; } } diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java index 0cc417281ddcd..5245a66dcd03e 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java @@ -433,6 +433,7 @@ private void onQueryRequest(final ClusterNode node, final GridH2QueryRequest req final Map partsMap = req.partitions(); +` // TODO: WTF is going on here? Looks like we are targeting unstable-node case. final int[] parts = qryParts == null ? partsMap == null ? null : partsMap.get(ctx.localNodeId()) : qryParts; final DistributedJoinMode joinMode = distributedJoinMode( From bbeebee9572e86340fdc4228c4a27eb65418e7c8 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 14:21:20 +0300 Subject: [PATCH 06/14] Fixed. --- .../spi/indexing/IndexingQueryFilterImpl.java | 33 ++++--------------- .../h2/twostep/GridMapQueryExecutor.java | 1 - 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java index a9b9537ff0be0..1073cce0c3ce9 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java @@ -72,39 +72,20 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology return null; // No backups and explicit partitions -> nothing to filter. -// if (cache.configuration().getBackups() == 0 && parts == null) -// return null; + if (cache.configuration().getBackups() == 0 && parts == null) + return null; final GridCacheAffinityManager aff = cache.context().affinity(); - Set locParts = aff.primaryPartitions(ctx.discovery().localNode().id(), topVer); - - Set parts0 = new HashSet<>(locParts); - - if (parts != null) - parts0.retainAll(parts); - + // Either explicit partitions with already filtered backup or unstable topology. return new IndexingQueryFilterPredicate() { @Override public boolean apply(Object key, Object val) { int part = aff.partition(key); -// boolean primary = aff.primaryByPartition(ctx.discovery().localNode(), part, topVer); -// -// return primary && (parts == null || parts.contains(part)); - - - boolean primary = aff.primaryByPartition(ctx.discovery().localNode(), part, topVer); - - return primary; - - -// return aff.primaryByKey(ctx.discovery().localNode(), key, topVer); - - - -// int part = aff.partition(key); -// -// return parts0.contains(part); + if (parts == null) + return aff.primaryByPartition(ctx.discovery().localNode(), part, topVer); + else + return parts.contains(aff.partition(key)); } }; } diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java index 5245a66dcd03e..0cc417281ddcd 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java @@ -433,7 +433,6 @@ private void onQueryRequest(final ClusterNode node, final GridH2QueryRequest req final Map partsMap = req.partitions(); -` // TODO: WTF is going on here? Looks like we are targeting unstable-node case. final int[] parts = qryParts == null ? partsMap == null ? null : partsMap.get(ctx.localNodeId()) : qryParts; final DistributedJoinMode joinMode = distributedJoinMode( From 9ab5729303ac5221cef25028bd2761802ead52a3 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 14:26:48 +0300 Subject: [PATCH 07/14] Fixed. --- .../spi/indexing/IndexingQueryFilterImpl.java | 17 ++-------------- .../IndexingQueryFilterPredicateImpl.java | 20 +++++++++++++++++-- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java index 1073cce0c3ce9..11f7be32cf865 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java @@ -20,12 +20,10 @@ import org.apache.ignite.internal.GridKernalContext; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.GridCacheAdapter; -import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager; import org.apache.ignite.internal.util.typedef.F; import org.jetbrains.annotations.Nullable; import java.util.HashSet; -import java.util.Set; /** * Indexing query filter. @@ -75,18 +73,7 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology if (cache.configuration().getBackups() == 0 && parts == null) return null; - final GridCacheAffinityManager aff = cache.context().affinity(); - - // Either explicit partitions with already filtered backup or unstable topology. - return new IndexingQueryFilterPredicate() { - @Override public boolean apply(Object key, Object val) { - int part = aff.partition(key); - - if (parts == null) - return aff.primaryByPartition(ctx.discovery().localNode(), part, topVer); - else - return parts.contains(aff.partition(key)); - } - }; + return new IndexingQueryFilterPredicateImpl(cache.context().affinity(), parts, topVer, + ctx.discovery().localNode()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java index bdcd43d83e4b0..918866660429f 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java @@ -17,6 +17,8 @@ package org.apache.ignite.spi.indexing; +import org.apache.ignite.cluster.ClusterNode; +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager; import java.util.Set; @@ -31,21 +33,35 @@ public class IndexingQueryFilterPredicateImpl implements IndexingQueryFilterPred /** Partitions. */ private final Set parts; + /** Topology version. */ + private final AffinityTopologyVersion topVer; + + /** Local node. */ + private final ClusterNode locNode; + /** * Constructor. * * @param aff Affinity. * @param parts Partitions. + * @param topVer Topology version. + * @param locNode Local node. */ - public IndexingQueryFilterPredicateImpl(GridCacheAffinityManager aff, Set parts) { + public IndexingQueryFilterPredicateImpl(GridCacheAffinityManager aff, Set parts, + AffinityTopologyVersion topVer, ClusterNode locNode) { this.aff = aff; this.parts = parts; + this.topVer = topVer; + this.locNode = locNode; } /** {@inheritDoc} */ @Override public boolean apply(Object key, Object val) { int part = aff.partition(key); - return parts.contains(part); + if (parts == null) + return aff.primaryByPartition(locNode, part, topVer); + else + return parts.contains(aff.partition(key)); } } From de8a6645287f09292be59744515958bc0fcdfeec Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 14:29:36 +0300 Subject: [PATCH 08/14] Finalization. --- .../IndexingQueryFilterPredicate.java | 3 +-- .../IndexingQueryFilterPredicateImpl.java | 4 ++-- .../processors/query/h2/H2Cursor.java | 20 +++++++++---------- .../query/h2/database/H2PkHashIndex.java | 7 +++---- .../query/h2/opt/GridH2IndexBase.java | 2 +- .../query/h2/opt/GridLuceneIndex.java | 17 +++------------- 6 files changed, 19 insertions(+), 34 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java index bfb065efcad1d..fba4139d103fd 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java @@ -25,8 +25,7 @@ public interface IndexingQueryFilterPredicate { * Apply predicate. * * @param key Key. - * @param val Value. * @return {@code True} if passed. */ - public boolean apply(Object key, Object val); + public boolean apply(Object key); } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java index 918866660429f..814f1558fee19 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java @@ -56,12 +56,12 @@ public IndexingQueryFilterPredicateImpl(GridCacheAffinityManager aff, Set cursor) { return true; Object key = row.getValue(0).getObject(); - Object val = row.getValue(1).getObject(); assert key != null; - assert val != null; - if (filter.apply(key, val)) + if (filter.apply(key)) return true; } diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java index e55bfa08fab5d..42ecc0717458e 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java @@ -222,17 +222,16 @@ private H2Cursor(GridCursor cursor, IndexingQueryFilterP CacheDataRow dataRow = cursor.get(); - GridH2Row row = tbl.rowDescriptor().createRow(dataRow.key(), dataRow.partition(), dataRow.value(), dataRow.version(), 0); + GridH2Row row = tbl.rowDescriptor().createRow(dataRow.key(), dataRow.partition(), dataRow.value(), + dataRow.version(), 0); row.link(dataRow.link()); Object key = row.getValue(0).getObject(); - Object val = row.getValue(1).getObject(); assert key != null; - assert val != null; - if (filter.apply(key, val)) + if (filter.apply(key)) return true; } diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java index 071f1a5b11acd..40da95d44f446 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java @@ -1621,7 +1621,7 @@ protected boolean accept(GridH2Row row) { Object key = row.getValue(KEY_COL).getObject(); - return fltr.apply(key, null); + return fltr.apply(key); } /** {@inheritDoc} */ diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java index c32774581a2d7..4a43401408ce4 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java @@ -353,17 +353,6 @@ private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, Indexing findNext(); } - /** - * Filters key using predicates. - * - * @param key Key. - * @param val Value. - * @return {@code True} if key passes filter. - */ - private boolean filter(K key, V val) { - return filters == null || filters.apply(key, val); - } - /** * @param bytes Bytes. * @param ldr Class loader. @@ -404,15 +393,15 @@ private void findNext() throws IgniteCheckedException { K k = unmarshall(doc.getBinaryValue(KEY_FIELD_NAME).bytes, ldr); + if (filters != null && !filters.apply(k)) + continue; + V v = type.valueClass() == String.class ? (V)doc.get(VAL_STR_FIELD_NAME) : this.unmarshall(doc.getBinaryValue(VAL_FIELD_NAME).bytes, ldr); assert v != null; - if (!filter(k, v)) - continue; - curr = new IgniteBiTuple<>(k, v); break; From 37b9b68c40f3b8320f08c384a1657be2db4b8c29 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 14:33:10 +0300 Subject: [PATCH 09/14] Do not create row. --- .../processors/query/h2/database/H2PkHashIndex.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java index 42ecc0717458e..9e6ff89b2ad5a 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java @@ -222,16 +222,7 @@ private H2Cursor(GridCursor cursor, IndexingQueryFilterP CacheDataRow dataRow = cursor.get(); - GridH2Row row = tbl.rowDescriptor().createRow(dataRow.key(), dataRow.partition(), dataRow.value(), - dataRow.version(), 0); - - row.link(dataRow.link()); - - Object key = row.getValue(0).getObject(); - - assert key != null; - - if (filter.apply(key)) + if (filter.apply(dataRow.key())) return true; } From 20a74cfd099cf54149f2abdd99ef9d3058236edd Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 16:30:43 +0300 Subject: [PATCH 10/14] Finalization. --- ...mpl.java => IndexingQueryCacheFilter.java} | 15 ++++++--- .../spi/indexing/IndexingQueryFilter.java | 3 +- .../spi/indexing/IndexingQueryFilterImpl.java | 4 +-- .../IndexingQueryFilterPredicate.java | 31 ------------------- .../processors/query/h2/H2Cursor.java | 6 ++-- .../query/h2/database/H2PkHashIndex.java | 8 ++--- .../query/h2/database/H2TreeIndex.java | 5 ++- .../query/h2/opt/GridH2IndexBase.java | 5 +-- .../query/h2/opt/GridLuceneIndex.java | 8 ++--- 9 files changed, 29 insertions(+), 56 deletions(-) rename modules/core/src/main/java/org/apache/ignite/spi/indexing/{IndexingQueryFilterPredicateImpl.java => IndexingQueryCacheFilter.java} (85%) delete mode 100644 modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java similarity index 85% rename from modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java rename to modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java index 814f1558fee19..6257f47e2f516 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicateImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java @@ -24,9 +24,9 @@ import java.util.Set; /** - * Indexing query filter predicate. + * Indexing query filter for specific cache. */ -public class IndexingQueryFilterPredicateImpl implements IndexingQueryFilterPredicate { +public class IndexingQueryCacheFilter { /** Affinity manager. */ private final GridCacheAffinityManager aff; @@ -47,7 +47,7 @@ public class IndexingQueryFilterPredicateImpl implements IndexingQueryFilterPred * @param topVer Topology version. * @param locNode Local node. */ - public IndexingQueryFilterPredicateImpl(GridCacheAffinityManager aff, Set parts, + public IndexingQueryCacheFilter(GridCacheAffinityManager aff, Set parts, AffinityTopologyVersion topVer, ClusterNode locNode) { this.aff = aff; this.parts = parts; @@ -55,8 +55,13 @@ public IndexingQueryFilterPredicateImpl(GridCacheAffinityManager aff, Set cache = ctx.cache().internalCache(cacheName); // REPLICATED -> nothing to filter (explicit partitions are not supported). @@ -73,7 +73,7 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology if (cache.configuration().getBackups() == 0 && parts == null) return null; - return new IndexingQueryFilterPredicateImpl(cache.context().affinity(), parts, topVer, + return new IndexingQueryCacheFilter(cache.context().affinity(), parts, topVer, ctx.discovery().localNode()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java deleted file mode 100644 index fba4139d103fd..0000000000000 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterPredicate.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.spi.indexing; - -/** - * Indexing query filter predicate. - */ -public interface IndexingQueryFilterPredicate { - /** - * Apply predicate. - * - * @param key Key. - * @return {@code True} if passed. - */ - public boolean apply(Object key); -} diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java index 12e49a786b796..e09108d7a01db 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java @@ -21,7 +21,7 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row; import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.h2.index.Cursor; import org.h2.message.DbException; import org.h2.result.Row; @@ -35,7 +35,7 @@ public class H2Cursor implements Cursor { private final GridCursor cursor; /** */ - private final IndexingQueryFilterPredicate filter; + private final IndexingQueryCacheFilter filter; /** */ private final long time = U.currentTimeMillis(); @@ -44,7 +44,7 @@ public class H2Cursor implements Cursor { * @param cursor Cursor. * @param filter Filter. */ - public H2Cursor(GridCursor cursor, IndexingQueryFilterPredicate filter) { + public H2Cursor(GridCursor cursor, IndexingQueryCacheFilter filter) { assert cursor != null; this.cursor = cursor; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java index 9e6ff89b2ad5a..6691485420df0 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java @@ -32,7 +32,7 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table; import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.h2.engine.Session; import org.h2.index.Cursor; import org.h2.index.IndexType; @@ -85,7 +85,7 @@ public H2PkHashIndex( /** {@inheritDoc} */ @Override public Cursor find(Session ses, final SearchRow lower, final SearchRow upper) { IndexingQueryFilter f = threadLocalFilter(); - IndexingQueryFilterPredicate p = null; + IndexingQueryCacheFilter p = null; if (f != null) { String cacheName = getTable().cacheName(); @@ -179,13 +179,13 @@ private class H2Cursor implements Cursor { final GridCursor cursor; /** */ - final IndexingQueryFilterPredicate filter; + final IndexingQueryCacheFilter filter; /** * @param cursor Cursor. * @param filter Filter. */ - private H2Cursor(GridCursor cursor, IndexingQueryFilterPredicate filter) { + private H2Cursor(GridCursor cursor, IndexingQueryCacheFilter filter) { assert cursor != null; this.cursor = cursor; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java index a96b1e9fd1e6f..1a3ea4acbe8e5 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java @@ -34,9 +34,8 @@ import org.apache.ignite.internal.util.IgniteTree; import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.h2.engine.Session; import org.h2.index.Cursor; import org.h2.index.IndexType; @@ -167,7 +166,7 @@ private List getAvailableInlineColumns(IndexColumn[] cols) { @Override public Cursor find(Session ses, SearchRow lower, SearchRow upper) { try { IndexingQueryFilter f = threadLocalFilter(); - IndexingQueryFilterPredicate p = null; + IndexingQueryCacheFilter p = null; if (f != null) { String cacheName = getTable().cacheName(); diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java index 40da95d44f446..92b7d108da414 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java @@ -46,7 +46,7 @@ import org.apache.ignite.logger.NullLogger; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.h2.engine.Session; import org.h2.index.BaseIndex; import org.h2.index.Cursor; @@ -1585,8 +1585,9 @@ protected GridCursor doFind0( protected static class FilteringCursor implements GridCursor { /** */ private final GridCursor cursor; + /** */ - private final IndexingQueryFilterPredicate fltr; + private final IndexingQueryCacheFilter fltr; /** */ private final long time; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java index 4a43401408ce4..b5d2456612df5 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java @@ -34,7 +34,7 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryFilterPredicate; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -290,7 +290,7 @@ public GridCloseableIterator> query(String qry, throw new IgniteCheckedException(e); } - IndexingQueryFilterPredicate fltr = null; + IndexingQueryCacheFilter fltr = null; if (filters != null) fltr = filters.forCache(cacheName); @@ -321,7 +321,7 @@ private class It extends GridCloseableIteratorAdapter> private final ScoreDoc[] docs; /** */ - private final IndexingQueryFilterPredicate filters; + private final IndexingQueryCacheFilter filters; /** */ private int idx; @@ -341,7 +341,7 @@ private class It extends GridCloseableIteratorAdapter> * @param filters Filters over result. * @throws IgniteCheckedException if failed. */ - private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, IndexingQueryFilterPredicate filters) + private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, IndexingQueryCacheFilter filters) throws IgniteCheckedException { this.reader = reader; this.searcher = searcher; From 71b235cad60a994294762f866987ee3862e00a45 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 16:35:02 +0300 Subject: [PATCH 11/14] COMPATIBILITY: rename current class. --- .../managers/indexing/GridIndexingManager.java | 5 ++--- .../cache/query/GridCacheQueryManager.java | 8 ++++---- .../processors/query/GridQueryIndexing.java | 10 +++++----- .../processors/query/GridQueryProcessor.java | 6 +++--- .../ignite/spi/indexing/IndexingSpi.java | 2 +- ...yCacheFilter.java => QueryCacheFilter.java} | 4 ++-- ...dexingQueryFilter.java => QueryFilter.java} | 4 ++-- ...eryFilterImpl.java => QueryFilterImpl.java} | 8 ++++---- .../spi/indexing/noop/NoopIndexingSpi.java | 4 ++-- ...gniteClientCacheInitializationFailTest.java | 10 +++++----- .../IgniteTxExceptionAbstractSelfTest.java | 4 ++-- .../cache/query/IndexingSpiQuerySelfTest.java | 4 ++-- .../query/IndexingSpiQueryTxSelfTest.java | 4 ++-- .../query/h2/DmlStatementsProcessor.java | 8 ++++---- .../internal/processors/query/h2/H2Cursor.java | 6 +++--- .../processors/query/h2/IgniteH2Indexing.java | 18 +++++++++--------- .../query/h2/database/H2PkHashIndex.java | 12 ++++++------ .../query/h2/database/H2TreeIndex.java | 10 +++++----- .../query/h2/opt/GridH2IndexBase.java | 18 +++++++++--------- .../query/h2/opt/GridH2QueryContext.java | 8 ++++---- .../query/h2/opt/GridLuceneIndex.java | 12 ++++++------ .../query/IgniteQueryDedicatedPoolTest.java | 4 ++-- 22 files changed, 84 insertions(+), 85 deletions(-) rename modules/core/src/main/java/org/apache/ignite/spi/indexing/{IndexingQueryCacheFilter.java => QueryCacheFilter.java} (94%) rename modules/core/src/main/java/org/apache/ignite/spi/indexing/{IndexingQueryFilter.java => QueryFilter.java} (90%) rename modules/core/src/main/java/org/apache/ignite/spi/indexing/{IndexingQueryFilterImpl.java => QueryFilterImpl.java} (87%) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java index f1f8f873ff238..7863bcf95047d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java @@ -26,8 +26,7 @@ import org.apache.ignite.internal.util.GridEmptyCloseableIterator; import org.apache.ignite.internal.util.GridSpinBusyLock; import org.apache.ignite.spi.IgniteSpiCloseableIterator; -import org.apache.ignite.spi.IgniteSpiException; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; /** @@ -135,7 +134,7 @@ public void remove(String cacheName, Object key) throws IgniteCheckedException { * @throws IgniteCheckedException If failed. */ @SuppressWarnings("unchecked") - public IgniteSpiCloseableIterator query(String cacheName, Collection params, IndexingQueryFilter filters) + public IgniteSpiCloseableIterator query(String cacheName, Collection params, QueryFilter filters) throws IgniteCheckedException { if (!enabled()) throw new IgniteCheckedException("Indexing SPI is not configured."); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java index 392b19f5e3ff4..f02a40c7e7f40 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java @@ -118,8 +118,8 @@ import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.resources.IgniteInstanceResource; import org.apache.ignite.spi.IgniteSpiCloseableIterator; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryFilterImpl; +import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.QueryFilterImpl; import org.apache.ignite.spi.indexing.IndexingSpi; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -1995,11 +1995,11 @@ public AffinityTopologyVersion queryTopologyVersion() { * @param qry Query. * @return Filter. */ - private IndexingQueryFilter filter(GridCacheQueryAdapter qry) { + private QueryFilter filter(GridCacheQueryAdapter qry) { if (qry.includeBackups()) return null; - return new IndexingQueryFilterImpl(cctx.kernalContext(), AffinityTopologyVersion.NONE, null); + return new QueryFilterImpl(cctx.kernalContext(), AffinityTopologyVersion.NONE, null); } /** diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java index 93d541d480523..45d00a5b48eb2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java @@ -39,7 +39,7 @@ import org.apache.ignite.internal.util.lang.GridCloseableIterator; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteFuture; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.jetbrains.annotations.Nullable; /** @@ -115,7 +115,7 @@ public long streamUpdateQuery(String schemaName, String qry, @Nullable Object[] * @param keepBinary Keep binary flag. @return Cursor. */ public QueryCursor> queryLocalSql(String schemaName, String cacheName, SqlQuery qry, - IndexingQueryFilter filter, boolean keepBinary) throws IgniteCheckedException; + QueryFilter filter, boolean keepBinary) throws IgniteCheckedException; /** * Queries individual fields (generally used by JDBC drivers). @@ -128,7 +128,7 @@ public QueryCursor> queryLocalSql(String schemaName, Str * @return Cursor. */ public FieldsQueryCursor> queryLocalSqlFields(String schemaName, SqlFieldsQuery qry, - boolean keepBinary, IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException; + boolean keepBinary, QueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException; /** * Executes text query. @@ -141,7 +141,7 @@ public FieldsQueryCursor> queryLocalSqlFields(String schemaName, SqlFiel * @throws IgniteCheckedException If failed. */ public GridCloseableIterator> queryLocalText(String schemaName, String cacheName, - String qry, String typeName, IndexingQueryFilter filter) throws IgniteCheckedException; + String qry, String typeName, QueryFilter filter) throws IgniteCheckedException; /** * Create new index locally. @@ -260,7 +260,7 @@ public void remove(String cacheName, GridQueryTypeDescriptor type, KeyCacheObjec * @param parts Partitions. * @return Backup filter. */ - public IndexingQueryFilter backupFilter(AffinityTopologyVersion topVer, int[] parts); + public QueryFilter backupFilter(AffinityTopologyVersion topVer, int[] parts); /** * Client disconnected callback. diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java index 3a1cdb7cc16a8..f7d6921498f1c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java @@ -109,7 +109,7 @@ import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.marshaller.jdk.JdkMarshaller; import org.apache.ignite.spi.discovery.DiscoveryDataBag; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.apache.ignite.thread.IgniteThread; import org.jetbrains.annotations.Nullable; @@ -1888,7 +1888,7 @@ public FieldsQueryCursor> querySqlFields(final GridCacheContext cct keepBinary, cancel, mainCacheId, true).get(0); } else { - IndexingQueryFilter filter = idx.backupFilter(requestTopVer.get(), qry.getPartitions()); + QueryFilter filter = idx.backupFilter(requestTopVer.get(), qry.getPartitions()); cur = idx.queryLocalSqlFields(schemaName, qry, keepBinary, filter, cancel); } @@ -2346,7 +2346,7 @@ public void remove(String cacheName, KeyCacheObject key, int partId, CacheObject */ @SuppressWarnings("unchecked") public GridCloseableIterator> queryText(final String cacheName, final String clause, - final String resType, final IndexingQueryFilter filters) throws IgniteCheckedException { + final String resType, final QueryFilter filters) throws IgniteCheckedException { checkEnabled(); if (!busyLock.enterBusy()) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java index 8ec4a67a77da4..2d534dd5de32d 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java @@ -72,7 +72,7 @@ public interface IndexingSpi extends IgniteSpi { * @throws IgniteSpiException If failed. */ public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable IndexingQueryFilter filters) throws IgniteSpiException; + @Nullable QueryFilter filters) throws IgniteSpiException; /** * Updates index. Note that key is unique for cache, so if cache contains multiple indexes diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryCacheFilter.java similarity index 94% rename from modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java rename to modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryCacheFilter.java index 6257f47e2f516..caabae966d10d 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryCacheFilter.java @@ -26,7 +26,7 @@ /** * Indexing query filter for specific cache. */ -public class IndexingQueryCacheFilter { +public class QueryCacheFilter { /** Affinity manager. */ private final GridCacheAffinityManager aff; @@ -47,7 +47,7 @@ public class IndexingQueryCacheFilter { * @param topVer Topology version. * @param locNode Local node. */ - public IndexingQueryCacheFilter(GridCacheAffinityManager aff, Set parts, + public QueryCacheFilter(GridCacheAffinityManager aff, Set parts, AffinityTopologyVersion topVer, ClusterNode locNode) { this.aff = aff; this.parts = parts; diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilter.java similarity index 90% rename from modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java rename to modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilter.java index b0d969384f0e0..90b62af4ddf1d 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilter.java @@ -22,12 +22,12 @@ /** * Cache entry filter. */ -public interface IndexingQueryFilter { +public interface QueryFilter { /** * Creates optional predicate for cache. * * @param cacheName Cache name. * @return Predicate or {@code null} if no filtering is needed. */ - @Nullable public IndexingQueryCacheFilter forCache(String cacheName); + @Nullable public QueryCacheFilter forCache(String cacheName); } \ No newline at end of file diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilterImpl.java similarity index 87% rename from modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java rename to modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilterImpl.java index 53dcbf634aaf4..489d2950ba8a6 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilterImpl.java @@ -28,7 +28,7 @@ /** * Indexing query filter. */ -public class IndexingQueryFilterImpl implements IndexingQueryFilter { +public class QueryFilterImpl implements QueryFilter { /** Kernal context. */ private final GridKernalContext ctx; @@ -45,7 +45,7 @@ public class IndexingQueryFilterImpl implements IndexingQueryFilter { * @param topVer Topology version. * @param partsArr Partitions array. */ - public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopologyVersion topVer, + public QueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopologyVersion topVer, @Nullable int[] partsArr) { this.ctx = ctx; @@ -62,7 +62,7 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology } /** {@inheritDoc} */ - @Nullable @Override public IndexingQueryCacheFilter forCache(String cacheName) { + @Nullable @Override public QueryCacheFilter forCache(String cacheName) { final GridCacheAdapter cache = ctx.cache().internalCache(cacheName); // REPLICATED -> nothing to filter (explicit partitions are not supported). @@ -73,7 +73,7 @@ public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopology if (cache.configuration().getBackups() == 0 && parts == null) return null; - return new IndexingQueryCacheFilter(cache.context().affinity(), parts, topVer, + return new QueryCacheFilter(cache.context().affinity(), parts, topVer, ctx.discovery().localNode()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/noop/NoopIndexingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/noop/NoopIndexingSpi.java index 5677f553f0d1e..2689a828e6dbe 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/noop/NoopIndexingSpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/noop/NoopIndexingSpi.java @@ -23,7 +23,7 @@ import org.apache.ignite.spi.IgniteSpiAdapter; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.IgniteSpiNoop; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.jetbrains.annotations.Nullable; @@ -34,7 +34,7 @@ public class NoopIndexingSpi extends IgniteSpiAdapter implements IndexingSpi { /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable IndexingQueryFilter filters) throws IgniteSpiException { + @Nullable QueryFilter filters) throws IgniteSpiException { throw new IgniteSpiException("You have to configure custom GridIndexingSpi implementation."); } diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java index 83dd9c94c29f1..9997e523bea12 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java @@ -56,7 +56,7 @@ import org.apache.ignite.internal.util.lang.GridCloseableIterator; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteFuture; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.jetbrains.annotations.Nullable; @@ -256,19 +256,19 @@ private static class FailedIndexing implements GridQueryIndexing { /** {@inheritDoc} */ @Override public QueryCursor> queryLocalSql(String schemaName, String cacheName, - SqlQuery qry, IndexingQueryFilter filter, boolean keepBinary) throws IgniteCheckedException { + SqlQuery qry, QueryFilter filter, boolean keepBinary) throws IgniteCheckedException { return null; } /** {@inheritDoc} */ @Override public FieldsQueryCursor> queryLocalSqlFields(String schemaName, SqlFieldsQuery qry, - boolean keepBinary, IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { + boolean keepBinary, QueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { return null; } /** {@inheritDoc} */ @Override public GridCloseableIterator> queryLocalText(String spaceName, - String cacheName, String qry, String typeName, IndexingQueryFilter filter) throws IgniteCheckedException { + String cacheName, String qry, String typeName, QueryFilter filter) throws IgniteCheckedException { return null; } @@ -332,7 +332,7 @@ private static class FailedIndexing implements GridQueryIndexing { } /** {@inheritDoc} */ - @Override public IndexingQueryFilter backupFilter(AffinityTopologyVersion topVer, int[] parts) { + @Override public QueryFilter backupFilter(AffinityTopologyVersion topVer, int[] parts) { return null; } diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxExceptionAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxExceptionAbstractSelfTest.java index ac294b05067fb..7141eca02f250 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxExceptionAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxExceptionAbstractSelfTest.java @@ -38,7 +38,7 @@ import org.apache.ignite.internal.util.typedef.PA; import org.apache.ignite.spi.IgniteSpiAdapter; import org.apache.ignite.spi.IgniteSpiException; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.transactions.Transaction; @@ -665,7 +665,7 @@ public static void forceFail(boolean failFlag) { /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable IndexingQueryFilter filters) throws IgniteSpiException { + @Nullable QueryFilter filters) throws IgniteSpiException { throw new UnsupportedOperationException(); } diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java index b6e32d57cee76..bf2d8835fa067 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java @@ -44,7 +44,7 @@ import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.transactions.Transaction; @@ -255,7 +255,7 @@ private static class MyIndexingSpi extends IgniteSpiAdapter implements IndexingS /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable IndexingQueryFilter filters) throws IgniteSpiException { + @Nullable QueryFilter filters) throws IgniteSpiException { if (params.size() < 2) throw new IgniteSpiException("Range parameters required."); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java index e59deed2eb767..dbc181f74910d 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java @@ -28,7 +28,7 @@ import org.apache.ignite.spi.IgniteSpiAdapter; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.transactions.Transaction; @@ -134,7 +134,7 @@ private static class MyBrokenIndexingSpi extends IgniteSpiAdapter implements Ind /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable IndexingQueryFilter filters) throws IgniteSpiException { + @Nullable QueryFilter filters) throws IgniteSpiException { return null; } diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java index 98117b2dfe6d7..a377680a04277 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java @@ -78,7 +78,7 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteInClosure; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.h2.command.Prepared; import org.h2.command.dml.Delete; import org.h2.command.dml.Insert; @@ -159,7 +159,7 @@ public void onCacheStop(String cacheName) { * @throws IgniteCheckedException if failed. */ private UpdateResult updateSqlFields(String schemaName, Prepared prepared, SqlFieldsQuery fieldsQry, - boolean loc, IndexingQueryFilter filters, GridQueryCancel cancel) throws IgniteCheckedException { + boolean loc, QueryFilter filters, GridQueryCancel cancel) throws IgniteCheckedException { Object[] errKeys = null; long items = 0; @@ -245,7 +245,7 @@ QueryCursorImpl> updateSqlFieldsDistributed(String schemaName, Prepared */ @SuppressWarnings("unchecked") GridQueryFieldsResult updateSqlFieldsLocal(String schemaName, PreparedStatement stmt, - SqlFieldsQuery fieldsQry, IndexingQueryFilter filters, GridQueryCancel cancel) + SqlFieldsQuery fieldsQry, QueryFilter filters, GridQueryCancel cancel) throws IgniteCheckedException { UpdateResult res = updateSqlFields(schemaName, GridSqlQueryParser.prepared(stmt), fieldsQry, true, filters, cancel); @@ -351,7 +351,7 @@ long streamUpdateQuery(IgniteDataStreamer streamer, PreparedStatement stmt, Obje */ @SuppressWarnings({"ConstantConditions", "unchecked"}) private UpdateResult executeUpdateStatement(String schemaName, final GridCacheContext cctx, - Prepared prepared, SqlFieldsQuery fieldsQry, boolean loc, IndexingQueryFilter filters, + Prepared prepared, SqlFieldsQuery fieldsQry, boolean loc, QueryFilter filters, GridQueryCancel cancel, Object[] failedKeys) throws IgniteCheckedException { int mainCacheId = CU.cacheId(cctx.name()); diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java index e09108d7a01db..b5109b7dd2ed0 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java @@ -21,7 +21,7 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row; import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; +import org.apache.ignite.spi.indexing.QueryCacheFilter; import org.h2.index.Cursor; import org.h2.message.DbException; import org.h2.result.Row; @@ -35,7 +35,7 @@ public class H2Cursor implements Cursor { private final GridCursor cursor; /** */ - private final IndexingQueryCacheFilter filter; + private final QueryCacheFilter filter; /** */ private final long time = U.currentTimeMillis(); @@ -44,7 +44,7 @@ public class H2Cursor implements Cursor { * @param cursor Cursor. * @param filter Filter. */ - public H2Cursor(GridCursor cursor, IndexingQueryCacheFilter filter) { + public H2Cursor(GridCursor cursor, QueryCacheFilter filter) { assert cursor != null; this.cursor = cursor; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java index ca5958bab953f..58653b352dc15 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java @@ -135,8 +135,8 @@ import org.apache.ignite.marshaller.jdk.JdkMarshaller; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.resources.LoggerResource; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryFilterImpl; +import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.QueryFilterImpl; import org.h2.api.ErrorCode; import org.h2.api.JavaObjectSerializer; import org.h2.command.Prepared; @@ -778,7 +778,7 @@ public GridH2IndexBase createSortedIndex(String name, GridH2Table tbl, boolean p /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public GridCloseableIterator> queryLocalText(String schemaName, - String cacheName, String qry, String typeName, IndexingQueryFilter filters) throws IgniteCheckedException { + String cacheName, String qry, String typeName, QueryFilter filters) throws IgniteCheckedException { H2TableDescriptor tbl = tableDescriptor(schemaName, cacheName, typeName); if (tbl != null && tbl.luceneIndex() != null) { @@ -813,7 +813,7 @@ public GridH2IndexBase createSortedIndex(String name, GridH2Table tbl, boolean p */ @SuppressWarnings("unchecked") public GridQueryFieldsResult queryLocalSqlFields(final String schemaName, final String qry, - @Nullable final Collection params, final IndexingQueryFilter filter, boolean enforceJoinOrder, + @Nullable final Collection params, final QueryFilter filter, boolean enforceJoinOrder, final int timeout, final GridQueryCancel cancel) throws IgniteCheckedException { final Connection conn = connectionForSchema(schemaName); @@ -1072,7 +1072,7 @@ public void bindParameters(PreparedStatement stmt, /** {@inheritDoc} */ @Override public FieldsQueryCursor> queryLocalSqlFields(String schemaName, SqlFieldsQuery qry, - final boolean keepBinary, IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { + final boolean keepBinary, QueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { String sql = qry.getSql(); Object[] args = qry.getArgs(); @@ -1098,7 +1098,7 @@ public void bindParameters(PreparedStatement stmt, /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public QueryCursor> queryLocalSql(String schemaName, String cacheName, - final SqlQuery qry, final IndexingQueryFilter filter, final boolean keepBinary) throws IgniteCheckedException { + final SqlQuery qry, final QueryFilter filter, final boolean keepBinary) throws IgniteCheckedException { String type = qry.getType(); String sqlQry = qry.getSql(); String alias = qry.getAlias(); @@ -1152,7 +1152,7 @@ public void bindParameters(PreparedStatement stmt, @SuppressWarnings("unchecked") public GridCloseableIterator> queryLocalSql(String schemaName, String cacheName, final String qry, String alias, @Nullable final Collection params, String type, - final IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { + final QueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { final H2TableDescriptor tbl = tableDescriptor(schemaName, cacheName, type); if (tbl == null) @@ -2346,9 +2346,9 @@ public void clearCachedQueries() { } /** {@inheritDoc} */ - @Override public IndexingQueryFilter backupFilter(@Nullable final AffinityTopologyVersion topVer, + @Override public QueryFilter backupFilter(@Nullable final AffinityTopologyVersion topVer, @Nullable final int[] parts) { - return new IndexingQueryFilterImpl(ctx, topVer, parts); + return new QueryFilterImpl(ctx, topVer, parts); } /** diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java index 6691485420df0..2ca78942c8d21 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java @@ -31,8 +31,8 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row; import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table; import org.apache.ignite.internal.util.lang.GridCursor; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; +import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.QueryCacheFilter; import org.h2.engine.Session; import org.h2.index.Cursor; import org.h2.index.IndexType; @@ -84,8 +84,8 @@ public H2PkHashIndex( /** {@inheritDoc} */ @Override public Cursor find(Session ses, final SearchRow lower, final SearchRow upper) { - IndexingQueryFilter f = threadLocalFilter(); - IndexingQueryCacheFilter p = null; + QueryFilter f = threadLocalFilter(); + QueryCacheFilter p = null; if (f != null) { String cacheName = getTable().cacheName(); @@ -179,13 +179,13 @@ private class H2Cursor implements Cursor { final GridCursor cursor; /** */ - final IndexingQueryCacheFilter filter; + final QueryCacheFilter filter; /** * @param cursor Cursor. * @param filter Filter. */ - private H2Cursor(GridCursor cursor, IndexingQueryCacheFilter filter) { + private H2Cursor(GridCursor cursor, QueryCacheFilter filter) { assert cursor != null; this.cursor = cursor; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java index 1a3ea4acbe8e5..bd2e44b3a6ed1 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java @@ -34,8 +34,8 @@ import org.apache.ignite.internal.util.IgniteTree; import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; +import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.QueryCacheFilter; import org.h2.engine.Session; import org.h2.index.Cursor; import org.h2.index.IndexType; @@ -165,8 +165,8 @@ private List getAvailableInlineColumns(IndexColumn[] cols) { /** {@inheritDoc} */ @Override public Cursor find(Session ses, SearchRow lower, SearchRow upper) { try { - IndexingQueryFilter f = threadLocalFilter(); - IndexingQueryCacheFilter p = null; + QueryFilter f = threadLocalFilter(); + QueryCacheFilter p = null; if (f != null) { String cacheName = getTable().cacheName(); @@ -323,7 +323,7 @@ private List getAvailableInlineColumns(IndexColumn[] cols) { @Nullable SearchRow first, boolean includeFirst, @Nullable SearchRow last, - IndexingQueryFilter filter) { + QueryFilter filter) { try { GridCursor range = t.find(first, last); diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java index 92b7d108da414..e87868c4f4e82 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java @@ -45,8 +45,8 @@ import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.logger.NullLogger; import org.apache.ignite.plugin.extensions.communication.Message; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; +import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.QueryCacheFilter; import org.h2.engine.Session; import org.h2.index.BaseIndex; import org.h2.index.Cursor; @@ -267,14 +267,14 @@ public final int getDistributedMultiplier(Session ses, TableFilter[] filters, in * @param filter Optional filter. * @return Filtered iterator. */ - protected GridCursor filter(GridCursor cursor, IndexingQueryFilter filter) { + protected GridCursor filter(GridCursor cursor, QueryFilter filter) { return new FilteringCursor(cursor, U.currentTimeMillis(), filter, getTable().cacheName()); } /** * @return Filter for currently running query or {@code null} if none. */ - protected static IndexingQueryFilter threadLocalFilter() { + protected static QueryFilter threadLocalFilter() { GridH2QueryContext qctx = GridH2QueryContext.get(); return qctx != null ? qctx.filter() : null; @@ -1467,7 +1467,7 @@ private class RangeSource { private final int segment; /** */ - final IndexingQueryFilter filter; + final QueryFilter filter; /** Iterator. */ Iterator iter = emptyIterator(); @@ -1479,7 +1479,7 @@ private class RangeSource { RangeSource( Iterable bounds, int segment, - IndexingQueryFilter filter + QueryFilter filter ) { this.segment = segment; this.filter = filter; @@ -1575,7 +1575,7 @@ protected GridCursor doFind0( @Nullable SearchRow first, boolean includeFirst, @Nullable SearchRow last, - IndexingQueryFilter filter) { + QueryFilter filter) { throw new UnsupportedOperationException(); } @@ -1587,7 +1587,7 @@ protected static class FilteringCursor implements GridCursor { private final GridCursor cursor; /** */ - private final IndexingQueryCacheFilter fltr; + private final QueryCacheFilter fltr; /** */ private final long time; @@ -1601,7 +1601,7 @@ protected static class FilteringCursor implements GridCursor { * @param qryFilter Filter. * @param cacheName Cache name. */ - protected FilteringCursor(GridCursor cursor, long time, IndexingQueryFilter qryFilter, + protected FilteringCursor(GridCursor cursor, long time, QueryFilter qryFilter, String cacheName) { this.cursor = cursor; this.time = time; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java index 91f0aeff6a87b..f95ab67ec7b37 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java @@ -27,7 +27,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.GridReservable; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.S; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -63,7 +63,7 @@ public class GridH2QueryContext { private int batchLookupIdGen; /** */ - private IndexingQueryFilter filter; + private QueryFilter filter; /** */ private AffinityTopologyVersion topVer; @@ -452,7 +452,7 @@ public static void clearLocalNodeStop(UUID locNodeId) { /** * @return Filter. */ - public IndexingQueryFilter filter() { + public QueryFilter filter() { return filter; } @@ -460,7 +460,7 @@ public IndexingQueryFilter filter() { * @param filter Filter. * @return {@code this}. */ - public GridH2QueryContext filter(IndexingQueryFilter filter) { + public GridH2QueryContext filter(QueryFilter filter) { this.filter = filter; return this; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java index b5d2456612df5..0b0e616537dda 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java @@ -33,8 +33,8 @@ import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; -import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; +import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.QueryCacheFilter; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -242,7 +242,7 @@ public void remove(CacheObject key) throws IgniteCheckedException { * @throws IgniteCheckedException If failed. */ public GridCloseableIterator> query(String qry, - IndexingQueryFilter filters) throws IgniteCheckedException { + QueryFilter filters) throws IgniteCheckedException { IndexReader reader; try { @@ -290,7 +290,7 @@ public GridCloseableIterator> query(String qry, throw new IgniteCheckedException(e); } - IndexingQueryCacheFilter fltr = null; + QueryCacheFilter fltr = null; if (filters != null) fltr = filters.forCache(cacheName); @@ -321,7 +321,7 @@ private class It extends GridCloseableIteratorAdapter> private final ScoreDoc[] docs; /** */ - private final IndexingQueryCacheFilter filters; + private final QueryCacheFilter filters; /** */ private int idx; @@ -341,7 +341,7 @@ private class It extends GridCloseableIteratorAdapter> * @param filters Filters over result. * @throws IgniteCheckedException if failed. */ - private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, IndexingQueryCacheFilter filters) + private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, QueryCacheFilter filters) throws IgniteCheckedException { this.reader = reader; this.searcher = searcher; diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java index 13c0cb2c5e73d..050a50a12e5a0 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java @@ -41,7 +41,7 @@ import org.apache.ignite.spi.IgniteSpiAdapter; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; -import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.QueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.jetbrains.annotations.Nullable; @@ -192,7 +192,7 @@ private static class TestIndexingSpi extends IgniteSpiAdapter implements Indexin /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable IndexingQueryFilter filters) { + @Nullable QueryFilter filters) { return idx.containsKey(GridIoPolicy.QUERY_POOL) ? Collections.>singletonList( new CacheEntryImpl<>(GridIoPolicy.QUERY_POOL, GridIoPolicy.QUERY_POOL)).iterator() From e55e4a6e22c558fc5f47027afa93db8f1c18c487 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 16:36:15 +0300 Subject: [PATCH 12/14] Returned old class. --- .../spi/indexing/IndexingQueryFilter.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java new file mode 100644 index 0000000000000..74d349a459348 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.spi.indexing; + +import org.apache.ignite.lang.IgniteBiPredicate; +import org.jetbrains.annotations.Nullable; + +/** + * Cache entry filter. + */ +public interface IndexingQueryFilter { + /** + * Creates optional predicate for cache. + * + * @param cacheName Cache name. + * @return Predicate or {@code null} if no filtering is needed. + */ + @Nullable public IgniteBiPredicate forCache(String cacheName); + + /** + * Is the value required for filtering logic? + * If false then null instead of value will be passed + * to IgniteBiPredicate returned by {@link #forCache(String)} method. + * + * @return true if value is required for filtering, false otherwise. + */ + public boolean isValueRequired(); +} \ No newline at end of file From da60e04a78c9261059b3810a7454bc882a563569 Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 16:40:35 +0300 Subject: [PATCH 13/14] Revert "Returned old class." This reverts commit e55e4a6e22c558fc5f47027afa93db8f1c18c487. --- .../spi/indexing/IndexingQueryFilter.java | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java deleted file mode 100644 index 74d349a459348..0000000000000 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.spi.indexing; - -import org.apache.ignite.lang.IgniteBiPredicate; -import org.jetbrains.annotations.Nullable; - -/** - * Cache entry filter. - */ -public interface IndexingQueryFilter { - /** - * Creates optional predicate for cache. - * - * @param cacheName Cache name. - * @return Predicate or {@code null} if no filtering is needed. - */ - @Nullable public IgniteBiPredicate forCache(String cacheName); - - /** - * Is the value required for filtering logic? - * If false then null instead of value will be passed - * to IgniteBiPredicate returned by {@link #forCache(String)} method. - * - * @return true if value is required for filtering, false otherwise. - */ - public boolean isValueRequired(); -} \ No newline at end of file From 6689035ea3b1808918a36a189720c53d130c380f Mon Sep 17 00:00:00 2001 From: devozerov Date: Thu, 12 Oct 2017 16:40:45 +0300 Subject: [PATCH 14/14] Revert "COMPATIBILITY: rename current class." This reverts commit 71b235cad60a994294762f866987ee3862e00a45. --- .../managers/indexing/GridIndexingManager.java | 5 +++-- .../cache/query/GridCacheQueryManager.java | 8 ++++---- .../processors/query/GridQueryIndexing.java | 10 +++++----- .../processors/query/GridQueryProcessor.java | 6 +++--- ...lter.java => IndexingQueryCacheFilter.java} | 4 ++-- ...eryFilter.java => IndexingQueryFilter.java} | 4 ++-- ...rImpl.java => IndexingQueryFilterImpl.java} | 8 ++++---- .../ignite/spi/indexing/IndexingSpi.java | 2 +- .../spi/indexing/noop/NoopIndexingSpi.java | 4 ++-- ...gniteClientCacheInitializationFailTest.java | 10 +++++----- .../IgniteTxExceptionAbstractSelfTest.java | 4 ++-- .../cache/query/IndexingSpiQuerySelfTest.java | 4 ++-- .../query/IndexingSpiQueryTxSelfTest.java | 4 ++-- .../query/h2/DmlStatementsProcessor.java | 8 ++++---- .../internal/processors/query/h2/H2Cursor.java | 6 +++--- .../processors/query/h2/IgniteH2Indexing.java | 18 +++++++++--------- .../query/h2/database/H2PkHashIndex.java | 12 ++++++------ .../query/h2/database/H2TreeIndex.java | 10 +++++----- .../query/h2/opt/GridH2IndexBase.java | 18 +++++++++--------- .../query/h2/opt/GridH2QueryContext.java | 8 ++++---- .../query/h2/opt/GridLuceneIndex.java | 12 ++++++------ .../query/IgniteQueryDedicatedPoolTest.java | 4 ++-- 22 files changed, 85 insertions(+), 84 deletions(-) rename modules/core/src/main/java/org/apache/ignite/spi/indexing/{QueryCacheFilter.java => IndexingQueryCacheFilter.java} (94%) rename modules/core/src/main/java/org/apache/ignite/spi/indexing/{QueryFilter.java => IndexingQueryFilter.java} (90%) rename modules/core/src/main/java/org/apache/ignite/spi/indexing/{QueryFilterImpl.java => IndexingQueryFilterImpl.java} (87%) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java index 7863bcf95047d..f1f8f873ff238 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java @@ -26,7 +26,8 @@ import org.apache.ignite.internal.util.GridEmptyCloseableIterator; import org.apache.ignite.internal.util.GridSpinBusyLock; import org.apache.ignite.spi.IgniteSpiCloseableIterator; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.IgniteSpiException; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; /** @@ -134,7 +135,7 @@ public void remove(String cacheName, Object key) throws IgniteCheckedException { * @throws IgniteCheckedException If failed. */ @SuppressWarnings("unchecked") - public IgniteSpiCloseableIterator query(String cacheName, Collection params, QueryFilter filters) + public IgniteSpiCloseableIterator query(String cacheName, Collection params, IndexingQueryFilter filters) throws IgniteCheckedException { if (!enabled()) throw new IgniteCheckedException("Indexing SPI is not configured."); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java index f02a40c7e7f40..392b19f5e3ff4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java @@ -118,8 +118,8 @@ import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.resources.IgniteInstanceResource; import org.apache.ignite.spi.IgniteSpiCloseableIterator; -import org.apache.ignite.spi.indexing.QueryFilter; -import org.apache.ignite.spi.indexing.QueryFilterImpl; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilterImpl; import org.apache.ignite.spi.indexing.IndexingSpi; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -1995,11 +1995,11 @@ public AffinityTopologyVersion queryTopologyVersion() { * @param qry Query. * @return Filter. */ - private QueryFilter filter(GridCacheQueryAdapter qry) { + private IndexingQueryFilter filter(GridCacheQueryAdapter qry) { if (qry.includeBackups()) return null; - return new QueryFilterImpl(cctx.kernalContext(), AffinityTopologyVersion.NONE, null); + return new IndexingQueryFilterImpl(cctx.kernalContext(), AffinityTopologyVersion.NONE, null); } /** diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java index 45d00a5b48eb2..93d541d480523 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java @@ -39,7 +39,7 @@ import org.apache.ignite.internal.util.lang.GridCloseableIterator; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteFuture; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.jetbrains.annotations.Nullable; /** @@ -115,7 +115,7 @@ public long streamUpdateQuery(String schemaName, String qry, @Nullable Object[] * @param keepBinary Keep binary flag. @return Cursor. */ public QueryCursor> queryLocalSql(String schemaName, String cacheName, SqlQuery qry, - QueryFilter filter, boolean keepBinary) throws IgniteCheckedException; + IndexingQueryFilter filter, boolean keepBinary) throws IgniteCheckedException; /** * Queries individual fields (generally used by JDBC drivers). @@ -128,7 +128,7 @@ public QueryCursor> queryLocalSql(String schemaName, Str * @return Cursor. */ public FieldsQueryCursor> queryLocalSqlFields(String schemaName, SqlFieldsQuery qry, - boolean keepBinary, QueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException; + boolean keepBinary, IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException; /** * Executes text query. @@ -141,7 +141,7 @@ public FieldsQueryCursor> queryLocalSqlFields(String schemaName, SqlFiel * @throws IgniteCheckedException If failed. */ public GridCloseableIterator> queryLocalText(String schemaName, String cacheName, - String qry, String typeName, QueryFilter filter) throws IgniteCheckedException; + String qry, String typeName, IndexingQueryFilter filter) throws IgniteCheckedException; /** * Create new index locally. @@ -260,7 +260,7 @@ public void remove(String cacheName, GridQueryTypeDescriptor type, KeyCacheObjec * @param parts Partitions. * @return Backup filter. */ - public QueryFilter backupFilter(AffinityTopologyVersion topVer, int[] parts); + public IndexingQueryFilter backupFilter(AffinityTopologyVersion topVer, int[] parts); /** * Client disconnected callback. diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java index f7d6921498f1c..3a1cdb7cc16a8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java @@ -109,7 +109,7 @@ import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.marshaller.jdk.JdkMarshaller; import org.apache.ignite.spi.discovery.DiscoveryDataBag; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.apache.ignite.thread.IgniteThread; import org.jetbrains.annotations.Nullable; @@ -1888,7 +1888,7 @@ public FieldsQueryCursor> querySqlFields(final GridCacheContext cct keepBinary, cancel, mainCacheId, true).get(0); } else { - QueryFilter filter = idx.backupFilter(requestTopVer.get(), qry.getPartitions()); + IndexingQueryFilter filter = idx.backupFilter(requestTopVer.get(), qry.getPartitions()); cur = idx.queryLocalSqlFields(schemaName, qry, keepBinary, filter, cancel); } @@ -2346,7 +2346,7 @@ public void remove(String cacheName, KeyCacheObject key, int partId, CacheObject */ @SuppressWarnings("unchecked") public GridCloseableIterator> queryText(final String cacheName, final String clause, - final String resType, final QueryFilter filters) throws IgniteCheckedException { + final String resType, final IndexingQueryFilter filters) throws IgniteCheckedException { checkEnabled(); if (!busyLock.enterBusy()) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryCacheFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java similarity index 94% rename from modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryCacheFilter.java rename to modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java index caabae966d10d..6257f47e2f516 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryCacheFilter.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryCacheFilter.java @@ -26,7 +26,7 @@ /** * Indexing query filter for specific cache. */ -public class QueryCacheFilter { +public class IndexingQueryCacheFilter { /** Affinity manager. */ private final GridCacheAffinityManager aff; @@ -47,7 +47,7 @@ public class QueryCacheFilter { * @param topVer Topology version. * @param locNode Local node. */ - public QueryCacheFilter(GridCacheAffinityManager aff, Set parts, + public IndexingQueryCacheFilter(GridCacheAffinityManager aff, Set parts, AffinityTopologyVersion topVer, ClusterNode locNode) { this.aff = aff; this.parts = parts; diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java similarity index 90% rename from modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilter.java rename to modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java index 90b62af4ddf1d..b0d969384f0e0 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilter.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java @@ -22,12 +22,12 @@ /** * Cache entry filter. */ -public interface QueryFilter { +public interface IndexingQueryFilter { /** * Creates optional predicate for cache. * * @param cacheName Cache name. * @return Predicate or {@code null} if no filtering is needed. */ - @Nullable public QueryCacheFilter forCache(String cacheName); + @Nullable public IndexingQueryCacheFilter forCache(String cacheName); } \ No newline at end of file diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilterImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java similarity index 87% rename from modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilterImpl.java rename to modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java index 489d2950ba8a6..53dcbf634aaf4 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/QueryFilterImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilterImpl.java @@ -28,7 +28,7 @@ /** * Indexing query filter. */ -public class QueryFilterImpl implements QueryFilter { +public class IndexingQueryFilterImpl implements IndexingQueryFilter { /** Kernal context. */ private final GridKernalContext ctx; @@ -45,7 +45,7 @@ public class QueryFilterImpl implements QueryFilter { * @param topVer Topology version. * @param partsArr Partitions array. */ - public QueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopologyVersion topVer, + public IndexingQueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopologyVersion topVer, @Nullable int[] partsArr) { this.ctx = ctx; @@ -62,7 +62,7 @@ public QueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopologyVersion } /** {@inheritDoc} */ - @Nullable @Override public QueryCacheFilter forCache(String cacheName) { + @Nullable @Override public IndexingQueryCacheFilter forCache(String cacheName) { final GridCacheAdapter cache = ctx.cache().internalCache(cacheName); // REPLICATED -> nothing to filter (explicit partitions are not supported). @@ -73,7 +73,7 @@ public QueryFilterImpl(GridKernalContext ctx, @Nullable AffinityTopologyVersion if (cache.configuration().getBackups() == 0 && parts == null) return null; - return new QueryCacheFilter(cache.context().affinity(), parts, topVer, + return new IndexingQueryCacheFilter(cache.context().affinity(), parts, topVer, ctx.discovery().localNode()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java index 2d534dd5de32d..8ec4a67a77da4 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java @@ -72,7 +72,7 @@ public interface IndexingSpi extends IgniteSpi { * @throws IgniteSpiException If failed. */ public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable QueryFilter filters) throws IgniteSpiException; + @Nullable IndexingQueryFilter filters) throws IgniteSpiException; /** * Updates index. Note that key is unique for cache, so if cache contains multiple indexes diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/noop/NoopIndexingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/noop/NoopIndexingSpi.java index 2689a828e6dbe..5677f553f0d1e 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/indexing/noop/NoopIndexingSpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/noop/NoopIndexingSpi.java @@ -23,7 +23,7 @@ import org.apache.ignite.spi.IgniteSpiAdapter; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.IgniteSpiNoop; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.jetbrains.annotations.Nullable; @@ -34,7 +34,7 @@ public class NoopIndexingSpi extends IgniteSpiAdapter implements IndexingSpi { /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable QueryFilter filters) throws IgniteSpiException { + @Nullable IndexingQueryFilter filters) throws IgniteSpiException { throw new IgniteSpiException("You have to configure custom GridIndexingSpi implementation."); } diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java index 9997e523bea12..83dd9c94c29f1 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java @@ -56,7 +56,7 @@ import org.apache.ignite.internal.util.lang.GridCloseableIterator; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteFuture; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.jetbrains.annotations.Nullable; @@ -256,19 +256,19 @@ private static class FailedIndexing implements GridQueryIndexing { /** {@inheritDoc} */ @Override public QueryCursor> queryLocalSql(String schemaName, String cacheName, - SqlQuery qry, QueryFilter filter, boolean keepBinary) throws IgniteCheckedException { + SqlQuery qry, IndexingQueryFilter filter, boolean keepBinary) throws IgniteCheckedException { return null; } /** {@inheritDoc} */ @Override public FieldsQueryCursor> queryLocalSqlFields(String schemaName, SqlFieldsQuery qry, - boolean keepBinary, QueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { + boolean keepBinary, IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { return null; } /** {@inheritDoc} */ @Override public GridCloseableIterator> queryLocalText(String spaceName, - String cacheName, String qry, String typeName, QueryFilter filter) throws IgniteCheckedException { + String cacheName, String qry, String typeName, IndexingQueryFilter filter) throws IgniteCheckedException { return null; } @@ -332,7 +332,7 @@ private static class FailedIndexing implements GridQueryIndexing { } /** {@inheritDoc} */ - @Override public QueryFilter backupFilter(AffinityTopologyVersion topVer, int[] parts) { + @Override public IndexingQueryFilter backupFilter(AffinityTopologyVersion topVer, int[] parts) { return null; } diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxExceptionAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxExceptionAbstractSelfTest.java index 7141eca02f250..ac294b05067fb 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxExceptionAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxExceptionAbstractSelfTest.java @@ -38,7 +38,7 @@ import org.apache.ignite.internal.util.typedef.PA; import org.apache.ignite.spi.IgniteSpiAdapter; import org.apache.ignite.spi.IgniteSpiException; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.transactions.Transaction; @@ -665,7 +665,7 @@ public static void forceFail(boolean failFlag) { /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable QueryFilter filters) throws IgniteSpiException { + @Nullable IndexingQueryFilter filters) throws IgniteSpiException { throw new UnsupportedOperationException(); } diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java index bf2d8835fa067..b6e32d57cee76 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java @@ -44,7 +44,7 @@ import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.transactions.Transaction; @@ -255,7 +255,7 @@ private static class MyIndexingSpi extends IgniteSpiAdapter implements IndexingS /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable QueryFilter filters) throws IgniteSpiException { + @Nullable IndexingQueryFilter filters) throws IgniteSpiException { if (params.size() < 2) throw new IgniteSpiException("Range parameters required."); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java index dbc181f74910d..e59deed2eb767 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java @@ -28,7 +28,7 @@ import org.apache.ignite.spi.IgniteSpiAdapter; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.transactions.Transaction; @@ -134,7 +134,7 @@ private static class MyBrokenIndexingSpi extends IgniteSpiAdapter implements Ind /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable QueryFilter filters) throws IgniteSpiException { + @Nullable IndexingQueryFilter filters) throws IgniteSpiException { return null; } diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java index a377680a04277..98117b2dfe6d7 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java @@ -78,7 +78,7 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteInClosure; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.h2.command.Prepared; import org.h2.command.dml.Delete; import org.h2.command.dml.Insert; @@ -159,7 +159,7 @@ public void onCacheStop(String cacheName) { * @throws IgniteCheckedException if failed. */ private UpdateResult updateSqlFields(String schemaName, Prepared prepared, SqlFieldsQuery fieldsQry, - boolean loc, QueryFilter filters, GridQueryCancel cancel) throws IgniteCheckedException { + boolean loc, IndexingQueryFilter filters, GridQueryCancel cancel) throws IgniteCheckedException { Object[] errKeys = null; long items = 0; @@ -245,7 +245,7 @@ QueryCursorImpl> updateSqlFieldsDistributed(String schemaName, Prepared */ @SuppressWarnings("unchecked") GridQueryFieldsResult updateSqlFieldsLocal(String schemaName, PreparedStatement stmt, - SqlFieldsQuery fieldsQry, QueryFilter filters, GridQueryCancel cancel) + SqlFieldsQuery fieldsQry, IndexingQueryFilter filters, GridQueryCancel cancel) throws IgniteCheckedException { UpdateResult res = updateSqlFields(schemaName, GridSqlQueryParser.prepared(stmt), fieldsQry, true, filters, cancel); @@ -351,7 +351,7 @@ long streamUpdateQuery(IgniteDataStreamer streamer, PreparedStatement stmt, Obje */ @SuppressWarnings({"ConstantConditions", "unchecked"}) private UpdateResult executeUpdateStatement(String schemaName, final GridCacheContext cctx, - Prepared prepared, SqlFieldsQuery fieldsQry, boolean loc, QueryFilter filters, + Prepared prepared, SqlFieldsQuery fieldsQry, boolean loc, IndexingQueryFilter filters, GridQueryCancel cancel, Object[] failedKeys) throws IgniteCheckedException { int mainCacheId = CU.cacheId(cctx.name()); diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java index b5109b7dd2ed0..e09108d7a01db 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java @@ -21,7 +21,7 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row; import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.spi.indexing.QueryCacheFilter; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.h2.index.Cursor; import org.h2.message.DbException; import org.h2.result.Row; @@ -35,7 +35,7 @@ public class H2Cursor implements Cursor { private final GridCursor cursor; /** */ - private final QueryCacheFilter filter; + private final IndexingQueryCacheFilter filter; /** */ private final long time = U.currentTimeMillis(); @@ -44,7 +44,7 @@ public class H2Cursor implements Cursor { * @param cursor Cursor. * @param filter Filter. */ - public H2Cursor(GridCursor cursor, QueryCacheFilter filter) { + public H2Cursor(GridCursor cursor, IndexingQueryCacheFilter filter) { assert cursor != null; this.cursor = cursor; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java index 58653b352dc15..ca5958bab953f 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java @@ -135,8 +135,8 @@ import org.apache.ignite.marshaller.jdk.JdkMarshaller; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.resources.LoggerResource; -import org.apache.ignite.spi.indexing.QueryFilter; -import org.apache.ignite.spi.indexing.QueryFilterImpl; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilterImpl; import org.h2.api.ErrorCode; import org.h2.api.JavaObjectSerializer; import org.h2.command.Prepared; @@ -778,7 +778,7 @@ public GridH2IndexBase createSortedIndex(String name, GridH2Table tbl, boolean p /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public GridCloseableIterator> queryLocalText(String schemaName, - String cacheName, String qry, String typeName, QueryFilter filters) throws IgniteCheckedException { + String cacheName, String qry, String typeName, IndexingQueryFilter filters) throws IgniteCheckedException { H2TableDescriptor tbl = tableDescriptor(schemaName, cacheName, typeName); if (tbl != null && tbl.luceneIndex() != null) { @@ -813,7 +813,7 @@ public GridH2IndexBase createSortedIndex(String name, GridH2Table tbl, boolean p */ @SuppressWarnings("unchecked") public GridQueryFieldsResult queryLocalSqlFields(final String schemaName, final String qry, - @Nullable final Collection params, final QueryFilter filter, boolean enforceJoinOrder, + @Nullable final Collection params, final IndexingQueryFilter filter, boolean enforceJoinOrder, final int timeout, final GridQueryCancel cancel) throws IgniteCheckedException { final Connection conn = connectionForSchema(schemaName); @@ -1072,7 +1072,7 @@ public void bindParameters(PreparedStatement stmt, /** {@inheritDoc} */ @Override public FieldsQueryCursor> queryLocalSqlFields(String schemaName, SqlFieldsQuery qry, - final boolean keepBinary, QueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { + final boolean keepBinary, IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { String sql = qry.getSql(); Object[] args = qry.getArgs(); @@ -1098,7 +1098,7 @@ public void bindParameters(PreparedStatement stmt, /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public QueryCursor> queryLocalSql(String schemaName, String cacheName, - final SqlQuery qry, final QueryFilter filter, final boolean keepBinary) throws IgniteCheckedException { + final SqlQuery qry, final IndexingQueryFilter filter, final boolean keepBinary) throws IgniteCheckedException { String type = qry.getType(); String sqlQry = qry.getSql(); String alias = qry.getAlias(); @@ -1152,7 +1152,7 @@ public void bindParameters(PreparedStatement stmt, @SuppressWarnings("unchecked") public GridCloseableIterator> queryLocalSql(String schemaName, String cacheName, final String qry, String alias, @Nullable final Collection params, String type, - final QueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { + final IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException { final H2TableDescriptor tbl = tableDescriptor(schemaName, cacheName, type); if (tbl == null) @@ -2346,9 +2346,9 @@ public void clearCachedQueries() { } /** {@inheritDoc} */ - @Override public QueryFilter backupFilter(@Nullable final AffinityTopologyVersion topVer, + @Override public IndexingQueryFilter backupFilter(@Nullable final AffinityTopologyVersion topVer, @Nullable final int[] parts) { - return new QueryFilterImpl(ctx, topVer, parts); + return new IndexingQueryFilterImpl(ctx, topVer, parts); } /** diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java index 2ca78942c8d21..6691485420df0 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java @@ -31,8 +31,8 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row; import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table; import org.apache.ignite.internal.util.lang.GridCursor; -import org.apache.ignite.spi.indexing.QueryFilter; -import org.apache.ignite.spi.indexing.QueryCacheFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.h2.engine.Session; import org.h2.index.Cursor; import org.h2.index.IndexType; @@ -84,8 +84,8 @@ public H2PkHashIndex( /** {@inheritDoc} */ @Override public Cursor find(Session ses, final SearchRow lower, final SearchRow upper) { - QueryFilter f = threadLocalFilter(); - QueryCacheFilter p = null; + IndexingQueryFilter f = threadLocalFilter(); + IndexingQueryCacheFilter p = null; if (f != null) { String cacheName = getTable().cacheName(); @@ -179,13 +179,13 @@ private class H2Cursor implements Cursor { final GridCursor cursor; /** */ - final QueryCacheFilter filter; + final IndexingQueryCacheFilter filter; /** * @param cursor Cursor. * @param filter Filter. */ - private H2Cursor(GridCursor cursor, QueryCacheFilter filter) { + private H2Cursor(GridCursor cursor, IndexingQueryCacheFilter filter) { assert cursor != null; this.cursor = cursor; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java index bd2e44b3a6ed1..1a3ea4acbe8e5 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java @@ -34,8 +34,8 @@ import org.apache.ignite.internal.util.IgniteTree; import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.spi.indexing.QueryFilter; -import org.apache.ignite.spi.indexing.QueryCacheFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.h2.engine.Session; import org.h2.index.Cursor; import org.h2.index.IndexType; @@ -165,8 +165,8 @@ private List getAvailableInlineColumns(IndexColumn[] cols) { /** {@inheritDoc} */ @Override public Cursor find(Session ses, SearchRow lower, SearchRow upper) { try { - QueryFilter f = threadLocalFilter(); - QueryCacheFilter p = null; + IndexingQueryFilter f = threadLocalFilter(); + IndexingQueryCacheFilter p = null; if (f != null) { String cacheName = getTable().cacheName(); @@ -323,7 +323,7 @@ private List getAvailableInlineColumns(IndexColumn[] cols) { @Nullable SearchRow first, boolean includeFirst, @Nullable SearchRow last, - QueryFilter filter) { + IndexingQueryFilter filter) { try { GridCursor range = t.find(first, last); diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java index e87868c4f4e82..92b7d108da414 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java @@ -45,8 +45,8 @@ import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.logger.NullLogger; import org.apache.ignite.plugin.extensions.communication.Message; -import org.apache.ignite.spi.indexing.QueryFilter; -import org.apache.ignite.spi.indexing.QueryCacheFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.h2.engine.Session; import org.h2.index.BaseIndex; import org.h2.index.Cursor; @@ -267,14 +267,14 @@ public final int getDistributedMultiplier(Session ses, TableFilter[] filters, in * @param filter Optional filter. * @return Filtered iterator. */ - protected GridCursor filter(GridCursor cursor, QueryFilter filter) { + protected GridCursor filter(GridCursor cursor, IndexingQueryFilter filter) { return new FilteringCursor(cursor, U.currentTimeMillis(), filter, getTable().cacheName()); } /** * @return Filter for currently running query or {@code null} if none. */ - protected static QueryFilter threadLocalFilter() { + protected static IndexingQueryFilter threadLocalFilter() { GridH2QueryContext qctx = GridH2QueryContext.get(); return qctx != null ? qctx.filter() : null; @@ -1467,7 +1467,7 @@ private class RangeSource { private final int segment; /** */ - final QueryFilter filter; + final IndexingQueryFilter filter; /** Iterator. */ Iterator iter = emptyIterator(); @@ -1479,7 +1479,7 @@ private class RangeSource { RangeSource( Iterable bounds, int segment, - QueryFilter filter + IndexingQueryFilter filter ) { this.segment = segment; this.filter = filter; @@ -1575,7 +1575,7 @@ protected GridCursor doFind0( @Nullable SearchRow first, boolean includeFirst, @Nullable SearchRow last, - QueryFilter filter) { + IndexingQueryFilter filter) { throw new UnsupportedOperationException(); } @@ -1587,7 +1587,7 @@ protected static class FilteringCursor implements GridCursor { private final GridCursor cursor; /** */ - private final QueryCacheFilter fltr; + private final IndexingQueryCacheFilter fltr; /** */ private final long time; @@ -1601,7 +1601,7 @@ protected static class FilteringCursor implements GridCursor { * @param qryFilter Filter. * @param cacheName Cache name. */ - protected FilteringCursor(GridCursor cursor, long time, QueryFilter qryFilter, + protected FilteringCursor(GridCursor cursor, long time, IndexingQueryFilter qryFilter, String cacheName) { this.cursor = cursor; this.time = time; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java index f95ab67ec7b37..91f0aeff6a87b 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java @@ -27,7 +27,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.GridReservable; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.S; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -63,7 +63,7 @@ public class GridH2QueryContext { private int batchLookupIdGen; /** */ - private QueryFilter filter; + private IndexingQueryFilter filter; /** */ private AffinityTopologyVersion topVer; @@ -452,7 +452,7 @@ public static void clearLocalNodeStop(UUID locNodeId) { /** * @return Filter. */ - public QueryFilter filter() { + public IndexingQueryFilter filter() { return filter; } @@ -460,7 +460,7 @@ public QueryFilter filter() { * @param filter Filter. * @return {@code this}. */ - public GridH2QueryContext filter(QueryFilter filter) { + public GridH2QueryContext filter(IndexingQueryFilter filter) { this.filter = filter; return this; diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java index 0b0e616537dda..b5d2456612df5 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java @@ -33,8 +33,8 @@ import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; -import org.apache.ignite.spi.indexing.QueryFilter; -import org.apache.ignite.spi.indexing.QueryCacheFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -242,7 +242,7 @@ public void remove(CacheObject key) throws IgniteCheckedException { * @throws IgniteCheckedException If failed. */ public GridCloseableIterator> query(String qry, - QueryFilter filters) throws IgniteCheckedException { + IndexingQueryFilter filters) throws IgniteCheckedException { IndexReader reader; try { @@ -290,7 +290,7 @@ public GridCloseableIterator> query(String qry, throw new IgniteCheckedException(e); } - QueryCacheFilter fltr = null; + IndexingQueryCacheFilter fltr = null; if (filters != null) fltr = filters.forCache(cacheName); @@ -321,7 +321,7 @@ private class It extends GridCloseableIteratorAdapter> private final ScoreDoc[] docs; /** */ - private final QueryCacheFilter filters; + private final IndexingQueryCacheFilter filters; /** */ private int idx; @@ -341,7 +341,7 @@ private class It extends GridCloseableIteratorAdapter> * @param filters Filters over result. * @throws IgniteCheckedException if failed. */ - private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, QueryCacheFilter filters) + private It(IndexReader reader, IndexSearcher searcher, ScoreDoc[] docs, IndexingQueryCacheFilter filters) throws IgniteCheckedException { this.reader = reader; this.searcher = searcher; diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java index 050a50a12e5a0..13c0cb2c5e73d 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java @@ -41,7 +41,7 @@ import org.apache.ignite.spi.IgniteSpiAdapter; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; -import org.apache.ignite.spi.indexing.QueryFilter; +import org.apache.ignite.spi.indexing.IndexingQueryFilter; import org.apache.ignite.spi.indexing.IndexingSpi; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.jetbrains.annotations.Nullable; @@ -192,7 +192,7 @@ private static class TestIndexingSpi extends IgniteSpiAdapter implements Indexin /** {@inheritDoc} */ @Override public Iterator> query(@Nullable String cacheName, Collection params, - @Nullable QueryFilter filters) { + @Nullable IndexingQueryFilter filters) { return idx.containsKey(GridIoPolicy.QUERY_POOL) ? Collections.>singletonList( new CacheEntryImpl<>(GridIoPolicy.QUERY_POOL, GridIoPolicy.QUERY_POOL)).iterator()