Integer genRexNodeRegex(String colRegex, String tabAlias, ASTNode sel,
        List<RexNode> exprList, Set<ColumnInfo> excludeCols, RowResolver input,
        RowResolver colSrcRR, Integer pos, RowResolver output, List<String> aliases,
        boolean ensureUniqueCols) throws SemanticException {
      List<org.apache.commons.lang3.tuple.Pair<ColumnInfo, RowResolver>> colList = new ArrayList<>();
      Integer i = genColListRegex(colRegex, tabAlias, sel,
          colList, excludeCols, input, colSrcRR, pos, output, aliases, ensureUniqueCols);
      for (org.apache.commons.lang3.tuple.Pair<ColumnInfo, RowResolver> p : colList) {
        exprList.add(RexNodeTypeCheck.toExprNode(p.getLeft(), p.getRight(), 0, cluster.getRexBuilder()));
      }
      return i;
    }
NOTE: there can only be one select caluse since we don't handle multi destination insert.
@param isAllColRefRewrite
         when it is true, it means that it is called from group by *, where we use
         genSelectLogicalPlan to rewrite *
@return RelNode: the select relnode RowResolver: i.e., originalRR, the RR after select when there is an order by.
ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java