github-actions[bot] commented on code in PR #65240:
URL: https://github.com/apache/doris/pull/65240#discussion_r3526874434


##########
be/src/exec/operator/analytic_sink_operator.cpp:
##########
@@ -791,6 +797,7 @@ Status 
AnalyticSinkOperatorX::_add_input_block(doris::RuntimeState* state, Block
             RETURN_IF_ERROR(
                     _insert_range_column(input_block, 
local_state._partition_by_eq_expr_ctxs[i],
                                          
local_state._partition_by_columns[i].get(), block_rows));

Review Comment:
   This conversion only covers the partition/order comparison buffers. The 
aggregate argument buffers above still append through `_insert_range_column()` 
into `_agg_input_columns`, which also uses 
`insert_range_from_ignore_overflow()`, but those columns are later handed 
unchanged to `add_range_single_place()`. A large string-valued window aggregate 
such as `max(str) over(partition by u_city)` or `first_value(str) ...` can 
therefore still accumulate a `ColumnString` argument buffer past 4GB and read 
wrapped offsets; string min/max currently reads with `SingleValueDataString` 
via `ColumnString::get_data_at()`, and first/last/lead/lag keep row references 
into the same buffered columns. Please apply the overflow conversion to the 
aggregate argument buffers as well, and make sure the affected string window 
aggregate readers handle a promoted `ColumnString64` input.



-- 
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