substrait icon indicating copy to clipboard operation
substrait copied to clipboard

Refactor JoinType for physical operators

Open danepitkin opened this issue 1 year ago • 0 comments

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.

danepitkin avatar Oct 13 '23 15:10 danepitkin