Repository navigation
docs: align #509/#511/#573 docs with the decided vocabulary and Pass 1 candidates - #663
Merged
Merged
Conversation
…1 candidates
- operator-sharing.md: ReadPopulation { readout } -> EvaluatePopulation
{ evaluation } (matches crates/types/src/ir/asap.rs); "readout" ->
"evaluation" where it names reading summary state; add the missing
`filter` field to the SummaryAgg sketch.
- asap-primitive-schema.md: "readout" -> "evaluation" where it names the
operation (intent table header, §6.5 heading and its anchor/table row,
top-k evaluation, guarantee of an evaluation). Verb "read out" kept, as
in the code comments. Coverage cache text unchanged.
- planner-layering.md: define an eligible sub-DAG at its first use; add
the exact accumulator state candidate to the Pass 1 table and text;
recompute Example 1 (Pass 1: 2 x 2 x 2 x 3 = 24, Pass 2:
24 x 2 x 3 x 3 = 432, Stage 2: 24 x 52 = 1,248).
- planner-layering.md: every aggregation is its own Pass 1 target,
including nested ones (Q1's per-series rate and per-job sum, Q2's
per-series sum_over_time and per-job top-k), as in #561's
enumerate_local_logical_candidates; the Algorithm 1 example and diagram
show the four sub-DAGs, and Example 1 lists options per target.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W7qG9aFyPij5uWsyAJCxDW
zzylol
commented
Oct 12, 2026
zzylol
commented
Oct 12, 2026
zzylol
commented
Oct 12, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7qG9aFyPij5uWsyAJCxDW
zzylol
force-pushed
the
docs/align-509-511-573
branch
from
October 12, 2026 20:05
13ad438 to
72fa555
Compare
Each Pass 1 target gets a single exact option: exact accumulator state when the intent has a buildable mergeable exact accumulator, otherwise the plain exact computation. Example 1 returns to 3 / 54 / 156 with four targets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7qG9aFyPij5uWsyAJCxDW
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7qG9aFyPij5uWsyAJCxDW
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
The #509 / #511 / #573 design docs lagged behind decisions already made in code review: the vocabulary is "evaluation", not "readout"; Pass 1's targets were never defined; and Pass 1's exact accumulator option, which #561 generates, was missing from #509, so Example 1's candidate counts were wrong.
What
Documentation only.
operator-sharing.md,asap-primitive-schema.md):ReadPopulation { readout }→EvaluatePopulation { evaluation }(the names incrates/types/src/ir/asap.rs), "readout" → "evaluation" where it names reading a summary, andSummaryAgggains itsfilterfield as in the code.planner-layering.md): defined at its first use. A sub-DAG is eligible when its root is anAggregatewhose intent has at least one realization (exact accumulator state or a summary family). Nested aggregations are separate targets.SummaryAggwith an exact family →FinalizeExactAccumulator); otherwise it is the plain exact computation. With nested targets, Example 1 has four targets (Q1's per-seriesrateand per-jobsum, Q2's per-seriessum_over_timeand top-k), and the totals stay 1 × 1 × 1 × 3 = 3, 54 and 156. The Algorithm 1 example and its diagram follow.How
Minimal edits; no other wording changed. The coverage cache in #573 (§4.2.3, §6.1) is left as is: it is the decided design, not yet implemented (#651).
Before this PR
The docs said
ReadPopulation/ readout, used "eligible sub-DAG" without a definition, and counted Example 1 with one option for Q1 and no nested targets.After this PR
The docs use the code's names, define Pass 1's targets, and Example 1's counts match what Pass 1 enumerates.
Evidence
The Example 1 targets were checked by running #561's
enumerate_local_logical_candidateson Example 1's two queries with the doc's accuracy targets: it finds the same 4 targets. #561 is being updated to offer one exact option per target, which gives 1, 1, 1 and 3 options. (The code offers Count-Sketch + heap where the doc lists Hydra for top-k; TopK Hydra is being added in #605. That does not change the count.) Screenshots and measurements: not applicable.Verification
Architectural decisions
MaintainedPopulation<N = QueryExpr>in docs: ASAP primitive schema and summary coverage (definition + selection) #573 is unchanged here: onmainthe code default is stillQueryExpr; refactor(ir): remove the legacy QueryExpr and SummaryExpr IRs; move docs and DAG viewer to the unified IR #543 changes the code default toOperatorNodeand updates the doc with it.Limitations and follow-up
Human review — do not complete with an agent
🤖 Generated with Claude Code
https://claude.ai/code/session_01W7qG9aFyPij5uWsyAJCxDW