Version population key encoding in shared materialization identity - #671
Merged
Merged
Conversation
…tion-key-encoding
zzylol
changed the base branch from
feat/compile-multi-source-maintenance
to
main
September 11, 2026 19:35
zzylol
marked this pull request as ready for review
September 11, 2026 19:36
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.
Population routing needs an explicit identity version before replacing delimiter-based keys. Silently changing the codec would let the same installed policy resolve different physical populations.
Add
PopulationKeyEncodingto the existing materialization and data descriptor contracts. Legacy is the default and is omitted from serialization; its fingerprint path remains unchanged. Canonical label encoding uses a separate policy/data identity domain and catalog validation requires configuration agreement. Both typed installation and legacy YAML startup reject canonical encoding until its runtime consumer is implemented.Before: the shared label codec existed without an installed routing version. After: configurations can represent the new version without silently enabling it or changing legacy identity. This PR does not enable group routing or maintenance execution.
Validation: 104 shared tests pass, including identity/serde compatibility, unknown version rejection, custom sink parsing, and typed installation rejection. Actual-library-139 legacy YAML rejection test passes (1/1). CP all-target check passes. The final ancestry merge preserves #668 multi-source validation; all 104 shared tests also pass on the final head. No performance claim.