apache / apache/iceberg-python

Support multi-argument transforms

Open
#3,628 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
1.1k
Forks
581
Avg merge
1d 17h
Merged PRs (30d)
78

Description

### Feature Request / Improvement

Part of #1818.

The V3 spec generalizes partition and sort fields to multiple source columns via `source-ids`. PyIceberg currently raises when `source-ids` has more than one element, so loading such tables fails — but the spec requires v3 readers to read tables with unknown transforms, ignoring them (null partition values, always-true projection in scan planning).

Scope: model `source-ids`, serialize per spec (`source-id` for single-argument transforms, `source-ids` otherwise), and treat multi-argument transforms as unknown in scan planning. Evaluating multi-argument transforms on write is out of scope until the spec defines concrete ones.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the partition-field model and its serialization, then follow scan-planning handling for unknown transforms. Compare the current single-argument source-id behavior with the V3 specification. Done means multi-argument source-ids load and serialize correctly, are treated as unknown during scan planning, and write-time evaluation remains out of scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-engineering
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.