Skip to content

Scan fails when an equality delete uses a nested field #3450

Open

Description

@JeonDaehong

Apache Iceberg Rust version

main (1270e32)

Describe the bug

The spec allows equality delete columns nested under structs, and EqualityDeleteWriter accepts them (see the nested-field test in equality_delete_writer.rs). But reading such a delete file fails the scan with Unexpected => field not found: RecordBatchTransformer only maps top-level field ids (record_batch_transformer.rs:889).

To Reproduce

Table schema 1: f long, 2: s struct<3: f long>. Equality delete file with equality_ids = [3] and one row s.f = 7. Loading it through CachingDeleteFileLoader (evolve_schema, then parse) returns Err(Unexpected => field not found).

Expected behavior

The delete is applied to rows where s.f = 7, as for a top-level column.

Willingness to contribute

I can contribute a fix for this bug independently

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions