mirror of
https://github.com/apache/impala.git
synced 2026-01-08 03:02:48 -05:00
The bug: Multi-slot predicates bound to a single outer-joined tuple were not marked as materialized. In addition, such predicates were not picked up by nodes under the join via getBoundPredicates() even if it would be correct to do so. The fix: Always mark slots of predicates that must be evaluated by a join in SelectStmt.materializeRequiredSlots(), regardless of whether the predicate can also be safely evaluated below the join. This patch also generalizes getBoundPredicates() to handle multi-slot predicates and fixes some issues with redundant predicate assignment. Still, the new approach has several limitations which are documented in the predicate propatation planner test to ease future improvements. Change-Id: If5da0354a83c00a9766fc63b7780ed4d5a9c46e5 Reviewed-on: http://gerrit.ent.cloudera.com:8080/1717 Reviewed-by: Alex Behm <alex.behm@cloudera.com> Tested-by: jenkins Reviewed-on: http://gerrit.ent.cloudera.com:8080/1819