OffsetWindowFunction Contract — Unevaluable Window Function Expressions

OffsetWindowFunction is the base of window function expressions that are unevaluable and ImplicitCastInputTypes.

An unevaluable expression cannot be evaluated to produce a value (neither in interpreted nor code-generated expression evaluations) and has to be resolved (replaced) to some other expressions or logical operators at analysis or optimization phases or they fail analysis.
package org.apache.spark.sql.catalyst.expressions

abstract class OffsetWindowFunction ... {
  // only required properties (vals and methods) that have no implementation
  // the others follow
  val default: Expression
  val direction: SortDirection
  val input: Expression
  val offset: Expression
Table 1. (Subset of) OffsetWindowFunction Contract
Property Description





OffsetWindowFunction uses the input, offset and default expressions as the children.

OffsetWindowFunction is not foldable.

OffsetWindowFunction is nullable when the default is not defined or the default or the input expressions are.

When requested for the dataType, OffsetWindowFunction simply requests the input expression for the data type.

When requested for the inputTypes, OffsetWindowFunction returns the AnyDataType, IntegerType with the data type of the input expression and the NullType.

OffsetWindowFunction uses the following text representation (i.e. toString):

[prettyName]([input], [offset], [default])
Table 2. OffsetWindowFunctions (Direct Implementations)
OffsetWindowFunction Description



frame Lazy Property

frame: WindowFrame
frame is part of the WindowFunction Contract to define the WindowFrame for function expression execution.


Verifying Input Data Types — checkInputDataTypes Method

checkInputDataTypes(): TypeCheckResult
checkInputDataTypes is part of the Expression Contract to verify (check the correctness of) the input data types.


results matching ""

    No results matching ""