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]