Sub-issue of #554.
Scope: the mechanism for producing valid sliding-window (W, S) candidate combinations for a given query/AQE — the "which window sizes and slide intervals are even legal here" question, separate from actually serving queries against them (#554's other sub-issue).
optimizer/candidate_gen.rs's window_candidates() (candidate_gen.rs:104-151) already does this conceptually for the offline cost-model/optimizer path (enumerating (WindowType, W_ms, slide_interval_ms, n_windows) tuples with the S | W, S | t_repeat_gcd, S < W constraints), but it's only reachable from the offline candidate_gen_dump/optimizer_cli cost simulators, not from the live planner path.
Needs its own design session — not scoped further here. See #554 and the design docs linked there for context.
Sub-issue of #554.
Scope: the mechanism for producing valid sliding-window
(W, S)candidate combinations for a given query/AQE — the "which window sizes and slide intervals are even legal here" question, separate from actually serving queries against them (#554's other sub-issue).optimizer/candidate_gen.rs'swindow_candidates()(candidate_gen.rs:104-151) already does this conceptually for the offline cost-model/optimizer path (enumerating(WindowType, W_ms, slide_interval_ms, n_windows)tuples with theS | W,S | t_repeat_gcd,S < Wconstraints), but it's only reachable from the offlinecandidate_gen_dump/optimizer_clicost simulators, not from the live planner path.Needs its own design session — not scoped further here. See #554 and the design docs linked there for context.