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]

Reply via email to