private Map<ExprNodeDesc, String> searchForEqualitiesDefault(
            Operator<?> operator, Set<ExprNodeColumnDesc> exprNodeDescSet) {
      Map<String, ExprNodeDesc> columnExprMap = operator.getColumnExprMap();
      // Some operators do not have columnExprMap. Example: FilterOperator.
      if (columnExprMap == null) {
        if (operator.getParentOperators().size() == 1) {
          return searchForEqualities(operator.getParentOperators().get(0), exprNodeDescSet);
        } else {
          return Collections.emptyMap();
        }
      }

      Set<ExprNodeColumnDesc> mapped = new HashSet<>(exprNodeDescSet.size());
      Map<ExprNodeDesc, ExprNodeDesc> newOldMap = new HashMap<>(exprNodeDescSet.size());
      for (ExprNodeColumnDesc exprNodeDesc : exprNodeDescSet) {
        ExprNodeDesc valueDesc = operator.getColumnExprMap().get(exprNodeDesc.getColumn());
        if (valueDesc instanceof ExprNodeColumnDesc) {
          mapped.add((ExprNodeColumnDesc) valueDesc);
          newOldMap.put(valueDesc, exprNodeDesc);
        }
      }
      if (operator.getParentOperators().size() == 1) {
        Map<ExprNodeDesc, String> equalities = searchForEqualities(operator.getParentOperators().get(0), mapped);
        Map<ExprNodeDesc, String> mappedEqualities = new HashMap<>(equalities.size());
        for (Entry<ExprNodeDesc, String> eqEntry : equalities.entrySet()) {
          for (Entry<String, ExprNodeDesc> colMapEntry : operator.getColumnExprMap().entrySet()) {
            if (!(colMapEntry.getValue() instanceof ExprNodeColumnDesc)) {
              continue;
            }
            if (((ExprNodeColumnDesc) colMapEntry.getValue()).getColumn().equals(eqEntry.getValue())) {
              mappedEqualities.put(newOldMap.get(eqEntry.getKey()), colMapEntry.getKey());
              break;
            }
          }
        }
        return mappedEqualities;
      } else {
        return Collections.emptyMap();
      }
    }
Default equality search method.
1. Maps all columns specified in exprNodeDescSet to the input column using operators columnExprMap.
2. Search for equalities in the parent operator.
3. Map back the keys and values in the result equalities map using operators columnExprMap.
If columnExprMap is null no remapping is required.
@param operator operator to traverse.
@param exprNodeDescSet set of columns search equal columns for
@return Map of equal columns: key column coming from the passed exprNodeDescSet, value the name of equal input
column of current operator.
ql/src/java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java