Check whether the `op` condition is null rejected, if yes, derive `col is not null` for both sides of inner join, and for inner side of outer join. Also, remove duplicate conditions before pushing them down. Check if the condition is mutable before removing duplicates. For AntiSemiJoin, AntiLeftOuterSemiJoin and LeftOuterSemiJoin, do not generate new `is not null` conditions.