lucasfang opened a new pull request, #120:
URL: https://github.com/apache/paimon-cpp/pull/120
### Purpose
Linked issue: No linked issue
This change adds the catalog module, providing core catalog interfaces, a
file-system-backed catalog implementation, identifier/table/database
abstractions, and snapshot commit utilities.
Included changes:
- **Public API (`include/paimon/catalog/`)**:
- Adds `Catalog` interface defining table/database lifecycle operations.
- Adds `Table`, `Database`, and `Identifier` value types for catalog
entity representation.
- **File System Catalog (`src/paimon/catalog/file_system_catalog.*`)**:
- Implements `FileSystemCatalog` backed by local/remote file system
storage.
- Adds comprehensive test coverage in `file_system_catalog_test.cpp`.
- **Snapshot Commit Utilities (`src/paimon/catalog/*snapshot_commit*`)**:
- Adds `SnapshotCommit`, `CatalogSnapshotCommit`, and
`RenamingSnapshotCommit` for atomic snapshot persistence.
- Adds test coverage for `RenamingSnapshotCommit`.
- **Catalog Core & Identifier (`src/paimon/catalog/catalog.*`,
`identifier.*`)**:
- Adds `Catalog` base implementation and `CommitTableRequest` for table
commit workflows.
- Adds `Identifier` parsing/formatting logic with test coverage.
- Adds unit tests for `Catalog` and `CommitTableRequest`.
### Tests
Test coverage included in this change:
- `CatalogTest`
- `FileSystemCatalogTest`
- `IdentifierTest`
- `CommitTableRequestTest`
- `RenamingSnapshotCommitTest`
### API and Format
This change adds public API in `include/paimon/catalog/catalog.h`,
`include/paimon/catalog/table.h`, `include/paimon/catalog/identifier.h`, and
`include/paimon/catalog/database.h`.
No storage format or protocol changes.
### Documentation
No documentation changes required.
### Generative AI tooling
Migrate-by: Aone Copilot (Qwen3.7-Max)
--
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]