private String recommendName(RexNode exp, String colAlias, RowResolver rowResolver) {
    if (!colAlias.startsWith(autogenColAliasPrfxLbl)) {
      return null;
    }
    String column = recommendInputName(exp, rowResolver);
    if (column != null && !column.startsWith(autogenColAliasPrfxLbl)) {
      return column;
    }
    return null;
  }
Generates all of the Calcite {@link RexNode}s for the expression and children of it
passed in the arguments. This function uses the row resolver and the metadata information
that are passed as arguments to resolve the column names to internal names.

@param expr
         The expression
@param input
         The row resolver
@param tcCtx
         Customized type-checking context
@return expression to exprNodeDesc mapping
@throws SemanticException Failed to evaluate expression
ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java