@Override
  public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
    assert traitSet.containsIfApplicable(HiveRelNode.CONVENTION);
    return new HiveMultiJoin(
        getCluster(),
        inputs,
        condition,
        rowType,
        joinInputs,
        joinTypes,
        filters);
  }
Constructs a MultiJoin.

@param cluster               cluster that join belongs to
@param inputs                inputs into this multi-join
@param condition             join filter applicable to this join node
@param rowType               row type of the join result of this node
@param joinInputs
@param joinTypes             the join type corresponding to each input; if
                             an input is null-generating in a left or right
                             outer join, the entry indicates the type of
                             outer join; otherwise, the entry is set to
                             INNER
@param filters               filters associated with each join
                             input
@param joinPredicateInfo     join predicate information
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveMultiJoin.java