@Override
    public List<Object> next() throws HiveException {
      if (dummyRow != null) {
        // TODO: what should we do if first was never called? for now, assert for clarity
        if (!wasFirstCalledOnDummyRow) {
          throw new AssertionError("next called without first");
        }
        return null;
      }

      WriteBuffers.ByteSegmentRef byteSegmentRef = hashMapResult.next();
      if (byteSegmentRef == null) {
        return null;
      } else {
        return unpack(byteSegmentRef);
      }

    }
Sometimes, when container is empty in multi-table mapjoin, we need to add a dummy row.
This container does not normally support adding rows; this is for the dummy row.
ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinBytesTableContainer.java