private RexCall getLateralFunction(ASTNode functionAST, RowResolver inputRR, RelNode inputRel)
      throws SemanticException {
    RexCall udtfCall = getUDTFFunction(functionAST, inputRR);
    List<RexNode> operands = new ArrayList<>();
    operands.add(udtfCall);
    for (int i = 0; i < inputRel.getRowType().getFieldCount(); ++i) {
      RelDataType type = inputRel.getRowType().getFieldList().get(i).getType();
      operands.add(this.cluster.getRexBuilder().makeInputRef(type, i));
    }
    return (RexCall) this.cluster.getRexBuilder().makeCall(SqlStdOperatorTable.LATERAL, operands);
  }
LateralViewPlan is a helper class holding the objects needed for generating a Calcite
plan from an ASTNode. The object is to be generated when a LATERAL_VIEW token is detected.
From the ASTNode and relevant input node information, the following objects are created:
* A HiveTableFunctionScan RelNode
* A RowResolver containing the row resolving information output from the RelNode
* The table alias for the table generated by the UDTF and Lateral View
ql/src/java/org/apache/hadoop/hive/ql/parse/relnodegen/LateralViewPlan.java