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


##########
be/src/storage/iterator/block_reader.cpp:
##########
@@ -106,7 +125,30 @@ Status BlockReader::_ensure_binlog_column_pos(const Block& 
src_block) {
         } else {
             std::string before_name = binlog::build_before_column_name(name);
             int tmp_idx = src_block.get_position_by_name(before_name);
-            _before_column_idx[i] = tmp_idx < 0 ? i : tmp_idx;
+            if (tmp_idx >= 0) {

Review Comment:
   [P1] Pair BEFORE values by schema identity, not first matching name. Doris 
permits a user value named __BEFORE__v__, while row-binlog generation also 
gives v's mirror that name. Block::get_position_by_name() selects the earlier 
user AFTER column, so this loop builds a complete-looking but wrong graph. For 
two same-typed values v and __BEFORE__v__, updates (0,1)->(1,2)->(2,1) make all 
three erroneous comparisons equal and this PR emits SKIP even though v changed 
from 0 to 2. Please disambiguate generated names or resolve pairs by unique 
id/ordinal, and cover this collision end to end.



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