mrhhsg opened a new pull request, #63780:
URL: https://github.com/apache/doris/pull/63780
### What problem does this PR solve?
Issue Number: None
Related PR: #59263
Problem Summary: Nested column pruning can read only predicate subpaths
before filtering. When a remaining conjunct also needs the same complex column
as a common expression, pruned non-predicate subpaths still need to be
materialized after row filtering. This change introduces an explicit deferred
read phase for pruned complex columns. Predicate reads keep parent metadata and
predicate subpaths, deferred reads materialize the remaining nested targets by
selected rowids, and the finalization step removes temporary default
placeholders before returning the column. The implementation keeps the phase
and nested read plan on the iterator, propagates predicate/deferred intent
through array/map/struct children, and exposes the prune switch through
TQueryOptions.
### Release note
Improve nested column pruning read behavior for complex columns used by both
predicates and remaining expressions.
### Check List (For Author)
- Test: Unit Test
- `DORIS_HOME=/mnt/disk7/hushenggang/doris-abs ninja -C be/ut_build_ASAN
src/storage/CMakeFiles/Storage.dir/segment/column_reader.cpp.o
src/storage/CMakeFiles/Storage.dir/segment/segment_iterator.cpp.o
test/CMakeFiles/doris_be_test.dir/storage/segment/column_reader_test.cpp.o`
- `build-support/clang-format.sh`
- `git diff --check`
- Not run: full `ColumnReaderTest` binary and regression suite in this
worktree.
- Behavior changed: Yes. Pruned complex common-expression columns can defer
non-predicate nested materialization until after filtering.
- 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]