public boolean isCacheableForRange() {
    return true;
  }
Whether the results calculated by this evaluator are eligible for caching by PTFValueCache. A
result of an evaluator is cacheable, if it returns the same value for the same range within the
a PTF partition, regardless of which row the current result is calculated for. That's typically
true for most of the evaluators (e.g. sum), but not true for e.g.
lead/lag/first_value/last_value, as their results only depend on a relation between the current
and some reference row (instead of ranges).
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFEvaluatorBase.java