Type physical plan references as summary definitions - #572
Merged
Merged
Conversation
zzylol
force-pushed
the
refactor/publish-authoritative-catalog
branch
from
September 10, 2026 15:00
fcfb778 to
2d05cfb
Compare
zzylol
changed the base branch from
refactor/publish-authoritative-catalog
to
main
September 10, 2026 15:57
zzylol
force-pushed
the
refactor/typed-summary-definition-refs
branch
from
September 10, 2026 15:57
9c69b67 to
316660a
Compare
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.
Why
Physical plan contracts used
PolicyFingerprintdirectly as a materialization reference whileQueryPlanandSummaryCatalogusedSummaryDefinitionId. The identical wire value hid two different concepts and made it easy to pass policy-registry identity where an SDS definition reference was required.Before this PR
Collector, precompute schema, producer, transmission, lifecycle, runtime-evidence, and summary-frame contracts exposed
PolicyFingerprint. Validation repeatedly converted those values back into catalog definition IDs. Receiver lineage also discarded the typed SDS identity.After this PR
Every physical plan projection and summary frame carries
SummaryDefinitionId.PolicyFingerprintremains an internal content hash used to derive and look up legacy precompute configurations, with conversions limited to those compatibility boundaries. Frame lineage preserves the typed definition identity end to end. Concrete stored state continues to useSummaryInstanceId; noSIDalias or rawu64instance identity is introduced.The serde representation remains transparent, so this is wire-compatible while giving Rust callers a compile-time boundary between policy hashes, summary definitions, and summary instances.
Verification
cargo check --workspace --all-targetscargo test -p control_plane --lib physical::compiler::tests(67 passed)cargo test -p data_plane --lib frame_lineage(7 passed)git diff --checkDepends on #567.
ClickHouse migration surface: populate
SummaryDefinitionIdfor physical references and resolve it through the sharedSummaryCatalog. External exact nodes remain independent of summary definition and instance identities.