use datafusion_expr::JoinType;
pub(super) fn is_right_existence_join(join_type: JoinType) -> bool {
matches!(
join_type,
JoinType::RightAnti | JoinType::RightSemi | JoinType::RightMark
)
}
pub(super) fn is_existence_join(join_type: JoinType) -> bool {
matches!(
join_type,
JoinType::LeftAnti
| JoinType::RightAnti
| JoinType::LeftSemi
| JoinType::RightSemi
| JoinType::LeftMark
| JoinType::RightMark
)
}
pub(super) fn need_produce_result_in_final(join_type: JoinType) -> bool {
matches!(join_type, JoinType::Full | JoinType::Left)
}
pub(super) fn build_visited_indices_map(join_type: JoinType) -> bool {
matches!(
join_type,
JoinType::Full
| JoinType::Left
| JoinType::LeftAnti
| JoinType::RightAnti
| JoinType::LeftSemi
| JoinType::RightSemi
| JoinType::LeftMark
| JoinType::RightMark
)
}