HappenLee opened a new pull request, #65344:
URL: https://github.com/apache/doris/pull/65344

   ### What problem does this PR solve?
   
   Issue Number: None
   
   Related PR: None
   
   Problem Summary: Lazy pruned complex-column reads can materialize only KEYS 
or VALUES for a MAP nested under a STRUCT when predicate evaluation reads 
another path. The skipped MAP side stayed empty in the lazy phase, so ColumnMap 
offsets no longer matched key/value column sizes. This patch fills defaults for 
a skipped MAP child according to the element count while leaving 
predicate-materialized children untouched.
   
   ### Release note
   
   Fix MAP nested column pruning with lazy materialization when only map keys 
or values are projected.
   
   ### Check List (For Author)
   
   - Test: Unit Test: ./run-be-ut.sh -j 48 --run 
--filter=ColumnReaderTest.MapNextBatchLazyFillsSkippedKeyOrValueColumn:ColumnReaderTest.MapReadByRowidsLazyFillsSkippedKeyOrValueColumn
   - Test: Regression test: ./run-regression-test.sh --run --conf 
/tmp/doris_26821_regression-conf.groovy -d datatype_p0/complex_types -s 
test_pruned_struct_map_lazy
   - Test: Static analysis: 
CLANG_TIDY_BINARY=/mnt/disk6/common/ldb_toolchain_028/bin/clang-tidy 
build-support/run-clang-tidy.sh --files 
be/src/storage/segment/column_reader.cpp 
be/test/storage/segment/column_reader_test.cpp --build-dir be/ut_build_ASAN
   - Behavior changed: Yes. MAP nested lazy materialization now keeps key/value 
child sizes aligned when one side is pruned.
   - 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