mrhhsg opened a new pull request, #69903: URL: https://github.com/apache/doris/pull/69903
## Problem Nested-column pruning can narrow a STRUCT slot for a short-circuit point query, while the stored row payload still uses the full complex-column layout. Decoding that payload through the narrowed slot can misinterpret field boundaries and read beyond the buffer. ## Changes - Skip nested-column pruning for short-circuit point queries in the FE, preserving the full slot layout used by row-store decoding. Normal scan pruning is unchanged. - Validate point-query access paths before the BE creates reusable blocks and SerDes. Accept a whole-column DATA root path only when the descriptor type matches the stored column type, including STRUCT field names and order; reject nested or narrowed layouts with an explicit error. This also permits compatible full-column descriptors from older FEs. - Add BE unit coverage for full-column root paths and incompatible nested, narrowed, and reordered paths. - Add a row-store P0 regression for missing and existing nested map keys with the relevant query switches on and off, including repeated short-circuit execution. ## Validation - ASAN BE/FE build: passed; FE Checkstyle reported no violations. - `PointQueryReusableTest.*`: 2/2 passed. - `PruneNestedColumnTest`: 42/42 passed (FE source unchanged since this run). - `point_query_p0/test_rowstore_nested_pruning_minimal`: passed after expected-output generation and a separate normal rerun on the final BE implementation. All four missing-key results are NULL and all four existing-key results are 13. - Existing `point_query_p0/test_rowstore` suites: passed before the final small BE guard adjustment; not rerun on the final commit. - Formatting and diff whitespace checks: passed. - Changed-line clang-tidy check: not passing because of an unmatched `NOLINTEND` in unchanged `be/src/core/types.h`; it reported no diagnostics on changed lines. A live mixed-version FE/BE deployment was not exercised. -- 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]
