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]

Reply via email to