quwin opened a new pull request, #26433: URL: https://github.com/apache/datafusion/pull/26433
## Which issue does this PR close? - Closes #26331. ## Rationale for this change UNNEST drops list-item metadata, so results lose Arrow extension-type information and metadata-aware SQL functions can reject their arguments during planning. ## What changes are included in this PR? - Preserve item fields in expression inference and logical-plan schemas using a shared internal field lookup. - Retain existing naming, nullability, struct, and error behavior. ## What is the testing strategy for this PR? The `unnest_list_item_metadata*` DataFrame tests cover all five list variants, two recursion depths, aliases, NULL/empty lists, and direct/subquery calls to a metadata-sensitive UDF. Ablation confirms each fix is exercised. All 22 DataFrame UNNEST tests, 284 expression unit tests, and three existing UNNEST SQL test files pass. The 22 UNNEST tests also pass under extended features. Unoptimized planning benchmarks against the base were mixed: the 1,000-column case was approximately 1–4% slower in repeat runs. Optimized builds were not measured. Validation limitation: all-features Clippy has the existing #26181 failure, reproduced on pristine sources. The full extended workspace suite has not completed locally. ## Are there any user-facing changes? UNNEST retains list-item metadata, including Arrow extension metadata, in inferred fields and result schemas. No public Rust API changes. -- 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]
