Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Support multi-argument transforms

Open
#3,628 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

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

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.

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.

Dominant language
Python
Stars
1.1k
Forks
589
Avg merge
2d 2h
Merged PRs (30d)
70

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/iceberg-python

All issues in apache/iceberg-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.