feat(inspect): expand MetadataTable framework for all 16 metadata table types#801
Open
WZhuo wants to merge 1 commit into
Open
feat(inspect): expand MetadataTable framework for all 16 metadata table types#801WZhuo wants to merge 1 commit into
WZhuo wants to merge 1 commit into
Conversation
…le types - Expand Kind enum from 2 to 16 values covering all Iceberg metadata tables - Add SnapshotSelection struct for time-travel snapshot resolution - Add supports_time_travel() and Scan() virtual methods to base class - Update factory switch to cover all 16 Kinds (new types return NotSupported) - Add tests for enum values, factory behavior, and default virtual methods
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expand the
MetadataTablebase class framework to support all 16 Iceberg metadata table types, laying the foundation for subsequent PRs to implementScan()for each.Changes
metadata_table.hKindenum from 2 to 16 values:kEntries,kFiles,kDataFiles,kDeleteFiles,kHistory,kMetadataLogEntries,kSnapshots,kRefs,kManifests,kPartitions,kAllDataFiles,kAllDeleteFiles,kAllFiles,kAllManifests,kAllEntries,kPositionDeletesSnapshotSelectionstruct withsnapshot_id,as_of_timestamp,ref_nameoptional fields for time-travel queriessupports_time_travel()virtual method (default:false)Scan()virtual method returningResult<ArrowArray>(default:NotSupported)metadata_table.ccsupports_time_travel()returnsfalseScan()returnsNotSupportedMake()covers all 16 Kinds — existingkSnapshots/kHistorydispatch normally; all 14 new Kinds returnNotSupportedmetadata_table_test.ccAllKindEnumValues— verifies all 16 enum valuesUnimplementedKindsReturnNotSupported— verifies factory returns error for all new KindsDefaultSupportsTimeTravelReturnsFalse— verifies base defaultDefaultScanReturnsNotSupported— verifies base defaultScan()Design Principles
NotSupportedfrom the factory, ready for subsequent Steps to fill inScan()signature acceptsstd::optional<SnapshotSelection>for time-travel support