...
This document is based on a writeup of DB2 Outer Join Behavior. The original HTML document is attached to the Hive Design Docs and can be downloaded here.
Definitions
Preserved Row table | The table in an Outer Join that must return all rows. |
Null Supplying table | This is the table that has nulls filled in for its columns in unmatched rows. |
During Join predicate | A predicate that is in the JOIN ON clause. |
After Join predicate | A predicate that is in the WHERE clause. |
...
Hive Implementation
Hive enforces the predicate pushdown rules by these methods in the SemanticAnalyzer and JoinPPD classes:
Rule 1: During QBJoinTree construction in Plan Gen, the parse Join Condition parseJoinCondition()
logic applies this rule.
Rule 2: During JoinPPD (Join Predicate PushdownPushDown) the get Qualified Alias getQualifiedAliases()
logic applies this rule.
Examples
...