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]