Clean left semi join hash

Some improvement for PR #837, add another case to white list and use `filter` to build result iterator.