eldenmoon opened a new pull request, #64085:
URL: https://github.com/apache/doris/pull/64085
### What problem does this PR solve?
Issue Number: close #0
Related PR: #0
Problem Summary: Copying a VARIANT subcolumn range could skip the source
subcolumn's pending default suffix. The destination variant kept the requested
logical row count while its finalized root column could remain physically
shorter than the copied range. Exchange and join paths that copy blocks
containing such VARIANT columns could then read missing rows, fail, or return
unstable results. The fix appends the remaining default rows after copied
physical parts so the logical and physical row counts stay aligned.
### Release note
Fix an issue where queries using VARIANT columns through exchange or join
paths could fail or return unstable results when copied VARIANT subcolumns
contained pending default rows.
### Check List (For Author)
- Test
- [x] Unit Test: ./run-be-ut.sh --run
--filter='ColumnVariantTest.insert_range_from_materializes_pending_default_suffix'
- [x] Build: ./build.sh --be
- [x] Manual test: local-shuffle LEFT ANTI query loop, 8 workers x 100
iterations, all 800 results were 0 with no ColumnVector or insert_range_from
errors.
- [x] Manual test: constructed complex VARIANT hash join with local
shuffle enabled and disabled returned identical hashes; local shuffle enabled
loop was stable for 100 iterations.
- [x] Format: build-support/clang-format.sh and
build-support/check-format.sh
- Behavior changed:
- [x] Yes. VARIANT range copies now materialize pending default rows so
copied columns remain physically aligned with logical row counts.
- Does this need documentation?
- [x] 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]