There are cases where queries may contain useless or redundant pieces. The optimizer identifies redundant predicates. It now identifies situations where an outer join is completely useless and can be removed. This avoids fetching rows from a table and discarding them.
The following is an example of a case where the outer join can be removed:
select SUM(b.j) mysum FROM basic100k b LEFT OUTER JOIN rhs1 r ON b.i = r.f4;