feat(dir-catalog): add reader/writer feature flags to __manifest#7191
Open
jackye1995 wants to merge 1 commit into
Open
feat(dir-catalog): add reader/writer feature flags to __manifest#7191jackye1995 wants to merge 1 commit into
jackye1995 wants to merge 1 commit into
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Add forward-compatibility infrastructure to the directory-catalog __manifest dataset, mirroring the Lance table format's reader/writer feature flags but at the catalog-manifest layer. Two u64 bitmasks are persisted in the __manifest dataset's table_metadata; a build refuses to read or write a manifest that sets a flag it does not understand (clean "please upgrade" error) instead of misreading it. Absent flags parse as 0, so every existing manifest stays compatible. This is the mechanism only: no manifest feature is defined yet, so the known masks are 0 and nothing is ever set, i.e. zero behavior change. The first format change that needs forward-compatibility protection adds its bit and stamps it on write. Also stop the directory catalog from silently degrading to directory listing when the manifest is incompatible: build() and the per-op fallbacks propagate the incompatibility instead of masking it, so the check cannot be bypassed.
e814f05 to
3566d75
Compare
Contributor
|
@jackye1995 Claude review |
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
Adds forward-compatibility infrastructure to the directory-catalog
__manifestdataset, mirroring the Lance table format's reader/writer feature flags but at the catalog-manifest layer.u64bitmasks in the__manifestdataset'stable_metadata(lance.namespace.manifest.reader_feature_flags/writer_feature_flags). Absent keys parse as0, so every existing manifest stays universally compatible.build()and the per-operation fallbacks propagate the incompatibility instead of masking it, so the check cannot be bypassed.This is the mechanism only: no manifest feature is defined yet, so the known masks are
0and nothing is ever set — zero behavior change today. It is the prerequisite so that a future__manifestformat change (e.g. a schema migration) can be shipped safely: that change adds its bit to the known masks and stamps it on write, and from then on older clients refuse the new format instead of misreading it.