Skip to content

Proto iceberg#3

Draft
smaheshwar-pltr wants to merge 4 commits into
mainfrom
proto_iceberg
Draft

Proto iceberg#3
smaheshwar-pltr wants to merge 4 commits into
mainfrom
proto_iceberg

Conversation

@smaheshwar-pltr
Copy link
Copy Markdown
Owner

No description provided.

@smaheshwar-pltr smaheshwar-pltr force-pushed the proto_iceberg branch 8 times, most recently from 6d6bbc7 to c9371e7 Compare April 17, 2026 07:20
Sreesh Maheshwar and others added 4 commits April 17, 2026 01:09
Add OpenInputFile() and OpenOutputStream() public methods to
ArrowFileSystemFileIO that apply ResolvePath() before delegating to the
underlying Arrow filesystem. Update all reader/writer call sites (avro,
parquet) and tests to use the new methods instead of calling fs() directly.

This ensures S3 URIs (s3://bucket/key) are properly resolved to bare paths
(bucket/key) regardless of whether the caller goes through FileIO or
accesses the Arrow filesystem directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implement per-table credential vending in RestCatalog, following the pattern
from iceberg-java's RESTSessionCatalog and PyIceberg's REST catalog.

- Set X-Iceberg-Access-Delegation header at session level on HttpClient
- ResolveTableFileIO merges catalog properties with per-table config and
  storage credentials (longest-prefix match), creating per-table FileIO
  via FileIORegistry when credentials are vended
- StorageCredential struct with JSON serde and prefix-based resolution
- Applied consistently to LoadTable, CreateTable, RegisterTable, StageCreateTable
- Table exposes io_properties() for consumers that need vended configuration
- Table::Refresh() updates io_properties_ to prevent stale credentials
- Comprehensive unit tests (property merging, storage credential resolution,
  io_properties lifecycle) and REST integration tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rename snapshot_util_internal.h to snapshot_util.h so that it is
included in the installed headers. The iceberg_install_all_headers
CMake function skips any header whose filename contains "internal",
which prevented downstream consumers using find_package(iceberg)
from accessing SnapshotUtil without vendoring a copy.

The class is already marked ICEBERG_EXPORT (public ABI), so the
"_internal" suffix was inconsistent. SnapshotUtil provides essential
snapshot operations (ancestry traversal, time travel, schema lookup)
that engines built on iceberg-cpp need.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…onfig

When iceberg-cpp is built with ICEBERG_S3=ON using vendored Arrow,
arrow_bundled_dependencies contains the AWS SDK C libraries which
depend on platform-specific system libraries (CoreFoundation, Security,
Network on macOS; winhttp, bcrypt, etc. on Windows). Without declaring
these as transitive dependencies on the IMPORTED target, downstream
consumers get unresolved symbols at link time.

This mirrors Arrow's own ArrowConfig.cmake.in handling of the same
issue for aws-c-common bundled dependencies.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

1 participant