Joins currently only support equality predicates, like `A.x = B.y`. We should be flexible enough to handle arbitrary predicates, including inequalities.