Repository: ignite
Updated Branches:
  refs/heads/master 84a8e8108 -> c1edb3009


http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
index 90a3cc6..c542758 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
@@ -388,12 +388,10 @@ public class H2Utils {
      * @param tbl Table to check on not started cache.
      * @return {@code true} in case not started and has been started.
      */
-    public static boolean checkAndStartNotStartedCache(GridH2Table tbl) {
+    public static boolean checkAndStartNotStartedCache(GridKernalContext ctx, 
GridH2Table tbl) {
         if (tbl != null && tbl.isCacheLazy()) {
             String cacheName = tbl.cacheInfo().config().getName();
 
-            GridKernalContext ctx = tbl.cacheInfo().context();
-
             try {
                 Boolean res = ctx.cache().dynamicStartCache(null, cacheName, 
null, false, true, true).get();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
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 f9f0ce4..c2f3f89 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
@@ -435,7 +435,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
                 H2RowCache cache = rowCache.forGroup(cacheInfo.groupId());
 
                 return new H2TreeIndex(
-                    cacheInfo.gridCacheContext(),
+                    cacheInfo.cacheContext(),
                     cache,
                     tbl,
                     name,
@@ -2611,7 +2611,7 @@ public class IgniteH2Indexing implements 
GridQueryIndexing {
                 GridH2Table tbl = schemaMgr.dataTable(tblKey.schema(), 
tblKey.table());
 
                 if (tbl != null) {
-                    H2Utils.checkAndStartNotStartedCache(tbl);
+                    H2Utils.checkAndStartNotStartedCache(ctx, tbl);
 
                     int cacheId = tbl.cacheId();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/affinity/PartitionExtractor.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/affinity/PartitionExtractor.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/affinity/PartitionExtractor.java
index c57b011..cf27d90 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/affinity/PartitionExtractor.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/affinity/PartitionExtractor.java
@@ -20,7 +20,6 @@ package 
org.apache.ignite.internal.processors.query.h2.affinity;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.internal.processors.cache.query.GridCacheSqlQuery;
 import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
-import org.apache.ignite.internal.processors.query.h2.opt.GridH2RowDescriptor;
 import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table;
 import org.apache.ignite.internal.processors.query.h2.sql.GridSqlAlias;
 import org.apache.ignite.internal.processors.query.h2.sql.GridSqlAst;
@@ -35,15 +34,12 @@ import 
org.apache.ignite.internal.processors.query.h2.sql.GridSqlSelect;
 import org.apache.ignite.internal.processors.query.h2.sql.GridSqlTable;
 import org.apache.ignite.internal.util.typedef.F;
 import org.h2.table.Column;
-import org.h2.table.IndexColumn;
 import org.jetbrains.annotations.Nullable;
 
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import static 
org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap.DEFAULT_COLUMNS_COUNT;
-
 /**
  * Partition tree extractor.
  */
@@ -102,6 +98,7 @@ public class PartitionExtractor {
      * @param qrys Queries.
      * @return Partition result or {@code null} if nothing is resolved.
      */
+    @SuppressWarnings("IfMayBeConditional")
     public PartitionResult merge(List<GridCacheSqlQuery> qrys) {
         // Check if merge is possible.
         PartitionTableDescriptor desc = null;
@@ -149,7 +146,7 @@ public class PartitionExtractor {
      * @param from From.
      * @return Table or {@code null} if not a table.
      */
-   @Nullable private static GridSqlTable unwrapTable(GridSqlAst from) {
+    @Nullable private static GridSqlTable unwrapTable(GridSqlAst from) {
         if (from instanceof GridSqlAlias)
             from = from.child();
 
@@ -165,6 +162,7 @@ public class PartitionExtractor {
      * @param expr Expression.
      * @return Partition tree.
      */
+    @SuppressWarnings("EnumSwitchStatementWhichMissesCases")
     private PartitionNode extractFromExpression(GridSqlAst expr) throws 
IgniteCheckedException {
         PartitionNode res = PartitionAllNode.INSTANCE;
 
@@ -343,7 +341,7 @@ public class PartitionExtractor {
 
         GridH2Table tbl = (GridH2Table)leftCol.getTable();
 
-        if (!isAffinityKey(leftCol.getColumnId(), tbl))
+        if (!tbl.isColumnForPartitionPruning(leftCol))
             return null;
 
         PartitionTableDescriptor tblDesc = descriptor(tbl);
@@ -360,32 +358,6 @@ public class PartitionExtractor {
     }
 
     /**
-     *
-     * @param colId Column ID to check
-     * @param tbl H2 Table
-     * @return is affinity key or not
-     */
-    private static boolean isAffinityKey(int colId, GridH2Table tbl) {
-        GridH2RowDescriptor desc = tbl.rowDescriptor();
-
-        if (desc.isKeyColumn(colId))
-            return true;
-
-        IndexColumn affKeyCol = tbl.getAffinityKeyColumn();
-
-        try {
-            return
-                affKeyCol != null &&
-                colId >= DEFAULT_COLUMNS_COUNT &&
-                desc.isColumnKeyProperty(colId - DEFAULT_COLUMNS_COUNT) &&
-                colId == affKeyCol.column.getColumnId();
-        }
-        catch (IllegalStateException e) {
-            return false;
-        }
-    }
-
-    /**
      * Get descriptor from table.
      *
      * @param tbl Table.

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
index f1826a1..efccb6c 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
@@ -113,7 +113,7 @@ public final class UpdatePlanBuilder {
         boolean mvccEnabled = false;
 
         for (GridH2Table h2tbl : tbls) {
-            H2Utils.checkAndStartNotStartedCache(h2tbl);
+            H2Utils.checkAndStartNotStartedCache(idx.kernalContext(), h2tbl);
 
             if (prevCctx == null) {
                 prevCctx = h2tbl.cacheContext();

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2CollocationModel.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2CollocationModel.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2CollocationModel.java
index 5e574e4..2a92511 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2CollocationModel.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2CollocationModel.java
@@ -375,7 +375,7 @@ public final class GridH2CollocationModel {
         GridH2Table tbl = (GridH2Table)tf.getTable();
 
         if (validate) {
-            if (tbl.rowDescriptor().context().customAffinityMapper())
+            if (tbl.isCustomAffinityMapper())
                 throw customAffinityError(tbl.cacheName());
 
             if (F.isEmpty(tf.getIndexConditions())) {
@@ -472,10 +472,12 @@ public final class GridH2CollocationModel {
         }
 
         if (t instanceof GridH2Table) {
-            if (validate && 
((GridH2Table)t).rowDescriptor().context().customAffinityMapper())
-                throw customAffinityError(((GridH2Table)t).cacheName());
+            GridH2Table t0 = (GridH2Table)t;
 
-            IndexColumn affCol = ((GridH2Table)t).getAffinityKeyColumn();
+            if (validate && t0.isCustomAffinityMapper())
+                throw customAffinityError((t0).cacheName());
+
+            IndexColumn affCol = t0.getAffinityKeyColumn();
 
             return affCol != null && col.getColumnId() == 
affCol.column.getColumnId();
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
----------------------------------------------------------------------
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 6fd11c1..6c45c29 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
@@ -87,6 +87,7 @@ import static 
org.apache.ignite.internal.processors.query.h2.opt.GridH2Collocati
 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.opt.GridH2RowDescriptor.COL_NOT_EXISTS;
 import static 
org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2IndexRangeResponse.STATUS_ERROR;
 import static 
org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2IndexRangeResponse.STATUS_NOT_FOUND;
 import static 
org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2IndexRangeResponse.STATUS_OK;
@@ -1048,6 +1049,9 @@ public abstract class GridH2IndexBase extends BaseIndex {
          * @return Affinity key or {@code null}.
          */
         private Object getAffinityKey(SearchRow firstRow, SearchRow lastRow) {
+            if (affColId == COL_NOT_EXISTS)
+                return null;
+
             if (firstRow == null || lastRow == null)
                 return null;
 
@@ -1109,7 +1113,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
                 rangeStreams = new HashMap<>();
             }
 
-            Object affKey = affColId == -1 ? null : getAffinityKey(firstRow, 
lastRow);
+            Object affKey = getAffinityKey(firstRow, lastRow);
 
             boolean locQry = localQuery();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
index 3853b57..4ba8229 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
@@ -44,6 +44,9 @@ import static 
org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueR
  * Row descriptor.
  */
 public class GridH2RowDescriptor {
+    /** Non existent column. */
+    public static final int COL_NOT_EXISTS = -1;
+
     /** Table descriptor. */
     private final H2TableDescriptor tbl;
 
@@ -119,11 +122,11 @@ public class GridH2RowDescriptor {
 
         List<String> fieldsList = Arrays.asList(fields);
 
-        keyAliasColId =
-            (type.keyFieldName() != null) ? DEFAULT_COLUMNS_COUNT + 
fieldsList.indexOf(type.keyFieldAlias()) : -1;
+        keyAliasColId = (type.keyFieldName() != null) ?
+            DEFAULT_COLUMNS_COUNT + fieldsList.indexOf(type.keyFieldAlias()) : 
COL_NOT_EXISTS;
 
-        valAliasColId =
-            (type.valueFieldName() != null) ? DEFAULT_COLUMNS_COUNT + 
fieldsList.indexOf(type.valueFieldAlias()) : -1;
+        valAliasColId = (type.valueFieldName() != null) ?
+            DEFAULT_COLUMNS_COUNT + fieldsList.indexOf(type.valueFieldAlias()) 
: COL_NOT_EXISTS;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
index 59597be..b69a011 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
@@ -62,7 +62,7 @@ import org.jetbrains.annotations.Nullable;
 
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
 import static 
org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap.DEFAULT_COLUMNS_COUNT;
-import static 
org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap.KEY_COL;
+import static 
org.apache.ignite.internal.processors.query.h2.opt.GridH2RowDescriptor.COL_NOT_EXISTS;
 
 /**
  * H2 Table implementation.
@@ -99,7 +99,10 @@ public class GridH2Table extends TableBase {
     private final ConcurrentMap<Session, Boolean> sessions = new 
ConcurrentHashMap<>();
 
     /** */
-    private IndexColumn affKeyCol;
+    private final IndexColumn affKeyCol;
+
+    /** */
+    private final int affKeyColId;
 
     /** */
     private final LongAdder size = new LongAdder();
@@ -138,32 +141,36 @@ public class GridH2Table extends TableBase {
         this.desc = desc;
         this.cacheInfo = cacheInfo;
 
-        if (desc.context() != null && !desc.context().customAffinityMapper()) {
-            boolean affinityColExists = true;
-
-            String affKey = desc.type().affinityKey();
+        if (!desc.type().customAffinityKeyMapper()) {
+            String affKeyFieldName = desc.type().affinityKey();
 
-            int affKeyColId = -1;
+            if (affKeyFieldName != null) {
+                if (doesColumnExist(affKeyFieldName)) {
+                    int colId = getColumn(affKeyFieldName).getColumnId();
 
-            if (affKey != null) {
-                if (doesColumnExist(affKey)) {
-                    affKeyColId = getColumn(affKey).getColumnId();
-
-                    if (desc.isKeyColumn(affKeyColId))
-                        affKeyColId = KEY_COL;
+                    if (desc.isKeyColumn(colId)) {
+                        affKeyCol = 
indexColumn(GridH2KeyValueRowOnheap.KEY_COL, SortOrder.ASCENDING);
+                        affKeyColId = GridH2KeyValueRowOnheap.KEY_COL;
+                    }
+                    else {
+                        affKeyCol = indexColumn(colId, SortOrder.ASCENDING);
+                        affKeyColId = colId;
+                    }
+                }
+                else {
+                    affKeyCol = null;
+                    affKeyColId = COL_NOT_EXISTS;
                 }
-                else
-                    affinityColExists = false;
             }
-            else
-                affKeyColId = KEY_COL;
-
-            if (affinityColExists) {
-                affKeyCol = indexColumn(affKeyColId, SortOrder.ASCENDING);
-
-                assert affKeyCol != null;
+            else {
+                affKeyCol = indexColumn(GridH2KeyValueRowOnheap.KEY_COL, 
SortOrder.ASCENDING);
+                affKeyColId = GridH2KeyValueRowOnheap.KEY_COL;
             }
         }
+        else {
+            affKeyCol = null;
+            affKeyColId = COL_NOT_EXISTS;
+        }
 
         this.rowFactory = rowFactory;
 
@@ -216,6 +223,25 @@ public class GridH2Table extends TableBase {
         return affKeyCol;
     }
 
+    /**
+     * Check whether passed column can be used for partition pruning.
+     *
+     * @param col Column.
+     * @return {@code True} if affinity key column.
+     */
+    public boolean isColumnForPartitionPruning(Column col) {
+        int colId = col.getColumnId();
+
+        return colId == affKeyColId || desc.isKeyColumn(colId);
+    }
+
+    /**
+     * @return Whether custom affintiy mapper is used.
+     */
+    public boolean isCustomAffinityMapper() {
+        return desc.type().customAffinityKeyMapper();
+    }
+
     /** {@inheritDoc} */
     @Override public long getDiskSpaceUsed() {
         return 0;
@@ -253,14 +279,14 @@ public class GridH2Table extends TableBase {
      * @return {@code true} If Cache is lazy (not full inited).
      */
     public boolean isCacheLazy() {
-        return cacheInfo.gridCacheContext() == null;
+        return cacheInfo.cacheContext() == null;
     }
 
     /**
      * @return Cache context.
      */
     @Nullable public GridCacheContext cacheContext() {
-        return cacheInfo.gridCacheContext();
+        return cacheInfo.cacheContext();
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/AffinityKeyNameAndValueFieldNameConflictTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/AffinityKeyNameAndValueFieldNameConflictTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/AffinityKeyNameAndValueFieldNameConflictTest.java
index ff147e7..23e71e2 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/AffinityKeyNameAndValueFieldNameConflictTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/AffinityKeyNameAndValueFieldNameConflictTest.java
@@ -93,6 +93,11 @@ public class AffinityKeyNameAndValueFieldNameConflictTest 
extends GridCommonAbst
         return cfg;
     }
 
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllGrids();
+    }
+
     /**
      * @throws Exception If failed.
      */
@@ -123,6 +128,7 @@ public class AffinityKeyNameAndValueFieldNameConflictTest 
extends GridCommonAbst
     public void testAnnotationConfig() throws Exception {
         keyCls = PersonKey1.class;
         keyProducer = PersonKey1::new;
+
         checkQuery();
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java
index 80923a7..1036cce 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.cache;
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.ignite.Ignite;
@@ -89,6 +90,7 @@ public class IgniteCacheDistributedJoinCollocatedAndNotTest 
extends GridCommonAb
             entity.addQueryField("id", Integer.class.getName(), null);
             entity.addQueryField("affKey", Integer.class.getName(), null);
             entity.addQueryField("name", String.class.getName(), null);
+            entity.setKeyFields(Collections.singleton("affKey"));
 
             ccfg.setQueryEntities(F.asList(entity));
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AndOperationExtractPartitionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AndOperationExtractPartitionSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AndOperationExtractPartitionSelfTest.java
index a94910e..a3fae72 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AndOperationExtractPartitionSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AndOperationExtractPartitionSelfTest.java
@@ -81,7 +81,7 @@ public class AndOperationExtractPartitionSelfTest extends 
GridCommonAbstractTest
 
         orgCache = ignite(0).getOrCreateCache(new CacheConfiguration<String, 
JoinSqlTestHelper.Organization>(ORG)
             .setCacheMode(CacheMode.PARTITIONED)
-            .setIndexedTypes(String.class, 
JoinSqlTestHelper.Organization.class)
+            .setQueryEntities(JoinSqlTestHelper.organizationQueryEntity())
         );
 
         awaitPartitionMapExchange();

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheCauseRetryMessageSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheCauseRetryMessageSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheCauseRetryMessageSelfTest.java
index b9c846a..7d13503 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheCauseRetryMessageSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheCauseRetryMessageSelfTest.java
@@ -97,7 +97,7 @@ public class DisappearedCacheCauseRetryMessageSelfTest 
extends GridCommonAbstrac
                         if (reqId == req.queryRequestId())
                             orgCache = 
DisappearedCacheCauseRetryMessageSelfTest.this.ignite(0).getOrCreateCache(new 
CacheConfiguration<String, Organization>(ORG)
                                 .setCacheMode(CacheMode.REPLICATED)
-                                .setIndexedTypes(String.class, 
JoinSqlTestHelper.Organization.class)
+                                
.setQueryEntities(JoinSqlTestHelper.organizationQueryEntity())
                             );
 
                     }
@@ -117,12 +117,12 @@ public class DisappearedCacheCauseRetryMessageSelfTest 
extends GridCommonAbstrac
         startGridsMultiThreaded(NODES_COUNT, false);
 
         personCache = ignite(0).getOrCreateCache(new 
CacheConfiguration<String, Person>("pers")
-            .setIndexedTypes(String.class, JoinSqlTestHelper.Person.class)
+            .setQueryEntities(JoinSqlTestHelper.personQueryEntity())
         );
 
         orgCache = ignite(0).getOrCreateCache(new CacheConfiguration<String, 
Organization>(ORG)
             .setCacheMode(CacheMode.REPLICATED)
-            .setIndexedTypes(String.class, 
JoinSqlTestHelper.Organization.class)
+            .setQueryEntities(JoinSqlTestHelper.organizationQueryEntity())
         );
 
         awaitPartitionMapExchange();

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheWasNotFoundMessageSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheWasNotFoundMessageSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheWasNotFoundMessageSelfTest.java
index 08a7973..dfc8bb6 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheWasNotFoundMessageSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/DisappearedCacheWasNotFoundMessageSelfTest.java
@@ -111,12 +111,12 @@ public class DisappearedCacheWasNotFoundMessageSelfTest 
extends GridCommonAbstra
         startGridsMultiThreaded(NODES_COUNT, false);
 
         personCache = ignite(0).getOrCreateCache(new 
CacheConfiguration<String, Person>("pers")
-            .setIndexedTypes(String.class, JoinSqlTestHelper.Person.class)
+            .setQueryEntities(JoinSqlTestHelper.personQueryEntity())
         );
 
         orgCache = ignite(0).getOrCreateCache(new CacheConfiguration<String, 
Organization>(ORG)
                 .setCacheMode(CacheMode.REPLICATED)
-                .setIndexedTypes(String.class, Organization.class)
+                .setQueryEntities(JoinSqlTestHelper.organizationQueryEntity())
         );
 
         awaitPartitionMapExchange();

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/InOperationExtractPartitionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/InOperationExtractPartitionSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/InOperationExtractPartitionSelfTest.java
index 7978943..c3222de 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/InOperationExtractPartitionSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/InOperationExtractPartitionSelfTest.java
@@ -24,6 +24,7 @@ import java.util.concurrent.atomic.LongAdder;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cluster.ClusterNode;
@@ -83,7 +84,7 @@ public class InOperationExtractPartitionSelfTest extends 
GridCommonAbstractTest
 
         orgCache = ignite(0).getOrCreateCache(new CacheConfiguration<String, 
JoinSqlTestHelper.Organization>(ORG)
             .setCacheMode(CacheMode.PARTITIONED)
-            .setIndexedTypes(String.class, 
JoinSqlTestHelper.Organization.class)
+            .setQueryEntities(JoinSqlTestHelper.organizationQueryEntity())
         );
 
         awaitPartitionMapExchange();
@@ -191,7 +192,7 @@ public class InOperationExtractPartitionSelfTest extends 
GridCommonAbstractTest
     private void testInOperator(List<String> cnst, Object[] args, long expRes, 
int maxReq) {
         int curIdx = cnt.intValue();
 
-        String toIn = cnst.size() == 0 ? "" : String.valueOf("'" + 
String.join("','", cnst) + "'")
+        String toIn = cnst.isEmpty() ? "" : String.valueOf("'" + 
String.join("','", cnst) + "'")
             .replace("'?'", "?");
 
         try (FieldsQueryCursor<List<?>> cur = orgCache.query(new 
SqlFieldsQuery(

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/JoinSqlTestHelper.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/JoinSqlTestHelper.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/JoinSqlTestHelper.java
index 3c9509d..5eaf147 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/JoinSqlTestHelper.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/JoinSqlTestHelper.java
@@ -18,8 +18,12 @@
 package org.apache.ignite.internal.processors.query.h2.twostep;
 
 import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.query.annotations.QuerySqlField;
 
+import java.util.Collection;
+import java.util.Collections;
+
 /**
  * Join sql test helper
  */
@@ -39,6 +43,30 @@ public class JoinSqlTestHelper {
         "and lower(org.name) = lower(?)";
 
     /**
+     * @return Query entity for Organization.
+     */
+    static Collection<QueryEntity> organizationQueryEntity() {
+        QueryEntity entity = new QueryEntity(String.class, Organization.class);
+
+        entity.setKeyFieldName("ID");
+        entity.getFields().put("ID", String.class.getName());
+
+        return Collections.singletonList(entity);
+    }
+
+    /**
+     * @return Query entity for Organization.
+     */
+    static Collection<QueryEntity> personQueryEntity() {
+        QueryEntity entity = new QueryEntity(String.class, Person.class);
+
+        entity.setKeyFieldName("ID");
+        entity.getFields().put("ID", String.class.getName());
+
+        return Collections.singletonList(entity);
+    }
+
+    /**
      * Populate organization cache with test data
      * @param cache @{IgniteCache}
      */
@@ -46,11 +74,9 @@ public class JoinSqlTestHelper {
         for (int i = 0; i < ORG_COUNT; i++) {
             Organization org = new Organization();
 
-            org.setId(ORG + i);
-
             org.setName("Organization #" + i);
 
-            cache.put(org.getId(), org);
+            cache.put(ORG + i, org);
         }
     }
 
@@ -62,22 +88,16 @@ public class JoinSqlTestHelper {
         int personId = 0;
 
         for (int i = 0; i < ORG_COUNT; i++) {
-            Organization org = new Organization();
-
-            org.setId(ORG + i);
-
-            org.setName("Organization #" + i);
+            String orgId = ORG + i;
 
             for (int j = 0; j < PERSON_PER_ORG_COUNT; j++) {
                 Person prsn = new Person();
 
-                prsn.setId("pers" + personId);
-
-                prsn.setOrgId(org.getId());
+                prsn.setOrgId(orgId);
 
                 prsn.setName("Person name #" + personId);
 
-                cache.put(prsn.getId(), prsn);
+                cache.put("pers" + personId, prsn);
 
                 personId++;
             }
@@ -90,10 +110,6 @@ public class JoinSqlTestHelper {
     public static class Person {
         /** */
         @QuerySqlField(index = true)
-        private String id;
-
-        /** */
-        @QuerySqlField(index = true)
         private String orgId;
 
         /** */
@@ -101,16 +117,6 @@ public class JoinSqlTestHelper {
         private String name;
 
         /** */
-        public String getId() {
-            return id;
-        }
-
-        /** */
-        public void setId(String id) {
-            this.id = id;
-        }
-
-        /** */
         public String getOrgId() {
             return orgId;
         }
@@ -137,23 +143,9 @@ public class JoinSqlTestHelper {
     public static class Organization {
         /** */
         @QuerySqlField(index = true)
-        private String id;
-
-        /** */
-        @QuerySqlField(index = true)
         private String name;
 
         /** */
-        public void setId(String id) {
-            this.id = id;
-        }
-
-        /** */
-        public String getId() {
-            return id;
-        }
-
-        /** */
         public String getName() {
             return name;
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NonCollocatedRetryMessageSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NonCollocatedRetryMessageSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NonCollocatedRetryMessageSelfTest.java
index a1abb23..fb64c7f 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NonCollocatedRetryMessageSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NonCollocatedRetryMessageSelfTest.java
@@ -99,14 +99,14 @@ public class NonCollocatedRetryMessageSelfTest extends 
GridCommonAbstractTest {
         CacheConfiguration<String, JoinSqlTestHelper.Person> ccfg1 = new 
CacheConfiguration<>("pers");
 
         ccfg1.setBackups(1);
-        ccfg1.setIndexedTypes(String.class, JoinSqlTestHelper.Person.class);
+        ccfg1.setQueryEntities(JoinSqlTestHelper.personQueryEntity());
 
         personCache = ignite(0).getOrCreateCache(ccfg1);
 
         CacheConfiguration<String, JoinSqlTestHelper.Organization> ccfg2 = new 
CacheConfiguration<>(ORG);
 
         ccfg2.setBackups(1);
-        ccfg2.setIndexedTypes(String.class, 
JoinSqlTestHelper.Organization.class);
+        ccfg2.setQueryEntities(JoinSqlTestHelper.organizationQueryEntity());
 
         IgniteCache<String, JoinSqlTestHelper.Organization> orgCache = 
ignite(0).getOrCreateCache(ccfg2);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1edb300/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/RetryCauseMessageSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/RetryCauseMessageSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/RetryCauseMessageSelfTest.java
index b3fb7bc..87cf353 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/RetryCauseMessageSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/RetryCauseMessageSelfTest.java
@@ -346,12 +346,12 @@ public class RetryCauseMessageSelfTest extends 
GridCommonAbstractTest {
         h2Idx = GridTestUtils.getFieldValue(qryProc, GridQueryProcessor.class, 
"idx");
 
         personCache = ignite(0).getOrCreateCache(new 
CacheConfiguration<String, Person>("pers")
-            .setIndexedTypes(String.class, Person.class)
+            .setQueryEntities(JoinSqlTestHelper.personQueryEntity())
         );
 
         orgCache = ignite(0).getOrCreateCache(new CacheConfiguration<String, 
Organization>(ORG)
             .setCacheMode(CacheMode.REPLICATED)
-            .setIndexedTypes(String.class, Organization.class)
+            .setQueryEntities(JoinSqlTestHelper.organizationQueryEntity())
         );
 
         awaitPartitionMapExchange();

Reply via email to