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]

Reply via email to