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 3a40ada
Browse filesBrowse the repository at this point in the historyBrowse files
Fix operator self-time for parents of Compute Scalar (#215 C5) + one decimal on benefit % (#255)
C5 (operator self-time look-through):
GetSerialOwnElapsed subtracted each direct child's ActualElapsedMs, but
Compute Scalar operators don't carry runtime stats (ActualElapsedMs = 0).
For an operator whose direct children are Compute Scalars — like the node-6
Hash Match in Joe's private plan — that meant "children elapsed = 0" and the
parent kept its full elapsed as self-time.
Effect: node-6 Hash Spill reported 95% benefit / 8,829ms self-time. With
look-through through the Compute Scalars it's 1,609ms self-time / 17.4% —
matching Joe's math of 8.829 - 7.121 - 0.099.
New GetEffectiveChildElapsedMs helper walks through pass-through operators
(Compute Scalar and anything else missing runtime stats) to the first
descendant with real stats. Parallelism exchange children keep existing
max-child behavior because exchange times are unreliable.
Applies to every operator-time-based benefit score (spills, key lookups,
bare scans, scan-with-predicate, scan cardinality, eager index spool, etc).
C2 (decimal precision on benefit %):
Benefit % was rounded to N0 everywhere, so tiny waits showed as "up to 0%".
Switched to one decimal except for 100 (shown as "100"), matching the
existing pattern in ComparisonFormatter. Applied to web strip, wait-stats
card, HTML export (both surfaces), text formatter (both paths), Avalonia
Plan Warnings + Node Warnings headers.
Version bump 1.7.1 -> 1.7.2.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
sb.AppendLine($"<span class=\"warn-benefit\">up to {w.MaxBenefitPercent:N0}% benefit</span>");
461
+
sb.AppendLine($"<span class=\"warn-benefit\">up to {(w.MaxBenefitPercent.Value>=100?w.MaxBenefitPercent.Value.ToString("N0"):w.MaxBenefitPercent.Value.ToString("N1"))}% benefit</span>");
0 commit comments