Description
The case at https://github.com/apache/spark/blob/75146be6ba5e9f559f5f15430310bb476ee0812c/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala#L1790-L1792 is shown below
case we @ WindowExpression(e, s @ WindowSpecDefinition(_, o, UnspecifiedFrame)) => val frame = SpecifiedWindowFrame.defaultWindowFrame(o.nonEmpty, acceptWindowFrame = true) we.copy(windowSpec = s.copy(frameSpecification = frame))
This case will be triggered even when the function is an unresolved. So, when the functions like lead are used, we may see errors like Window Frame RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW must match the required frame ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING. because we wrongly set the the frame specification.
Attachments
Issue Links
- links to