prakharjain09 opened a new issue, #2518:
URL: https://github.com/apache/iceberg-rust/issues/2518
### Is your feature request related to a problem or challenge?
`FileScanTask.name_mapping` is always set to `None` during scan planning,
even when the table sets the `schema.name-mapping.default` property. This
leaves a TODO in the code:
https://github.com/apache/iceberg-rust/blob/main/crates/iceberg/src/scan/cont
ext.rs#L140
```rust
// TODO: Extract name_mapping from table metadata property
"schema.name-mapping.default"
name_mapping: None,
Impact
Readers rely on the name mapping to resolve field IDs for Parquet files
that
either lack field IDs or have conflicting ones — the existing
record-batch-transformer and projection code already handles
Some(NameMapping) correctly, but the value never reaches it from the
planner.
As a result, **scans of tables that depend on schema.name-mapping.default
(e.g. tables migrated from Hive, files written without Iceberg field-ID
metadata) silently fall back to position-based ID assignment**.
### Describe the solution you'd like
Parse the schema.name-mapping.default property once in
TableScanBuilder::build, store the resulting Arc<NameMapping> on
PlanContext,
and thread it through ManifestFileContext and ManifestEntryContext so it
lands on FileScanTask. Malformed JSON should surface as
ErrorKind::DataInvalid from build() rather than being silently dropped.
### Willingness to contribute
I would be willing to contribute to this feature with guidance from the
Iceberg Rust community
--
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]