aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical
diff options
context:
space:
mode:
authorchunhui-shi <cshi@maprtech.com>2018-04-30 10:24:06 -0700
committerParth Chandra <parthc@apache.org>2018-05-15 11:14:52 -0700
commit758a98143261fb7369e26499c72018d04c2a2909 (patch)
tree0ef767eb36846ca5aa89edf8ffd6e1ee14ee13ce /exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical
parent0a4a37e11f2f2ad66de80918a4b34665e42803fc (diff)
DRILL-6321: Lateral Join and Unnest - rules, options, logical plan supports
Included changes: * Add planner.enable_unnest_lateral option. Default value set to false. * Enable FilterCorrectRule * Add support to logical plan * Fix rebase errors for DRILL-6321 commits
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical')
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrule.java2
2 files changed, 10 insertions, 2 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java
index 8b5c878e6..5a40ae42f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java
@@ -113,6 +113,12 @@ public class PlannerSettings implements Context{
QUOTING_IDENTIFIERS_KEY, Quoting.BACK_TICK.string, Quoting.DOUBLE_QUOTE.string, Quoting.BRACKET.string);
/*
+ "planner.enable_unnest_lateral" is to allow users to choose enable unnest+lateraljoin feature.
+ */
+ public static final String ENABLE_UNNEST_LATERAL_KEY = "planner.enable_unnest_lateral";
+ public static final BooleanValidator ENABLE_UNNEST_LATERAL = new BooleanValidator(ENABLE_UNNEST_LATERAL_KEY);
+
+ /*
Enables rules that re-write query joins in the most optimal way.
Though its turned on be default and its value in query optimization is undeniable, user may want turn off such
optimization to leave join order indicated in sql query unchanged.
@@ -317,6 +323,10 @@ public class PlannerSettings implements Context{
return options.getOption(JOIN_OPTIMIZATION);
}
+ public boolean isUnnestLateralEnabled() {
+ return options.getOption(ENABLE_UNNEST_LATERAL);
+ }
+
@Override
public <T> T unwrap(Class<T> clazz) {
if(clazz == PlannerSettings.class){
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrule.java
index 765304d63..48f4ea964 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrule.java
@@ -21,8 +21,6 @@ import org.apache.calcite.plan.RelOptRule;
import org.apache.calcite.plan.RelOptRuleCall;
import org.apache.calcite.rex.RexFieldAccess;
import org.apache.calcite.rex.RexNode;
-import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.exec.physical.config.UnnestPOP;
import org.apache.drill.exec.planner.logical.DrillUnnestRel;
import org.apache.drill.exec.planner.logical.RelOptHelper;