Alex Behm has uploaded a new change for review. http://gerrit.cloudera.org:8080/3846
Change subject: IMPALA-3063: Separate join inversion from join ordering. ...................................................................... IMPALA-3063: Separate join inversion from join ordering. Before this change joins were inverted while doing join ordering. That approach was unnecessarily complex because it required modifying the global analysis state for correct conjunct placement, etc. However, join inversion is independent of join ordering, and the existing approach could lead to generating invalid plans with distributed non-equi right outer/semi joins, which we cannot execute in the backend. After this change joins are inverted in a separate pass over the single-node plan. This simplifies the inversion logic and allows us to avoid generating those invalid plans. This patch also moves the logic of converting hash joins to nested-loop joins into a separate pass over the single-node plan. Change-Id: If86db7753fc585bb4c69612745ec0103278888a4 --- M fe/src/main/java/com/cloudera/impala/analysis/Analyzer.java M fe/src/main/java/com/cloudera/impala/analysis/SelectList.java M fe/src/main/java/com/cloudera/impala/analysis/TableRef.java M fe/src/main/java/com/cloudera/impala/planner/AggregationNode.java M fe/src/main/java/com/cloudera/impala/planner/AnalyticEvalNode.java M fe/src/main/java/com/cloudera/impala/planner/DistributedPlanner.java M fe/src/main/java/com/cloudera/impala/planner/ExchangeNode.java M fe/src/main/java/com/cloudera/impala/planner/HashJoinNode.java M fe/src/main/java/com/cloudera/impala/planner/HdfsScanNode.java M fe/src/main/java/com/cloudera/impala/planner/JoinNode.java M fe/src/main/java/com/cloudera/impala/planner/NestedLoopJoinNode.java M fe/src/main/java/com/cloudera/impala/planner/PlanNode.java M fe/src/main/java/com/cloudera/impala/planner/Planner.java M fe/src/main/java/com/cloudera/impala/planner/SelectNode.java M fe/src/main/java/com/cloudera/impala/planner/SingleNodePlanner.java M fe/src/main/java/com/cloudera/impala/planner/SingularRowSrcNode.java M fe/src/main/java/com/cloudera/impala/planner/SortNode.java M fe/src/main/java/com/cloudera/impala/planner/SubplanNode.java M fe/src/main/java/com/cloudera/impala/planner/UnionNode.java M fe/src/main/java/com/cloudera/impala/planner/UnnestNode.java M testdata/workloads/functional-planner/queries/PlannerTest/implicit-joins.test M testdata/workloads/functional-planner/queries/PlannerTest/join-order.test M testdata/workloads/functional-planner/queries/PlannerTest/joins.test M testdata/workloads/functional-planner/queries/PlannerTest/nested-collections.test M testdata/workloads/functional-planner/queries/PlannerTest/nested-loop-join.test M testdata/workloads/functional-planner/queries/PlannerTest/outer-joins.test M testdata/workloads/functional-planner/queries/PlannerTest/tpch-nested.test 27 files changed, 494 insertions(+), 410 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/46/3846/2 -- To view, visit http://gerrit.cloudera.org:8080/3846 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If86db7753fc585bb4c69612745ec0103278888a4 Gerrit-PatchSet: 2 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Alex Behm <[email protected]>
