mrhhsg opened a new pull request, #64242:
URL: https://github.com/apache/doris/pull/64242
### What problem does this PR solve?
Issue Number: None
Problem Summary: TopN lazy materialization can fetch pruned complex columns
by row id after nested-column pruning. The materialization tuple kept the
pruned slot type but did not preserve the relation slot access paths, so BE
could build full storage iterators and read full child layouts into pruned
result columns. Row-store lazy fetch also cannot apply nested access paths.
This patch carries relation slot access paths into lazy materialization slots,
disables row-store fetch for complex or nested-pruned lazy slots, passes slot
access paths to storage rowid fetch, and keeps struct iterators readable when
only some child fields are pruned.
### Release note
None
### Check List (For Author)
- Test:
- Build: `DISABLE_BE_JAVA_EXTENSIONS=OFF ./build.sh --be --fe`
- Unit Test: `./run-fe-ut.sh --run
org.apache.doris.nereids.glue.translator.PhysicalPlanTranslatorTest#testCanUseRowStoreForLazySlots`
- Regression test:
`~/.codex/skills/doris-local-regression/scripts/doris-local-regression.sh
--network 10.26.20.3/24 run -d nereids_rules_p0/column_pruning -s
topn_lazy_nested_column_pruning`
- Format: `build-support/clang-format.sh be/src/exec/rowid_fetcher.cpp
be/src/storage/segment/segment.cpp be/src/storage/segment/column_reader.cpp`
- Behavior changed: No
- 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]