DRILL-1957: Support nested loop join planning in order to enable NOT-IN, Inequality, Cartesian, uncorrelated EXISTS planning. Add support fo…
DRILL-1957: Support nested loop join planning in order to enable NOT-IN, Inequality, Cartesian, uncorrelated EXISTS planning.Add support for nested loop join planning where right input is scalar and is broadcast.Add check for scalar subquery for NLJ. Add support for creating a Filter-NLJ plan.Rebase on the branch with Jinfeng's Calcite rebasing work.Conflicts: exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinUtils.javaAdd unit tests for NLJoin.Added test for inequality join.Tests with BroadcastExchange, with HJ/MJ disabled.Fix filter push down for NL joins by modifying row count computation for joins with always true conditions. Rebase on master. Refactor unit tests.Improved checking of preconditions for NL join.Handle the case where scalar aggregate is a child of Filter.DRILL-1957: Support nested loop join planning in order to enable NOT-IN, Inequality, EXISTS planning.Better checks for cartesian and inequality joins. Rebase on latest master.Refactor costing for logical join. Add tests. Enable more TPC-H tests.Remove the check for cartesian join from DrillJoinRel constructor.Clear left and right keys before calling splitJoinCondition.Address review comments: Remove redundant call to getJoinCategory. Added comment in DrillRuleSet.