@SuppressWarnings("rawtypes")
  private int compareKey(final WritableComparator comparators[], final int pos,
      final Object key_1,
      final Object key_2,
      final boolean nullsafe) {
    if (comparators[pos] == null) {
      comparators[pos] = WritableComparatorFactory.get(key_1, nullsafe, nullOrdering);
    }
    return comparators[pos].compare(key_1, key_2);
  }
Decides if the actual row must be an unmatched row.

Unmatched rows are those which are not part of the inner-join.
The current implementation has issues processing filtered rows in FOJ conditions.
Putting them in a separate group also reduces processing done for them.
ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java