github-actions[bot] commented on code in PR #67274:
URL: https://github.com/apache/doris/pull/67274#discussion_r3878910435
##########
be/src/exec/operator/analytic_sink_operator.cpp:
##########
@@ -66,6 +66,7 @@ Status AnalyticSinkLocalState::init(RuntimeState* state,
LocalSinkStateInfo& inf
_executor.get_next_impl =
&AnalyticSinkLocalState::_get_next_for_unbounded_rows;
} else {
_executor.get_next_impl =
&AnalyticSinkLocalState::_get_next_for_sliding_rows;
+ _is_sliding_rows = true;
Review Comment:
This flag is not set for `ROWS BETWEEN UNBOUNDED PRECEDING AND 5 PRECEDING`,
so the new retention gate still lets `_get_next_for_unbounded_rows()` lose its
next unread row. With two-row BE_TEST blocks containing 1-8, before row 6 the
state contains only row 0/value 1 and the next evaluation must add row 1/value
2, but cutoff 2 erases rows 0-1. After rebasing, the add range clips empty and
row 6 returns 1 instead of 3. Production has the same wrong-result path when
the PRECEDING offset exceeds the 256-block reclamation distance. Please extend
retention to this executor (preserving `max(partition_start, current +
rows_end_offset)`) and add a focused regression.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]