private static ExprNodeDesc backtrack(ExprNodeColumnDesc column, Operator<?> current,
      Operator<?> terminal, boolean stayInSameVertex) throws SemanticException {
    Map<String, ExprNodeDesc> mapping = current.getColumnExprMap();
    if (mapping == null) {
      return backtrack(column, current, terminal, false, stayInSameVertex);
    }
    ExprNodeDesc mapped = mapping.get(column.getColumn());
    return mapped == null ? null : backtrack(mapped, current, terminal, false, stayInSameVertex);
  }
Convert expressions in current operator to those in terminal operator, which
is an ancestor of current or null (back to top operator).
Possibly contain null values for non-traceable exprs
ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java