public RowResolver duplicate() {
    RowResolver resolver = new RowResolver();
    resolver.rowSchema = new RowSchema(rowSchema);
    for (Map.Entry<String, Map<String, ColumnInfo>> entry : rslvMap.entrySet()) {
      resolver.rslvMap.put(entry.getKey(), new LinkedHashMap<>(entry.getValue()));
    }
    resolver.invRslvMap.putAll(invRslvMap);
    resolver.altInvRslvMap.putAll(altInvRslvMap);
    resolver.expressionMap.putAll(expressionMap);
    resolver.isExprResolver = isExprResolver;
    for (Map.Entry<String, Map<String, String>> entry : ambiguousColumns.entrySet()) {
      resolver.ambiguousColumns.put(entry.getKey(), new LinkedHashMap<>(entry.getValue()));
    }
    resolver.ambiguousColumns.putAll(ambiguousColumns);
    resolver.checkForAmbiguity = checkForAmbiguity;
    return resolver;
  }
Return a new row resolver that is combination of left RR and right RR.
The schema will be schema of left, schema of right

@param leftRR
@param rightRR
@return
@throws SemanticException
ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java