stevenzwu opened a new pull request, #16144:
URL: https://github.com/apache/iceberg/pull/16144
## Summary
Adds a generic `CatalogObjectIdentifier` schema to the REST catalog spec,
represented as an ordered list of hierarchical levels (`{ "levels":
["accounting", "tax", "paid"] }`). This identifier works uniformly for tables,
views, functions, materialized views, and namespaces — removing the need for a
type-specific identifier per object kind.
- For named objects (tables, views, functions, materialized views), the last
element is the object name; preceding elements form the namespace path.
- For namespace objects, the list contains all levels of the namespace
itself.
- The object kind is determined by context (e.g. the endpoint or a companion
`CatalogObjectType` discriminator), not by the identifier structure alone.
Motivation: multiple concurrent efforts need a generic catalog identifier —
events (#12584), function endpoints (#15180), universal relation load (#15830).
Introducing one shared schema avoids identifier proliferation.
## Scope
Intentionally minimal, per the design doc's migration plan:
- Add `CatalogObjectIdentifier` alongside the existing `TableIdentifier`.
- **No changes to existing endpoints.** All current references to
`TableIdentifier` are preserved — no breaking changes.
- `CatalogObjectType` (the companion discriminator proposed in #15830) is
**not** part of this PR.
## Design note
This PR uses the flat-list-of-levels representation, matching the approach
already introduced in PR #12584 for the events endpoint. The design doc also
describes an alternative `(namespace, name)` tuple representation; this PR
adopts the flat-list variant for consistency with existing precedent in the
events spec.
## Test plan
- [x] `make -C open-api lint` passes (openapi-spec-validator + yamllint
--strict)
- [x] `make -C open-api generate` regenerates `rest-catalog-open-api.py`
cleanly (only the new class added)
- [x] `python3 -m py_compile open-api/rest-catalog-open-api.py` succeeds
- [ ] Reviewer confirms schema shape and description wording
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]