Alex Behm has uploaded a new patch set (#3). Change subject: IMPALA-3084: Cache the sequence of table ref and materialized tuple ids during analysis. ......................................................................
IMPALA-3084: Cache the sequence of table ref and materialized tuple ids during analysis. The bug: For correct predicate assignment we rely on TableRef.getAllTupleIds() and TableRef.getMaterializedTupleIds(). The implementation of those functions used to traverse the chain of table refs and collect the appropriate ids. However, during plan generation we alter the chain of table refs, in particular, for dealing with nested collections, so those altered TableRefs do not return the expected list of ids, leading to wrong decisions in predicate assignment. The fix: Cache the lists of ids during analysis, so we are free to alter the chain of TableRefs during plan generation. Change-Id: I298b8695c9f26644a395ca9f0e86040e3f5f3846 --- M fe/src/main/java/com/cloudera/impala/analysis/Analyzer.java M fe/src/main/java/com/cloudera/impala/analysis/SingularRowSrcTableRef.java M fe/src/main/java/com/cloudera/impala/analysis/TableRef.java M fe/src/main/java/com/cloudera/impala/planner/HdfsScanNode.java M fe/src/main/java/com/cloudera/impala/planner/SingleNodePlanner.java M fe/src/test/java/com/cloudera/impala/analysis/AnalyzeStmtsTest.java M testdata/workloads/functional-planner/queries/PlannerTest/join-order.test M testdata/workloads/functional-planner/queries/PlannerTest/nested-collections.test M testdata/workloads/functional-planner/queries/PlannerTest/tpch-nested.test 9 files changed, 252 insertions(+), 214 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala refs/changes/15/2415/3 -- To view, visit http://gerrit.cloudera.org:8080/2415 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I298b8695c9f26644a395ca9f0e86040e3f5f3846 Gerrit-PatchSet: 3 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Alex Behm <[email protected]> Gerrit-Reviewer: Alex Behm <[email protected]> Gerrit-Reviewer: Marcel Kornacker <[email protected]>
