| supportMarkJoin() |  | 0% |  | 0% | 5 | 5 | 1 | 1 | 1 | 1 |
| isAntiJoin() |  | 0% |  | 0% | 4 | 4 | 1 | 1 | 1 | 1 |
| isAntiJoinNoNullAware() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| isLeftSemiJoin() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| isRightOuterJoin() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| isSemiAntiJoin() |   | 89% |   | 50% | 5 | 6 | 0 | 1 | 0 | 1 |
| isSemiJoin() |   | 89% |   | 50% | 5 | 6 | 0 | 1 | 0 | 1 |
| isSemiOrAntiJoinNoNullAware() |   | 87% |   | 50% | 4 | 5 | 0 | 1 | 0 | 1 |
| isAntiJoinNullAware() |   | 71% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| isCrossJoin() |   | 71% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| isFullOuterJoin() |   | 71% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| isLeftOuterJoin() |   | 71% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 12 | 0 | 1 |
| isOuterJoin() |  | 100% |   | 83% | 1 | 4 | 0 | 1 | 0 | 1 |
| JoinOperator(String, int, String, TJoinOp) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| isInnerJoin() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| toString() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| toThrift() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |