> On April 27, 2015, 6:44 p.m., Jinfeng Ni wrote: > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrel.java, > > line 50 > > <https://reviews.apache.org/r/33523/diff/1/?file=941045#file941045line50> > > > > this line of code seems to be duplicated, since this(...) will call > > line 56.
Good catch. Fixed. - Aman ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/33523/#review81696 ----------------------------------------------------------- On April 24, 2015, 5:37 p.m., Aman Sinha wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/33523/ > ----------------------------------------------------------- > > (Updated April 24, 2015, 5:37 p.m.) > > > Review request for drill and Jinfeng Ni. > > > Bugs: DRILL-1957 > https://issues.apache.org/jira/browse/DRILL-1957 > > > Repository: drill-git > > > Description > ------- > > After Jinfeng's rebasing of Drill on Calcite master branch, the new Calcite > logical plan for NOT-IN consists of a cartesian join with a scalar subquery. > In order to support this, we need nested loop join. This patch adds support > for such plans and works in complement with execution side changes already > done earlier. > > The check for scalar subquery is restricted to scalar aggregates. Note that > a Filter may appear after a scalar aggregate, hence we also check for that. > > NL Join plan will do a broadcast of the right (scalar) child. The join > condition for NL join is always TRUE; however if there is a filter condition > present, the planner will create a Filter-NLJ plan where the filter is done > right after NLJ. In this way, it is possible to test the NLJ for equality > joins also; in order to support that, an option > 'planner.enable_nljoin_for_scalar_only' has been provided. The default is > TRUE. > > Besides NOT-IN, other SQL constructs that will be enabled are uncorrelated > EXISTS, cartesian joins (involving scalars unless the above option is > enabled) and inequality joins (also involving scalars). > > > Diffs > ----- > > > exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinUtils.java > 41bf786 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillJoinRelBase.java > 8dc5cf1 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterRel.java > a914f47 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRel.java > 1f602c7 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillJoinRule.java > f832dfe > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java > 532fd43 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrel.java > aca55a0 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/HashJoinPrule.java > 24df0b1 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPrel.java > 59b9f41 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/JoinPruleBase.java > d6f1672 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrel.java > 3c0022f > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/MergeJoinPrule.java > cbcc920 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/NestedLoopJoinPrel.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/NestedLoopJoinPrule.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java > ac86c4a > > exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java > a394efe > > exec/java-exec/src/test/java/org/apache/drill/TestDisabledFunctionality.java > e049943 > exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributed.java > 2b41912 > > exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestNestedLoopJoin.java > PRE-CREATION > exec/java-exec/src/test/resources/queries/tpch/11_1.sql PRE-CREATION > > Diff: https://reviews.apache.org/r/33523/diff/ > > > Testing > ------- > > Added tests for NOT-IN, EXISTS, Inequality. Enabled TPCH-16, TPCH-15 and a > slight variant of TPCH-11. > Ran all unit tests. One test: > TestDisabledFunctionality.testSubqueryWithoutCorrelatedJoinCondition > encounters an error in NLJ execution which will be fixed shortly. This test > is marked ignored for now. > > Full functional/TPCH-100 tests are in progress. > > > Thanks, > > Aman Sinha > >