Skip to content

Conversation

@mbutrovich
Copy link
Contributor

@mbutrovich mbutrovich commented Oct 24, 2025

What issue does this PR close?

Partially address #1749.

Rationale for this change

Equality delete files with partial schemas (containing only equality columns) were hitting Arrow validation errors: "Column 'id' is declared as non-nullable but contains null values” in Iceberg Java’s TestSparkReaderDeletes suite. The bug occurs because evolve_schema() adds missing columns with NULL values, which fails when those columns are declared REQUIRED in the table schema.

What changes are included in this PR?

Change the evolve_schema() call to take equality_ids because per the Iceberg spec, evolve schema for equality deletes but only for the equality_ids columns, not all table columns.

Are these changes tested?

test_partial_schema_equality_deletes_evolve_succeeds

@mbutrovich mbutrovich changed the title fix(reader): Removed the evolve_schema() call in load_file_for_task() for equality deletes fix(reader): Equality delete files with partial schemas (containing only equality columns) Oct 24, 2025
mbutrovich added a commit to mbutrovich/iceberg-rust that referenced this pull request Oct 27, 2025
@liurenjie1024
Copy link
Contributor

Seems duplicated with #1778 ?

@mbutrovich
Copy link
Contributor Author

Seems duplicated with #1778 ?

I might have goofed when breaking out changes from my https://github.com/mbutrovich/iceberg-rust/tree/df50 branch to individual PRs. I'll close this one for now until I figure out which change got lost. Thanks!

@mbutrovich mbutrovich closed this Oct 28, 2025
@mbutrovich mbutrovich marked this pull request as ready for review October 29, 2025 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants