aryash45 commented on code in PR #60776:
URL: https://github.com/apache/doris/pull/60776#discussion_r2821025782


##########
be/src/vec/columns/column_string.cpp:
##########
@@ -238,7 +238,28 @@ void ColumnStr<T>::insert_many_from(const IColumn& src, 
size_t position, size_t
 template <typename T>
 void ColumnStr<T>::insert_indices_from(const IColumn& src, const uint32_t* 
indices_begin,
                                        const uint32_t* indices_end) {
+    if (indices_begin == indices_end) {
+        return;

Review Comment:
   Hey, I traced the call chain and the indices come from 
channel_add_rows_with_idx in the exchange sink path — specifically during 
_send_new_partition_batch which recursively calls sink(). That recursive flow 
seems to be where stale indices get produced.
   
   I couldn't fully reproduce though since I don't have a multi-node cluster to 
trigger the exact INSERT...SELECT scenario. Do you have any tips on reproducing 
this, or would fixing the validation at MutableBlock::add_rows (which only has 
a DCHECK, stripped in release) be an acceptable approach?



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