Skip to content

Conversation

@bodduv
Copy link

@bodduv bodduv commented Nov 4, 2025

Fixes #14216

The problem is described in the issue as well as in the dev mailing list post.

The changes proposed in the PR take a simple approach to fix the comparisons bug. This directly addresses correctness issues at both ManifestEntry as well as ManifestFile filtering. Note that the changes make UUID values comparison forward-compatible, but compliant with UUID RFCs.

Java's UUID.compareTo() uses signed comparison of most significant bits
and least significant bits, which is not compliant with RFC 4122, RFC 9562.
This causes incorrect ManifestEntry and ManifestFile filtering/pruning
in the presence of UUID filters.
@github-actions github-actions bot added the API label Nov 4, 2025
@bodduv
Copy link
Author

bodduv commented Nov 4, 2025

Tagging @nastra and @Fokko based on your previous work on UUIDs and @dimas-b as I touch TestComparators file you added.

@github-actions github-actions bot added the flink label Nov 5, 2025
@jhrotko
Copy link

jhrotko commented Nov 7, 2025

Thanks for handling this!

Copy link
Contributor

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The proposed change looks reasonable to me given the explanation in #14216... however, I cannot assess the impact on existing Iceberg clients and tables. I hope other reviewers can help with that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UUID] Non-RFC compliant UUID literal comparisons

3 participants