You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2019/02/04 08:16:57 UTC

[ignite] 06/08: Merge with master.

This is an automated email from the ASF dual-hosted git repository.

vozerov pushed a commit to branch col_model
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 3c5c42bf66f5c8c0e46ad719f167c1d2653ab02a
Author: devozerov <vo...@gridgain.com>
AuthorDate: Mon Feb 4 11:09:33 2019 +0300

    Merge with master.
---
 .../processors/query/h2/opt/GridH2IndexBase.java       | 14 ++------------
 .../processors/query/h2/opt/join/CollocationModel.java | 18 +++++++++++-------
 2 files changed, 13 insertions(+), 19 deletions(-)

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 e2f06a3..4c1757e 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
@@ -38,7 +38,6 @@ import org.apache.ignite.internal.processors.query.h2.opt.join.CollocationModel;
 import org.apache.ignite.internal.processors.query.h2.opt.join.RangeSource;
 import org.apache.ignite.internal.processors.query.h2.opt.join.RangeStream;
 import org.apache.ignite.internal.processors.query.h2.opt.join.SegmentKey;
-import org.apache.ignite.internal.processors.query.h2.sql.SplitterContext;
 import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2IndexRangeRequest;
 import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2IndexRangeResponse;
 import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2RowMessage;
@@ -210,18 +209,9 @@ public abstract class GridH2IndexBase extends BaseIndex {
      * @return Multiplier.
      */
     public final int getDistributedMultiplier(Session ses, TableFilter[] filters, int filter) {
-        // 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.
-        SplitterContext ctx = SplitterContext.get();
+        CollocationModelMultiplier mul = CollocationModel.distributedMultiplier(ses, filters, filter);
 
-        if (!ctx.distributedJoins() || !ses.isJoinBatchEnabled() || ses.isPreparingQueryExpression())
-            return CollocationModelMultiplier.COLLOCATED.multiplier();
-
-        assert filters != null;
-
-        return CollocationModel.distributedMultiplier(ctx, ses, filters, filter);
+        return mul.multiplier();
     }
 
     /** {@inheritDoc} */
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/join/CollocationModel.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/join/CollocationModel.java
index efe413c..6bbd968 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/join/CollocationModel.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/join/CollocationModel.java
@@ -629,18 +629,22 @@ public final class CollocationModel {
     /**
      * Get distributed multiplier for the given sequence of tables.
      *
-     * @param ctx Splitter context.
      * @param ses Session.
      * @param filters Filters.
      * @param filter Filter index.
      * @return Multiplier.
      */
-    public static int distributedMultiplier(
-        SplitterContext ctx,
-        Session ses,
-        TableFilter[] filters,
-        int filter
-    ) {
+    public static CollocationModelMultiplier distributedMultiplier(Session ses, TableFilter[] filters, int filter) {
+        // 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.
+        SplitterContext ctx = SplitterContext.get();
+
+        if (!ctx.distributedJoins() || !ses.isJoinBatchEnabled() || ses.isPreparingQueryExpression())
+            return CollocationModelMultiplier.COLLOCATED;
+
+        assert filters != null;
+
         clearViewIndexCache(ses);
 
         CollocationModel model = buildCollocationModel(ctx, ses.getSubQueryInfo(), filters, filter, false);