anoopj opened a new issue, #3501:
URL: https://github.com/apache/iceberg-rust/issues/3501
### Is your feature request related to a problem or challenge?
Follow-up to #3483 (comment:
https://github.com/apache/iceberg-rust/pull/3483#discussion_r4317779563).
After a partition source column is promoted (e.g. `int` -> `long`), values
written under the older, narrower schema must be widened to the current type
before they compare against predicates and delete-file partitions. #3483 does
this in two different places:
- Partition tuples are widened once per entry in the scan reader
- Column bounds (lower/upper) are still widened lazily inside
InclusiveMetricsEvaluator, at comparison time.
Two widening paths for the same underlying schema-evolution concern is
harder to reason about and easier to get subtly wrong, as @Fokko and
@mbutrovich noted on the PR. Partition tuples had to move to the reader because
comparison-time promotion did not fix equality-delete / deletion-vector
matching; bounds have no such forcing function (the metrics evaluator promotes
them correctly on demand), so they were left in place to contain scope of #3483.
### Describe the solution you'd like
Project column bounds to the current schema in the same per-entry loop that
already normalizes partition tuples, so there is a single promotion point and
the evaluators can drop their on-the-fly promotion
Scope: read/scan path only; no format or on-disk changes. Existing coverage
in #3483 (partition widening + delete matching) should continue to pass
unchanged; add bounds-pruning cases where a promoted column's bounds decide a
file.
### Willingness to contribute
I can contribute to this feature independently
--
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]