You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ar...@apache.org on 2017/07/21 17:23:39 UTC

[3/5] drill git commit: DRILL-5665: Add the option planner.force_2phase_aggr to override small inputs

DRILL-5665: Add the option planner.force_2phase_aggr to override small inputs

closes #872


Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/943a1432
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/943a1432
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/943a1432

Branch: refs/heads/master
Commit: 943a1432943c5aff0db76b8eb2d6cf9273737b6f
Parents: 6b0e837
Author: Boaz Ben-Zvi <bo...@BBenZvi-E754-MBP13.local>
Authored: Tue Jul 18 15:18:08 2017 -0700
Committer: Arina Ielchiieva <ar...@gmail.com>
Committed: Fri Jul 21 16:32:42 2017 +0300

----------------------------------------------------------------------
 .../org/apache/drill/exec/planner/physical/AggPruleBase.java  | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/943a1432/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java
index 460ee8a..3de5fca 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/AggPruleBase.java
@@ -61,12 +61,11 @@ public abstract class AggPruleBase extends Prule {
   // currently won't generate a 2 phase plan.
   protected boolean create2PhasePlan(RelOptRuleCall call, DrillAggregateRel aggregate) {
     PlannerSettings settings = PrelUtil.getPlannerSettings(call.getPlanner());
-    if ( settings.isForce2phaseAggr() ) { // for testing - force 2 phase aggr
-      return true;
-    }
     RelNode child = call.rel(0).getInputs().get(0);
     boolean smallInput = child.getRows() < settings.getSliceTarget();
-    if (! settings.isMultiPhaseAggEnabled() || settings.isSingleMode() || smallInput) {
+    if (! settings.isMultiPhaseAggEnabled() || settings.isSingleMode() ||
+        // Can override a small child - e.g., for testing with a small table
+        ( smallInput && ! settings.isForce2phaseAggr() ) ) {
       return false;
     }