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