You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 1397f2e
Browse filesBrowse the repository at this point in the historyBrowse files
feat(pass2): the planner chooses the segment grid (Q67)
The shared-segment rule (Q60) offered one fixed grid, the gcd of every
window's lookback and offset. It now offers two segmentations, each as
its own Stage 1 variant, and Stage 3's cost decides:
- split only at the windows' own boundaries (fewest segments); for
Example 3a four segments, the oldest two years wide;
- the even gcd grid (3a: five 1-year segments), when it differs.
WindowForm::Segments carries the grid unit and a bitmask of where each
segment ends, so a target's segments may differ in width; tumbling_state
and the coverage proof take the widths. Sharing::WindowSegments carries
the number of distinct segments, labeled "· shared segments ×4" / "×5".
Each segment is still sized for the group's strictest reader.
Stage 2 does not maintain a merge of panes of different widths at
ingestion time or keep it: it is no stream of panes. So in 4a only the
even grid has an ingestion-time option.
Example 3a and 4a select the four boundary segments: they build the same
rows as the five 1-year ones and merge fewer states (3a: 18,104.0039 vs
18,104.0044 per second).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0 commit comments