manuzhang opened a new pull request, #1070: URL: https://github.com/apache/iceberg-cpp/pull/1070
V4 introduces a manifest tree with tracking metadata, colocated deletion-vector references, and summaries for tracked manifests. This draft adds the fixed-schema building blocks for that model, following the developing [v4 manifest schema](https://iceberg.apache.org/spec/#manifest-schema). - Add `FileTracking`, `DeletionVectorMetadata`, and `ManifestInfo` data carriers and `StructType` schemas with the spec's field IDs, names, types, and requiredness. - Add a separate `FileTrackingStatus` decoder for EXISTING, ADDED, DELETED, REPLACED, and MODIFIED. MODIFIED entries are live; REPLACED entries are not. Legacy manifest status decoding remains limited to v1-v3 statuses. - Preserve absent inheritance fields and optional binary metadata, and include the new public header in the C++20 compatibility check. This is a foundation only: the maximum supported table format remains v3. These data carriers do not implement v4 manifest serialization, inheritance, or tracked-file validation. Follow-ups include `TrackedFile` and column-file metadata, schema-dependent `content_stats`, legacy adapters, root/leaf manifest I/O and planning, and the remaining v4 table requirements before enabling v4 tables. The v4 spec is still under development, so this PR is intentionally a draft for API and scope review. Validation on macOS with AppleClang 21, an isolated Debug core build, and `ICEBERG_CXX20_COMPAT=ON`: - `v4_types_test`: 12 tests covering schema JSON contracts, status decoding/liveness, legacy rejection, and missing metadata. - `schema_test`, `table_test`, `json_serde_test`, and `cpp20_compatibility_test`: passed. - `pre-commit run --files` for all six changed files: passed. - `git diff --check`: passed. -- 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]
