Skip to content

feat(io): add streaming FileIO support#641

Open
wgtmac wants to merge 3 commits intoapache:mainfrom
wgtmac:io_api
Open

feat(io): add streaming FileIO support#641
wgtmac wants to merge 3 commits intoapache:mainfrom
wgtmac:io_api

Conversation

@wgtmac
Copy link
Copy Markdown
Member

@wgtmac wgtmac commented May 6, 2026

Introduce InputFile/OutputFile stream APIs and Arrow IO adapters so bundled Avro/Parquet readers and writers can work with generic FileIO implementations.

Comment thread src/iceberg/arrow/arrow_io.cc Outdated
Comment thread src/iceberg/arrow/arrow_io.cc Outdated
Comment thread src/iceberg/arrow/arrow_io.cc Outdated
Comment thread src/iceberg/arrow/arrow_io.cc
wgtmac added 2 commits May 6, 2026 15:13
Introduce InputFile/OutputFile stream APIs and Arrow IO adapters so bundled
Avro/Parquet readers and writers can work with generic FileIO implementations.
Copy link
Copy Markdown
Collaborator

@zhjwpku zhjwpku left a comment

Choose a reason for hiding this comment

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

Generally LGTM except some trivial comments.

Comment thread src/iceberg/file_io.h
// We provide a default implementation to avoid Windows linker error LNK2019.
return NotImplemented("ReadFile not implemented");
}
std::optional<size_t> length);
Copy link
Copy Markdown
Collaborator

@zhjwpku zhjwpku May 7, 2026

Choose a reason for hiding this comment

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

Can we just use int64_t for the length? Not a strong opinion, just bring this on table.

Comment thread src/iceberg/test/std_io.h
// Create parent directories if they don't exist
std::filesystem::path path(file_location);
Status Flush() override {
file_.flush();
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Do we need is_open() here?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants