Skip to content

Conversation

@HeartLinked
Copy link
Contributor

@HeartLinked HeartLinked commented Aug 15, 2025

Summary

Implements the metadata inheritance system for manifest entries, enabling proper inheritance of
snapshot_id, sequence_number, and file_sequence_number from manifest list to manifest entries.

Changes

  • Add InheritableMetadata interface with BaseInheritableMetadata, EmptyInheritableMetadata, and
    CopyInheritableMetadata implementations
  • Add InheritableMetadataFactory for creating appropriate metadata inheritance instances
  • Integrate metadata inheritance into ManifestReaderImpl::Entries() method
  • Update method names from MakeReader to Make for consistency
  • Add explicit keywords and other code quality improvements

Test Plan

  • Existing manifest reader tests pass with inherited metadata
  • Inheritance logic properly handles snapshot_id, sequence_number, and file_sequence_number fields

close #179 .

@HeartLinked HeartLinked force-pushed the feat/inheritable-metadata branch from 254ae32 to e93f48a Compare August 19, 2025 05:57
@HeartLinked HeartLinked reopened this Aug 19, 2025
@HeartLinked HeartLinked marked this pull request as ready for review August 19, 2025 05:58
Copy link
Contributor

@Fokko Fokko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One minor comment, but looks good 👍

- Add InheritableMetadata interface and implementations for applying
  metadata inheritance rules to manifest entries
- Fix ManifestReader::Make methods to properly handle Result types
  from InheritableMetadataFactory methods
- Move constructor/destructor definitions from header to implementation
  to avoid redefinition errors
- Add missing ManifestListReaderImpl::Files() method implementation
- Update method names from MakeReader to Make for consistency

This ensures proper inheritance of snapshot_id, sequence_number, and
file_sequence_number from manifest metadata to individual entries
according to Iceberg specification.
- Add explicit keyword to ManifestReaderImpl and ManifestListReaderImpl
  constructors to prevent unintended implicit conversions
- Update table_scan.cc to use the new Make method names instead of
  deprecated MakeReader methods
@HeartLinked HeartLinked force-pushed the feat/inheritable-metadata branch from 0fce446 to 2de3512 Compare August 25, 2025 10:04
@HeartLinked
Copy link
Contributor Author

@Fokko Hello, I've addressed the latest review comments and resolved the PR conflict. The changes are now ready for merge. Thank you!

@Fokko Fokko merged commit c9d7867 into apache:main Aug 26, 2025
7 checks passed
@Fokko
Copy link
Contributor

Fokko commented Aug 26, 2025

Thanks @HeartLinked for working on this, and thanks @wgtmac for the review

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.

feat: implement manifest entry metadata inheritance

3 participants