Skip to content

Execute explicitly timed arithmetic over immutable maintenance rows - #666

Merged
zzylol merged 16 commits into
mainfrom
feat/maintenance-timed-binary
Sep 11, 2026
Merged

zzylol merged 16 commits into
mainfrom
feat/maintenance-timed-binary

Conversation

@zzylol

@zzylol zzylol commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Why

A selected summary-over-summary program can combine two finalized inputs with arithmetic. Its maintenance operator must preserve window timestamps and left/right operands before updating the outer sketch.

What

Execute explicitly MaintenanceTime arithmetic over frozen, aligned Float64 rows. This is an operator capability; the automatic finite scheduler remains single-source in this PR.

How

Reuse the existing Float64 arithmetic kernel and private maintenance rows. Preserve declared timestamp provenance, require identical nonempty timestamp sets, and reject duplicate timestamps, unsupported schemas, vector matching, and non-finite updates. Order Binary dependencies by their Left/Right edge roles, including rejection of missing or duplicate roles. The Planner pin carries the explicit timing contract from Planner #402; read-time query compilation remains explicit.

Before this PR

The maintenance registry rejected Binary operators, and the generic scheduler passed dependencies in transport edge order.

After this PR

A bound maintenance subtraction evaluates (1000,5),(2000,7) against reordered (2000,3),(1000,2) as (1000,3),(2000,4). Read-time or live-ingest Binary execution remains rejected. No automatic multi-source workload claim is made yet.

Verification

  • Actual sketchlib refactor(legacy_expr): step β — thread Schema through legacy planning stack #139: all 338 precompute tests pass, including frozen arithmetic, timestamp mismatch/duplicates, non-finite input/output, timing gates, and reversed/missing/duplicate edge roles.
  • Both existing exact binary query tests pass with the new Planner pin.
  • Independent source review passed for the helper and final dispatch/role-validation changes.
  • Automatic multi-source process and performance evidence: not applicable to this operator-only layer; follow-up scheduler integration is required.

Limits

Only arithmetic without vector-match modifiers, declared Timestamp plus nonnullable Float64, and complete matching timestamp sets are supported. Group shuffle, continuous completion, sliding execution, Compare/Set, and automatic multi-source scheduling remain outside this change.

Stacked on #665 and depends on Planner #402.

@zzylol
zzylol changed the base branch from feat/maintenance-multi-frontier to main September 11, 2026 18:54
@zzylol
zzylol marked this pull request as ready for review September 11, 2026 18:58
@zzylol
zzylol merged commit 21e9e28 into main Sep 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant