apache / apache/iceberg-rust

Predicates on nested-leaf columns fail

Open
#2,432 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Rust
Stars
1.4k
Forks
567
Avg merge
2d 2h
Merged PRs (30d)
93

Description

### Apache Iceberg Rust version

0.6.0 (latest version)

### Describe the bug

Nested-leaf predicates in the Arrow reader are rejected even when the predicate targets a primitive leaf inside a struct.
For example, a predicate like:

```sql
nested.value = 20
```
fails during row-filter construction because PredicateConverter::bound_reference resolves the predicate field ID to a Parquet leaf column, then rejects it when the Parquet column root is a group/struct.

### To Reproduce

_No response_

### Expected behavior

_No response_

### Willingness to contribute

I can contribute a fix for this bug independently

Contributor guide

Open the contributing guide

Research direction

Start at the Arrow reader's PredicateConverter::bound_reference entry point and trace how a predicate field ID resolves to a Parquet leaf under a struct. Reproduce the nested.value = 20 row-filter construction failure, then verify that predicates targeting primitive nested leaves are accepted without rejecting their group/struct root.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
data
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.