private VectorExpression getIdentityForDateToDate(List<ExprNodeDesc> childExprs,
      TypeInfo returnTypeInfo)
          throws HiveException {
    if (childExprs.size() != 1) {
      return null;
    }
    TypeInfo childTypeInfo = childExprs.get(0).getTypeInfo();
    if (childTypeInfo.getCategory() != Category.PRIMITIVE ||
        ((PrimitiveTypeInfo) childTypeInfo).getPrimitiveCategory() != PrimitiveCategory.DATE) {
      return null;
    }
    if (returnTypeInfo.getCategory() != Category.PRIMITIVE ||
        ((PrimitiveTypeInfo) returnTypeInfo).getPrimitiveCategory() != PrimitiveCategory.DATE) {
      return null;
    }
    return getIdentityExpression(childExprs);
  }
Used as a fast path for operations that don't modify their input, like unary +
and casting boolean to long. IdentityExpression and its children are always
projections.
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java