The problem is that if left argument is NULL (or could be other) comporison function do not check right argument (subquery) so subquery which was not executed return false on query of empty set, but ALL subquery with empty set should alway return TRUE independently on left part.
The problem is that if left argument is NULL (or could be other) comporison function do not check right argument (subquery) so subquery which was not executed return false on query of empty set, but ALL subquery with empty set should alway return TRUE independently on left part.