Repository navigation
Conversation
zzylol
force-pushed
the
stack/509-w3-relative-coverage
branch
from
October 4, 2026 18:25
390d792 to
0f9db83
Compare
zzylol
added a commit
that referenced
this pull request
Oct 4, 2026
Pane coverage time is a CoverageTime since #592; the tumbling pane-merge test keeps absolute time ranges. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 4, 2026
zzylol
changed the base branch from
stack/509-e2-keyed-additive-topk
to
stack/509-w6-counter-proof
October 4, 2026 18:25
This was referenced Oct 4, 2026
Draft
Share one UnivMon across distinct, L2 and entropy; document why those readouts stay uncertified
#596
Draft
zzylol
force-pushed
the
stack/509-w6-counter-proof
branch
from
October 5, 2026 06:21
ee6f881 to
761b2ce
Compare
zzylol
force-pushed
the
stack/509-w3-relative-coverage
branch
from
October 5, 2026 06:21
0f9db83 to
6b31d2d
Compare
FieldDataType::family_merges() is true for exact Sum/Count/Min/Max, KLL, DDSketch, HLL, CMS, CountSketch and UnivMon; every other family fails closed (Rate/Increase accumulators and heap top-k sketches included, per W6). SummaryMerge::validate_inputs rejects the rest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
FieldDataType::merge_relation() returns the SelectionRelation a merge needs (#573 §4.4): Disjoint for counting families (exact Sum/Count, KLL, DDSketch, CMS, CountSketch, UnivMon), OverlapAllowed for idempotent ones (exact Min/Max, HLL), and None when the family does not merge. Contained names what the reserved SummarySubtract will require. SummaryCoverage::derive skips the disjointness check for OverlapAllowed families, and the union of identical selection boxes is one box. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7qG9aFyPij5uWsyAJCxDW
zzylol
force-pushed
the
stack/509-w6-counter-proof
branch
from
October 8, 2026 16:47
761b2ce to
f6a38fb
Compare
zzylol
force-pushed
the
stack/509-w3-relative-coverage
branch
from
October 8, 2026 16:47
6b31d2d to
8e9b5f9
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.
Restacked on #646 (coverage = definition + selection, derived). Chain: … #594 → #593 → #592 → #591 → … (Phase C tail, #528).
Step 3 of the #580 plan (item A prerequisites). Part of #509.
Why
Stage 1 tumbling windows (W1) compose N
SummaryAggpanes with oneSummaryMerge. #646 already derives where a pane sits in time:TimeRange(w)overTimeShift(s)gives the selection's relative time(-(s+w), -s], and a merge is accepted only for equal definitions and disjoint selections. Two facts are still missing:SummaryMergeaccepted any state family with matching schemas, including Rate/Increase accumulators and CMS/CountSketch heaps. W6 says merged heaps are rejected until there is an accuracy model.What
FieldDataType::family_merges()returns true for exact Sum/Count/Min/Max, KLL, DDSketch, HLL, CMS, CountSketch and UnivMon. Everything else fails closed: Rate/Increase/IRate,CmsWithHeap,CountSketchWithHeap, KMV/Theta, Sample/Wavelet/StatModel and plain values.SummaryMerge::validate_inputsrejects a family that does not merge.FieldDataType::merge_relation() -> Option<SelectionRelation>, next tofamily_merges:Disjointfor counting families,OverlapAllowedfor HLL and exact Min/Max,Nonewhen the family does not merge.SelectionRelation::Containednames what the reservedSummarySubtractwill require; nothing produces it yet.SummaryCoverage::deriveskips the disjointness check forOverlapAllowedfamilies, and the union of identical selection boxes is one box.The earlier version of this PR added
CoverageTime::{Absolute, RelativeToEvaluation}to declared coverage; that commit is dropped because #646 derives relative time from the sub-DAG.Tests
Written first;
idempotent_families_merge_overlapping_statesandfamily_merge_selection_relationfail without the change.summary_merge_structure.rs: heap states are rejected and KLL states accepted (summary_merge_requires_a_mergeable_family); table tests offamily_mergesandmerge_relation; HLL/Max states over the same rows merge and Sum/KLL ones do not.Open questions for review
Gate
cargo fmt --all --check,cargo clippy --workspace --all-targets --all-features -- -D warningsandcargo test --workspacepass at this head.🤖 Generated with Claude Code
https://claude.ai/code/session_01W7qG9aFyPij5uWsyAJCxDW