substrait
substrait copied to clipboard
Refactor JoinType for physical operators
HashJoin, MergeJoin, and NestedLoopJoin all duplicate the JoinType:
enum JoinType {
JOIN_TYPE_UNSPECIFIED = 0;
JOIN_TYPE_INNER = 1;
JOIN_TYPE_OUTER = 2;
JOIN_TYPE_LEFT = 3;
JOIN_TYPE_RIGHT = 4;
JOIN_TYPE_LEFT_SEMI = 5;
JOIN_TYPE_RIGHT_SEMI = 6;
JOIN_TYPE_LEFT_ANTI = 7;
JOIN_TYPE_RIGHT_ANTI = 8;
}
Let's create a shared JoinType for physical operators.
Let's also change left/right anti-joins to specify NULL handling e.g. JOIN_TYPE_RIGHT_ANTI_WITH_NULL and JOIN_TYPE_RIGHT_ANTI_WITHOUT_NULL. See this discussion for more detail.