private List<RexNode> getOperandsForUDTF(ASTNode functionCall,
      RowResolver inputRR) throws SemanticException {
    List<RexNode> operands = new ArrayList<>();
    TypeCheckCtx tcCtx = new TypeCheckCtx(inputRR, this.cluster.getRexBuilder(), false, false);
    tcCtx.setUnparseTranslator(this.unparseTranslator);
    // Start at 1 because value 0 is the function name.  Use the CalcitePlanner.genRexNode
    // to retrieve the RexNode for all the function parameters.
    for (int i = 1; i < functionCall.getChildren().size(); ++i) {
      ASTNode functionParam = (ASTNode) functionCall.getChild(i);
      operands.add(CalcitePlanner.genRexNode(functionParam, inputRR, tcCtx, this.conf));
    }
    return 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