You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by jn...@apache.org on 2015/05/28 00:22:56 UTC
drill git commit: DRILL-3004 : Fix CanNotPlan in physical planning
when disabling hash join and exchange.
Repository: drill
Updated Branches:
refs/heads/master bd8ac4fca -> 8e0f7039f
DRILL-3004 : Fix CanNotPlan in physical planning when disabling hash join and exchange.
Minor comment update.
Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/8e0f7039
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/8e0f7039
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/8e0f7039
Branch: refs/heads/master
Commit: 8e0f7039f753a6800a5b8b27ce014f75fe55e0c1
Parents: bd8ac4f
Author: Jinfeng Ni <jn...@apache.org>
Authored: Wed May 20 13:50:50 2015 -0700
Committer: Jinfeng Ni <jn...@apache.org>
Committed: Wed May 27 14:26:41 2015 -0700
----------------------------------------------------------------------
.../physical/DrillDistributionTraitDef.java | 24 +++++++------------
.../org/apache/drill/TestExampleQueries.java | 25 ++++++++++++++++++++
2 files changed, 34 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill/blob/8e0f7039/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java
index d6f796c..c9af8af 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/DrillDistributionTraitDef.java
@@ -72,30 +72,24 @@ public class DrillDistributionTraitDef extends RelTraitDef<DrillDistributionTrai
return null;
}
- RelNode newRel = null;
switch(toDist.getType()){
// UnionExchange, HashToRandomExchange, OrderedPartitionExchange and BroadcastExchange destroy the ordering property,
// therefore RelCollation is set to default, which is EMPTY.
case SINGLETON:
- newRel = new UnionExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
- break;
+ return new UnionExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
case HASH_DISTRIBUTED:
- newRel = new HashToRandomExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel,
- toDist.getFields());
- break;
+ return new HashToRandomExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel,
+ toDist.getFields());
case RANGE_DISTRIBUTED:
- newRel = new OrderedPartitionExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
- break;
+ return new OrderedPartitionExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
case BROADCAST_DISTRIBUTED:
- newRel = new BroadcastExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
- break;
+ return new BroadcastExchangePrel(rel.getCluster(), planner.emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist), rel);
+ case ANY:
+ // If target is "any", any input would satisfy "any". Return input directly.
+ return rel;
default:
- newRel = null;
+ return null;
}
-
- // planner.register(newRel, rel);
-
- return newRel;
}
}
http://git-wip-us.apache.org/repos/asf/drill/blob/8e0f7039/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java b/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
index 75bbc13..d80e752 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
@@ -995,4 +995,29 @@ public class TestExampleQueries extends BaseTestQuery{
.run();
}
+
+ @Test //DRILL_3004
+ public void testDRILL_3004() throws Exception {
+ final String query =
+ "SELECT\n" +
+ " nations.N_NAME,\n" +
+ " regions.R_NAME\n" +
+ "FROM\n" +
+ " cp.`tpch/nation.parquet` nations\n" +
+ "JOIN\n" +
+ " cp.`tpch/region.parquet` regions\n" +
+ "on nations.N_REGIONKEY = regions.R_REGIONKEY " +
+ "where 1 = 0";
+
+
+ testBuilder()
+ .sqlQuery(query)
+ .expectsEmptyResultSet()
+ .optionSettingQueriesForTestQuery("ALTER SESSION SET `planner.enable_hashjoin` = false; " +
+ "ALTER SESSION SET `planner.disable_exchanges` = true")
+ .build()
+ .run();
+
+ }
+
}