You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2017/03/01 14:33:01 UTC
[18/50] [abbrv] ignite git commit: Merge remote-tracking branch
'apache/ignite-1.9' into ignite-4106-1.9
Merge remote-tracking branch 'apache/ignite-1.9' into ignite-4106-1.9
# Conflicts:
# modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
# modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
# modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
# modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
# modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
# modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5b774f6d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5b774f6d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5b774f6d
Branch: refs/heads/master
Commit: 5b774f6d9dc7faa60a95b1206d30115b0ef67d16
Parents: f684c00 166e65c
Author: Andrey V. Mashenkov <an...@gmail.com>
Authored: Tue Feb 21 12:10:38 2017 +0300
Committer: Andrey V. Mashenkov <an...@gmail.com>
Committed: Tue Feb 21 12:10:38 2017 +0300
----------------------------------------------------------------------
.../examples/java8/spark/SharedRDDExample.java | 4 +-
.../jdbc2/JdbcAbstractDmlStatementSelfTest.java | 49 +-
.../jdbc2/JdbcInsertStatementSelfTest.java | 51 +
.../jdbc2/JdbcMergeStatementSelfTest.java | 51 +
.../internal/jdbc2/JdbcStreamingSelfTest.java | 189 ++
.../jdbc2/JdbcUpdateStatementSelfTest.java | 50 +
.../jdbc/suite/IgniteJdbcDriverTestSuite.java | 1 +
.../org/apache/ignite/IgniteJdbcDriver.java | 30 +
.../apache/ignite/IgniteSystemProperties.java | 6 +
.../ignite/internal/jdbc2/JdbcConnection.java | 72 +-
.../internal/jdbc2/JdbcPreparedStatement.java | 34 +-
.../ignite/internal/jdbc2/JdbcStatement.java | 20 +-
.../jdbc2/JdbcStreamedPreparedStatement.java | 59 +
.../cache/query/GridCacheSqlQuery.java | 45 +-
.../processors/query/GridQueryIndexing.java | 35 +
.../processors/query/GridQueryProcessor.java | 63 +-
.../visor/cache/VisorCacheClearTask.java | 88 +-
.../visor/compute/VisorGatewayTask.java | 30 +-
.../junits/multijvm/IgniteProcessProxy.java | 5 +-
.../query/h2/DmlStatementsProcessor.java | 267 ++-
.../processors/query/h2/IgniteH2Indexing.java | 160 +-
.../query/h2/dml/UpdatePlanBuilder.java | 2 +-
.../query/h2/opt/GridH2CollocationModel.java | 78 +-
.../query/h2/opt/GridH2IndexBase.java | 47 +-
.../processors/query/h2/sql/DmlAstUtils.java | 46 +-
.../processors/query/h2/sql/GridSqlAlias.java | 13 +-
.../processors/query/h2/sql/GridSqlArray.java | 8 +-
.../processors/query/h2/sql/GridSqlAst.java | 61 +
.../processors/query/h2/sql/GridSqlColumn.java | 85 +-
.../processors/query/h2/sql/GridSqlConst.java | 6 +-
.../processors/query/h2/sql/GridSqlElement.java | 43 +-
.../query/h2/sql/GridSqlFunction.java | 16 +-
.../processors/query/h2/sql/GridSqlJoin.java | 35 +-
.../processors/query/h2/sql/GridSqlKeyword.java | 3 +-
.../query/h2/sql/GridSqlOperation.java | 6 +-
.../query/h2/sql/GridSqlOperationType.java | 4 +-
.../query/h2/sql/GridSqlParameter.java | 4 +-
.../query/h2/sql/GridSqlPlaceholder.java | 2 +-
.../processors/query/h2/sql/GridSqlQuery.java | 80 +-
.../query/h2/sql/GridSqlQueryParser.java | 228 ++-
.../query/h2/sql/GridSqlQuerySplitter.java | 1634 +++++++++++++++---
.../processors/query/h2/sql/GridSqlSelect.java | 121 +-
.../query/h2/sql/GridSqlStatement.java | 6 +-
.../query/h2/sql/GridSqlSubquery.java | 31 +-
.../processors/query/h2/sql/GridSqlTable.java | 19 +-
.../processors/query/h2/sql/GridSqlType.java | 6 +-
.../processors/query/h2/sql/GridSqlUnion.java | 66 +-
.../processors/query/h2/sql/GridSqlValue.java | 25 -
.../query/h2/twostep/GridMapQueryExecutor.java | 6 +-
.../query/h2/twostep/GridMergeIndex.java | 418 ++++-
.../query/h2/twostep/GridMergeIndexSorted.java | 284 +++
.../h2/twostep/GridMergeIndexUnsorted.java | 40 +-
.../h2/twostep/GridReduceQueryExecutor.java | 56 +-
.../h2/twostep/msg/GridH2QueryRequest.java | 9 +-
.../IgniteCacheAbstractFieldsQuerySelfTest.java | 2 +-
...niteCacheAbstractInsertSqlQuerySelfTest.java | 6 +-
.../IgniteCacheInsertSqlQuerySelfTest.java | 14 +
.../query/IgniteSqlSplitterSelfTest.java | 100 +-
.../query/h2/sql/GridQueryParsingTest.java | 41 +-
modules/spark-2.10/pom.xml | 54 +
modules/spark/pom.xml | 183 +-
.../org/apache/ignite/spark/IgniteContext.scala | 22 +-
.../spark/JavaEmbeddedIgniteRDDSelfTest.java | 10 +-
.../spark/JavaStandaloneIgniteRDDSelfTest.java | 22 +-
.../web-console/backend/services/activities.js | 7 +-
.../list-of-registered-users.controller.js | 14 +-
.../configuration/configuration.module.js | 6 +-
.../configuration/summary/summary.worker.js | 28 +-
.../console/agent/handlers/RestListener.java | 9 +-
modules/yardstick/DEVNOTES-standalone.txt | 5 +-
modules/yardstick/README.txt | 85 +-
.../config/benchmark-atomic-win.properties | 2 +-
.../config/benchmark-atomic.properties | 35 +-
.../config/benchmark-bin-identity.properties | 16 +-
.../config/benchmark-cache-load-win.properties | 2 +-
.../config/benchmark-cache-load.properties | 4 +-
.../config/benchmark-client-mode.properties | 68 +-
.../config/benchmark-compute-win.properties | 2 +-
.../config/benchmark-compute.properties | 30 +-
.../config/benchmark-failover.properties | 2 +-
.../yardstick/config/benchmark-full.properties | 62 +-
.../config/benchmark-multicast.properties | 107 +-
.../config/benchmark-put-indexed-val.properties | 23 +-
.../benchmark-query-put-separated.properties | 3 +-
.../config/benchmark-query-win.properties | 2 +-
.../yardstick/config/benchmark-query.properties | 33 +-
.../config/benchmark-remote-sample.properties | 80 +
.../config/benchmark-remote.properties | 119 ++
.../config/benchmark-sample.properties | 22 +-
.../config/benchmark-sql-dml.properties | 36 +-
.../yardstick/config/benchmark-store.properties | 3 +-
.../config/benchmark-tx-win.properties | 2 +-
.../yardstick/config/benchmark-tx.properties | 33 +-
.../yardstick/config/benchmark-win.properties | 2 +-
modules/yardstick/config/benchmark.properties | 76 +-
.../yardstick/config/ignite-remote-config.xml | 47 +
.../test-max-int-values-offheap.properties | 3 +-
.../test-max-int-values-onheap.properties | 3 +-
.../config/test-max-int-values-swap.properties | 3 +-
modules/yardstick/pom-standalone.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
parent/pom.xml | 3 +-
pom.xml | 5 +-
103 files changed, 4874 insertions(+), 1363 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
index 37f0ade,2abb3a9..5d2b728
--- 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
@@@ -84,26 -85,48 +85,39 @@@ public interface GridQueryIndexing
/**
* Queries individual fields (generally used by JDBC drivers).
*
- * @param spaceName Space name.
+ * @param cctx Cache context.
* @param qry Query.
- * @param params Query parameters.
* @param filter Space name and key filter.
- * @param enforceJoinOrder Enforce join order of tables in the query.
- * @param timeout Query timeout in milliseconds.
* @param cancel Query cancel.
- * @return Query result.
- * @throws IgniteCheckedException If failed.
+ * @return Cursor.
*/
- public GridQueryFieldsResult queryLocalSqlFields(@Nullable String spaceName, String qry,
- Collection<Object> params, IndexingQueryFilter filter, boolean enforceJoinOrder, int timeout,
- GridQueryCancel cancel) throws IgniteCheckedException;
+ public <K, V> QueryCursor<List<?>> queryLocalSqlFields(GridCacheContext<?, ?> cctx, SqlFieldsQuery qry,
+ IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException;
/**
+ * Perform a MERGE statement using data streamer as receiver.
+ *
+ * @param spaceName Space name.
+ * @param qry Query.
+ * @param params Query parameters.
+ * @param streamer Data streamer to feed data to.
+ * @return Query result.
+ * @throws IgniteCheckedException If failed.
+ */
+ public long streamUpdateQuery(@Nullable final String spaceName, final String qry,
+ @Nullable final Object[] params, IgniteDataStreamer<?, ?> streamer) throws IgniteCheckedException;
+
+ /**
* Executes regular query.
*
- * @param spaceName Space name.
+ * @param cctx Cache context.
* @param qry Query.
- * @param alias Table alias used in Query.
- * @param params Query parameters.
- * @param type Query return type.
* @param filter Space name and key filter.
- * @return Queried rows.
- * @throws IgniteCheckedException If failed.
+ * @param keepBinary Keep binary flag.
+ * @return Cursor.
*/
- public <K, V> GridCloseableIterator<IgniteBiTuple<K, V>> queryLocalSql(@Nullable String spaceName, String qry,
- String alias, Collection<Object> params, GridQueryTypeDescriptor type, IndexingQueryFilter filter)
- throws IgniteCheckedException;
+ public <K, V> QueryCursor<Cache.Entry<K,V>> queryLocalSql(GridCacheContext<?, ?> cctx, SqlQuery qry,
+ IndexingQueryFilter filter, boolean keepBinary) throws IgniteCheckedException;
/**
* Executes text query.
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index de48eb9,15e7fc6..057fd10
--- 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
@@@ -93,8 -91,8 +94,9 @@@ import org.apache.ignite.internal.proce
import org.apache.ignite.internal.processors.query.GridQueryIndexing;
import org.apache.ignite.internal.processors.query.GridQueryProperty;
import org.apache.ignite.internal.processors.query.GridQueryTypeDescriptor;
+ import org.apache.ignite.internal.processors.query.GridRunningQueryInfo;
import org.apache.ignite.internal.processors.query.IgniteSQLException;
+import org.apache.ignite.internal.processors.query.h2.opt.DistributedJoinMode;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2DefaultTableEngine;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOffheap;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap;
@@@ -1352,9 -1281,7 +1400,9 @@@ public class IgniteH2Indexing implement
final boolean distributedJoins = qry.isDistributedJoins() && cctx.isPartitioned();
final boolean grpByCollocated = qry.isCollocated();
+ final DistributedJoinMode distributedJoinMode = distributedJoinMode(qry.isLocal(), distributedJoins);
+
- GridCacheTwoStepQuery twoStepQry;
+ GridCacheTwoStepQuery twoStepQry = null;
List<GridQueryFieldMetadata> meta;
final TwoStepCachedQueryKey cachedQryKey = new TwoStepCachedQueryKey(space, sqlQry, grpByCollocated,
@@@ -1368,12 -1295,13 +1416,13 @@@
else {
final UUID locNodeId = ctx.localNodeId();
- setupConnection(c, distributedJoins, enforceJoinOrder);
+ // Here we will just parse the statement, no need to optimize it at all.
+ setupConnection(c, /*distributedJoins*/false, /*enforceJoinOrder*/true);
GridH2QueryContext.set(new GridH2QueryContext(locNodeId, locNodeId, 0, PREPARE)
- .distributedJoins(distributedJoins));
+ .distributedJoinMode(distributedJoinMode));
- PreparedStatement stmt;
+ PreparedStatement stmt = null;
boolean cachesCreated = false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
index 89d661d,bdfddd5..31057c7
--- 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
@@@ -262,14 -245,15 +262,15 @@@ public abstract class GridH2IndexBase e
* @param filter Current filter.
* @return Multiplier.
*/
- public int getDistributedMultiplier(Session ses, TableFilter[] filters, int filter) {
+ public final int getDistributedMultiplier(Session ses, TableFilter[] filters, int filter) {
GridH2QueryContext qctx = GridH2QueryContext.get();
- // We do complex optimizations with respect to distributed joins only on prepare stage
- // because on run stage reordering of joined tables by Optimizer is explicitly disabled
- // and thus multiplier will be always the same, so it will not affect choice of index.
+ // We do optimizations with respect to distributed joins only on PREPARE stage only.
+ // Notice that we check for isJoinBatchEnabled, because we can do multiple different
+ // optimization passes on PREPARE stage.
// Query expressions can not be distributed as well.
- if (qctx == null || qctx.type() != PREPARE || qctx.distributedJoinMode() == OFF || ses.isPreparingQueryExpression())
- if (qctx == null || qctx.type() != PREPARE || !qctx.distributedJoins() ||
++ if (qctx == null || qctx.type() != PREPARE || qctx.distributedJoinMode() == OFF ||
+ !ses.isJoinBatchEnabled() || ses.isPreparingQueryExpression())
return GridH2CollocationModel.MULTIPLIER_COLLOCATED;
// We have to clear this cache because normally sub-query plan cost does not depend on anything
@@@ -391,18 -375,16 +392,18 @@@
if (affCol != null) {
affColId = affCol.column.getColumnId();
int[] masks = filter.getMasks();
- ucast = masks != null && masks[affColId] == IndexCondition.EQUALITY;
- }
- else {
- affColId = -1;
- ucast = false;
+
+ if (masks != null) {
+ ucast = (masks[affColId] & IndexCondition.EQUALITY) != 0 ||
+ (masks[KEY_COL] & IndexCondition.EQUALITY) != 0;
+ }
}
- GridCacheContext<?,?> cctx = getTable().rowDescriptor().context();
+ GridCacheContext<?, ?> cctx = getTable().rowDescriptor().context();
- return new DistributedLookupBatch(cctx, ucast, affColId);
+ boolean isLocal = qctx.distributedJoinMode() == LOCAL_ONLY;
+
+ return new DistributedLookupBatch(cctx, ucast, affColId, isLocal);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
index 5027c9a,b0fa639..72a34a6
--- 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
@@@ -86,8 -84,7 +86,9 @@@ import static org.apache.ignite.events.
import static org.apache.ignite.events.EventType.EVT_CACHE_QUERY_OBJECT_READ;
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.query.h2.IgniteH2Indexing.setupConnection;
+import static org.apache.ignite.internal.processors.query.h2.opt.DistributedJoinMode.OFF;
+import static org.apache.ignite.internal.processors.query.h2.opt.DistributedJoinMode.distributedJoinMode;
import static org.apache.ignite.internal.processors.query.h2.opt.GridH2QueryType.MAP;
import static org.apache.ignite.internal.processors.query.h2.opt.GridH2QueryType.REPLICATED;
import static org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.QUERY_POOL;
@@@ -433,7 -435,8 +434,8 @@@ public class GridMapQueryExecutor
req.partitions(),
null,
req.pageSize(),
- false,
+ OFF,
+ true,
req.timeout());
}
@@@ -491,7 -457,8 +493,8 @@@
parts,
req.tables(),
req.pageSize(),
- req.isFlagSet(GridH2QueryRequest.FLAG_DISTRIBUTED_JOINS),
+ joinMode,
+ req.isFlagSet(GridH2QueryRequest.FLAG_ENFORCE_JOIN_ORDER),
req.timeout());
}
@@@ -519,7 -484,8 +522,8 @@@
int[] parts,
Collection<String> tbls,
int pageSize,
- boolean distributedJoins,
+ DistributedJoinMode distributedJoinMode,
+ boolean enforceJoinOrder,
int timeout
) {
// Prepare to run queries.
@@@ -580,8 -545,7 +584,8 @@@
Connection conn = h2.connectionForSpace(mainCctx.name());
- setupConnection(conn, distributedJoins, enforceJoinOrder);
+ // Here we enforce join order to have the same behavior on all the nodes.
- h2.setupConnection(conn, distributedJoinMode != OFF, true);
++ h2.setupConnection(conn, distributedJoinMode != OFF, enforceJoinOrder);
GridH2QueryContext.set(qctx);
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index 8837046,f813cae..3cfaae9
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@@ -62,12 -62,11 +62,11 @@@ import org.apache.ignite.internal.proce
import org.apache.ignite.internal.processors.cache.query.GridCacheQueryMarshallable;
import org.apache.ignite.internal.processors.cache.query.GridCacheSqlQuery;
import org.apache.ignite.internal.processors.cache.query.GridCacheTwoStepQuery;
-import org.apache.ignite.internal.processors.query.GridRunningQueryInfo;
import org.apache.ignite.internal.processors.query.GridQueryCacheObjectsIterator;
import org.apache.ignite.internal.processors.query.GridQueryCancel;
+import org.apache.ignite.internal.processors.query.GridRunningQueryInfo;
import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2QueryContext;
- import org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter;
import org.apache.ignite.internal.processors.query.h2.sql.GridSqlType;
import org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryCancelRequest;
import org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryFailResponse;
@@@ -100,8 -99,9 +99,10 @@@ import org.jsr166.ConcurrentHashMap8
import static org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion.NONE;
import static org.apache.ignite.internal.processors.cache.query.GridCacheQueryType.SQL_FIELDS;
+ import static org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.setupConnection;
+import static org.apache.ignite.internal.processors.query.h2.opt.DistributedJoinMode.OFF;
import static org.apache.ignite.internal.processors.query.h2.opt.GridH2QueryType.REDUCE;
+ import static org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.mergeTableIdentifier;
/**
* Reduce query executor.
@@@ -616,6 -610,12 +618,15 @@@ public class GridReduceQueryExecutor
if (oldStyle && distributedJoins)
throw new CacheException("Failed to enable distributed joins. Topology contains older data nodes.");
+ // Always enforce join order on map side to have consistent behavior.
+ int flags = GridH2QueryRequest.FLAG_ENFORCE_JOIN_ORDER;
+
+ if (distributedJoins)
+ flags |= GridH2QueryRequest.FLAG_DISTRIBUTED_JOINS;
+
++ if(qry.isLocal())
++ flags |= GridH2QueryRequest.FLAG_IS_LOCAL;
++
if (send(nodes,
oldStyle ?
new GridQueryRequest(qryReqId,
@@@ -634,13 -634,14 +645,12 @@@
.tables(distributedJoins ? qry.tables() : null)
.partitions(convert(partsMap))
.queries(mapQrys)
- .flags((qry.isLocal() ? GridH2QueryRequest.FLAG_IS_LOCAL : 0) |
- (distributedJoins ? GridH2QueryRequest.FLAG_DISTRIBUTED_JOINS : 0))
+ .flags(flags)
.timeout(timeoutMillis),
oldStyle && partsMap != null ? new ExplicitPartitionsSpecializer(partsMap) : null,
- distributedJoins)
- ) {
- awaitAllReplies(r, nodes);
+ false)) {
- cancel.checkCancelled();
+ awaitAllReplies(r, nodes, cancel);
Object state = r.state.get();
@@@ -700,10 -700,10 +709,10 @@@
UUID locNodeId = ctx.localNodeId();
- h2.setupConnection(r.conn, false, enforceJoinOrder);
+ setupConnection(r.conn, false, enforceJoinOrder);
GridH2QueryContext.set(new GridH2QueryContext(locNodeId, locNodeId, qryReqId, REDUCE)
- .pageSize(r.pageSize).distributedJoins(false));
+ .pageSize(r.pageSize).distributedJoinMode(OFF));
try {
if (qry.explain())
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
index ec49aff,e5dbf33..0ad534c
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
@@@ -51,10 -51,10 +51,15 @@@ public class GridH2QueryRequest impleme
public static int FLAG_DISTRIBUTED_JOINS = 1;
/**
+ * Remote map query executor will enforce join order for the received map queries.
+ */
+ public static int FLAG_ENFORCE_JOIN_ORDER = 1 << 1;
+
++ /**
+ * Restrict distributed joins range-requests to local index segments. Range requests to other nodes will not be sent.
+ */
- public static int FLAG_IS_LOCAL = 2;
++ public static int FLAG_IS_LOCAL = 1 << 2;
+
/** */
private long reqId;
http://git-wip-us.apache.org/repos/asf/ignite/blob/5b774f6d/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
index 4ae2f91,432ed34..37dea47
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
@@@ -34,9 -34,8 +34,10 @@@ import org.apache.ignite.cache.CacheKey
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.CachePeekMode;
import org.apache.ignite.cache.affinity.Affinity;
+ import org.apache.ignite.cache.affinity.AffinityKeyMapped;
import org.apache.ignite.cache.query.QueryCursor;
+import org.apache.ignite.cache.affinity.AffinityKeyMapped;
+import org.apache.ignite.cache.query.QueryCursor;
import org.apache.ignite.cache.query.SqlFieldsQuery;
import org.apache.ignite.cache.query.annotations.QuerySqlField;
import org.apache.ignite.cluster.ClusterNode;