mrhhsg opened a new pull request, #69395:
URL: https://github.com/apache/doris/pull/69395

   ### What problem does this PR solve?
   
   Issue Number: None
   
   Related PR: None
   
   Problem Summary: Non-empty single-version rowsets can store physical 
placeholders for publish-time hidden VERSION and TSO columns. Single-version 
readers synthesize the published values from rowset metadata, but ordered 
file-link compaction can combine those rowsets into a multi-version output 
whose reader uses the physical placeholders. This can return incorrect 
hidden-column values and time-travel results. Reject file links only when the 
rowsets actually selected for linking contain unmaterialized hidden values, so 
the existing merge path materializes them. Already-materialized range rowsets 
and safe tidy prefixes remain eligible for file linking. The guard also covers 
the changelog quick-merge path.
   
   ### Release note
   
   Fix incorrect hidden VERSION and COMMIT_TSO values after local ordered 
compaction.
   
   ### Check List (For Author)
   
   - Test:
     - ASAN BE+FE build (`BUILD_TYPE=ASAN ./build.sh --be --fe -j32`), 
including FE Checkstyle: passed.
     - BE unit tests (`./run-be-ut.sh --run 
--filter='OrderedDataCompactionTest.*' -j32`): 6 passed.
     - `test_ordered_compaction_hidden_version_column` regression: generated 
expected output and passed a normal verification run with changelog and binlog 
feature flags enabled (1/1); VERSION, COMMIT_TSO, and time-travel checks 
executed.
     - `clang-format`, `check-format`, build hygiene, changed-line 
`clang-tidy`, and `git diff --check`: passed.
     - Test coverage limitation: the COMMIT_TSO/time-travel branch is skipped 
when changelog is enabled but binlog is disabled; the changelog quick-merge 
fallback and CHANGELOG_TSO values are not directly runtime-tested.
   - Behavior changed: Yes. Unsafe ordered links fall back to normal merge 
compaction; safe, already-materialized prefixes remain linkable.
   - Does this need documentation: No


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