Skip to content

Core: Relative paths for data files - #16666

Closed
rambleraptor wants to merge 1 commit into
apache:mainfrom
rambleraptor:relative-paths-2
Closed

Core: Relative paths for data files#16666
rambleraptor wants to merge 1 commit into
apache:mainfrom
rambleraptor:relative-paths-2

Conversation

@rambleraptor

@rambleraptorrambleraptor commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

This adds support for reading data files using relative paths.

We've had some issues in the prior PR where a bunch of files have scheme-less "absolute" paths. By Iceberg's definition of absolute, those need schemes. I fixed the ones we ran into.

@rambleraptor
rambleraptor marked this pull request as draft June 2, 2026 17:53
@rambleraptorrambleraptor changed the title Relative paths for data filesCore: Relative paths for data filesJun 2, 2026
@rambleraptor
rambleraptorforce-pushed the relative-paths-2 branch 2 times, most recently from 1e16f03 to 4484754CompareJune 3, 2026 00:20
@rambleraptor
rambleraptor marked this pull request as ready for review June 3, 2026 17:31
@rambleraptor

Copy link
Copy Markdown
ContributorAuthor

@talatuyarer@danielcweeks as the relative paths gurus, please take a look!

@anoopj I know you've been doing work in the space as well

this.manifestLocation = manifestLocation;
}

void setLocation(String location) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an open design question, but I think BaseFile is probably not the correct place to inject the location since we want to isolate this to v4-only code paths. Most likely, we will do the path resolution/relativization in the v4-only adapter layer, as done in this prototype.

file.setFileSequenceNumber(manifestEntry.fileSequenceNumber());
file.setManifestLocation(manifestLocation);
if (baseLocation != null && file.path() != null) {
file.setLocation(LocationUtil.resolveLocation(baseLocation, file.location()));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not certain, but I suspect this might cause manifest rewrite paths to always persist the absolute location. (Appends paths would be fine). I guess the tests are probably passing because the v3 paths are always absolute.

@github-actions

Copy link
Copy Markdown

This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@iceberg.apache.org list. Thank you for your contributions.

@RussellSpitzerRussellSpitzer added the Iceberg V4 Iceberg Table Format Version 4 label Jul 16, 2026
@github-actions

Copy link
Copy Markdown

This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@iceberg.apache.org list. Thank you for your contributions.

@anoopj

Copy link
Copy Markdown
Member

#17434 handles it at the v4 reader.

@rambleraptor

Copy link
Copy Markdown
ContributorAuthor

Great, I'll close this out. Thanks for the work on the v4 reader!

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

Labels

coredataIceberg V4Iceberg Table Format Version 4spark

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rambleraptor@anoopj@RussellSpitzer