eldenmoon opened a new pull request, #64132:
URL: https://github.com/apache/doris/pull/64132
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: Local shuffle and lazy materialization paths can share
input blocks while evaluating Variant expressions. Some Variant operations
finalized, cached, or extended shared subcolumns in-place, so another consumer
could observe a mutated column layout or a mismatched row count. Nullable rows
materialized by nested-loop join also needed to preserve null defaults when
repeating a selected row. This change keeps const Variant lookups from updating
the path cache, makes Variant clone/exclusive checks cover nested internal
columns, preserves pending Variant defaults during cast/serialization, and
materializes nullable joined rows without reading from empty nested data
columns.
### Release note
Fix unstable local-shuffle query results and Variant cast failures caused by
shared Variant column mutation.
### Check List (For Author)
- Test:
- BE UT: `env -u http_proxy -u https_proxy -u HTTP_PROXY -u HTTPS_PROXY
-u all_proxy -u ALL_PROXY ./run-be-ut.sh --run
--filter='ColumnVariantTest.clone_finalized_deep_copies_columns:ColumnVariantTest.serialize_does_not_finalize_source_column:ColumnVariantTest.block_serialize_does_not_finalize_source_column:ColumnVariantTest.insert_range_from_materializes_pending_default_suffix:FunctionVariantCast.CastFromVariant:FunctionVariantCast.CastFromVariantDoesNotFinalizeSourceColumn:FunctionVariantCast.CastFromVariantJsonbPrefixDoesNotFinalizeSourceColumn:FunctionVariantCast.CastFromVariantZeroRowPrefixDoesNotFinalizeSourceColumn:FunctionVariantCast.CastFromFinalizedVariantJsonbPrefix:FunctionVariantCast.CastFromNullableVariantPrefixDoesNotFinalizeSourceColumn'`
- Format: `PATH=/mnt/disk1/claude-max/ldb_toolchain16/bin:$PATH
build-support/clang-format.sh`
- Check: `git diff --check upstream/master`
- Behavior changed: Yes. Variant casts, serialization, and local-shuffle
consumers no longer mutate shared Variant columns.
- 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]