private void freeNonColumns(VectorExpression[] vectorChildren) {
    if (vectorChildren == null) {
      return;
    }
    for (VectorExpression v : vectorChildren) {
      if (!(v instanceof IdentityExpression
            // it's not safe to reuse ConstantVectorExpression's output as a scratch column, see HIVE-26408
            || v instanceof ConstantVectorExpression)) {
        ocm.freeOutputColumn(v.getOutputColumnNum());
      }
    }
  }
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