Repository navigation
Conversation
|
Thanks for picking this up! I ran the same setup on this branch with other source types. int/long/date/bool/binary now work, but I missed these in #3381, sorry. uuid could reuse the |
|
Following up on the decimal/uuid part, I checked what Java writes here (iceberg-api, JDK 21). Once the source is dropped, Java sees
uuid should be easy to match by formatting the |
|
@JeonDaehong thanks for checking these and for the Java table, that helped a lot. We pushed b765bbf so uuid and decimal no longer panic. uuid prints like Java ( |
JeonDaehong
left a comment
There was a problem hiding this comment.
Checked b765bbf: it merges cleanly with main, and the spec::partition and spec::values tests pass (167). No more unreachable!() for dropped decimal/uuid sources, and uuid matches Java.
Printing the unscaled decimal is fine with me. The scale is not lost everywhere, though: a manifest is decoded with the schema stored in it, where the source still exists, so the value arrives as Int128 and only the path formatting (which uses the current schema) has no scale. Matching Java exactly would mean formatting with the manifest's schema, which is a separate change. LGTM.
Which issue does this PR close?
Addresses #3381.
What changes are included in this PR?
We format partition values whose source column has been dropped instead of panicking, for the identity and truncate cases in the issue and for uuid and decimal. Decimal prints the unscaled value, since the scale only lived on the dropped column.
Are these changes tested?
the regression panics without the fix. the library suite, fmt and clippy pass.
AI Disclosure
The implementation and regression test were generated with an AI coding assistant and reviewed by a second coding assistant. The regression reproduces the panic without the fix; the library suite, fmt and clippy pass.