[fix](be) Harden FileScannerV2 schema and reader edge cases#65548
[fix](be) Harden FileScannerV2 schema and reader edge cases#65548Gabriel39 wants to merge 1 commit into
Conversation
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: FileScannerV2 treated valid empty splits as scan failures, localized promoted nested struct predicates with mismatched operand types, retained a process-global Parquet page-cache range index, and rejected whole Parquet schemas when unprojected leaves used unsupported logical types. This change skips and counts empty splits, casts localized nested leaves back to table types, scopes range metadata to each file reader, and defers unsupported-type errors until projection. Regression fixtures and commented examples cover empty CSV input, mixed Parquet struct leaf types, repeated multi-file scans, and an unprojected TIME_MILLIS column.
### Release note
Fix FileScannerV2 compatibility for empty files, evolved nested predicates, and Parquet files containing unprojected unsupported columns; reduce Parquet page-cache range-index contention and lifetime.
### Check List (For Author)
- Test: Regression test / Unit Test
- 55 targeted BE ASAN unit tests
- test_file_scanner_v2_review_fixes regression suite
- Behavior changed: Yes (valid empty splits are skipped; unsupported Parquet logical leaves fail only when projected)
- Does this need documentation: No
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
/review |
|
run buildall |
|
Codex automated review failed and did not complete. Error: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Jul 20th, 2026 12:23 AM. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
TPC-H: Total hot run time: 30262 ms |
TPC-DS: Total hot run time: 180840 ms |
ClickBench: Total hot run time: 24.99 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
|
/review |
|
Codex automated review failed and did not complete. Error: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Jul 20th, 2026 12:23 AM. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: FileScannerV2 treated valid empty splits as scan failures, localized promoted nested struct predicates with mismatched operand types, retained a process-global Parquet page-cache range index, and rejected whole Parquet schemas when unprojected leaves used unsupported logical types. This change skips and counts empty splits, casts localized nested leaves back to table types, scopes range metadata to each file reader, and defers unsupported-type errors until projection. Regression fixtures and commented examples cover empty CSV input, mixed Parquet struct leaf types, repeated multi-file scans, and an unprojected TIME_MILLIS column.
Release note
Fix FileScannerV2 compatibility for empty files, evolved nested predicates, and Parquet files containing unprojected unsupported columns; reduce Parquet page-cache range-index contention and lifetime.
Check List (For Author)