diff options
author | chunhui-shi <cshi@maprtech.com> | 2018-04-30 10:24:06 -0700 |
---|---|---|
committer | Parth Chandra <parthc@apache.org> | 2018-05-15 11:14:52 -0700 |
commit | 758a98143261fb7369e26499c72018d04c2a2909 (patch) | |
tree | 0ef767eb36846ca5aa89edf8ffd6e1ee14ee13ce /exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical | |
parent | 0a4a37e11f2f2ad66de80918a4b34665e42803fc (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.java | 10 | ||||
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrule.java | 2 |
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; |