beliefer commented on code in PR #43958: URL: https://github.com/apache/spark/pull/43958#discussion_r1421411335
########## sql/core/src/main/scala/org/apache/spark/sql/execution/window/WindowFunctionFrame.scala: ########## @@ -317,34 +342,24 @@ class UnboundedOffsetWindowFunctionFrame( offset: Int, ignoreNulls: Boolean = false) extends OffsetWindowFunctionFrameBase( - target, ordinal, expressions, inputSchema, newMutableProjection, offset) { + target, ordinal, expressions, inputSchema, newMutableProjection, offset, ignoreNulls) { assert(offset > 0) - override def prepare(rows: ExternalAppendOnlyUnsafeRowArray): Unit = { - if (offset > rows.length) { + override def prepareForIgnoreNulls(): Unit = { + super.prepareForIgnoreNulls() + if (nextSelectedRow == EmptyRow) { + // Use default values since the offset row whose input value is not null does not exist. fillDefaultValue(EmptyRow) } else { - resetStates(rows) - if (ignoreNulls) { - findNextRowWithNonNullInput() - if (nextSelectedRow == EmptyRow) { - // Use default values since the offset row whose input value is not null does not exist. - fillDefaultValue(EmptyRow) - } else { - projection(nextSelectedRow) - } - } else { - var selectedRow: UnsafeRow = null - // drain the first few rows if offset is larger than one - while (inputIndex < offset) { - selectedRow = WindowFunctionFrame.getNextOrNull(inputIterator) - inputIndex += 1 - } - projection(selectedRow) - } + projection(nextSelectedRow) Review Comment: Because this is unbounded frame. So the output for each row is the same. We can get the offset value of unbounded frame in read phase. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org