You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Catalog Labels: client-library read support for C++ #938
Catalog Labels were added to the Iceberg REST spec in #15750 (merged) and implemented on the Java client/engine side as a stacked set of PRs (#18045–#18049). This is a tracking issue to bring the other REST client libraries to iceberg-cpp** — to read-path parity.
Labels are catalog-provided enrichment, not table state: they are returned on the load response, are transient/runtime-only, and are never persisted into table metadata or serialized. A client that ignores labels remains spec-compliant.
Wire shape
LoadTableResult / LoadViewResult gain an optional labels object:
Client integration tests need a server that emits labels — that is the REST server test fixture (#18047); once merged it must ship in the iceberg-rest-fixture Docker image. This gates the integration-test PRs only; unit-test PRs (mocked responses) can proceed immediately.
#18047 merged and published to the iceberg-rest-fixture image
Per-repo proposed PRs
Each repo mirrors the Java layering (serde → table accessor → labels metadata table → integration tests), modeled on that client's existing storage-credentials / vended-credentials field. Read-path parity (metadata table) is included in all four. Rust and C++ are table-only (no LoadViewResult yet). Each per-repo group is a stack (each PR based on the previous); repos are independent.
iceberg-cpp — table-only (no views yet)
C1 serde (FieldLabels/CatalogLabels + LoadTableResult.labels) + Table::catalog_labels() accessor + first REST serde unit test
C2 labels kind on inspect::MetadataTable
C3 integration tests against the fixture (gated)
Notes
C++ is table-only until LoadViewResult lands in those clients.
Raised #960 for C1: it parses the optional labels field on the REST load-table response and exposes it via Table::labels(), following apache/iceberg#18045 and apache/iceberg#18046.
Activity
NihalJain commentedon Sep 23, 2026
Raised #960 for C1: it parses the optional
labelsfield on the REST load-table response and exposes it viaTable::labels(), following apache/iceberg#18045 and apache/iceberg#18046.Next:
iceberg-rest-fixtureimage.CC: @laskoviymishka
feat: support catalog labels on tables loaded from REST catalogs
feat: support catalog labels on tables loaded from REST catalogs