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

   ### What problem does this PR solve?
   
   Parquet V2 footer/schema errors can reach the client without identifying the 
input file. A Variant fallback error also reports only a wrapper name such as 
`element`, which does not identify the field or explain which part of its 
declaration is invalid.
   
   Attach the source file path to errors returned while reading/parsing the 
native footer, preserving the original status code and message. For invalid 
Variant fallback values, also report the path relative to the Variant root, 
declared physical type, repetition, and child count. Diagnostic paths are 
constructed only on failure; repeated primitive declarations are recovered from 
the normalized array child.
   
   Example diagnostic:
   ```text
   Failed to read Parquet footer for 's3://example-bucket/nested.parquet': 
Parquet Variant wrapper element value must be an optional BYTE_ARRAY; 
variant_path=payload.typed_value.element.value, physical_type=BYTE_ARRAY, 
repetition=REQUIRED, children=0
   ```
   
   The accepted file layouts and read semantics are unchanged.
   
   ### Validation
   
   - Confirmed the three new diagnostic tests fail against the original 
implementation.
   - Rebuilt the changed translation units and schema tests in a focused ASAN 
test binary: all 45 `ParquetSchemaTest.*` tests passed.
   - Coverage includes required/repeated fallback leaves, incorrect physical 
types, group fallback values, a valid control, unsupported Variant versions, 
and truncated footers.
   - clang-format 16.0.6 verification on all affected C++ files and `git diff 
--check` passed.
   
   ### Release note
   
   Parquet V2 footer errors now identify the input file. Invalid Variant 
fallback errors additionally describe the field path and actual schema 
declaration.
   
   ### Check List (For Author)
   
   - Test
       - [x] Unit Test
   - Behavior changed:
       - [x] Yes. Error diagnostics include file and schema context; status 
codes and validation rules are preserved.
   - Does this need documentation?
       - [x] No.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   


-- 
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